/* =========================================================
   KREVE NEW — Base / Tokens (바붐샵 레퍼런스 매칭: 밝은 배경 + 레드 포인트)
========================================================= */
:root {
	--bg-page: #f7f7f7;
	--surface: #ffffff;
	--surface-soft: #f7f7f8;
	--text: #18293d;
	--text-muted: #8b93a1;
	--accent: #7ddbc3;      /* 브랜드 민트: 버튼·배지 같은 "면" */
	--accent-dim: #62c9ae;  /* 민트 눌림/hover */
	--accent-ink: #0f7a63;  /* 흰 배경 위 민트 글자·선 (대비 5.3:1) */
	--on-accent: #0b0b0b;   /* 민트 면 위 글자 (대비 12:1) */
	--accent-soft: #e8f8f3; /* 연한 민트 배경 */
	--accent-line: #bfeee1; /* 연한 민트 테두리 */
	--danger: #c8102e;      /* 오류·삭제·19 표시처럼 경고에만 쓰는 빨강 */
	--line: #eeeeee;
	--radius-s: 6px;
	--radius-m: 14px;
	--radius-l: 20px;
	--sidebar-w: 380px;
	--main-w: 600px;
	--font: "Pretendard", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", "Segoe UI", Roboto, sans-serif;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--font);
	background: var(--bg-page);
	color: var(--text);
	font-size: 16px;
	line-height: 1.4;
	-webkit-font-smoothing: antialiased;
	padding-bottom: 64px; /* bottom tab bar clearance */
}
a { color: inherit; text-decoration: none; }
ul { list-style: none; margin: 0; padding: 0; }
button { font-family: inherit; cursor: pointer; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 13px 22px;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 700;
	border: none;
	cursor: pointer;
}
.btn--primary { background: var(--accent); color: var(--on-accent); }
.btn--primary:hover { background: var(--accent-dim); }
.btn--ghost { background: var(--surface); color: var(--text); border: 1px solid #d5d9e0; }

/* =========================================================
   레이아웃: 데스크탑에서 좌측 사이드바(410px 폭) + 우측 고정폭 메인(600px) — 바붐샵과 동일 패턴
========================================================= */
.kreve-sidebar { display: none; }

/* =========================================================
   상단 알림바
========================================================= */
.announce-bar {
	background: var(--text);
	color: #fff;
	text-align: center;
	font-size: 12px;
	font-weight: 700;
	padding: 8px 12px;
}
.flash-bar { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 8px 10px 16px; background: var(--surface-soft); border-bottom: 1px solid var(--line); font-size: 13px; line-height: 1.5; }
.flash-bar__close { flex: none; width: 36px; height: 36px; border: 0; background: none; color: var(--text-muted); font-size: 14px; cursor: pointer; }

/* =========================================================
   Header
========================================================= */
.site-header {
	position: sticky;
	top: 0;
	z-index: 40;
	background: var(--surface);
	color: var(--text);
	border-bottom: 1px solid var(--line);
}
.site-header__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 10px 14px;
	gap: 10px;
}
.icon-btn {
	background: none;
	border: none;
	color: var(--text);
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	position: relative;
}
.icon-btn .bar {
	position: absolute;
	width: 18px;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
}
.icon-btn .bar:nth-child(1) { transform: translateY(-6px); }
.icon-btn .bar:nth-child(3) { transform: translateY(6px); }

.site-logo { display: flex; align-items: center; }
.site-logo__text { font-size: 19px; font-weight: 800; letter-spacing: 0.02em; color: var(--text); }
.site-logo img { max-height: 30px; width: auto; } /* 관리자가 올린 로고 */
/* 기본 로고(SVG): 폭을 정해 둬야 한다. 폭을 auto로 두면 SVG(크기 정보 없이 비율만 있는 그림)가 flex 안에서 0×0으로 접혀 로고가 사라진다.
   좁은 화면에서는 max-width로 줄어들고, 높이는 비율(aspect-ratio)로 따라와서 찌그러지지 않는다. */
.site-logo .site-logo__img--default { width: 102px; max-width: 100%; height: 24px; max-height: none; object-fit: cover; object-position: left center; } /* cover+왼쪽 맞춤: 예전 로고 파일(오른쪽에 SHOP 상자)이 캐시에 남아 있어도 ANOTHER 글자만 같은 크기로 보인다 */

.site-header__icons { display: flex; align-items: center; gap: 2px; }
.cart-icon { position: relative; }
.cart-count {
	position: absolute;
	top: 2px;
	right: 2px;
	min-width: 15px;
	height: 15px;
	padding: 0 3px;
	border-radius: 999px;
	background: var(--accent);
	color: var(--on-accent);
	font-size: 10px;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}
.cart-count[data-count="0"] { display: none; }

.site-search {
	display: flex;
	padding: 0 14px 12px;
	gap: 8px;
}
.site-search input[type="search"] {
	flex: 1;
	padding: 10px 14px;
	border-radius: 999px;
	border: 1px solid var(--line);
	background: var(--surface-soft);
	color: var(--text);
	font-size: 14px;
}
.site-search input::placeholder { color: var(--text-muted); }
.site-search button {
	padding: 0 16px;
	border-radius: 999px;
	border: none;
	background: var(--accent);
	color: var(--on-accent);
	font-weight: 700;
	font-size: 13px;
}

.quick-nav,
.quick-nav__list,
.category-tabs,
.category-tabs__list {
	display: flex;
	gap: 18px;
	overflow-x: auto;
	padding: 0 14px 12px;
	scrollbar-width: none;
}
.quick-nav::-webkit-scrollbar,
.category-tabs::-webkit-scrollbar { display: none; }
.quick-nav__pill,
.quick-nav__list li a {
	white-space: nowrap;
	font-size: 14px;
	font-weight: 700;
	color: var(--text);
}

.category-tabs { padding-top: 10px; border-top: 1px solid var(--line); gap: 16px; }
.category-tabs__item,
.category-tabs__list li a {
	white-space: nowrap;
	padding: 0 0 10px;
	font-size: 14px;
	font-weight: 600;
	color: var(--text-muted);
	border-bottom: 2px solid transparent;
}
.category-tabs__item.is-active,
.category-tabs__list li.current-menu-item a {
	color: var(--text);
	border-bottom-color: var(--accent-ink);
}

/* =========================================================
   Mobile slide menu
========================================================= */
.mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 60;
	background: rgba(0,0,0,0.4);
}
.mobile-menu__panel {
	position: absolute;
	top: 0; left: 0; bottom: 0;
	width: 88%;
	max-width: 360px;
	background: var(--surface);
	color: var(--text);
	padding: 14px 18px 28px;
	overflow-y: auto;
	overscroll-behavior: contain;
}
.mobile-menu__close { margin-left: auto; display: flex; }

/* 회원 영역 */
.mm-user { margin: 4px 0 14px; padding: 16px; border-radius: var(--radius-m); background: var(--surface-soft); }
.mm-user__hello { font-size: 15px; font-weight: 700; margin: 0 0 4px; }
.mm-user__hello strong { font-weight: 800; }
.mm-user__tier { display: inline-block; margin-left: 4px; padding: 2px 8px; border-radius: 999px; background: var(--accent); color: var(--on-accent); font-size: 11px; font-weight: 800; vertical-align: 1px; }
.mm-user__sub { font-size: 12px; color: var(--text-muted); margin: 0 0 12px; }
.mm-user__sub strong { color: var(--accent-ink); }
.mm-user__btns { display: flex; gap: 8px; }
.mm-user__btns .btn,
.mm-user__btn { flex: 1; padding: 10px 12px; font-size: 13px; }
.mm-user__btn { width: 100%; }

/* 바로가기 */
.mm-shortcuts { display: flex; gap: 8px; margin-bottom: 6px; }
.mm-shortcuts a { flex: 1; text-align: center; padding: 11px 4px; border: 1px solid var(--line); border-radius: var(--radius-s); font-size: 12px; font-weight: 700; white-space: nowrap; }
.mm-shortcuts em { font-style: normal; display: inline-block; min-width: 16px; padding: 0 4px; border-radius: 999px; background: var(--accent); color: var(--on-accent); font-size: 10px; line-height: 16px; }

/* 구역 / 링크 / 카테고리 아코디언 */
.mm-section { margin-top: 18px; }
.mm-section__title { font-size: 12px; font-weight: 800; color: var(--text-muted); letter-spacing: 0.02em; margin: 0 0 4px; }
.mm-link { display: block; padding: 13px 2px; font-size: 15px; font-weight: 600; border-bottom: 1px solid var(--line); }
.mm-acc { border-bottom: 1px solid var(--line); }
.mm-acc > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; padding: 13px 2px; font-size: 15px; font-weight: 600; }
.mm-acc > summary::-webkit-details-marker { display: none; }
.mm-acc > summary::after { content: ""; width: 8px; height: 8px; margin-right: 4px; border-right: 2px solid var(--text-muted); border-bottom: 2px solid var(--text-muted); transform: rotate(45deg); transition: transform .15s; }
.mm-acc[open] > summary { color: var(--accent-ink); }
.mm-acc[open] > summary::after { transform: rotate(-135deg); border-color: var(--accent-ink); margin-top: 6px; }
.mm-sub { display: block; padding: 9px 12px; font-size: 14px; color: var(--text); background: var(--surface-soft); border-bottom: 1px solid #fff; }
.mm-sub--all { font-weight: 700; }

/* 고객센터 / 로그아웃 */
.mm-cs__phone { display: block; font-size: 20px; font-weight: 800; margin: 2px 0 2px; }
.mm-cs__hours { font-size: 12px; color: var(--text-muted); margin: 0 0 6px; }
.mm-logout { display: block; margin-top: 22px; padding: 12px; text-align: center; font-size: 13px; color: var(--text-muted); border: 1px solid var(--line); border-radius: var(--radius-s); }

/* =========================================================
   Age gate
========================================================= */
.kreve-age-gate {
	position: fixed;
	inset: 0;
	z-index: 100;
	background: rgba(24,41,61,0.7);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.kreve-age-gate__box {
	background: var(--surface);
	color: var(--text);
	border-radius: var(--radius-l);
	padding: 32px 24px;
	max-width: 360px;
	text-align: center;
	box-shadow: 0 20px 50px rgba(0,0,0,0.2);
}
.kreve-age-gate__badge {
	width: 56px;
	height: 56px;
	line-height: 52px;
	margin: 0 auto 16px;
	border-radius: 50%;
	border: 3px solid var(--danger);
	color: var(--danger);
	font-weight: 800;
	font-size: 22px;
}
.kreve-age-gate__box h2 { font-size: 18px; margin: 0 0 10px; }
.kreve-age-gate__desc { font-size: 13px; color: var(--text-muted); line-height: 1.6; margin: 0 0 20px; }
.kreve-age-gate__check {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	color: var(--text);
	text-align: left;
	margin-bottom: 16px;
	cursor: pointer;
}
.kreve-age-gate__check input { accent-color: var(--accent-ink); width: 16px; height: 16px; flex: none; }
.kreve-age-gate__actions { display: flex; flex-direction: column; gap: 10px; }
.kreve-age-gate__actions .btn { width: 100%; }
.kreve-age-gate__actions .btn--ghost { color: var(--text); border-color: var(--line); }
.kreve-age-gate__note { font-size: 11px; color: var(--text-muted); margin-top: 16px; }

/* =========================================================
   Hero (배너 자체는 컬러풀/다크 그래픽 — 바붐샵 배너 톤)
========================================================= */
.hero {
	position: relative;
	min-height: 340px;
	display: flex;
	align-items: flex-end;
	background: linear-gradient(135deg, #1b2735 0%, #0d1420 60%, #000 100%);
	color: #fff;
	overflow: hidden;
}
.hero__media {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 15% 20%, rgba(125,219,195,0.38), transparent 45%),
		radial-gradient(circle at 85% 15%, rgba(125,219,195,0.16), transparent 45%),
		radial-gradient(circle at 60% 80%, rgba(255,255,255,0.10), transparent 50%);
}
.hero__content { position: relative; padding: 28px 20px 32px; }
.hero__eyebrow { font-size: 12px; letter-spacing: 0.2em; color: var(--accent); font-weight: 700; margin: 0 0 10px; }
.hero__title { font-size: 24px; line-height: 1.35; font-weight: 800; margin: 0 0 12px; }
.hero__desc { font-size: 13px; color: rgba(255,255,255,0.75); margin: 0 0 20px; }

/* =========================================================
   Value grid
========================================================= */
.action-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
	padding: 20px 14px 4px;
	background: var(--surface);
}
.action-grid__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 6px;
	padding: 14px 4px;
	font-size: 12px;
	font-weight: 600;
	color: var(--text);
}
.action-grid__icon { font-size: 22px; }

.value-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	padding: 20px 14px;
	background: var(--surface);
}
.value-grid__item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 13px 12px;
	border-radius: var(--radius-m);
	background: var(--surface-soft);
	border: 1px solid var(--line);
	font-size: 13px;
	font-weight: 600;
	color: var(--text);
}
.value-grid__icon { font-size: 18px; }

/* =========================================================
   Product sections / grid / cards
========================================================= */
.product-section { padding: 26px 14px 8px; background: var(--surface); }
.product-section__head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 14px; }
.product-section__head h2 { font-size: 20px; font-weight: 800; margin: 0; }
.product-section__more { font-size: 12px; color: var(--text-muted); font-weight: 600; white-space: nowrap; display: inline-block; padding: 10px 6px; margin: -10px -6px; } /* 터치하기 쉽게 누르는 영역만 넓힘 */
.product-section__sub { font-size: 12px; color: var(--text-muted); margin: 4px 0 0; }

.feature-banner {
	background: var(--text);
	color: #fff;
	text-align: center;
	padding: 40px 24px;
}
.feature-banner__icon { font-size: 32px; display: block; margin-bottom: 12px; }
.feature-banner h2 { font-size: 19px; margin: 0 0 16px; }
.feature-banner ul { display: inline-flex; flex-direction: column; gap: 8px; text-align: left; }
.feature-banner li { font-size: 13px; color: rgba(255,255,255,0.8); position: relative; padding-left: 18px; }
.feature-banner li::before { content: "✓"; position: absolute; left: 0; color: var(--accent); font-weight: 800; } /* 어두운 배경이라 진한 민트가 아니라 밝은 민트 */

.product-grid,
ul.products {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 16px 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}
ul.products li.product { margin: 0; padding: 0; width: auto; float: none; min-width: 0; }
/* 우커머스가 목록 앞뒤에 붙이는 빈 clearfix(::before/::after)는 그리드에서는 "빈 칸 하나"가 되어
   첫 상품을 오른쪽 칸으로 밀어낸다 (전체 상품/카테고리/검색 목록 전부) */
ul.products::before,
ul.products::after { content: none !important; display: none !important; }
.product-card__link { display: block; }
.product-card__thumb {
	position: relative;
	aspect-ratio: 1 / 1;
	border-radius: var(--radius-m);
	overflow: hidden;
	background: var(--surface-soft);
}

/* 미인증 상태 플레이스홀더: 실제 사진 대신 컬러 그라디언트 + 쉿 이모지 + 19 (바붐샵과 동일 패턴)
   비회원 화면은 페이지 캐시에 안전하도록 서버가 늘 이 모습으로 내보내고, 이미 인증한 방문자는
   <head>의 작은 스크립트가 <html class="kreve-verified">를 붙여서 아래 규칙이 적용되지 않는다. */
.product-card__img { position: absolute; inset: 0; }
.product-card__img img { width: 100%; height: 100%; object-fit: cover; }
html:not(.kreve-verified) .product-card__img.is-blurred { display: flex; align-items: center; justify-content: center; }
html:not(.kreve-verified) .product-card__img.is-blurred img { display: none; }
html:not(.kreve-verified) .product-card__img.is-blurred::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--kreve-grad, linear-gradient(135deg, #b9efe0, #ffe29a, #a0e7d8, #a9c9ff));
}
html:not(.kreve-verified) .product-grid .product-card:nth-of-type(4n+1) .product-card__img.is-blurred::before { background: linear-gradient(135deg, #b9efe0, #ffe29a); }
html:not(.kreve-verified) .product-grid .product-card:nth-of-type(4n+2) .product-card__img.is-blurred::before { background: linear-gradient(135deg, #a9c9ff, #d6b8ff); }
html:not(.kreve-verified) .product-grid .product-card:nth-of-type(4n+3) .product-card__img.is-blurred::before { background: linear-gradient(135deg, #a0e7d8, #cdeda3); }
html:not(.kreve-verified) .product-grid .product-card:nth-of-type(4n+4) .product-card__img.is-blurred::before { background: linear-gradient(135deg, #ffe29a, #7ddbc3); }
/* 인증한 방문자: 인증 전 안내(성인 확인 창, 상품 카드/상세의 "인증 후 확인 가능" 덮개)는 보이지 않는다 */
html.kreve-verified .kreve-age-gate,
html.kreve-verified .product-card__blind-overlay { display: none !important; }

.product-card__blind-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	z-index: 2;
}
.product-card__blind-overlay .shush { font-size: 30px; line-height: 1; }
.badge-19 {
	font-weight: 800;
	font-size: 20px;
	color: rgba(255,255,255,0.85);
	letter-spacing: 0.02em;
}
.product-card__blind-text {
	font-size: 10px;
	color: rgba(255,255,255,0.9);
	font-weight: 700;
	background: rgba(24,41,61,0.35);
	padding: 3px 9px;
	border-radius: 999px;
}

.ribbon {
	position: absolute;
	top: 8px;
	font-size: 10px;
	font-weight: 800;
	padding: 4px 8px;
	border-radius: var(--radius-s);
	z-index: 3;
}
.ribbon--sale { left: 8px; background: var(--accent); color: var(--on-accent); }
.ribbon--ship { right: 8px; background: rgba(24,41,61,0.7); color: #fff; }

.product-card__body { padding: 10px 2px 0; }
.product-card__name {
	font-size: 14.5px;
	font-weight: 500;
	line-height: 1.35;
	margin: 0 0 4px;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	word-break: keep-all;
	overflow-wrap: anywhere;
}
.product-card__price { font-size: 13px; font-weight: 800; margin: 0 0 4px; color: var(--accent-ink); }
.product-card__price ins { text-decoration: none; }
.product-card__price del { color: var(--text-muted); font-size: 12px; font-weight: 500; margin-right: 4px; }
.product-card__rating { font-size: 11px; color: var(--text-muted); margin: 0; }

.product-card--placeholder .product-card__thumb { display: flex; align-items: center; justify-content: center; }

/* =========================================================
   Review teaser
========================================================= */
.review-teaser { padding: 26px 14px 40px; background: var(--surface); }
.review-teaser h2 { font-size: 17px; margin: 0 0 14px; }
.review-teaser__list { display: flex; flex-direction: column; gap: 10px; }
.review-teaser__card { background: var(--surface-soft); border: 1px solid var(--line); border-radius: var(--radius-m); padding: 16px; }
.review-teaser__stars { color: #e08a00; font-size: 13px; margin-bottom: 6px; }
.review-teaser__card p { margin: 0 0 8px; font-size: 13px; }
.review-teaser__meta { font-size: 11px; color: var(--text-muted); }
.review-teaser__sub { font-size: 12px; color: var(--text-muted); margin: -8px 0 14px; }

/* =========================================================
   Footer / bottom tab bar
========================================================= */
.site-footer {
	background: #21262d;
	color: rgba(255,255,255,0.6);
	padding: 28px 16px 32px;
	font-size: 11px;
	line-height: 1.8;
}
.site-footer__brand { color: #fff; font-weight: 800; font-size: 14px; margin-bottom: 8px; }
.site-footer__copy { margin-top: 10px; opacity: 0.7; }

.site-footer__top {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding-bottom: 20px;
	margin-bottom: 20px;
	border-bottom: 1px solid rgba(255,255,255,0.1);
}
.site-footer__title { color: #fff; font-weight: 800; font-size: 13px; margin: 0 0 8px; }
.site-footer__cs-num, .site-footer__bank-num { color: #fff; font-size: 18px; font-weight: 800; margin: 0 0 4px; }

.site-footer__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0 14px;
	padding-bottom: 12px;
	margin-bottom: 20px;
	border-bottom: 1px solid rgba(255,255,255,0.1);
}
.site-footer__links a { font-size: 12px; font-weight: 600; color: rgba(255,255,255,0.75); display: inline-block; padding: 8px 0; }

.site-footer__ftc { margin-left: 4px; text-decoration: underline; color: rgba(255,255,255,0.75); white-space: nowrap; }
.site-footer__terms { margin: 10px 0 0; }
.site-footer__terms a { margin-right: 12px; text-decoration: underline; color: rgba(255,255,255,0.75); display: inline-block; padding: 8px 0; }

.bottom-tab-bar {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 40;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	background: var(--surface);
	border-top: 1px solid var(--line);
	padding: 6px 0 max(6px, env(safe-area-inset-bottom));
}
.bottom-tab-bar__item {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	background: none;
	border: none;
	color: var(--text-muted);
	font-size: 10px;
	font-weight: 600;
	padding: 4px 0;
}
.bottom-tab-bar__item--home { color: var(--accent-ink); }
.bottom-tab-bar__icon { font-size: 18px; }
.cart-count--tab { position: absolute; top: -2px; right: calc(50% - 20px); }

/* =========================================================
   사이드바 (데스크탑 전용 — 쿠폰 / 인기검색어 / 인기브랜드)
========================================================= */
.promo-card {
	background: linear-gradient(160deg, var(--accent-soft) 0%, var(--accent) 85%);
	border-radius: var(--radius-l);
	padding: 22px 20px;
	color: var(--on-accent);
	margin-bottom: 16px;
}
.promo-card__eyebrow { font-size: 12px; font-weight: 700; opacity: 0.85; margin: 0 0 6px; }
.promo-card__title { font-size: 20px; font-weight: 800; margin: 0 0 14px; }
.promo-card__coupon {
	display: flex;
	align-items: baseline;
	gap: 6px;
	background: rgba(255,255,255,0.5);
	border: 1px dashed rgba(11,11,11,0.4);
	border-radius: var(--radius-m);
	padding: 12px 14px;
	font-size: 24px;
	font-weight: 800;
	margin: 0 0 12px;
}
.promo-card__coupon span { font-size: 11px; font-weight: 700; opacity: 0.85; margin-right: 4px; }
.promo-card__coupon em { font-size: 14px; font-style: normal; font-weight: 600; }
.promo-card__desc { font-size: 12px; opacity: 0.9; margin: 0; }

.side-block { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-m); padding: 16px; margin-bottom: 16px; }
.side-block__title { font-size: 13px; font-weight: 800; margin: 0 0 12px; }
.side-block__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.side-tag { font-size: 12px; font-weight: 600; padding: 7px 12px; border-radius: 999px; background: var(--surface-soft); color: var(--text); border: 1px solid var(--line); }
.side-tag.is-hot { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.side-block__brands { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.brand-btn { text-align: center; font-size: 13px; font-weight: 600; padding: 12px 6px; border-radius: var(--radius-s); background: var(--surface-soft); border: 1px solid var(--line); color: var(--text); }

/* =========================================================
   WooCommerce generic overrides (cart / checkout / my account)
========================================================= */
.kreve-shop-wrap { padding: 20px 14px 40px; background: var(--surface); }

.woocommerce-breadcrumb {
	font-size: 12px;
	color: var(--text-muted);
	margin: 0 0 14px;
}
.woocommerce-breadcrumb a { color: var(--text-muted); text-decoration: underline; }

.woocommerce-products-header__title.page-title {
	font-size: 26px;
	font-weight: 800;
	margin: 0 0 8px;
}
.term-description {
	font-size: 13px;
	color: var(--text-muted);
	line-height: 1.6;
	margin: 0 0 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--line);
}

.subcat-grid__title { font-size: 15px; font-weight: 800; margin: 0 0 14px; }
.subcat-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px 8px;
	margin-bottom: 28px;
}
.subcat-item { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; }
.subcat-item__circle {
	position: relative;
	width: 100%;
	max-width: 56px;
	aspect-ratio: 1/1;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #b9efe0, #ffe29a, #a0e7d8, #a9c9ff);
}
.subcat-item:nth-of-type(4n+2) .subcat-item__circle { background: linear-gradient(135deg, #a9c9ff, #d6b8ff); }
.subcat-item:nth-of-type(4n+3) .subcat-item__circle { background: linear-gradient(135deg, #a0e7d8, #cdeda3); }
.subcat-item:nth-of-type(4n+4) .subcat-item__circle { background: linear-gradient(135deg, #ffe29a, #7ddbc3); }
.subcat-item__circle .shush { font-size: 14px; }
.subcat-item__circle .badge-19 { font-size: 9px; }
.subcat-item__label { font-size: 12px; font-weight: 600; color: var(--text); }

/* 필터 바 (퀵칩 + 드롭다운) */
.filter-bar__title { font-size: 15px; font-weight: 800; margin: 0 0 14px; }
.filter-bar__chips {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	padding-bottom: 4px;
	margin-bottom: 12px;
	scrollbar-width: none;
}
.filter-bar__chips::-webkit-scrollbar { display: none; }
.filter-chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	white-space: nowrap;
	font-size: 12px;
	font-weight: 600;
	padding: 8px 12px;
	border-radius: 999px;
	background: var(--surface-soft);
	border: 1px solid var(--line);
	color: var(--text);
}
.filter-chip span { color: var(--text-muted); font-weight: 700; }
.filter-chip.is-active { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.filter-chip.is-active span { color: rgba(11,11,11,0.7); }

.filter-bar__selects {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding-bottom: 20px;
	margin-bottom: 20px;
	border-bottom: 1px solid var(--line);
}
.category-guide { padding: 32px 14px 40px; background: var(--surface); }
.category-guide h2 { font-size: 20px; font-weight: 800; margin: 0 0 6px; }
.category-guide__sub { font-size: 13px; color: var(--text-muted); margin: 0 0 20px; }
.category-guide__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
	margin-bottom: 16px;
}
.category-guide__card {
	display: block;
	padding: 16px;
	border-radius: var(--radius-m);
	border: 1px solid var(--line);
	background: var(--surface-soft);
}
.category-guide__name { display: block; font-size: 15px; font-weight: 800; color: var(--text); margin-bottom: 6px; }
.category-guide__desc { display: block; font-size: 12px; color: var(--text-muted); line-height: 1.5; }
.category-guide__tip {
	font-size: 12px;
	line-height: 1.6;
	color: var(--text-muted);
	background: var(--surface-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-m);
	padding: 14px 16px;
}
.category-guide__tip strong { color: var(--text); }

.filter-bar__selects select {
	font-size: 12px;
	font-weight: 600;
	color: var(--text);
	background: var(--surface-soft);
	border: 1px solid var(--line);
	border-radius: 999px;
	padding: 8px 10px;
	font-family: var(--font);
}
.kreve-page-wrap { padding: 20px 14px 40px; }

.woocommerce table.shop_table { width: 100%; border-collapse: collapse; font-size: 13px; }
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { padding: 10px 6px; border-bottom: 1px solid var(--line); text-align: left; }
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 20px;
	border-radius: 999px;
	background: var(--accent) !important;
	color: var(--on-accent) !important;
	font-weight: 700;
	font-size: 14px;
	border: none !important;
	box-shadow: none;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
	width: 100%;
	padding: 11px 12px;
	border-radius: var(--radius-s);
	border: 1px solid #ddd;
}
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-top-color: var(--accent-ink) !important;
	border-radius: var(--radius-s);
	padding: 12px 16px !important;
}

/* 마이페이지(계정) 내비게이션 */
.woocommerce-MyAccount-navigation ul {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	padding-bottom: 8px;
	margin-bottom: 20px;
	border-bottom: 1px solid var(--line);
	scrollbar-width: none;
}
.woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
.woocommerce-MyAccount-navigation li {
	white-space: nowrap;
	list-style: none;
}
.woocommerce-MyAccount-navigation li a {
	display: inline-block;
	padding: 9px 16px;
	border-radius: 999px;
	background: var(--surface-soft);
	font-size: 13px;
	font-weight: 600;
	color: var(--text-muted);
}
.woocommerce-MyAccount-navigation li.is-active a {
	background: var(--accent);
	color: var(--on-accent);
}
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: 100%; }
.woocommerce-MyAccount-content { font-size: 14px; }

/* 로그인(마이페이지) + 회원가입 안내 */
.kreve-auth { display: flex; flex-direction: column; gap: 20px; }
.kreve-auth h2 { font-size: 17px; font-weight: 800; margin: 0 0 16px; }
.kreve-auth__join { padding: 20px; border: 1px solid var(--line); border-radius: var(--radius-m); background: var(--surface); text-align: center; }
.woocommerce .kreve-auth form.woocommerce-form-login { margin: 0; }
.kreve-auth__join-title { font-size: 14px; font-weight: 800; margin: 0 0 4px; }
.kreve-auth__join-desc { font-size: 12px; color: var(--text-muted); line-height: 1.5; margin: 0 0 14px; }
.kreve-auth__join-btn { width: 100%; }
.btn--outline { background: var(--surface); color: var(--accent-ink); border: 1px solid var(--accent-ink); }
.btn--outline:hover { background: var(--accent-soft); }

/* 회원가입 전용 페이지 (약관동의 → 가입정보 위저드를 카드 하나에) */
.join-wrap { background: var(--surface-soft); min-height: 60vh; }
.join-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-l); padding: 22px 20px 24px; box-shadow: 0 8px 28px rgba(24,41,61,0.08); }
.join-card__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.join-card__title { font-size: 20px; font-weight: 800; margin: 0; }
.join-card__close { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 50%; color: var(--text-muted); font-size: 16px; line-height: 1; }
.join-card__close:hover { background: var(--surface-soft); color: var(--text); }
.woocommerce .join-card form.woocommerce-form-register { border: 0; padding: 0; margin: 0; border-radius: 0; }
.join-login { text-align: center; font-size: 13px; color: var(--text-muted); margin: 20px 0 0; }
.join-login a { color: var(--accent-ink); font-weight: 700; margin-left: 4px; }
.join-closed { font-size: 14px; color: var(--text-muted); margin: 16px 0 20px; }
.join-closed__btn { width: 100%; }
.join-page .woocommerce-error,
.join-page .woocommerce-message,
.join-page .woocommerce-info { margin: 0 0 14px; }

.reg-wizard__progress { display: flex; align-items: center; justify-content: center; gap: 8px; margin-bottom: 20px; }
.reg-wizard__step { display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; color: var(--text-muted); }
.reg-wizard__dot {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--surface-soft);
	color: var(--text-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	font-weight: 800;
}
.reg-wizard__step.is-active { color: var(--accent-ink); }
.reg-wizard__step.is-active .reg-wizard__dot { background: var(--accent); color: var(--on-accent); }
.reg-wizard__line { width: 40px; height: 1px; background: var(--line); }
.reg-wizard__sub { font-size: 12px; color: var(--text-muted); line-height: 1.5; margin: 0 0 18px; }

.reg-agree {
	display: block;
	position: relative;
	font-size: 13px;
	color: var(--text);
	padding: 12px 44px 12px 4px;
	border-bottom: 1px solid var(--line);
}
.reg-agree input[type="checkbox"] { margin-right: 6px; accent-color: var(--accent-ink); vertical-align: middle; }
.reg-agree--all { padding: 14px 4px; background: var(--surface-soft); border-radius: var(--radius-m); border-bottom: none; margin-bottom: 4px; }
.reg-agree__must { font-size: 10px; font-weight: 800; color: var(--accent-ink); background: var(--accent-soft); padding: 2px 6px; border-radius: 999px; margin-right: 4px; }
.reg-agree__optional { font-size: 10px; font-weight: 800; color: var(--text-muted); background: var(--surface-soft); padding: 2px 6px; border-radius: 999px; margin-right: 4px; }
.reg-agree__view { position: absolute; right: -6px; top: 50%; transform: translateY(-50%); font-size: 11px; color: var(--text-muted); text-decoration: underline; padding: 14px 10px; }
.reg-agree--marketing { background: var(--accent-soft); border: 1px solid var(--accent-line); border-radius: var(--radius-m); border-bottom: 1px solid var(--accent-line); padding: 12px; margin-top: 12px; }
.reg-agree__benefit { display: block; font-size: 11px; color: var(--accent-ink); font-weight: 700; margin-top: 6px; }

.reg-wizard__note { font-size: 11px; color: var(--text-muted); margin: 16px 0 20px; line-height: 1.5; }
.reg-wizard__next,
.woocommerce-form-register__submit { width: 100%; }
.reg-wizard__next:disabled { opacity: 0.4; cursor: not-allowed; }
.reg-wizard__back {
	display: block;
	width: 100%;
	text-align: center;
	background: none;
	border: none;
	color: var(--text-muted);
	font-size: 12px;
	margin-top: 12px;
}
.woocommerce-MyAccount-content .addresses .title h3 { font-size: 15px; }

/* 마이페이지 홈 대시보드 */
.my-dashboard__hero {
	background: linear-gradient(135deg, var(--accent), var(--accent-dim));
	border-radius: var(--radius-l);
	padding: 20px;
	margin-bottom: 20px;
}
.my-dashboard__hero-top { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }
.my-dashboard__hello { font-size: 18px; font-weight: 800; color: var(--on-accent); margin: 0; }
.my-dashboard__tier {
	font-size: 11px;
	font-weight: 700;
	color: var(--on-accent);
	background: rgba(255,255,255,0.5);
	padding: 4px 10px;
	border-radius: 999px;
}

.my-stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.my-stat-card {
	display: block;
	text-align: center;
	background: rgba(255,255,255,0.5);
	border-radius: var(--radius-m);
	padding: 14px 6px;
}
.my-stat-card__value { font-size: 16px; font-weight: 800; color: var(--on-accent); margin: 0 0 4px; }
.my-stat-card__label { font-size: 11px; color: rgba(11,11,11,0.75); margin: 0; font-weight: 600; }

.my-dashboard__section-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.my-dashboard__section-head h3 { font-size: 14px; font-weight: 800; margin: 0; }
.my-dashboard__section-head a { font-size: 11px; color: var(--text-muted); font-weight: 600; display: inline-block; padding: 12px 6px; margin: -12px -6px; }

.my-order-list { display: flex; flex-direction: column; gap: 8px; }
.my-order-list__item {
	border: 1px solid var(--line);
	border-radius: var(--radius-m);
	padding: 12px 14px;
}
.my-order-list__item a { display: block; }
.my-order-list__top { display: flex; justify-content: space-between; margin-bottom: 6px; }
.my-order-list__status { font-size: 12px; font-weight: 800; color: var(--accent-ink); }
.my-order-list__date { font-size: 11px; color: var(--text-muted); }
.my-order-list__name {
	display: block;
	font-size: 13px;
	color: var(--text);
	margin-bottom: 6px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.my-order-list__total { font-size: 13px; font-weight: 800; color: var(--text); }

/* 마이페이지 > 쿠폰 */
.my-coupon-list { display: flex; flex-direction: column; gap: 10px; }
.my-coupon-card {
	position: relative;
	border: 1px solid var(--line);
	border-radius: var(--radius-m);
	padding: 16px;
}
.my-coupon-card__badge {
	position: absolute;
	top: 14px;
	right: 14px;
	font-size: 10px;
	font-weight: 700;
	color: var(--accent-ink);
	background: var(--accent-soft);
	padding: 3px 8px;
	border-radius: 999px;
}
.my-coupon-card__amount { font-size: 20px; font-weight: 800; color: var(--accent-ink); margin: 0 0 4px; }
.my-coupon-card__title { font-size: 13px; font-weight: 700; color: var(--text); margin: 0 0 6px; }
.my-coupon-card__cond,
.my-coupon-card__expiry { font-size: 11px; color: var(--text-muted); margin: 0 0 2px; }
.my-coupon-card__code {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px dashed var(--line);
}
.my-coupon-card__code code { font-size: 13px; font-weight: 700; letter-spacing: 0.03em; }
.kreve-copy-btn {
	font-size: 11px;
	font-weight: 700;
	color: var(--text);
	background: var(--surface-soft);
	border: 1px solid var(--line);
	border-radius: 999px;
	padding: 9px 14px;
	min-height: 34px;
}

/* 마이페이지 > 포인트 */
.my-points-hero {
	background: linear-gradient(135deg, var(--accent), var(--accent-dim));
	border-radius: var(--radius-l);
	padding: 24px 20px;
	margin-bottom: 20px;
	text-align: center;
}
.my-points-hero__label { font-size: 12px; color: rgba(11,11,11,0.75); margin: 0 0 6px; font-weight: 600; }
.my-points-hero__value { font-size: 28px; font-weight: 800; color: var(--on-accent); margin: 0; }
.my-points-log { display: flex; flex-direction: column; }
.my-points-log__item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--line);
}
.my-points-log__icon {
	flex: none;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--surface-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	color: var(--text-muted);
}
.my-points-log__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.my-points-log__reason { font-size: 13px; color: var(--text); }
.my-points-log__date { font-size: 11px; color: var(--text-muted); }
.my-points-log__amount { flex: none; font-size: 13px; font-weight: 800; }
.my-points-log__amount.is-plus { color: var(--accent-ink); }
.my-points-log__amount.is-minus { color: var(--text-muted); }

/* 마이페이지 > 리뷰 */
.my-review-tabs { display: flex; gap: 8px; margin-bottom: 16px; }
.my-review-tabs__btn {
	flex: 1;
	background: var(--surface-soft);
	border: 1px solid var(--line);
	border-radius: 999px;
	padding: 10px;
	font-size: 12px;
	font-weight: 700;
	color: var(--text-muted);
}
.my-review-tabs__btn.is-active { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.my-review-card {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--line);
}
.my-review-card__thumb { flex: none; width: 56px; height: 56px; border-radius: var(--radius-s); overflow: hidden; background: var(--surface-soft); }
.my-review-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.my-review-card__body { flex: 1; min-width: 0; }
.my-review-card__name { font-size: 13px; color: var(--text); margin: 0 0 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.my-review-card__done { font-size: 11px; color: var(--text-muted); font-weight: 600; }
.btn--sm { padding: 8px 14px; font-size: 12px; border-radius: var(--radius-s); }

/* 마이페이지 > 회원탈퇴 */
.withdraw-thanks {
	background: var(--surface-soft);
	border-radius: var(--radius-m);
	padding: 18px;
	text-align: center;
	margin-bottom: 16px;
	font-size: 13px;
}
.withdraw-thanks p { margin: 0 0 6px; }
.withdraw-thanks__sub { font-size: 12px; color: var(--text-muted); }
.withdraw-warning {
	background: #fff8e6;
	border: 1px solid #ffe4a3;
	border-radius: var(--radius-m);
	padding: 16px;
	margin-bottom: 20px;
}
.withdraw-warning__title { font-size: 13px; font-weight: 800; margin: 0 0 10px; }
.withdraw-warning ul { display: flex; flex-direction: column; gap: 8px; }
.withdraw-warning li { font-size: 12px; color: var(--text); line-height: 1.5; position: relative; padding-left: 14px; }
.withdraw-warning li::before { content: "⚠"; position: absolute; left: 0; font-size: 11px; }
.withdraw-form__agree { display: flex; align-items: center; gap: 8px; font-size: 12px; margin-bottom: 16px; }
.withdraw-form__reason-label { display: block; font-size: 12px; font-weight: 700; margin-bottom: 8px; }
.withdraw-form select {
	width: 100%;
	padding: 11px 12px;
	border: 1px solid var(--line);
	border-radius: var(--radius-s);
	font-family: var(--font);
	margin-bottom: 20px;
}
.withdraw-form .btn { width: 100%; }
.withdraw-form .btn:disabled { opacity: 0.4; cursor: not-allowed; }

/* 마이페이지 > 계정정보 프로필 카드 */
.my-profile-card { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; }
.my-profile-card__avatar {
	flex: none;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--accent);
	color: var(--on-accent);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	font-weight: 800;
}
.my-profile-card__name { font-size: 16px; font-weight: 800; margin: 0 0 4px; }
.my-profile-card__email,
.my-profile-card__since { font-size: 12px; color: var(--text-muted); margin: 0; }

/* WooCommerce 블록형 카트/체크아웃 버튼 브랜드 컬러 통일 */
.wc-block-components-button.wp-element-button,
.wc-block-cart__submit-button,
a.wc-block-components-button {
	background: var(--accent) !important;
	color: var(--on-accent) !important;
	border-radius: 999px !important;
	border: none !important;
}
.wc-block-components-button.wp-element-button:hover { background: var(--accent-dim) !important; }
.wc-block-cart-item__wrap { align-items: flex-start; }

/* =========================================================
   장바구니 / 결제 (WooCommerce Blocks) 비주얼을 사이트 톤에 맞게 재스타일
   (레이아웃이 항상 600px 고정폭 컬럼 안이라 별도 데스크탑 분기 없이 이 배치 하나로 통일)
========================================================= */

/* 입력창 / 셀렉트 */
.wc-block-components-text-input {
	border: none !important;
	background: var(--surface);
}
.wc-block-components-text-input input {
	font-family: var(--font);
	color: var(--text);
	border: 1px solid var(--line) !important;
	border-radius: var(--radius-s) !important;
	box-shadow: none !important;
}
.wc-block-components-text-input input:focus { border-color: var(--accent-ink) !important; }
.wc-block-components-text-input label { color: var(--text-muted); }
.wc-blocks-components-select__select {
	border: 1px solid var(--line) !important;
	border-radius: var(--radius-s) !important;
	font-family: var(--font);
	background-color: var(--surface) !important;
}

/* 체크아웃 스텝 (연락처 정보/배송 주소/배송설정/결제 옵션) */
.wc-block-components-checkout-step { padding: 20px 0; border-bottom: 1px solid var(--line); }
.wc-block-components-checkout-step__title { font-size: 16px; font-weight: 800; color: var(--text); }

/* 배송/결제 방법 선택 라디오 */
.wc-block-components-radio-control__option {
	border: 1px solid var(--line) !important;
	border-radius: var(--radius-m);
	padding: 12px 14px;
	margin-bottom: 8px;
}
.wc-block-components-radio-control__option-checked { border-color: var(--accent-ink) !important; background: var(--accent-soft); }
.wc-block-components-radio-control__input:checked { accent-color: var(--accent-ink); }
.wc-block-components-radio-control__label { font-size: 13px; font-weight: 700; color: var(--text); }
.wc-block-components-radio-control__secondary-label { font-size: 13px; font-weight: 700; color: var(--accent-ink); }
.wc-block-components-radio-control__description { font-size: 11px; color: var(--text-muted); }

/* 쿠폰 패널 */
.wc-block-components-panel__button { font-size: 13px; font-weight: 700; color: var(--text); }
.wc-block-components-totals-coupon__button { border-radius: 999px !important; }

/* 합계 라인 (소계/배송/총액) */
.wc-block-components-totals-item { font-size: 13px; padding: 8px 0; }
.wc-block-components-totals-item__label { color: var(--text-muted); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 17px; font-weight: 800; color: var(--text); }

/* 장바구니 표 → 카드형 배치로 재구성. 우커머스 블록 자체도 grid를 쓰므로
   충돌 없게 컬럼/행을 !important로 명시 고정 (기본 배치는 폭이 좁아
   오른쪽 뱃지가 화면 밖으로 넘침) */
.wc-block-cart-items, .wc-block-cart-items tbody { display: block; width: 100%; }
.wc-block-cart-items__header { display: none; }
.wc-block-cart-items__row {
	display: grid !important;
	grid-template-columns: 72px 1fr !important;
	column-gap: 12px;
	row-gap: 6px;
	padding: 16px 0;
	border-bottom: 1px solid var(--line);
}
.wc-block-cart-item__image { display: block !important; grid-column: 1 !important; grid-row: 1 / 3 !important; padding: 0; }
.wc-block-cart-item__image img {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: var(--radius-s);
	background: var(--surface-soft);
}
.wc-block-cart-item__product { display: block !important; grid-column: 2 !important; grid-row: 1 !important; padding: 0; }
.wc-block-components-product-name { font-size: 13px; font-weight: 700; color: var(--text); }
.wc-block-cart-item__prices { margin: 4px 0 8px; font-size: 12px; }
.wc-block-cart-item__total { display: block !important; grid-column: 2 !important; grid-row: 2 !important; padding: 4px 0 0; }
.wc-block-cart-item__total-price-and-sale-badge-wrapper { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.wc-block-components-sale-badge {
	background: var(--accent-soft);
	color: var(--accent-ink);
	font-size: 11px;
	font-weight: 700;
	padding: 3px 8px;
	border-radius: 999px;
	white-space: nowrap;
}
.wc-block-components-quantity-selector { border: 1px solid var(--line); border-radius: 999px; overflow: hidden; }
.wc-block-cart-item__remove-link { color: var(--text-muted); }

/* Single product page */
.woocommerce div.product .product_title { font-size: 20px; margin: 14px 0 6px; }
.woocommerce div.product p.price { font-size: 20px; font-weight: 800; color: var(--text); }
.woocommerce div.product .woocommerce-product-gallery { border-radius: var(--radius-m); overflow: hidden; }
/* 상품 사진 비율이 제각각이어도 대표 사진 칸은 정사각으로 고정: 세로로 긴 사진이 화면을 다 차지하거나 사진을 넘길 때마다 높이가 출렁이는 것을 막는다(사진은 잘리지 않고 전체가 보임) */
.woocommerce div.product div.images .woocommerce-product-gallery__image { aspect-ratio: 1 / 1; background: var(--surface-soft); overflow: hidden; }
.woocommerce div.product div.images .woocommerce-product-gallery__image > a { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
.woocommerce div.product div.images .woocommerce-product-gallery__image > a > img { width: 100%; height: 100%; object-fit: contain; }

.kreve-gallery-wrap { position: relative; border-radius: var(--radius-m); overflow: hidden; }
html:not(.kreve-verified) .kreve-unverified .kreve-gallery-wrap { background: linear-gradient(135deg, #b9efe0, #a9c9ff, #a0e7d8); }
html:not(.kreve-verified) .kreve-unverified .kreve-gallery-wrap .woocommerce-product-gallery__image img { opacity: 0; }
.product-card__blind-overlay--single { position: absolute; inset: 0; z-index: 5; }
.product-card__blind-overlay--single .shush { font-size: 44px; }
.product-card__blind-overlay--single .badge-19 { font-size: 26px; color: rgba(24,41,61,0.55); }
.woocommerce div.product form.cart .button {
	width: 100%;
	padding: 15px;
	font-size: 16px;
	margin-top: 4px;
}

/* 상품 상세 수량 선택 — 장바구니 페이지 스테퍼와 같은 톤 */
.woocommerce div.product form.cart .quantity {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--line);
	border-radius: 999px;
	overflow: hidden;
	margin-bottom: 14px;
}
.woocommerce div.product form.cart .quantity input.qty {
	height: 42px;
	width: 52px;
	border: none;
	text-align: center;
	font-family: var(--font);
	font-size: 14px;
	font-weight: 700;
	color: var(--text);
	-moz-appearance: textfield;
}
.woocommerce div.product form.cart .quantity input.qty::-webkit-inner-spin-button,
.woocommerce div.product form.cart .quantity input.qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.kreve-qty-btn {
	width: 44px;
	min-height: 42px;
	border: none;
	background: var(--surface-soft);
	color: var(--text);
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}
.kreve-qty-btn:active { background: var(--line); }

/* 쿠폰 안내 / 예상 혜택가 / 배송 안내 박스 */
.coupon-box {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--surface-soft);
	border: 1px dashed var(--accent);
	border-radius: var(--radius-s);
	padding: 10px 12px;
	margin: 12px 0;
	font-size: 12px;
}
.coupon-box__icon { font-size: 16px; }
.coupon-box__text { flex: 1; color: var(--text); }
.coupon-box__text strong { color: var(--accent-ink); }
.coupon-box__cta { font-weight: 700; color: var(--text-muted); font-size: 12px; white-space: nowrap; display: inline-block; padding: 12px 6px; margin: -12px -6px; }

.benefit-box {
	background: var(--surface-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-m);
	padding: 14px 16px;
	margin: 10px 0;
}
.benefit-box__title { font-size: 12px; font-weight: 700; color: var(--text-muted); margin: 0 0 6px; }
.benefit-box__price { font-size: 20px; font-weight: 800; color: var(--accent-ink); margin: 0 0 10px; }
.benefit-box__label { margin-left: 6px; font-size: 11px; font-weight: 600; color: var(--text-muted); }
.benefit-box__list { display: flex; flex-direction: column; gap: 5px; margin: 0 0 8px; }
.benefit-box__list li { display: flex; justify-content: space-between; font-size: 12px; color: var(--text); }
.benefit-box__note { font-size: 10px; color: var(--text-muted); margin: 0; }

.delivery-box {
	font-size: 12px;
	font-weight: 600;
	color: var(--text);
	background: var(--surface-soft);
	border-radius: var(--radius-s);
	padding: 10px 12px;
	margin: 0 0 14px;
}
.delivery-box strong { color: var(--accent-ink); }

/* 하단 고정 구매바 (담기 버튼이 화면 밖으로 나가면 JS가 노출) */
.sticky-cart-bar {
	position: fixed;
	left: 0; right: 0; bottom: 64px;
	z-index: 45;
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--surface);
	border-top: 1px solid var(--line);
	box-shadow: 0 -4px 16px rgba(0,0,0,0.06);
	padding: 10px 14px;
	padding-bottom: calc(10px + env(safe-area-inset-bottom));
}
.sticky-cart-bar__info { flex: 1; min-width: 0; }
.sticky-cart-bar__name { font-size: 12px; color: var(--text-muted); margin: 0 0 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sticky-cart-bar__price { font-size: 15px; font-weight: 800; color: var(--text); margin: 0; }
.sticky-cart-bar__actions { display: flex; gap: 8px; flex: none; }
.sticky-cart-bar__actions .btn { padding: 11px 16px; font-size: 13px; border-radius: var(--radius-s); }

/* 커스텀 탭 (상세정보 / 리뷰 / 배송·교환 / 추천상품) */
.product-tabs { margin-top: 24px; border-top: 8px solid var(--surface-soft); }
.product-tabs__nav { display: flex; border-bottom: 1px solid var(--line); }
.product-tabs__btn {
	flex: 1;
	background: none;
	border: none;
	padding: 14px 4px;
	font-size: 13px;
	font-weight: 600;
	color: var(--text-muted);
	border-bottom: 2px solid transparent;
}
.product-tabs__btn.is-active { color: var(--text); font-weight: 800; border-bottom-color: var(--accent-ink); }
.product-tabs__panel { padding: 20px 14px 40px; font-size: 13px; line-height: 1.7; color: var(--text); }
.product-tabs__desc img { border-radius: var(--radius-s); margin: 8px 0; }

.woocommerce-noreviews { font-size: 12px; color: var(--text-muted); text-align: center; padding: 30px 0; }

/* 별점 분포 바 */
.rating-dist { display: flex; gap: 24px; padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid var(--line); }
.rating-dist__summary { flex: none; width: 90px; text-align: center; }
.rating-dist__score { font-size: 28px; font-weight: 800; margin: 0; color: var(--text); }
.rating-dist__stars { color: #e08a00; letter-spacing: 1px; margin: 4px 0; font-size: 13px; }
.rating-dist__count { font-size: 11px; color: var(--text-muted); margin: 0; }
.rating-dist__bars { flex: 1; display: flex; flex-direction: column; gap: 6px; justify-content: center; }
.rating-dist__row { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--text-muted); }
.rating-dist__row span:first-child { width: 24px; flex: none; }
.rating-dist__row span:last-child { width: 32px; flex: none; text-align: right; }
.rating-dist__track { flex: 1; height: 6px; border-radius: 999px; background: var(--surface-soft); overflow: hidden; }
.rating-dist__fill { height: 100%; background: var(--accent); }

/* 배송/교환 탭 */
.shipping-tab__block { margin-bottom: 18px; }
.shipping-tab__block h4 { font-size: 13px; font-weight: 800; margin: 0 0 8px; }
.shipping-tab__block ul { display: flex; flex-direction: column; gap: 5px; }
.shipping-tab__block li { font-size: 12px; color: var(--text-muted); position: relative; padding-left: 12px; }
.shipping-tab__block li::before { content: "·"; position: absolute; left: 0; }
.shipping-tab__block p { font-size: 12px; color: var(--text-muted); margin: 0; }
.shipping-tab__block a { text-decoration: underline; color: var(--text); }

/* 리뷰 작성 폼 (우커머스 comment_form 출력을 톤에 맞게 재스타일) */
#reviews .comment-form-rating label { display: block; font-size: 12px; font-weight: 700; margin-bottom: 6px; }
#reviews .comment-form p { margin: 0 0 12px; }
#reviews .comment-form input[type="text"],
#reviews .comment-form input[type="email"],
#reviews .comment-form textarea {
	width: 100%;
	border: 1px solid var(--line);
	border-radius: var(--radius-s);
	padding: 10px 12px;
	font-family: var(--font);
	font-size: 13px;
}
#reviews .comment-form textarea { min-height: 90px; }
#reviews #respond p.form-submit input {
	background: var(--accent);
	color: var(--on-accent);
	border: none;
	border-radius: 999px;
	padding: 11px 20px;
	font-weight: 700;
	font-size: 13px;
}

/* =========================================================
   Desktop (>= 1040px): 사이드바(380px) + 고정폭 메인(600px) — 바붐샵과 동일 패턴
========================================================= */
@media (min-width: 1040px) {
	body { padding-bottom: 0; background: var(--bg-page); }
	.bottom-tab-bar { display: none; }

	.kreve-layout {
		display: flex;
		align-items: flex-start;
		justify-content: center;
		gap: 24px;
		max-width: calc(var(--sidebar-w) + var(--main-w) + 24px);
		margin: 0 auto;
	}
	.kreve-sidebar {
		display: block;
		width: var(--sidebar-w);
		flex: none;
		position: sticky;
		top: 0;
		padding-top: 24px;
	}
	.kreve-main {
		position: relative;
		width: var(--main-w);
		flex: none;
		background: var(--surface);
		box-shadow: 0 0 0 1px var(--line);
		border-radius: 0;
		overflow: hidden;
	}
	.kreve-main .site-header {
		position: static;
	}
	/* position:fixed 오버레이(햄버거 메뉴, 19금 인증 모달, 상품 하단 구매바 등)는
	   뷰포트 기준 top/bottom은 그대로 두고, left/width만 이 600px 박스의 실제
	   화면 좌표에 맞춰 계산한다. (한때 .kreve-main에 contain:layout을 써서
	   containing block 자체를 바꿨더니, 스크롤한 뒤 열었을 때 메뉴가 뷰포트가
	   아니라 문서 전체 높이 기준으로 배치되어 화면 밖으로 밀려나는 버그가 있었음) */
	.mobile-menu,
	.kreve-age-gate,
	.sticky-cart-bar,
	.kreve-modal {
		left: calc(50% + (var(--sidebar-w) + 24px - var(--main-w)) / 2);
		right: auto;
		width: var(--main-w);
	}
	.sticky-cart-bar { bottom: 0; }
	.announce-bar,
	.hero,
	.value-grid,
	.product-section,
	.review-teaser { border-radius: 0; }

	.site-header__top { padding: 14px 20px; }
	.site-search { padding: 0 20px 12px; }
	.quick-nav, .category-tabs { padding-left: 20px; padding-right: 20px; }

	.hero__content { padding: 32px 24px 36px; }
	.hero__title { font-size: 26px; }

	.site-footer__top { flex-direction: row; gap: 40px; }

	.value-grid { padding: 20px; }
	.product-section { padding: 26px 20px 8px; }
	.review-teaser { padding: 26px 20px 40px; }
	.kreve-shop-wrap, .kreve-page-wrap { padding: 24px 20px 40px; }
	.category-guide { padding: 32px 20px 40px; }
	.category-guide__grid { grid-template-columns: repeat(3, 1fr); }
}

/* =========================================================
   공용 빈 상태 (주문내역/배송지/리뷰 등에서 재사용)
========================================================= */
.empty-state { text-align: center; padding: 50px 20px; }
.empty-state__icon { font-size: 40px; display: block; margin-bottom: 14px; }
.empty-state__title { font-size: 15px; font-weight: 800; color: var(--text); margin: 0 0 6px; }
.empty-state__sub { font-size: 12px; color: var(--text-muted); margin: 0 0 20px; }

/* =========================================================
   주문내역 리스트
========================================================= */
.order-badge { font-size: 11px; font-weight: 800; padding: 4px 10px; border-radius: 999px; }
.order-badge--active { background: var(--accent-soft); color: var(--accent-ink); }
.order-badge--wait { background: #fff4de; color: #b3720a; }
.order-badge--done { background: var(--surface-soft); color: var(--text-muted); }
.order-badge--cancel { background: #f1f1f1; color: #999; }

.order-list { display: flex; flex-direction: column; gap: 10px; }
.order-list__item { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 16px; }
.order-list__item a { display: block; }
.order-list__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.order-list__date { font-size: 11px; color: var(--text-muted); }
.order-list__name { font-size: 14px; font-weight: 700; color: var(--text); margin: 0 0 12px; }
.order-list__bottom { display: flex; align-items: center; justify-content: space-between; padding-top: 12px; border-top: 1px dashed var(--line); }
.order-list__no { font-size: 11px; color: var(--text-muted); }
.order-list__total { font-size: 14px; font-weight: 800; color: var(--text); }
.order-list__pagination { display: flex; justify-content: center; gap: 10px; margin-top: 20px; }

/* =========================================================
   주문 상세
========================================================= */
.order-status-banner {
	text-align: center;
	font-size: 14px;
	font-weight: 800;
	padding: 16px;
	border-radius: var(--radius-m);
	margin-bottom: 20px;
	background: var(--surface-soft);
	color: var(--text-muted);
}
.order-status-banner--cancel { background: #f1f1f1; color: #999; }

.order-stepper { display: flex; align-items: flex-start; margin-bottom: 24px; }
.order-stepper__step { flex: none; width: 84px; display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; color: var(--text-muted); }
.order-stepper__step.is-done { color: var(--accent-ink); }
.order-stepper__dot {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--surface-soft);
	color: var(--text-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 800;
}
.order-stepper__step.is-done .order-stepper__dot { background: var(--accent); color: var(--on-accent); }
.order-stepper__bar { flex: 1; height: 2px; background: var(--line); margin-top: 13px; }
.order-stepper__bar.is-done { background: var(--accent); }

.order-meta-box { background: var(--surface-soft); border-radius: var(--radius-m); padding: 14px 16px; margin-bottom: 16px; }
.order-meta-box p { display: flex; justify-content: space-between; font-size: 12px; margin: 0 0 6px; }
.order-meta-box p:last-child { margin-bottom: 0; }
.order-meta-box span { color: var(--text-muted); }
.order-meta-box strong { color: var(--text); font-weight: 700; }

.order-pay-notice { border: 1px dashed var(--accent); border-radius: var(--radius-m); padding: 14px 16px; margin-bottom: 20px; font-size: 12px; color: var(--text); }
.order-pay-notice__account { font-weight: 800; font-size: 14px; color: var(--accent-ink); margin: 6px 0 0; }

.order-section-title { font-size: 14px; font-weight: 800; margin: 24px 0 12px; }
.order-item-list { display: flex; flex-direction: column; gap: 12px; }
.order-item-list__row { display: flex; align-items: center; gap: 12px; }
.order-item-list__thumb { flex: none; width: 56px; height: 56px; border-radius: var(--radius-s); overflow: hidden; background: var(--surface-soft); }
.order-item-list__thumb img { width: 100%; height: 100%; object-fit: cover; }
.order-item-list__body { flex: 1; min-width: 0; }
.order-item-list__name { font-size: 13px; color: var(--text); margin: 0 0 4px; }
.order-item-list__qty { font-size: 11px; color: var(--text-muted); margin: 0; }
.order-item-list__price { flex: none; font-size: 13px; font-weight: 700; color: var(--text); }

.order-totals { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); }
.order-totals p { display: flex; justify-content: space-between; font-size: 12px; color: var(--text-muted); margin: 0 0 8px; }
.order-totals__grand { padding-top: 10px; border-top: 1px dashed var(--line); }
.order-totals__grand span { font-size: 15px; font-weight: 800; color: var(--text) !important; }

.order-address-box { background: var(--surface-soft); border-radius: var(--radius-m); padding: 14px 16px; font-size: 12px; color: var(--text); }
.order-address-box p { margin: 0 0 4px; }
.order-address-box__note { color: var(--text-muted); }

.order-actions { display: flex; gap: 8px; margin-top: 20px; }
.order-actions .btn { flex: 1; }

.order-notes { display: flex; flex-direction: column; gap: 10px; }
.order-notes__item { border: 1px solid var(--line); border-radius: var(--radius-s); padding: 10px 12px; }
.order-notes__date { font-size: 10px; color: var(--text-muted); margin: 0 0 4px; }
.order-notes__text { font-size: 12px; color: var(--text); margin: 0; }
.order-notes__text p { margin: 0; }

/* =========================================================
   배송지 관리
========================================================= */
.address-card-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
.address-card { position: relative; border: 1px solid var(--line); border-radius: var(--radius-m); padding: 16px; }
.address-card.is-default { border-color: var(--accent-ink); }
.address-card__top { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.address-card__label { font-size: 12px; font-weight: 800; color: var(--text); }
.address-card__default { font-size: 10px; font-weight: 700; color: var(--accent-ink); background: var(--accent-soft); padding: 2px 8px; border-radius: 999px; }
.address-card__recipient { font-size: 13px; color: var(--text); margin: 0 0 4px; }
.address-card__addr { font-size: 12px; color: var(--text-muted); margin: 0; }
.address-card__note { font-size: 11px; color: var(--text-muted); margin: 6px 0 0; }
.address-card__actions { display: flex; gap: 14px; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--line); }
.address-card__edit,
.address-card__delete { background: none; border: none; font-size: 12px; font-weight: 700; color: var(--text-muted); padding: 8px 10px; min-height: 36px; }
.address-card__delete { color: var(--danger); }

.address-book__add-btn { width: 100%; margin-bottom: 20px; }

/* =========================================================
   공용 팝업(모달) — 배송지 추가/수정, 리뷰 작성 등에서 재사용.
   .mobile-menu/.kreve-age-gate와 같은 방식으로 데스크탑에서도
   600px 박스 안에서만 뜨도록 아래 데스크탑 미디어쿼리에서 좌표를 맞춘다.
========================================================= */
.kreve-modal {
	position: fixed;
	inset: 0;
	z-index: 65;
	background: rgba(24,41,61,0.5);
	display: flex;
	align-items: flex-end;
	justify-content: center;
}
.kreve-modal__box {
	position: relative;
	width: 100%;
	max-height: 88vh;
	overflow-y: auto;
	background: var(--surface);
	border-radius: var(--radius-l) var(--radius-l) 0 0;
	padding: 24px 20px calc(24px + env(safe-area-inset-bottom));
}
.kreve-modal__box h3 { font-size: 15px; font-weight: 800; margin: 0 0 16px; }
.kreve-modal__close {
	position: absolute;
	top: 18px;
	right: 16px;
	background: none;
	border: none;
	font-size: 16px;
	color: var(--text-muted);
	line-height: 1;
	padding: 4px;
}
.kreve-modal__product-name { font-size: 13px; font-weight: 700; color: var(--text); margin: -8px 0 16px; }

.address-form__labels { display: flex; gap: 16px; margin-bottom: 16px; font-size: 13px; }
.address-form__labels input { accent-color: var(--accent-ink); margin-right: 4px; }
.kreve-modal .form-row { margin: 0 0 14px; }
.kreve-modal .form-row label { display: block; font-size: 12px; font-weight: 700; color: var(--text); margin-bottom: 6px; }
.kreve-modal .form-row input {
	width: 100%;
	padding: 11px 12px;
	border: 1px solid var(--line);
	border-radius: var(--radius-s);
	font-family: var(--font);
	font-size: 13px;
}
.address-form__postcode-row { display: flex; gap: 8px; }
.address-form__postcode-row input { flex: 1; }
.address-form__postcode-row .btn { flex: none; padding: 0 14px; font-size: 12px; white-space: nowrap; }
.address-form__default { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text); margin-bottom: 18px; }
.address-form__default input { accent-color: var(--accent-ink); }
.address-form__actions { display: flex; gap: 8px; }
.address-form__actions .btn { flex: 1; }

/* 리뷰 작성 팝업 */
.review-rating-picker { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 2px; margin-bottom: 16px; }
.review-rating-picker input { position: absolute; opacity: 0; width: 0; height: 0; }
.review-rating-picker label { font-size: 30px; line-height: 1; color: var(--line); cursor: pointer; }
.review-rating-picker input:checked ~ label,
.review-rating-picker label:hover,
.review-rating-picker label:hover ~ label { color: #ffb400; }
#kreve-review-modal textarea {
	width: 100%;
	min-height: 110px;
	padding: 12px;
	border: 1px solid var(--line);
	border-radius: var(--radius-s);
	font-family: var(--font);
	font-size: 13px;
	margin-bottom: 16px;
	resize: vertical;
}
#kreve-review-modal .btn { width: 100%; }

/* =========================================================
   정적 페이지 공통 (약관/가이드/공지/이벤트/회원혜택/체험단)
========================================================= */
.static-breadcrumb { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-muted); margin-bottom: 12px; }
.static-breadcrumb a { color: var(--text-muted); display: inline-block; padding: 10px 12px; margin: -10px -12px; }
.static-page__title { font-size: 20px; font-weight: 800; margin: 0 0 20px; }
.static-page__content { font-size: 14px; line-height: 1.8; color: var(--text); }

.legal-content h3 { font-size: 15px; font-weight: 800; margin: 24px 0 8px; }
.legal-content h3:first-of-type { margin-top: 0; }
.legal-content p { font-size: 13px; line-height: 1.8; color: var(--text); margin: 0 0 4px; }
.legal-content .legal-note { display: none; background: var(--surface-soft); border-radius: var(--radius-s); padding: 12px; color: var(--text-muted); font-size: 12px; margin-bottom: 20px; }
body.admin-bar .legal-content .legal-note { display: block; } /* 초안 안내는 관리자에게만 보인다 */
.legal-content .legal-date { margin-top: 24px; color: var(--text-muted); font-size: 12px; }

/* 공지사항 리스트 */
.board-list { display: flex; flex-direction: column; border-top: 2px solid var(--text); }
.board-row { display: flex; align-items: center; gap: 12px; padding: 14px 4px; border-bottom: 1px solid var(--line); }
.board-row__no { flex: none; width: 28px; font-size: 12px; color: var(--text-muted); }
.board-row__title { flex: 1; min-width: 0; font-size: 13px; color: var(--text); font-weight: 600; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } /* 긴 제목은 두 줄까지 */
.board-row__date { flex: none; font-size: 11px; color: var(--text-muted); }

/* 이벤트 그리드 */
.board-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.board-grid__card { display: block; }
.board-grid__thumb { position: relative; aspect-ratio: 1 / 1; border-radius: var(--radius-m); background: linear-gradient(135deg, var(--accent), var(--accent-dim)); overflow: hidden; display: flex; align-items: center; justify-content: center; margin-bottom: 8px; }
.board-grid__thumb img { width: 100%; height: 100%; object-fit: cover; }
.board-grid__thumb-icon { font-size: 32px; }
.board-badge { position: absolute; top: 8px; left: 8px; font-size: 10px; font-weight: 800; padding: 3px 8px; border-radius: 999px; color: #fff; }
.board-badge--live { background: var(--accent); color: var(--on-accent); }
.board-badge--end { background: rgba(0,0,0,0.45); }
.board-grid__title { font-size: 13px; font-weight: 700; color: var(--text); margin: 0 0 2px; }
.board-grid__period { font-size: 11px; color: var(--text-muted); margin: 0; }

/* 게시글 상세 (공지/이벤트 공용) */
.board-detail__head { border-bottom: 1px solid var(--line); padding-bottom: 14px; margin-bottom: 16px; }
.board-detail__title { font-size: 17px; font-weight: 800; margin: 0 0 8px; }
.board-detail__date { font-size: 12px; color: var(--text-muted); margin: 0; }
.board-detail__thumb { border-radius: var(--radius-m); overflow: hidden; margin-bottom: 16px; }
.board-detail__content { font-size: 14px; line-height: 1.8; color: var(--text); white-space: pre-line; margin-bottom: 24px; }
.board-detail__back { width: 100%; justify-content: center; }

/* 회원혜택 */
.tier-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 20px; }
.tier-card { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 16px; }
.tier-card.is-active { border-color: var(--accent-ink); background: var(--accent-soft); }
.tier-card__name { display: flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 800; color: var(--text); margin: 0 0 6px; }
.tier-card__me { font-size: 10px; font-weight: 700; color: var(--on-accent); background: var(--accent); padding: 2px 7px; border-radius: 999px; }
.tier-card__cond { font-size: 11px; color: var(--text-muted); margin: 0 0 8px; }
.tier-card__perk { font-size: 12px; color: var(--text); line-height: 1.5; margin: 0; }
.tier-progress { text-align: center; font-size: 13px; color: var(--text-muted); margin: 0 0 24px; }
.tier-progress strong { color: var(--accent-ink); }
.benefit-rule-list { display: flex; flex-direction: column; gap: 12px; }
.benefit-rule { display: flex; gap: 12px; align-items: flex-start; border: 1px solid var(--line); border-radius: var(--radius-m); padding: 14px; }
.benefit-rule__icon { font-size: 20px; flex: none; }
.benefit-rule__title { font-size: 13px; font-weight: 700; color: var(--text); margin: 0 0 2px; }
.benefit-rule__desc { font-size: 12px; color: var(--text-muted); margin: 0; }

/* 이용가이드 FAQ */
.faq-accordion__cat { font-size: 13px; font-weight: 800; color: var(--accent-ink); margin: 24px 0 8px; }
.faq-accordion__cat:first-child { margin-top: 0; }
.faq-item { border-bottom: 1px solid var(--line); padding: 12px 2px; }
.faq-item summary { font-size: 13px; font-weight: 600; color: var(--text); cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::before { content: "Q. "; color: var(--accent-ink); font-weight: 800; }
.faq-item[open] summary { margin-bottom: 8px; }
.faq-item__a { font-size: 12px; color: var(--text-muted); line-height: 1.7; padding-left: 4px; }

/* 체험단 */
.trial-intro__desc { font-size: 13px; color: var(--text); line-height: 1.7; margin: 0 0 20px; }
.trial-steps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 20px; }
.trial-steps__item { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 14px; }
.trial-steps__num { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: var(--accent); color: var(--on-accent); font-size: 11px; font-weight: 800; margin-bottom: 8px; }
.trial-steps__title { font-size: 13px; font-weight: 700; color: var(--text); margin: 0 0 4px; }
.trial-steps__desc { font-size: 11px; color: var(--text-muted); margin: 0; line-height: 1.5; }
.trial-intro__cta { font-size: 12px; color: var(--text-muted); text-align: center; }
.trial-intro__cta a { color: var(--accent-ink); font-weight: 700; }


/* 메인 이미지 슬라이더 / 중간 배너 (관리자 > 메인 화면 > 배너 목록에서 등록) */
.home-slider { position: relative; background: var(--surface-soft); }
.home-slider__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.home-slider__track::-webkit-scrollbar { display: none; }
.home-slider__slide { flex: 0 0 100%; scroll-snap-align: start; aspect-ratio: var(--banner-ratio, 2 / 1); overflow: hidden; }
.home-slider__slide a { display: block; height: 100%; }
.home-banner__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.home-slider__dots { position: absolute; left: 0; right: 0; bottom: 10px; display: flex; justify-content: center; gap: 6px; pointer-events: none; }
.home-slider__dot { pointer-events: auto; width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,0.55); box-shadow: 0 0 0 1px rgba(0,0,0,0.12); }
.home-slider__dot.is-active { width: 18px; border-radius: 999px; background: #fff; }
.home-mid-banner { margin: 0; aspect-ratio: var(--banner-ratio, 3 / 1); overflow: hidden; background: var(--surface-soft); }
.home-mid-banner a { display: block; height: 100%; }
.review-teaser a.review-teaser__card { display: block; color: inherit; }

/* 이벤트/공지 팝업 (관리자 > 메인 화면 > 팝업 목록에서 등록). 성인 인증을 마친 방문자에게만 그려진다. */
.kreve-popup {
	position: fixed;
	inset: 0;
	z-index: 90;
	display: flex;
	padding: 24px 20px;
	background: rgba(24,41,61,0.6);
	overflow-y: auto;
	overscroll-behavior: contain;
}
.kreve-popup__box {
	width: 100%;
	max-width: 380px;
	margin: auto;
	background: var(--surface);
	border-radius: var(--radius-m);
	overflow: hidden;
	box-shadow: 0 20px 50px rgba(0,0,0,0.25);
	outline: none;
}
.kreve-popup__body a { display: block; }
.kreve-popup__img { display: block; width: 100%; height: auto; }
.kreve-popup__text { padding: 20px; font-size: 14px; line-height: 1.6; color: var(--text); word-break: keep-all; }
.kreve-popup__text > :first-child { margin-top: 0; }
.kreve-popup__text > :last-child { margin-bottom: 0; }
.kreve-popup__text img { max-width: 100%; height: auto; }
.kreve-popup__body .kreve-popup__more { margin: 0 20px 20px; padding: 12px 8px; border-radius: var(--radius-s); background: var(--accent); color: var(--on-accent); font-size: 13px; font-weight: 700; text-align: center; }
.kreve-popup__bar { display: flex; border-top: 1px solid var(--line); }
.kreve-popup__bar button {
	flex: 1;
	padding: 14px 8px;
	border: 0;
	background: var(--surface);
	font-size: 13px;
	color: var(--text-muted);
}
.kreve-popup__bar button + button { border-left: 1px solid var(--line); }
.kreve-popup__bar .kreve-popup__close { color: var(--text); font-weight: 700; }
@media (prefers-reduced-motion: no-preference) {
	.kreve-popup:not([hidden]) .kreve-popup__box { animation: kreve-popup-in .22s ease-out; }
}
@keyframes kreve-popup-in {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: none; }
}

/* 공용 팝업(.kreve-modal)의 기본 규칙(inset:0)이 위쪽 데스크탑 미디어쿼리보다 뒤에 있어서 600px 칸 정렬이 덮어써진다.
   기본 규칙 뒤에서 한 번 더 지정한다. (vw 대신 %를 써야 세로 스크롤바 폭만큼 어긋나지 않는다) */
@media (min-width: 1040px) {
	.kreve-modal,
	.kreve-popup {
		left: calc(50% + (var(--sidebar-w) + 24px - var(--main-w)) / 2);
		right: auto;
		width: var(--main-w);
	}
}

/* =========================================================
   UX 보정 — 우커머스 기본 스타일이 테마와 어긋나던 부분
========================================================= */
/* 상품 목록 위: 총 N개 + 정렬 (정렬 드롭다운도 필터 칩과 같은 알약 모양) */
.woocommerce-result-count { float: left; margin: 0 0 10px; font-size: 13px; color: var(--text-muted); line-height: 34px; }
.woocommerce-result-count strong { color: var(--text); }
.woocommerce-ordering { float: right; margin: 0 0 10px; }
.woocommerce-ordering select {
	font-size: 12px;
	font-weight: 600;
	color: var(--text);
	background-color: var(--surface-soft);
	border: 1px solid var(--line);
	border-radius: 999px;
	padding: 8px 12px;
	font-family: var(--font);
}
ul.products { clear: both; }

/* 상품 상세의 할인 뱃지: 우커머스 기본(올리브색 동그라미) → 목록 카드의 SALE 알약과 같은 모양 */
.woocommerce span.onsale {
	top: 14px !important;
	left: 14px !important;
	right: auto !important;
	min-width: 0 !important;
	min-height: 0 !important;
	padding: 6px 12px !important;
	line-height: 1.2 !important;
	border-radius: 999px !important;
	background: var(--accent) !important;
	color: var(--on-accent) !important;
	font-size: 12px !important;
	font-weight: 800 !important;
}

/* 우커머스 알림(장바구니 담김/오류): 기본 아이콘이 글자와 겹치던 것 정리 */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none !important; }
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	font-size: 14px;
	line-height: 1.5;
	padding: 14px 16px !important;
	background: var(--surface-soft);
	border: 1px solid var(--line);
	border-top: 3px solid var(--accent-ink) !important;
	color: var(--text);
}
.woocommerce-error { list-style: none; }
.woocommerce-message .button,
.woocommerce-info .button { float: right; margin: 0 0 0 10px; padding: 8px 14px !important; font-size: 12px !important; }

/* 상품 상세: "카테고리: ..." 한 줄은 보조 정보답게 작게 */
.product_meta { font-size: 12px; color: var(--text-muted); margin: 14px 0 0; }
.product_meta a { color: var(--text); font-weight: 600; }

/* 상품 상세 구매 영역: 수량 한 줄 + [장바구니(윤곽)] [바로구매(채움)] 두 버튼 나란히 */
.woocommerce div.product form.cart:not(.variations_form),
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 10px;
	align-items: stretch;
}
.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after { display: none !important; }
.woocommerce div.product form.cart .quantity { grid-column: 1 / -1; justify-self: start; }
.woocommerce div.product form.cart .single_add_to_cart_button {
	width: 100%;
	background: var(--surface) !important;
	color: var(--accent-ink) !important;
	border: 1px solid var(--accent-ink) !important;
}
.woocommerce div.product form.cart .kreve-buy-now {
	width: 100%;
	padding: 15px;
	font-size: 16px;
	margin-top: 4px;
}

/* =========================================================
   주문/결제 (클래식 체크아웃) — 카드형 3단: 주문자 정보 / 배송지 / 주문 상품·결제
========================================================= */
.co-login-note { margin: 0 0 14px; padding: 12px 14px; border-radius: var(--radius-s); background: var(--surface-soft); font-size: 13px; color: var(--text-muted); line-height: 1.5; }
.co-login-note a { color: var(--accent-ink); font-weight: 800; }
.co-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-l); padding: 20px 18px 8px; margin: 0 0 14px; }
.co-card > h3,
.co-card .woocommerce-billing-fields > h3,
.co-card .woocommerce-shipping-fields > h3 { font-size: 16px; font-weight: 800; margin: 0 0 16px; }
.co-card--review { padding-bottom: 18px; }
.woocommerce-checkout .form-row { float: none; width: 100%; margin: 0 0 14px; padding: 0; }
.woocommerce-checkout .form-row label { display: block; font-size: 12px; font-weight: 700; margin: 0 0 6px; color: var(--text); line-height: 1.4; }
.woocommerce-checkout .form-row .required { color: var(--danger); text-decoration: none; border: 0; }
.woocommerce-checkout .form-row .optional { color: var(--text-muted); font-weight: 500; }
.woocommerce-checkout .form-row textarea { min-height: 76px; }
.woocommerce-checkout .woocommerce-invalid input.input-text,
.woocommerce-checkout .woocommerce-invalid select,
.woocommerce-checkout .woocommerce-invalid textarea { border-color: var(--danger); }
.woocommerce-checkout .input-hidden { display: none; }

/* 배송지: 저장된 배송지 / 같아요 체크 / 우편번호 줄 */
.kreve-address-picker select { width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: var(--radius-s); font-family: var(--font); background: #fff; }
.co-same,
.co-save-address { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--text); margin: 0 0 14px; cursor: pointer; }
.co-same input,
.co-save-address input { accent-color: var(--accent-ink); width: 16px; height: 16px; }
.co-save-address { font-weight: 500; color: var(--text-muted); margin-top: -2px; }
.kreve-postcode-line { display: flex; gap: 8px; align-items: flex-end; }
.kreve-postcode-line .form-row { flex: 1; min-width: 0; }
.kreve-postcode-btn { flex: none; height: 46px; margin-bottom: 14px; padding: 0 16px; font-size: 13px; white-space: nowrap; }
.kreve-memo-presets select { width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: var(--radius-s); font-family: var(--font); background: #fff; }

/* 주문 요약 표 */
.woocommerce table.shop_table.woocommerce-checkout-review-order-table { width: 100%; margin: 0 0 14px; border: 0 !important; border-collapse: collapse; }
.woocommerce table.shop_table.woocommerce-checkout-review-order-table thead { display: none; }
.woocommerce table.shop_table.woocommerce-checkout-review-order-table th,
.woocommerce table.shop_table.woocommerce-checkout-review-order-table td { padding: 10px 0 !important; border: 0 !important; border-bottom: 1px solid var(--line) !important; font-size: 14px; text-align: left; vertical-align: top; background: none; }
.woocommerce table.shop_table.woocommerce-checkout-review-order-table .product-total,
.woocommerce table.shop_table.woocommerce-checkout-review-order-table tfoot td { text-align: right; }
.woocommerce table.shop_table.woocommerce-checkout-review-order-table tfoot th { font-weight: 600; color: var(--text-muted); }
.woocommerce table.shop_table.woocommerce-checkout-review-order-table .product-quantity { color: var(--text-muted); font-weight: 600; }
.woocommerce table.shop_table.woocommerce-checkout-review-order-table .order-total th,
.woocommerce table.shop_table.woocommerce-checkout-review-order-table .order-total td { font-size: 17px; font-weight: 800; color: var(--text); border-bottom: 0 !important; padding-top: 16px !important; }
.woocommerce table.shop_table.woocommerce-checkout-review-order-table .order-total td strong { color: var(--accent-ink); }
.woocommerce table.shop_table.woocommerce-checkout-review-order-table .fee td { color: var(--accent-ink); }

/* 적립금 사용 / 입금자명 */
.co-points,
.co-depositor { margin: 0 0 14px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius-m); background: var(--surface-soft); }
.co-depositor .form-row { margin: 0; }
.co-points__head { display: flex; align-items: center; justify-content: space-between; font-size: 13px; margin-bottom: 10px; }
.co-points__head b { color: var(--accent-ink); }
.co-points__row { display: flex; align-items: center; gap: 6px; }
.co-points__row input { flex: 1; min-width: 0; padding: 10px 12px; border: 1px solid #ddd; border-radius: var(--radius-s); font-family: var(--font); text-align: right; background: #fff; }
.co-points__unit { font-size: 13px; font-weight: 700; }
.co-points__row .btn { padding: 10px 12px; font-size: 12px; white-space: nowrap; }
.co-points__hint { font-size: 11px; color: var(--text-muted); margin: 8px 0 0; line-height: 1.5; }
.co-points__msg { font-size: 12px; margin: 6px 0 0; min-height: 0; }
.co-points__msg.is-ok { color: #00794a; }
.co-points__msg.is-error { color: var(--danger); }
.co-points-guest { font-size: 12px; color: var(--text-muted); margin: 0 0 14px; }

/* 결제수단 / 약관 / 주문하기 */
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; margin: 0 0 14px; padding: 0; border: 0; }
.woocommerce-checkout #payment ul.payment_methods li { padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius-s); margin: 0 0 8px; list-style: none; }
.woocommerce-checkout #payment ul.payment_methods li label { display: inline; font-size: 14px; font-weight: 700; margin-left: 6px; }
.woocommerce-checkout #payment div.payment_box { margin: 10px 0 0; padding: 12px; background: var(--surface-soft); color: var(--text-muted); font-size: 12px; line-height: 1.6; border-radius: var(--radius-s); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.form-row { padding: 0; margin: 0; }
.woocommerce-terms-and-conditions-wrapper { margin: 0 0 12px; font-size: 13px; }
.woocommerce-terms-and-conditions-wrapper label { font-weight: 600; }
.woocommerce-privacy-policy-text p { font-size: 11px; color: var(--text-muted); line-height: 1.5; margin: 0 0 12px; }
.woocommerce-checkout #place_order { width: 100%; padding: 16px; font-size: 16px; margin: 4px 0 0; float: none; }

/* 쿠폰 입력 (주문서 위) */
.woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 12px; }
.woocommerce form.checkout_coupon { border: 1px solid var(--line); border-radius: var(--radius-s); padding: 14px; margin: 0 0 14px; background: var(--surface); }
.woocommerce form.checkout_coupon .form-row { float: none; width: 100%; margin: 0 0 8px; padding: 0; }
.woocommerce form.checkout_coupon .form-row-first,
.woocommerce form.checkout_coupon .form-row-last { width: 100%; }
.kreve-auth__track { margin: 0; font-size: 12px; color: var(--text-muted); text-align: center; }
.kreve-auth__track a { color: var(--accent-ink); font-weight: 700; margin-left: 4px; }

/* 주문 완료 화면 */
.ty-hero { text-align: center; padding: 26px 16px 18px; }
.ty-hero__icon { font-size: 40px; display: block; margin-bottom: 10px; }
.ty-hero h2 { font-size: 20px; font-weight: 800; margin: 0 0 6px; }
.ty-hero p { font-size: 13px; color: var(--text-muted); margin: 0; }
.ty-hero p strong { color: var(--text); }
.ty-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-l); padding: 18px 18px 16px; margin: 0 0 12px; }
.ty-card__title { font-size: 14px; font-weight: 800; margin: 0 0 12px; }
.ty-pay { border-color: var(--accent); background: var(--accent-soft); }
.ty-pay__amount { font-size: 14px; margin: 0 0 4px; }
.ty-pay__amount strong { font-size: 20px; color: var(--accent-ink); margin-left: 4px; }
.ty-pay__who { font-size: 12px; color: var(--text-muted); margin: 0 0 10px; }
.ty-pay__who strong { color: var(--text); }
.ty-pay__bank { font-size: 13px; }
.ty-pay__bank p { margin: 0 0 8px; font-size: 12px; color: var(--text-muted); line-height: 1.6; }
.ty-pay__bank h2,
.ty-pay__bank .wc-bacs-bank-details-heading { font-size: 13px; font-weight: 800; margin: 10px 0 6px; }
.ty-pay__bank ul.order_details { list-style: none; margin: 0; padding: 0; display: block; }
.ty-pay__bank ul.order_details li { display: flex; justify-content: space-between; gap: 10px; float: none; margin: 0; padding: 8px 0; border: 0; border-top: 1px solid var(--line); font-size: 13px; text-transform: none; }
.ty-pay__bank ul.order_details li strong { font-weight: 800; }
.ty-items { list-style: none; margin: 0 0 8px; padding: 0; }
.ty-items li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.ty-items li em { font-style: normal; color: var(--text-muted); }
.ty-totals p { display: flex; justify-content: space-between; margin: 0; padding: 6px 0; font-size: 13px; color: var(--text-muted); }
.ty-totals p.is-discount span:last-child { color: var(--accent-ink); }
.ty-totals .ty-totals__grand { padding-top: 12px; font-size: 16px; font-weight: 800; color: var(--text); }
.ty-totals .ty-totals__grand span:last-child { color: var(--accent-ink); }
.ty-ship { font-size: 13px; margin: 0 0 4px; line-height: 1.6; }
.ty-ship--note { color: var(--text-muted); }
.ty-actions { display: flex; gap: 8px; margin: 16px 0 8px; }
.ty-actions .btn { flex: 1; padding: 13px 10px; font-size: 14px; }
.ty-hero .ty-actions { justify-content: center; }
.ty-note { text-align: center; font-size: 12px; color: var(--text-muted); margin: 8px 0 0; }
.ty-note a { color: var(--accent-ink); font-weight: 700; }
.order-totals p.is-discount span:last-child { color: var(--accent-ink); }

/* 비밀번호 찾기 */
.lostpw-title { font-size: 17px; font-weight: 800; margin: 0 0 8px; }
.lostpw-desc { font-size: 13px; color: var(--text-muted); line-height: 1.6; margin: 0 0 18px; }
.woocommerce form.lost_reset_password { border: 0; padding: 0; margin: 0; }
.woocommerce-password-strength { font-size: 12px; font-weight: 700; margin: 6px 0 0; padding: 0; text-align: left; }
.woocommerce-password-strength.short, .woocommerce-password-strength.bad { color: #b32d2e; }
.woocommerce-password-strength.good { color: #a8741a; }
.woocommerce-password-strength.strong { color: #00794a; }
.woocommerce-password-hint { display: block; font-size: 11px; color: var(--text-muted); margin-top: 4px; }

/* PC 사이드바 카드: 비회원은 회원가입으로 연결, 회원은 내 정보 요약 */
a.promo-card { display: block; color: var(--on-accent); }
.promo-card__cta { display: inline-block; margin-top: 12px; padding: 7px 14px; border-radius: 999px; background: rgba(11,11,11,0.1); font-size: 12px; font-weight: 800; }
.promo-card--member .promo-card__desc a { color: var(--on-accent); text-decoration: underline; text-underline-offset: 2px; }
.cart-continue { margin: 18px 0 0; text-align: center; font-size: 13px; }
.cart-continue a { color: var(--text-muted); font-weight: 600; }

/* 장바구니(블록): 수량 조절/상품명 링크가 손가락으로 누르기엔 작아서 키움 */
.kreve-main .wc-block-cart .wc-block-components-quantity-selector { height: 42px; width: 132px; max-width: none; }
.kreve-main .wc-block-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input { height: 42px; width: 46px; min-width: 46px; }
.kreve-main .wc-block-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { width: 42px; min-width: 42px; height: 42px; font-size: 16px; }
/* 좁은 화면 장바구니: 줄 합계·할인 뱃지가 가운데에 떠 있던 것을 상품 정보 왼쪽 줄에 맞춤 */
.kreve-main .wc-block-cart.is-mobile .wc-block-cart-item__total { text-align: left; }
.kreve-main .wc-block-cart.is-mobile .wc-block-cart-item__total-price-and-sale-badge-wrapper { align-items: flex-start; }
/* 적용된 쿠폰 칩의 삭제(×) 버튼: 보이는 크기는 그대로, 손가락으로 누를 수 있는 영역만 키움 */
.wc-block-components-chip__remove { position: relative; }
.wc-block-components-chip__remove::after { content: ""; position: absolute; top: -10px; right: -10px; bottom: -10px; left: -10px; }
.wc-block-cart-item__product .wc-block-components-product-name { display: inline-block; padding: 6px 0; line-height: 1.4; }
.wc-block-cart-item__remove-link { padding: 8px 4px; }

/* 비밀번호 보기(눈) 아이콘: 모양은 그대로 두고 누르는 영역만 넓힘 */
.woocommerce form .show-password-input { position: absolute; }
.woocommerce form .show-password-input::before { content: ""; position: absolute; inset: -10px; }

/* 무통장입금 계좌 안내 박스 */
.bank-box { margin-top: 10px; }
.bank-box__note { font-size: 12px; color: var(--text-muted); line-height: 1.6; margin: 0 0 10px; }
.bank-box__list { margin: 0; padding: 0; border-top: 1px solid var(--line); }
.bank-box__list > div { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.bank-box__list dt { font-size: 12px; color: var(--text-muted); margin: 0; }
.bank-box__list dd { font-size: 15px; font-weight: 800; margin: 0; text-align: right; display: flex; align-items: center; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }

/* 인증 전 상품 카드의 "19" 표시: 밝은 그라디언트 위에서도 또렷하게 */
.product-card__blind-overlay .badge-19 { text-shadow: 0 1px 4px rgba(0,0,0,0.28); }

/* =========================================================
   태블릿 / 좁은 PC 창 (640~1039px): 사이드바는 없고, 화면 폭(600px)의 모바일 칸을 가운데에 둔다.
   (이 폭에서 모바일 화면이 그대로 늘어나 카드가 거대해지고 글줄이 너무 길어지던 것을 막는다)
   고정 오버레이(메뉴/인증/팝업/모달/하단 탭/구매바)도 같은 칸에 맞춘다.
========================================================= */
@media (min-width: 640px) and (max-width: 1039px) {
	body { background: var(--bg-page); }
	.kreve-layout { max-width: var(--main-w); margin: 0 auto; }
	.kreve-main { background: var(--surface); box-shadow: 0 0 0 1px var(--line); min-height: 100vh; }
	.mobile-menu,
	.kreve-age-gate,
	.sticky-cart-bar,
	.kreve-modal,
	.kreve-popup,
	.bottom-tab-bar {
		left: calc(50% - var(--main-w) / 2);
		right: auto;
		width: var(--main-w);
	}
	.announce-bar,
	.hero,
	.value-grid,
	.product-section,
	.review-teaser { border-radius: 0; }
	.site-header__top { padding: 14px 20px; }
	.site-search { padding: 0 20px 12px; }
	.quick-nav, .category-tabs { padding-left: 20px; padding-right: 20px; }
	.hero__content { padding: 32px 24px 36px; }
	.hero__title { font-size: 26px; }
	.value-grid { padding: 20px; }
	.product-section { padding: 26px 20px 8px; }
	.review-teaser { padding: 26px 20px 40px; }
	.kreve-shop-wrap, .kreve-page-wrap { padding: 24px 20px 40px; }
	.category-guide { padding: 32px 20px 40px; }
	.category-guide__grid { grid-template-columns: repeat(3, 1fr); }
}

/* 주문조회 */
.track-desc { font-size: 13px; color: var(--text-muted); line-height: 1.6; margin: 0 0 16px; }
.woocommerce-form-track-order .form-row { float: none; width: 100%; }
.woocommerce form.track_order { border: 0; padding: 0; margin: 0; }
.woocommerce .order-info { font-size: 14px; line-height: 1.6; padding: 14px 16px; background: var(--surface-soft); border-radius: var(--radius-s); }
.woocommerce .order-info mark { background: none; color: var(--accent-ink); font-weight: 800; }

/* 입력칸 글자는 16px — 아이폰은 16px보다 작으면 칸을 누를 때 화면이 멋대로 확대된다 */
body input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="range"]):not([type="file"]),
body select,
body textarea { font-size: 16px; }
@media (max-width: 1039px) {
	.filter-bar__selects select,
	.woocommerce-ordering select { font-size: 16px; padding: 8px 14px; }
	.woocommerce-result-count { line-height: 42px; }
}
.woocommerce-form-track-order .button { width: 100%; padding: 15px; font-size: 16px; }

/* 옵션을 고르기 전에 담기 버튼을 눌렀을 때 나오는 안내 */
.option-hint { margin: 8px 0 0; font-size: 13px; font-weight: 700; color: var(--danger); }
.option-hint[hidden] { display: none; }

/* 변형(옵션) 상품: 색상·사이즈 같은 선택 칸을 한 줄에 하나씩, 손가락으로 누르기 편한 크기로 */
.woocommerce div.product form.cart .variations { width: 100%; margin: 0 0 14px; border: 0; }
.woocommerce div.product form.cart .variations tbody,
.woocommerce div.product form.cart .variations tr { display: block; }
.woocommerce div.product form.cart .variations tr { margin: 0 0 12px; }
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td { display: block; padding: 0; border: 0; text-align: left; }
.woocommerce div.product form.cart .variations label { display: block; margin: 0 0 6px; font-size: 13px; font-weight: 700; color: var(--text); }
.woocommerce div.product form.cart .variations select { display: block; width: 100%; max-width: 100%; margin: 0; min-height: 46px; padding: 10px 12px; border: 1px solid #ddd; border-radius: var(--radius-s); background-color: #fff; font-family: var(--font); color: var(--text); }
.woocommerce div.product form.cart .variations td.value { position: relative; }
/* "지우기" 링크는 평소엔 보이지 않아도 자리를 차지해서 빈 틈이 생기므로, 마지막 옵션 이름 줄 오른쪽에 띄워 둔다 */
.woocommerce div.product form.cart .reset_variations { position: absolute; top: -27px; right: 0; margin: 0; font-size: 12px; color: var(--text-muted); text-decoration: underline; }
.woocommerce div.product form.cart .single_variation_wrap { margin: 0 0 10px; }
.woocommerce div.product form.cart .woocommerce-variation-price { margin: 0 0 8px; }
.woocommerce div.product form.cart .woocommerce-variation-price .price { font-size: 18px; font-weight: 800; color: var(--accent-ink); }
.woocommerce div.product form.cart .woocommerce-variation-price del { color: var(--text-muted); font-size: 13px; font-weight: 500; }
.woocommerce div.product form.cart .woocommerce-variation-price ins { text-decoration: none; }
.woocommerce div.product form.cart .woocommerce-variation-availability p { margin: 0 0 8px; font-size: 13px; color: var(--text-muted); }

/* 품절 상품 카드: 사진을 흐리게 하고 왼쪽 아래에 "품절" 표시 */
.product-card.is-soldout .product-card__img { opacity: 0.45; }
.product-card.is-soldout .product-card__name,
.product-card.is-soldout .product-card__price { color: var(--text-muted); }
.product-card__soldout { position: absolute; left: 10px; bottom: 10px; z-index: 3; padding: 5px 12px; border-radius: 999px; background: var(--text); color: #fff; font-size: 12px; font-weight: 800; line-height: 1.2; }

/* 주문 받기가 꺼져 있을 때 안내 */
.store-notice { padding: 9px 14px; background: #fff7e0; border-bottom: 1px solid #f0dfa8; color: #5b4a00; font-size: 12px; font-weight: 700; text-align: center; line-height: 1.5; }
.store-closed-note { margin: 10px 0 0; padding: 12px 14px; background: var(--surface-soft); border: 1px solid var(--line); border-radius: var(--radius-s); font-size: 13px; font-weight: 700; color: var(--text); line-height: 1.5; }
.store-closed-note--admin { background: #fff7e0; border-color: #f0dfa8; color: #5b4a00; }
.promo-card--plain .promo-card__title { font-size: 17px; }

/* 주문 상세: 입금 기한 / 구매 확정 */
.order-pay-notice__deadline { margin: 6px 0 0; font-size: 12px; color: var(--text-muted); line-height: 1.5; }
.order-pay-notice__deadline strong { color: var(--text); }
.order-confirm-box { margin: 14px 0; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--radius-m); background: var(--surface-soft); font-size: 13px; line-height: 1.6; }
.order-confirm-box p { margin: 0 0 10px; }
.order-confirm-box .btn { width: 100%; }
.order-confirm-box.is-done { background: var(--surface); }
.my-coupon-guide { margin: 0 0 12px; font-size: 12px; color: var(--text-muted); line-height: 1.6; }
.coupon-box.is-muted { opacity: 0.75; }
.ty-pay__deadline { margin: 6px 0 10px; font-size: 13px; font-weight: 700; color: var(--text); line-height: 1.5; }

/* 오류 메시지는 민트가 아니라 빨강 윗줄 */
.woocommerce-error { border-top-color: var(--danger) !important; }

/* =========================================================
   0.5.0 추가 — 이벤트 배너 / 출고 안내 / 포인트 안내 / 문의하기 / 마케팅 동의
========================================================= */
.hero__period { margin: 14px 0 0; font-size: 12px; font-weight: 600; color: rgba(255,255,255,0.7); }
.hero--event .hero__desc { line-height: 1.7; }
.delivery-box--today,
.delivery-box--arrival { background: var(--accent-soft); }
.my-points-note { margin: 0 0 14px; font-size: 12px; line-height: 1.6; color: var(--text-muted); }

.contact-form { max-width: 560px; margin: 0 auto; }
.contact-form__intro { margin: 0 0 16px; font-size: 13px; line-height: 1.6; color: var(--text-muted); }
.contact-form .form-row { margin: 0 0 14px; padding: 0; }
.contact-form label { display: block; margin: 0 0 6px; font-size: 12px; font-weight: 700; color: var(--text); }
.contact-form .required { color: var(--danger); text-decoration: none; border: 0; }
.contact-form .input-text,
.contact-form select,
.contact-form textarea { display: block; width: 100%; box-sizing: border-box; padding: 11px 12px; border: 1px solid #ddd; border-radius: var(--radius-s); font-family: var(--font); font-size: 16px; color: var(--text); background: #fff; }
.contact-form textarea { min-height: 140px; resize: vertical; }
.contact-form .input-text:focus,
.contact-form select:focus,
.contact-form textarea:focus { outline: 2px solid var(--accent-ink); outline-offset: 1px; border-color: var(--accent-ink); }
.contact-form__agree label { display: flex; gap: 8px; align-items: flex-start; font-weight: 500; font-size: 12px; line-height: 1.6; color: var(--text-muted); }
.contact-form__agree input { margin-top: 3px; flex: none; accent-color: var(--accent-ink); }
.contact-form__agree a { color: var(--accent-ink); text-decoration: underline; }
.contact-error,
.contact-done { margin: 0 0 14px; padding: 12px 14px; border-radius: var(--radius-s); background: var(--surface-soft); font-size: 13px; line-height: 1.6; }
.contact-error { border-top: 3px solid var(--danger); }
.contact-done { border-top: 3px solid var(--accent-ink); }

.kreve-optin-row label { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; font-weight: 500; line-height: 1.6; }
.kreve-optin-row input { margin-top: 4px; flex: none; accent-color: var(--accent-ink); }

/* 상품 상세 가격: 할인가 밑줄 없음 + 원래 가격은 흐리게 */
.woocommerce div.product p.price ins { text-decoration: none; color: var(--accent-ink); }
.woocommerce div.product p.price del { color: var(--text-muted); font-size: 0.8em; font-weight: 600; }
