/**
 * 쇼핑몰 통합 스타일
 * index, order_list, reviews, login
 */

/* ========== 쇼핑몰 공통 (메인/상품리스트) ========== */
:root {
    --brand-primary: #22c55e;
    --brand-primary-700: #15803d;
    --shop-content-max-width: 800px;
}
* { box-sizing: border-box; }
body { margin: 0; padding-bottom: 80px; font-size: 1.05rem; line-height: 1.6; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", sans-serif; background: #f5f5f5; color: #333; }
/* 쇼핑몰 메인: 장바구니 비었을 때 하단 고정바 숨김 → 본문 하단 여백 축소 */
body.shop-index:not(.shop-cart-has-items) {
    padding-bottom: max(20px, env(safe-area-inset-bottom));
}
a { text-decoration: none; color: inherit; }

/* 바깥은 100%, 실제 본문은 중앙 정렬 + 최대 폭 제한 */
.shop-sticky-top,
.shop-guest-banner,
.home-sections,
.product-grid,
.shop-footer {
    width: 100%;
    max-width: var(--shop-content-max-width);
    margin-left: auto;
    margin-right: auto;
}

/* 최상단바 + 메뉴 한 묶음 상단 고정 */
.shop-sticky-top {
    position: sticky;
    top: 0;
    z-index: 101;
}
.shop-header {
    background: linear-gradient(180deg, var(--brand-primary-700), var(--brand-primary));
    color: #fff;
    padding: 8px 16px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.shop-header-top { display: flex; justify-content: space-between; align-items: center; }
.shop-logo { display: flex; align-items: center; gap: 8px; font-size: 1.4rem; font-weight: 700; color: inherit; text-decoration: none; }
.shop-logo:hover { color: inherit; opacity: 0.95; }
.shop-logo img { width: 56px; height: 56px; object-fit: contain; display: block; }
.shop-logo .logo-text {
    display: inline;
    text-shadow: 0 1px 3px rgba(0,0,0,0.4), 0 2px 6px rgba(0,0,0,0.3), 1px 1px 0 rgba(0,0,0,0.2);
    font-weight: 700;
}
.store-selector { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 2px; }
.store-selector .store-name { font-size: 1.1rem; font-weight: 600; }
.store-selector .hours { font-size: 0.95rem; opacity: 0.95; display: flex; align-items: center; gap: 4px; }
/* 헤더 우측 주문내역 아이콘 */
.shop-header-orders-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    color: #fff;
    background: rgba(255, 255, 255, 0.18);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
    text-decoration: none;
    transition: background 0.15s ease, transform 0.12s ease;
}
.shop-header-orders-link:hover {
    background: rgba(255, 255, 255, 0.32);
    color: #fff;
}
.shop-header-orders-link:active {
    transform: scale(0.96);
}
.shop-header-orders-link svg {
    width: 26px;
    height: 26px;
    flex-shrink: 0;
}

.shop-intro {
    background: #fff;
    padding: 16px;
    margin-bottom: 12px;
}
.shop-intro .intro-content { font-size: 1.05rem; line-height: 1.5; color: #374151; }

.shop-filter-wrap {
    width: 100%;
    margin-bottom: 12px;
    background: #fff;
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}
/* 메인 오픈채팅 공지: 메뉴(흰 탭) 바로 아래에 붙임 — .shop-filter-wrap 하단 마진 제거 */
body.shop-has-main-open-chat .shop-filter-wrap {
    margin-bottom: 0;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
}

/* 검색 페이지 실시간 목록 — 스크립트 내 Tailwind 미포함 시에도 레이아웃·화살표 크기 고정 */
/* 검색 페이지 — 최근 본 상품: 모바일(767px 이하)은 기존 큰 카드, PC(768px~)은 최대 320px */
.shop-search-page #shop-search-recent-products-scroll {
    align-items: stretch;
}
.shop-search-page #shop-search-recent-products-scroll .shop-search-recent-home-slot {
    flex: 0 0 auto;
    width: min(78vw, 360px);
    max-width: none;
}
.shop-search-page #shop-search-recent-products-scroll .shop-search-recent-home-slot .home-section-card {
    width: 100%;
    max-width: none;
}
@media (min-width: 480px) and (max-width: 767px) {
    .shop-search-page #shop-search-recent-products-scroll .shop-search-recent-home-slot {
        width: min(76vw, 380px);
    }
}
@media (min-width: 640px) and (max-width: 767px) {
    .shop-search-page #shop-search-recent-products-scroll .shop-search-recent-home-slot {
        width: min(72vw, 400px);
    }
}
@media (min-width: 768px) {
    .shop-search-page #shop-search-recent-products-scroll .shop-search-recent-home-slot {
        width: 78vw;
        max-width: 320px;
    }
}

/* 검색 최근 본 상품: 마우스 드래그 가로 스크롤 중(텍스트 선택·링크 오클릭 완화) */
.shop-search-page #shop-search-recent-products-scroll.shop-search-recent-dragging {
    cursor: grabbing;
    user-select: none;
}

.shop-search-page #shop-search-live-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
}
.shop-search-page #shop-search-live-list {
    margin: 0;
    padding: 0;
    list-style: none;
    width: 100%;
}
.shop-search-page #shop-search-live-list > li {
    margin: 0;
    padding: 0;
    list-style: none;
}
.shop-search-page #shop-search-live-list > li > a.shop-search-live-row {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 14px 16px;
    text-decoration: none;
    color: inherit;
}
.shop-search-page #shop-search-live-list > li > a.shop-search-live-row:hover {
    background: #f9fafb;
}
.shop-search-page #shop-search-live-list > li > a.shop-search-live-row:active {
    background: #f3f4f6;
}
.shop-search-page .shop-search-live-thumb {
    position: relative;
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    border-radius: 9999px;
    overflow: hidden;
    background: #e5e7eb;
}
.shop-search-page .shop-search-live-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.shop-search-page .shop-search-live-label {
    flex: 1 1 0;
    min-width: 0;
    text-align: left;
    font-size: 15px;
    line-height: 1.4;
    color: #111827;
    overflow-wrap: break-word;
    word-break: keep-all;
}
.shop-search-page .shop-search-live-chevron {
    width: 20px !important;
    height: 20px !important;
    max-width: 20px;
    max-height: 20px;
    flex-shrink: 0;
    display: block;
    color: #d1d5db;
}

/* 검색 제출 결과 — 가로형 리스트(썸네일 + 정보), 2열 그리드 대체 */
.shop-search-page .shop-search-result-outer {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    background: #fff;
    margin-top: 0;
    padding: 4px 0 20px;
    overflow-x: hidden;
}
.shop-search-page .shop-search-result-list {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0 12px;
    box-sizing: border-box;
}
.shop-search-page .shop-search-result-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 16px 0;
    text-decoration: none;
    color: inherit;
}
.shop-search-page .shop-search-result-row:active {
    background: #fafafa;
}
.shop-search-page .shop-search-result-thumb-wrap {
    flex-shrink: 0;
    width: 150px;
    height: 150px;
    position: relative;
}
.shop-search-page .shop-search-result-thumb-wrap .card-product-badge,
.shop-search-page .shop-search-live-thumb .card-product-badge {
    position: absolute;
    top: 14px;
    right: 10px;
    z-index: 5;
    max-width: calc(100% - 12px);
    padding: 3px 6px;
    border-radius: 5px;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
    pointer-events: none;
    word-break: keep-all;
    overflow-wrap: break-word;
    box-sizing: border-box;
}
.shop-search-page .shop-search-live-thumb .card-product-badge {
    top: 4px;
    right: 4px;
    font-size: 0.5rem;
    padding: 2px 4px;
    max-width: 78%;
}
.shop-search-page .shop-search-result-thumb {
    width: 100%;
    height: 100%;
    border-radius: 18px;
    overflow: hidden;
    background: #f3f4f6;
}
.shop-search-page .shop-search-result-thumb img {
    width: 100%;
    height: 100%;
    min-width: 100%;
    min-height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    /* 작은 박스에서 스케일 시 흐릿함 완화 */
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: translateZ(0);
    image-rendering: auto;
}
.shop-search-page .shop-search-result-thumb-ph {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    font-size: 13px;
    color: #9ca3af;
}
.shop-search-page .shop-search-result-body {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    text-align: left;
    padding-top: 4px;
}
.shop-search-page .shop-search-result-brand-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}
.shop-search-page .shop-search-result-brand-left {
    display: flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
    flex: 1 1 auto;
    font-size: 13px;
    color: #9ca3af;
    line-height: 1.25;
}
.shop-search-page .shop-search-result-badge--top {
    flex-shrink: 0;
}
.shop-search-page .shop-search-result-brand-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}
.shop-search-page .shop-search-result-verified {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #d1d5db;
    color: #fff;
    font-size: 9px;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.shop-search-page .shop-search-result-title {
    font-size: 16px;
    font-weight: 400;
    color: #111827;
    line-height: 1.32;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    word-break: keep-all;
    overflow-wrap: break-word;
}
.shop-search-page .shop-search-result-title .text-blue-600,
.shop-search-page .shop-search-result-title .font-semibold {
    color: #2563eb;
    font-weight: 400;
}
.shop-search-page .shop-search-result-price-row {
    margin-top: 0;
    line-height: 1.25;
}
.shop-search-page .shop-search-result-price-orig {
    font-size: 14px;
    color: #9ca3af;
    text-decoration: line-through;
    margin-right: 6px;
}
.shop-search-page .shop-search-result-price-disc {
    font-size: 15px;
    font-weight: 700;
    color: #dc2626;
    margin-right: 4px;
}
.shop-search-page .shop-search-result-price-main {
    font-size: 20px;
    font-weight: 800;
    color: #111827;
    font-variant-numeric: tabular-nums;
}
/* 픽업/수령 뱃지 (가격 아래) */
.shop-search-page .shop-search-result-meta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    max-width: 100%;
}
.shop-search-page .shop-search-result-pickup-inline {
    display: inline-block;
    flex: 0 1 auto;
    align-self: center;
    max-width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 6px 14px;
    border-radius: 9999px;
    border: none;
    box-shadow: none;
    background: #ffebee;
    color: #c2410c;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    word-break: keep-all;
    overflow-wrap: break-word;
}
/* 픽업일자 지정(YYYY-MM-DD 등) — 파스텔 블루 / 네이비 글자 */
.shop-search-page .shop-search-result-pickup-inline.shop-search-result-pickup-inline--dated {
    background: #e8ecf9;
    color: #1a2f5c;
}
.shop-search-page .shop-search-result-badge {
    flex-shrink: 0;
    font-size: 12px;
    font-weight: 500;
    padding: 4px 9px;
    border-radius: 4px;
    background: #f9fafb;
    border: 1px solid #eef0f3;
    color: #6b7280;
}

/* 검색결과 상단 분류 뱃지 — 분류별 파스텔 */
.shop-search-page .shop-search-result-badge.shop-search-result-badge--top {
    font-weight: 600;
    letter-spacing: -0.02em;
    border-radius: 8px;
    padding: 5px 11px;
    border-width: 1px;
    border-style: solid;
}
.shop-search-page .shop-search-result-badge--top.shop-search-result-badge--cat-gonggu {
    background: #fce7f3;
    color: #9d174d;
    border-color: #fbcfe8;
}
.shop-search-page .shop-search-result-badge--top.shop-search-result-badge--cat-gwail {
    background: #fff7ed;
    color: #c2410c;
    border-color: #fed7aa;
}
.shop-search-page .shop-search-result-badge--top.shop-search-result-badge--cat-yachae {
    background: #f7fee7;
    color: #3f6212;
    border-color: #d9f99d;
}
.shop-search-page .shop-search-result-badge--top.shop-search-result-badge--cat-milkit {
    background: #f5f3ff;
    color: #6d28d9;
    border-color: #ddd6fe;
}
.shop-search-page .shop-search-result-badge--top.shop-search-result-badge--cat-gansik {
    background: #eff6ff;
    color: #1d4ed8;
    border-color: #bfdbfe;
}
.shop-search-page .shop-search-result-badge--top.shop-search-result-badge--cat-sangha {
    background: #ecfdf5;
    color: #047857;
    border-color: #a7f3d0;
}
.shop-search-page .shop-search-result-badge--top.shop-search-result-badge--cat-gongsan {
    background: #fffbeb;
    color: #92400e;
    border-color: #fde68a;
}
.shop-search-page .shop-search-result-badge--top.shop-search-result-badge--cat-gita {
    background: #f1f5f9;
    color: #475569;
    border-color: #e2e8f0;
}
.shop-search-page .shop-search-result-badge--top.shop-search-result-badge--cat-special {
    background: #fff4e6;
    color: #c2410c;
    border-color: #fed7aa;
}

.shop-filter {
    padding: 3px 0 1px;
    overflow: hidden;
}
.cat-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: nowrap;
    justify-content: space-between; /* 예약공구 / 오늘수령 / 한정 초특가 3개를 균등 분할 */
    overflow-x: visible;
    overflow-y: hidden;
    padding: 4px 16px 6px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.cat-tabs::-webkit-scrollbar { display: none; }
.cat-tabs a {
    flex: 1 1 0;
    padding: 5px 18px;
    border-radius: 20px;
    font-size: 1.1rem;
    font-weight: 700;
    color: #1f2937;
    white-space: nowrap;
    text-decoration: none;
    letter-spacing: -0.02em;
    text-align: center;
}
.cat-tabs a.active { background: #22c55e; color: #fff; }
.cat-tabs a:not(.active):hover { background: #e5e7eb; }

/* 추석선물 시즌 메뉴 */
.cat-tabs a.shop-menu-chuseok {
    color: #b91c1c;
    font-weight: 800;
    position: relative;
}
.cat-tabs a.shop-menu-chuseok::before {
    content: '🎁';
    margin-right: 3px;
    font-size: 0.85em;
    display: inline-block;
    animation: chuseokBounce 2s ease-in-out infinite;
}
.cat-tabs a.shop-menu-chuseok.active {
    background: #22c55e;
    color: #fff;
}
.cat-tabs a.shop-menu-chuseok.active::before {
    animation: none;
}
@keyframes chuseokBounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-2px); }
}

.cat-tabs-sub { margin-top: 3px; padding-top: 8px; border-top: 1px solid #e5e7eb; }
.cat-tabs-sub a { font-size: 1rem; padding: 8px 14px; font-weight: 600; color: #374151; }
.cat-tabs-sub a.active { background: #10b981; color: #fff; }
.cat-tabs-sub a:not(.active):hover { background: #d1fae5; color: #047857; }

/* 메인 홈 3섹션 가로 스크롤 (scroll-snap, 카드 1.2~1.4개 노출) */
.home-sections { padding: 0 0 24px; }
.home-section { margin-bottom: 24px; }
.home-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px 8px;
}
.home-sections .home-section-title { margin: 0; font-size: 1.45rem; font-weight: 700; color: #1f2937; }
.home-section-pickup-badge {
    display: inline-block;
    margin-left: 0.5em;
    font-size: 0.75em;
    font-weight: 600;
    color: #374151;
    background: #f3f4f6;
    padding: 0.2em 0.5em;
    border-radius: 6px;
    vertical-align: middle;
}
.home-section-more {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--brand-primary);
    display: inline-block;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(34, 197, 94, 0.06);
    min-width: 72px; /* 터치 영역 가로폭 확보 */
    text-align: center;
}
.home-section-more:hover { text-decoration: underline; }
.home-section-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding: 0 0 8px;
    width: 100%;
    max-width: 100%;
}
/* 모바일: 스크롤바 숨김 */
.home-section-scroll::-webkit-scrollbar { display: none; }
/* PC: 스크롤 가능하도록 얇은 스크롤바 표시 */
@media (hover: hover) and (pointer: fine) {
    .home-section-scroll {
        scrollbar-width: thin;
        scrollbar-color: rgba(0,0,0,0.25) transparent;
    }
    .home-section-scroll::-webkit-scrollbar {
        display: block;
        height: 8px;
    }
    .home-section-scroll::-webkit-scrollbar-track {
        background: transparent;
    }
    .home-section-scroll::-webkit-scrollbar-thumb {
        background: rgba(0,0,0,0.25);
        border-radius: 4px;
    }
    .home-section-scroll::-webkit-scrollbar-thumb:hover {
        background: rgba(0,0,0,0.4);
    }
}
.home-section-inner {
    display: flex;
    gap: 12px;
    padding: 0 16px 0;
    width: max-content;
}
.home-section-card {
    flex: 0 0 auto;
    width: 78vw;
    max-width: 320px;
    scroll-snap-align: start;
    scroll-snap-stop: normal;
}
/* 모바일: 카드 2~2.5개 보이도록 + 상단 줄여서 첫 화면에 섹션 노출 */
@media (max-width: 767px) {
    .shop-header {
        min-height: 56px;
        padding: 6px 12px;
    }
    .shop-logo img { width: 44px; height: 44px; }
    .store-selector .store-name { font-size: 1rem; }
    .store-selector .hours { font-size: 0.85rem; }
    .shop-filter-wrap {
        margin-bottom: 8px;
    }
    .shop-filter { padding: 3px 0 1px; }
    .cat-tabs { padding: 4px 12px 8px; }
    .cat-tabs a { padding: 8px 14px; font-size: 1.05rem; font-weight: 700; }
    .shop-intro { padding: 10px 12px; margin-bottom: 8px; }
    .home-sections { padding: 0 0 16px; }
    .home-section { margin-bottom: 18px; }
    .home-section-header { padding: 8px 12px 10px; }
    .home-sections .home-section-title { font-size: 1.25rem; }
    .home-section-pickup-badge { font-size: 0.7em; padding: 0.15em 0.4em; letter-spacing: -0.05em; }
    .pickup-anytime-badge { letter-spacing: -0.05em; }
    .home-section-inner { gap: 10px; padding: 0 12px 0; }
    .home-section-card {
        width: 44vw;
        max-width: none;
    }
    /* 주말/오늘 마감 특가·실시간 인기 Top 10: 1개 + 다음 카드 살짝 노출 */
    .home-section-today .home-section-card,
    .home-section-weight-top .home-section-card {
        width: 82vw;
    }
    .home-section-card .card-body { padding: 10px; }
    .home-section-card .card-title {
        font-size: 0.95rem;
        margin-bottom: 6px;
        -webkit-line-clamp: 2;
    }
    .home-section-card .card-dates { margin-bottom: 6px; }
    .home-section-card .card-dates span {
        font-size: 0.8rem;
        padding: 4px 8px;
    }
    .home-section-card .card-footer .price-row .price {
        font-size: 1.15rem;
        font-weight: 800;
        font-variant-numeric: tabular-nums;
        font-family: "Inter", "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
        color: #111827;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        text-shadow: 0 0 0.5px #111827, 0 0 1px rgba(0,0,0,0.15);
    }
    .home-section-card .qty-control {
        padding: 0 !important;
        gap: 0 !important;
    }
    .home-section-card .qty-control .qty-minus,
    .home-section-card .qty-control .qty-plus {
        width: 32px;
        min-width: 32px;
        height: 32px;
        font-size: 1.05rem;
    }
    .home-section-card .qty-num {
        width: 32px;
        min-width: 32px;
        height: 32px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 0.95rem;
    }
    .home-section-card.card-cat-gonggu .card-title,
    .home-section-card.card-cat-yachae .card-title,
    .home-section-card.card-cat-gwail .card-title,
    .home-section-card.card-cat-milkit .card-title,
    .home-section-card.card-cat-gansik .card-title,
    .home-section-card.card-cat-gita .card-title,
    .home-section-card.card-cat-chuseok .card-title { font-size: 0.9rem; }
    .home-section-card.card-cat-gonggu .card-dates span,
    .home-section-card.card-cat-yachae .card-dates span,
    .home-section-card.card-cat-gwail .card-dates span,
    .home-section-card.card-cat-milkit .card-dates span,
    .home-section-card.card-cat-gansik .card-dates span,
    .home-section-card.card-cat-gita .card-dates span,
    .home-section-card.card-cat-chuseok .card-dates span { font-size: 0.75rem; padding: 4px 8px; }
    .home-section-card.card-cat-special {
        border-width: 2px;
        border-top-width: 4px;
        box-shadow: 0 3px 10px rgba(234, 88, 12, 0.22);
    }
    .home-section-card.card-cat-special .card-title { font-size: 0.95rem; }
}
.home-section-empty {
    margin: 0 16px;
    padding: 24px 16px;
    text-align: center;
    background: #f9fafb;
    border-radius: 12px;
    color: #6b7280;
    font-size: 1rem;
}

/* 우리집이 김제 맛집·채팅방 전용특가: 한 줄에 1개 카드(세로 리스트) */
.home-section-gimje .home-section-scroll,
.home-section-chat-deal .home-section-scroll {
    overflow-x: visible;
    overflow-y: visible;
    scroll-snap-type: none;
    padding: 0 16px 8px;
}
.home-section-gimje .home-section-inner,
.home-section-chat-deal .home-section-inner {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 14px;
    padding: 0;
}
.home-section-gimje .home-section-card,
.home-section-chat-deal .home-section-card {
    width: 100%;
    max-width: none;
}
.home-section-gimje .home-section-card:not(.card-cat-special) .card-body,
.home-section-chat-deal .home-section-card:not(.card-cat-special) .card-body {
    display: flex;
    flex-direction: column;
}
.home-section-gimje .home-section-card:not(.card-cat-special) .card-body .card-img-wrap,
.home-section-chat-deal .home-section-card:not(.card-cat-special) .card-body .card-img-wrap {
    order: 1;
}
.home-section-gimje .home-section-card:not(.card-cat-special) .card-body .card-title,
.home-section-chat-deal .home-section-card:not(.card-cat-special) .card-body .card-title {
    order: 2;
    margin-top: 10px;
    line-height: 1.4;
}
.home-section-gimje .home-section-card .card-gimje-badge-row,
.home-section-chat-deal .home-section-card .card-gimje-badge-row {
    order: 3;
    margin-top: 4px;
    margin-bottom: 2px;
    width: 100%;
    display: flex;
    justify-content: center;
}
.home-section-gimje .home-section-card .pickup-anytime-badge-gimje,
.home-section-chat-deal .home-section-card .pickup-anytime-badge-gimje {
    display: inline-flex;
}
.home-section-gimje .home-section-card .card-footer,
.home-section-chat-deal .home-section-card .card-footer {
    justify-content: flex-start;
}
.home-section-gimje .home-section-card .card-footer .price-row,
.home-section-chat-deal .home-section-card .card-footer .price-row {
    width: 100%;
    justify-content: space-between;
}
.home-section-gimje .home-section-card .card-footer .price-row > .price,
.home-section-chat-deal .home-section-card .card-footer .price-row > .price {
    margin-right: 8px;
}
.home-section-gimje .home-section-card .card-footer .price-row > .qty-control,
.home-section-chat-deal .home-section-card .card-footer .price-row > .qty-control {
    margin-left: auto;
}
.home-section-gimje .home-section-card:not(.card-cat-special) .card-body .card-dates,
.home-section-chat-deal .home-section-card:not(.card-cat-special) .card-body .card-dates {
    order: 4;
}
.home-section-gimje .home-section-card:not(.card-cat-special) .card-body .card-footer,
.home-section-chat-deal .home-section-card:not(.card-cat-special) .card-body .card-footer {
    order: 5;
}
@media (max-width: 767px) {
    .home-section-gimje .home-section-scroll,
    .home-section-chat-deal .home-section-scroll {
        padding: 0 12px 8px;
    }
    .home-section-gimje .home-section-inner,
    .home-section-chat-deal .home-section-inner {
        gap: 12px;
    }
}
/* 우리집이 김제 맛집·채팅방 전용특가: 태블릿·PC는 2열 */
@media (min-width: 768px) {
    .home-section-gimje .home-section-inner,
    .home-section-chat-deal .home-section-inner {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
        align-items: stretch;
    }
    .home-section-gimje .home-section-card,
    .home-section-chat-deal .home-section-card {
        width: 100%;
        max-width: none;
    }
}

/* 주말/오늘 마감 특가·실시간 인기 Top 10: 카드 내부 순서 = 이미지 → 상품명 → 픽업배지(있을 때) → 픽업일 등 → 금액·수량 */
.home-section-today .home-section-card:not(.card-cat-special) .card-body,
.home-section-weight-top .home-section-card:not(.card-cat-special) .card-body {
    display: flex;
    flex-direction: column;
}
.home-section-today .home-section-card:not(.card-cat-special) .card-body .card-img-wrap,
.home-section-weight-top .home-section-card:not(.card-cat-special) .card-body .card-img-wrap {
    order: 1;
}
.home-section-today .home-section-card:not(.card-cat-special) .card-body .card-title,
.home-section-weight-top .home-section-card:not(.card-cat-special) .card-body .card-title {
    order: 2;
    margin-top: 10px;
    font-size: 1.05rem;
    line-height: 1.4;
}
.home-section-today .home-section-card .card-gimje-badge-row,
.home-section-weight-top .home-section-card .card-gimje-badge-row {
    order: 3;
    margin-top: 4px;
    margin-bottom: 2px;
    width: 100%;
    display: flex;
    justify-content: center;
}
.home-section-today .home-section-card .pickup-anytime-badge-gimje,
.home-section-weight-top .home-section-card .pickup-anytime-badge-gimje {
    display: inline-flex;
}
.home-section-today .home-section-card:not(.card-cat-special) .card-body .card-dates,
.home-section-weight-top .home-section-card:not(.card-cat-special) .card-body .card-dates {
    order: 4;
}
.home-section-today .home-section-card:not(.card-cat-special) .card-body .card-footer,
.home-section-weight-top .home-section-card:not(.card-cat-special) .card-body .card-footer {
    order: 5;
}
.home-section-today .home-section-card .card-footer,
.home-section-weight-top .home-section-card .card-footer {
    justify-content: flex-start;
}
.home-section-today .home-section-card .card-footer .price-row,
.home-section-weight-top .home-section-card .card-footer .price-row {
    width: 100%;
    justify-content: space-between;
}
.home-section-today .home-section-card .card-footer .price-row > .today-pickup-inline,
.home-section-weight-top .home-section-card .card-footer .price-row > .today-pickup-inline {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    background: #e0e7ff;
    color: #3730a3;
    font-size: 0.85rem;
    font-weight: 700;
    white-space: nowrap;
    margin-right: 8px;
}
.home-section-today .home-section-card .card-footer .price-row > .price,
.home-section-weight-top .home-section-card .card-footer .price-row > .price {
    margin-right: 8px;
}
.home-section-today .home-section-card .card-footer .price-row > .qty-control,
.home-section-weight-top .home-section-card .card-footer .price-row > .qty-control {
    margin-left: auto;
}

/* 지금 바로 가져가요: 분류 소타이틀 메뉴바 (상단 주메뉴와 동일한 풀폭 흰 배경) */
.home-pickup-subnav {
    position: sticky;
    top: var(--shop-sticky-top-height, 112px);
    z-index: 90;
    width: 100vw;
    max-width: 100vw;
    margin: 0 0 14px;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 0;
    background: #fff;
    border-bottom: 1px solid #e5e7eb;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}
.home-pickup-subnav-track {
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    max-width: var(--shop-content-max-width);
    margin: 0 auto;
    padding: 8px 16px 10px;
}
.home-pickup-subnav-inner {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 2px 0 4px;
}
.home-pickup-subnav-inner::-webkit-scrollbar { display: none; }
.home-pickup-subnav-link {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 16px 9px 12px;
    border-radius: 999px;
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #4b5563;
    background: #f8fafc;
    border: 1.5px solid #e8edf2;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    -webkit-tap-highlight-color: transparent;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.home-pickup-subnav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    font-size: 1rem;
    line-height: 1;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.85);
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.04);
    flex-shrink: 0;
}
.home-pickup-subnav-text {
    line-height: 1.2;
}
.home-pickup-subnav-link.active,
.home-pickup-subnav-link:active {
    color: #fff;
    transform: translateY(-1px);
    border-color: transparent;
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.14);
}
.home-pickup-subnav-link.active .home-pickup-subnav-icon,
.home-pickup-subnav-link:active .home-pickup-subnav-icon {
    background: rgba(255, 255, 255, 0.22);
    box-shadow: none;
}
/* 분류별 on/탭(active) 포인트 컬러 */
.home-pickup-subnav-link--밀키트.active,
.home-pickup-subnav-link--밀키트:active { background: linear-gradient(135deg, #8b5cf6 0%, #6d28d9 100%); box-shadow: 0 6px 18px rgba(109, 40, 217, 0.32); }
.home-pickup-subnav-link--간식류.active,
.home-pickup-subnav-link--간식류:active { background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%); box-shadow: 0 6px 18px rgba(29, 78, 216, 0.3); }
.home-pickup-subnav-link--gongsan_food_life.active,
.home-pickup-subnav-link--gongsan_food_life:active { background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%); box-shadow: 0 6px 18px rgba(217, 119, 6, 0.3); }
.home-pickup-subnav-link--gongsan_egg_dairy.active,
.home-pickup-subnav-link--gongsan_egg_dairy:active { background: linear-gradient(135deg, #fb923c 0%, #ea580c 100%); box-shadow: 0 6px 18px rgba(234, 88, 12, 0.28); }
.home-pickup-subnav-link--gongsan_icecream.active,
.home-pickup-subnav-link--gongsan_icecream:active { background: linear-gradient(135deg, #f472b6 0%, #db2777 100%); box-shadow: 0 6px 18px rgba(219, 39, 119, 0.28); }
.home-pickup-subnav-link--과일.active,
.home-pickup-subnav-link--과일:active { background: linear-gradient(135deg, #f97316 0%, #ea580c 100%); box-shadow: 0 6px 18px rgba(234, 88, 12, 0.28); }
.home-pickup-subnav-link--야채.active,
.home-pickup-subnav-link--야채:active { background: linear-gradient(135deg, #22c55e 0%, #15803d 100%); box-shadow: 0 6px 18px rgba(21, 128, 61, 0.28); }
@media (hover: hover) and (pointer: fine) {
    .home-pickup-subnav-link:hover {
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
    }
    .home-pickup-subnav-link--밀키트:hover { background: #f5f3ff; border-color: #ddd6fe; color: #5b21b6; }
    .home-pickup-subnav-link--간식류:hover { background: #eff6ff; border-color: #bfdbfe; color: #1d4ed8; }
    .home-pickup-subnav-link--gongsan_food_life:hover { background: #fffbeb; border-color: #fde68a; color: #b45309; }
    .home-pickup-subnav-link--gongsan_egg_dairy:hover { background: #fff7ed; border-color: #fed7aa; color: #c2410c; }
    .home-pickup-subnav-link--gongsan_icecream:hover { background: #fdf2f8; border-color: #fbcfe8; color: #be185d; }
    .home-pickup-subnav-link--과일:hover { background: #fff7ed; border-color: #fdba74; color: #c2410c; }
    .home-pickup-subnav-link--야채:hover { background: #ecfdf5; border-color: #a7f3d0; color: #047857; }
    .home-pickup-subnav-link.active:hover,
    .home-pickup-subnav-link--밀키트.active:hover,
    .home-pickup-subnav-link--간식류.active:hover,
    .home-pickup-subnav-link--gongsan_food_life.active:hover,
    .home-pickup-subnav-link--gongsan_egg_dairy.active:hover,
    .home-pickup-subnav-link--gongsan_icecream.active:hover,
    .home-pickup-subnav-link--과일.active:hover,
    .home-pickup-subnav-link--야채.active:hover {
        color: #fff;
    }
}
.home-pickup-row-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 8px;
    padding: 0 16px;
}
.home-pickup-row-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: #374151;
}
.home-pickup-row-more {
    flex-shrink: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--brand-primary);
    text-decoration: none;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(34, 197, 94, 0.06);
    min-width: 72px;
    text-align: center;
}
.home-pickup-row-more:hover {
    text-decoration: underline;
}
.home-section-pickup-4rows .home-pickup-row {
    scroll-margin-top: calc(var(--shop-sticky-top-height, 112px) + var(--shop-pickup-subnav-height, 52px) + 8px);
    margin-bottom: 20px;
}
@media (max-width: 767px) {
    .home-pickup-subnav { margin-bottom: 12px; }
    .home-pickup-subnav-track { padding: 8px 12px 10px; }
    .home-pickup-subnav-inner { gap: 8px; }
    .home-pickup-subnav-link { font-size: 0.86rem; padding: 8px 13px 8px 10px; gap: 6px; }
    .home-pickup-subnav-icon { width: 1.5rem; height: 1.5rem; font-size: 0.92rem; }
    .home-pickup-row-head { padding: 0 12px; }
    .home-pickup-row-title { font-size: 1rem; }
    .home-pickup-row-more { font-size: 0.9rem; padding: 5px 12px; min-width: 64px; }
}
.home-section-pickup-4rows .home-pickup-row:last-child {
    margin-bottom: 0;
}
/* 지금 바로 가져가요·상하목장 특가: 검증템 모음과 동일 가로 스크롤, 모바일 카드 폭 1장+살짝 노출 */
@media (max-width: 767px) {
    .home-section-pickup-4rows .home-pickup-row { margin-bottom: 16px; }
    .home-section-pickup-4rows .home-pickup-row .home-section-card,
    .home-section-sangha .home-section-card {
        width: 82vw;
        max-width: none;
    }
}
/* 지금 바로 가져가요·상하목장: 카드 안 순서 = 이미지 → 상품명 → 픽업일, 하단 가격(좌)·수량(우) */
.home-section-pickup-4rows .home-section-card:not(.card-cat-special) .card-body,
.home-section-sangha .home-section-card:not(.card-cat-special) .card-body {
    display: flex;
    flex-direction: column;
}
.home-section-pickup-4rows .home-section-card:not(.card-cat-special) .card-body .card-img-wrap,
.home-section-sangha .home-section-card:not(.card-cat-special) .card-body .card-img-wrap {
    order: 1;
}
.home-section-pickup-4rows .home-section-card:not(.card-cat-special) .card-body .card-title,
.home-section-sangha .home-section-card:not(.card-cat-special) .card-body .card-title {
    order: 2;
    margin-top: 10px;
}
.home-section-pickup-4rows .home-section-card:not(.card-cat-special) .card-body .card-gimje-badge-row,
.home-section-sangha .home-section-card:not(.card-cat-special) .card-body .card-gimje-badge-row {
    order: 3;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 6px;
    margin-bottom: 4px;
}
.home-section-pickup-4rows .home-section-card:not(.card-cat-special) .card-body .card-dates,
.home-section-sangha .home-section-card:not(.card-cat-special) .card-body .card-dates {
    order: 4;
}
.home-section-pickup-4rows .home-section-card:not(.card-cat-special) .card-body .card-footer,
.home-section-sangha .home-section-card:not(.card-cat-special) .card-body .card-footer {
    order: 5;
}
.home-section-pickup-4rows .home-section-card .card-footer,
.home-section-sangha .home-section-card .card-footer {
    justify-content: flex-start;
}
.home-section-pickup-4rows .home-section-card .card-footer .price-row,
.home-section-sangha .home-section-card .card-footer .price-row {
    width: 100%;
    justify-content: space-between;
    align-items: center;
}
.home-section-pickup-4rows .home-section-card .card-footer .price-row > .price,
.home-section-sangha .home-section-card .card-footer .price-row > .price {
    margin-right: 8px;
}
.home-section-pickup-4rows .home-section-card .card-footer .price-row > .qty-control,
.home-section-sangha .home-section-card .card-footer .price-row > .qty-control {
    margin-left: auto;
}
.home-section-empty-inline {
    padding: 16px 12px;
    color: #9ca3af;
    font-size: 0.9rem;
    white-space: nowrap;
}

/* 메인 공동구매 카드: 상품명·픽업일 폰트 조금 축소 */
.home-section-card.card-cat-gonggu .card-title,
.home-section-card.card-cat-yachae .card-title,
.home-section-card.card-cat-gwail .card-title,
.home-section-card.card-cat-milkit .card-title,
.home-section-card.card-cat-gansik .card-title,
.home-section-card.card-cat-gita .card-title,
.home-section-card.card-cat-chuseok .card-title {
    font-size: 1.05rem;
}
.home-section-card.card-cat-gonggu .card-dates span,
.home-section-card.card-cat-yachae .card-dates span,
.home-section-card.card-cat-gwail .card-dates span,
.home-section-card.card-cat-milkit .card-dates span,
.home-section-card.card-cat-gansik .card-dates span,
.home-section-card.card-cat-gita .card-dates span,
.home-section-card.card-cat-chuseok .card-dates span {
    font-size: 0.85rem;
    padding: 6px 10px;
}

/* 초특가 섹션: 모바일 1열, 태블릿·PC 2열 고정 */
.home-section-special .home-section-special-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 0 16px;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}
@media (min-width: 768px) {
    .home-section-special .home-section-special-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }
}
.home-section-special .home-section-special-grid .home-section-card {
    width: 100%;
    max-width: none;
    min-width: 0;
}
/* 다파농 PICK 섹션: 일반 상품카드 구성 (이미지 → 상품명 → 픽업배지 → 가격·수량) */
.home-section-special .home-section-special-grid .home-section-card .card-body {
    display: flex;
    flex-direction: column;
    padding: 14px;
}
.home-section-special .home-section-special-grid .home-section-card .card-body .card-img-wrap {
    order: 1;
}
.home-section-special .home-section-special-grid .home-section-card .card-body .card-title {
    order: 2;
    margin-top: 10px;
    font-size: 1.25rem;
    line-height: 1.4;
    -webkit-line-clamp: 2;
    margin-bottom: 0;
}
.home-section-special .home-section-special-grid .home-section-card .card-gimje-badge-row,
.home-section-special .home-section-special-grid .home-section-card .card-dates {
    order: 3;
    margin-top: 4px;
    margin-bottom: 2px;
    width: 100%;
    display: flex;
    justify-content: center;
}
.home-section-special .home-section-special-grid .home-section-card .pickup-anytime-badge-gimje {
    display: inline-flex;
}
.home-section-special .home-section-special-grid .home-section-card .card-footer {
    order: 4;
    justify-content: flex-start;
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}
.home-section-special .home-section-special-grid .home-section-card .card-footer .price-row {
    width: 100%;
    justify-content: space-between;
    flex-direction: row;
    align-items: center;
    gap: 8px;
}
.home-section-special .home-section-special-grid .home-section-card .card-footer .price-row > .price {
    margin-right: 8px;
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: none;
    width: auto;
    letter-spacing: normal;
    text-align: left;
}
.home-section-special .home-section-special-grid .home-section-card .card-footer .price-row > .qty-control {
    margin-left: auto;
}

/* 초특가 카드: 메인에서 더 눈에 띄게 */
.home-section-card.card-cat-special {
    border: 2px solid #ea580c;
    border-top-width: 5px;
    box-shadow: 0 4px 14px rgba(234, 88, 12, 0.25);
    background: linear-gradient(to bottom, #fffefb 0%, #fff 100%);
}
.home-section-card.card-cat-special .card-title {
    font-size: 1.05rem;
    font-weight: 800;
    color: #c2410c;
}

/* 메인 홈: 모든 상품카드 상품명 글자 크기 통일 (섹션별 1.05rem 등보다 우선) */
.home-sections .home-section-card:not(.card-cat-special) .card-body .card-title {
    font-size: 1.25rem;
}
.home-section-card.card-cat-special .card-dates span {
    font-size: 0.85rem;
    padding: 6px 10px;
}

/* 1차 Tailwind 정리:
   product-grid 열/간격/패딩, product-card 기본 박스 스타일은
   shop/*.php의 Tailwind 유틸 클래스로 관리한다. */
.product-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
}
/* 분류별 상단 띠색: tailwind-shop.input.css @layer components (tailwind-shop.css가 shop.css 이후 로드) */
.product-card .card-body { padding: 14px; }

/* 다파농 PICK 탭: 메인 홈 인기상품 카드와 동일 구성 (이미지 → 상품명 → 픽업배지 → 가격·수량) */
.product-grid--pick .product-card .card-body {
    display: flex;
    flex-direction: column;
}
.product-grid--pick .product-card .card-body .card-img-wrap {
    order: 1;
}
.product-grid--pick .product-card .card-body .card-title {
    order: 2;
    margin-top: 10px;
    font-size: 1.25rem;
    line-height: 1.4;
}
.product-grid--pick .product-card .card-gimje-badge-row,
.product-grid--pick .product-card .card-dates {
    order: 3;
    margin-top: 4px;
    margin-bottom: 2px;
    width: 100%;
    display: flex;
    justify-content: center;
}
.product-grid--pick .product-card .pickup-anytime-badge-gimje {
    display: inline-flex;
}
.product-grid--pick .product-card .card-footer {
    order: 4;
    justify-content: flex-start;
}
.product-grid--pick .product-card .card-footer .price-row {
    width: 100%;
    justify-content: space-between;
}
.product-grid--pick .product-card .card-footer .price-row > .price {
    margin-right: 8px;
}
.product-grid--pick .product-card .card-footer .price-row > .qty-control {
    margin-left: auto;
}

/* 하단 탭(product-grid)에서도 초특가는 일반 상품과 같은 그리드 규칙 적용 (열 수는 화면 폭에 따라 자동) */
.product-card .card-body.card-body-special-only {
    padding: 10px 0 0;
}
.product-card .card-body.card-body-special-only .card-img-special-only {
    display: block;
    width: 100%;
    aspect-ratio: 5 / 2;
    object-fit: cover;
    border-radius: 0;
}

/* 초특가 대표이미지: 태블릿/PC에서는 원본 비율에 가깝게 보이도록 조정 */
@media (min-width: 768px) {
    .home-section-special .home-section-special-grid .home-section-card .card-body.card-body-special-only .card-img-special-only,
    .product-card .card-body.card-body-special-only .card-img-special-only {
        aspect-ratio: auto;
        height: auto;
        max-height: 320px;
        object-fit: contain;
    }
}
.product-card .card-body.card-body-special-only .card-footer {
    padding: 10px 14px 14px;
}
/* product-card 간격/폰트/버튼 계열은 tailwind-shop.input.css(@apply)로 이관 */
.detail-dates .date-cat-yachae { background: rgba(132, 204, 22, 0.2); color: #4d7c0f; }
.detail-dates .date-cat-gwail { background: rgba(245, 158, 11, 0.2); color: #b45309; }
.detail-dates .date-cat-milkit { background: rgba(139, 92, 246, 0.2); color: #6d28d9; }
.detail-dates .date-cat-gansik { background: rgba(37, 99, 235, 0.2); color: #1d4ed8; }
.detail-dates .date-cat-gongsan { background: rgba(168, 85, 7, 0.2); color: #92400e; }
.detail-dates .date-cat-gita { background: rgba(148, 163, 184, 0.2); color: #475569; }
.detail-dates .date-cat-special { background: rgba(234, 88, 12, 0.2); color: #c2410c; }
.product-card .card-img {
    width: 100%;
    cursor: pointer;
    border-radius: 8px;
    aspect-ratio: 1;
    object-fit: cover;
    background: #f9fafb;
}
.product-card .card-img-wrap {
    position: static;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}
.product-card .card-img-inner {
    position: relative;
    display: block;
    width: 100%;
}
/* 관리자 지정 상품 배지: 이미지 영역 우측 상단 오버레이 */
.product-card .card-body.card-body-special-only .card-img-wrap {
    position: relative;
    width: 100%;
}
.product-card .card-img-inner .card-product-badge,
.product-card .card-body.card-body-special-only .card-img-wrap > .card-product-badge {
    position: absolute;
    top: 15px;
    right: 10px;
    z-index: 5;
    max-width: calc(100% - 16px);
    padding: 4px 8px;
    border-radius: 6px;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.25;
    text-align: center;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
    pointer-events: none;
    word-break: keep-all;
    overflow-wrap: break-word;
    box-sizing: border-box;
}
/* 실시간 인기 Top 10: 순위 배지 — 해바라기/햇님 느낌 물결(펄) 실루엣 (clip-path) */
.product-card .card-img-inner .card-rank-badge {
    --rank-sun-shape: polygon(
        50% 2%,
        57.02% 14.69%,
        68.37% 5.65%,
        70% 20.07%,
        83.94% 16.06%,
        79.93% 30%,
        94.35% 31.63%,
        85.31% 42.98%,
        98% 50%,
        85.31% 57.02%,
        94.35% 68.37%,
        79.93% 70%,
        83.94% 83.94%,
        70% 79.93%,
        68.37% 94.35%,
        57.02% 85.31%,
        50% 98%,
        42.98% 85.31%,
        31.63% 94.35%,
        30% 79.93%,
        16.06% 83.94%,
        20.07% 70%,
        5.65% 68.37%,
        14.69% 57.02%,
        2% 50%,
        14.69% 42.98%,
        5.65% 31.63%,
        20.07% 30%,
        16.06% 16.06%,
        30% 20.07%,
        31.63% 5.65%,
        42.98% 14.69%
    );
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 4;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 3.1rem;
    min-height: 3.1rem;
    padding: 0.35rem 0.5rem 0.4rem;
    border-radius: 0;
    -webkit-clip-path: var(--rank-sun-shape);
    clip-path: var(--rank-sun-shape);
    font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    line-height: 1;
    pointer-events: none;
    overflow: hidden;
    isolation: isolate;
    box-sizing: border-box;
}
/* 광택 하이라이트 */
.product-card .card-img-inner .card-rank-badge::before {
    content: '';
    position: absolute;
    top: -40%;
    left: -20%;
    width: 55%;
    height: 180%;
    background: linear-gradient(105deg, transparent 0%, rgba(255, 255, 255, 0.08) 40%, rgba(255, 255, 255, 0.55) 50%, rgba(255, 255, 255, 0.08) 60%, transparent 100%);
    transform: rotate(28deg);
    pointer-events: none;
    z-index: 1;
}
.product-card .card-img-inner .card-rank-badge__kicker {
    position: relative;
    z-index: 2;
    font-size: 0.58rem;
    font-weight: 900;
    letter-spacing: 0.2em;
    text-indent: 0.2em;
    line-height: 1;
    margin-bottom: 3px;
    opacity: 0.92;
}
.product-card .card-img-inner .card-rank-badge__num {
    position: relative;
    z-index: 2;
    font-size: 1.55rem;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.03em;
    line-height: 0.95;
}
/* 은메달: 숫자만 → 살짝 더 크게 */
.product-card .card-img-inner .card-rank-badge--silver {
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
}
.product-card .card-img-inner .card-rank-badge--silver .card-rank-badge__num {
    font-size: 1.7rem;
}
.product-card .card-img-inner .card-rank-badge--gold {
    /* 1~3위: TOP+숫자 여유 — 배경(펄)만 은메달보다 크게 */
    min-width: 3.65rem;
    min-height: 3.65rem;
    padding: 0.48rem 0.58rem 0.52rem;
    background: linear-gradient(168deg, #fffef0 0%, #fde047 18%, #eab308 42%, #ca8a04 68%, #854d0e 100%);
    color: #3f2208;
    border: 2px solid rgba(254, 243, 199, 0.95);
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.45);
    box-shadow:
        inset 0 2px 8px rgba(255, 255, 255, 0.65),
        inset 0 -3px 10px rgba(120, 53, 15, 0.18);
    filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.95))
        drop-shadow(0 2px 0 rgba(146, 64, 14, 0.45))
        drop-shadow(0 6px 14px rgba(180, 83, 9, 0.38))
        drop-shadow(0 10px 22px rgba(0, 0, 0, 0.2));
}
.product-card .card-img-inner .card-rank-badge--gold .card-rank-badge__kicker {
    color: #713f12;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
    margin-bottom: 4px;
}
.product-card .card-img-inner .card-rank-badge--gold .card-rank-badge__num {
    color: #422006;
    text-shadow: 0 2px 0 rgba(255, 237, 200, 0.9), 0 0 12px rgba(253, 224, 71, 0.35);
}
.product-card .card-img-inner .card-rank-badge--silver {
    background: linear-gradient(168deg, #ffffff 0%, #e2e8f0 32%, #94a3b8 58%, #475569 100%);
    color: #0f172a;
    border: 2px solid rgba(241, 245, 249, 0.98);
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.75);
    box-shadow:
        inset 0 2px 8px rgba(255, 255, 255, 0.85),
        inset 0 -3px 10px rgba(30, 41, 59, 0.12);
    filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.9))
        drop-shadow(0 2px 0 rgba(51, 65, 85, 0.35))
        drop-shadow(0 6px 12px rgba(30, 41, 59, 0.28))
        drop-shadow(0 10px 20px rgba(0, 0, 0, 0.18));
}
.product-card .card-img-inner .card-rank-badge--silver .card-rank-badge__num {
    color: #0f172a;
    text-shadow: 0 2px 0 rgba(255, 255, 255, 0.65);
}
@media (max-width: 767px) {
    .product-card .card-img-inner .card-rank-badge {
        top: 6px;
        left: 6px;
        min-width: 2.85rem;
        min-height: 2.85rem;
        padding: 0.3rem 0.42rem 0.34rem;
    }
    .product-card .card-img-inner .card-rank-badge__kicker {
        font-size: 0.5rem;
        letter-spacing: 0.18em;
        text-indent: 0.18em;
        margin-bottom: 2px;
    }
    .product-card .card-img-inner .card-rank-badge__num {
        font-size: 1.35rem;
    }
    .product-card .card-img-inner .card-rank-badge--silver .card-rank-badge__num {
        font-size: 1.48rem;
    }
    .product-card .card-img-inner .card-rank-badge--gold {
        min-width: 3.28rem;
        min-height: 3.28rem;
        padding: 0.4rem 0.5rem 0.46rem;
    }
}
@media (min-width: 768px) {
    .product-card .card-img-inner .card-rank-badge {
        top: 10px;
        left: 10px;
        min-width: 3.35rem;
        min-height: 3.35rem;
        padding: 0.4rem 0.55rem 0.45rem;
    }
    .product-card .card-img-inner .card-rank-badge__num {
        font-size: 1.65rem;
    }
    .product-card .card-img-inner .card-rank-badge--silver .card-rank-badge__num {
        font-size: 1.85rem;
    }
    .product-card .card-img-inner .card-rank-badge--gold {
        min-width: 3.95rem;
        min-height: 3.95rem;
        padding: 0.52rem 0.65rem 0.58rem;
    }
}
.product-card .card-img-inner .card-img {
    display: block;
    width: 100%;
}
.product-card .card-resv-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 10px 12px;
    background: rgba(0, 0, 0, 0.6);
    color: #eab308;
    font-weight: 700;
    text-align: center;
    border-radius: 0 0 8px 8px;
    line-height: 1.25;
    box-sizing: border-box;
}
.product-card .card-resv-overlay .card-resv-label {
    font-size: 0.85rem;
}
.product-card .card-resv-overlay .card-resv-num {
    font-size: 1.45rem;
}
@media (max-width: 767px) {
    .product-card .card-resv-overlay {
        padding: 8px 10px;
    }
    .product-card .card-resv-overlay .card-resv-label {
        font-size: 0.75rem;
    }
    .product-card .card-resv-overlay .card-resv-num {
        font-size: 1.05rem;
    }
}
.product-card .pickup-anytime-badge,
.detail-modal .pickup-anytime-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    background: #fee2e2;
    color: #c2410c;
    font-size: 0.9rem;
    font-weight: 700;
    white-space: nowrap;
}
/* 픽업일자(날짜 지정)와 영업시간 배지 글자 크기 동일(1rem) — card-dates / 초특가 price-row */
.product-card .card-dates .date-pickup,
.product-card .card-dates .pickup-anytime-badge,
.product-card .card-dates .date-pickup-today,
.product-card .card-footer .price-row .date-pickup,
.product-card .card-footer .price-row .pickup-anytime-badge {
    font-size: 1rem;
}
/* 예약공구: 픽업일 없음 → 오늘 바로 픽업 (핫핑크 배지) */
.product-card .card-dates .date-pickup-today {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 0.875rem;
    border-radius: 9999px;
    white-space: nowrap;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #fff;
    background: linear-gradient(135deg, #f472b6 0%, #ec4899 55%, #db2777 100%);
    border: 1px solid rgba(219, 39, 119, 0.35);
    box-shadow: 0 2px 10px rgba(236, 72, 153, 0.28);
}
.product-card.is-soldout .card-body { opacity: 0.92; }

/* 쇼핑몰 하단 연락처 (카피라이트 영역) */
.shop-footer {
    background: #fff;
    color: #333;
    padding: 20px 16px 24px;
    margin-top: 24px;
    border-top: 1px solid #e5e7eb;
    font-size: 0.95rem;
}
.shop-footer-line {
    margin: 0 0 6px;
    line-height: 1.5;
}
.shop-footer-line:last-child { margin-bottom: 0; }
.shop-footer-logout { margin-top: 10px; }
.shop-footer-logout a { color: var(--brand-primary); font-weight: 600; }
.shop-footer-logout a:hover { text-decoration: underline; }

.shop-footer-actions { margin-top: 10px; }
.shop-footer-actions a { color: var(--brand-primary); font-weight: 600; }
.shop-footer-actions a:hover { text-decoration: underline; }
.shop-footer-sep { margin: 0 8px; color: #94a3b8; font-weight: 400; }
.shop-footer-clear-cart {
    background: none; border: none; padding: 0; font-size: inherit; cursor: pointer;
    color: var(--brand-primary); font-weight: 600;
}
.shop-footer-clear-cart:hover { text-decoration: underline; }

.shop-bottom-bar {
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 90;
    display: flex;
    gap: 12px;
    width: 100%;
    max-width: var(--shop-content-max-width);
    padding: 12px 16px;
    background: #fff;
    box-shadow: 0 -2px 12px rgba(0,0,0,0.1);
    padding-bottom: max(12px, env(safe-area-inset-bottom));
}
/* 메인 쇼핑몰: 담은 수량 0이면 하단 주문 바 숨김 */
.shop-bottom-bar.shop-bottom-bar--hidden {
    display: none !important;
}
.shop-bottom-bar a {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px 20px;
    border-radius: 12px;
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff;
    background: var(--brand-primary);
}
.shop-bottom-bar a:hover { background: var(--brand-primary-700); }
/* 메인 하단: 주문하기 단일 버튼 — 예전 두 버튼+간격 전체 너비와 동일하게 */
.shop-bottom-bar.shop-bottom-bar--single-order {
    gap: 0;
}
.shop-bottom-bar.shop-bottom-bar--single-order a {
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
}

/* 주문 모달 */
.order-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1000;
    align-items: center;
    justify-content: center;
    padding: 16px;
    overflow-y: auto;
}
.order-modal-overlay.is-open { display: flex; }
.order-modal {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 16px;
    max-width: 480px;
    width: 100%;
    max-height: 90vh;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
.order-modal-header {
    flex-shrink: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}
.order-modal-header h2 { margin: 0; font-size: 1.4rem; font-weight: 700; }
.order-modal-close {
    width: 36px; height: 36px;
    border: none;
    background: #e5e7eb;
    border-radius: 50%;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    color: #374151;
}
.order-modal-close:hover { background: #d1d5db; }
.order-modal-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}
.order-modal-scroll {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 20px;
}
.order-form-row { margin-bottom: 16px; }
.order-form-row label { display: block; font-size: 0.9rem; font-weight: 600; margin-bottom: 6px; }
.order-form-row input[type="text"],
.order-form-row input[type="tel"] {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    font-size: 1rem;
    box-sizing: border-box;
}
.order-hint { font-size: 0.8rem; color: #6b7280; margin: 6px 0 0; }
.order-modal-body .order-list {
    max-height: 240px;
    overflow-y: auto;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 12px;
}
.order-item {
    display: flex;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid #f3f4f6;
}
.order-item:last-child { border-bottom: none; }
.order-item-img {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 8px;
    background: #f3f4f6;
    flex-shrink: 0;
}
.order-item-info { flex: 1; min-width: 0; }
.order-item-name { margin-bottom: 6px; }
.order-item-meta { font-size: 0.9rem; font-weight: 400; color: #374151; line-height: 1.5; }
.order-item-meta-price-line {
    display: block;
    margin-bottom: 6px;
    word-break: keep-all;
}
.order-item-meta-badges {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}
.order-item-meta .order-item-pickup-badge {
    display: inline-block;
    margin-left: 0;
    padding: 4px 10px;
    border-radius: 5px;
    background: #dbeafe;
    color: #1d4ed8;
    font-size: 0.8rem;
    font-weight: 600;
    margin-top: 0;
    vertical-align: middle;
}
.order-item-meta .order-item-pickup-badge--gonggu {
    background: #fce7f3;
    color: #be185d;
}
.order-item-total { font-weight: 700; font-size: 1rem; color: #1f2937; }
.order-modal-foot {
    flex-shrink: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
    background: #fff;
}
.order-total { font-size: 1.1rem; }
.order-foot-btns { display: flex; gap: 10px; }
.btn-order-cancel {
    padding: 12px 24px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    color: #374151;
}
.btn-order-cancel:hover { background: #f9fafb; }
.btn-order-submit {
    padding: 12px 24px;
    border: none;
    border-radius: 8px;
    background: var(--brand-primary);
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    color: #fff;
}
.btn-order-submit:hover { background: var(--brand-primary-700); }

/* 상품 상세 모달 */
.detail-modal-overlay {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1000;
    align-items: center;
    justify-content: center;
    padding: 16px;
    overflow-y: auto;
}
.detail-modal-overlay.is-open { display: flex; }
.detail-modal {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 16px;
    max-width: 560px;
    width: 100%;
    max-height: 90vh;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
/* 상품 상세 단독 페이지(product.php): 전체 URL 이동용 */
.detail-modal.detail-modal--page {
    max-width: 800px;
    width: 100%;
    margin: 0 auto;
    min-height: calc(100vh - 72px);
    max-height: none;
    border-radius: 0;
    box-shadow: none;
}
.detail-modal.detail-modal--page .detail-modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: visible;
    padding: 16px 20px 32px;
}
.product-card .card-img-link,
.home-section-card .card-img-link {
    display: block;
    width: 100%;
    text-decoration: none;
    color: inherit;
}
.product-card .card-img-link .card-img,
.home-section-card .card-img-link .card-img {
    width: 100%;
}
.detail-modal-header {
    flex-shrink: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
    background: #f9fafb;
    border-radius: 16px 16px 0 0;
}
.detail-modal-header h2 { margin: 0; font-size: 1.4rem; font-weight: 700; }
.detail-modal-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px; height: 40px;
    padding: 0;
    border: none;
    background: #e5e7eb;
    border-radius: 50%;
    font-size: 1.5rem;
    line-height: 0.85;
    cursor: pointer;
    color: #374151;
}
.detail-modal-close .close-x { display: block; margin-top: -2px; }
.detail-modal-close:hover { background: #d1d5db; }
.detail-modal-body { flex: 1; min-height: 0; overflow-y: auto; padding: 16px 20px; }
.detail-modal .detail-title { font-size: 1.35rem; font-weight: 700; margin: 0 0 8px; line-height: 1.5; color: #1f2937; }
.detail-modal .detail-dates { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; align-items: center; }
.detail-modal .detail-dates span {
    padding: 6px 12px; border-radius: 20px; font-size: 1rem; font-weight: 600;
}
.detail-review-badge-btn {
    padding: 6px 12px; border-radius: 20px; font-size: 0.95rem; font-weight: 600;
    background: #fef3c7; color: #b45309; border: 1px solid #fcd34d;
    cursor: pointer; display: inline-flex; align-items: center;
    transition: background 0.2s, color 0.2s;
    margin-left: auto;
}
.detail-review-badge-btn:hover { background: #fde68a; color: #92400e; }
.detail-modal .detail-main-img {
    width: 100%;
    border-radius: 12px;
    aspect-ratio: 1;
    object-fit: cover;
    background: #f9fafb;
    margin-bottom: 10px;
}
.detail-modal .detail-main-img.detail-main-img-special {
    aspect-ratio: 5 / 2;
    object-fit: cover;
}
.detail-modal .detail-price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}
.detail-modal .detail-price-col {
    flex: 1;
    min-width: 0;
    text-align: left;
}
.detail-modal .detail-price {
    font-family: "Inter", "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
    font-size: 1.35rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: #1f2937;
    margin-bottom: 0;
    text-align: left;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.detail-modal .detail-price-box {
    margin-bottom: 0;
    text-align: left;
}
.detail-modal .detail-price-row .detail-qty-card {
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    box-shadow: none;
}
.detail-modal .detail-price-row .qty-control {
    display: inline-flex;
    align-items: center;
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e5e7eb;
}
.detail-modal .detail-price-row .qty-control .qty-minus,
.detail-modal .detail-price-row .qty-control .qty-plus {
    width: 40px;
    min-width: 40px;
    height: 40px;
    border: 0;
    margin: 0;
    background: #f3f4f6;
    font-size: 1.4rem;
    font-weight: 700;
    color: #111827;
    cursor: pointer;
    line-height: 1;
}
.detail-modal .detail-price-row .qty-control .qty-minus:hover,
.detail-modal .detail-price-row .qty-control .qty-plus:hover {
    background: #e5e7eb;
}
.detail-modal .detail-price-row .qty-control .qty-num {
    width: 40px;
    min-width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    font-weight: 600;
    color: #1f2937;
    background: #fff;
}
.detail-modal .detail-sold-out-badge {
    flex-shrink: 0;
}
@media (max-width: 767px) {
    .detail-modal .detail-price-row .qty-control .qty-minus,
    .detail-modal .detail-price-row .qty-control .qty-plus,
    .detail-modal .detail-price-row .qty-control .qty-num {
        width: 32px;
        min-width: 32px;
        height: 32px;
        font-size: 1.05rem;
    }
    .detail-modal .detail-price-row .qty-control .qty-num {
        font-size: 0.95rem;
    }
}
.detail-modal .detail-price-resv {
    font-family: "Inter", "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
    font-size: 1.35rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: #1f2937;
}
.detail-modal .detail-price-resv .label {
    display: inline-block;
    margin-right: 6px;
    font-size: 0.85rem;
    font-weight: 700;
    color: #b91c1c;
}
.detail-modal .detail-price-offline {
    margin-top: 4px;
    font-size: 0.9rem;
    color: #6b7280;
}
.detail-modal .detail-price-offline .label {
    font-weight: 600;
    margin-right: 4px;
}
@media (max-width: 767px) {
    .detail-modal .detail-price-col .detail-price {
        font-family: "Inter", "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
        font-size: 1.55rem;
        font-weight: 800;
        color: #111827;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        text-shadow: 0 0 0.5px #111827, 0 0 1px rgba(0,0,0,0.15);
    }
}
.detail-modal .detail-desc {
    font-size: 1.05rem; line-height: 1.5; color: #374151;
    margin-bottom: 10px;
}
.detail-modal .detail-images { display: flex; flex-direction: column; gap: 8px; margin-top: 50px; }
.detail-modal .detail-images img {
    width: 100%; border-radius: 8px; display: block;
    background: #f9fafb;
}
/* 비교상품 (다른 쇼핑몰 스크린샷 + 텍스트, 링크 이동 없음) */
.detail-modal .detail-comparison-box {
    margin-top: 24px;
    padding: 16px;
    border: 1px solid #facc15;
    border-radius: 12px;
    background: #fef9c3; /* 연노랑 계열 */
}
.detail-modal .detail-comparison-title {
    font-size: 1rem;
    font-weight: 800;
    color: #b91c1c; /* 제목: 붉은색 */
    margin-bottom: 10px;
    line-height: 1.5;
    white-space: pre-line;
}
.detail-modal .detail-comparison-img {
    position: relative;
    display: inline-block;
    margin-top: 16px;  /* 내용과 이미지 사이 여백 확대 */
    margin-bottom: 10px;
    max-width: 100%;
}
.detail-modal .detail-comparison-img img {
    display: block;
    max-width: 100%;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
}
.detail-modal .detail-comparison-text {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(0,0,0,0.6);
    color: #f9fafb;
    font-size: 0.85rem;
    font-weight: 600;
    text-align: center;
    max-width: 90%;
    line-height: 1.4;
    white-space: pre-line;
}
.detail-modal .detail-comparison-text-only {
    font-size: 0.9rem;
    color: #000000; /* 내용: 검정색 */
    margin-bottom: 8px;
    white-space: pre-line;
    word-break: break-word;
    overflow-wrap: anywhere; /* 긴 URL이 모바일에서 박스를 넘지 않도록 줄바꿈 */
}
.detail-modal .detail-comparison-text-only a {
    color: #38bdf8;          /* 연푸른색 링크 */
    font-style: italic;      /* 이탤릭체 */
    text-decoration: underline;
}
.detail-modal .detail-comparison-price {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 10px;
}

/* ========== 주문내역 ========== */
.store-selector a { font-size: 0.85rem; color: rgba(255,255,255,0.9); margin-top: 4px; }
/* 주문내역 페이지: 상단(헤더+제목) 스크롤 시 고정 */
.order-list-sticky-top {
    position: sticky;
    top: 0;
    z-index: 100;
    background: #fff;
}
.order-list-sticky-top .shop-header { background: linear-gradient(180deg, var(--brand-primary-700), var(--brand-primary)); }
.page-title { padding: 20px 16px 16px; font-size: 1.5rem; font-weight: 700; color: #1f2937; background: #fff; margin-bottom: 12px; }
.order-list-wrap { padding: 0 16px 24px; max-width: 720px; margin: 0 auto; }
.order-card {
    background: #fff; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    margin-bottom: 16px; overflow: hidden;
}
.order-card-header {
    display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px;
    padding: 14px 16px; border-bottom: 1px solid #e5e7eb; background: #f8fafc;
}
.order-card-header-left { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.order-card-header-right { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.order-card-header .order-num { font-weight: 700; color: #0f766e; font-size: 1.05rem; }
.order-card-header .order-date { font-size: 0.9rem; color: #64748b; }
.order-card-header .order-total { font-weight: 700; color: #b91c1c; font-size: 1.1rem; }
.order-card-header .btn-order-cancel {
    flex-shrink: 0;
    padding: 8px 14px;
    border: none;
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, opacity 0.15s ease;
}
.order-card-header .btn-order-cancel--allowed {
    background: #dc2626;
    color: #fff;
}
.order-card-header .btn-order-cancel--allowed:hover {
    background: #b91c1c;
}
.order-card-header .btn-order-cancel--disabled {
    background: #9ca3af;
    color: #fff;
    cursor: pointer;
}
.order-card-header .btn-order-cancel--disabled:hover {
    background: #6b7280;
}
.order-card-body { padding: 12px 16px; }
.order-card .order-item { padding: 10px 0; border-bottom: 1px dashed #e2e8f0; font-size: 0.95rem; display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.order-card .order-item:last-child { border-bottom: none; }
.order-item-left { flex: 1; min-width: 0; }
.order-item-right { flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.order-item-status-row { margin-top: 6px; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.order-item-badge { display: inline-block; padding: 6px 11px; border-radius: 5px; font-size: 0.82rem; font-weight: 600; white-space: nowrap; }
.order-item-badge--active { background: #dcfce7; color: #166534; }
.order-item-badge--requested { background: #fef3c7; color: #b45309; }
.order-item-badge--cancelled { background: #f3f4f6; color: #4b5563; }
.order-item-name {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 6px;
    color: #1e293b;
}
.order-item-name-block {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    max-width: 100%;
}
.order-item-name-block .order-item-product-name {
    line-height: 1.35;
}
.order-item-name-block .order-item-chat-deal {
    margin-left: 0;
    padding: 4px 10px;
    border-radius: 5px;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.25;
}
.order-item-product-name {
    display: inline;
    font-weight: 700;
    font-size: 0.95rem;
    color: #1e293b;
    line-height: 1.4;
    word-break: keep-all;
}
.order-item-option {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 4px 11px;
    border-radius: 999px;
    background: linear-gradient(180deg, #faf5ff 0%, #f3e8ff 100%);
    border: 1px solid #ddd6fe;
    font-size: 0.8rem;
    line-height: 1.25;
}
.order-item-option-label {
    font-weight: 700;
    color: #6d28d9;
    margin-right: 6px;
}
.order-item-option-label::after {
    content: '·';
    margin-left: 6px;
    color: #a78bfa;
    font-weight: 500;
}
.order-item-option-value {
    font-weight: 700;
    color: #7c3aed;
    word-break: keep-all;
}
.order-item-cols { font-size: 0.9rem; color: #475569; white-space: nowrap; }
.order-item-pickup {
    display: inline-block; padding: 6px 11px; border-radius: 5px;
    background: rgba(6, 182, 212, 0.18); color: #0e7490; font-size: 0.82rem; font-weight: 600;
    white-space: nowrap; flex-shrink: 0;
}
.order-item-pickup-status.order-item-pickup--done { background: rgba(109, 40, 217, 0.18); color: #6d28d9; }
.order-item-pickup-status.order-item-pickup--hold { background: #fef3c7; color: #b45309; }
.order-item-pickup-status.order-item-pickup--cancel { background: #f3f4f6; color: #4b5563; }
.review-rating-stars {
    display: flex;
    gap: 4px;
    font-size: 1.6rem;
}
.review-rating-stars .review-star {
    cursor: pointer;
    color: #e5e7eb;
    transition: color 0.1s ease;
}
.review-rating-stars .review-star.is-active {
    color: #facc15; /* 노랑 별 */
}
.order-item-review-btn {
    margin-left: auto;
    padding: 8px 16px;
    border-radius: 5px;
    border: none;
    background: #2563eb;
    color: #fff;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
}
.order-item-review-btn:hover {
    background: #1d4ed8;
}
.order-item-review-btn.order-item-review-btn--done {
    background: #e5e7eb;
    color: #4b5563;
}
.order-item-review-btn.order-item-review-btn--done:hover {
    background: #d1d5db;
}

/* 후기 한번에 작성 버튼 */
.btn-batch-review {
    margin-right: 8px;
    padding: 6px 12px;
    border-radius: 5px;
    border: none;
    background: #dc2626;
    color: #fff;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
}
.btn-batch-review:hover {
    background: #b91c1c;
}

/* 후기 한번에 작성 모달 */
.batch-review-row {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 12px;
    background: #fafafa;
}
.batch-review-product-name {
    font-weight: 600;
    color: #111827;
    margin-bottom: 6px;
    font-size: 0.95rem;
}
.batch-review-stars {
    display: flex;
    gap: 2px;
    margin-bottom: 8px;
}
.batch-review-star {
    font-size: 1.4rem;
    color: #e5e7eb;
    cursor: pointer;
    transition: color 0.15s;
}
.batch-review-star.is-active {
    color: #f59e0b;
}
.batch-review-phrases {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 8px;
}
.batch-review-phrase-btn {
    padding: 4px 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    background: #fff;
    font-size: 0.8rem;
    color: #4b5563;
    cursor: pointer;
}
.batch-review-phrase-btn:hover {
    background: #f3f4f6;
    border-color: #9ca3af;
}
.batch-review-content {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    font-size: 0.9rem;
    resize: vertical;
    box-sizing: border-box;
}

.login-required {
    background: #fff; border-radius: 12px; padding: 32px 24px; margin: 0 16px 24px; max-width: 720px; margin-left: auto; margin-right: auto;
    text-align: center; color: #475569;
}
.login-required p { margin: 0 0 16px; font-size: 1.05rem; }
.login-required a { display: inline-block; padding: 12px 24px; background: var(--brand-primary); color: #fff; border-radius: 8px; font-weight: 600; }
.login-required a:hover { background: var(--brand-primary-700); }
.shop-bottom-bar.order-list-bar {
    border-top: 1px solid #e5e7eb;
}
.shop-bottom-bar.order-list-bar a {
    flex: 1;
    padding: 14px 20px;
    border-radius: 12px;
    font-size: 1.1rem;
    font-weight: 700;
}
.shop-bottom-bar.order-list-bar a:first-child { background: #e5e7eb; color: #374151; }
.shop-bottom-bar.order-list-bar a:first-child:hover { background: #d1d5db; }
.shop-bottom-bar.order-list-bar a:last-child { background: var(--brand-primary); color: #fff; }
.shop-bottom-bar.order-list-bar a:last-child:hover { background: var(--brand-primary-700); }
.empty-orders { padding: 40px 24px; text-align: center; color: #64748b; font-size: 1.05rem; background: #fff; border-radius: 12px; margin: 0 16px; }

/* 주문취소 모달 */
.order-cancel-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 16px; box-sizing: border-box; }
.order-cancel-modal-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.45); }
.order-cancel-modal-box { position: relative; background: #fff; border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.2); max-width: 360px; width: 100%; overflow: hidden; }
.order-cancel-modal-header {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 20px 20px 16px; border-bottom: 1px solid #e5e7eb; background: #fff;
}
.order-cancel-modal-title { margin: 0; font-size: 1.125rem; font-weight: 700; color: #111827; line-height: 1.3; }
.order-cancel-modal-close-icon {
    flex-shrink: 0;
    width: 32px; height: 32px;
    display: flex; align-items: center; justify-content: center;
    padding: 0; border: none; border-radius: 8px;
    background: transparent; color: #6b7280;
    font-size: 1.5rem; line-height: 1; cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
.order-cancel-modal-close-icon:hover { background: #f3f4f6; color: #111827; }
.order-cancel-modal-body { padding: 16px 20px 24px; }
.order-cancel-modal-body p { margin: 0; font-size: 0.875rem; line-height: 1.6; color: #374151; }
.order-cancel-modal-list { list-style: none; margin: 0; padding: 0; max-height: 280px; overflow-y: auto; }
.order-cancel-modal-item { border-bottom: 1px solid #e5e7eb; padding: 12px 0; }
.order-cancel-modal-item:last-child { border-bottom: none; }
.order-cancel-modal-item-label { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.order-cancel-modal-item-check { flex-shrink: 0; width: 18px; height: 18px; }
.order-cancel-modal-item-name { flex: 1; font-size: 0.95rem; color: #1f2937; }
.order-cancel-modal-item-amount { flex-shrink: 0; font-size: 0.95rem; font-weight: 600; color: #b91c1c; }
.order-cancel-modal-item-disabled { font-size: 0.95rem; }
.order-cancel-modal-item-disabled .order-cancel-modal-item-name { display: block; color: #1f2937; font-weight: 500; }
.order-cancel-modal-item-disabled .order-cancel-modal-item-amount { color: #374151; font-weight: 600; }
.order-cancel-modal-item-msg {
    margin: 8px 0 0;
    padding: 8px 10px;
    font-size: 0.75rem;
    font-weight: 500;
    color: #b91c1c;
    line-height: 1.45;
    background: #fef2f2;
    border-left: 3px solid #dc2626;
    border-radius: 0 6px 6px 0;
}
.order-cancel-modal-item-msg--requested { background: #fef3c7; color: #b45309; border-left-color: #f59e0b; }
.order-cancel-modal-item-msg--cancelled { background: #f3f4f6; color: #4b5563; border-left-color: #9ca3af; }
.order-cancel-modal-footer { display: flex; justify-content: flex-end; gap: 10px; padding: 16px 20px; border-top: 1px solid #e5e7eb; background: #f9fafb; }
.order-cancel-modal-footer .btn-order-cancel-modal-close {
    padding: 10px 18px; border: 1px solid #d1d5db; background: #fff; color: #374151; border-radius: 8px; font-size: 0.95rem; font-weight: 600; cursor: pointer;
}
.order-cancel-modal-footer .btn-order-cancel-modal-close:hover { background: #f3f4f6; }
.order-cancel-modal-footer .btn-order-cancel-submit {
    padding: 10px 18px; border: none; background: #000; color: #fff; border-radius: 8px; font-size: 0.95rem; font-weight: 600; cursor: pointer;
}
.order-cancel-modal-footer .btn-order-cancel-submit:hover { background: #333; }
.order-cancel-modal-footer .btn-order-cancel-submit:disabled { background: #9ca3af; cursor: not-allowed; }

/* ========== 고객후기 ========== */
.reviews-wrap { max-width: 720px; margin: 0 auto; padding: 16px; }
.reviews-head { margin-bottom: 20px; font-size: 1.4rem; font-weight: 600; color: #1f2937; }
.review-card {
    background: #fff;
    border-radius: 12px;
    padding: 18px 20px;
    margin-bottom: 14px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.review-card .review-images { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.review-card .review-images .review-img { width: 100%; max-width: 100%; border-radius: 10px; display: block; background: #f9fafb; }
.review-card .review-img.review-img-zoom { cursor: pointer; }
.review-card .review-img { width: 100%; max-width: 100%; border-radius: 10px; display: block; margin-bottom: 12px; background: #f9fafb; }
.detail-review-img.detail-review-img-zoom { cursor: pointer; }
.review-card .review-platform { font-size: 0.85rem; color: #6b7280; margin: 0 0 8px; }
.review-card .review-meta { margin: 0 0 6px; font-size: 0.88rem; color: #374151; display:flex; align-items:center; gap:8px; }
.review-card .review-nickname { font-weight: 600; }
.review-card .review-rating { font-size: 0.9rem; color: #f97316; }
.review-card .review-title { font-size: 1.05rem; font-weight: 700; color: #1f2937; margin: 0 0 10px; }
.review-card .review-content { white-space: pre-wrap; word-break: keep-all; overflow-wrap: break-word; font-size: 1rem; line-height: 1.65; color: #374151; margin: 0 0 12px; }
.review-card .review-date { font-size: 0.9rem; color: #6b7280; }
.reviews-empty { text-align: center; padding: 3rem 20px; color: #6b7280; font-size: 1rem; }

/* 상품 상세 모달 내 고객 후기 */
.detail-reviews { margin-top: 28px; padding-top: 24px; border-top: 1px solid #e5e7eb; }
.detail-reviews-header {
    display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px;
}
.detail-reviews-title {
    font-size: 1.1rem; font-weight: 700; color: #1f2937; margin: 0;
    display: flex; align-items: center; gap: 8px;
}
.detail-scroll-top-btn {
    padding: 0 10px 0 6px; height: 36px; border-radius: 18px;
    border: 1px solid #e5e7eb; background: #fff;
    cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 4px;
    color: #6b7280; transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.detail-scroll-top-btn:hover { background: #f3f4f6; color: #374151; border-color: #d1d5db; }
.detail-scroll-top-btn .detail-scroll-top-arrow { width: 18px; height: 18px; flex-shrink: 0; }
.detail-scroll-top-btn .detail-scroll-top-text { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.02em; }
.detail-reviews-count {
    font-size: 0.85rem; font-weight: 600; color: #6b7280; background: #f3f4f6;
    padding: 2px 8px; border-radius: 6px;
}
.detail-review-card {
    background: #f9fafb; border-radius: 12px; padding: 14px 16px; margin-bottom: 12px;
    border: 1px solid #e5e7eb;
}
.detail-review-card:last-child { margin-bottom: 0; }
.detail-review-images {
    display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px;
}
.detail-review-img {
    width: 72px; height: 72px; object-fit: cover; border-radius: 8px;
    border: 1px solid #e5e7eb;
}
.detail-review-meta {
    margin: 0 0 6px;
    font-size: 0.88rem;
    color: #374151;
    display: flex;
    align-items: center;
    gap: 8px;
}
.detail-review-nickname { font-weight: 600; }
.detail-review-rating { font-size: 0.9rem; color: #f97316; }
.detail-review-content {
    font-size: 0.95rem; line-height: 1.6; color: #374151; margin: 0 0 8px;
    white-space: pre-wrap; word-break: keep-all; overflow-wrap: break-word;
}
.detail-review-date { font-size: 0.8rem; color: #9ca3af; margin: 0; }

/* ========== 쇼핑몰 로그인 (카카오) ========== */
body.shop-login-page {
    margin: 0; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", sans-serif; background: #f5f5f5; color: #333; padding: 20px;
}
.login-card {
    background: #fff; border-radius: 16px; box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    max-width: 420px; width: 100%; overflow: hidden; border: 1px solid #e5e7eb;
}
.login-banner {
    background: linear-gradient(180deg, #fef9c3 0%, #fef08a 50%, #fde047 100%);
    padding: 32px 24px; text-align: center; position: relative;
}
.login-banner::after {
    content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 60px;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 60"><circle cx="50" cy="45" r="18" fill="%23f97316"/><circle cx="120" cy="50" r="14" fill="%2384cc16"/><circle cx="200" cy="48" r="16" fill="%23eab308"/><circle cx="280" cy="52" r="12" fill="%2322c55e"/><circle cx="350" cy="47" r="15" fill="%23f59e0b"/></svg>') center bottom no-repeat;
    background-size: contain; opacity: 0.6;
}
.login-logo { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.login-logo img { width: 56px; height: 56px; object-fit: contain; }
.login-logo-text { font-size: 1.5rem; font-weight: 800; color: #15803d; text-shadow: 0 1px 2px rgba(0,0,0,0.1); }
.login-tagline { font-size: 0.9rem; color: #4d7c0f; font-weight: 600; margin-bottom: 16px; }
.login-badges { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }
.login-badge { background: rgba(34,197,94,0.9); color: #fff; padding: 6px 14px; border-radius: 20px; font-size: 0.85rem; font-weight: 700; }
.login-body { padding: 28px 24px; }
.login-title { font-size: 1.25rem; font-weight: 700; color: #1f2937; text-align: center; margin: 0 0 24px; }
.btn-kakao {
    display: flex; align-items: center; justify-content: center; gap: 12px;
    width: 100%; padding: 16px 24px; border: none; border-radius: 12px;
    background: #FEE500; color: #191919; font-size: 1.1rem; font-weight: 700;
    cursor: pointer; text-decoration: none; transition: background 0.2s; font-family: inherit;
}
.btn-kakao:hover { background: #f5da00; }
.btn-kakao:disabled { background: #d1d5db; cursor: not-allowed; color: #6b7280; }
.btn-kakao img { width: 24px; height: 24px; }
.btn-guest-login {
    display: block;
    margin-top: 10px;
    width: 100%;
    padding: 12px 18px;
    border-radius: 10px;
    border: none;
    background: #16a34a; /* 진한 초록 배경 */
    color: #ffffff;      /* 흰색 글씨 */
    font-size: 1.05rem;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
}
.btn-guest-login:hover {
    background: #15803d;
}
.login-error { background: #fee2e2; color: #b91c1c; padding: 12px 16px; border-radius: 8px; margin-bottom: 16px; font-size: 0.95rem; }

/* 사다드림 페이지 — 상품 목록 아래 안내 */
.sadadrim-notice {
    max-width: 100%;
    margin: 1.25rem 0 0;
    padding: 0;
    box-sizing: border-box;
}
@media (min-width: 768px) {
    .sadadrim-notice { margin-top: 1.5rem; }
}
.sadadrim-notice-box {
    background: #fff;
    border: 1px solid rgba(13, 148, 136, 0.28);
    border-radius: 16px;
    padding: 16px 18px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
@media (min-width: 768px) {
    .sadadrim-notice-box { padding: 18px 20px; }
}
.sadadrim-notice-lead {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.65;
    color: #111827;
}
@media (min-width: 768px) {
    .sadadrim-notice-lead { font-size: 1rem; }
}
.sadadrim-notice-highlight {
    font-weight: 600;
    color: #0f766e;
}
.sadadrim-notice-pay {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #f3f4f6;
}
.sadadrim-notice-pay-title {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.45;
    color: #1f2937;
}
@media (min-width: 768px) {
    .sadadrim-notice-pay-title { font-size: 0.9375rem; }
}
.sadadrim-notice-pay-desc {
    margin: 6px 0 0;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.6;
    color: #9a3412;
    letter-spacing: -0.02em;
}
@media (min-width: 768px) {
    .sadadrim-notice-pay-desc { font-size: 0.9375rem; }
}
.sadadrim-notice-pay-key {
    color: #b91c1c;
    font-weight: 800;
}
.sadadrim-notice-pay-sep {
    color: #c2410c;
    font-weight: 600;
}
.sadadrim-notice-pay-suffix {
    color: #b91c1c;
    font-weight: 800;
}
.sadadrim-notice-foot {
    margin: 12px 0 0;
    font-size: 0.75rem;
    line-height: 1.55;
    color: #6b7280;
}
@media (min-width: 768px) {
    .sadadrim-notice-foot { font-size: 0.8125rem; }
}
.sadadrim-notice--detail {
    margin: 1.5rem 0 0.5rem;
    padding: 0;
}

/* 사다드림 — 상품 목록 하단 안내사항 */
.sadadrim-guide {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid #e5e7eb;
}
.sadadrim-guide-title {
    margin: 0 0 0.65rem;
    font-size: 0.8125rem;
    font-weight: 400;
    line-height: 1.5;
    color: #4b5563;
}
.sadadrim-guide-text {
    margin: 0 0 0.5rem;
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1.65;
    color: #6b7280;
}
.sadadrim-guide-text:last-child {
    margin-bottom: 0;
}
@media (min-width: 768px) {
    .sadadrim-guide { margin-top: 1.5rem; padding-top: 1.125rem; }
    .sadadrim-guide-title { font-size: 0.875rem; }
    .sadadrim-guide-text { font-size: 0.8125rem; }
}

/* 스크린 리더 전용 (예: 사다드림 페이지 h1.sr-only) */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border-width: 0;
}

/* 상품 옵션 (카드·상세) */
.product-options-block {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
}
.product-option-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 10px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
}
.product-option-row.is-soldout {
    opacity: 0.65;
}
.product-option-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1;
}
.product-option-name {
    font-size: 0.82rem;
    font-weight: 600;
    color: #111827;
    line-height: 1.3;
    word-break: keep-all;
}
.product-option-price {
    font-size: 0.78rem;
    font-weight: 700;
    color: #dc2626;
}
.product-option-row .qty-control {
    flex-shrink: 0;
}
.sold-out-badge--option {
    font-size: 0.75rem;
    padding: 4px 8px;
}
.store-direct-buy-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border-radius: 999px;
    background: #ea580c;
    color: #fff;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
    white-space: nowrap;
    box-shadow: 0 1px 2px rgba(234, 88, 12, 0.3);
}
.detail-modal .store-direct-buy-badge {
    font-size: 0.9rem;
    padding: 10px 14px;
}
.detail-options-block {
    margin-top: 10px;
}
.detail-options-block .product-option-row {
    background: #fff;
}
.detail-price-row--options {
    display: block;
}
.detail-price-row--options .detail-qty-card {
    width: 100%;
    max-width: none;
}
.product-card[data-has-options="1"] .card-footer > .price,
.product-card[data-has-options="1"] .price-row > .price {
    display: none !important;
}

.product-card[data-qty-pricing="1"] .price-row > .price,
.product-card[data-qty-pricing="1"] .card-footer > .price {
    display: none !important;
}

/* 수량 구간 가격 — 홍보형 1개/2개 비교 (세로 2줄) */
.product-qty-pricing-promo {
    position: relative;
    margin: 0 0 10px;
    padding: 14px 12px 12px;
    border-radius: 14px;
    background: linear-gradient(135deg, #fff7ed 0%, #fff1f2 48%, #fef3c7 100%);
    border: 2px solid #fdba74;
    box-shadow: 0 6px 18px rgba(234, 88, 12, 0.16);
    overflow: hidden;
}
.product-qty-pricing-promo__ribbon {
    position: absolute;
    top: 0;
    left: 0;
    padding: 5px 14px 6px;
    border-radius: 0 0 10px 0;
    background: linear-gradient(135deg, #ea580c 0%, #dc2626 100%);
    color: #fff;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.2;
    box-shadow: 0 2px 8px rgba(220, 38, 38, 0.28);
}
.product-qty-pricing-promo__stack {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 18px;
}
.product-qty-pricing-promo__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
    padding: 12px 14px;
    border-radius: 12px;
    text-align: left;
}
.product-qty-pricing-promo__row--single {
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid #e5e7eb;
}
.product-qty-pricing-promo__row--bundle {
    position: relative;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    background: linear-gradient(180deg, #fff 0%, #fff7ed 100%);
    border: 2px solid #f97316;
    box-shadow: 0 4px 14px rgba(249, 115, 22, 0.22);
}
.product-qty-pricing-promo__row-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
}
.product-qty-pricing-promo__badge {
    position: absolute;
    top: -10px;
    right: 12px;
    padding: 3px 10px;
    border-radius: 999px;
    background: #dc2626;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1.3;
    box-shadow: 0 2px 6px rgba(220, 38, 38, 0.35);
}
.product-qty-pricing-promo__label {
    flex-shrink: 0;
    font-size: 1.05rem;
    font-weight: 800;
    color: #374151;
    line-height: 1.2;
}
.product-qty-pricing-promo__row--bundle .product-qty-pricing-promo__label {
    color: #c2410c;
    font-size: 1.12rem;
}
.product-qty-pricing-promo__price {
    font-size: 1.35rem;
    font-weight: 900;
    color: #111827;
    line-height: 1.15;
    letter-spacing: -0.02em;
    word-break: keep-all;
    text-align: right;
}
.product-qty-pricing-promo__price small {
    font-size: 0.72em;
    font-weight: 800;
    margin-left: 1px;
}
.product-qty-pricing-promo__row--bundle .product-qty-pricing-promo__price {
    font-size: 1.65rem;
    color: #dc2626;
}
.product-qty-pricing-promo__compare {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 10px;
    border-top: 1px dashed #fdba74;
}
.product-qty-pricing-promo__was {
    font-size: 0.95rem;
    font-weight: 700;
    color: #9ca3af;
    text-decoration: line-through;
    line-height: 1.2;
}
.product-qty-pricing-promo__save {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 999px;
    background: #fef08a;
    border: 1px solid #facc15;
    color: #854d0e;
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.25;
    white-space: nowrap;
}
.detail-price-row .product-qty-pricing-promo {
    margin-top: 4px;
    margin-bottom: 12px;
}
.detail-price-row--options .product-qty-pricing-promo {
    width: 100%;
    max-width: none;
}
.product-card[data-qty-pricing="1"] .card-footer .product-qty-pricing-promo {
    width: 100%;
}

/* 상품 그리드 2열(태블릿·PC): 수량특가 박스 숨기고 1개 가격만 표시 */
@media (min-width: 768px) {
    .product-grid .product-card[data-qty-pricing="1"]:not([data-has-options="1"]) .product-qty-pricing-promo,
    .home-sections .product-card[data-qty-pricing="1"]:not([data-has-options="1"]) .product-qty-pricing-promo {
        display: none !important;
    }
    .product-grid .product-card[data-qty-pricing="1"]:not([data-has-options="1"]) .price-row > .price,
    .product-grid .product-card[data-qty-pricing="1"]:not([data-has-options="1"]) .card-footer > .price,
    .home-sections .product-card[data-qty-pricing="1"]:not([data-has-options="1"]) .price-row > .price,
    .home-sections .product-card[data-qty-pricing="1"]:not([data-has-options="1"]) .card-footer > .price {
        display: inline-flex !important;
    }
}

.product-card[data-has-options="1"] .card-resv-overlay {
    display: none !important;
}

/* 채팅방 전용특가 — 금액·수량 아래 한 줄 (card-footer flex 줄바꿈) */
.product-card .card-footer {
    flex-wrap: wrap;
}
.product-card .card-footer > .product-chat-deal-bar {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    order: 10;
}
.product-chat-deal-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    margin-top: 8px;
    padding: 10px 12px;
    box-sizing: border-box;
    border: none;
    border-radius: 8px;
    background: #dc2626;
    color: #fff;
    font-family: "Inter", "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
    font-size: 1.45rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    line-height: 1.3;
    letter-spacing: -0.01em;
    box-shadow: 0 2px 6px rgba(220, 38, 38, 0.35);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.product-chat-deal-bar__label {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
    white-space: nowrap;
    font-weight: 600;
}
.product-chat-deal-bar__price {
    flex: 0 0 auto;
    text-align: right;
    white-space: nowrap;
    font-weight: 800;
    color: #ffd306;
}
.product-chat-deal-bar.is-chat-deal-bar-clickable {
    cursor: pointer;
}
.product-chat-deal-bar.is-chat-deal-bar-clickable:not(.is-chat-deal-bar-unlocked):hover {
    filter: brightness(1.05);
}
.product-chat-deal-bar.is-chat-deal-bar-clickable:not(.is-chat-deal-bar-unlocked):active {
    filter: brightness(0.97);
}
.product-chat-deal-bar.is-chat-deal-bar-unlocked {
    cursor: default;
}
@media (max-width: 767px) {
    .product-chat-deal-bar {
        font-size: 1.55rem;
        padding: 10px 12px;
    }
    .home-section-chat-deal .product-chat-deal-bar {
        font-size: 1.05rem;
    }
    .home-section-chat-deal .product-chat-deal-bar__label {
        font-size: 0.92rem;
        white-space: normal;
    }
}
.product-card .card-footer .product-chat-deal-bar {
    margin-top: 10px;
}
.detail-modal .detail-price-row + .product-chat-deal-bar {
    margin-top: 2px;
    margin-bottom: 16px;
    font-size: 1.35rem;
    padding: 12px 14px;
}
.order-item-name-block .order-item-chat-deal {
    margin-left: 0;
}
.order-item-chat-deal {
    display: inline-flex;
    align-items: center;
    margin-left: 6px;
    padding: 2px 7px;
    border-radius: 6px;
    font-size: 0.72rem;
    font-weight: 800;
    background: #ffedd5;
    color: #c2410c;
    vertical-align: middle;
}
.order-item-chat-deal-text {
    white-space: nowrap;
}
.order-item-meta .order-item-chat-deal--meta {
    margin-left: 0;
    margin-right: 0;
    flex-shrink: 0;
    padding: 4px 10px;
    border-radius: 5px;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.2;
}
.chat-deal-modal .order-modal-body {
    padding: 16px 20px 20px;
}
.chat-deal-modal-product {
    margin: 0 0 12px;
    font-size: 0.95rem;
    font-weight: 700;
    color: #111827;
    line-height: 1.4;
}
.chat-deal-modal-regular-hint {
    margin-top: 8px;
    color: #6b7280;
    font-size: 0.85rem;
    line-height: 1.5;
}
#chatDealCodeInput {
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}
