/* 편의점 행사 전용 목록 - 웹진형(기본)과 카드형(가로 폭에 맞춰 자동으로 채움) */
.cv-wrap { --cv-accent: #5b6cf0; --cv-border: #e5e7eb; --cv-muted: #6b7280; --cv-bg-soft: #f3f4f6; font-size: 14px; line-height: 1.5; box-sizing: border-box; }
.cv-wrap *, .cv-wrap *::before, .cv-wrap *::after { box-sizing: border-box; }
.cv-wrap a { text-decoration: none; color: inherit; }

/* 검색 권한 안내 */
.cv-lock { padding: 10px 12px; border-radius: 8px; background: var(--cv-bg-soft); color: var(--cv-muted); }
.cv-lock p { margin: 2px 0; }
.cv-lock a { color: var(--cv-accent); text-decoration: underline; }

/* 검색 폼 */
.cv-form { margin: 0 0 14px; padding: 12px; border: 1px solid var(--cv-border); border-radius: 10px; background: #fff; }
.cv-row { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 8px; }
.cv-row:last-child { margin-bottom: 0; }
.cv-row-top { align-items: center; flex-wrap: wrap; gap: 14px; }
.cv-label { flex: 0 0 64px; padding-top: 5px; color: var(--cv-muted); font-size: 13px; }
.cv-row-top .cv-label { flex: none; padding-top: 0; margin-right: 6px; }
.cv-month, .cv-sort { display: flex; align-items: center; }
.cv-form select, .cv-search input[type=text] { height: 32px; padding: 0 8px; border: 1px solid var(--cv-border); border-radius: 6px; background: #fff; font-size: 14px; }
.cv-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.cv-pill { position: relative; margin: 0; cursor: pointer; }
.cv-pill input { position: absolute; opacity: 0; pointer-events: none; }
.cv-pill span { display: block; padding: 4px 12px; border: 1px solid var(--cv-border); border-radius: 999px; background: #fff; font-size: 13px; }
.cv-pill input:checked + span { background: var(--cv-accent); border-color: var(--cv-accent); color: #fff; }
.cv-pill input:focus-visible + span { outline: 2px solid var(--cv-accent); outline-offset: 2px; }
.cv-search { display: flex; flex: 1; flex-wrap: wrap; align-items: center; gap: 6px; }
.cv-search input[type=text] { flex: 1 1 160px; min-width: 0; }
.cv-search button { height: 32px; padding: 0 14px; border: 0; border-radius: 6px; background: var(--cv-accent); color: #fff; cursor: pointer; }
.cv-reset { display: inline-flex; align-items: center; height: 32px; padding: 0 14px; border: 1px solid var(--cv-border); border-radius: 6px; background: #fff; color: #374151; font-size: 14px; text-decoration: none; cursor: pointer; }
.cv-reset:hover { background: var(--cv-bg-soft); }

/* 건수 줄: 왼쪽에 "2026-09 행사 7건", 오른쪽에 상품정렬 */
.cv-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 8px; }
.cv-count { color: var(--cv-muted); }
.cv-count strong { color: #111827; }
.cv-sortbox { display: inline-flex; align-items: center; gap: 4px; margin: 0; color: var(--cv-muted); font-size: 13px; cursor: pointer; }
.cv-sort-icon { flex: none; }
.cv-sortbox select { height: 32px; padding: 0 8px; border: 1px solid var(--cv-border); border-radius: 6px; background: #fff; color: #111827; font-size: 13px; font-weight: 600; cursor: pointer; }
.cv-stars.cv-stars-user { margin: 0 2px; vertical-align: -2px; }
.cv-notice, .cv-empty { padding: 28px 16px; border: 1px dashed var(--cv-border); border-radius: 10px; text-align: center; color: var(--cv-muted); }
.cv-notice p { margin: 4px 0; }
.cv-notice a { color: var(--cv-accent); text-decoration: underline; }

/* 목록 공통 */
.cv-list { margin: 0; padding: 0; list-style: none; }
.cv-link { display: flex; color: inherit; }
.cv-thumb { position: relative; flex: none; overflow: hidden; background: var(--cv-bg-soft); }
.cv-thumb img { display: block; width: 100%; height: 100%; object-fit: contain; }
.cv-badge { position: absolute; left: 6px; top: 6px; padding: 1px 7px; border-radius: 4px; color: #fff; font-size: 11px; line-height: 1.6; }
.cv-body { display: block; min-width: 0; flex: 1; }
.cv-title { display: block; font-weight: 600; word-break: keep-all; overflow-wrap: anywhere; }
.cv-meta { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.cv-event { padding: 0 8px; border-radius: 4px; background: #eef0ff; color: var(--cv-accent); font-size: 12px; font-weight: 600; }
.cv-cat { padding: 0 8px; border-radius: 4px; background: var(--cv-bg-soft); color: var(--cv-muted); font-size: 12px; }
.cv-price { display: block; margin-top: 6px; }
.cv-price strong { font-size: 16px; }
.cv-price del { margin-left: 6px; color: var(--cv-muted); font-size: 12px; }
.cv-price em { margin-left: 4px; color: #e11d48; font-size: 12px; font-style: normal; font-weight: 600; }
.cv-price em.cv-gift { margin-left: 4px; color: #0d9488; font-size: 12px; font-style: normal; font-weight: 600; }
.cv-cmt { margin-left: 4px; color: var(--cv-accent); font-size: 12px; font-weight: 600; }
.cv-rating { display: block; margin-top: 4px; color: var(--cv-muted); font-size: 12px; }
.cv-stars { position: relative; display: inline-block; width: 70px; height: 14px; vertical-align: -2px; overflow: hidden; }
.cv-stars::before { content: "\2605\2605\2605\2605\2605"; position: absolute; left: 0; top: 0; color: #d1d5db; font-size: 14px; letter-spacing: 0; line-height: 14px; }
.cv-stars-fill { position: absolute; left: 0; top: 0; height: 100%; overflow: hidden; }
.cv-stars-fill::before { content: "\2605\2605\2605\2605\2605"; color: #f59e0b; font-size: 14px; line-height: 14px; white-space: nowrap; }

/* 웹진형: 가로로 긴 한 줄 항목 */
.cv-wrap[data-layout=webzine] .cv-item { border-bottom: 1px solid var(--cv-border); }
.cv-wrap[data-layout=webzine] .cv-link { gap: 12px; padding: 12px 4px; }
.cv-wrap[data-layout=webzine] .cv-thumb { width: 120px; height: 120px; border-radius: 8px; }
.cv-wrap[data-layout=webzine] .cv-title { font-size: 16px; font-weight: normal; }

/* 카드형: 화면 가로 폭에 맞춰 칸 수가 자동으로 늘고 줄어든다 */
.cv-wrap[data-layout=card] .cv-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(var(--cv-card-min, 190px), 1fr)); gap: 14px; }
.cv-wrap[data-layout=card] .cv-item { border: 1px solid var(--cv-border); border-radius: 10px; overflow: hidden; background: #fff; }
.cv-wrap[data-layout=card] .cv-link { flex-direction: column; height: 100%; }
.cv-wrap[data-layout=card] .cv-thumb { width: 100%; aspect-ratio: 1 / 1; }
.cv-wrap[data-layout=card] .cv-body { padding: 10px 12px 12px; }

/* 쪽 이동 */
.cv-pages { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; margin: 18px 0 0; }
.cv-pages a { min-width: 34px; padding: 6px 10px; border: 1px solid var(--cv-border); border-radius: 6px; text-align: center; }
.cv-pages a.is-current { background: var(--cv-accent); border-color: var(--cv-accent); color: #fff; }

@media (max-width: 600px) {
	.cv-row { flex-direction: column; gap: 4px; }
	.cv-label { flex: none; padding-top: 0; }
	.cv-wrap[data-layout=card] .cv-list { grid-template-columns: repeat(auto-fill, minmax(min(var(--cv-card-min, 190px), 46%), 1fr)); gap: 10px; }
	/* 전용 화면은 좌우 여백 15px. 읽기 화면 아래 목록은 스킨이 여백을 주므로 제외 */
	.cv-wrap:not(.cv-embedded) { padding-left: 15px; padding-right: 15px; }
}

/* ===== 상품 상세 블록 (안내사항, 가격 비교, 이력, 같은 분류 상품) ===== */
.cv-detail { margin: 30px 0; font-size: 14px; line-height: 1.5; box-sizing: border-box; }
.cv-detail *, .cv-detail *::before, .cv-detail *::after { box-sizing: border-box; }
.cv-detail h3 { margin: 0 0 8px; font-size: 16px; }
.cv-detail-note { margin: 6px 0; color: #6b7280; font-size: 13px; }
.cv-badge-inline { display: inline-block; padding: 0 8px; border-radius: 4px; color: #fff; font-size: 12px; line-height: 1.7; }
.cv-dl { margin: 0; border: 1px solid #e5e7eb; border-radius: 10px; overflow: hidden; }
.cv-dl > div { display: flex; border-bottom: 1px solid #e5e7eb; }
.cv-dl > div:last-child { border-bottom: 0; }
.cv-dl dt { flex: 0 0 96px; padding: 8px 12px; background: #f3f4f6; color: #6b7280; font-weight: 400; }
.cv-dl dd { flex: 1; min-width: 0; margin: 0; padding: 8px 12px; }
.cv-dl del { color: #6b7280; }
.cv-table-wrap { overflow-x: auto; }
.cv-table { width: 100%; border-collapse: collapse; }
.cv-table th, .cv-table td { padding: 8px 10px; border-bottom: 1px solid #e5e7eb; text-align: left; white-space: nowrap; }
.cv-table th { background: #f3f4f6; color: #6b7280; font-weight: 400; }
.cv-table tr.is-self td { background: #f9fafb; }
.cv-table a { text-decoration: none; color: inherit; }
.cv-best { display: inline-block; margin-left: 4px; padding: 0 6px; border-radius: 4px; background: #e11d48; color: #fff; font-size: 11px; font-style: normal; }
.cv-chart-wrap { margin: 0 0 10px; }
.cv-chart { display: block; width: 100%; height: auto; max-width: 640px; }
.cv-legend { margin: 4px 0 0; color: #6b7280; font-size: 12px; }
.cv-lg { display: inline-block; width: 16px; height: 0; margin: 0 4px 3px 8px; border-top: 2px solid #5b6cf0; vertical-align: middle; }
.cv-lg:first-child { margin-left: 0; }
.cv-lg-eff { border-top: 2px dashed #e11d48; }
.cv-rel-list { display: flex; flex-wrap: nowrap; gap: 10px; margin: 0; padding: 0 0 8px; list-style: none; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; scroll-snap-type: x proximity; cursor: grab; scrollbar-width: thin; }
.cv-rel-list.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.cv-rel-list.is-dragging a { pointer-events: none; }
.cv-rel-list li { flex: 0 0 160px; width: 160px; scroll-snap-align: start; }
.cv-rel-list img { -webkit-user-drag: none; user-select: none; }
.cv-rel-list li a { display: block; padding: 8px; border: 1px solid #e5e7eb; border-radius: 10px; text-decoration: none; color: inherit; }
.cv-rel-thumb { position: relative; display: block; aspect-ratio: 1 / 1; border-radius: 8px; overflow: hidden; background: #f3f4f6; }
.cv-rel-thumb img { display: block; width: 100%; height: 100%; object-fit: contain; }
.cv-rel-name { display: block; margin-top: 6px; font-size: 13px; font-weight: 600; word-break: keep-all; overflow-wrap: anywhere; }
.cv-rel-meta { display: block; margin-top: 2px; }
.cv-rel-meta em { padding: 0 6px; border-radius: 4px; background: #eef0ff; color: #5b6cf0; font-size: 12px; font-style: normal; font-weight: 600; }
.cv-rel-price { display: block; margin-top: 2px; font-size: 13px; }

/* ===== 지난 행사 페이지 ===== */
.cv-archive-link { margin: 0 0 10px; text-align: right; font-size: 13px; }
.cv-archive-link a { color: #5b6cf0; text-decoration: underline; }
.cv-archive h2.cv-archive-heading { margin: 0 0 12px; font-size: 18px; }
.cv-page-title { margin: 0 0 10px; font-size: 20px; }
.cv-archive-tabs { display: flex; flex-wrap: nowrap; gap: 6px; margin: 0 0 14px; padding: 0 0 4px; overflow-x: auto; list-style: none; }
.cv-archive-tabs li a { display: block; padding: 6px 14px; border: 1px solid #e5e7eb; border-radius: 999px; white-space: nowrap; color: #6b7280; text-decoration: none; }
.cv-archive-tabs li.is-active a { background: #5b6cf0; border-color: #5b6cf0; color: #fff; }
.cv-archive-year { margin: 14px 0 6px; font-size: 15px; }
.cv-archive-months { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.cv-archive-months a { display: block; padding: 6px 12px; border: 1px solid #e5e7eb; border-radius: 8px; text-decoration: none; color: inherit; }
.cv-archive-months small { margin-left: 4px; color: #6b7280; }

/* ===== 최근 댓글 ===== */
.cv-comments h2.cv-archive-heading { margin: 0 0 8px; font-size: 18px; }
.cv-cmt-item { border-bottom: 1px solid #e5e7eb; }
.cv-cmt-link { display: block; padding: 12px 4px; text-decoration: none; color: inherit; }
.cv-cmt-head { display: block; margin-bottom: 4px; }
.cv-cmt-text { display: block; margin-bottom: 4px; word-break: break-word; }
.cv-cmt-meta { display: block; color: #6b7280; font-size: 12px; }

/* 최근 댓글: 상품명 옆 누적 별점, 안내사항 아래 안내 문구 */
.cv-rating.cv-rating-inline { display: inline-block; margin: 0 0 0 6px; font-weight: 400; }
.cv-info-notice { margin: 0 0 10px; padding: 10px 12px; border-radius: 8px; background: var(--cv-bg-soft); color: #374151; font-size: 13px; line-height: 1.6; }

/* 광고 칸: 지정한 위치에 가로 전체를 차지한다 */
.cv-ad { grid-column: 1 / -1; list-style: none; width: 100%; min-width: 0; margin: 0; padding: 10px 0; overflow: hidden; text-align: center; }
.cv-ad ins { display: block; }
.cv-wrap[data-layout=webzine] .cv-ad, .cv-comments .cv-ad { border-bottom: 1px solid var(--cv-border); }

/* 목록 상단 안내글 */
.cv-notice { margin: 0 0 14px; padding: 12px 16px; border: 1px solid #dfe6f0; border-radius: 8px; background: #eaf0fc; color: #5a69ac; font-size: 14px; font-weight: 600; line-height: 1.6; text-align: left; }
.cv-wrap .cv-ad.cv-ad-bottom { margin-top: 14px; border-bottom: 0; }

/* 월별 행사 이력: 이전 이력 더 보기 버튼 */
.cv-hist-more[hidden] { display: none; }
.cv-more-wrap { margin: 10px 0 0; text-align: center; }
.cv-more-btn { height: 34px; padding: 0 16px; border: 1px solid var(--cv-border); border-radius: 6px; background: #fff; color: #374151; font-size: 14px; cursor: pointer; }
.cv-more-btn:hover { background: var(--cv-bg-soft); }

