/* ============================================================
   배때지 V2 메인 전용 스타일 — 범위: .v2-home 하위로 한정
   (전역 body/img/a/.container 선택자 사용 금지)
   디자인: 검정·화이트·웜그레이 / 절제 / 최소 테두리 / 과도한 그림자·금색·애니메이션 금지
   반응형: 모바일 우선, 320~1440+
   상품 카드(.v2live-card)는 shop-final.css를 그대로 상속
   ============================================================ */

.v2-home {
    --hm-ink: #16161a;
    --hm-sub: #6b6b74;
    --hm-line: #e8e8ea;
    --hm-bg: #f6f6f4;      /* warm grey */
    --hm-card: #ffffff;
    --hm-ac: #4b48d6;      /* 절제된 포인트 */
    --hm-ink-soft: #2a2a30;
    --hm-radius: 16px;
    --hm-gap: 14px;
    --hm-pad: 16px;
    --hm-max: 1280px;
    color: var(--hm-ink);
    background: var(--hm-bg);
    font-family: Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
    -webkit-text-size-adjust: 100%;
    word-break: keep-all;
    overflow-x: hidden;   /* 풀블리드 레일로 인한 가로 스크롤 누수 방지 (헤더 sticky 영향 없음: 헤더는 .v2-home 외부) */
}
.v2-home * { box-sizing: border-box; }

/* 공통 컨테이너: PC에서 무한확장 금지, 모바일 통짜박스 방지 */
.v2-home-wrap {
    width: 100%;
    max-width: var(--hm-max);
    margin: 0 auto;
    padding-left: var(--hm-pad);
    padding-right: var(--hm-pad);
}
@media (min-width: 1024px) { .v2-home { --hm-pad: 28px; } }

/* 섹션 간 여백 */
.v2-home-section { margin-top: 34px; }
.v2-home-section:first-of-type { margin-top: 18px; }

/* 섹션 헤더 */
.v2-home-sechead {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: 12px; margin-bottom: 12px;
}
.v2-home-sechead-l { min-width: 0; }
.v2-home-sechead h2 {
    margin: 0; font-size: 18px; font-weight: 800; letter-spacing: -.3px;
    line-height: 1.3;
}
.v2-home-sechead p {
    margin: 4px 0 0; font-size: 13px; color: var(--hm-sub); line-height: 1.5;
}
.v2-home-more {
    flex: none; font-size: 13px; font-weight: 700; color: var(--hm-sub);
    display: inline-flex; align-items: center; gap: 2px; white-space: nowrap;
    min-height: 32px;
}
.v2-home-more:hover { color: var(--hm-ink); }
.v2-home-more svg { width: 15px; height: 15px; }

/* ---------------------------------------------------------
   A. HERO
   --------------------------------------------------------- */
.v2-home-hero {
    margin-top: 14px;
    display: grid; grid-template-columns: 1fr; gap: 16px;
    padding: 22px 18px;
    border-radius: 22px;
    background:
        radial-gradient(120% 90% at 100% 0%, rgba(75,72,214,.10), transparent 60%),
        linear-gradient(180deg, #ffffff 0%, #fbfbfa 100%);
    border: 1px solid var(--hm-line);
}
.v2-home-hero__eyebrow {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 11px; font-weight: 800; letter-spacing: .14em; color: var(--hm-ac);
}
.v2-home-hero__eyebrow i {
    width: 5px; height: 5px; border-radius: 50%; background: var(--hm-ac); display: inline-block;
}
.v2-home-hero__title {
    margin: 12px 0 8px; font-size: 25px; line-height: 1.28; font-weight: 800;
    letter-spacing: -.6px; color: var(--hm-ink);
}
.v2-home-hero__lead {
    margin: 0; font-size: 14px; line-height: 1.6; color: var(--hm-sub); max-width: 46ch;
}
.v2-home-hero__search {
    display: flex; align-items: center; gap: 8px; margin-top: 18px;
    background: #fff; border: 1px solid #dcdce0; border-radius: 14px;
    padding: 4px 4px 4px 14px;
}
.v2-home-hero__search:focus-within { border-color: var(--hm-ink); }
.v2-home-hero__search svg { width: 20px; height: 20px; color: var(--hm-sub); flex: none; }
.v2-home-hero__search input {
    flex: 1; min-width: 0; border: 0; outline: 0; background: transparent;
    font-size: 15px; color: var(--hm-ink); padding: 12px 0;
}
.v2-home-hero__search button {
    flex: none; border: 0; border-radius: 11px; background: var(--hm-ink); color: #fff;
    font-size: 14px; font-weight: 700; padding: 0 18px; height: 44px; cursor: pointer;
}
.v2-home-hero__actions {
    display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px;
}
.v2-home-hero__actions a {
    display: inline-flex; align-items: center; gap: 6px;
    min-height: 44px; padding: 0 15px; border-radius: 11px;
    font-size: 13.5px; font-weight: 700;
    border: 1px solid var(--hm-line); background: #fff; color: var(--hm-ink);
}
.v2-home-hero__actions a.is-solid { background: var(--hm-ink); color: #fff; border-color: var(--hm-ink); }
.v2-home-hero__actions a svg { width: 17px; height: 17px; }
.v2-home-hero__trends {
    display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px;
}
.v2-home-hero__trends span { font-size: 12px; color: var(--hm-sub); align-self: center; margin-right: 2px; }
.v2-home-hero__trends button {
    border: 1px solid var(--hm-line); background: #fff; color: var(--hm-ink-soft);
    font-size: 12.5px; border-radius: 999px; padding: 7px 12px; cursor: pointer;
    min-height: 34px;
}
.v2-home-hero__trends button:hover { border-color: var(--hm-ac); color: var(--hm-ac); }

.v2-home-hero__visual { display: none; }   /* 모바일: 텍스트/검색 중심 */
.v2-home-hero__visual-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.v2-home-hero__visual-grid a {
    display: block; aspect-ratio: 1 / 1; border-radius: 12px; overflow: hidden;
    background: #eee; border: 1px solid var(--hm-line);
}
.v2-home-hero__visual-grid img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------------------------------------------------------
   B. 바로가기 (SHOP SHOP 중복 없음: 라벨 텍스트 1회, 아이콘 aria-hidden)
   --------------------------------------------------------- */
/* ===== 퀵메뉴 프리미엄 리디자인 (Duello/Toss 스타일) ===========================
   · 컬러 소프트-플랫 아이콘 카드(라운드 스퀘어) + 하단 라벨 + 우상단 배지.
   · 모바일/태블릿: 가로 스크롤(스냅, 스크롤바 숨김). PC(≥1200): 한 줄 가운데 정렬.
   · 자리 크기를 미리 확보(고정 폭/높이)해 CLS 0. JS 불필요(네이티브 스크롤).
   ------------------------------------------------------------------------- */
.v2-home-shortcuts {
    margin-top: 18px;
    display: flex; flex-wrap: nowrap;
    gap: 14px;
    overflow-x: auto; overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    scroll-padding-left: 16px;
    padding: 6px 16px 4px;                 /* 좌우 끝 메뉴 안 잘리게 */
    margin-left: -16px; margin-right: -16px; /* wrap 좌우 패딩 상쇄 → 풀블리드 레일 */
    scrollbar-width: none;                 /* Firefox */
    -ms-overflow-style: none;              /* IE/Edge */
    overscroll-behavior-x: contain;
}
.v2-home-shortcuts::-webkit-scrollbar { display: none; width: 0; height: 0; } /* Chrome/Safari */

.v2-home-shortcut {
    flex: 0 0 auto;
    scroll-snap-align: start;
    width: 56px;                            /* 모바일 카드폭 기준 자리 예약(CLS 0) */
    min-height: 44px;
    display: flex; flex-direction: column; align-items: center; gap: 10px;
    padding: 2px 0; border-radius: 16px;
    color: var(--hm-ink); text-align: center;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
}
.v2-home-shortcut:focus-visible {
    outline: 2px solid var(--hm-ac); outline-offset: 3px; border-radius: 16px;
}
.v2-home-shortcut__visual {
    position: relative; overflow: visible;
    width: 56px; height: 56px; border-radius: 20px;
    display: grid; place-items: center;
    background: linear-gradient(145deg, #ffffff, var(--qm-bg2, #f5f5f7));
    border: 1px solid rgba(17,17,17,.06);
    box-shadow: 0 8px 24px rgba(17,17,17,.08), inset 0 1px 0 rgba(255,255,255,.9);
    transition: transform .22s ease, box-shadow .22s ease;
}
.v2-home-shortcut__visual svg {
    width: 31px; height: 31px; object-fit: contain;
    transition: transform .22s ease;
}
.v2-home-shortcut__label {
    font-size: 11px; font-weight: 700; line-height: 1.2;
    letter-spacing: -.3px; white-space: nowrap; color: #222;
}
/* 메뉴별 은은한 파스텔 틴트(아주 약하게) */
.v2-home-shortcut--community  { --qm-bg2: #e8f7ee; }
.v2-home-shortcut--shop       { --qm-bg2: #f7f1e9; }
.v2-home-shortcut--ranking    { --qm-bg2: #faf3de; }
.v2-home-shortcut--promotion  { --qm-bg2: #fceef3; }
.v2-home-shortcut--sale       { --qm-bg2: #fdefe6; }
.v2-home-shortcut--brand      { --qm-bg2: #f2edfb; }
.v2-home-shortcut--inspection { --qm-bg2: #eaf2fc; }
.v2-home-shortcut--review     { --qm-bg2: #fcedef; }
.v2-home-shortcut--point      { --qm-bg2: #fbf5dd; }
.v2-home-shortcut--guide      { --qm-bg2: #e7f6f2; }
.v2-home-shortcut--request    { --qm-bg2: #eef0fb; }

/* 전체셀러보기(2026-08-26) — 아이콘(민트 상점)과 맞춘 타일 배경.
   ⚠ 라벨이 6글자라 기본 11px/nowrap 로는 좁은 화면에서 칸을 넘는다
     (실측: 320px 에서 7.0px, 768px 에서 2.2px 초과).
     다른 항목은 건드리지 않고 «이 항목만» 자간·크기를 줄여 칸 안에 넣는다. */
.v2-home-shortcut--seller { --qm-bg2: #e6f7f3 }

/* 라벨 축소는 «칸이 좁은 구간에서만». PC(>=1200px)는 칸 82px 라 기본 13px 로도 남으므로
   건드리지 않는다(다른 항목과 글자 크기가 어긋나 보이지 않게). */
@media (max-width: 767px) {
  .v2-home-shortcut--seller .v2-home-shortcut__label { font-size: 10px; letter-spacing: -.65px }
}
@media (min-width: 768px) and (max-width: 1199px) {
  .v2-home-shortcut--seller .v2-home-shortcut__label { font-size: 11px; letter-spacing: -.5px }
}
.v2-home-shortcut--live       { --qm-bg2: #fdecec; }

/* ── 퀵메뉴 1번 «LIVE» (2026-08-01) ────────────────────────────────────────
   아이콘(SVG) 자리에 «빨간 점 + LIVE» 배지를 넣는다. 이미지/이모지 없이 CSS 만 쓴다.
   · 카드 크기·라벨 위치·터치 영역은 다른 퀵메뉴와 동일(구조 변경 없음).
   · 점의 펄스는 «공개 영상이 있을 때(.is-on)» 만. transform/opacity 만 바꾸므로 레이아웃 이동 0.
   · 배지 폭은 em 기반이라 모바일 56 / 태블릿 62 / PC 68 카드에 그대로 맞는다.
   ------------------------------------------------------------------------ */
.v2qm-live {
    display: inline-flex; align-items: center; gap: .36em;
    padding: .4em .62em .4em .52em; border-radius: 999px;
    background: #111; color: #fff;
    font-size: 10px; font-weight: 800; line-height: 1; letter-spacing: .02em;
    box-shadow: 0 4px 10px rgba(17,17,17,.18);
}
.v2qm-live__dot {
    width: .58em; height: .58em; flex: 0 0 auto;
    border-radius: 50%; background: #EF4444;   /* 검정 배지 위 빨강 — 대비 확보 */
}
.v2qm-live__txt { font-weight: 800; font-style: normal; }
/* 공개 LIVE 1건 이상: 은은한 펄스(1.4s). 0건이면 점은 그대로, 애니메이션만 없음 */
.v2qm-live.is-on .v2qm-live__dot { animation: v2qmLivePulse 1.4s ease-in-out infinite; }
@keyframes v2qmLivePulse {
    0%, 100% { opacity: 1;   transform: scale(1); }
    50%      { opacity: .45; transform: scale(1.12); }
}
/* 보조 문구(새 영상 / 영상보기) — 텍스트 노드가 아니라 content 로 그린다(aria-label 일치) */
.v2qm-live__sub::before { content: attr(data-live-sub); }

/* 리뷰 실카운트 배지 — 카드 우상단, 아이콘/라벨 안 가림 */
.v2-home-shortcut__badge {
    position: absolute; top: -6px; right: -8px; z-index: 3;
    min-width: 22px; height: 22px; padding: 0 6px;
    display: inline-flex; align-items: center; justify-content: center;
    background: #DC2626; color: #fff;   /* #EF4444 → #DC2626: 흰 글자 대비 3.76→4.83:1 (WCAG AA) */
    font-size: 10px; font-weight: 800; line-height: 1;
    border: 2px solid #fff; border-radius: 999px;
    box-shadow: 0 2px 6px rgba(220,38,38,.35);
}

/* ── 리뷰 배지: 슬롯머신(odometer) — 카드/버튼은 고정, 숫자만 회전 ──
   6~8s마다 1회, 여러 숫자를 빠르게 거쳐 감속하며 원래 숫자로 착지. GPU transform, layout shift 0 */
.v2rv-odo {
    display: block; height: 1em; line-height: 1em;
    overflow: hidden;                       /* 클립 창(세로 1줄) — 가로폭은 불변 */
}
.v2rv-odo__strip {
    display: block; text-align: center;
    will-change: transform; transform: translate3d(0, 0, 0);
    animation: v2rvRoll 7s linear infinite;
}
.v2rv-odo__cell { display: block; height: 1em; line-height: 1em; }
/* 숫자는 pseudo-element 로 렌더 — 시각 동일, 접근성 트리/보이는 텍스트 집계에서 제외 */
.v2rv-odo__cell::before { content: attr(data-v); }
/* 셀 8개 [원본][스핀×6][원본]. 0.7s 동안 -7em까지, 큰폭→작은폭으로 감속(슬롯머신 착지감).
   -7em 착지 후 정지 구간은 원본 셀 유지 → 다음 주기 0으로 되돌아도 원본끼리라 이음매 없음. */
@keyframes v2rvRoll {
    0%    { transform: translate3d(0,  0,     0); }
    3%    { transform: translate3d(0, -4em,   0); }   /* 빠른 초기 스핀 */
    6%    { transform: translate3d(0, -6em,   0); }
    8.5%  { transform: translate3d(0, -6.8em, 0); }   /* 감속 */
    10%   { transform: translate3d(0, -7em,   0); }   /* 착지(원본) */
    100%  { transform: translate3d(0, -7em,   0); }
}

/* PC: hover 만(터치 고착 방지) */
@media (hover: hover) and (pointer: fine) {
    .v2-home-shortcut:hover .v2-home-shortcut__visual {
        transform: translateY(-4px);
        box-shadow: 0 16px 34px rgba(17,17,17,.14), inset 0 1px 0 rgba(255,255,255,.9);
    }
    .v2-home-shortcut:hover .v2-home-shortcut__visual svg { transform: scale(1.06); }
    /* hover 시 숫자 슬롯 회전 정지(터치기기는 이 미디어에 안 걸림 → 무영향) */
    .v2-home-shortcut--review:hover .v2rv-odo__strip { animation-play-state: paused; }
}
/* 터치: :active 에서만 가볍게 눌림 */
.v2-home-shortcut:active .v2-home-shortcut__visual { transform: scale(.96); }
@media (prefers-reduced-motion: reduce) {
    .v2-home-shortcut__visual, .v2-home-shortcut__visual svg { transition: none !important; }
    .v2-home-shortcut__badge { animation: none !important; }
    /* 슬롯 회전 비활성화 → 원본 숫자 정적 표시 */
    .v2rv-odo__strip { animation: none !important; transform: none !important; }
    /* LIVE 점: 펄스 제거 → 고정된 빨간 점으로 표시 */
    .v2qm-live__dot { animation: none !important; transform: none !important; opacity: 1 !important; }
}

/* ---------------------------------------------------------
   C. 탐색 시작 (실제 필터/검색 프리셋만, 가짜 AI 없음)
   --------------------------------------------------------- */
.v2-home-explore {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px;
}
.v2-home-explore a {
    display: flex; flex-direction: column; gap: 6px; justify-content: center;
    min-height: 84px; padding: 16px; border-radius: 14px;
    background: var(--hm-card); border: 1px solid var(--hm-line); color: var(--hm-ink);
}
.v2-home-explore a:hover { border-color: var(--hm-ink); }
.v2-home-explore strong { font-size: 14.5px; font-weight: 800; }
.v2-home-explore span { font-size: 12.5px; color: var(--hm-sub); line-height: 1.45; }
.v2-home-explore a.is-dark { background: var(--hm-ink-soft); border-color: var(--hm-ink-soft); }
.v2-home-explore a.is-dark strong { color: #fff; }
.v2-home-explore a.is-dark span { color: rgba(255,255,255,.72); }

/* ---------------------------------------------------------
   D~F. 상품 레일 (가로 스크롤, 카드 재사용)
   --------------------------------------------------------- */
.v2-home-rail {
    display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch; scrollbar-width: none;
    padding: 2px 0 6px; margin: 0 calc(var(--hm-pad) * -1); padding-left: var(--hm-pad); padding-right: var(--hm-pad);
}
.v2-home-rail::-webkit-scrollbar { display: none; }
.v2-home-rail .v2live-card {
    flex: 0 0 auto; width: 44vw; max-width: 190px; scroll-snap-align: start; margin: 0;
}
.v2home-card-noimg {
    position: absolute; inset: 0; display: grid; place-items: center;
    font-size: 12px; color: #b7b7bd; background: #f2f2f4;
}

/* 카테고리 섹션: 모바일도 레일 사용 */

/* ---------------------------------------------------------
   G. 브랜드 탐색
   --------------------------------------------------------- */
.v2-home-brands {
    display: flex; flex-wrap: wrap; gap: 8px;
}
.v2-home-brands a {
    display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px;
    border-radius: 999px; border: 1px solid var(--hm-line); background: #fff;
    font-size: 13.5px; font-weight: 700; color: var(--hm-ink); letter-spacing: -.2px;
}
.v2-home-brands a:hover { border-color: var(--hm-ink); }
.v2-home-brands a.is-all { background: var(--hm-ink); color: #fff; border-color: var(--hm-ink); }

/* ---------------------------------------------------------
   H. 구매 프로세스 (구매대행 실제 흐름, 국내배송 없음)
   --------------------------------------------------------- */
.v2-home-process {
    display: grid; grid-template-columns: 1fr; gap: 8px;
    counter-reset: hmstep;
}
.v2-home-process li {
    list-style: none; display: flex; gap: 12px; align-items: flex-start;
    padding: 14px 16px; border-radius: 12px; background: #fff; border: 1px solid var(--hm-line);
}
.v2-home-process li::before {
    counter-increment: hmstep; content: counter(hmstep);
    flex: none; width: 26px; height: 26px; border-radius: 50%;
    display: grid; place-items: center; background: var(--hm-ink); color: #fff;
    font-size: 12.5px; font-weight: 800;
}
.v2-home-process b { display: block; font-size: 14px; font-weight: 800; margin-bottom: 2px; }
.v2-home-process span { font-size: 13px; color: var(--hm-sub); line-height: 1.5; }

/* ---------------------------------------------------------
   I. 신뢰/안내
   --------------------------------------------------------- */
.v2-home-trust {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px;
}
.v2-home-trust li {
    list-style: none; padding: 16px; border-radius: 12px; background: #fff; border: 1px solid var(--hm-line);
}
.v2-home-trust b { display: block; font-size: 14px; font-weight: 800; margin-bottom: 4px; }
.v2-home-trust span { font-size: 12.5px; color: var(--hm-sub); line-height: 1.5; }

/* ---------------------------------------------------------
   J. SEO 소개 (접힘/펼침)
   --------------------------------------------------------- */
.v2-home-seo {
    margin-top: 34px; padding: 22px 18px; border-radius: 16px;
    background: #fff; border: 1px solid var(--hm-line);
}
.v2-home-seo h2 { margin: 0 0 10px; font-size: 16px; font-weight: 800; }
.v2-home-seo__body { font-size: 13.5px; line-height: 1.75; color: var(--hm-sub); }
.v2-home-seo__body p { margin: 0 0 10px; }
.v2-home-seo__more { display: none; }
.v2-home-seo.is-open .v2-home-seo__more { display: block; }
.v2-home-seo__toggle {
    margin-top: 6px; border: 0; background: transparent; color: var(--hm-ink);
    font-size: 13px; font-weight: 700; cursor: pointer; padding: 8px 0; min-height: 40px;
    display: inline-flex; align-items: center; gap: 4px;
}
.v2-home-seo__toggle svg { width: 15px; height: 15px; transition: transform .2s ease; }
.v2-home-seo.is-open .v2-home-seo__toggle svg { transform: rotate(180deg); }

/* ---------------------------------------------------------
   K. 푸터
   --------------------------------------------------------- */
/* 푸터는 .v2-home 스코프 밖(.v2live-shell 등)에서도 include 되므로
   --hm-* 토큰에 의존하지 않는다. 자체 --f-* 토큰으로 완전히 독립시킨다.
   (2026-07-21: 토큰 미정의로 padding/max-width/정렬이 무효화되던 버그 근본수정) */
.v2-home-footer {
    --f-max: 1200px;          /* 콘텐츠 폭(중앙 정렬 기준) */
    --f-pad: 20px;            /* 좌우 여백 — 고정 margin-left 대신 컨테이너 padding */
    --f-ink: #16161a;
    --f-ink-soft: #2a2a30;
    --f-sub: #6b6b74;
    --f-line: #e8e8ea;
    --f-card: #ffffff;
    margin-top: 40px;
    padding: 60px var(--f-pad) calc(40px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--f-line);
    color: var(--f-sub);
    box-sizing: border-box;
}
.v2-home-footer * { box-sizing: border-box; }
.v2-home-footer p { margin: 0; font-size: 11.5px; line-height: 1.7; }

/* 하단 고정 네비에 콘텐츠 가리지 않도록 (bottom-nav-common.css가 body padding 처리하지만 안전 여백) */
.v2-home { padding-bottom: 8px; }

/* ---------------------------------------------------------
   반응형
   --------------------------------------------------------- */
@media (min-width: 601px) {
    .v2-home-hero__title { font-size: 30px; }
    .v2-home-explore { grid-template-columns: repeat(4, 1fr); }
    .v2-home-rail .v2live-card { width: 30vw; max-width: 200px; }
    .v2-home-poprail .v2-home-rankitem { width: 30vw; max-width: 210px; }
    .v2-home-trust { grid-template-columns: repeat(3, 1fr); }
    .v2-home-process { grid-template-columns: repeat(2, 1fr); }
}

/* 모바일(≤767): 10개 퀵메뉴를 정확히 5열 × 2행 그리드로. (태블릿/PC 는 아래 미디어쿼리에서 별도, 무변경)
   - 아이콘/원형 배경/링크/순서/hover 불변. 텍스트만 가운데·1줄·11px·500.
   - 좌우 padding 은 base(16px, 풀블리드) 그대로 유지. gap 만 약간 축소. */
@media (max-width: 767px) {
    .v2-home-shortcuts {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        grid-template-rows: repeat(2, auto);
        gap: 10px 8px;                 /* 행간 10(8~12), 열간 8(현재 14보다 축소) */
        overflow: visible;
        overflow-x: visible;
        scroll-snap-type: none;
        overscroll-behavior-x: auto;
    }
    .v2-home-shortcut {
        width: auto;                   /* 셀(1fr) 폭에 맞춰 균등 배치 */
        min-width: 0;
        justify-self: stretch;
    }
    .v2-home-shortcut__label {
        font-size: 11px;               /* 11~12 */
        font-weight: 500;
    }
}

/* 태블릿(≥768): 가로 스크롤 유지, 카드 62 / 라벨 12 */
@media (min-width: 768px) {
    .v2-home-shortcuts { gap: 20px; padding: 8px 20px 4px; margin-left: -20px; margin-right: -20px; }
    .v2-home-shortcut { width: 62px; }
    .v2-home-shortcut__visual { width: 62px; height: 62px; border-radius: 22px; }
    .v2-home-shortcut__visual svg { width: 35px; height: 35px; }
    .v2-home-shortcut__label { font-size: 12px; }
    .v2qm-live { font-size: 11px; }
}

/* PC(≥1200): 11개 한 줄 · 가운데 정렬 · 스크롤 없음 · 콘텐츠 폭에 맞춤 */
@media (min-width: 1200px) {
    .v2-home-shortcuts {
        flex-wrap: nowrap; justify-content: center;
        gap: 20px;
        overflow-x: visible; scroll-snap-type: none;
        padding: 8px 0 4px; margin-left: auto; margin-right: auto;
        max-width: 1180px;
    }
    .v2-home-shortcut { width: auto; min-width: 82px; }
    .v2-home-shortcut__visual { width: 68px; height: 68px; border-radius: 22px; }
    .v2-home-shortcut__visual svg { width: 38px; height: 38px; }
    .v2-home-shortcut__label { font-size: 13px; margin-top: 0; }
    .v2qm-live { font-size: 12px; }
}

@media (min-width: 1024px) {
    .v2-home-hero {
        grid-template-columns: 1.15fr .85fr; align-items: center;
        padding: 40px 40px;
    }
    .v2-home-hero__title { font-size: 36px; }
    .v2-home-hero__lead { font-size: 15px; }
    .v2-home-hero__visual { display: block; }
    .v2-home-rail .v2live-card { width: auto; max-width: none; }
    .v2-home-rail {
        display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px;
        overflow: visible; margin: 0; padding: 2px 0 6px;
    }
    /* 인기 랭킹은 PC 5열 × 2행 (TOP10) */
    .v2-home-poprail { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .v2-home-poprail .v2-home-rankitem { width: auto; max-width: none; }
    .v2-home-process { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 1280px) {
    .v2-home-hero__title { font-size: 40px; }
}

/* ============================================================
   앱홈 추가 컴포넌트 (히어로 슬라이더 / 랭킹 / 기획전 / 가이드)
   ============================================================ */

/* SEO용 h1 (시각적 숨김, 스크린리더 노출) */
.v2-home-h1 {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ---------- 히어로 슬라이더 ---------- */
.v2-home-hero-wrap { margin: 0 0 4px; }
.v2-home-hero-slider { position: relative; overflow: hidden; background: #ececec; }
.v2-home-hero-track {
    display: flex; width: 100%;
    transition: transform .4s cubic-bezier(.4,0,.2,1);
    touch-action: pan-y;
}
.v2-home-hero-slide {
    position: relative; flex: 0 0 100%; width: 100%;
    display: block; color: #fff; overflow: hidden;
    aspect-ratio: 4 / 5;               /* 모바일 세로형 */
}
.v2-home-hero-slide img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; object-position: var(--hb-op-m, center); display: block;
}
.v2-home-hero-slide::after {
    content: ""; position: absolute; inset: 0;
    /* 하단 텍스트 대비 확보 — 관리자 오버레이(--hb-ov)를 유지한 채 하단만 보강.
       기본(30%) 기준 하단 62% 검정, 과설정 시 78% 상한(min)으로 과암전 방지. */
    background: linear-gradient(180deg, rgba(0,0,0,.08) 20%, rgba(0,0,0,min(calc(var(--hb-ov, .3) + .32), .78)) 100%);
}
.v2-home-hero-body {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 1;
    display: flex; flex-direction: column; gap: 6px;
    padding: 22px 20px 26px;
}
.v2-home-hero-body.is-center { align-items: center; text-align: center; }
.v2-home-hero-body.is-right { align-items: flex-end; text-align: right; }
.v2-home-hero-eyebrow { font-size: 11.5px; font-weight: 800; letter-spacing: .14em; opacity: .92; text-shadow: 0 1px 3px rgba(0,0,0,.5); }
.v2-home-hero-title { font-size: 24px; font-weight: 800; line-height: 1.28; letter-spacing: -.5px; text-shadow: 0 1px 12px rgba(0,0,0,.28); }
.v2-home-hero-sub { font-size: 13.5px; opacity: .92; text-shadow: 0 1px 10px rgba(0,0,0,.28); }

/* 히어로 버튼(2026-08-25) — 관리자 배너의 «버튼 문구» 표시용.
   슬라이드 전체가 <a> 라서 이 요소는 클릭 대상이 아니다(pointer-events 불필요,
   부모 앵커가 클릭을 받는다). 배경색은 관리자 bg_color 가 인라인으로 덮어쓴다. */
.v2-home-hero-btn {
    /* 부모가 flex column 이라 기본값(stretch)이면 알약 버튼이 화면 폭까지 늘어난다.
       내용 폭만 차지하게 하고, 정렬은 배너의 text_align(is-center/is-right)을 따라간다. */
    align-self: flex-start; text-align: center;
    display: inline-block; margin-top: 10px; padding: 9px 20px;
    border-radius: 999px; background: #16161a; color: #fff;
    font-size: 13px; font-weight: 800; line-height: 1.2;
    box-shadow: 0 2px 12px rgba(0, 0, 0, .22);
}
.v2-home-hero-body.is-center .v2-home-hero-btn { align-self: center; }
.v2-home-hero-body.is-right  .v2-home-hero-btn { align-self: flex-end; }
@media (min-width: 768px) {
    .v2-home-hero-btn { margin-top: 14px; padding: 11px 24px; font-size: 14px; }
}

.v2-home-hero-dots {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
    display: flex; justify-content: center; gap: 4px;
}
/* 접근성: 실제 터치 영역 44×44px, 시각적 점은 ::before 로 작게 유지.
   점은 하단 12px 지점에 붙여 기존 위치와 거의 동일하게 보인다. */
.v2-home-hero-dots button {
    position: relative;
    width: 44px; height: 44px;
    display: flex; align-items: flex-end; justify-content: center;
    padding: 0 0 12px; border: 0; background: transparent; cursor: pointer;
    touch-action: manipulation;
}
.v2-home-hero-dots button::before {
    content: ""; display: block;
    width: 7px; height: 7px; border-radius: 999px;
    background: rgba(255,255,255,.6);
    box-shadow: 0 0 0 1px rgba(0,0,0,.3);   /* 밝은 이미지 위에서도 점이 보이게 */
}
.v2-home-hero-dots button.is-on::before {
    background: #fff; width: 18px; border-radius: 4px;
}
.v2-home-hero-dots button:focus-visible {
    outline: 2px solid #fff; outline-offset: -6px; border-radius: 12px;
}
.v2-home-hero-slide:focus-visible { outline: 3px solid #fff; outline-offset: -3px; }
.v2-home-hero-slider.is-single .v2-home-hero-dots { display: none; }

/* ---------- 랭킹 탭 ---------- */
.v2-home-ranktabs {
    display: flex; gap: 7px; overflow-x: auto; scrollbar-width: none;
    padding-bottom: 10px; margin-bottom: 4px;
}
.v2-home-ranktabs::-webkit-scrollbar { display: none; }
.v2-home-ranktab {
    flex: none; border: 1px solid var(--hm-line); background: #fff; color: var(--hm-sub);
    font-size: 13px; font-weight: 700; border-radius: 999px; padding: 8px 15px; cursor: pointer;
    min-height: 38px;
}
.v2-home-ranktab.is-on { background: var(--hm-ink); color: #fff; border-color: var(--hm-ink); }
.v2-home-rankpanel[hidden] { display: none; }

/* 랭킹 번호 (CSS 카운터, 카드 마크업 변경 없음) */
.v2-home-rankrail { counter-reset: v2rk; }
.v2-home-rankrail .v2live-card { position: relative; }
.v2-home-rankrail .v2live-card::before {
    counter-increment: v2rk; content: counter(v2rk);
    position: absolute; top: 6px; left: 6px; z-index: 2;
    min-width: 22px; height: 22px; padding: 0 5px;
    display: grid; place-items: center;
    background: rgba(17,17,17,.92); color: #fff;
    font-size: 12px; font-weight: 800; border-radius: 7px;
}

/* ---------- 지금 많이 보는 상품 (순위 레일) ---------- */
.v2-home-poprail .v2-home-rankitem {
    position: relative; flex: 0 0 auto;
    width: 44vw; max-width: 190px;
    scroll-snap-align: start;
}
.v2-home-poprail .v2live-card { width: 100%; max-width: none; flex: none; }
.v2-home-rank-sr {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.v2-home-rank-badge {
    position: absolute; top: 6px; left: 6px; z-index: 4;
    min-width: 22px; height: 22px; padding: 0 5px;
    display: grid; place-items: center;
    background: rgba(17,17,17,.92); color: #fff;
    font-size: 12px; font-weight: 800; border-radius: 7px;
}
/* 순위 배지가 좌상단을 차지하므로, 랭킹 레일에서는 상품 배지(NEW/DIRECT)를 우상단으로 이동 */
.v2-home-poprail .v2live-card-badge {
    left: auto !important;
    right: 7px !important;
}
/* 1~3위만 절제된 강조(골드) */
.v2-home-poprail .v2-home-rankitem:nth-child(-n+3) .v2-home-rank-badge {
    background: #c9a96e; color: #1a1a1a;
}

/* SALE 코너 배지 */
.v2-home-salerail .v2live-card .v2live-card-image::after {
    content: "SALE"; position: absolute; top: 6px; right: 6px; z-index: 2;
    padding: 3px 7px; border-radius: 6px; background: #c62828; color: #fff;
    font-size: 10.5px; font-weight: 800; letter-spacing: .02em;
}

/* ---------- 기획전 카드 ---------- */
.v2-home-promos { display: grid; grid-template-columns: 1fr; gap: 12px; }
.v2-home-promo {
    display: block; border-radius: 16px; overflow: hidden;
    background: #fff; border: 1px solid var(--hm-line); color: var(--hm-ink);
}
.v2-home-promo-img { display: block; aspect-ratio: 16 / 9; background: #eee; }
.v2-home-promo-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.v2-home-promo-body { display: block; padding: 14px 16px 16px; }
.v2-home-promo-body em { display: block; font-size: 11px; font-weight: 800; letter-spacing: .1em; color: var(--hm-ac); font-style: normal; margin-bottom: 4px; }
.v2-home-promo-body strong { display: block; font-size: 16px; font-weight: 800; }
.v2-home-promo-body span { display: block; margin-top: 4px; font-size: 13px; color: var(--hm-sub); }

/* ---------- 가이드/공지 ---------- */
.v2-home-guides { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.v2-home-guide {
    display: flex; flex-direction: column; gap: 4px; justify-content: center;
    min-height: 74px; padding: 15px 16px; border-radius: 12px;
    background: #fff; border: 1px solid var(--hm-line); color: var(--hm-ink);
}
.v2-home-guide:hover { border-color: var(--hm-ink); }
.v2-home-guide strong { font-size: 14px; font-weight: 800; }
.v2-home-guide span { font-size: 12.5px; color: var(--hm-sub); }

/* 히어로 반응형 비율 */
@media (min-width: 601px) {
    .v2-home-hero-slide { aspect-ratio: 16 / 10; }
    .v2-home-hero-title { font-size: 30px; }
    .v2-home-promos { grid-template-columns: repeat(2, 1fr); }
    .v2-home-guides { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 1024px) {
    .v2-home-hero-slide { aspect-ratio: 16 / 7; }
    .v2-home-hero-slide img { object-position: var(--hb-op-d, center); }
    .v2-home-hero-body { max-width: 1280px; margin: 0 auto; left: 0; right: 0; padding: 40px 28px 44px; }
    .v2-home-hero-title { font-size: 38px; }
    .v2-home-hero-sub { font-size: 15px; }
    .v2-home-promos { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- 기획전 페이지 ---------- */
.v2-promo-hero { padding: 22px 0 6px; }
.v2-promo-hero-eyebrow { font-size: 11px; font-weight: 800; letter-spacing: .14em; color: var(--hm-ac); }
.v2-promo-hero h1 { margin: 8px 0 6px; font-size: 24px; font-weight: 800; letter-spacing: -.5px; }
.v2-promo-hero p { margin: 0; font-size: 14px; color: var(--hm-sub); }
.v2-promo-more { margin: 18px 0 4px; text-align: center; }
.v2-promo-more a {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 46px; padding: 0 24px; border-radius: 12px;
    border: 1px solid var(--hm-ink); background: #fff; color: var(--hm-ink);
    font-size: 14px; font-weight: 700;
}
.v2-promo-empty { padding: 40px 0; text-align: center; color: var(--hm-sub); font-size: 14px; }
.v2-promo-empty a { color: var(--hm-ink); font-weight: 700; }

/* 접근성: 애니메이션 최소화 */
@media (prefers-reduced-motion: reduce) {
    .v2-home * { transition: none !important; scroll-behavior: auto !important; }
    .v2-home-hero-track { transition: none !important; }
    .v2-home-shortcut__badge { animation: none !important; }
    .v2qm-live__dot { animation: none !important; transform: none !important; opacity: 1 !important; }
}

/* =========================================================================
   M. 하단 마감 (2026-07-20)
      · 실시간 구매후기 스트립 / 브랜드 아코디언 / 확장 푸터
      · 새 색상 팔레트를 만들지 않는다 — 전부 --hm-* 토큰만 쓴다.
      · 검은 배경 푸터가 아니다. 기존 밝은 톤 + border-top 유지.
   ========================================================================= */

/* --- M-1. 실시간 구매후기 : 가로 스크롤 스트립 -----------------------------
   카드 내부는 /v2/review/ 와 100% 동일(review.css). 여기서는 폭만 고정한다. */
.v2-home-rvstrip {
    display: flex; gap: var(--hm-gap);
    overflow-x: auto; overflow-y: hidden;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    /* 카드 hover 시 translateY(-2px) 가 잘리지 않도록 위아래 여유.
       좌우 풀블리드(음수마진)는 제거 — 스트립 콘텐츠폭 = 섹션 콘텐츠폭이어야
       셀 분수폭(1/N)이 화면별 정확히 N개를 채운다(부분카드 방지). 스크롤은 콘텐츠 폭 내부에서. */
    padding: 4px 0 8px;
    scrollbar-width: thin;
}
.v2-home-rvstrip::-webkit-scrollbar { height: 4px; }
.v2-home-rvstrip::-webkit-scrollbar-thumb { background: var(--hm-line); border-radius: 99px; }
.v2-home-rvstrip__cell {
    /* 화면별 "동시에 보이는" 카드 수를 정확히 고정한다(카드 내부·슬라이더 동작 불변).
       스트립은 부모(.v2-home-wrap) 콘텐츠폭까지 풀블리드되므로 100% = 콘텐츠폭.
       모바일 ≤767: 2개 / 태블릿 768~1279: 3개 / PC ≥1280: 4개. gap=var(--hm-gap). */
    flex: 0 0 auto; width: calc((100% - 1 * var(--hm-gap)) / 2); scroll-snap-align: start;
    display: flex;                 /* 카드가 셀 높이를 꽉 채우도록 */
}
.v2-home-rvstrip__cell > .v2rv-card { width: 100%; }

@media (min-width: 768px)  { .v2-home-rvstrip__cell { width: calc((100% - 2 * var(--hm-gap)) / 3); } }
@media (min-width: 1280px) { .v2-home-rvstrip__cell { width: calc((100% - 3 * var(--hm-gap)) / 4); } }

/* --- M-2. 배때지 가이드 카드 (구 브랜드 아코디언 자리) ----------------------
   토큰만 사용한다(--hm-*). 새 색상/폰트를 만들지 않는다.
   카드는 flex column + margin-top:auto 로 '자세히 보기'를 항상 바닥에 정렬 →
   설명 길이가 달라도 버튼 줄이 흔들리지 않는다. */
.v2-home-gcards {
    display: grid; grid-template-columns: 1fr; gap: var(--hm-gap);
}
.v2-home-gcard {
    display: flex; flex-direction: column;
    min-height: 44px;                       /* 터치 타깃 하한 */
    padding: 16px; border-radius: var(--hm-radius);
    background: var(--hm-card); border: 1px solid var(--hm-line);
    color: var(--hm-ink); text-decoration: none;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.v2-home-gcard:focus-visible { outline: 2px solid var(--hm-ac); outline-offset: 2px; }

.v2-home-gcard__no {
    font-style: normal; font-size: 11px; font-weight: 800;
    letter-spacing: .12em; color: var(--hm-ac);
}
.v2-home-gcard__t {
    margin-top: 8px; font-size: 15px; font-weight: 800;
    letter-spacing: -.2px; line-height: 1.35;
}
.v2-home-gcard__d {
    margin-top: 6px; font-size: 13px; line-height: 1.55; color: var(--hm-sub);
}
.v2-home-gcard__more {
    margin-top: auto; padding-top: 14px;    /* auto = 카드 하단 고정 */
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 12.5px; font-weight: 700; color: var(--hm-ink);
}
.v2-home-gcard__more svg { transition: transform .2s ease; }

@media (hover: hover) and (pointer: fine) {
    .v2-home-gcard:hover {
        transform: translateY(-3px);
        border-color: var(--hm-ink);
        box-shadow: 0 6px 18px rgba(0, 0, 0, .06);
    }
    .v2-home-gcard:hover .v2-home-gcard__more svg { transform: translateX(3px); }
}
/* 터치 기기: hover 잔상 없이 :active 만 가볍게 */
.v2-home-gcard:active { transform: translateY(-1px); border-color: var(--hm-ink); }

/* 기존 홈 브레이크포인트 재사용: 601px(태블릿 2열) / 1024px(PC 4열) */
@media (min-width: 601px)  { .v2-home-gcards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .v2-home-gcards { grid-template-columns: repeat(4, 1fr); } }

/* --- M-2b. 배때지 소개 (접기/펼치기) --------------------------------------- */
.v2-home-about {
    margin-top: var(--hm-gap);
    padding: 18px 16px;
    border: 1px solid var(--hm-line); border-radius: var(--hm-radius);
    background: var(--hm-card);
}
.v2-home-about__title { margin: 0; font-size: 16px; font-weight: 800; letter-spacing: -.3px; }
.v2-home-about__lead  { margin: 6px 0 0; font-size: 13px; line-height: 1.55; color: var(--hm-sub); }

.v2-home-about__toggle {
    -webkit-appearance: none; appearance: none;
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    margin-top: 14px; min-height: 44px; padding: 0 18px;
    border: 1px solid var(--hm-line); border-radius: 12px;
    background: var(--hm-bg); color: var(--hm-ink);
    font: inherit; font-size: 13px; font-weight: 700; cursor: pointer;
    transition: border-color .2s ease, background-color .2s ease;
}
.v2-home-about__toggle:focus-visible { outline: 2px solid var(--hm-ac); outline-offset: 2px; }
.v2-home-about__toggle.is-bottom { margin-top: 18px; }
@media (hover: hover) and (pointer: fine) {
    .v2-home-about__toggle:hover { border-color: var(--hm-ink); background: #fff; }
}
.v2-home-about__chev { transition: transform .25s ease; }
.v2-home-about__chev.is-up { transform: rotate(180deg); }
.v2-home-about.is-open .v2-home-about__toggle:not(.is-bottom) .v2-home-about__chev { transform: rotate(180deg); }

/* 본문은 SSR로 항상 출력 — display:none 을 쓰지 않는다 */
.v2-home-about__body {
    max-height: 0; overflow: hidden; opacity: 0;
    transition: max-height .3s ease, opacity .3s ease;
}
.v2-home-about.is-open .v2-home-about__body { opacity: 1; }
.v2-home-about__inner { padding-top: 16px; }
.v2-home-about__inner p { margin: 0 0 10px; font-size: 13.5px; line-height: 1.7; color: var(--hm-ink-soft); }
.v2-home-about__inner h4 {
    margin: 18px 0 8px; font-size: 14px; font-weight: 800; color: var(--hm-ink);
}
.v2-home-about__svc {
    display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 4px; padding: 0; list-style: none;
}
.v2-home-about__svc li {
    display: inline-flex; align-items: center;
    min-height: 32px; padding: 0 12px;
    border: 1px solid var(--hm-line); border-radius: 99px;
    background: var(--hm-bg); color: var(--hm-ink-soft);
    font-size: 12.5px; font-weight: 600; letter-spacing: -.2px;
}
.v2-home-about__thanks { margin-top: 16px; font-weight: 700; color: var(--hm-ink) !important; }

@media (min-width: 601px) {
    .v2-home-about { padding: 22px 20px; }
    .v2-home-about__title { font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
    .v2-home-gcard, .v2-home-gcard__more svg,
    .v2-home-about__body, .v2-home-about__chev { transition: none !important; }
    .v2-home-gcard:hover { transform: none; }
}

/* --- M-3. 확장 푸터 (2026-07-21 재설계) ------------------------------------
   Apple / 29CM / 무신사 형식의 균등 5컬럼.
   · .v2-home 토큰에 의존하지 않고 --f-* 자체 토큰 + CSS Grid 로만 정렬한다.
   · 고정 margin-left / padding-left / 하드코딩 px 로 억지 정렬하지 않는다.
   · 5컬럼 = 고객센터 + (쇼핑 · 이용안내 · 배때지 · 회사정보).
     nav 래퍼를 display:contents 로 투명화해 4개 링크 컬럼이 __in 그리드의
     직접 항목이 되어 고객센터와 함께 하나의 균등 그리드를 이룬다. */

/* 콘텐츠 폭 = 페이지 콘텐츠와 동일한 중앙 정렬 컨테이너 */
.v2-home-footer__in {
    width: 100%; max-width: var(--f-max); margin: 0 auto;
    display: grid; grid-template-columns: 1fr;   /* 모바일: 1열 세로 스택 */
    gap: 44px 48px;
    text-align: center;                          /* 모바일 가운데 정렬 */
}
.v2-home-footer__nav { display: contents; }

/* 고객센터 컬럼 */
.v2-home-footer__cs { display: flex; flex-direction: column; align-items: center; min-width: 0; }
.v2-home-footer__cs-l {
    margin: 0 0 8px !important;
    font-size: 12px; font-weight: 700; color: var(--f-sub); letter-spacing: .02em;
}
/* 전화 — 실제로 눌러 거는 링크(탭 타깃 44px). 컬럼 폭에 맞춰 유동 축소해
   좁은 5열(1024)에서도 넘치지 않게 clamp 로 잡는다 → 가로스크롤 방지 */
.v2-home-footer__tel {
    display: inline-flex; align-items: center; min-height: 44px;
    font-size: 26px; font-weight: 800; letter-spacing: -.5px;
    color: var(--f-ink); line-height: 1.15;
    font-variant-numeric: tabular-nums; white-space: nowrap;
}
.v2-home-footer__cta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; justify-content: center; }
.v2-home-footer__cta a {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 44px; padding: 0 18px;
    border: 1px solid var(--f-line); border-radius: 99px; background: var(--f-card);
    font-size: 13.5px; font-weight: 700; color: var(--f-ink);
    transition: border-color .18s ease, color .18s ease, transform .18s ease;
}
@media (hover: hover) and (pointer: fine) {
    .v2-home-footer__cta a:hover { border-color: var(--f-ink); transform: translateY(-1px); }
}
.v2-home-footer__sns { display: flex; gap: 10px; margin-top: 16px; justify-content: center; }
.v2-home-footer__sns a,
.v2-home-footer__sns .is-soon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; border-radius: 12px;
    border: 1px solid var(--f-line); background: var(--f-card); color: var(--f-ink-soft);
    transition: border-color .18s ease, color .18s ease, transform .18s ease;
}
.v2-home-footer__sns .is-soon { color: #c3c3c8; cursor: default; }
@media (hover: hover) and (pointer: fine) {
    .v2-home-footer__sns a:hover { border-color: var(--f-ink); color: var(--f-ink); transform: translateY(-1px); }
}

/* 서비스 링크 컬럼 (쇼핑 · 이용안내 · 배때지 · 회사정보) */
.v2-home-footer__col { display: flex; flex-direction: column; align-items: center; min-width: 0; }
.v2-home-footer__col-h {
    margin: 0 0 10px !important;
    font-size: 13px !important; font-weight: 700; color: var(--f-ink);
}
.v2-home-footer__col a {
    /* 2026-08-24 접근성: 「공지사항」·「정품·레플리카 비교」 등 푸터 링크의
       탭 영역이 17px 로 최소 44px 에 못 미쳤다. 글자 크기·색·목적지·배치는
       그대로 두고 링크의 «높이»만 44px 로 넓힌다(inline-flex + center 라
       텍스트 위치는 그대로 가운데). */
    font-size: 13px; color: var(--f-sub); min-height: 44px;
    display: inline-flex; align-items: center;
    transition: color .15s ease;
}
@media (hover: hover) and (pointer: fine) {
    .v2-home-footer__col a:hover { color: var(--f-ink); }
}

/* 하단 : 사업자정보 · 카피라이트 (항상 가운데 정렬) */
.v2-home-footer__biz {
    width: 100%; max-width: var(--f-max);
    margin: 48px auto 0; padding-top: 24px; border-top: 1px solid var(--f-line);
    text-align: center;
}
.v2-home-footer__bizline { margin: 0 0 8px !important; font-size: 11.5px !important; color: var(--f-sub); }
.v2-home-footer__sep {
    display: inline-block; width: 1px; height: 9px; margin: 0 8px;
    background: var(--f-line); vertical-align: -1px;
}
.v2-home-footer__desc { margin: 0 0 6px !important; font-size: 11.5px !important; color: var(--f-sub); }
.v2-home-footer__copy { margin: 0 !important; font-size: 11px !important; color: var(--f-sub); }   /* #a0a0a8(2.6:1) → #6b6b74(5.28:1) */

/* 모바일(≤767) : 컬럼 메뉴 세로 늘어짐 제거 → 가로 압축(구분점).
   회사소개 · 이용약관 · 개인정보처리방침 처럼 한 줄(최대 2줄)로. 링크/메뉴명/헤더 그대로.
   PC·태블릿(≥768) 레이아웃은 아래 미디어쿼리로 원상 유지되어 영향 없음. */
@media (max-width: 767px) {
    .v2-home-footer__in { gap: 24px; }               /* 블록 간 세로 간격 축소 */
    .v2-home-footer__col {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        gap: 6px 0;                                  /* 행 간 6px, 항목 간격은 구분점 마진 */
        padding: 0 16px;
        line-height: 1.4;
    }
    .v2-home-footer__col-h { width: 100%; margin: 0 0 6px !important; }  /* 헤더는 윗줄 한 줄 */
    .v2-home-footer__col a { min-height: 0; font-size: 12px; }           /* 세로 탭높이 제거 */
    .v2-home-footer__col a + a::before {             /* 항목 사이 구분점 */
        content: "·"; margin: 0 8px; color: var(--f-sub);
    }
}

/* 태블릿 : 3열 자동 배치, 좌측 정렬 */
@media (min-width: 768px) {
    .v2-home-footer { --f-pad: 32px; }
    .v2-home-footer__in {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        text-align: left;
    }
    .v2-home-footer__cs,
    .v2-home-footer__col { align-items: flex-start; }
    .v2-home-footer__cta,
    .v2-home-footer__sns { justify-content: flex-start; }
    .v2-home-footer__tel { font-size: 21px; }   /* 3열 195px 컬럼에 한 줄 */
}

/* PC : 5열 균등 1줄 (컬럼 폭 동일, 컬럼 간격 48px) */
@media (min-width: 1024px) {
    .v2-home-footer { --f-pad: 40px; }
    .v2-home-footer__in {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 40px 48px;
    }
    .v2-home-footer__tel { font-size: 17px; }   /* 5열 최소폭(≈150px)에 한 줄 */
}

/* 초광폭(≥1440) : 콘텐츠 폭을 넓혀 PC 폭 활용 + 전화번호 다시 크게 */
@media (min-width: 1440px) {
    .v2-home-footer { --f-max: 1280px; }
    .v2-home-footer__tel { font-size: 22px; }
}
