/* ============================================================
   v15.css — 쿠팡(coupang.com) 스타일 스킨 (리뷰티 퍼플)
   - v2.css / v2-fallback.css 다음에 로드된다 (front_v15/master.php).
   - body class="v2-body v15-body" — 전역 오버라이드는 .v15-body 스코프,
     .v15-* 컴포넌트 클래스는 프리픽스 불필요.
   - 레이아웃/UX는 쿠팡 데스크톱 실측(2024 아카이브 CSS 관찰값) 재현:
     상단 유틸바 32px(#f0f0f0, 11px 링크) + 본 헤더(로고 + 2px 보더
     대형 검색바 + 아이콘 메뉴 12px 라벨) + GNB 스트립(카테고리 블록
     버튼 + 12px 가로 메뉴, hover = 액센트 + 밑줄) + 1020px 중앙 흰색
     콘텐츠 컬럼(사이트 배경 #f0f0f0) + 4단 푸터(정책 링크바 / 사업자
     3컬럼·전화 24px Tahoma / 다크 #333 스트립) + 스크롤 TOP 버튼.
   - 브랜드: 쿠팡 액센트 블루(#4285f4 — 검색 보더/GNB hover/카테고리
     hover/CTA)와 상품명 hover 블루(#0073e9) 자리는 전부 리뷰티 퍼플
     (#6010A0, 그라데이션 #6010A0→#8A2BD9→#B368F0). 커머스 관용색은
     쿠팡 원본 유지: 판매가 레드 #cb1400, 할인율/쿠폰 딥레드 #ae0000,
     도착보장 그린 #008C00, 별점 옐로, 텍스트 #111/#333/#555/#888,
     보더 #ddd/#eee, 품절 #ccc.
   - 라운드 0에 가까운 각진 플랫 톤 (카드 보더 없음 + 하단 1px 구분선
     + hover 시 box-shadow 0 2px 10px rgba(0,0,0,.2)), 숫자는 Tahoma.
   ============================================================ */

/* ------------------------------------------------------------
   1. 디자인 토큰 (쿠팡 실측 → 퍼플 매핑)
   ------------------------------------------------------------ */
:root {
    /* 골격 폭/높이 (쿠팡 실측: 홈 컬럼 1020px, 유틸바 32px) */
    --v15-width: 1020px;
    --v15-topbar-h: 32px;

    /* 브랜드 퍼플 (쿠팡 액센트 블루 #4285f4 / 상품명 hover #0073e9 자리) */
    --v15-brand: #6010A0;
    --v15-brand-strong: #8A2BD9;
    --v15-brand-deep: #480C78;
    --v15-brand-bg: #F2E8FB;
    --v15-brand-bg-soft: #F9F4FE;
    --v15-gradient: linear-gradient(90deg, #6010A0, #8A2BD9, #B368F0);

    /* 커머스 관용색 (쿠팡 원본 유지) */
    --v15-sale: #cb1400;        /* 판매가 레드 */
    --v15-deal: #ae0000;        /* 할인율/쿠폰 딥레드 */
    --v15-green: #008C00;       /* 도착 보장 그린 */
    --v15-star: #ffce00;        /* 별점 옐로 */

    /* 뉴트럴 (쿠팡 실측 원본 유지) */
    --v15-ink: #111;            /* 본문/카드 텍스트 */
    --v15-text-2: #333;
    --v15-text-3: #555;
    --v15-text-4: #888;         /* 보조/원가/리뷰수 */
    --v15-mute: #ccc;           /* 품절 */
    --v15-line: #ddd;           /* 기본 보더 */
    --v15-line-soft: #eee;      /* 헤더 하단 보더 */
    --v15-bg: #f0f0f0;          /* 사이트 배경/유틸바 */
    --v15-dark: #333;           /* 푸터 다크 스트립 */

    /* 숫자 폰트 (쿠팡: 가격/리뷰수 Tahoma) */
    --v15-num-font: Tahoma, 'Pretendard Variable', Pretendard, sans-serif;

    /* 그림자 (쿠팡 실측: 카드 hover / 드롭 레이어) */
    --v15-shadow-card: 0 2px 10px rgba(0, 0, 0, 0.2);
    --v15-shadow-layer: -1px 4px 5px rgba(0, 0, 0, 0.3);

    /* z-index 층 */
    --v15-z-gnb: 1000;
    --v15-z-catlayer: 1010;
    --v15-z-top: 1020;
}

/* ------------------------------------------------------------
   2. 전역 (.v15-body 스코프) — v2.css 전역값 재정의
   (쿠팡: body #f0f0f0 위에 흰색 콘텐츠 컬럼, 국문 고딕 스택)
   ------------------------------------------------------------ */
.v15-body {
    background: var(--v15-bg);
    color: var(--v15-ink);
    font-family: 'Apple SD Gothic Neo', 'Malgun Gothic', '맑은 고딕', 'Pretendard Variable', Pretendard, 'Noto Sans KR', Dotum, '돋움', sans-serif;
    letter-spacing: 0;
    -webkit-font-smoothing: antialiased;
}

/* v2.css의 616px 앱 프레임 가정 해제: 폴백 뷰가 1020px 컬럼에서 렌더링 */
.v15-body .v2-main {
    flex: none;
}

/* 스크롤바 숨김 가로 스크롤 (모바일 GNB 용) */
.v15-scroll-x {
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.v15-scroll-x::-webkit-scrollbar {
    display: none;
}

/* ------------------------------------------------------------
   3. 상단 유틸바 (쿠팡 .top-bar 재현: 32px, #f0f0f0, 11px 링크 우측)
   ------------------------------------------------------------ */
.v15-topbar {
    background: var(--v15-bg);
    border-bottom: 1px solid #e5e5e5;
}

.v15-topbar-in {
    max-width: var(--v15-width);
    margin: 0 auto;
    height: var(--v15-topbar-h);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0 16px;
}

.v15-topbar-in a {
    font-size: 11px;
    color: var(--v15-text-2);
    text-decoration: none;
    padding-left: 12px;
    margin-left: 12px;
    border-left: 1px solid var(--v15-line);
    line-height: 1;
}

.v15-topbar-in a:first-child {
    border-left: 0;
    margin-left: 0;
    padding-left: 0;
}

.v15-topbar-in a:hover {
    color: var(--v15-brand);
    text-decoration: underline;
}

.v15-topbar-strong {
    font-weight: 700;
    color: var(--v15-brand) !important;
}

/* ------------------------------------------------------------
   4. 본 헤더 (쿠팡 #header 재현: 흰 배경 + 하단 1px #eee,
      로고 + 중앙 대형 검색바(2px 퍼플 보더) + 우측 아이콘 메뉴)
   ------------------------------------------------------------ */
.v15-header {
    background: #fff;
    border-bottom: 1px solid var(--v15-line-soft);
}

.v15-header-in {
    max-width: var(--v15-width);
    margin: 0 auto;
    padding: 18px 16px;
    display: flex;
    align-items: center;
    gap: 24px;
}

/* 로고 (쿠팡 다색 워드마크 자리 → 마크 + 퍼플 그라데이션 텍스트) */
.v15-logo {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: none;
    text-decoration: none;
}

.v15-logo-mark {
    width: 34px;
    height: 34px;
    object-fit: contain;
    display: block;
}

.v15-logo-text {
    font-size: 26px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -1px;
    background: var(--v15-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--v15-brand);
}

/* 검색바 (쿠팡 .product-search 재현: 37px 인풋 + 2px 보더 + 우측 50px 버튼
   — 블루 #4285f4 보더 자리 → 퍼플) */
.v15-search {
    position: relative;
    flex: 1 1 auto;
    max-width: 520px;
    display: flex;
    border: 2px solid var(--v15-brand);
    background: #fff;
}

.v15-search-input {
    flex: 1 1 auto;
    min-width: 0;
    height: 37px;
    border: 0;
    outline: none;
    padding: 0 10px;
    font-size: 14px;
    color: var(--v15-text-2);
    background: transparent;
    -webkit-appearance: none;
    appearance: none;
    border-radius: 0;
}

.v15-search-input::placeholder {
    color: var(--v15-text-4);
}

.v15-search-input::-webkit-search-cancel-button {
    display: none;
}

/* 검색 버튼 (쿠팡: 50px 파란 바탕 + 흰 돋보기 → 퍼플) */
.v15-search-btn {
    flex: none;
    width: 50px;
    height: 37px;
    border: 0;
    background: var(--v15-brand);
    color: #fff;
    font-size: 16px;
    cursor: pointer;
    transition: background 0.15s ease;
}

.v15-search-btn:hover {
    background: var(--v15-brand-deep);
}

/* 우측 아이콘 메뉴 (쿠팡 .icon-menus 재현: 아이콘 위 + 12px 라벨) */
.v15-hicons {
    display: flex;
    align-items: center;
    gap: 20px;
    flex: none;
    margin-left: auto;
}

.v15-hicon {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-width: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--v15-text-2);
    text-decoration: none;
    cursor: pointer;
}

.v15-hicon i {
    font-size: 22px;
    line-height: 1;
}

.v15-hicon-label {
    font-size: 12px;
    line-height: 1;
    white-space: nowrap;
}

.v15-hicon:hover {
    color: var(--v15-brand);
}

/* 모바일 검색 아이콘 — 데스크톱에서는 숨김 */
.v15-msearch {
    display: none;
}

/* 장바구니 카운트 배지 (common.js updateCartCount() 가 #cartCount 를
   display:flex 로 토글 — v1 헤더 후크 재사용) */
.v15-cart-count {
    position: absolute;
    top: -6px;
    right: 0;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    align-items: center;
    justify-content: center;
    background: var(--v15-sale);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    font-family: var(--v15-num-font);
    line-height: 1;
    border-radius: 9999px;
}

/* ------------------------------------------------------------
   5. GNB 스트립 (쿠팡 GNB 재현: 카테고리 블록 버튼 + 12px 가로 메뉴,
      hover/selected = 액센트(→퍼플) + 밑줄)
   ------------------------------------------------------------ */
.v15-gnbwrap {
    background: #fff;
    border-bottom: 1px solid var(--v15-line);
    position: relative;
    z-index: var(--v15-z-gnb);
}

.v15-gnb-in {
    max-width: var(--v15-width);
    margin: 0 auto;
    padding: 0 16px;
    display: flex;
    align-items: stretch;
    gap: 10px;
    position: relative;
}

/* 카테고리 버튼 (쿠팡 햄버거 블록: 짙은 바탕 + 흰 라벨 → 퍼플 블록) */
.v15-catbtn {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0 18px;
    height: 42px;
    border: 0;
    background: var(--v15-brand);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s ease;
}

.v15-catbtn i {
    font-size: 15px;
}

.v15-catbtn:hover,
.v15-catbtn[aria-expanded="true"] {
    background: var(--v15-brand-deep);
}

/* 가로 메뉴 (쿠팡 GNB li: 12px #333, hover 밑줄 + 액센트, selected bold) */
.v15-gnb {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    flex: 1 1 auto;
}

.v15-gnb-link {
    flex: none;
    display: inline-flex;
    align-items: center;
    height: 42px;
    padding: 0 14px;
    font-size: 13px;
    color: var(--v15-text-2);
    text-decoration: none;
    white-space: nowrap;
}

.v15-gnb-link:hover {
    color: var(--v15-brand);
    text-decoration: underline;
}

.v15-gnb-link.active {
    color: var(--v15-brand);
    font-weight: 700;
    box-shadow: inset 0 -2px 0 var(--v15-brand);
}

/* ------------------------------------------------------------
   6. 카테고리 드롭 레이어 (쿠팡 .category-layer 재현:
      border 1px #ddd + shadow, 1뎁스 세로 리스트 — 클릭 토글 v15.js)
   ------------------------------------------------------------ */
.v15-catlayer {
    position: absolute;
    top: 100%;
    left: 16px;
    width: 220px;
    background: #fff;
    border: 1px solid var(--v15-line);
    box-shadow: var(--v15-shadow-layer);
    z-index: var(--v15-z-catlayer);
}

.v15-catlist {
    list-style: none;
    margin: 0;
    padding: 6px 0;
}

.v15-catlist li a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    font-size: 12px;
    color: var(--v15-text-2);
    text-decoration: none;
}

.v15-cat-ico {
    flex: none;
    width: 18px;
    text-align: center;
    font-size: 13px;
    color: var(--v15-text-4);
}

.v15-cat-label {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.v15-cat-arrow {
    flex: none;
    font-size: 9px;
    color: var(--v15-mute);
    opacity: 0;
}

.v15-catlist li a:hover {
    color: var(--v15-brand);
    font-weight: 700;
    background: var(--v15-brand-bg-soft);
}

.v15-catlist li a:hover .v15-cat-ico {
    color: var(--v15-brand);
}

.v15-catlist li a:hover .v15-cat-arrow {
    opacity: 1;
    color: var(--v15-brand);
}

/* 하단 바로가기 (쿠팡 레이어 섹션 구분선 재현) */
.v15-catlayer-foot {
    border-top: 1px solid var(--v15-line);
    padding: 10px 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
}

.v15-catlayer-foot a {
    font-size: 12px;
    color: var(--v15-text-3);
    text-decoration: none;
}

.v15-catlayer-foot a:hover {
    color: var(--v15-brand);
    text-decoration: underline;
}

/* ------------------------------------------------------------
   7. 콘텐츠 셸 (쿠팡 #container.home 재현: 1020px 중앙 흰색 컬럼)
   ------------------------------------------------------------ */
.v15-shell {
    max-width: var(--v15-width);
    margin: 0 auto;
    background: #fff;
    min-height: 60vh;
}

.v15-main {
    width: 100%;
    padding: 0 0 48px;
}

/* ------------------------------------------------------------
   8. 푸터 (쿠팡 footer_new 재현: border-top 2px #ddd + 4단)
   ------------------------------------------------------------ */
.v15-footer {
    border-top: 2px solid var(--v15-line);
    background: #fff;
    margin-top: 40px;
}

/* layer1: 정책 링크바 (중앙정렬 12px #555, 항목 사이 1px 세로 라인) */
.v15-footer-policy {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    padding: 15px 16px 0;
    min-height: 34px;
}

.v15-footer-policy a {
    font-size: 12px;
    color: var(--v15-text-3);
    text-decoration: none;
    padding: 0 14px;
    border-left: 1px solid var(--v15-text-4);
    line-height: 1.2;
}

.v15-footer-policy a:first-child {
    border-left: 0;
}

.v15-footer-policy a:hover {
    text-decoration: underline;
}

.v15-footer-strong {
    font-weight: 700;
    color: var(--v15-ink) !important;
}

/* layer2: 로고 + 사업자 + 고객센터 (쿠팡 1020×100 3컬럼 재현) */
.v15-footer-info {
    max-width: var(--v15-width);
    margin: 30px auto;
    padding: 0 16px;
    display: flex;
    gap: 32px;
    align-items: flex-start;
}

.v15-footer-brand {
    flex: none;
    width: 150px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.v15-footer-logo {
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.v15-footer-brand-name {
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -0.5px;
    background: var(--v15-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--v15-brand);
}

.v15-footer-biz {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.v15-footer-biz span {
    font-size: 12px;
    color: var(--v15-text-3);
    line-height: 18px;
}

/* 고객센터 컬럼 (쿠팡: 전화번호 24px Tahoma bold) */
.v15-footer-cs {
    flex: none;
    width: 260px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.v15-footer-cs-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--v15-ink);
}

.v15-footer-cs-tel {
    font-size: 24px;
    font-weight: 700;
    font-family: var(--v15-num-font);
    color: var(--v15-ink);
    line-height: 1.1;
}

.v15-footer-cs-hours {
    font-size: 11px;
    color: var(--v15-text-4);
}

.v15-footer-cs-btn {
    align-self: flex-start;
    margin-top: 4px;
    padding: 7px 16px;
    border: 1px solid var(--v15-line);
    background: #fff;
    font-size: 12px;
    color: var(--v15-text-2);
    text-decoration: none;
}

.v15-footer-cs-btn:hover {
    border-color: var(--v15-brand);
    color: var(--v15-brand);
}

/* layer4: 다크 고지 스트립 (쿠팡 bg #333, 11px #888) */
.v15-footer-dark {
    background: var(--v15-dark);
    padding: 20px 0;
}

.v15-footer-dark-in {
    max-width: var(--v15-width);
    margin: 0 auto;
    padding: 0 16px;
}

.v15-footer-notice {
    font-size: 11px;
    color: var(--v15-text-4);
    line-height: 17px;
    margin: 0 0 6px;
}

.v15-footer-copy {
    font-size: 11px;
    color: var(--v15-text-4);
    margin: 0;
}

/* ------------------------------------------------------------
   9. 맨위로 버튼 (쿠팡: sticky 헤더 없음 → 스크롤 시 TOP, v15.js)
   ------------------------------------------------------------ */
.v15-top {
    position: fixed;
    right: 20px;
    bottom: 24px;
    width: 46px;
    height: 46px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    border: 1px solid var(--v15-line);
    background: #fff;
    color: var(--v15-text-2);
    cursor: pointer;
    z-index: var(--v15-z-top);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
}

.v15-top i {
    font-size: 12px;
    line-height: 1;
}

.v15-top span {
    font-size: 10px;
    font-weight: 700;
    font-family: var(--v15-num-font);
    line-height: 1;
}

.v15-top:hover {
    color: var(--v15-brand);
    border-color: var(--v15-brand);
}

/* ------------------------------------------------------------
   10. 커머스 유틸 클래스 (v15 페이지 뷰용 — 쿠팡 상품 카드 문법)
   ------------------------------------------------------------ */
/* 4열 상품 그리드 (쿠팡 baby-product-list 재현: 셀 padding 20px + 하단 1px 구분선) */
.v15-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
}

.v15-pcard {
    display: block;
    padding: 20px;
    border-bottom: 1px solid var(--v15-line);
    color: var(--v15-ink);
    font-size: 12px;
    text-decoration: none;
    transition: box-shadow 0.2s ease;
}

.v15-pcard:hover {
    box-shadow: var(--v15-shadow-card);
    color: var(--v15-ink);
}

/* 정사각 썸네일 (쿠팡: 라운드 0, 230x230 리사이즈) */
.v15-pcard-thumb {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--v15-bg);
}

.v15-pcard-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 상품명 (쿠팡 .name: 12/16, 3줄 클램프, hover = 액센트 + 밑줄 → 퍼플) */
.v15-pcard-name {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-top: 12px;
    font-size: 12px;
    line-height: 16px;
    max-height: 48px;
    color: var(--v15-ink);
}

.v15-pcard:hover .v15-pcard-name {
    color: var(--v15-brand);
    text-decoration: underline;
}

/* 가격 타이포 (쿠팡 시그니처: 취소선 회색 원가 → 빨간 볼드 판매가) */
.v15-price-area {
    margin-top: 6px;
    line-height: 20px;
}

.v15-price-discount {
    font-size: 15px;
    color: var(--v15-deal);
    padding-right: 8px;
    font-family: var(--v15-num-font);
}

.v15-price-base {
    font-size: 12px;
    color: var(--v15-text-4);
    text-decoration: line-through;
    font-family: var(--v15-num-font);
}

.v15-price-sale {
    font-size: 16px;
    font-weight: 700;
    color: var(--v15-sale);
    font-family: var(--v15-num-font);
    font-style: normal;
}

.v15-price-sale small {
    font-size: 12px;
    font-weight: 400;
}

.v15-price-unit {
    font-size: 11px;
    color: var(--v15-sale);
    font-family: var(--v15-num-font);
}

/* 빠른예약 배지 (쿠팡 로켓배송 인라인 배지 h16 자리 → 퍼플 필) */
.v15-badge-fast {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    height: 16px;
    padding: 0 6px;
    margin-left: 4px;
    vertical-align: 2px;
    background: var(--v15-brand);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    border-radius: 8px;
    white-space: nowrap;
}

/* 도착/예약 보장 그린 (쿠팡 "내일 도착 보장" #008C00 원본 유지) */
.v15-arrival {
    display: block;
    margin-top: 4px;
    font-size: 13px;
    font-weight: 700;
    color: var(--v15-green);
}

/* 별점 width% 채움 (쿠팡 노란별 스프라이트 재현 — 사용:
   <span class="v15-stars"><i style="width:92%"></i></span>) */
.v15-stars {
    position: relative;
    display: inline-block;
    font-size: 14px;
    line-height: 1;
    color: #e5e5e5;
    letter-spacing: 1px;
}

.v15-stars::before {
    content: "★★★★★";
}

.v15-stars > i {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    overflow: hidden;
    white-space: nowrap;
    color: var(--v15-star);
    font-style: normal;
}

.v15-stars > i::before {
    content: "★★★★★";
}

/* 리뷰수 (쿠팡: 11px #888 Tahoma 괄호) */
.v15-review-count {
    font-size: 11px;
    color: var(--v15-text-4);
    font-family: var(--v15-num-font);
}

/* 적립/혜택 pill (쿠팡 캐시적립: h20, r10, border #ccc) */
.v15-cash-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 20px;
    padding: 0 8px;
    margin-top: 6px;
    border: 1px solid var(--v15-mute);
    border-radius: 10px;
    background: #fff;
    font-size: 12px;
    color: var(--v15-text-2);
}

/* 품절 상태 (쿠팡 .is-oos: 전 텍스트 #ccc + 이미지 40% 투명) */
.v15-oos,
.v15-oos * {
    color: var(--v15-mute) !important;
}

.v15-oos img {
    opacity: 0.4;
}

/* 섹션 타이틀 (쿠팡 홈 섹션 헤더 톤) */
.v15-sec-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: 28px 20px 14px;
}

.v15-sec-title {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -0.5px;
    margin: 0;
    color: var(--v15-ink);
}

.v15-sec-more {
    font-size: 12px;
    color: var(--v15-text-3);
    text-decoration: none;
}

.v15-sec-more:hover {
    color: var(--v15-brand);
    text-decoration: underline;
}

/* ------------------------------------------------------------
   11. v2 컴포넌트 리톤 (.v15-body 스코프)
   폴백 v2 뷰(.v2-* 모바일형)가 쿠팡 톤(흰 컬럼 + 각진 플랫 +
   정사각 썸네일 + 판매가 레드 강조)으로 보이도록.
   ------------------------------------------------------------ */
/* 섹션: 흰 배경 유지, 타이틀 18/700 */
.v15-body .v2-section {
    padding: 24px 20px;
}

.v15-body .v2-section-title,
.v15-body .v2-page-title {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.5px;
}

/* '더보기' (쿠팡 12px 그레이 링크 → hover 퍼플) */
.v15-body .v2-more {
    font-size: 12px;
    color: var(--v15-text-3);
}

.v15-body .v2-more:hover {
    color: var(--v15-brand);
    text-decoration: underline;
}

.v15-body .v2-divider {
    background: var(--v15-line);
}

/* 칩: 쿠팡 키워드 칩 재현 (흰 바탕 + 보더 + 라운드 2px,
   hover/active = 퍼플 반전 — 쿠팡 칩 hover 배경 반전 관례) */
.v15-body .v2-chip {
    border: 1px solid var(--v15-line);
    border-radius: 2px;
    background: #fff;
    color: var(--v15-text-2);
    font-size: 12px;
}

.v15-body .v2-chip:hover {
    border-color: var(--v15-brand);
    color: var(--v15-brand);
    background: #fff;
}

.v15-body .v2-chip.active {
    border-color: var(--v15-brand);
    background: var(--v15-brand);
    color: #fff;
}

/* 탭: active = 퍼플 + 2px 언더라인 (쿠팡 GNB selected 관례) */
.v15-body .v2-tab {
    color: var(--v15-text-3);
    font-size: 13px;
}

.v15-body .v2-tab.active {
    color: var(--v15-brand);
    font-weight: 700;
}

.v15-body .v2-tab.active::after {
    background: var(--v15-brand);
}

/* 카드 썸네일: 쿠팡 정사각 + 라운드 0 */
.v15-body .v2-ecard-thumb,
.v15-body .v2-acard-thumb,
.v15-body .v2-bacard-img,
.v15-body .v2-hero-card {
    border-radius: 0;
    background: var(--v15-bg);
}

.v15-body .v2-rcard-imgs img {
    border-radius: 0;
}

/* 카드 hover: 쿠팡 dl:hover 그림자 재현 */
.v15-body .v2-ecard:hover,
.v15-body .v2-hcard:hover,
.v15-body .v2-acard:hover,
.v15-body .v2-bacard:hover {
    box-shadow: var(--v15-shadow-card);
    transition: box-shadow 0.2s ease;
}

/* 카드 텍스트: 제목 잉크, hover = 퍼플 + 밑줄 (쿠팡 상품명 hover 관례) */
.v15-body .v2-ecard-title,
.v15-body .v2-acard-title,
.v15-body .v2-bacard-title,
.v15-body .v2-hcard-name {
    color: var(--v15-ink);
    font-weight: 500;
}

.v15-body .v2-ecard:hover .v2-ecard-title,
.v15-body .v2-hcard:hover .v2-hcard-name,
.v15-body .v2-acard:hover .v2-acard-title {
    color: var(--v15-brand);
    text-decoration: underline;
}

.v15-body .v2-ecard-loc,
.v15-body .v2-acard-date,
.v15-body .v2-hcard-region,
.v15-body .v2-bacard-vendor {
    color: var(--v15-text-4);
}

/* 가격: 쿠팡 시그니처 — 할인율 딥레드 / 판매가 레드 볼드 Tahoma /
   원가 회색 취소선 (v2 퍼플 가격 강조 → 커머스 레드) */
.v15-body .v2-price-discount {
    color: var(--v15-deal);
    font-family: var(--v15-num-font);
}

.v15-body .v2-price-final {
    color: var(--v15-sale);
    font-family: var(--v15-num-font);
}

.v15-body .v2-price-orig,
.v15-body .v2-price-orig del {
    color: var(--v15-text-4);
}

/* 별점: 옐로 별 + 회색 괄호 리뷰수 (쿠팡 원본 유지) */
.v15-body .v2-rating {
    color: var(--v15-star);
}

.v15-body .v2-rating em {
    color: var(--v15-text-4);
    font-family: var(--v15-num-font);
}

/* 병원 로고/아바타: 각진 플랫 (라운드 최소 + 보더 #eee) */
.v15-body .v2-hcard-logo {
    border-radius: 2px;
    border: 1px solid var(--v15-line-soft);
    background: var(--v15-bg);
}

.v15-body .v2-avatar {
    background: var(--v15-brand-bg);
    color: var(--v15-brand);
}

/* 카테고리 아이콘: 퍼플 틴트 유지 + 각진 톤 */
.v15-body .v2-cat-ico {
    background: var(--v15-brand-bg);
    color: var(--v15-brand);
    border-radius: 8px;
}

/* 버튼: 쿠팡 각진 버튼 (라운드 2px, CTA = 퍼플 풀필) */
.v15-body .v2-btn {
    border-radius: 2px;
    border: 1px solid var(--v15-line);
    background: #fff;
    color: var(--v15-text-2);
    font-weight: 500;
}

.v15-body .v2-btn:hover {
    border-color: var(--v15-brand);
    color: var(--v15-brand);
}

.v15-body .v2-btn-brand {
    border: 0;
    background: var(--v15-brand);
    color: #fff;
}

.v15-body .v2-btn-brand:hover {
    background: var(--v15-brand-deep);
    color: #fff;
}

.v15-body .v2-btn-outline {
    background: #fff;
    border: 1px solid var(--v15-line);
}

/* 검색 필(폴백 뷰 상단): 쿠팡 시그니처 2px 퍼플 보더 */
.v15-body .v2-search-pill {
    background: #fff;
    border: 2px solid var(--v15-brand);
    border-radius: 0;
}

/* 페이지네이션: 각진 사각 + active 퍼플 */
.v15-body .v2-pagination a,
.v15-body .v2-pagination span {
    border-radius: 2px;
}

.v15-body .v2-pagination .active,
.v15-body .v2-pagination a.active {
    background: var(--v15-brand);
    color: #fff;
}

.v15-body .v2-pagination a:hover {
    background: var(--v15-brand-bg);
    color: var(--v15-brand);
}

/* 인증 배지: 퍼플 틴트 */
.v15-body .v2-badge-cert {
    background: var(--v15-brand-bg);
    color: var(--v15-brand);
}

/* 태그: 각진 톤 */
.v15-body .v2-tag {
    border-radius: 2px;
    background: var(--v15-bg);
    color: var(--v15-text-3);
}

/* 빈 상태 / 스켈레톤 */
.v15-body .v2-empty {
    color: var(--v15-text-4);
}

.v15-body .v2-skel {
    background: var(--v15-bg);
    border-radius: 0;
}

/* ------------------------------------------------------------
   12. 반응형 (<992px 모바일: 유틸바 숨김 + 검색바 축소 + GNB 스크롤)
   ------------------------------------------------------------ */
@media (max-width: 1039.98px) {
    .v15-shell,
    .v15-header-in,
    .v15-gnb-in,
    .v15-topbar-in,
    .v15-footer-info,
    .v15-footer-dark-in {
        max-width: 100%;
    }
}

@media (max-width: 991.98px) {
    /* 유틸바 숨김 (쿠팡 모바일웹 관례) */
    .v15-topbar {
        display: none;
    }

    .v15-header-in {
        padding: 12px 16px;
        gap: 12px;
    }

    .v15-logo-mark {
        width: 28px;
        height: 28px;
    }

    .v15-logo-text {
        font-size: 21px;
    }

    /* 아이콘 라벨 숨김, 아이콘만 */
    .v15-hicon-label {
        display: none;
    }

    .v15-hicons {
        gap: 16px;
    }

    /* GNB: 가로 스크롤 스트립 */
    .v15-gnb {
        overflow-x: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .v15-gnb::-webkit-scrollbar {
        display: none;
    }

    .v15-catbtn span {
        display: none;
    }

    .v15-catbtn {
        padding: 0 14px;
    }

    /* 4열 그리드 → 2열 */
    .v15-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .v15-pcard {
        padding: 12px;
    }

    /* 푸터: 세로 스택 */
    .v15-footer-info {
        flex-direction: column;
        gap: 20px;
    }

    .v15-footer-cs {
        width: 100%;
    }
}

@media (max-width: 767.98px) {
    /* 대형 검색바 숨김 → 돋보기 아이콘 (v2 검색 오버레이 트리거) */
    .v15-search {
        display: none;
    }

    .v15-msearch {
        display: inline-flex;
    }

    .v15-header-in {
        justify-content: space-between;
    }

    /* 카테고리 레이어: 좌우 풀폭 */
    .v15-catlayer {
        left: 0;
        right: 0;
        width: auto;
    }
}
