@charset "utf-8";
/* ============================================================
   LOVVON DARK  —  다크 전환 레이어  (2026-08-19)

   [설계]
   원본 CSS(lovvon.css / mobile_shop.css / mobile.css / 스킨 style.css)를
   한 줄도 고치지 않는다. 이 파일 하나만 "가장 나중에" 로드해서 덮는다.
     · lovvon.css 는 var(--lv-*) 토큰을 1,055곳에서 쓴다
       → :root 값만 다시 정의하면 테마 화면이 통째로 반전된다
     · mobile_shop.css / mobile.css 는 색이 하드코딩(671곳)이고
       theme/lovvon/head.sub.php 59줄에서 직접 echo 되므로
       이 파일을 그 "바로 다음 줄"에 넣어 순서로 이긴다 (특이도 싸움 회피)

   [롤백]
   head.sub.php 에 추가한 <link> 한 줄만 주석 처리하면 즉시 원래 밝은 테마로 복귀.

   [토큰 역할이 반전된다 — 이름 ≠ 값]
   1,055곳을 고치지 않으려고 토큰 "이름은 그대로 두고 값만" 뒤집었다.
   그래서 --lv-black 이 밝은색, --lv-white 가 어두운색이 된다. 헷갈리지 말 것.
   실제 사용 분포를 재서 이렇게 해도 논리가 맞는 걸 확인했다:
     --lv-black : 텍스트82 / 버튼배경42 / 보더68  → 밝은 글씨·흰 버튼면·밝은 보더
     --lv-white : 배경59 / 버튼위글씨62          → 어두운 패널·흰 버튼 위 어두운 글씨
   즉 기존 "검정 버튼 + 흰 글씨"가 자동으로 "밝은 버튼 + 어두운 글씨"가 된다.
   ============================================================ */

/* ── 1. 팔레트 (클라이언트 지정) ─────────────────────────────
   배경 딥매트블랙 #080c15 / 텍스트 플래티넘 모노 #D1D5DB / 포인트 네온 하트비트 #ff007f
   ------------------------------------------------------------ */
:root {
  /* 전경/배경 (역할 반전) */
  --lv-black:    #F3F4F6;   /* 가장 강한 전경 — 제목·버튼면·강조 보더   17.8:1 AAA */
  --lv-white:    #080c15;   /* 바탕면 — 딥 매트블랙 */

  /* 회색 스케일 (어두움→밝음 으로 의미가 뒤집힘) — 괄호는 배경 대비비 */
  --lv-gray-100: #131A26;   /* 카드·섹션 면 (background 39곳) */
  --lv-gray-200: #232B3A;   /* 보더 전용 (border 197곳) */
  --lv-gray-400: #7C8496;   /* 흐린 텍스트  5.2:1 AA  ← 원안 #6B7280 은 4.05 로 미달이었다 */
  --lv-gray-600: #9CA3AF;   /* 보조 텍스트  7.7:1 AAA */
  --lv-gray-700: #D1D5DB;   /* 본문 — 플래티넘 모노  13.3:1 AAA */
  --lv-gray-800: #D1D5DB;   /* 본문 강조 */
  --lv-gray-900: #E5E7EB;   /* 어두운 버튼이던 자리 → 밝은 버튼면 */

  /* 브랜드 강조 — 베이지에서 네온 핑크로 교체 (50곳이 즉시 바뀐다) */
  --lv-accent:       #ff007f;
  --lv-accent-light: #7a0040;   /* 그라디언트 시작색 */
  --lv-bg-warm:      #0E141F;   /* 매거진 섹션 배경 */

  /* 네온 (원래도 핑크였음 — 유지) */
  --lv-neon:      #ff007f;
  --lv-neon-glow: rgba(255, 0, 127, 0.55);
  --lv-neon-haze: rgba(255, 0, 127, 0.28);

  /* 위험/삭제 — 어두운 바탕에서 읽히도록 조정 */
  --lv-danger:        #ff6b6b;
  --lv-danger-border: #7a2b2b;
  --lv-danger-bg:     #2A1418;

  /* 타이포 — 국문·영문 Pretendard, 폴백 Noto Sans KR */
  --lv-font:     'Pretendard Variable', Pretendard, 'Noto Sans KR', system-ui, 'Helvetica Neue', Arial, sans-serif;
  /* 숫자 전용 — Montserrat (가격·수량 등에 .lv-num 으로 적용) */
  --lv-font-num: 'Montserrat', 'Pretendard Variable', Pretendard, sans-serif;
}

/* ── 2. 바탕 강제 ─────────────────────────────────────────────
   mobile_shop.css:5 가 body{color:#222; background:#fff} 를 하드코딩하고
   mobile.css:5 는 background:#e6e6e6 이다. 둘 다 여기서 덮는다.
   ------------------------------------------------------------ */
html { background: var(--lv-white); }
body {
  background: var(--lv-white);
  color: var(--lv-gray-700);
  font-family: var(--lv-font);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 원본 CSS가 흰 배경을 깔던 대표 컨테이너들 */
#wrapper, #container, #contents, .lv-wrap { background: transparent; }

/* ── 3. 숫자 타이포 ───────────────────────────────────────────
   가격·수량은 Montserrat. tabular-nums 로 자릿수가 흔들리지 않게.
   ------------------------------------------------------------ */
.lv-num,
.lv-price, .lv-price-original, .lv-discount {
  font-family: var(--lv-font-num);
  font-feature-settings: 'tnum' 1;
  font-variant-numeric: tabular-nums;
}

/* ── 4. 개별 보정 ─────────────────────────────────────────────
   토큰 일괄 반전만으로는 어색해지는 소수 지점.
   ------------------------------------------------------------ */
/* 매거진 히어로 자리표시자 — gray-900 이 밝아졌으므로 어두운 면으로 되돌린다 */
.lv-mag-hero-placeholder { background: var(--lv-gray-100); }

/* 썸네일 면은 색을 깔지 않는다 (260821)
   흰 누끼 완화용으로 어두운 면을 깔았었는데, 상품 사진의 여백과 면 색이
   어긋나 사각형 테두리처럼 보였다. 원본 lovvon.css 820줄에도 gray-100 이
   들어있으므로 여기서 transparent 로 덮는다(원본은 수정하지 않는다).
   특이도: 원본이 `.lv-product-card .lv-thumb`(0,2,0) 이라 같은 형태로 맞받아야 이긴다. */
.lv-product-card .lv-thumb, .lv-thumb { background: transparent; }

/* 상품 카드 면 (260821) — 시안: 배경보다 한 겹 어두운 카드 위에 상품이 얹힌다
   #0000002b = 검정 알파 2b(43/255 ≈ 17%). 불투명 색이 아니라 반투명이라
   페이지 배경(#080c15)이 비쳐 같은 색 계열을 유지한 채 한 단계만 가라앉는다.
   썸네일은 위에서 transparent 로 비웠으므로 이 카드 면이 그대로 비쳐 보인다. */
.lv-product-card {
  background: #0000002b;
  border-radius: 6px;
  padding: 14px;
}
/* 위시 하트 — 원본은 흰 원(rgba(255,255,255,.9))이라 다크에서 흰 점으로 튄다.
   시안처럼 면을 없애고 선만 남긴다. 위치는 카드 패딩 안쪽으로 맞춘다. */
.lv-product-card .lv-wish-btn {
  top: 12px;
  right: 12px;
  background: transparent;
  color: rgba(255, 255, 255, 0.55);
}
.lv-product-card .lv-wish-btn:hover { color: var(--lv-neon); background: transparent; }
.lv-product-card .lv-wish-btn.is-on { color: var(--lv-neon); background: transparent; box-shadow: none; }

/* ============================================================
   5. UI ELEMENTS — 시안 07 반영
   ------------------------------------------------------------
   [왜 필요한가]
   --lv-black 은 텍스트 82곳 / 버튼면 42곳 / 보더 68곳에 함께 쓰인다.
   토큰을 밝게 뒤집으면 텍스트·선·보더는 맞지만 "면"으로 쓰이던 42곳이
   흰 덩어리가 된다(푸터·하단탭·공지바·버튼 등).
   토큰은 다수인 텍스트 기준(밝게)으로 두고, 면으로 쓰이던 곳만 여기서 덮는다.
   ============================================================ */

:root {
  --lv-face:        #1E2430;   /* 버튼·뱃지 기본 면 (시안 Default) */
  --lv-face-strong: #0E141F;   /* 푸터·하단탭 등 구조 면 */
  --lv-on-neon:     #ffffff;   /* 네온 핑크 위 글씨 */
}

/* ── 5-1. 구조 면 — 밝아지면 안 되는 덩어리들 ───────────────── */
.lv-notice-bar,
.lv-footer,
.lv-tabbar,
#modalLayer .carting,
.lv-order-layout .od_coupon h3,
#sod_frm.lv-order-layout #order_address {
  background: var(--lv-face-strong);
  color: var(--lv-gray-700);
}
/* 아이콘 메뉴 원형 배경 — 원래 #111 원형이었다. 밝아지면 흰 원이 된다 */
.lv-icon-menu .sh-banner-img-wrap img { background: var(--lv-face-strong); }

/* 선으로 쓰이는 것들은 밝은 채로 두는 게 맞다 (덮지 않음)
   .lv-hamburger span / .lv-panel-close::before,::after                     */

/* ── 5-2. BUTTON — 시안: Default 어두운 면 + 밝은 글씨 / Hover 네온 보더 ── */
.lv-btn-fill, .lv-btn-black, .lv-search-btn, .lv-btn-addr, .lv-btn-order,
.lv-btn-shop, .lv-cancel-submit, .lv-qa-btn-write, .lv-qa-search-btn,
.lv-search-bar-btn, .lv-faq-search-btn,
.lv-order-layout .btn_address,
.lv-order-layout #display_pay_button .btn_submit,
.lv-order-layout .od_coupon .cp_apply,
.lv-order-layout .od_coupon .od_cp_apply,
.lv-search-wrap #sch_res_detail .btn_submit,
#bo_w .btn_submit, #bo_w #btn_submit {
  background: var(--lv-face);
  color: var(--lv-black);
  border: 1px solid transparent;
  border-radius: 6px;
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}
.lv-btn-fill:hover, .lv-btn-black:hover, .lv-search-btn:hover, .lv-btn-addr:hover,
.lv-btn-order:hover, .lv-btn-shop:hover, .lv-cancel-submit:hover,
.lv-qa-btn-write:hover, .lv-qa-search-btn:hover, .lv-search-bar-btn:hover,
.lv-faq-search-btn:hover,
.lv-order-layout .btn_address:hover,
.lv-order-layout #display_pay_button .btn_submit:hover,
#bo_w .btn_submit:hover, #bo_w #btn_submit:hover {
  background: var(--lv-face);
  border-color: var(--lv-neon);
  opacity: 1;
}
/* 구매 버튼은 Primary — 시안 Active 상태(네온 채움 + 글로우) */
.lv-buybar-buy {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
}
/* border-radius·border·glow 는 12-2 에서 네 버튼을 묶어서 준다.
   여기 단독으로 두면 스크롤 전후로 모양이 달라진다(260821 실제로 그랬다). */

/* ── 5-3. 활성 탭 / 페이지네이션 — 시안: 네온 포인트 ────────── */
.lv-cat-tag.active, .lv-cat-tag:hover,
.lv-ship-tab.active, .lv-ship-tab:hover,
.lv-qa-cat-tab.active, .lv-faq-cat-tab.active,
.lv-sort-btn.active,
.lv-step.active .lv-step-num,
.lv-faq-item.open .lv-faq-toggle,
.lv-iu-write-btn:hover {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
  border-color: var(--lv-neon);
}

/* ── 5-4. BADGE — 시안: BEST 네온 채움 / NEW·SALE 어두운 면 ── */
.lv-badge, .lv-view-badge, .lv-badge-notice,
.lv-faq-q-badge, .lv-qa-block-label.q, .lv-qa-status.done {
  background: var(--lv-face);
  color: var(--lv-black);
  /* ⚠️ 원본 .lv-badge 에는 border 가 아예 없다(875줄). width 가 0 이라
     각 배지에서 border-color 만 줘도 선이 안 그려진다 — 여기서 1px 를 깔아 둔다. */
  border: 1px solid transparent;
}
/* 시안 07 기준: BEST 만 네온 채움. NEW·SALE 은 어두운 면 유지 */
.lv-badge.best {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
}
/* 장바구니 개수 — 시안의 핑크 원형 뱃지 */
.lv-cart-count {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
}

/* ============================================================
   6. 이미지 위 텍스트 & 링크 특이도 보정
   ------------------------------------------------------------
   [문제 1] 이미지 위에 얹는 글씨가 --lv-white 를 쓰고 있었다.
     원래는 "흰 글씨"라는 뜻이었지만 토큰을 뒤집으면 배경색(#080c15)이 되어
     사진 위에서 안 보인다. 이런 자리는 테마와 무관하게 항상 흰색이어야 한다.
   [문제 2] a 태그 규칙이 color 를 다시 잡는다.
     a.lv-btn-fill:link 는 특이도 (0,1,1) 이라 5-2 의 .lv-btn-fill (0,1,0) 이 진다.
     그래서 버튼 글씨가 어두운 채로 남았다. 같은 형태로 맞받아야 한다.
   ============================================================ */

:root { --lv-on-media: #ffffff; }   /* 이미지·영상 위 고정 흰색 */

/* ── 6-1. 이미지 위 오버레이 — 항상 흰색 ─────────────────── */
.lv-hero-content,
.lv-hero .main_banner_wrap,
.lv-hero .main_title,
.lv-editorial-label h3,
.lv-mag-hero-content {
  color: var(--lv-on-media);
}
.lv-editorial-label a,
.lv-editorial-label a:link,
.lv-editorial-label a:visited { color: var(--lv-on-media); }

/* ── 6-2. 히어로 CTA — 시안: 흰 외곽선, hover 는 네온 ────── */
.lv-hero-cta,
a.lv-hero-cta, a.lv-hero-cta:link, a.lv-hero-cta:visited {
  border: 1px solid var(--lv-on-media);
  color: var(--lv-on-media);
  background: transparent;
  border-radius: 6px;
}
.lv-hero-cta:hover,
a.lv-hero-cta:hover {
  background: transparent;
  border-color: var(--lv-neon);
  color: var(--lv-neon);
  box-shadow: 0 0 14px var(--lv-neon-haze);
}
/* 배너 스킨이 그리는 버튼도 동일하게 */
.lv-hero .banner_btn a,
.lv-hero .banner_btn a:link,
.lv-hero .banner_btn a:visited {
  border: 1px solid var(--lv-on-media);
  color: var(--lv-on-media);
  border-radius: 6px;
}
.lv-hero .banner_btn a:hover {
  border-color: var(--lv-neon);
  color: var(--lv-neon);
  box-shadow: 0 0 14px var(--lv-neon-haze);
}

/* ── 6-2b. 히어로 텍스트 위치 (260821) ────────────────────
   원본 lovvon.css 648줄이 bottom:60px. 번호 불릿과 너무 붙어서 80px 로 올린다.
   원본은 수정하지 않고 여기서 덮는다(특이도 동일 0,2,0 + 나중 로드).

   ⚠️ 이 규칙은 미디어쿼리 밖이라 **모바일에도 적용된다.**
      원본의 @media(≤768px) `left:24px; bottom:40px` 중 bottom 만 80px 로 덮이고
      left:24px 은 그대로 살아남는다 — 의도한 동작이다.
      (미디어쿼리는 특이도를 올리지 않는다. 순서로 이긴다) */
.lv-hero .main_banner_wrap { bottom: 80px; }

/* ── 6-3. 히어로 페이지네이션 — 01 / 02 / 03 번호 + 왼쪽 정렬 (260821) ──
   배너 스킨(swiper_main·main_banner·swiper_rolling)은 renderBullet 없이
   빈 <span class="swiper-pagination-bullet"> 만 찍는다.
   → JS·스킨을 건드리지 않고 CSS counter 로 번호를 만든다.
     배너를 늘리면 04·05… 가 자동으로 따라온다(decimal-leading-zero 라 10 부터는 두 자리).

   정렬 기준은 배너 텍스트 컨테이너와 동일:
     .lv-hero .main_banner_wrap  left 60px / 모바일(≤768px) 24px
   ⚠️ 특이도 — Swiper 원본이 `.swiper-horizontal>.swiper-pagination-bullets`(0,2,1) 이라
      `.lv-hero .swiper-pagination`(0,2,0) 으로는 진다. 클래스를 하나 더 붙여 (0,3,0) 으로 맞받는다. */
.lv-hero .swiper-pagination.swiper-pagination-bullets {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  gap: 18px;
  counter-reset: lv-hero-num;
  left: 60px;
  right: auto;
  bottom: 24px;
  width: auto;
  transform: none;
  text-align: left;
}
.lv-hero .swiper-pagination-bullet {
  counter-increment: lv-hero-num;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0 0 6px;
  border-radius: 0;
  background: none;
  opacity: 1;
  font-family: var(--lv-font-num);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  font-variant-numeric: tabular-nums;
  color: rgba(255, 255, 255, 0.42);
  border-bottom: 2px solid transparent;
  transition: color 0.2s, border-color 0.2s;
}
.lv-hero .swiper-pagination-bullet::before {
  content: counter(lv-hero-num, decimal-leading-zero);
}
.lv-hero .swiper-pagination-bullet:hover { color: var(--lv-on-media); }
.lv-hero .swiper-pagination-bullet:focus-visible {
  outline: 2px solid var(--lv-neon);
  outline-offset: 3px;
}
/* 활성 — 네온 글자 + 네온 밑줄 (원본의 24×3px 막대 규칙을 여기서 무력화한다) */
.lv-hero .swiper-pagination-bullet-active {
  width: auto;
  background: none;
  color: var(--lv-neon);
  border-bottom-color: var(--lv-neon);
}
@media (max-width: 768px) {
  .lv-hero .swiper-pagination.swiper-pagination-bullets {
    left: 24px;
    bottom: 24px;   /* 텍스트가 모바일에서도 80px 이므로 데스크톱과 같은 간격(56px)으로 맞춘다 */
    gap: 14px;
  }
  .lv-hero .swiper-pagination-bullet { font-size: 12px; }
}

/* ── 6-4. 링크 특이도 보정 ────────────────────────────────
   5-2 에서 정한 "어두운 면 + 밝은 글씨"를 a 태그에서도 유지한다. */
a.lv-btn-fill,  a.lv-btn-fill:link,  a.lv-btn-fill:visited,
a.lv-btn-black, a.lv-btn-black:link, a.lv-btn-black:visited {
  background: var(--lv-face);
  color: var(--lv-black);
  border-radius: 6px;
}
a.lv-btn-fill:hover, a.lv-btn-black:hover {
  border-color: var(--lv-neon);
  color: var(--lv-black);
  opacity: 1;
}
/* 활성 탭은 네온 채움 — 그 위 글씨는 흰색 고정 */
a.lv-qa-cat-tab.active,  a.lv-qa-cat-tab.active:link,  a.lv-qa-cat-tab.active:visited,
a.lv-faq-cat-tab.active, a.lv-faq-cat-tab.active:link, a.lv-faq-cat-tab.active:visited {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
}
a.lv-qa-btn-write, a.lv-qa-btn-write:link, a.lv-qa-btn-write:visited {
  background: var(--lv-face);
  color: var(--lv-black);
}

/* ── 6-5. 푸터 링크 hover — 어두운 면이므로 네온으로 ──────── */
.lv-footer-col ul li:hover,
.lv-footer-col ul li a:hover { color: var(--lv-neon); }

/* ============================================================
   7. 원본 CSS 덮개 (mobile_shop.css / mobile.css / 스킨 style.css)
   ------------------------------------------------------------
   원본은 색이 하드코딩돼 있다 — 흰 배경 60곳 / 어두운 글씨 68곳.
   개별로 다 쓰지 않고 구조 단위(폼·버튼·표·패널)로 묶어 덮는다.
   이 파일은 mobile_shop.css 바로 뒤에 로드되므로 같은 특이도면 이긴다.
   인라인 style 로 박힌 것만 !important 를 쓴다.
   ============================================================ */

/* ── 7-1. 맨 위로 버튼 ────────────────────────────────────────
   shop.tail.php 162줄에 style="background:var(--lv-black);color:#fff"
   가 인라인으로 박혀 있다. 토큰이 밝아지면서 "밝은 버튼 + 흰 화살표"가
   되어 화살표가 사라졌다. 인라인이라 !important 가 필요하다. */
#lv_to_top {
  background: var(--lv-face) !important;
  color: var(--lv-black) !important;
  border: 1px solid var(--lv-gray-200) !important;
  border-radius: 6px;
}
#lv_to_top:hover {
  border-color: var(--lv-neon) !important;
  color: var(--lv-neon) !important;
}

/* ── 7-2. 폼 요소 ─────────────────────────────────────────── */
input[type="text"], input[type="password"], input[type="email"],
input[type="tel"], input[type="number"], input[type="search"],
input[type="url"], input[type="date"], select, textarea,
.frm_input, .form_01 textarea, #captcha #captcha_key,
#settle_bank #od_deposit_name, .sod_frm_point #od_temp_point,
#sod_fin_cancelfrm .frm_input {
  background: var(--lv-gray-100);
  color: var(--lv-gray-700);
  border: 1px solid var(--lv-gray-200);
}
input::placeholder, textarea::placeholder { color: var(--lv-gray-400); }
select option { background: var(--lv-gray-100); color: var(--lv-gray-700); }

/* ── 7-3. 원본 버튼류 — 시안 Default(어두운 면 + 밝은 글씨) ── */
.btn01, .btn02, .btn_b01, .btn_b02, .btn_b03, .btn_cancel,
.btn_frmline, .btn_submit, .btn_close, .btn_out, .line_btn,
a.btn01, a.btn_b01, a.btn_b03, a.btn_cancel, button.btn01,
.btn_top .btn_cancel, .btn_top .btn_b01,
#sod_ws_act .btn02, .more_btn a, .all_btn a {
  background: var(--lv-face);
  color: var(--lv-black);
  border: 1px solid var(--lv-gray-200);
  border-radius: 6px;
}
.btn01:hover, .btn02:hover, .btn_b01:hover, .btn_b02:hover, .btn_b03:hover,
.btn_cancel:hover, .btn_frmline:hover, .btn_submit:hover, .btn_out:hover,
.line_btn:hover, a.btn01:hover, a.btn01:focus, a.btn_b01:hover,
a.btn_b03:hover, a.btn_cancel:hover, .more_btn a:hover, .all_btn a:hover {
  background: var(--lv-face);
  border-color: var(--lv-neon);
  color: var(--lv-black);
}

/* ── 7-4. 표 ─────────────────────────────────────────────── */
.tbl_head01 thead th, .tbl_head02 thead th, .tbl_head03 thead th {
  background: var(--lv-gray-100);
  color: var(--lv-black);
  border-color: var(--lv-gray-200);
}
.tbl_head01 td, .tbl_head01 th,
.tbl_head02 td, .tbl_head02 th,
.tbl_head03 td, .tbl_head03 th,
.tbl_frm01 th, .tbl_frm01 td {
  border-color: var(--lv-gray-200);
  color: var(--lv-gray-700);
}

/* ── 7-5. 패널·카드·리스트 ───────────────────────────────── */
.sod_list .sod_li, .sod_list .mod_options, #mod_option_frm,
#sod_bsk .sod_ta_wr, .sod_frm_point div, #settle_bank,
.od_coupon, #sod_fin_cancelfrm, #smb_my_ov, .mp_card_section,
.out_wrap ul li, #sod_ws li, #sod_inquiry li, #m_sod_frm_orderer ul,
.review_card, #validation_check p, .search_modal_box,
#sit_opt_added button, #sit_opt_added .sit_opt_del {
  background: var(--lv-gray-100);
  color: var(--lv-gray-700);
  border-color: var(--lv-gray-200);
}

/* ── 7-6. 헤더·카테고리·메뉴 ─────────────────────────────── */
#hd_wr.fixed, .menu_cate.fixed, #category, .sidemenu_top,
.community_menu_wr, .main_nav ul li, .gnb_2dul_left, .gnb_3dul,
.gnb_all_wrap, #gnb .gnb_1dli_over .gnb_2dul, #gnb .gnb_1dli_over2 .gnb_2dul,
.hd_search #sch_str {
  background: var(--lv-face-strong);
  color: var(--lv-gray-700);
  border-color: var(--lv-gray-200);
}

/* ── 7-7. 원본의 어두운 글씨 일괄 ────────────────────────── */
.hd_right_btn button, .hd_right_btn > a, .hd_search #sch_submit,
.search_modal_box h3, #btn_hdcate, .sidemenu_top .head_btnwrap .head_btn,
.cate_tab .selected, .out_point a, .community_menu_grid a,
#hd_sch .sch_submit, .total, #ft h3 a, .ft_con, #ft_if strong,
.ft_copy, .ftc_btn, .sanchor a.sanchor_on,
.sod_list .total_price strong, #mod_option_frm h3, #sod_addr .sel_address,
.mp_name strong, .mp_stat_item, .mp_stat_value,
.mp_shortcut_item, .mp_shortcut_value, .my_info dd {
  color: var(--lv-gray-700);
}
.total_price strong, .mp_stat_value, #ft_if strong { color: var(--lv-black); }

/* ── 7-8. 관리자 입력 HTML(교환/환불·상품설명) ───────────────
   쇼핑몰설정에 붙여넣은 내용이 흰 배경·검은 글씨를 그대로 갖고 오는 경우가 있다.
   그 영역 안에서만 배경을 걷어내고 글자색을 상속시킨다. */
.lv-refund-content, .lv-refund-content * ,
#sit_inf_explan, #sit_inf_explan * {
  background: transparent !important;
  border-color: var(--lv-gray-200);
}
.lv-refund-content, .lv-refund-content p, .lv-refund-content li,
.lv-refund-content td, .lv-refund-content div, .lv-refund-content span {
  color: var(--lv-gray-600) !important;
}
.lv-refund-content h3, .lv-refund-content strong, .lv-refund-content b {
  color: var(--lv-black) !important;
}

/* ============================================================
   8. lovvon.css 하드코딩 잔여분 (72곳)
   ------------------------------------------------------------
   테마 CSS 는 89% 토큰화돼 있지만 나중에 붙은 블록들이 hex 를 직접 썼다.
   전수조사 결과 밝은배경 24 / 어두운글씨 23 / 밝은보더 25.
   구매후기(sps_) · 상품문의(sqa_) · 상품정보 · 무료배송바에 몰려 있다.
   ============================================================ */

/* ── 8-1. 밝은 면 → 카드 면 ─────────────────────────────── */
#sit_inf_open th,
#free_ship_bar_bg,
.sps_card_img_wrap, .sps_card_prd, .sps_toggle_btn, .sps_reply_wrap,
#sps_modal_close, .sps_modal_prd_link,
.sps_filter_btn:hover, .sps_filter_btn.active,
.sps_filter_drop a:hover,
.sqa_section .sqa_con,
#sit_opt_added li {           /* mobile_shop.css:370 background:#ffffff9e */
  background: var(--lv-gray-100);
}

/* ── 8-2. 흰 면 → 바탕 ──────────────────────────────────── */
#loading_message, .sps_card, #sps_modal_box, #sps_search_toggle,
.sps_filter_btn, .sps_filter_drop, #sps_sch .sch_input,
#sqa_sch .sch_wr, #sqa_sch select, #sqa li,
.sqa_con_btn button, #itemqa_list, #itemuse_list {
  background: var(--lv-white);
}
.couponzone_list ul li .coupon_btn .disabled {
  background: var(--lv-gray-200);
  color: var(--lv-gray-400);
}

/* ── 8-3. 어두운 글씨 → 본문 / 강조 ─────────────────────── */
#sit_inf_open th, #sit_inf_open td,
#free_ship_msg,
#sps_sch select, .sps_card_content, .sps_card_prd, .sps_card_prd span,
.sps_card_detail_inner, .sps_modal_prd_link, .sps_modal_prd_link span,
#sps_modal_body, #sps_search_toggle, #sps_search_inner select,
.sps_filter_btn, .sps_filter_drop a, .sqa_con_btn button {
  color: var(--lv-gray-600);
}
#free_ship_msg strong, .sps_card_title, .sps_reply_title,
#sps_modal_title, .sps_total_count strong,
#sps_search_toggle:hover, .sps_filter_btn:hover,
.sps_filter_btn.active, .sps_filter_drop a:hover {
  color: var(--lv-black);
}

/* ── 8-4. 밝은 보더 → 보더 토큰 ─────────────────────────── */
#sit_inf_open th, #sit_inf_open td,
#free_ship_bar_wrap,
#sps_sch select, #sps_sch .sch_input, #sps_sch > a,
.sps_card, .sps_card_prd img, .sps_toggle_btn, .sps_card_detail,
.sps_modal_prd_link img, #sps_modal_meta, #sps_filter_bar,
#sps_search_toggle, #sps_search_inner select, #sps_search_inner input,
.sps_filter_btn, .sps_filter_drop,
#sqa_sch .sch_wr, #sqa_sch select, #sqa ol, #sqa li,
.sqa_con_btn button, #sqa .sit_qa_qaa,
#itemqa_list, #itemuse_list,
#sit_opt_added li, #sit_opt_added button, #sit_opt_added .num_input {
  border-color: var(--lv-gray-200);
}

/* ── 8-5. 무료배송 진행바 — 네온으로 ─────────────────────── */
#free_ship_bar { background: linear-gradient(90deg, var(--lv-accent-light), var(--lv-neon)); }
#free_ship_labels { color: var(--lv-gray-400); }

/* ============================================================
   9. 마이페이지 (/shop/mypage.php) — 30곳
   ------------------------------------------------------------
   mobile_shop.css 에 mp_* / my_* / out_wrap 계열이 전부 하드코딩돼 있다.
   7장에서 일부만 덮었기에 여기서 전 범위를 다시 정리한다.
   ============================================================ */

/* 면 */
.mp_card_section, .btn_my_if, .btn_out, .out_wrap ul li,
.sod_frm_point #od_temp_point {
  background: var(--lv-gray-100);
}

/* 보더 — 카드·구분선 전부 */
.mp_profile_left .my_img, .mp_edit_btn, .btn_out,
.mp_stat_grid, .mp_stat_item, .mp_stat_item:nth-child(3), .mp_stat_item:nth-child(4),
.mp_shortcut_grid, .mp_shortcut_item,
.my_info, .btn_my_if,
.mp_card_section, .mp_card_section_head, .mp_card_section_more,
.mp_grid_img img, .out_wrap ul li,
.sod_frm_point #od_temp_point {
  border-color: var(--lv-gray-200);
}

/* 강조 텍스트 (#111 자리) */
.mp_name strong, .mp_stat_item, .mp_stat_value,
.mp_shortcut_item, .mp_shortcut_value,
.my_info dd, .mp_card_section_title, .mp_card_section_more:hover,
.mp_grid_list li a, .mp_grid_price {
  color: var(--lv-black);
}

/* 보조 텍스트 (#333·#555·#777·#888 자리) */
.mp_edit_btn, .mp_shortcut_label, .btn_my_if,
.mp_grid_name, .out_wrap ul li a {
  color: var(--lv-gray-600);
}

/* 등급 뱃지는 포인트로 */
.mp_grade { color: var(--lv-neon); }

/* hover 는 네온 (시안 07) */
.mp_edit_btn:hover, .mp_card_section_more:hover,
.btn_my_if:hover, .btn_out:hover, .out_wrap ul li a:hover {
  border-color: var(--lv-neon);
  color: var(--lv-neon);
}

/* ============================================================
   12. 브랜드 가이드 반영 (260821) — 창업자 지정 규격
   ------------------------------------------------------------
   [배경] 창업자 팔레트는 쿨 그레이 축이다. 수치로 확인:
     Platinum Mono #D1D5DB  216.0°  |  Matte Coat Black #111827  220.9°
     우리 배경     #080c15  221.5°  → 같은 축의 더 어두운 버전. 그대로 둔다.
     "실버·알루미늄·하이엔드 디바이스" 는 쿨 그레이로만 나온다(따뜻한 회색 = 종이·나무).
     즉 파란 기울기는 오차가 아니라 금속 질감의 근거다.

   [원칙] 네온 핑크는 3~5%, "사용자의 행동이 일어나는 순간"에만.
     → 채움(가장 강함) 은 행동 유도에만: 바로구매 · SALE · 활성탭
     → 정보성 배지(BEST) 는 매트 블랙 면에 네온 "글자" 로 절제
   ------------------------------------------------------------ */
:root {
  --lv-matte:    #111827;   /* Matte Coat Black — 창업자 원값 */
  --lv-platinum: #D1D5DB;   /* Platinum Mono   — 창업자 원값 */
  --lv-silver:   #E5E7EB;   /* PREMIUM·VIP 글자용 실버 */
}

/* ── 12-1. 배지 — 창업자 지정 4종 ──────────────────────────
   ⚠️ 특이도 주의: lovvon.css 의 `.lv-badge.sale`(0,2,0) 을 이기려면
      여기도 최소 (0,2,0) 이어야 한다. `.lv-badge` 하나로는 진다. */

/* BEST : 매트 블랙 배경 + 네온 핑크 글자
   (다크 전환 때 네온 채움으로 잘못 덮었던 것을 되돌린다 —
    많이 팔렸다는 "정보"지 행동 유도가 아니다) */
.lv-badge.best {
  background: var(--lv-matte);
  color: var(--lv-neon);
  border: 1px solid var(--lv-neon);
}

/* SALE : 네온 핑크 배경 + 흰 글자
   (배경은 맞았고 글자가 --lv-white 였다 → 반전 후 어두운색이 되어 안 읽혔다) */
.lv-badge.sale {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
  border-color: var(--lv-neon);
}

/* NEW : 라인 + 글자만 플래티넘, 면은 비운다 (260821 미라님 지정)
   창업자 규격은 "플래티넘 배경 + 블랙 글자" 였는데, 신상품 8개에 전부 붙으면
   다크 화면에 밝은 사각형이 줄지어 서서 BEST·SALE 보다 시선을 먼저 가져간다.
   NEW 는 정보성 배지라 아웃라인으로 낮추는 게 위계상 맞다. */
.lv-badge.new {
  background: transparent;
  color: var(--lv-platinum);
  border: 1px solid var(--lv-platinum);
}

/* PREMIUM·VIP : 블랙 배경 + 실버 글자 */
.lv-badge.premium, .lv-badge.vip {
  background: var(--lv-matte);
  color: var(--lv-silver);
  border: 1px solid var(--lv-gray-200);
}
/* 회원 등급 표기도 같은 규칙 (네온은 행동용이므로 등급에서 뺀다) */
.mp_grade { color: var(--lv-silver); }

/* ── 12-2. 버튼 위계 — 채움 vs 외곽선 ──────────────────────
   바로구매 = 네온 채움(Primary) / 장바구니 = 네온 테두리(Secondary)
   창업자: "장바구니: 블랙 또는 투명 배경 + 네온 핑크 테두리"

   ⚠️ 같은 역할의 버튼이 상세페이지와 하단 고정바 두 군데에 있고,
      클래스 이름이 서로 다르다(.lv-btn-* / .lv-buybar-*).
      한쪽만 고치면 스크롤 전후로 모양이 달라진다 — 260821 실제로 그랬다
      (.lv-buybar-buy 에만 radius 가 있어서 넷 중 하나만 둥글었다).
      → 모서리·테두리 같은 형태 속성은 반드시 네 개를 한 줄에 묶어서 준다. */
.lv-btn-buy, .lv-btn-cart,
.lv-buybar-buy, .lv-buybar-cart {
  border-radius: 6px;
  border: 1px solid var(--lv-neon);
}
/* ⚠️ 고정바의 원본 `.lv-buybar-btn` 은 `border: 1px solid var(--lv-black)` 인데
   반전 후 --lv-black 이 밝은색(#F3F4F6)이라 네온 버튼에 흰 테두리가 둘러졌다.
   위에서 네 개 모두 네온 테두리로 덮는다.

   글로우는 평상시엔 넷 다 없고 hover 에서만 켠다 —
   고정바는 스크롤 내내 떠 있어서 계속 빛나면 "행동하는 순간에만" 원칙에서 벗어난다. */
.lv-btn-buy:hover, .lv-buybar-buy:hover {
  box-shadow: 0 0 20px var(--lv-neon-glow);
  opacity: 1;
}
.lv-buybar-cart, .lv-btn-cart {
  background: var(--lv-matte);
  color: var(--lv-neon);
}
.lv-buybar-cart:hover, .lv-btn-cart:hover {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
  opacity: 1;
}
/* 바로구매는 채움 유지 (이미 규격과 일치) — hover 만 글로우 */
.lv-btn-buy {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
}

/* ── 12-3. accent 51곳 역할 분리 ────────────────────────────
   lovvon.css 의 --lv-accent 는 원래 베이지(#c8a98a) 장식색이었다.
   다크 전환에서 이 토큰을 네온으로 바꿔 51곳이 한꺼번에 핑크가 됐는데,
   그 중 대부분이 "행동"이 아니라 카테고리 라벨·별점·댓글수 같은 정보다.
   → 창업자 원칙("행동이 일어나는 순간에만")대로 역할을 나눈다.

   [네온 유지 = 행동·가격]  hover / 본문링크 / SALE / 할인율·옵션가·적립금 /
                            필수입력 표시 / 무료배송 진행바 / 선택된 카테고리
   [아래로 변경 = 정보]     라벨·별점·섹션제목·카운트·상태배지
   ------------------------------------------------------------ */

/* (a) 소형 대문자 라벨류 → 보조 텍스트 (작은 글씨라 너무 밝으면 튄다) */
.lv-mag-hero-cat, .lv-mag-card-cat, .lv-article-cat,
.lv-more-cat, .lv-popular-cat, .lv-mag-label,
.lv-iu-reply-label, .lv-tab-section-label,
.lv-detail-brand {
  color: var(--lv-gray-600);
}

/* (b) 섹션 제목 → 가장 강한 전경(제목색) */
.lv-form-section-title, .lv-detail-section-title,
.lv-order-layout section > h2 {
  color: var(--lv-black);
}

/* (c) 별점·평점 → 실버 (브랜드에 금색이 없다) */
.lv-stars::after, .lv-review-stars, .lv-score-stars,
.sps_card_star .star.on {
  color: var(--lv-silver);
}
.lv-score-bar-fill { background: var(--lv-silver); }

/* (d) 카운트류(댓글수·탭수·검색결과수) → 보조 텍스트 */
.lv-cmt-cnt, .bo_vc_tit .cmt_total, .lv-tab-cnt,
.lv-tab-btn em, .lv-search-wrap #sch_res_ov strong,
.lv-accent {
  color: var(--lv-gray-600);
}

/* (e) 상태 배지·답변 라벨 → 매트 블랙 면 + 실버 글자
       (답변완료는 "상태"지 행동이 아니다) */
.lv-qa-label-a, .lv-qa-block-label.a,
.lv-qa-badge-status.done, .lv-faq-a-badge {
  background: var(--lv-matte);
  color: var(--lv-silver);
  border: 1px solid var(--lv-gray-200);
}

/* (f) 리뷰 인용 좌측선 → 보더색 */
.lv-iu-reply-body, .lv-iu-reply {
  border-left-color: var(--lv-gray-200);
}

/* ── 12-4. 로고 — 평상시 플래티넘 / hover 네온 점등 (260821) ──
   로고는 관리자 업로드 이미지(/data/common/mobile_logo_img)이고
   검은 단색 + 투명 배경이다. 다크에서 그냥 두면 안 보인다.
   → 알파 실루엣을 mask 로 쓰고 그 위에 색을 칠한다. 이미지 파일은 그대로 둔다.
     로고를 교체해도 이 CSS 는 그대로 동작하고, 평상시 색은 아래 한 줄로 바꾼다.

   ⚠️ filter 와 mask 를 같은 요소에 걸면 안 된다 —
      필터가 먼저 적용되고 그 결과에 마스크가 씌워져서 글로우가 실루엣에 잘린다.
      그래서 부모 <a> 에 글로우, 자식 <span class="lv-logo-mark"> 에 마스크로 나눴다.
      (shop.head.php 51·141줄에 span 래퍼를 추가했다. 백업 .bak_260821_logo)

   시안의 O 안쪽 가로선은 여기서 못 한다 — CSS 는 이미지 속 특정 글자를 못 고른다.
   O 두 개에만 넣으려면 로고 SVG 원본이 필요하다. */
.lv-logo, .lv-panel-logo {
  transition: filter 0.25s ease;
}
.lv-logo-mark {
  display: block;
  -webkit-mask: url("/data/common/mobile_logo_img") no-repeat center / contain;
          mask: url("/data/common/mobile_logo_img") no-repeat center / contain;
  background-color: var(--lv-gray-700);   /* 플래티넘 #D1D5DB */
  transition: background-color 0.25s ease;
}
/* img 는 자리(크기)만 잡고 그림은 마스크가 대신한다 — display:none 이면 크기가 사라진다 */
.lv-logo-mark img { visibility: hidden; display: block; }

.lv-logo:hover, .lv-logo:focus-visible,
.lv-panel-logo:hover, .lv-panel-logo:focus-visible {
  filter: drop-shadow(0 0 9px var(--lv-neon-glow)) drop-shadow(0 0 22px var(--lv-neon-haze));
}
.lv-logo:hover .lv-logo-mark, .lv-logo:focus-visible .lv-logo-mark,
.lv-panel-logo:hover .lv-logo-mark, .lv-panel-logo:focus-visible .lv-logo-mark {
  background-color: var(--lv-neon);
}
.lv-logo:focus-visible, .lv-panel-logo:focus-visible {
  outline: 2px solid var(--lv-neon);
  outline-offset: 6px;
}

/* ── 12-5. buzinga 잔재 오렌지(#ff4c00) 일소 (260821) ────────
   mobile_shop.css 에 14곳 남아 있다. 예전에 "서비스 마크업 미사용"으로 판단하고
   놔뒀는데, 검색창에서 실제로 오렌지가 보인다는 제보가 나왔다.
   → 어느 경로로 새는지 하나씩 쫓는 대신 **선택자 전부를 브랜드 색으로 덮는다.**
      #ff4c00 은 색상각 18°(주황)로 LOVVON 팔레트에 아예 없는 색이다.

   원본은 수정하지 않는다. mobile_shop.css 는 head.sub.php 59줄에서 echo 되고
   이 파일이 바로 다음 줄이라 같은 특이도면 순서로 이긴다. */

/* 행동·강조 자리 → 네온 */
.hd_right_btn .cart .cart-count { background: var(--lv-neon); color: var(--lv-on-neon); }
#gnb_scroll li:hover a,
#gnb .gnb_1da:hover { color: var(--lv-neon); }
.search_modal_box #sch_submit {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
}
.search_modal_box #popular a:hover {
  border-color: var(--lv-neon);
  color: var(--lv-neon);
}
.sanchor a.sanchor_on span { background: var(--lv-neon); }
.more_btn a:hover {
  background: var(--lv-neon);
  border-color: var(--lv-neon);
  color: var(--lv-on-neon);
}
.cate_box li.on {
  color: var(--lv-neon);
  border-bottom-color: var(--lv-neon);
}
.cate_box li:hover { color: var(--lv-neon); }
.active { color: var(--lv-neon); }

/* 정보 자리 → 12-3 과 같은 규칙(별점은 실버). 네온은 행동에만 쓴다 */
.cate_box li { color: var(--lv-gray-600); border-bottom-color: transparent; }
.review_card_star .star.on,
.rv_star .star.on { color: var(--lv-silver); }
.review_card_star .star,
.rv_star .star { color: var(--lv-gray-200); }

/* ── 12-6. 장바구니 버튼 위계 (260821) ──────────────────────
   cart.php 186줄 주문하기 = .lv-btn-black / 191줄 쇼핑 계속하기 = .lv-btn-white.
   전역 규칙(5-1)에서 .lv-btn-black 은 어두운 면, .lv-btn-white 는 원본 그대로라
   모서리·배경·테두리가 서로 달랐다.

   ⚠️ .lv-btn-black 을 전역에서 네온으로 바꾸면 안 된다 —
      5-1 에 검색·주소·문의 등 10여 개 버튼이 같이 묶여 있어서 네온이 화면에 퍼진다.
      그래서 `.lv-cart-wrap` 스코프로만 승격시킨다.

   ⚠️ 특이도 — 쇼핑 계속하기는 <a> 이고 원본에 `a.lv-btn-white:link`(0,2,1) 이 있다.
      `.lv-cart-wrap .lv-btn-white`(0,2,0) 로는 글자색이 안 바뀐다. a 형태로 맞받는다. */

/* 주문하기 = Primary — 상세 '바로 구매'와 같은 모양 */
.lv-cart-wrap .lv-btn-black {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
  border: 1px solid var(--lv-neon);
  border-radius: 6px;
}
.lv-cart-wrap a.lv-btn-black,
.lv-cart-wrap a.lv-btn-black:link,
.lv-cart-wrap a.lv-btn-black:visited { color: var(--lv-on-neon); }
.lv-cart-wrap .lv-btn-black:hover {
  background: var(--lv-neon);
  box-shadow: 0 0 20px var(--lv-neon-glow);
  opacity: 1;
}

/* 쇼핑 계속하기 = Secondary — 이탈 동선이라 네온을 쓰지 않는다(중립 외곽선) */
.lv-cart-wrap .lv-btn-white {
  background: var(--lv-matte);
  border: 1px solid var(--lv-gray-200);
  border-radius: 6px;
}
.lv-cart-wrap a.lv-btn-white,
.lv-cart-wrap a.lv-btn-white:link,
.lv-cart-wrap a.lv-btn-white:visited { color: var(--lv-gray-700); }
.lv-cart-wrap .lv-btn-white:hover,
.lv-cart-wrap a.lv-btn-white:hover {
  border-color: var(--lv-neon);
  color: var(--lv-neon);
}

/* ── 12-7. 위시리스트 액션 버튼 (260821) ────────────────────
   /shop/wishlist.php 는 테마 오버라이드가 없어 영카트 코어 마크업을 그대로 쓴다.
     <div id="sod_ws_act">
       <button class="btn02">바로구매</button>
       <button class="btn01">장바구니</button>

   세 가지가 겹쳐 있었다:
   ① 7-3 덮개에 `#sod_ws_act .btn02` 는 있는데 **.btn01 이 빠졌다.**
      원본 `#sod_ws_act .btn01`(1,1,0) 은 `background:#111` 이라
      **다크 배경에 검은 버튼**이 남아 거의 안 보였다.
      → ID 선택자라 특이도 (1,1,0) 으로 맞받아야 한다. 클래스만으로는 못 이긴다.
   ② 위계가 뒤집혀 있었다 — 장바구니가 검정 채움(강조), 바로구매가 중립 면.
   ③ float 배치라 마크업 순서(바로구매→장바구니)와 화면 순서가 반대였다.
      상세페이지(.lv-cta-buttons)는 바로구매가 먼저다 → flex 로 바꿔 순서를 맞춘다.
      컨테이너 width 200px 도 너무 좁아 버튼 하나가 98px 이었다. */
#sod_ws_act {
  display: flex;
  gap: 10px;
  width: 100%;
  max-width: 420px;
  margin: 20px auto;
}
#sod_ws_act .btn01,
#sod_ws_act .btn02 {
  float: none;
  width: 50%;
  height: 46px;
  font-size: 13px;
  font-weight: 500;
  border-radius: 6px;
  cursor: pointer;
  transition: box-shadow 0.15s, background 0.15s, color 0.15s;
}
/* 바로구매 = Primary (상세 '바로 구매'와 같은 모양) */
#sod_ws_act .btn02 {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
  border: 1px solid var(--lv-neon);
}
#sod_ws_act .btn02:hover {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
  box-shadow: 0 0 20px var(--lv-neon-glow);
}
/* 장바구니 = Secondary (상세 '장바구니 담기'와 같은 모양) */
#sod_ws_act .btn01 {
  background: var(--lv-matte);
  color: var(--lv-neon);
  border: 1px solid var(--lv-neon);
}
#sod_ws_act .btn01:hover {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
}

/* ── 12-8. 코어 화면 3종 (260821) ───────────────────────────
   /bbs/point.php · /shop/orderinquiry.php · /shop/coupon.php
   셋 다 **테마 오버라이드가 없어** 영카트/그누보드 코어 마크업을 그대로 쓴다.
   다크 전환 때 lovvon 전용 클래스(.lv-*) 위주로 훑어서 통째로 빠졌고,
   원본에 밝은 배경(#fff·#f9f9f9·#f3f3f3)이 하드코딩돼 있어 다크에 흰 패널이 떴다.

   ⚠️ 원본이 대부분 ID 스코프(`#point .x`·`#scp_list .x`, 특이도 1,1,0)라
      클래스만으로는 못 이긴다. 같은 형태로 맞받는다.
   ⚠️ 브랜드에 없는 색 2개를 여기서 잡는다 — 팝업 헤더 파랑 #4162ff, 포인트 상태 주황 #eb3b0e. */

/* ── 팝업 레이아웃 공통 (포인트·쿠폰이 새 창으로 뜬다) ── */
.new_win #win_title {
  background: var(--lv-matte);
  color: var(--lv-black);
  border-bottom: 1px solid var(--lv-gray-200);
}
.new_win .win_ul li .selected {          /* 선택 상태 = 네온 (창업자 지정 자리) */
  background: var(--lv-neon);
  color: var(--lv-on-neon);
}
.new_win .win_desc { color: var(--lv-gray-600); }
.new_win .win_btn .btn_close {
  background: var(--lv-face);
  color: var(--lv-black);
  border: 1px solid var(--lv-gray-200);
}
.new_win .win_btn .btn_close:hover { border-color: var(--lv-neon); color: var(--lv-neon); }

/* ── 포인트 /bbs/point.php ── */
#point .point_all {
  background: var(--lv-gray-100);
  border: 1px solid var(--lv-gray-200);
  color: var(--lv-gray-700);
}
#point .point_all .full_li span { color: var(--lv-black); }
#point .point_status {                    /* 원본 주황 #eb3b0e */
  background: var(--lv-matte);
  color: var(--lv-black);
  border: 1px solid var(--lv-gray-200);
}
.point_list li {
  background: var(--lv-gray-100);
  border-bottom-color: var(--lv-gray-200);
}
.point_list li:first-child { border-top-color: var(--lv-gray-200); }
.point_list .point_use { background: var(--lv-face-strong); }
.point_list .point_use .point_num { color: var(--lv-neon); }   /* 차감 — 원본 #ff4f76 */
.point_list .point_num { color: var(--lv-black); }
.point_list .point_date1,
.point_list .point_date { color: var(--lv-gray-400); }
.point_list .txt_expired { color: var(--lv-danger); }
.memo_list li.empty_li { color: var(--lv-gray-600); }
#point .btn_close {
  background: var(--lv-face);
  color: var(--lv-black);
  border: 1px solid var(--lv-gray-200);
  border-radius: 6px;
}
#point .btn_close:hover { border-color: var(--lv-neon); color: var(--lv-neon); }

/* ── 쿠폰 /shop/coupon.php ── */
#scp_list ul li { border-bottom-color: var(--lv-gray-200); }
#scp_list ul li .cou_bt { border-bottom-color: var(--lv-gray-200); }
#scp_list .pd_price strong { color: var(--lv-neon); }   /* 원본 #ff006c → 브랜드 네온 */
#scp_list .li_title { color: var(--lv-black); }
#scp_list .li_target {
  background: var(--lv-face-strong);
  color: var(--lv-gray-600);
  border-top-color: var(--lv-gray-200);
}
#scp_list .pd_date { color: var(--lv-gray-400); }

/* ── 주문조회 /shop/orderinquiry.php ── */
#sod_v_info {
  background: var(--lv-face-strong);
  color: var(--lv-gray-600);
  border: 1px solid var(--lv-gray-200);
  border-radius: 6px;
}

/* ── 12-9. 내용관리 /bbs/content.php (260821) ───────────────
   이용약관·개인정보처리방침·회사소개. 스킨 CSS 는 구분선 하나뿐이다.

   260821 확인: 세 페이지 모두 **아직 내용이 안 채워져 있었다.**
   "개인정보 처리방침에 대한 내용을 입력하십시오." 라는 그누보드 기본 더미이고,
   그 더미에 인라인 스타일이 딸려 있다 —
     background-color:rgb(255,255,255) / color:rgb(0,0,0)
   → 다크 화면에 흰 블록 + 검은 글씨가 떴다. 관리자 에디터에는 안 보인다.
   (provision 자리에도 개인정보 문구가 들어가 있다. 관리자 > 내용관리에서 채울 것)

   ⚠️ 인라인 style 은 특이도 최상이라 선택자로는 못 이긴다. !important 가 유일한 방법.
      (같은 함정을 #lv_to_top 에서 이미 겪었다)
   → 아래는 안전망이다. 내용을 채울 때 다른 문서에서 붙여넣어 서식이 딸려와도 막아준다.
     대신 본문에 의도적으로 색을 쓰려면 이 규칙을 완화해야 한다. */
/* 상단 구분선 제거 — 원본 `#ctt {border-top:1px solid #e9e9e9}`.
   ⚠️ content 스킨의 style.css 는 add_stylesheet(버퍼 주입)라 이 파일보다 뒤에 올 수 있다.
      같은 특이도(1,0,0)면 순서로 진다 → `body` 를 붙여 (1,0,1) 로 확실히 이긴다. */
body #ctt { border-top: none; }
#ctt_con { color: var(--lv-gray-700); }
/* 본문 안의 색 지정을 전부 무력화하고 테마 색을 상속시킨다.
   약관류는 색 강조가 의미를 갖지 않아 통째로 눕혀도 잃는 정보가 없다. */
#ctt_con *,
#ctt_con [style] {
  background-color: transparent !important;
  color: inherit !important;
}
#ctt_con a,
#ctt_con a:link,
#ctt_con a:visited { color: var(--lv-neon) !important; }
#ctt_con table,
#ctt_con td,
#ctt_con th {
  border-color: var(--lv-gray-200) !important;
  background-color: transparent !important;
}
#ctt_con th { color: var(--lv-black) !important; }

/* ── 12-10. 주문서 /shop/orderform.sub.php (260821) ─────────
   실화면 스크린샷으로 확인한 3가지.

   ① 결제수단 버튼이 **흰 박스에 흰 글자**라 라벨이 안 보였다.
      원본 831줄 `#od_pay_sl .lb_icon` : background:#eee; color:#777; border:1px solid #fff
      → 다크에서 배경 #eee 가 그대로 남아 밝은 덩어리 3개가 떴다.
      선택 상태(833줄)는 background:#111 이라 다크에서 거의 안 보인다.
      → 기본은 매트 면, 선택·hover 는 네온 채움. "선택 상태 = 네온"은 창업자 지정 자리다.

   ② 추가배송비 칸이 흰 박스. 원본 860줄 `td { background:#ffffffd6 }` (반투명 흰).

   ③ 결제하기 버튼이 중립 면이었다 → 장바구니 '주문하기'와 같은 Primary(네온 채움)로 맞춘다.
      주문서의 최종 CTA 인데 취소 버튼과 무게가 같으면 안 된다. */

/* ① 결제수단 */
#od_pay_sl .lb_icon {
  background: var(--lv-face);
  color: var(--lv-gray-700);
  border: 1px solid var(--lv-gray-200);
  border-radius: 6px;
}
#od_pay_sl .lb_icon:hover,
#od_pay_sl input[type="radio"]:checked + .lb_icon {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
  border: 1px solid var(--lv-neon);
}

/* ② 결제 금액표 */
#sod_frm_pay .pay_tbl th {
  border-bottom-color: var(--lv-gray-200);
  color: var(--lv-gray-600);
}
#sod_frm_pay .pay_tbl td {
  background: transparent;
  border-bottom-color: var(--lv-gray-200);
  color: var(--lv-gray-700);
}
#sod_frm_pay .pay_tbl td .btn_frmline {
  background: var(--lv-face);
  color: var(--lv-black);
  border: 1px solid var(--lv-gray-200);
  border-radius: 4px;
}
#od_tot_price strong { color: var(--lv-black); }

/* ③ 결제하기 = Primary (장바구니 '주문하기'·상세 '바로 구매'와 같은 모양) */
.lv-order-layout #display_pay_button .btn_submit {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
  border: 1px solid var(--lv-neon);
  border-radius: 6px;
}
.lv-order-layout #display_pay_button .btn_submit:hover {
  background: var(--lv-neon);
  color: var(--lv-on-neon);
  box-shadow: 0 0 20px var(--lv-neon-glow);
  opacity: 1;
}

/* ④ 상품표가 오른쪽에서 잘린다 (다크와 무관한 레이아웃 건이지만 같은 화면이라 여기서 잡는다)
   `.lv-order-left`(padding-right:48px) 안에서 #sod_list 가 넘치는데 스크롤이 없어
   '배송비' 열의 "선불" 이 세로로 깨져 보였다. 표만 가로 스크롤시킨다 —
   페이지 body 가 가로로 밀리면 안 되므로 컨테이너에만 준다. */
.lv-order-layout .od_prd_list,
.lv-order-layout .tbl_wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* ── 12-11. 매거진 섹션 + 아이콘 메뉴 (260821) ──────────────── */

/* ① 매거진 섹션 배경 제거 — 원본 543줄 `.lv-mag-index-section { background: var(--lv-bg-warm) }`.
   라이트 테마에서 베이지 면으로 구역을 나누던 장치인데, 다크에서는
   페이지 배경과 미묘하게만 달라 얼룩처럼 보인다. 면을 걷어낸다. */
.lv-mag-index-section { background: transparent; }

/* ② 매거진 카드 글자가 안 보인다 — latest 위젯 `theme/main` 스킨이
   buzinga(라이트) 기준으로 하드코딩돼 있다. dark 덮개가 없어 통째로 빠져 있었다.
     .lt_tit    #2c2c2a  ← 거의 검정. 다크에서 안 읽힌다
     .lt_detail #b0afa8  /  .lt_img background #f0f0ee (흰 썸네일 면)
   ⚠️ 스킨 style.css 는 add_stylesheet 로 이 파일보다 뒤에 올 수 있어
      `.lv-mag-index-section` 을 앞에 붙여 특이도를 올려 확실히 이긴다. */
.lv-mag-index-section .lt_gal li .lt_img { background: transparent; }
.lv-mag-index-section .lt_gal li .lt_txt .lt_tit { color: var(--lv-black); }
.lv-mag-index-section .lt_gal li .lt_txt .lt_tit:hover { color: var(--lv-neon); }
.lv-mag-index-section .lt_gal li .lt_txt .lt_detail,
.lv-mag-index-section .lt_gal .empty_list { color: var(--lv-gray-600); }

/* ③ 아이콘 메뉴 간격 16px → 25px (원본 747줄).
   원본이 `display:grid !important` 를 쓰는 블록이라 여기도 같은 선택자로 맞받는다. */
.lv-icon-menu > div { gap: 25px; }
