/*
 * BAETTAEGI V2 SHOP FINAL LAYOUT
 * 홈 app.css 및 과거 중복 CSS의 영향을 마지막 단계에서 차단
 */

:root {
    --v2-width: 600px;
    --v2-nav-height: 64px;
    --v2-safe-bottom: env(safe-area-inset-bottom, 0px);
}

html,
body {
    width: 100%;
    min-height: 100%;
    margin: 0;
    background: #f2f2f2;
}

body {
    overflow-x: hidden;
}

.v2live-shell {
    position: relative !important;
    width: 100% !important;
    max-width: var(--v2-width) !important;
    min-height: 100vh !important;
    margin: 0 auto !important;
    padding-bottom:
        calc(var(--v2-nav-height) + 22px + var(--v2-safe-bottom)) !important;
    overflow: hidden !important;
    background: #fff !important;
}

/* 상단 관리자 프리뷰와 검은 앱 바 */
.v2live-preview {
    min-height: 34px !important;
    padding: 6px 14px !important;
    font-size: 10px !important;
}

.v2live-appbar {
    min-height: 48px !important;
    padding: 7px 14px !important;
}

/* 상단 메뉴 */
.v2live-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 100 !important;
    width: 100% !important;
    background: rgba(255,255,255,.98) !important;
}

.v2live-head-tabs {
    display: flex !important;
    align-items: center !important;
    gap: 20px !important;
    width: 100% !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 0 14px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    scrollbar-width: none !important;
}

.v2live-head-tabs::-webkit-scrollbar {
    display: none !important;
}

.v2live-head-tabs a {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    height: 42px !important;
    padding: 0 !important;
    font-size: 11px !important;
    line-height: 42px !important;
}

/* 검색 + 사진검색 + 메뉴 */
.v2shop-search-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 42px 34px !important;
    align-items: center !important;
    gap: 7px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 7px 14px 11px !important;
    background: #fff !important;
}

.v2shop-search-form {
    display: flex !important;
    align-items: center !important;
    min-width: 0 !important;
    width: 100% !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 0 11px !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: #f3f3f3 !important;
    box-shadow: none !important;
}

.v2shop-search-icon {
    flex: 0 0 17px !important;
    width: 17px !important;
    height: 17px !important;
    margin: 0 8px 0 0 !important;
    color: #8d8d8d !important;
}

.v2shop-search-form input {
    min-width: 0 !important;
    width: 100% !important;
    height: 40px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    font-size: 12px !important;
    line-height: 40px !important;
}

.v2shop-text-search {
    display: none !important;
}

.v2shop-image-search {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #43b77b !important;
    color: #fff !important;
    box-shadow: 0 3px 9px rgba(67,183,123,.24) !important;
}

.v2shop-image-search svg {
    width: 21px !important;
    height: 21px !important;
    margin: 0 !important;
}

.v2shop-ai-label {
    position: absolute !important;
    top: -5px !important;
    right: -4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 17px !important;
    height: 14px !important;
    padding: 0 4px !important;
    border: 1.5px solid #fff !important;
    border-radius: 5px !important;
    background: #111 !important;
    color: #fff !important;
    font-size: 7px !important;
    font-weight: 900 !important;
    line-height: 12px !important;
}

.v2shop-head-menu {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 34px !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.v2shop-head-menu svg {
    width: 22px !important;
    height: 22px !important;
}

/* 대분류 */
.v2live-top-category {
    display: flex !important;
    gap: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 8px !important;
    overflow-x: auto !important;
    white-space: nowrap !important;
    background: #fff !important;
    scrollbar-width: none !important;
}

.v2live-top-category::-webkit-scrollbar {
    display: none !important;
}

.v2live-top-category a {
    flex: 0 0 auto !important;
    min-width: 58px !important;
    height: 43px !important;
    padding: 0 8px !important;
    line-height: 43px !important;
    font-size: 10px !important;
}

/* 필터 버튼 */
.v2live-filter-buttons {
    display: flex !important;
    gap: 7px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 9px 14px !important;
    overflow-x: auto !important;
    background: #fff !important;
}

.v2live-filter-buttons button {
    flex: 0 0 auto !important;
    min-height: 34px !important;
    padding: 0 12px !important;
    font-size: 9px !important;
}

/* 상품 2열 */
.v2live-products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
    padding: 0 8px 16px !important;
}

.v2live-card {
    min-width: 0 !important;
    border-radius: 13px !important;
}

.v2live-card-image {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    background: #fff !important;
}

.v2live-card-image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    filter: none !important;
}

/* 하단 내비 */
.v2shop-bottom-nav {
    position: fixed !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    z-index: 9999 !important;
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: var(--v2-width) !important;
    height:
        calc(var(--v2-nav-height) + var(--v2-safe-bottom)) !important;
    min-height:
        calc(var(--v2-nav-height) + var(--v2-safe-bottom)) !important;
    margin: 0 auto !important;
    padding: 4px 4px var(--v2-safe-bottom) !important;
    border: 0 !important;
    border-top: 1px solid #e6e6e6 !important;
    background: rgba(255,255,255,.98) !important;
    box-shadow: 0 -3px 12px rgba(0,0,0,.06) !important;
    overflow: visible !important;
}

.v2shop-bottom-item {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 56px !important;
    min-height: 56px !important;
    margin: 0 !important;
    padding: 3px 1px !important;
    border: 0 !important;
    background: transparent !important;
    color: #999 !important;
    font-size: 8px !important;
    line-height: 1 !important;
    box-shadow: none !important;
}

.v2shop-bottom-item > svg {
    flex: 0 0 22px !important;
    display: block !important;
    width: 22px !important;
    min-width: 22px !important;
    max-width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    max-height: 22px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
}

.v2shop-bottom-item > span {
    display: block !important;
    width: auto !important;
    height: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: inherit !important;
    font-size: 8px !important;
    font-weight: 500 !important;
    line-height: 10px !important;
    white-space: nowrap !important;
}

.v2shop-bottom-item.active {
    color: #111 !important;
}

.v2shop-bottom-item.active > span {
    font-weight: 800 !important;
}

.v2shop-bottom-item.active::before {
    content: "" !important;
    position: absolute !important;
    top: -5px !important;
    left: 50% !important;
    width: 28px !important;
    height: 2px !important;
    border-radius: 0 0 3px 3px !important;
    background: #111 !important;
    transform: translateX(-50%) !important;
}

.v2shop-point-item {
    color: #6366f1 !important;
}

.v2shop-point-bar {
    position: absolute !important;
    top: -5px !important;
    left: 50% !important;
    display: block !important;
    width: 28px !important;
    height: 2px !important;
    margin: 0 !important;
    border-radius: 0 0 3px 3px !important;
    background: linear-gradient(90deg,#6366f1,#8b5cf6) !important;
    transform: translateX(-50%) !important;
}

.v2shop-point-dot {
    position: absolute !important;
    top: 4px !important;
    right: calc(50% - 16px) !important;
    display: block !important;
    width: 5px !important;
    height: 5px !important;
    margin: 0 !important;
    border: 1.5px solid #fff !important;
    border-radius: 50% !important;
    background: #fbbf24 !important;
}

/* 과거 내비게이션이 남아도 차단 */
.v2live-bottom,
.bottom-nav {
    display: none !important;
}

/* 모바일과 PC 모두 동일한 앱 폭 */
@media (max-width: 600px) {
    html,
    body {
        background: #fff !important;
    }

    .v2live-shell {
        max-width: none !important;
    }

    .v2shop-bottom-nav {
        max-width: none !important;
    }
}

/* ========================================================
   V2 AI IMAGE SEARCH MODAL
   ======================================================== */

.v2img-modal {
    position: fixed;
    inset: 0;
    z-index: 12000;

    visibility: hidden;
    opacity: 0;

    transition:
        opacity .22s ease,
        visibility .22s ease;
}

.v2img-modal.open {
    visibility: visible;
    opacity: 1;
}

.v2img-backdrop {
    position: absolute;
    inset: 0;

    background: rgba(0,0,0,.54);
    backdrop-filter: blur(1px);
    -webkit-backdrop-filter: blur(1px);
}

.v2img-sheet {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;

    display: flex;
    flex-direction: column;

    width: 100%;
    max-width: 600px;
    max-height: calc(100vh - 70px);

    margin: 0 auto;

    overflow: hidden;

    border-radius: 19px 19px 0 0;

    background: #fff;

    box-shadow: 0 -10px 40px rgba(0,0,0,.16);

    transform: translateY(105%);

    transition:
        transform .3s cubic-bezier(.22,.61,.36,1);
}

.v2img-modal.open .v2img-sheet {
    transform: translateY(0);
}

.v2img-head {
    display: flex;
    align-items: center;
    justify-content: space-between;

    min-height: 57px;

    padding: 0 16px;
}

.v2img-head strong {
    font-size: 15px;
    letter-spacing: -.3px;
}

.v2img-close {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 32px;
    height: 32px;

    padding: 0;

    border: 0;
    border-radius: 50%;

    background: #f4f4f4;
    color: #777;
}

.v2img-close svg {
    width: 18px;
    height: 18px;
}

.v2img-form {
    overflow-y: auto;

    padding:
        0
        16px
        calc(20px + env(safe-area-inset-bottom, 0px));
}

.v2img-upload {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    min-height: 220px;

    overflow: hidden;

    border-radius: 15px;

    background: #f5f5f5;

    cursor: pointer;
}

.v2img-preview-wrap {
    position: absolute;
    inset: 0;

    overflow: hidden;

    border-radius: inherit;
}

.v2img-preview-wrap img {
    width: 100%;
    height: 100%;

    object-fit: contain;
    object-position: center;

    background: #f5f5f5;
}

.v2img-upload-empty {
    position: relative;
    z-index: 3;

    display: flex;
    flex-direction: column;
    align-items: center;

    text-align: center;
}

.v2img-plus {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 47px;
    height: 47px;

    margin-bottom: 13px;

    border: 1px solid #e7e7e7;
    border-radius: 50%;

    background: #fff;
    color: #999;

    box-shadow: 0 4px 12px rgba(0,0,0,.04);
}

.v2img-plus svg {
    width: 23px;
    height: 23px;
}

.v2img-upload-empty strong {
    color: #333;
    font-size: 13px;
}

.v2img-upload-empty small {
    margin-top: 7px;

    color: #999;
    font-size: 10px;
}

.v2img-scan {
    position: absolute;
    inset: 10px;
    z-index: 4;

    overflow: hidden;

    border-radius: 10px;

    pointer-events: none;
}

.v2img-scan::before {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            to bottom,
            rgba(67,183,123,.04),
            rgba(67,183,123,.13),
            rgba(67,183,123,.04)
        );
}

.v2img-scan-line {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;

    height: 2px;

    background: #41d98d;

    box-shadow:
        0 0 8px #41d98d,
        0 0 18px rgba(65,217,141,.9),
        0 8px 20px rgba(65,217,141,.33);

    animation:
        v2ImageScanLine 1.7s ease-in-out infinite;
}

@keyframes v2ImageScanLine {
    0% {
        top: 2%;
        opacity: .65;
    }

    50% {
        top: calc(100% - 3px);
        opacity: 1;
    }

    100% {
        top: 2%;
        opacity: .65;
    }
}

.v2img-corner {
    position: absolute;

    width: 22px;
    height: 22px;

    border-color: #41d98d;
    border-style: solid;
}

.v2img-corner.top-left {
    top: 0;
    left: 0;

    border-width: 2px 0 0 2px;
}

.v2img-corner.top-right {
    top: 0;
    right: 0;

    border-width: 2px 2px 0 0;
}

.v2img-corner.bottom-left {
    bottom: 0;
    left: 0;

    border-width: 0 0 2px 2px;
}

.v2img-corner.bottom-right {
    right: 0;
    bottom: 0;

    border-width: 0 2px 2px 0;
}

.v2img-analyzing {
    position: absolute;
    right: 12px;
    bottom: 12px;
    left: 12px;
    z-index: 7;

    padding: 12px 13px;

    border-radius: 11px;

    background: rgba(18,18,18,.86);
    color: #fff;

    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    pointer-events: none;
}

.v2img-analyzing strong {
    display: block;

    font-size: 11px;
}

.v2img-analyzing p {
    margin: 5px 0 9px;

    color: rgba(255,255,255,.7);
    font-size: 9px;
}

.v2img-progress {
    width: 100%;
    height: 3px;

    overflow: hidden;

    border-radius: 999px;

    background: rgba(255,255,255,.18);
}

.v2img-progress span {
    display: block;

    width: 0;
    height: 100%;

    border-radius: inherit;

    background: #42db8e;

    transition: width .35s ease;
}

.v2img-steps {
    display: flex;
    gap: 16px;

    margin-top: 8px;
}

.v2img-steps span {
    position: relative;

    color: rgba(255,255,255,.38);
    font-size: 8px;
}

.v2img-steps span.active {
    color: #fff;
}

.v2img-steps span.active::before {
    content: "";

    display: inline-block;

    width: 5px;
    height: 5px;

    margin-right: 4px;

    border-radius: 50%;

    background: #42db8e;

    box-shadow: 0 0 7px #42db8e;
}

.v2img-select-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 8px;

    margin-top: 13px;
}

.v2img-select-row label {
    position: relative;

    display: block;
}

.v2img-select-row label > span {
    display: none;
}

.v2img-select-row select {
    width: 100%;
    height: 43px;

    padding: 0 32px 0 12px;

    border: 0;
    border-radius: 10px;

    outline: 0;

    background: #f5f5f5;
    color: #333;

    font-size: 10px;
    font-weight: 650;
}

.v2img-submit,
.v2img-change {
    width: 100%;
    height: 46px;

    margin-top: 13px;

    border: 0;
    border-radius: 11px;

    font-size: 11px;
    font-weight: 850;
}

.v2img-submit {
    background: #111;
    color: #fff;
}

.v2img-submit:disabled {
    background: #ededed;
    color: #bbb;
}

.v2img-change {
    margin-top: 7px;

    border: 1px solid #e4e4e4;

    background: #fff;
    color: #555;
}

.v2img-modal.scanning .v2img-submit,
.v2img-modal.scanning .v2img-change,
.v2img-modal.scanning .v2img-select-row {
    opacity: .45;

    pointer-events: none;
}

@media (max-height: 650px) {
    .v2img-upload {
        min-height: 175px;
    }
}


/* ========================================================
   V2 AI STEP ANIMATION FINAL
   ======================================================== */

.v2img-analyzing strong {
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: -.2px !important;
}

.v2img-analyzing p {
    min-height: 15px !important;
    color: rgba(255,255,255,.78) !important;
    transition:
        color .25s ease,
        opacity .25s ease !important;
}

.v2img-steps {
    position: relative !important;

    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 0 !important;

    margin-top: 12px !important;
}

/* 단계 사이 연결선 */
.v2img-steps::before {
    content: "" !important;

    position: absolute !important;
    top: 8px !important;
    right: 16.66% !important;
    left: 16.66% !important;

    height: 1px !important;

    background: rgba(255,255,255,.18) !important;
}

.v2img-steps span {
    position: relative !important;
    z-index: 2 !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 5px !important;

    color: rgba(255,255,255,.35) !important;

    font-size: 8px !important;
    font-weight: 650 !important;

    transition:
        color .3s ease,
        transform .3s ease !important;
}

/* 단계 동그라미 */
.v2img-steps span::before {
    content: "" !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 16px !important;
    height: 16px !important;

    margin: 0 !important;

    border: 1px solid rgba(255,255,255,.24) !important;
    border-radius: 50% !important;

    background: #343434 !important;

    color: #fff !important;

    box-sizing: border-box !important;

    transition:
        background .3s ease,
        border-color .3s ease,
        box-shadow .3s ease,
        transform .3s ease !important;
}

/* 현재 진행 단계 */
.v2img-steps span.active {
    color: #61e9a4 !important;

    transform: translateY(-1px) !important;
}

.v2img-steps span.active::before {
    border-color: #42db8e !important;
    background: #42db8e !important;

    box-shadow:
        0 0 0 4px rgba(66,219,142,.14),
        0 0 12px rgba(66,219,142,.75) !important;

    animation: v2AiStepPulse 1.2s ease-in-out infinite !important;
}

/* 완료 단계 */
.v2img-steps span.done {
    color: #fff !important;
}

.v2img-steps span.done::before {
    content: "✓" !important;

    border-color: #42db8e !important;
    background: #42db8e !important;

    font-size: 10px !important;
    font-weight: 900 !important;

    box-shadow:
        0 0 8px rgba(66,219,142,.38) !important;
}

/* 진행바도 AI처럼 흐르는 효과 */
.v2img-progress span {
    position: relative !important;

    overflow: hidden !important;

    background:
        linear-gradient(
            90deg,
            #27c879,
            #69efaf,
            #27c879
        ) !important;

    background-size: 200% 100% !important;

    animation:
        v2AiProgressFlow 1.2s linear infinite !important;
}

.v2img-progress span::after {
    content: "" !important;

    position: absolute !important;
    inset: 0 !important;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.7),
            transparent
        ) !important;

    transform: translateX(-100%) !important;

    animation:
        v2AiProgressShine 1.15s ease-in-out infinite !important;
}

/* 문구 옆 AI 점멸 */
.v2img-analyzing strong::after {
    content: "" !important;

    display: inline-block !important;

    width: 5px !important;
    height: 5px !important;

    margin-left: 7px !important;
    margin-bottom: 1px !important;

    border-radius: 50% !important;

    background: #42db8e !important;

    box-shadow:
        0 0 8px rgba(66,219,142,.8) !important;

    animation:
        v2AiThinkingDot 1s ease-in-out infinite !important;
}

@keyframes v2AiStepPulse {
    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(.8);
    }
}

@keyframes v2AiProgressFlow {
    0% {
        background-position: 0 0;
    }

    100% {
        background-position: 200% 0;
    }
}

@keyframes v2AiProgressShine {
    0% {
        transform: translateX(-100%);
    }

    65%,
    100% {
        transform: translateX(220%);
    }
}

@keyframes v2AiThinkingDot {
    0%,
    100% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: .35;
        transform: scale(.7);
    }
}

/* ========================================================
   V2 PHOTO SEARCH RESULT FINAL
   ======================================================== */

.v2img-sheet.v2img-result-mode {
    height: calc(100vh - 88px) !important;
    max-height: calc(100vh - 88px) !important;
}

.v2img-sheet.v2img-result-mode .v2img-form {
    display: none !important;
}

.v2img-result-view {
    display: none;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #fff;
    scrollbar-width: thin;
}

.v2img-sheet.v2img-result-mode .v2img-result-view {
    display: block;
}

.v2img-result-top {
    position: sticky;
    top: 0;
    z-index: 20;
    padding: 4px 16px 11px;
    border-bottom: 1px solid #ededed;
    background: rgba(255,255,255,.98);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.v2img-result-search-row {
    display: grid;
    grid-template-columns: 64px minmax(0,1fr);
    gap: 10px;
    align-items: center;
}

.v2img-result-query {
    position: relative;
    width: 64px;
    height: 64px;
    overflow: hidden;
    border-radius: 8px;
    background: #f3f3f3;
}

.v2img-result-query img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.v2img-result-query::after {
    content: "";
    position: absolute;
    right: 0;
    left: 0;
    height: 2px;
    background: #42db8e;
    box-shadow:
        0 0 7px #42db8e,
        0 0 15px rgba(66,219,142,.7);
    animation: v2ResultScan 2s ease-in-out infinite;
}

@keyframes v2ResultScan {
    0% {
        top: 3%;
        opacity: .45;
    }

    50% {
        top: 94%;
        opacity: 1;
    }

    100% {
        top: 3%;
        opacity: .45;
    }
}

.v2img-result-controls {
    min-width: 0;
}

.v2img-result-selects {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 6px;
}

.v2img-result-selects select {
    width: 100%;
    height: 31px;
    padding: 0 26px 0 9px;
    border: 1px solid #dedede;
    border-radius: 5px;
    outline: 0;
    background: #fff;
    color: #555;
    font-size: 9px;
}

.v2img-result-again {
    width: 100%;
    height: 31px;
    margin-top: 6px;
    padding: 0;
    border: 0;
    border-radius: 5px;
    background: #111;
    color: #fff;
    font-size: 9px;
    font-weight: 850;
}

.v2img-result-message {
    margin-top: 11px;
    padding: 8px 10px;
    border: 1px solid #f2d16c;
    border-radius: 5px;
    background: #fffdf4;
    color: #956900;
    font-size: 9px;
    line-height: 1.45;
}

.v2img-result-summary {
    padding: 13px 16px 7px;
    color: #222;
    font-size: 11px;
    font-weight: 850;
}

.v2img-result-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 18px 10px;
    padding: 0 8px 28px;
}

.v2img-result-card {
    min-width: 0;
    color: #222;
    text-decoration: none;
}

.v2img-result-image {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 5px;
    background: #fff;
}

.v2img-result-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.v2img-result-score {
    position: absolute;
    top: 4px;
    right: 4px;
    min-width: 29px;
    padding: 3px 5px;
    border-radius: 4px;
    background: rgba(65,65,65,.72);
    color: #fff;
    font-size: 8px;
    font-weight: 800;
    line-height: 1;
    text-align: center;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.v2img-result-brand {
    margin-top: 7px;
    overflow: hidden;
    color: #777;
    font-size: 8px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.v2img-result-title {
    display: -webkit-box;
    min-height: 25px;
    margin-top: 3px;
    overflow: hidden;
    color: #444;
    font-size: 9px;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.v2img-result-price {
    margin-top: 6px;
    color: #111;
    font-size: 10px;
    font-weight: 900;
}

.v2img-result-empty {
    padding: 80px 20px;
    color: #888;
    font-size: 11px;
    text-align: center;
}

.v2img-result-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 360px;
    color: #777;
    font-size: 10px;
}

.v2img-result-loading-ring {
    width: 34px;
    height: 34px;
    margin-bottom: 14px;
    border: 3px solid #ededed;
    border-top-color: #42db8e;
    border-radius: 50%;
    animation: v2ResultRing .7s linear infinite;
}

@keyframes v2ResultRing {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 380px) {
    .v2img-result-grid {
        gap: 16px 7px;
        padding-right: 6px;
        padding-left: 6px;
    }
}

/* 자동 검색 방식: 수동 검색 버튼 완전 제거 */
#v2ImageSubmit {
    display: none !important;
}

/* 버튼이 없어도 아래쪽 불필요한 빈 공간이 생기지 않게 */
.v2img-submit {
    display: none !important;
}

.v2img-change {
    margin-top: 12px !important;
}


/* V2 SHOP SHARP PRODUCT GRID START */

/* 전체 화면 글자 선명도 */
html,
body,
.v2live-shell {
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    text-rendering: optimizeLegibility !important;
}

.v2live-shell {
    background: #ffffff !important;
}

/* 흐려 보이게 만드는 효과 제거 */
.v2live-card,
.v2live-card-image,
.v2live-card-image img,
.v2live-card-info {
    filter: none !important;
    opacity: 1 !important;
    transform: none !important;
    backface-visibility: visible !important;
}

/* 상품 2열 간격 통일 */
.v2live-products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: stretch !important;

    width: 100% !important;
    gap: 10px !important;
    padding: 0 8px 22px !important;
}

/* 카드 전체 높이와 모양 통일 */
.v2live-card {
    display: flex !important;
    flex-direction: column !important;

    min-width: 0 !important;
    height: 100% !important;

    overflow: hidden !important;

    border: 1px solid #e5e5e5 !important;
    border-radius: 12px !important;

    background: #ffffff !important;
    color: #111111 !important;

    box-shadow: none !important;
}

/* 모든 대표이미지 영역을 똑같은 정사각형으로 고정 */
.v2live-card-image {
    position: relative !important;

    display: block !important;

    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;

    flex: 0 0 auto !important;

    overflow: hidden !important;

    border-radius: 0 !important;

    background: #f4f4f4 !important;
}

/* 원본 비율이 달라도 전부 꽉 채움 */
.v2live-card-image img {
    position: absolute !important;
    inset: 0 !important;

    display: block !important;

    width: 100% !important;
    min-width: 100% !important;
    max-width: none !important;

    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;

    margin: 0 !important;
    padding: 0 !important;

    object-fit: cover !important;
    object-position: center center !important;

    image-rendering: auto !important;
    filter: none !important;
    opacity: 1 !important;
    transform: none !important;

    background: #f4f4f4 !important;
}

/* DIRECT/추천 배지 */
.v2live-card-badge {
    top: 7px !important;
    left: 7px !important;

    padding: 4px 6px !important;

    border-radius: 5px !important;

    background: rgba(17,17,17,.88) !important;
    color: #ffffff !important;

    font-size: 8px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
}

/* 상품 정보 영역 높이 정돈 */
.v2live-card-info {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;

    min-height: 112px !important;

    padding: 10px 9px 11px !important;

    background: #ffffff !important;
}

/* 브랜드 */
.v2live-card-brand {
    display: block !important;

    margin: 0 0 5px !important;

    overflow: hidden !important;

    color: #76562d !important;

    font-size: 9px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;

    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/* 상품명 */
.v2live-card-title {
    display: -webkit-box !important;

    min-height: 35px !important;
    margin: 0 !important;

    overflow: hidden !important;

    color: #171717 !important;

    font-size: 11px !important;
    font-weight: 650 !important;
    line-height: 17px !important;
    letter-spacing: -.2px !important;

    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
}

/* 가격은 아래쪽 정렬 */
.v2live-card-price {
    display: block !important;

    margin-top: auto !important;
    padding-top: 9px !important;

    color: #111111 !important;

    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
}

/* 기존 카테고리/셀러 작은 문구 */
.v2live-card-sub {
    display: block !important;

    margin-top: 5px !important;

    overflow: hidden !important;

    color: #888888 !important;

    font-size: 8px !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;

    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/* 상품 수와 정렬 영역 선명하게 */
.v2live-summary {
    min-height: 49px !important;
    padding: 10px 14px !important;

    color: #333333 !important;

    font-size: 11px !important;
    font-weight: 500 !important;
}

.v2live-summary strong {
    color: #111111 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
}

.v2live-summary select {
    height: 34px !important;

    border: 1px solid #dddddd !important;
    border-radius: 8px !important;

    background: #ffffff !important;
    color: #222222 !important;

    font-size: 10px !important;
    font-weight: 650 !important;
}

/* 상단 카테고리 글자 */
.v2live-top-category a {
    color: #666666 !important;

    font-size: 10px !important;
    font-weight: 600 !important;
}

.v2live-top-category a.active {
    color: #111111 !important;
    font-weight: 900 !important;
}

/* 필터 버튼 */
.v2live-filter-buttons button {
    border-color: #dedede !important;
    background: #ffffff !important;
    color: #222222 !important;

    font-size: 10px !important;
    font-weight: 700 !important;
}

/* 검색창도 회색을 줄여 선명하게 */
.v2shop-search-form {
    background: #f5f5f5 !important;
}

.v2shop-search-form input {
    color: #222222 !important;

    font-size: 12px !important;
    font-weight: 500 !important;
}

.v2shop-search-form input::placeholder {
    color: #888888 !important;
    opacity: 1 !important;
}

/* 이미지 로드 전에도 같은 크기 유지 */
.v2live-card-image.image-error {
    display: grid !important;
    place-items: center !important;

    background: #f4f4f4 !important;
}

/* 작은 휴대폰에서도 정확히 2열 */
@media (max-width: 600px) {
    .v2live-products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        padding-right: 7px !important;
        padding-left: 7px !important;
    }

    .v2live-card-info {
        min-height: 108px !important;
        padding: 9px 8px 10px !important;
    }

    .v2live-card-title {
        font-size: 10.5px !important;
        line-height: 16px !important;
    }
}

/* 태블릿·PC 앱 폭에서도 2열 유지 */
@media (min-width: 601px) {
    .v2live-products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* V2 SHOP SHARP PRODUCT GRID END */

/* 사진 분석 완료 후 자동 결과 표시 */
#v2ImageSubmit,
.v2img-submit {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.v2img-change {
    display: none !important;
}

/* ========================================================
   V2 CATEGORY LABEL + HIGH QUALITY IMAGE FINAL
   ======================================================== */

html,
body,
.v2live-shell {
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    text-rendering: geometricPrecision !important;
}

.v2live-shell,
.v2live-products,
.v2live-card,
.v2live-card-info {
    opacity: 1 !important;
    filter: none !important;
}

/* 상품 목록은 항상 정확히 2열 */
.v2live-products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    gap: 9px !important;
    width: 100% !important;
    padding: 0 8px 24px !important;
}

/* 모든 상품 카드 동일 구조 */
.v2live-card {
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
    height: 100% !important;
    overflow: hidden !important;

    border: 1px solid #e2e2e2 !important;
    border-radius: 11px !important;

    background: #fff !important;
    box-shadow: none !important;
}

/* 대표 이미지 영역은 전부 동일한 정사각형 */
.v2live-card-image {
    position: relative !important;
    display: block !important;

    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;

    flex: 0 0 auto !important;

    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;

    border-radius: 0 !important;
    background: #f1f1f1 !important;
}

/* 원본 비율과 관계없이 동일하게 꽉 채움 */
.v2live-card-image img {
    position: absolute !important;
    inset: 0 !important;

    display: block !important;

    width: 100% !important;
    min-width: 100% !important;
    max-width: none !important;

    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;

    margin: 0 !important;
    padding: 0 !important;

    object-fit: cover !important;
    object-position: center center !important;

    image-rendering: auto !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;

    background: #f1f1f1 !important;
}

/* 이미지가 로드되는 동안 크기 유지 */
.v2live-card-image::before {
    content: "";
    display: block;
    padding-top: 100%;
}

.v2live-card-image img {
    z-index: 1 !important;
}

/* 배지는 이미지 위 */
.v2live-card-badge {
    z-index: 3 !important;
}

/* 상품 정보 글자 선명하게 */
.v2live-card-info {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;

    min-height: 108px !important;
    padding: 9px 9px 11px !important;

    background: #fff !important;
}

.v2live-card-brand {
    color: #725127 !important;
    font-size: 9px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
}

.v2live-card-title {
    min-height: 34px !important;
    margin-top: 5px !important;

    color: #141414 !important;

    font-size: 10.5px !important;
    font-weight: 650 !important;
    line-height: 16px !important;
    letter-spacing: -.15px !important;
}

.v2live-card-price {
    margin-top: auto !important;
    padding-top: 8px !important;

    color: #050505 !important;

    font-size: 12px !important;
    font-weight: 900 !important;
}

.v2live-card-sub {
    color: #777 !important;
    font-size: 8px !important;
}

/* 활성 필터 이름 */
.v2live-active-filters button {
    min-height: 29px !important;
    padding: 0 10px !important;

    background: #111 !important;
    color: #fff !important;

    font-size: 9px !important;
    font-weight: 700 !important;
}

/* 상단 글자 회색 감소 */
.v2live-head-tabs a,
.v2live-top-category a {
    opacity: 1 !important;
    filter: none !important;
}

.v2live-head-tabs a {
    color: #555 !important;
}

.v2live-head-tabs a.active,
.v2live-top-category a.active {
    color: #080808 !important;
}

/* 사진검색 결과 이미지도 같은 규격 */
.v2img-result-image {
    position: relative !important;
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    overflow: hidden !important;
    background: #f3f3f3 !important;
}

.v2img-result-image img {
    position: absolute !important;
    inset: 0 !important;

    width: 100% !important;
    height: 100% !important;

    object-fit: cover !important;
    object-position: center !important;

    opacity: 1 !important;
    filter: none !important;
}

/* 모바일도 2열과 이미지 크기 동일 */
@media (max-width: 600px) {
    .v2live-products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 7px !important;
        padding-right: 6px !important;
        padding-left: 6px !important;
    }
}

/* V2 SHOP RESPONSIVE FINAL START */

/* 공통 가독성 */
.v2live-head-tabs a{
    font-size:clamp(13px,1vw,16px) !important;
    font-weight:700 !important;
}

.v2shop-search-form input{
    font-size:clamp(14px,1vw,16px) !important;
}

.v2live-top-category a{
    font-size:clamp(12px,.95vw,15px) !important;
}

.v2live-filter-buttons button{
    min-height:40px !important;
    padding:0 15px !important;
    font-size:13px !important;
}

.v2live-summary{
    font-size:14px !important;
}

.v2live-summary strong{
    font-size:15px !important;
}

.v2live-summary select{
    height:40px !important;
    font-size:13px !important;
}

/* 모바일 */
@media (max-width:600px){
    :root{
        --v2-width:100%;
    }

    html,
    body{
        background:#fff !important;
    }

    .v2live-shell,
    .v2shop-bottom-nav{
        width:100% !important;
        max-width:none !important;
    }

    .v2live-products{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:8px !important;
        padding:0 7px 24px !important;
    }

    .v2live-card-info{
        min-height:116px !important;
        padding:11px 10px 13px !important;
    }

    .v2live-card-brand{
        font-size:11px !important;
    }

    .v2live-card-title{
        min-height:42px !important;
        font-size:14px !important;
        line-height:20px !important;
        font-weight:700 !important;
    }

    .v2live-card-price{
        font-size:17px !important;
    }

    .v2live-card-sub{
        font-size:10px !important;
    }
}

/* 태블릿 */
@media (min-width:601px) and (max-width:1023px){
    :root{
        --v2-width:calc(100vw - 24px);
    }

    .v2live-shell{
        width:calc(100% - 24px) !important;
        max-width:none !important;
        margin:12px auto !important;
        border-radius:22px !important;
    }

    .v2shop-bottom-nav{
        right:12px !important;
        left:12px !important;
        width:calc(100% - 24px) !important;
        max-width:none !important;
    }

    .v2live-products{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        gap:14px !important;
        padding:0 16px 30px !important;
    }

    .v2live-card-info{
        min-height:130px !important;
        padding:13px 12px 15px !important;
    }

    .v2live-card-brand{
        font-size:12px !important;
    }

    .v2live-card-title{
        min-height:46px !important;
        font-size:15px !important;
        line-height:22px !important;
        font-weight:700 !important;
    }

    .v2live-card-price{
        font-size:18px !important;
    }

    .v2live-card-sub{
        font-size:11px !important;
    }
}

/* PC */
@media (min-width:1024px){
    :root{
        --v2-width:1320px;
    }

    .v2live-shell{
        width:calc(100% - 48px) !important;
        max-width:1320px !important;
        margin:24px auto !important;
        border-radius:26px !important;
        overflow:hidden !important;
    }

    .v2live-header{
        padding-right:26px !important;
        padding-left:26px !important;
    }

    .v2live-head-tabs{
        height:52px !important;
        justify-content:center !important;
        gap:30px !important;
    }

    .v2live-head-tabs a{
        height:52px !important;
        font-size:16px !important;
        line-height:52px !important;
    }

    .v2shop-search-row{
        grid-template-columns:minmax(0,1fr) 54px 46px !important;
        max-width:980px !important;
        margin:0 auto !important;
        padding:14px 0 17px !important;
    }

    .v2shop-search-form{
        height:54px !important;
        padding:0 16px !important;
        border-radius:14px !important;
    }

    .v2shop-search-form input{
        height:52px !important;
        font-size:16px !important;
        line-height:52px !important;
    }

    .v2shop-image-search{
        width:54px !important;
        height:54px !important;
    }

    .v2shop-head-menu{
        width:46px !important;
        height:54px !important;
    }

    .v2live-top-category{
        justify-content:center !important;
        padding:0 24px !important;
    }

    .v2live-top-category a{
        min-width:82px !important;
        height:50px !important;
        font-size:15px !important;
        line-height:50px !important;
    }

    .v2live-filter-buttons,
    .v2live-summary{
        padding-right:28px !important;
        padding-left:28px !important;
    }

    .v2live-products{
        grid-template-columns:repeat(4,minmax(0,1fr)) !important;
        gap:20px !important;
        padding:0 28px 40px !important;
    }

    .v2live-card{
        border-radius:17px !important;
        transition:
            transform .22s ease,
            box-shadow .22s ease,
            border-color .22s ease !important;
    }

    .v2live-card-info{
        min-height:150px !important;
        padding:16px 15px 18px !important;
    }

    .v2live-card-brand{
        margin-bottom:7px !important;
        font-size:13px !important;
    }

    .v2live-card-title{
        min-height:52px !important;
        font-size:17px !important;
        line-height:24px !important;
        font-weight:700 !important;
        letter-spacing:-.25px !important;
    }

    .v2live-card-price{
        padding-top:12px !important;
        font-size:20px !important;
    }

    .v2live-card-sub{
        margin-top:7px !important;
        font-size:12px !important;
    }

    .v2shop-bottom-nav{
        right:24px !important;
        left:24px !important;
        width:calc(100% - 48px) !important;
        max-width:1320px !important;
    }

    .v2img-sheet{
        max-width:760px !important;
    }

    .v2img-result-grid{
        grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    }
}

/* PC 마우스 반응 */
@media (min-width:1024px) and (hover:hover) and (pointer:fine){
    .v2live-card:hover{
        transform:translateY(-5px) !important;
        border-color:#d0d0d0 !important;
        box-shadow:0 15px 34px rgba(0,0,0,.12) !important;
    }

    .v2live-card:hover .v2live-card-image img{
        transform:scale(1.035) !important;
    }
}

/* 큰 PC도 카드가 작아지지 않도록 4열 유지 */
@media (min-width:1500px){
    .v2live-products{
        grid-template-columns:repeat(4,minmax(0,1fr)) !important;
        gap:22px !important;
    }
}

/* V2 SHOP RESPONSIVE FINAL END */

/* V2 SHOP INFINITE SCROLL */
#v2LoadMore,
.v2live-more{
    display:none !important;
}

#v2InfiniteSentinel{
    width:100%;
    height:2px;
    margin:0;
    padding:0;
    pointer-events:none;
}


/* =========================================================
   V2 SHOP CATEGORY IMAGE BUTTONS
========================================================= */

.v2live-top-category{
    display:none !important;
}

.v2live-category-images{
    display:flex;
    align-items:flex-start;
    gap:14px;
    width:100%;
    padding:18px 14px 16px;
    overflow-x:auto;
    overflow-y:hidden;
    background:#fff;
    border-bottom:1px solid #ececec;
    scrollbar-width:none;
    scroll-snap-type:x proximity;
}

.v2live-category-images::-webkit-scrollbar{
    display:none;
}

.v2live-category-image-item{
    flex:0 0 72px;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:9px;
    color:#666;
    text-decoration:none;
    scroll-snap-align:start;
}

.v2live-category-image-circle{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    width:68px;
    height:68px;
    overflow:hidden;
    border:2px solid transparent;
    border-radius:50%;
    background:#f4f4f2;
    box-shadow:0 4px 12px rgba(0,0,0,.07);
    transition:
        transform .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}

.v2live-category-image-circle img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    transition:transform .28s ease;
}

.v2live-category-image-circle.all{
    background:linear-gradient(145deg,#111,#4b4b4b);
    color:#fff;
}

.v2live-category-image-circle.all b{
    font-size:15px;
    font-weight:900;
    letter-spacing:.5px;
}

.v2live-category-image-item strong{
    display:block;
    width:100%;
    overflow:hidden;
    color:#555;
    font-size:11px;
    font-weight:700;
    line-height:1.25;
    text-align:center;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.v2live-category-image-item.active
.v2live-category-image-circle{
    border-color:#111;
    box-shadow:
        0 0 0 3px #fff,
        0 0 0 5px #111,
        0 6px 16px rgba(0,0,0,.15);
}

.v2live-category-image-item.active strong{
    color:#111;
    font-weight:900;
}

@media (hover:hover) and (pointer:fine){
    .v2live-category-image-item:hover
    .v2live-category-image-circle{
        transform:translateY(-4px);
        box-shadow:0 10px 24px rgba(0,0,0,.15);
    }

    .v2live-category-image-item:hover
    .v2live-category-image-circle img{
        transform:scale(1.07);
    }

    .v2live-category-image-item:hover strong{
        color:#111;
    }
}

/* 모바일 */
@media (max-width:600px){
    .v2live-category-images{
        gap:11px;
        padding:15px 12px 14px;
    }

    .v2live-category-image-item{
        flex-basis:64px;
        width:64px;
    }

    .v2live-category-image-circle{
        width:60px;
        height:60px;
    }

    .v2live-category-image-item strong{
        font-size:10px;
    }
}

/* 작은 모바일 */
@media (max-width:380px){
    .v2live-category-images{
        gap:9px;
        padding-right:10px;
        padding-left:10px;
    }

    .v2live-category-image-item{
        flex-basis:59px;
        width:59px;
    }

    .v2live-category-image-circle{
        width:56px;
        height:56px;
    }

    .v2live-category-image-item strong{
        font-size:9px;
    }
}

/* 태블릿 */
@media (min-width:601px) and (max-width:1023px){
    .v2live-category-images{
        gap:18px;
        padding:20px 20px 18px;
    }

    .v2live-category-image-item{
        flex-basis:82px;
        width:82px;
    }

    .v2live-category-image-circle{
        width:76px;
        height:76px;
    }

    .v2live-category-image-item strong{
        font-size:12px;
    }
}

/* PC */
@media (min-width:1024px){
    .v2live-category-images{
        justify-content:center;
        gap:24px;
        padding:24px 28px 21px;
        overflow-x:auto;
    }

    .v2live-category-image-item{
        flex-basis:94px;
        width:94px;
    }

    .v2live-category-image-circle{
        width:84px;
        height:84px;
    }

    .v2live-category-image-item strong{
        font-size:13px;
    }
}


/* =========================================================
   V2 SHOP FILTER ACTIVE COLORS
========================================================= */

.v2live-filter-buttons button{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:8px !important;

    min-width:110px !important;
    min-height:40px !important;

    padding:0 14px !important;

    border:1px solid #dedede !important;
    border-radius:10px !important;

    background:#fff !important;
    color:#333 !important;

    transition:
        background-color .18s ease,
        border-color .18s ease,
        color .18s ease,
        transform .18s ease,
        box-shadow .18s ease !important;
}

.v2live-filter-buttons .v2-filter-label{
    display:block;
    max-width:145px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.v2live-filter-buttons .v2-filter-arrow{
    flex:none;
    color:#888;
    transition:transform .18s ease;
}

/* 카테고리 선택 */
.v2live-filter-buttons
.v2-filter-category.active{
    border-color:#111 !important;
    background:#111 !important;
    color:#fff !important;
    box-shadow:0 6px 16px rgba(0,0,0,.14) !important;
}

/* 세부분류 선택 */
.v2live-filter-buttons
.v2-filter-sub.active{
    border-color:#283a55 !important;
    background:#283a55 !important;
    color:#fff !important;
    box-shadow:0 6px 16px rgba(40,58,85,.2) !important;
}

/* 브랜드 선택 */
.v2live-filter-buttons
.v2-filter-brand.active{
    border-color:#75522d !important;
    background:#75522d !important;
    color:#fff !important;
    box-shadow:0 6px 16px rgba(117,82,45,.2) !important;
}

.v2live-filter-buttons button.active
.v2-filter-arrow{
    color:#fff !important;
}

/* 마우스 반응 */
@media (hover:hover) and (pointer:fine){
    .v2live-filter-buttons button:hover{
        transform:translateY(-2px);
        border-color:#aaa !important;
        box-shadow:0 7px 18px rgba(0,0,0,.1);
    }

    .v2live-filter-buttons button:hover
    .v2-filter-arrow{
        transform:translateY(2px);
    }

    .v2live-filter-buttons
    .v2-filter-category.active:hover{
        border-color:#111 !important;
        background:#272727 !important;
    }

    .v2live-filter-buttons
    .v2-filter-sub.active:hover{
        border-color:#283a55 !important;
        background:#344a6c !important;
    }

    .v2live-filter-buttons
    .v2-filter-brand.active:hover{
        border-color:#75522d !important;
        background:#8b6338 !important;
    }
}

/* 터치 반응 */
.v2live-filter-buttons button:active{
    transform:scale(.97);
}

/* 모바일 */
@media (max-width:600px){
    .v2live-filter-buttons{
        gap:7px !important;
    }

    .v2live-filter-buttons button{
        min-width:auto !important;
        flex:0 0 auto !important;
        min-height:38px !important;
        padding:0 12px !important;
        font-size:11px !important;
    }

    .v2live-filter-buttons .v2-filter-label{
        max-width:95px;
    }
}

/* PC */
@media (min-width:1024px){
    .v2live-filter-buttons{
        gap:10px !important;
    }

    .v2live-filter-buttons button{
        min-width:145px !important;
        min-height:44px !important;
        padding:0 17px !important;
        font-size:14px !important;
    }
}

/* 원형 이미지 카테고리 선택 상태 강화 */
.v2live-category-image-item.active
.v2live-category-image-circle{
    border-color:#111 !important;
    transform:translateY(-3px);
    box-shadow:
        0 0 0 3px #fff,
        0 0 0 5px #111,
        0 10px 24px rgba(0,0,0,.18) !important;
}

.v2live-category-image-item.active strong{
    color:#111 !important;
    font-weight:900 !important;
}

/* =========================================================
   V2 BOTTOM NAV RESPONSIVE FINAL
========================================================= */

.v2shop-bottom-nav {
    box-sizing: border-box !important;
}

.v2shop-bottom-item {
    box-sizing: border-box !important;
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: transparent !important;
}

/* 모바일 */
@media (max-width: 600px) {
    :root {
        --v2-nav-height: 66px;
    }

    .v2shop-bottom-nav {
        right: 0 !important;
        left: 0 !important;
        bottom: 0 !important;

        width: 100% !important;
        max-width: none !important;
        min-height: calc(66px + var(--v2-safe-bottom)) !important;
        height: calc(66px + var(--v2-safe-bottom)) !important;

        padding:
            5px
            4px
            calc(5px + var(--v2-safe-bottom)) !important;

        border-radius: 0 !important;
    }

    .v2shop-bottom-item {
        min-height: 56px !important;
        height: 56px !important;
        gap: 3px !important;
        padding: 3px 1px !important;
    }

    .v2shop-bottom-item > svg {
        width: 22px !important;
        height: 22px !important;
    }

    .v2shop-bottom-item > span {
        height: 11px !important;
        font-size: 9px !important;
        line-height: 11px !important;
    }
}

/* 태블릿 */
@media (min-width: 601px) and (max-width: 1023px) {
    :root {
        --v2-nav-height: 72px;
    }

    .v2shop-bottom-nav {
        right: 12px !important;
        left: 12px !important;
        bottom: 10px !important;

        width: calc(100% - 24px) !important;
        max-width: none !important;
        min-height: calc(72px + var(--v2-safe-bottom)) !important;
        height: calc(72px + var(--v2-safe-bottom)) !important;

        padding:
            6px
            12px
            calc(6px + var(--v2-safe-bottom)) !important;

        border: 1px solid rgba(0,0,0,.08) !important;
        border-radius: 20px !important;

        box-shadow: 0 -2px 18px rgba(0,0,0,.10) !important;
    }

    .v2shop-bottom-item {
        min-height: 58px !important;
        height: 58px !important;
        gap: 4px !important;
        padding: 4px 3px !important;
    }

    .v2shop-bottom-item > svg {
        width: 25px !important;
        height: 25px !important;
    }

    .v2shop-bottom-item > span {
        height: 13px !important;
        font-size: 11px !important;
        line-height: 13px !important;
    }

    .v2shop-bottom-item.active::before,
    .v2shop-point-bar {
        top: -7px !important;
        width: 34px !important;
        height: 3px !important;
    }

    .v2shop-point-dot {
        top: 4px !important;
        width: 6px !important;
        height: 6px !important;
    }
}

/* PC */
@media (min-width: 1024px) {
    :root {
        --v2-nav-height: 76px;
    }

    .v2shop-bottom-nav {
        right: 24px !important;
        left: 24px !important;
        bottom: 16px !important;

        width: calc(100% - 48px) !important;
        max-width: 1320px !important;
        min-height: 76px !important;
        height: 76px !important;

        padding: 7px 24px !important;

        border: 1px solid rgba(0,0,0,.08) !important;
        border-radius: 22px !important;

        box-shadow: 0 8px 28px rgba(0,0,0,.13) !important;
    }

    .v2shop-bottom-item {
        min-height: 60px !important;
        height: 60px !important;
        gap: 5px !important;
        padding: 5px 4px !important;
        border-radius: 14px !important;
    }

    .v2shop-bottom-item > svg {
        width: 27px !important;
        height: 27px !important;
    }

    .v2shop-bottom-item > span {
        height: 14px !important;
        font-size: 12px !important;
        line-height: 14px !important;
    }
}

/* PC hover */
@media (min-width: 1024px) and (hover: hover) and (pointer: fine) {
    .v2shop-bottom-item {
        transition:
            background-color .18s ease,
            color .18s ease,
            transform .18s ease !important;
    }

    .v2shop-bottom-item:hover {
        background: #f5f5f5 !important;
        color: #111 !important;
        transform: translateY(-2px) !important;
    }

    .v2shop-point-item:hover {
        color: #6366f1 !important;
    }
}

/* =========================================================
   V2 TABLET FINAL REPAIR
========================================================= */
@media (min-width:601px) and (max-width:1023px){

    .v2live-shell{
        width:calc(100% - 24px) !important;
        max-width:none !important;
        margin:12px auto !important;
        overflow:hidden !important;
    }

    .v2shop-head-stack{
        position:relative !important;
        z-index:1000 !important;
        width:100% !important;
    }

    .v2live-header{
        position:sticky !important;
        top:0 !important;
        z-index:1001 !important;
        width:100% !important;
        overflow:visible !important;
        background:#fff !important;
    }

    .v2shop-search-row{
        position:relative !important;
        z-index:1002 !important;
        display:grid !important;
        grid-template-columns:minmax(0,1fr) 48px 42px !important;
        align-items:center !important;
        gap:9px !important;
        width:100% !important;
        padding:9px 18px 12px !important;
        overflow:visible !important;
        background:#fff !important;
    }

    .v2shop-search-form{
        min-width:0 !important;
        width:100% !important;
        height:48px !important;
    }

    #v2ImageSearchOpen{
        position:relative !important;
        z-index:1010 !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        width:48px !important;
        min-width:48px !important;
        height:48px !important;
        min-height:48px !important;
        margin:0 !important;
        padding:0 !important;
        visibility:visible !important;
        opacity:1 !important;
        pointer-events:auto !important;
        touch-action:manipulation !important;
        cursor:pointer !important;
    }

    #v2ImageSearchOpen *{
        pointer-events:none !important;
    }

    .v2shop-head-menu{
        position:relative !important;
        z-index:1005 !important;
        width:42px !important;
        min-width:42px !important;
        height:48px !important;
        pointer-events:auto !important;
    }

    main{
        position:relative !important;
        z-index:1 !important;
        width:100% !important;
        overflow:hidden !important;
    }

    .v2live-products{
        display:grid !important;
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        grid-auto-flow:row !important;
        align-items:stretch !important;
        gap:14px !important;
        width:100% !important;
        padding:0 16px 30px !important;
    }

    .v2live-card{
        display:flex !important;
        flex-direction:column !important;
        width:100% !important;
        min-width:0 !important;
        height:100% !important;
        margin:0 !important;
        overflow:hidden !important;
    }

    .v2live-card-image{
        position:relative !important;
        display:block !important;
        width:100% !important;
        height:auto !important;
        aspect-ratio:1 / 1 !important;
        min-height:0 !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
        background:#f3f3f3 !important;
    }

    .v2live-card-image::before{
        content:none !important;
        display:none !important;
    }

    .v2live-card-image img{
        position:absolute !important;
        inset:0 !important;
        z-index:1 !important;
        display:block !important;
        width:100% !important;
        max-width:none !important;
        height:100% !important;
        max-height:none !important;
        margin:0 !important;
        padding:0 !important;
        object-fit:cover !important;
        object-position:center !important;
        visibility:visible !important;
        opacity:1 !important;
        filter:none !important;
        transform:none !important;
    }

    .v2live-card-info{
        display:flex !important;
        flex:1 1 auto !important;
        flex-direction:column !important;
        width:100% !important;
        min-height:128px !important;
    }

    .v2img-modal{
        position:fixed !important;
        inset:0 !important;
        z-index:20000 !important;
        pointer-events:none !important;
    }

    .v2img-modal.open{
        visibility:visible !important;
        opacity:1 !important;
        pointer-events:auto !important;
    }

    .v2img-modal.open .v2img-backdrop,
    .v2img-modal.open .v2img-sheet{
        pointer-events:auto !important;
    }
}
/* V2 TABLET FINAL REPAIR END */


/* =========================================================
   V2 HEADER NAV MODERN HOVER
   ========================================================= */

.v2-header-nav a,
.v2-head-nav a,
.v2-nav a{
    position:relative;
    transition:
        color .22s ease,
        transform .22s ease,
        opacity .22s ease;
}

@media (hover:hover){

    .v2-header-nav a:hover,
    .v2-head-nav a:hover,
    .v2-nav a:hover{
        color:#111;
        transform:translateY(-2px);
    }

    .v2-header-nav a::after,
    .v2-head-nav a::after,
    .v2-nav a::after{
        content:"";
        position:absolute;
        left:50%;
        bottom:-6px;
        width:0;
        height:2px;
        background:currentColor;
        border-radius:99px;
        transform:translateX(-50%);
        transition:width .22s ease;
    }

    .v2-header-nav a:hover::after,
    .v2-head-nav a:hover::after,
    .v2-nav a:hover::after,
    .v2-header-nav a.active::after,
    .v2-head-nav a.active::after,
    .v2-nav a.active::after{
        width:100%;
    }
}

@media (hover:none){

    .v2-header-nav a,
    .v2-head-nav a,
    .v2-nav a{
        transform:none!important;
    }

    .v2-header-nav a::after,
    .v2-head-nav a::after,
    .v2-nav a::after{
        display:none!important;
    }
}

/* =========================================================
   END HEADER NAV MODERN HOVER
   ========================================================= */

/* V2 LIVE HEADER TABS HOVER FINAL START */

.v2live-head-tabs{
    display:flex;
    align-items:center;
    gap:clamp(14px, 2vw, 30px);
}


.v2live-head-tabs > a{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 2px 10px;
    line-height:1;
    text-decoration:none;
}


@media (hover:hover) and (pointer:fine){

    .v2live-head-tabs > a:hover{
        transform:translateY(-4px);
    }

    
.v2live-head-tabs > a::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:2px;
    border-radius:999px;
    background:currentColor;
    transform:scaleX(0);
    transform-origin:center;
    transition:transform .22s ease;
}


    
.v2live-head-tabs > a:hover::after,
.v2live-head-tabs > a.active::after{
    transform:scaleX(1);
}


    .v2live-head-tabs > a.active::after{
        width:100%;
    }
}

@media (hover:none), (pointer:coarse){

    .v2live-head-tabs{
        overflow-x:auto;
        overflow-y:hidden;
        scrollbar-width:none;
        -webkit-overflow-scrolling:touch;
    }

    .v2live-head-tabs::-webkit-scrollbar{
        display:none;
    }

    
.v2live-head-tabs > a{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 2px 10px;
    line-height:1;
    text-decoration:none;
}


    
.v2live-head-tabs > a::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:2px;
    border-radius:999px;
    background:currentColor;
    transform:scaleX(0);
    transform-origin:center;
    transition:transform .22s ease;
}

}

/* V2 LIVE HEADER TABS HOVER FINAL END */

/* V2 SHOP CAMERA HOVER + ACTIVE UNDERLINE REMOVE START */

/* SHOP 활성 밑줄 제거 */


/* 카메라 버튼 hover */
.v2shop-image-search{
    display:inline-flex;
    transform:translateY(0);
    transition:
        transform .22s cubic-bezier(.2,.8,.2,1),
        box-shadow .22s ease;
    will-change:transform;
}

@media (hover:hover) and (pointer:fine){
    .v2shop-image-search:hover{
        transform:translateY(-4px) !important;
        box-shadow:0 10px 22px rgba(0,0,0,.16);
    }
}

.v2shop-image-search:active{
    transform:translateY(-1px) scale(.97) !important;
}

/* V2 SHOP CAMERA HOVER + ACTIVE UNDERLINE REMOVE END */

/* V2 SHOP HEADER BUTTON MOTION START */

/* 현재 선택된 메뉴에만 밑줄 */
@media (hover:hover) and (pointer:fine){
    .v2live-head-tabs > a.active::after{
        display:block !important;
        width:100% !important;
    }
}

/* 카메라 버튼 + 햄버거 메뉴 버튼 */
.v2shop-image-search,
.v2shop-head-menu{
    transform:translateY(0);
    transition:
        transform .22s cubic-bezier(.2,.8,.2,1),
        box-shadow .22s ease,
        background-color .22s ease;
    will-change:transform;
}

@media (hover:hover) and (pointer:fine){
    .v2shop-image-search:hover,
    .v2shop-head-menu:hover{
        transform:translateY(-4px) !important;
        box-shadow:0 9px 20px rgba(0,0,0,.14);
    }

    .v2shop-head-menu:hover svg{
        transform:scale(1.08);
    }
}

.v2shop-head-menu svg{
    transition:transform .22s cubic-bezier(.2,.8,.2,1);
}

.v2shop-image-search:active,
.v2shop-head-menu:active{
    transform:translateY(-1px) scale(.97) !important;
}

/* 터치 기기에서는 눌림 효과만 */
@media (hover:none), (pointer:coarse){
    .v2shop-image-search:active,
    .v2shop-head-menu:active{
        transform:scale(.96) !important;
    }
}

/* V2 SHOP HEADER BUTTON MOTION END */

/* V2 REACTIVE CATEGORY ACTIVE START */

.v2cat-reactive{
    position:relative;
    display:flex !important;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    transform:scale(1);
    transform-origin:center center;
    transition:
        transform .24s cubic-bezier(.2,.8,.2,1),
        opacity .2s ease,
        filter .2s ease;
    will-change:transform;
}

.v2cat-reactive img{
    transition:
        transform .24s cubic-bezier(.2,.8,.2,1),
        box-shadow .24s ease,
        outline-color .24s ease,
        filter .24s ease;
}

.v2cat-reactive.v2cat-active{
    z-index:3;
    transform:scale(1.10);
}

.v2cat-reactive.v2cat-active img{
    outline:3px solid #111;
    outline-offset:3px;
    box-shadow:
        0 8px 22px rgba(0,0,0,.20),
        0 0 0 5px rgba(255,255,255,.95);
    filter:saturate(1.08) contrast(1.04);
}

.v2cat-reactive.v2cat-active::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:-7px;
    width:6px;
    height:6px;
    border-radius:50%;
    background:#111;
    transform:translateX(-50%);
}

.v2cat-reactive.v2cat-active,
.v2cat-reactive.v2cat-active span,
.v2cat-reactive.v2cat-active strong,
.v2cat-reactive.v2cat-active p{
    font-weight:800 !important;
    color:#111 !important;
}

@media (hover:hover) and (pointer:fine){
    .v2cat-reactive:hover{
        z-index:2;
        transform:scale(1.06) translateY(-3px);
    }

    .v2cat-reactive.v2cat-active:hover{
        transform:scale(1.12) translateY(-3px);
    }
}

@media (max-width:1024px){
    .v2cat-reactive.v2cat-active{
        transform:scale(1.08);
    }

    .v2cat-reactive.v2cat-active img{
        outline-width:2px;
        outline-offset:2px;
        box-shadow:
            0 6px 16px rgba(0,0,0,.18),
            0 0 0 3px rgba(255,255,255,.95);
    }
}

@media (max-width:767px){
    .v2cat-reactive.v2cat-active{
        transform:scale(1.06);
    }

    .v2cat-reactive.v2cat-active::after{
        bottom:-5px;
        width:5px;
        height:5px;
    }
}

/* V2 REACTIVE CATEGORY ACTIVE END */

/* V2 BRAND INITIAL LIST START */

#v2BrandChips{
    display:block;
    width:100%;
    padding:0;
}

#v2BrandChips .v2brand-all-row{
    margin-bottom:12px;
}

#v2BrandChips .v2brand-all{
    width:100%;
    min-height:46px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 16px;
    border:1px solid #e5e5e5;
    border-radius:12px;
    background:#fff;
    color:#111;
    font-weight:700;
    cursor:pointer;
}

#v2BrandChips .v2brand-all small{
    color:#888;
    font-size:12px;
    font-weight:500;
}

#v2BrandChips .v2brand-all.active{
    border-color:#111;
    background:#111;
    color:#fff;
}

#v2BrandChips .v2brand-all.active small{
    color:rgba(255,255,255,.72);
}

#v2BrandChips .v2brand-initial-nav{
    position:sticky;
    top:0;
    z-index:5;
    display:flex;
    gap:5px;
    overflow-x:auto;
    padding:8px 0 10px;
    background:#fff;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
}

#v2BrandChips .v2brand-initial-nav::-webkit-scrollbar{
    display:none;
}

#v2BrandChips .v2brand-initial-nav button{
    flex:0 0 auto;
    width:34px;
    height:34px;
    border:1px solid #e5e5e5;
    border-radius:50%;
    background:#fff;
    color:#555;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
    transition:
        background-color .18s ease,
        color .18s ease,
        transform .18s ease;
}

@media (hover:hover) and (pointer:fine){
    #v2BrandChips .v2brand-initial-nav button:hover{
        background:#111;
        color:#fff;
        transform:translateY(-2px);
    }
}

#v2BrandChips .v2brand-group-list{
    max-height:410px;
    overflow-y:auto;
    overflow-x:hidden;
    padding-right:4px;
    scroll-behavior:smooth;
    scrollbar-width:thin;
}

#v2BrandChips .v2brand-group{
    scroll-margin-top:52px;
    padding:8px 0 14px;
    border-bottom:1px solid #ededed;
}

#v2BrandChips .v2brand-group:last-child{
    border-bottom:0;
}

#v2BrandChips .v2brand-group h4{
    position:sticky;
    top:0;
    z-index:2;
    margin:0;
    padding:8px 4px;
    background:#fff;
    color:#111;
    font-size:15px;
    font-weight:900;
}

#v2BrandChips .v2brand-items{
    display:block;
}

#v2BrandChips .v2brand-item{
    position:relative;
    width:100%;
    min-height:52px;
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto 22px;
    align-items:center;
    gap:10px;
    padding:0 6px;
    border:0;
    border-bottom:1px solid #f1f1f1;
    border-radius:0;
    background:#fff;
    color:#111;
    text-align:left;
    cursor:pointer;
}

#v2BrandChips .v2brand-item span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:14px;
    font-weight:600;
}

#v2BrandChips .v2brand-item small{
    color:#aaa;
    font-size:12px;
    font-weight:500;
}

#v2BrandChips .v2brand-item i{
    width:18px;
    height:18px;
    border:1px solid #d7d7d7;
    border-radius:50%;
    background:#fff;
}

#v2BrandChips .v2brand-item.active{
    background:#f7f7f7;
}

#v2BrandChips .v2brand-item.active span{
    font-weight:900;
}

#v2BrandChips .v2brand-item.active i{
    border:5px solid #111;
}

@media (hover:hover) and (pointer:fine){
    #v2BrandChips .v2brand-item:hover{
        background:#f7f7f7;
    }
}

@media (max-width:767px){
    #v2BrandChips .v2brand-group-list{
        max-height:calc(100dvh - 350px);
    }

    #v2BrandChips .v2brand-item{
        min-height:54px;
    }
}

/* V2 BRAND INITIAL LIST END */
