/**
 * EOND Board — 소프트웨어 제품(product) 스킨 스타일
 *
 * eond-wp-store 테마 디자인 1:1 매칭
 * 컴포넌트: card-hover, btn-dark, btn-secondary, badge-primary, tab-nav/tab-item
 *
 * Tailwind → CSS 변환 값:
 *   slate-50=#f8fafc  slate-100=#f1f5f9  slate-200=#e2e8f0  slate-300=#cbd5e1
 *   slate-400=#94a3b8  slate-500=#64748b  slate-600=#475569  slate-700=#334155
 *   slate-800=#1e293b  slate-900=#0f172a
 *   primary-50=#fff0f0  primary-200=#ffc1c2  primary-500=#ff0004  primary-600=#e00004
 *   emerald-50=#ecfdf5  emerald-200=#a7f3d0  emerald-600=#059669  emerald-700=#047857
 */

/* === 공통 변수 + 컨테이너 === */
.eond-board {
    --eb-star: #f59e0b;
}

/* product 스킨: 기본 .eond-board max-width(960px) 오버라이드 */
.eond-product-list,
.eond-product-view,
.eond-product-write {
    max-width: none;
}

/* checkout / cart / orders 페이지: 적절한 max-width 제한 */
.eond-board.eond-checkout,
.eond-board.eond-orders,
.prose .eond-board.eond-checkout,
.prose .eond-board.eond-orders {
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

/* 내부 컨테이너: section-container = max-w-6xl(1152px) + 좌우 패딩 */
.eond-product-container {
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

/* write 페이지는 전체가 컨테이너 */
.eond-product-write {
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

/* prose 클래스 안에서 product 스킨이 렌더링될 때 간섭 방지 */
.prose .eond-product-list,
.prose .eond-product-view {
    max-width: none;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

/* === 텍스트 선택 색상 (::selection) === */
.eond-board ::selection {
    background: #fff0f0;
    color: #7f0002;
}

/* === 링크 트랜지션 === */
.eond-board a {
    transition: color 0.2s;
}

/* === 별점 공통 === */
.eond-stars {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    color: var(--eb-star);
}
.eond-star-filled { color: #f59e0b; }
.eond-star-half   { color: #f59e0b; }
.eond-star-empty  { color: #cbd5e1; }

/* =========================================
   1. 리스트 — 상단 헤더 (archive-download.php)
   gradient-bg py-16 lg:py-20 + badge-primary
   ========================================= */

/* 리스트 헤더: 전체 폭 gradient-bg (archive-download.php py-16 lg:py-20)
   full-bleed: 부모 컨테이너와 무관하게 뷰포트 전체 폭으로 확장 */
.eond-product-list-header {
    text-align: center;
    padding: 64px 0;
    background: linear-gradient(180deg, #f2f7fc 0%, #ffffff 100%);
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

.eond-product-badge-accent {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    font-size: 14px;
    font-weight: 600;
    border-radius: 9999px;
    background: #fff0f0;
    color: #e00004;
    box-shadow: inset 0 0 0 1px #ffc1c2;
    margin-bottom: 16px;
}

.eond-product-list-title {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: -0.025em;
    color: #0f172a;
    margin: 0 0 16px;
    line-height: 1.2;
}

.eond-product-list-desc {
    font-size: 18px;
    color: #64748b;
    margin: 0;
    max-width: 42em;
    margin-left: auto;
    margin-right: auto;
}

/* =========================================
   2. 필터: 카테고리 + 정렬 + 검색
   ========================================= */

.eond-product-filter {
    margin-bottom: 32px;
    padding-top: 32px;
}

.eond-product-filter-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.eond-product-cat-btn {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    font-size: 14px;
    font-weight: 500;
    border-radius: 9999px;
    border: none;
    color: #475569;
    background: #f1f5f9;
    text-decoration: none;
    transition: all 0.2s;
}

.eond-product-cat-btn:hover {
    background: #e2e8f0;
    color: #334155;
    text-decoration: none;
}

.eond-product-cat-btn.active {
    background: #0f172a;
    color: #fff;
}

.eond-product-filter-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.eond-product-search-form {
    position: relative;
    flex: 1;
    min-width: 200px;
    max-width: 320px;
}

.eond-product-search-icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    pointer-events: none;
}

.eond-product-search-form input[type="text"] {
    width: 100%;
    padding: 10px 16px 10px 40px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    font-size: 14px;
    background: #fff;
    color: #1e293b;
    transition: all 0.2s;
}

.eond-product-search-form input[type="text"]:focus {
    outline: none;
    border-color: #ff5558;
    box-shadow: 0 0 0 2px rgba(255, 0, 4, 0.1);
}

.eond-product-sort {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.eond-product-sort-btn {
    display: inline-flex;
    align-items: center;
    padding: 8px 14px;
    font-size: 14px;
    font-weight: 500;
    border-radius: 9999px;
    border: none;
    color: #475569;
    background: #f1f5f9;
    text-decoration: none;
    transition: all 0.2s;
    cursor: pointer;
}

.eond-product-sort-btn:hover {
    background: #e2e8f0;
    color: #334155;
    text-decoration: none;
}

.eond-product-sort-btn.active {
    background: #0f172a;
    color: #fff;
}

/* =========================================
   3. 그리드 — grid-cols-1 md:2 lg:3 gap-8
   ========================================= */

.eond-product-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
    margin-bottom: 2em;
}

/* =========================================
   4. 카드 — card-hover 컴포넌트
   card: bg-white rounded-2xl border-slate-200/80 p-6 shadow-card
   hover: shadow-card-hover border-slate-300/80 -translate-y-0.5
   ========================================= */

.eond-product-card {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 24px;
    background: #fff;
    border-radius: 16px;
    border: 1px solid rgba(226, 232, 240, 0.8);
    box-shadow: 0 1px 3px 0 rgba(0,0,0,0.04), 0 1px 2px -1px rgba(0,0,0,0.03);
    transition: all 0.3s;
}

.eond-product-card:hover {
    box-shadow: 0 20px 40px -12px rgba(0,0,0,0.1), 0 8px 16px -8px rgba(0,0,0,0.06);
    border-color: rgba(203, 213, 225, 0.8);
    transform: translateY(-2px);
}

/* 카드 전체 링크 — absolute inset-0 z-10 */
.eond-product-card-overlay {
    position: absolute;
    inset: 0;
    z-index: 10;
    border-radius: 16px;
}

/* 썸네일 — aspect-video rounded-xl mb-4 bg-slate-100 */
.eond-product-card-thumb {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 12px;
    background: #f1f5f9;
    margin-bottom: 16px;
}

.eond-product-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s;
}

.eond-product-card:hover .eond-product-card-thumb img {
    transform: scale(1.05);
}

/* bg-gradient-to-t from-black/20 to-transparent */
.eond-product-card-thumb-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.2), transparent);
    opacity: 0;
    transition: opacity 0.3s;
    pointer-events: none;
}

.eond-product-card:hover .eond-product-card-thumb-overlay {
    opacity: 1;
}

.eond-product-card-no-thumb {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #cbd5e1;
}

/* 뱃지 — flex gap-2 mb-2 + badge-primary */
.eond-product-card-badges {
    display: flex;
    gap: 8px;
    margin-bottom: 8px;
}

.eond-product-badge-cat {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    font-size: 14px;
    font-weight: 600;
    border-radius: 9999px;
    background: #fff0f0;
    color: #e00004;
    box-shadow: inset 0 0 0 1px #ffc1c2;
}

/* 제목 — text-lg font-semibold mb-2 text-slate-800 group-hover:text-primary-600 */
.eond-product-card-title {
    font-size: 18px;
    font-weight: 600;
    color: #1e293b;
    margin: 0 0 8px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 0.2s;
}

.eond-product-card:hover .eond-product-card-title {
    color: var(--eb-accent, #e00004);
}

/* 평점 — flex items-center gap-1.5 mb-2 */
.eond-product-card-rating-row {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 8px;
}

.eond-product-card-rating-count {
    font-size: 12px;
    color: #94a3b8;
}

/* 설명 — text-sm text-slate-500 line-clamp-2 mb-4 */
.eond-product-card-excerpt {
    font-size: 14px;
    color: #64748b;
    line-height: 1.5;
    margin: 0 0 16px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 하단 — pt-4 border-t border-slate-100 mt-auto */
.eond-product-card-footer {
    padding-top: 16px;
    border-top: 1px solid #f1f5f9;
    margin-top: auto;
}

/* 가격 행 — flex items-center justify-between mb-3 */
.eond-product-card-price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.eond-product-card-price {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
}

/* text-lg font-bold text-primary-600 */
.eond-product-price-current {
    font-size: 18px;
    font-weight: 700;
    color: var(--eb-accent, #e00004);
}

.eond-product-price-original {
    font-size: 14px;
    color: #94a3b8;
    text-decoration: line-through;
}

/* text-sm font-bold text-emerald-600 bg-emerald-50 px-2.5 py-0.5 rounded-full ring-1 ring-emerald-200 */
.eond-product-price-free {
    font-size: 14px;
    font-weight: 700;
    color: #059669;
    background: #ecfdf5;
    padding: 2px 10px;
    border-radius: 9999px;
    box-shadow: inset 0 0 0 1px #a7f3d0;
}

/* text-sm text-slate-400 ml-2 */
.eond-product-card-ver {
    font-size: 14px;
    color: #94a3b8;
    margin-left: 8px;
}

/* 액션 버튼 — relative z-20 flex gap-2 */
.eond-product-card-actions {
    display: flex;
    gap: 8px;
    position: relative;
    z-index: 20;
}

/* 공통 버튼 베이스 (btn) */
.eond-product-card-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 20px;
    min-height: 40px;
    font-size: 14px;
    font-weight: 600;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.2s;
    cursor: pointer;
    border: none;
}

.eond-product-card-btn:hover {
    text-decoration: none;
}

.eond-product-card-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px #ff0004;
}

.eond-product-card-btn:active {
    transform: scale(0.97);
    box-shadow: none;
}

/* btn-dark flex-1 text-center text-sm — 1:1:1 비율 */
.eond-product-card-btn-buy {
    flex: 1;
    min-width: 0;
    background: #0f172a;
    color: #fff;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1);
}

a.eond-product-card-btn-buy,
a.eond-product-card-btn-buy:visited,
.eond-product-card-btn-buy:hover {
    color: #fff;
}

.eond-product-card-btn-buy:hover {
    background: #000;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
}

/* btn-secondary 스타일 — 흰색 배경 + 회색 라인 */
.eond-product-card-btn-free {
    flex: 1;
    min-width: 0;
    background: #fff;
    color: #334155;
    border: 1px solid #e2e8f0;
    box-shadow: 0 1px 3px 0 rgba(0,0,0,0.04), 0 1px 2px -1px rgba(0,0,0,0.03);
}

.eond-product-card-btn-free:hover {
    background: #f8fafc;
    border-color: #cbd5e1;
    color: #334155;
}

/* btn-secondary flex-1 — 데모 버튼도 1:1:1 동일 비율 */
.eond-product-card-btn-demo {
    flex: 1;
    min-width: 0;
    background: #fff;
    color: #334155;
    border: 1px solid #e2e8f0;
    box-shadow: 0 1px 3px 0 rgba(0,0,0,0.04), 0 1px 2px -1px rgba(0,0,0,0.03);
}

.eond-product-card-btn-demo:hover {
    background: #f8fafc;
    border-color: #cbd5e1;
    color: #334155;
}

/* 빈 목록 */
.eond-product-empty {
    grid-column: 1 / -1;
    text-align: center;
    padding: 80px 16px;
    color: #94a3b8;
}

.eond-product-empty svg {
    display: block;
    margin: 0 auto 16px;
    color: #cbd5e1;
}

.eond-product-empty h3 {
    font-size: 20px;
    font-weight: 600;
    color: #94a3b8;
    margin: 0 0 8px;
}

.eond-product-empty p {
    font-size: 14px;
    color: #64748b;
    margin: 0;
}

/* 제품 등록 버튼 */
.eond-product-list-actions {
    text-align: center;
    margin-top: 2em;
}

/* =========================================
   5. 상세 — 헤더 섹션
   bg-slate-50 py-12 lg:py-16 border-b border-slate-200
   flex flex-col lg:flex-row gap-8
   ========================================= */

/* 상세 헤더: 전체 폭 bg-slate-50 (single-download.php)
   full-bleed: 뷰포트 전체 폭 */
.eond-product-header {
    background: #f8fafc;
    padding: 48px 0;
    border-bottom: 1px solid #e2e8f0;
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

.eond-product-header-inner {
    display: flex;
    flex-direction: column;
    gap: 32px;
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

/* 좌측 정보 — lg:max-w-2xl order-2 lg:order-1 */
.eond-product-header-info {
    flex: 1;
    min-width: 0;
    order: 2;
}

.eond-product-header-badges {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}

/* text-3xl lg:text-4xl font-bold mb-4 */
.eond-product-title {
    font-size: 30px;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 16px;
    line-height: 1.25;
}

/* text-lg text-slate-600 mb-4 */
.eond-product-excerpt {
    font-size: 18px;
    color: #475569;
    line-height: 1.6;
    margin: 0 0 16px;
}

/* flex items-center gap-2 mb-4 */
.eond-product-header-rating {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
}

/* text-sm font-medium text-slate-700 */
.eond-product-header-rating-val {
    font-size: 14px;
    font-weight: 500;
    color: #334155;
}

/* text-sm text-slate-400 */
.eond-product-header-rating-cnt {
    font-size: 14px;
    color: #94a3b8;
}

/* flex flex-wrap items-center gap-4 mt-8 */
.eond-product-header-actions {
    margin-top: 32px;
}

.eond-product-header-btns {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
}

/* btn-dark btn-lg */
.eond-product-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 28px;
    min-height: 48px;
    font-size: 16px;
    font-weight: 600;
    background: #0f172a;
    color: #fff;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1);
    text-decoration: none;
}

.eond-product-btn-primary:hover {
    background: #000;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
    text-decoration: none;
    color: #fff;
}

.eond-product-btn-primary:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px #ff0004;
}

.eond-product-btn-primary:active {
    transform: scale(0.97);
    box-shadow: none;
}

.eond-product-btn-primary:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* btn-secondary btn-lg */
.eond-product-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 28px;
    min-height: 48px;
    font-size: 16px;
    font-weight: 600;
    background: #fff;
    color: #334155;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s;
    box-shadow: 0 1px 3px 0 rgba(0,0,0,0.04), 0 1px 2px -1px rgba(0,0,0,0.03);
    text-decoration: none;
}

.eond-product-btn-secondary:hover {
    background: #f8fafc;
    border-color: #cbd5e1;
    text-decoration: none;
    color: #334155;
}

.eond-product-btn-secondary:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px #ff0004;
}

.eond-product-btn-secondary:active {
    transform: scale(0.97);
    box-shadow: none;
}

/* =========================================
   5-1. 좋아요/스크랩 — 카드 (product-card.php 참고)
   flex items-center gap-1 relative z-20
   ========================================= */

/* 카드 내 좋아요/스크랩 */
.eond-product-card-social {
    display: flex;
    align-items: center;
    gap: 4px;
    position: relative;
    z-index: 20;
    flex-shrink: 0;
}

.eond-product-card-social .eond-like-button,
.eond-product-card-social .eond-scrap-button {
    display: inline-flex;
}

.eond-product-card-social .eond-like-btn,
.eond-product-card-social .eond-scrap-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px;
    border: none;
    background: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.2s;
    color: #94a3b8;
}

.eond-product-card-social .eond-like-btn:hover,
.eond-product-card-social .eond-scrap-btn:hover {
    background: #f1f5f9;
}

.eond-product-card-social .eond-like-btn.active {
    color: #ef4444;
}

.eond-product-card-social .eond-scrap-btn.active {
    color: #ff0004;
}

.eond-product-card-social .eond-like-count {
    font-size: 14px;
    color: #64748b;
}

.eond-product-card-social .eond-scrap-label {
    display: none;
}

/* 카드 내 아이콘 크기 (w-4 h-4 = 16px) */
.eond-product-card-social .eond-like-icon,
.eond-product-card-social .eond-scrap-icon {
    width: 16px;
    height: 16px;
}

/* 상세 헤더 좋아요/스크랩 (single-download.php 참고)
   flex items-center gap-4 mb-2 + btn with border */
.eond-product-header-social {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 8px;
}

.eond-product-header-social .eond-like-button,
.eond-product-header-social .eond-scrap-button {
    display: inline-flex;
}

.eond-product-header-social .eond-like-btn,
.eond-product-header-social .eond-scrap-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    font-size: 14px;
    border: 1px solid #e2e8f0;
    background: #fff;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s;
    color: #94a3b8;
}

.eond-product-header-social .eond-like-btn:hover,
.eond-product-header-social .eond-scrap-btn:hover {
    background: #f8fafc;
}

.eond-product-header-social .eond-like-btn.active {
    color: #ef4444;
}

.eond-product-header-social .eond-scrap-btn.active {
    color: #ff0004;
}

.eond-product-header-social .eond-like-count {
    font-size: 14px;
    color: #64748b;
}

.eond-product-header-social .eond-scrap-label {
    font-size: 14px;
    color: #475569;
}

/* 좋아요/스크랩 아이콘 팝 애니메이션 */
.eond-product-card-social .eond-like-icon,
.eond-product-card-social .eond-scrap-icon,
.eond-product-header-social .eond-like-icon,
.eond-product-header-social .eond-scrap-icon {
    transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.eond-product-card-social .eond-like-icon.pop,
.eond-product-card-social .eond-scrap-icon.pop,
.eond-product-header-social .eond-like-icon.pop,
.eond-product-header-social .eond-scrap-icon.pop {
    transform: scale(1.3);
}

/* 관리자 수정/삭제 */
.eond-product-admin-actions {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #e2e8f0;
    display: flex;
    gap: 8px;
}

/* =========================================
   6. 상세 — 사이드바 메타 카드
   card p-6 lg:w-72 shrink-0 lg:sticky lg:top-24
   order-1 lg:order-2
   ========================================= */

.eond-product-sidebar-card {
    width: 100%;
    flex-shrink: 0;
    padding: 24px;
    background: #fff;
    border-radius: 16px;
    border: 1px solid rgba(226, 232, 240, 0.8);
    box-shadow: 0 1px 3px 0 rgba(0,0,0,0.04), 0 1px 2px -1px rgba(0,0,0,0.03);
    transition: all 0.3s;
    order: 1;
}

/* text-center mb-4 pb-4 border-b border-slate-100 */
.eond-product-sidebar-price {
    text-align: center;
    padding-bottom: 16px;
    margin-bottom: 16px;
    border-bottom: 1px solid #f1f5f9;
}

/* text-3xl font-bold text-primary-600 */
.eond-product-sidebar-price-val {
    font-size: 30px;
    font-weight: 700;
    color: var(--eb-accent, #e00004);
}

.eond-product-sidebar-price-sale {
    color: var(--eb-accent, #e00004);
}

.eond-product-sidebar-price-orig {
    display: block;
    font-size: 14px;
    color: #94a3b8;
    text-decoration: line-through;
    margin-top: 4px;
}

/* text-3xl font-bold text-emerald-600 */
.eond-product-sidebar-price-free {
    font-size: 30px;
    font-weight: 700;
    color: #059669;
}

/* space-y-3 */
.eond-product-sidebar-meta {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* flex justify-between text-sm */
.eond-product-sidebar-meta-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
}

/* text-slate-500 */
.eond-product-sidebar-meta-label {
    color: #64748b;
}

/* font-medium text-slate-800 */
.eond-product-sidebar-meta-value {
    font-weight: 500;
    color: #1e293b;
}

/* =========================================
   7. 5탭 — tab-nav + tab-item
   ========================================= */

.eond-product-tabs-section {
    padding-top: 32px;
    margin-bottom: 2em;
}

/* tab-nav: flex border-b border-slate-200 */
.eond-product-tabs {
    display: flex;
    border-bottom: 1px solid #e2e8f0;
    margin-bottom: 32px;
    overflow-x: auto;
}

/* tab-item: px-4 py-2.5 text-sm font-medium text-slate-500
   border-b-2 border-transparent hover:text-slate-700 hover:border-slate-300 */
.eond-product-tab {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 500;
    color: #64748b;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}

.eond-product-tab:hover {
    color: #334155;
    border-bottom-color: #cbd5e1;
}

/* tab-item-active: text-primary-600 border-primary-500 bg-primary-50/50 */
.eond-product-tab.active {
    color: var(--eb-accent, #e00004);
    border-bottom-color: var(--eb-accent, #ff0004);
    background: rgba(255, 240, 240, 0.5);
}

.eond-product-tab-count {
    display: inline-block;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    background: #f1f5f9;
    color: #64748b;
    font-size: 11px;
    font-weight: 600;
    line-height: 18px;
    text-align: center;
    border-radius: 9px;
}

.eond-product-tab.active .eond-product-tab-count {
    background: var(--eb-accent, #ff0004);
    color: #fff;
}

.eond-product-tab-panel {
    padding: 0;
}

.eond-product-tab-empty {
    text-align: center;
    padding: 48px 16px;
    color: #94a3b8;
    font-size: 14px;
}

/* =========================================
   8. 탭 — 소개 (prose prose-slate)
   ========================================= */

.eond-product-content-prose {
    font-size: 16px;
    line-height: 1.75;
    color: #475569;
    max-width: 768px;
}

.eond-product-content-prose h2 {
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -0.05em;
    color: #0f172a;
    margin: 48px 0 24px;
}

.eond-product-content-prose h3 {
    font-size: 20px;
    font-weight: 600;
    color: #0f172a;
    margin: 32px 0 16px;
}

.eond-product-content-prose h4 {
    font-size: 18px;
    font-weight: 600;
    color: #0f172a;
    margin: 24px 0 12px;
}

.eond-product-content-prose p {
    margin: 0 0 1.25em;
}

.eond-product-content-prose img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}

.eond-product-content-prose a {
    color: var(--eb-accent, #ff0004);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.eond-product-content-prose ul,
.eond-product-content-prose ol {
    padding-left: 1.625em;
    margin: 0 0 1.25em;
}

.eond-product-content-prose li {
    margin-bottom: 0.5em;
}

.eond-product-content-prose code {
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.875em;
    color: #0f172a;
}

.eond-product-content-prose pre {
    background: #0f172a;
    color: #e2e8f0;
    border-radius: 12px;
    padding: 1em 1.5em;
    overflow-x: auto;
    font-size: 14px;
    margin: 1.5em 0;
}

.eond-product-content-prose blockquote {
    border-left: 3px solid #e2e8f0;
    padding-left: 1em;
    color: #64748b;
    font-style: italic;
    margin: 1.5em 0;
}

/* =========================================
   9. 스크린샷 — grid md:grid-cols-2 gap-6
   rounded-xl border border-slate-200
   ========================================= */

.eond-product-screenshots {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}

.eond-product-screenshot {
    display: block;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #e2e8f0;
    transition: box-shadow 0.2s, transform 0.2s;
}

.eond-product-screenshot:hover {
    box-shadow: 0 20px 40px -12px rgba(0,0,0,0.1), 0 8px 16px -8px rgba(0,0,0,0.06);
}

.eond-product-screenshot img {
    width: 100%;
    height: auto;
    display: block;
}

/* =========================================
   10. 변경 내역
   ========================================= */

.eond-product-changelog {
    font-size: 14px;
    line-height: 1.8;
    color: #475569;
    max-width: 768px;
}

.eond-product-changelog h3,
.eond-product-changelog h4 {
    color: #0f172a;
    margin: 1.5em 0 0.5em;
}

.eond-product-changelog ul {
    padding-left: 1.5em;
    margin: 0.5em 0;
}

.eond-product-changelog li {
    margin-bottom: 0.3em;
}

/* =========================================
   11. 리뷰 — 요약 카드
   card p-6 mb-8 flex items-center gap-6
   ========================================= */

.eond-product-review-summary-card {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 24px;
    background: #fff;
    border-radius: 16px;
    border: 1px solid rgba(226, 232, 240, 0.8);
    box-shadow: 0 1px 3px 0 rgba(0,0,0,0.04), 0 1px 2px -1px rgba(0,0,0,0.03);
    margin-bottom: 32px;
}

.eond-product-review-avg {
    text-align: center;
    flex-shrink: 0;
}

/* text-4xl font-bold text-slate-900 */
.eond-product-review-avg-num {
    font-size: 36px;
    font-weight: 700;
    color: #0f172a;
    line-height: 1;
    margin-bottom: 4px;
}

/* text-sm text-slate-400 */
.eond-product-review-total {
    font-size: 14px;
    color: #94a3b8;
    margin-top: 4px;
}

.eond-product-review-dist {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
    justify-content: center;
}

.eond-product-review-bar {
    display: flex;
    align-items: center;
    gap: 8px;
}

.eond-product-review-bar-label {
    font-size: 12px;
    color: #64748b;
    width: 28px;
    text-align: right;
    flex-shrink: 0;
}

.eond-product-review-bar-track {
    flex: 1;
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
    overflow: hidden;
}

.eond-product-review-bar-fill {
    height: 100%;
    background: #f59e0b;
    border-radius: 4px;
    transition: width 0.3s;
}

.eond-product-review-bar-count {
    font-size: 12px;
    color: #64748b;
    width: 24px;
    flex-shrink: 0;
}

/* =========================================
   12. 리뷰 목록 — card p-5 per review
   ========================================= */

.eond-product-reviews {
    margin-bottom: 24px;
    max-width: 768px;
}

/* card p-5 */
.eond-product-review-card {
    padding: 20px;
    background: #fff;
    border-radius: 16px;
    border: 1px solid rgba(226, 232, 240, 0.8);
    box-shadow: 0 1px 3px 0 rgba(0,0,0,0.04), 0 1px 2px -1px rgba(0,0,0,0.03);
    margin-bottom: 24px;
}

.eond-product-review-card:last-child {
    margin-bottom: 0;
}

/* flex items-start gap-3 */
.eond-product-review-card-header {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.eond-product-review-avatar {
    flex-shrink: 0;
}

.eond-product-review-avatar img {
    width: 40px;
    height: 40px;
    border-radius: 9999px;
}

/* flex items-center gap-2 mb-1 */
.eond-product-review-card-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
    flex-wrap: wrap;
}

/* text-sm font-semibold */
.eond-product-review-author {
    font-size: 14px;
    font-weight: 600;
    color: #0f172a;
}

/* text-sm text-slate-400 */
.eond-product-review-date {
    font-size: 14px;
    color: #94a3b8;
}

/* text-sm text-slate-600 */
.eond-product-review-body {
    font-size: 14px;
    color: #475569;
    line-height: 1.6;
}

.eond-product-review-body p {
    margin: 0 0 0.5em;
}

.eond-product-review-body p:last-child {
    margin-bottom: 0;
}

.eond-product-no-reviews {
    text-align: center;
    padding: 2em 0;
    color: #94a3b8;
    font-size: 14px;
}

/* card p-6 text-center bg-slate-50 */
.eond-product-review-notice-card {
    text-align: center;
    padding: 24px;
    background: #f8fafc;
    border-radius: 16px;
    border: 1px solid rgba(226, 232, 240, 0.8);
    box-shadow: 0 1px 3px 0 rgba(0,0,0,0.04), 0 1px 2px -1px rgba(0,0,0,0.03);
    margin-top: 24px;
}

.eond-product-review-notice-card p {
    font-size: 14px;
    color: #64748b;
    margin: 0;
}

.eond-product-review-notice-card a {
    color: var(--eb-accent, #ff0004);
    font-weight: 600;
    text-decoration: none;
}

.eond-product-review-notice-card a:hover {
    text-decoration: underline;
}

/* =========================================
   13. 리뷰 작성 폼
   ========================================= */

.eond-product-review-form {
    padding: 24px;
    background: #f8fafc;
    border-radius: 16px;
    border: 1px solid rgba(226, 232, 240, 0.8);
    margin-top: 24px;
    max-width: 768px;
}

.eond-product-review-form h4 {
    margin: 0 0 16px;
    font-size: 18px;
    font-weight: 600;
    color: #0f172a;
}

.eond-product-review-rating-input {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
}

.eond-product-review-rating-input label {
    font-size: 14px;
    font-weight: 500;
    color: #334155;
    flex-shrink: 0;
}

.eond-product-star-input {
    display: inline-flex;
    gap: 4px;
}

.eond-product-star-btn {
    border: none;
    background: none;
    cursor: pointer;
    padding: 0;
    color: #f59e0b;
    transition: color 0.15s;
}

.eond-product-star-btn:hover {
    transform: scale(1.15);
}

.eond-product-review-write textarea {
    width: 100%;
    padding: 10px 16px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    font-size: 14px;
    font-family: inherit;
    background: #fff;
    color: #1e293b;
    resize: vertical;
    transition: all 0.2s;
}

.eond-product-review-write textarea:focus {
    outline: none;
    border-color: #ff5558;
    box-shadow: 0 0 0 2px rgba(255, 0, 4, 0.1);
}

.eond-product-review-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 12px;
}

/* =========================================
   14. 요구사항 — card p-6
   space-y-3 + flex justify-between py-2 border-b border-slate-50
   ========================================= */

.eond-product-req-card {
    padding: 24px;
    background: #fff;
    border-radius: 16px;
    border: 1px solid rgba(226, 232, 240, 0.8);
    box-shadow: 0 1px 3px 0 rgba(0,0,0,0.04), 0 1px 2px -1px rgba(0,0,0,0.03);
    max-width: 768px;
}

.eond-product-req-card h3 {
    font-size: 16px;
    font-weight: 600;
    color: #0f172a;
    margin: 0 0 16px;
}

.eond-product-req-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* flex items-center justify-between py-2 border-b border-slate-50 last:border-0 */
.eond-product-req-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid #f8fafc;
    font-size: 14px;
}

.eond-product-req-row:last-child {
    border-bottom: none;
}

/* text-sm text-slate-600 */
.eond-product-req-row span:first-child {
    color: #475569;
}

/* text-sm font-medium */
.eond-product-req-row span:last-child {
    font-weight: 500;
    color: #1e293b;
}

.eond-product-req-row code {
    background: #f1f5f9;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 13px;
}

/* =========================================
   15. 옵션 셀렉트
   ========================================= */

.eond-product-options {
    margin-bottom: 12px;
}

.eond-product-option-select {
    width: 100%;
    padding: 10px 16px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    font-size: 14px;
    background: #fff;
    color: #1e293b;
    transition: all 0.2s;
}

.eond-product-option-select:focus {
    outline: none;
    border-color: #ff5558;
    box-shadow: 0 0 0 2px rgba(255, 0, 4, 0.1);
}

/* =========================================
   15-1. 관련 제품 — section-spacing bg-slate-50
   grid-cols-1 md:2 lg:4 gap-6
   ========================================= */

/* full-bleed: 뷰포트 전체 폭 */
.eond-product-related {
    background: #f8fafc;
    padding: 48px 0;
    margin-top: 32px;
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

.eond-product-related-title {
    font-size: 24px;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 32px;
}

.eond-product-related-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}

/* 관련 제품 카드 내 스크롤 리빌 */
.eond-product-related [data-reveal] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.eond-product-related [data-reveal].revealed {
    opacity: 1;
    transform: none;
}

/* =========================================
   16. 네비게이션 + 뒤로가기
   ========================================= */

.eond-product-back {
    margin-top: 2em;
    text-align: center;
}

/* =========================================
   17. 모바일 CTA 바
   fixed bottom-0 left-0 right-0 z-50 lg:hidden
   bg-white border-t border-slate-200 px-4 py-3
   ========================================= */

.eond-product-mobile-cta {
    display: none;
}

/* =========================================
   18. 글쓰기 폼 — 2컬럼 카드 레이아웃
   ========================================= */

/* --- 페이지 헤더 --- */
.pw-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e2e8f0;
}
.pw-header-left {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.pw-back-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: #64748b;
    text-decoration: none;
}
.pw-back-link:hover {
    color: #334155;
}
.pw-title {
    font-size: 24px;
    font-weight: 700;
    color: #0f172a;
    margin: 0;
    line-height: 1.3;
}

/* --- 알림 배너 --- */
.pw-notice {
    display: flex;
    gap: 10px;
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 13px;
    margin-bottom: 16px;
    line-height: 1.5;
}
.pw-notice svg { flex-shrink: 0; margin-top: 2px; }
.pw-notice ul { margin: 4px 0 0; padding-left: 16px; }
.pw-notice li { margin-bottom: 2px; }
.pw-notice a { font-weight: 500; text-decoration: underline; }
.pw-notice-meta { color: #94a3b8; margin-left: 6px; font-size: 12px; }
.pw-notice-info {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e40af;
}
.pw-notice-info a { color: #1e40af; }
.pw-notice-warning {
    background: #fefce8;
    border: 1px solid #fde68a;
    color: #92400e;
}
.pw-notice-warning a { color: #92400e; }

/* --- 폼 리셋 --- */
.eond-product-write .eond-write-form {
    max-width: 100%;
}

/* --- 2컬럼 레이아웃 --- */
.pw-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}
.pw-main {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.pw-sidebar {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* --- 카드 컴포넌트 --- */
.pw-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
}
.pw-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid #f1f5f9;
    background: #fafbfc;
}
.pw-card-header h3 {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
    margin: 0;
}
.pw-card-header h3 svg {
    color: #64748b;
    flex-shrink: 0;
}
.pw-card-body {
    padding: 20px;
}
.pw-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 20px;
    border-top: 1px solid #f1f5f9;
    background: #fafbfc;
}

/* --- 카드 토글 (접기/펼치기) --- */
.pw-card-toggle {
    cursor: pointer;
    user-select: none;
    transition: background 0.15s;
}
.pw-card-toggle:hover {
    background: #f1f5f9;
}
.pw-toggle-icon {
    color: #94a3b8;
    transition: transform 0.2s;
    flex-shrink: 0;
}
.pw-card-toggle.pw-toggled .pw-toggle-icon {
    transform: rotate(-90deg);
}
.pw-card-body.pw-collapsed {
    display: none;
}

/* --- 필드 --- */
.pw-field {
    margin-bottom: 16px;
}
.pw-field:last-child {
    margin-bottom: 0;
}
.pw-field label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #334155;
    margin-bottom: 6px;
}
.pw-required {
    color: #ef4444;
}
.pw-field input[type="text"],
.pw-field input[type="email"],
.pw-field input[type="url"],
.pw-field input[type="number"],
.pw-field input[type="password"],
.pw-field input[type="datetime-local"],
.pw-field select,
.pw-field textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 14px;
    color: #1e293b;
    background: #fff;
    transition: border-color 0.15s, box-shadow 0.15s;
    line-height: 1.5;
}
.pw-field input:focus,
.pw-field select:focus,
.pw-field textarea:focus {
    outline: none;
    border-color: #ff5558;
    box-shadow: 0 0 0 3px rgba(255, 0, 4, 0.08);
}
.pw-field textarea {
    resize: vertical;
    min-height: 80px;
}
.pw-field select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
}

/* 힌트 */
.pw-hint {
    font-size: 12px;
    color: #94a3b8;
    margin-top: 4px;
    margin-bottom: 0;
    line-height: 1.4;
}

/* 섹션 라벨 (구분선 아래 소제목) */
.pw-section-label {
    font-size: 12px;
    font-weight: 600;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0 0 12px;
}

/* 구분선 */
.pw-divider {
    height: 1px;
    background: #f1f5f9;
    margin: 16px 0;
}

/* 라벨 + 버튼 행 */
.pw-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
}
.pw-label-row label {
    margin-bottom: 0;
}

/* --- 필드 그리드 --- */
.pw-field-grid {
    display: grid;
    gap: 16px;
    margin-bottom: 16px;
}
.pw-field-grid .pw-field {
    margin-bottom: 0;
}
.pw-grid-2 { grid-template-columns: 1fr 1fr; }
.pw-grid-3 { grid-template-columns: 1fr 1fr 1fr; }

/* --- 아이콘 input --- */
.pw-input-with-icon {
    position: relative;
}
.pw-input-with-icon svg {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    pointer-events: none;
}
.pw-input-with-icon input {
    padding-left: 36px;
}

/* --- 금액 addon --- */
.pw-input-addon {
    display: flex;
    align-items: stretch;
}
.pw-addon-prefix {
    display: flex;
    align-items: center;
    padding: 0 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-right: none;
    border-radius: 8px 0 0 8px;
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
}
.pw-input-addon input {
    border-radius: 0 8px 8px 0;
    flex: 1;
    min-width: 0;
}

/* --- 할인율 미리보기 --- */
.pw-discount-preview {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #059669;
    margin-bottom: 16px;
}

/* --- 옵션별 가격 빌더 --- */
.pw-options-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
}
.pw-option-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
}
.pw-option-handle {
    color: #cbd5e1;
    cursor: grab;
    flex-shrink: 0;
}
.pw-option-fields {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr 1fr;
    gap: 8px;
    flex: 1;
    min-width: 0;
}
.pw-option-fields input {
    padding: 8px 10px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    font-size: 13px;
    color: #1e293b;
    background: #fff;
    width: 100%;
    min-width: 0;
}
.pw-option-fields input:focus {
    outline: none;
    border-color: #ff5558;
    box-shadow: 0 0 0 2px rgba(255,0,4,0.08);
}
.pw-option-remove {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: none;
    background: none;
    color: #94a3b8;
    border-radius: 6px;
    cursor: pointer;
    flex-shrink: 0;
    transition: all 0.15s;
}
.pw-option-remove:hover {
    background: #fef2f2;
    color: #ef4444;
}

/* --- 텍스트 버튼 --- */
.pw-btn-text {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    font-size: 13px;
    font-weight: 600;
    color: #ff0004;
    background: none;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s;
}
.pw-btn-text:hover {
    background: #fff0f0;
}

/* --- 버튼 --- */
.pw-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
    background: #fff;
    color: #475569;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.15s;
    line-height: 1.5;
}
.pw-btn:hover {
    background: #f8fafc;
    border-color: #cbd5e1;
    text-decoration: none;
}
.pw-btn-primary {
    background: #0f172a;
    color: #fff;
    border-color: #0f172a;
}
.pw-btn-primary:hover {
    background: #1e293b;
    border-color: #1e293b;
    color: #fff;
}
.pw-btn-draft {
    background: #fff;
    color: #64748b;
    border-color: #e2e8f0;
}
.pw-btn-cancel {
    background: none;
    border: none;
    color: #94a3b8;
    padding: 8px 12px;
}
.pw-btn-cancel:hover {
    color: #64748b;
    background: none;
    border: none;
}
.pw-btn-group {
    display: flex;
    gap: 8px;
}

/* --- 체크박스 --- */
.pw-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #475569;
    cursor: pointer;
}
.pw-checkbox input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: #ff0004;
}
.pw-publish-row {
    margin-bottom: 12px;
}
.pw-schedule-field {
    margin-bottom: 12px;
}
.pw-schedule-field input {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 13px;
}

/* --- 썸네일 업로드 --- */
.pw-thumb-upload {
    cursor: pointer;
    border-radius: 10px;
    overflow: hidden;
    transition: border-color 0.15s;
}
.pw-thumb-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 28px 16px;
    border: 2px dashed #e2e8f0;
    border-radius: 10px;
    color: #94a3b8;
    text-align: center;
    font-size: 13px;
    transition: all 0.15s;
}
.pw-thumb-placeholder:hover,
.pw-thumb-upload.pw-drag-over .pw-thumb-placeholder {
    border-color: #ff5558;
    background: #fff0f0;
    color: #ff0004;
}
.pw-thumb-hint {
    font-size: 11px;
    color: #cbd5e1;
}
.pw-thumb-preview {
    position: relative;
}
.pw-thumb-preview img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    border-radius: 10px;
    display: block;
}
.pw-thumb-remove {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.6);
    color: #fff;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    transition: background 0.15s;
}
.pw-thumb-remove:hover {
    background: #ef4444;
}
.pw-file-hidden {
    position: absolute;
    width: 0;
    height: 0;
    opacity: 0;
    overflow: hidden;
}

/* --- 업로드 영역 (갤러리, 파일) --- */
.pw-upload-zone {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 20px 16px;
    border: 2px dashed #e2e8f0;
    border-radius: 10px;
    color: #94a3b8;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.15s;
    text-align: center;
}
.pw-upload-zone:hover,
.pw-upload-zone.pw-drag-over {
    border-color: #ff5558;
    background: #fff0f0;
    color: #ff0004;
}

/* --- 갤러리 그리드 --- */
.pw-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-bottom: 12px;
}
.pw-gallery-item {
    position: relative;
    aspect-ratio: 1;
    border-radius: 8px;
    overflow: hidden;
    background: #f8fafc;
}
.pw-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.pw-gallery-remove {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.6);
    color: #fff;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.15s;
}
.pw-gallery-item:hover .pw-gallery-remove {
    opacity: 1;
}

/* --- 파일 목록 --- */
.pw-file-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 12px;
}
.pw-file-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 13px;
}
.pw-file-item svg {
    color: #64748b;
    flex-shrink: 0;
}
.pw-file-name {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #334155;
}
.pw-file-remove {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: none;
    border: none;
    color: #94a3b8;
    border-radius: 4px;
    cursor: pointer;
    flex-shrink: 0;
}
.pw-file-remove:hover {
    color: #ef4444;
    background: #fef2f2;
}

/* =========================================
   19. 장바구니
   ========================================= */

.eond-cart {
    margin-bottom: 2em;
}

.eond-cart-table {
    width: 100%;
    border-collapse: collapse;
    border-top: 2px solid #0f172a;
}

.eond-cart-table th {
    background: #f8fafc;
    padding: 10px 12px;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
    border-bottom: 1px solid #e2e8f0;
    color: #64748b;
}

.eond-cart-table th.col-product { text-align: left; }

.eond-cart-table td {
    padding: 14px 12px;
    border-bottom: 1px solid #e2e8f0;
    text-align: center;
    font-size: 14px;
    vertical-align: middle;
}

.eond-cart-table td.col-product { text-align: left; }
.eond-cart-table td.col-total { font-weight: 600; color: #0f172a; }

.eond-cart-product {
    display: flex;
    align-items: center;
    gap: 12px;
}

.eond-cart-thumb {
    width: 64px;
    height: 64px;
    border-radius: 8px;
    object-fit: cover;
    background: #f8fafc;
    flex-shrink: 0;
}

.eond-cart-product-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.eond-cart-product-name {
    font-weight: 600;
    color: #0f172a;
    text-decoration: none;
}

.eond-cart-product-name:hover {
    text-decoration: underline;
}

.eond-cart-product-option {
    font-size: 12px;
    color: #64748b;
}

.eond-product-cart-version {
    font-size: 11px;
    color: #94a3b8;
}

.eond-product-qty-control {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
}

.eond-product-qty-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    border: none;
    background: #f8fafc;
    color: #475569;
    font-size: 15px;
    cursor: pointer;
    transition: background 0.15s;
    padding: 0;
}

.eond-product-qty-btn:hover {
    background: #e2e8f0;
}

.eond-cart-qty-input {
    width: 44px;
    text-align: center;
    border: none;
    border-left: 1px solid #e2e8f0;
    border-right: 1px solid #e2e8f0;
    font-size: 14px;
    padding: 6px 4px;
    background: #fff;
    color: #1e293b;
    -moz-appearance: textfield;
}

.eond-cart-qty-input::-webkit-outer-spin-button,
.eond-cart-qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.eond-cart-remove {
    border: none;
    background: none;
    color: #94a3b8;
    cursor: pointer;
    padding: 4px;
    transition: color 0.2s;
}

.eond-cart-remove:hover {
    color: #ef4444;
}

.eond-cart-summary {
    padding: 24px 0;
    border-top: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.eond-cart-summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    font-size: 14px;
    color: #475569;
    min-width: 200px;
}

.eond-cart-summary-row span:first-child {
    color: #64748b;
}

.eond-cart-summary-total {
    font-size: 18px;
    font-weight: 700;
    color: #0f172a;
    padding-top: 8px;
    border-top: 1px solid #e2e8f0;
}

.eond-cart-summary-total span:first-child {
    font-size: 14px;
    font-weight: 600;
}

.eond-cart-actions {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 24px;
}

.eond-cart-empty {
    text-align: center;
    padding: 48px 16px;
    color: #64748b;
    font-size: 14px;
}

/* =========================================
   20. 결제
   ========================================= */

.eond-checkout-layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 32px;
    margin-bottom: 2em;
}

.eond-checkout-form-area {
    display: flex;
    flex-direction: column;
}

.eond-checkout-form {
    display: flex;
    flex-direction: column;
}

.eond-checkout-form h3 {
    font-size: 16px;
    font-weight: 700;
    color: #0f172a;
    margin: 24px 0 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid #0f172a;
}

.eond-checkout-form h3:first-child {
    margin-top: 0;
}

.eond-checkout-summary-area {
    align-self: flex-start;
}

.eond-checkout-summary {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 24px;
    position: sticky;
    top: 24px;
}

.eond-checkout-summary h3 {
    font-size: 16px;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 16px;
}

.eond-checkout-items {
    display: flex;
    flex-direction: column;
}

.eond-checkout-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid #e2e8f0;
    font-size: 13px;
}

.eond-checkout-item:last-child {
    border-bottom: none;
}

.eond-checkout-item-info {
    flex: 1;
    min-width: 0;
}

.eond-checkout-item-name {
    display: block;
    color: #475569;
    line-height: 1.4;
    margin-bottom: 6px;
    word-break: break-all;
}

.eond-checkout-item-controls {
    display: flex;
    align-items: center;
    gap: 8px;
}

.eond-checkout-qty {
    display: inline-flex;
    align-items: center;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    overflow: hidden;
}

.eond-checkout-qty-btn {
    width: 26px;
    height: 26px;
    border: none;
    background: #f8fafc;
    color: #475569;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
}

.eond-checkout-qty-btn:hover {
    background: #e2e8f0;
    color: #0f172a;
}

.eond-checkout-qty-val {
    min-width: 28px;
    text-align: center;
    font-size: 13px;
    font-weight: 600;
    color: #0f172a;
    padding: 0 2px;
}

.eond-checkout-item-remove {
    width: 26px;
    height: 26px;
    border: none;
    background: none;
    color: #94a3b8;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    transition: all 0.15s;
    flex-shrink: 0;
}

.eond-checkout-item-remove:hover {
    background: #fee2e2;
    color: #ef4444;
}

.eond-checkout-item-price {
    font-weight: 600;
    color: #0f172a;
    flex-shrink: 0;
    text-align: right;
}

.eond-checkout-totals {
    padding-top: 16px;
    margin-top: 8px;
    border-top: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.eond-checkout-total-row {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    color: #475569;
}

.eond-checkout-total-final {
    font-size: 18px;
    font-weight: 700;
    color: #0f172a;
    padding-top: 10px;
    border-top: 1px solid #e2e8f0;
    margin-top: 6px;
}

.eond-checkout-pay-btn {
    display: block;
    width: 100%;
    padding: 14px;
    margin-top: 24px;
    background: #0f172a;
    color: #fff;
    border: none;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1);
}

.eond-checkout-pay-btn:hover {
    background: #000;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
}

.eond-checkout-pay-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px #ff0004;
}

.eond-checkout-pay-btn:active {
    transform: scale(0.97);
    box-shadow: none;
}

.eond-checkout-pay-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.eond-checkout-back {
    display: block;
    text-align: center;
    font-size: 13px;
    color: #64748b;
    margin-top: 12px;
    text-decoration: none;
}

.eond-checkout-back:hover {
    color: #334155;
    text-decoration: underline;
}

/* =========================================
   21. 주문 내역
   ========================================= */

.eond-orders {
    margin-bottom: 2em;
}

.eond-orders-detail h2 {
    display: flex;
    align-items: center;
    gap: 10px;
}

.eond-orders-number {
    font-size: 0.65em;
    font-weight: 600;
    color: #64748b;
}

.eond-orders-status-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
}

.eond-orders-status {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 9999px;
    font-size: 13px;
    font-weight: 600;
    color: #fff;
}

.eond-orders-date {
    font-size: 13px;
    color: #94a3b8;
}

.eond-orders-items,
.eond-orders-payment-info,
.eond-orders-customer-info {
    margin-bottom: 32px;
}

.eond-orders-items h3,
.eond-orders-payment-info h3,
.eond-orders-customer-info h3 {
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid #0f172a;
}

.eond-orders-items-table {
    width: 100%;
    border-collapse: collapse;
}

.eond-orders-items-table th {
    background: #f8fafc;
    padding: 10px 12px;
    font-size: 13px;
    font-weight: 600;
    text-align: left;
    border-bottom: 1px solid #e2e8f0;
    color: #64748b;
}

.eond-orders-items-table td {
    padding: 12px;
    border-bottom: 1px solid #e2e8f0;
    font-size: 14px;
    vertical-align: middle;
}

.eond-orders-option {
    font-size: 12px;
    color: #64748b;
}

.eond-orders-downloads {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}

.eond-orders-download-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    color: var(--eb-accent, #ff0004);
    text-decoration: none;
    transition: all 0.2s;
}

.eond-orders-download-link:hover {
    background: var(--eb-accent, #ff0004);
    color: #fff;
    border-color: var(--eb-accent, #ff0004);
    text-decoration: none;
}

.eond-orders-dl {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 0;
    margin: 0;
}

.eond-orders-dl dt {
    padding: 10px 0;
    font-size: 14px;
    color: #64748b;
    font-weight: 500;
    border-bottom: 1px solid #e2e8f0;
}

.eond-orders-dl dd {
    padding: 10px 0;
    font-size: 14px;
    color: #475569;
    margin: 0;
    border-bottom: 1px solid #e2e8f0;
}

.eond-orders-dl-total {
    font-weight: 700;
    color: #0f172a;
}

/* 라이선스 정보 */
.eond-orders-licenses {
    margin-top: 20px;
    padding: 16px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
}

.eond-orders-licenses h3 {
    margin: 0 0 12px;
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
}

.eond-license-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.eond-license-item {
    padding: 12px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
}

.eond-license-key-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.eond-license-key {
    font-family: 'SF Mono', 'Fira Code', monospace;
    font-size: 14px;
    font-weight: 600;
    color: #1e293b;
    letter-spacing: 0.5px;
}

.eond-license-toggle,
.eond-license-copy {
    padding: 2px 8px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    color: #475569;
    cursor: pointer;
    transition: all 0.15s;
}

.eond-license-toggle:hover,
.eond-license-copy:hover {
    background: #e2e8f0;
    color: #0f172a;
}

.eond-license-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    font-size: 12px;
    color: #64748b;
}

.eond-license-product {
    font-weight: 600;
    color: #334155;
}

.eond-license-expires {
    color: #64748b;
}

.eond-orders-actions {
    display: flex;
    gap: 8px;
    margin-top: 24px;
}

.eond-orders-table {
    width: 100%;
    border-collapse: collapse;
    border-top: 2px solid #0f172a;
}

.eond-orders-table th {
    background: #f8fafc;
    padding: 10px 12px;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
    border-bottom: 1px solid #e2e8f0;
    color: #64748b;
}

.eond-orders-table td {
    padding: 12px;
    border-bottom: 1px solid #e2e8f0;
    text-align: center;
    font-size: 14px;
    vertical-align: middle;
}

.eond-orders-col-number {
    font-weight: 600;
    color: #0f172a;
}

.eond-orders-col-date {
    color: #64748b;
}

.eond-orders-col-total {
    font-weight: 600;
    color: #0f172a;
}

.eond-orders-col-action {
    text-align: center;
}

.eond-orders-empty {
    text-align: center;
    padding: 48px 16px;
    color: #64748b;
    font-size: 14px;
}

/* =========================================
   22. 폼 필드
   ========================================= */

.eond-field {
    margin-bottom: 16px;
}

.eond-field label {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: #334155;
    margin-bottom: 6px;
}

.eond-field label .required {
    color: #ef4444;
}

.eond-field input[type="text"],
.eond-field input[type="email"],
.eond-field input[type="tel"],
.eond-field textarea {
    width: 100%;
    padding: 10px 16px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    font-size: 14px;
    background: #fff;
    color: #1e293b;
    transition: all 0.2s;
    font-family: inherit;
}

.eond-field input:focus,
.eond-field textarea:focus {
    outline: none;
    border-color: #ff5558;
    box-shadow: 0 0 0 2px rgba(255, 0, 4, 0.1);
}

.eond-field-row {
    display: flex;
    gap: 12px;
}

.eond-field-row > .eond-field {
    flex: 1;
    min-width: 0;
}

.eond-field-row > input {
    flex: 1;
}

.eond-field input[type="number"],
.eond-field input[type="url"],
.eond-field select {
    width: 100%;
    padding: 10px 16px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    font-size: 14px;
    background: #fff;
    color: #1e293b;
    transition: all 0.2s;
    font-family: inherit;
}

.eond-field input[type="number"]:focus,
.eond-field input[type="url"]:focus,
.eond-field select:focus {
    outline: none;
    border-color: #ff5558;
    box-shadow: 0 0 0 2px rgba(255, 0, 4, 0.1);
}

.eond-field-hint {
    font-size: 12px;
    color: #94a3b8;
    margin: 4px 0 0;
}

/* =========================================
   23. 반응형 — md (768px+)
   ========================================= */

@media (min-width: 640px) {
    .eond-product-container,
    .eond-product-header-inner,
    .eond-product-write {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

@media (min-width: 768px) {
    .eond-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .eond-product-screenshots {
        grid-template-columns: repeat(2, 1fr);
    }

    .eond-product-related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    /* 글쓰기 2컬럼 레이아웃 */
    .pw-layout {
        grid-template-columns: 1fr 320px;
    }
    .pw-sidebar {
        position: sticky;
        top: 80px;
        align-self: start;
        max-height: calc(100vh - 100px);
        overflow-y: auto;
    }
}

/* =========================================
   24. 반응형 — lg (1024px+)
   ========================================= */

@media (min-width: 1024px) {
    .eond-product-container,
    .eond-product-header-inner,
    .eond-product-write {
        padding-left: 2rem;
        padding-right: 2rem;
    }

    .eond-product-list-header {
        padding: 80px 0;  /* lg:py-20 */
    }

    .eond-product-list-title {
        font-size: 48px;
    }

    .eond-product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .eond-product-related-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    /* 글쓰기 사이드바 넓어짐 */
    .pw-layout {
        grid-template-columns: 1fr 360px;
    }

    /* 상세 헤더: flex-row + 사이드바 sticky */
    .eond-product-header {
        padding: 48px 0 64px;
    }

    .eond-product-header-inner {
        flex-direction: row;
        align-items: flex-start;
        justify-content: space-between;
    }

    .eond-product-header-info {
        max-width: 672px;
        order: 1;
    }

    .eond-product-sidebar-card {
        width: 288px;
        position: sticky;
        top: 96px;
        align-self: flex-start;
        order: 2;
    }

    .eond-product-title {
        font-size: 36px;
    }

    /* 모바일 CTA 숨기기 (lg 이상) */
    .eond-product-mobile-cta {
        display: none !important;
    }
}

/* =========================================
   25. 반응형 — 모바일 (< 768px)
   ========================================= */

@media (max-width: 767px) {
    .eond-product-list-header {
        padding: 40px 0;
    }

    .eond-product-list-title {
        font-size: 28px;
    }

    .eond-product-title {
        font-size: 24px;
    }

    .eond-product-header-btns {
        flex-direction: column;
    }

    .eond-product-header-btns .eond-product-btn-primary,
    .eond-product-header-btns .eond-product-btn-secondary {
        width: 100%;
    }

    .eond-product-tab {
        padding: 10px 12px;
        font-size: 13px;
    }

    .eond-product-review-summary-card {
        flex-direction: column;
        gap: 16px;
    }

    .eond-product-review-card {
        padding: 16px;
    }

    .eond-product-sort-btn,
    .eond-product-cat-btn {
        font-size: 13px;
        padding: 5px 12px;
    }

    .eond-product-filter-row {
        flex-direction: column;
        align-items: stretch;
    }

    .eond-product-search-form {
        max-width: 100%;
    }

    /* 글쓰기 모바일 */
    .pw-layout {
        grid-template-columns: 1fr;
    }
    .pw-field-grid.pw-grid-2,
    .pw-field-grid.pw-grid-3 {
        grid-template-columns: 1fr;
    }
    .pw-option-fields {
        grid-template-columns: 1fr 1fr;
    }
    .pw-title {
        font-size: 20px;
    }
    .pw-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* 장바구니/주문 가로 스크롤 */
    .eond-cart { overflow-x: auto; }
    .eond-cart-table { min-width: 520px; }
    .eond-orders { overflow-x: auto; }
    .eond-orders-table { min-width: 480px; }

    /* 결제 1열 */
    .eond-checkout-layout { grid-template-columns: 1fr; }
    .eond-checkout-summary { position: static; }

    /* 모바일 CTA 바 표시 */
    .eond-product-mobile-cta {
        display: flex;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 50;
        padding: 12px 16px;
        background: #fff;
        border-top: 1px solid #e2e8f0;
        box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.08);
        align-items: center;
        gap: 16px;
    }

    .eond-product-mobile-cta-price {
        font-size: 18px;
        font-weight: 700;
        color: var(--eb-accent, #e00004);
        flex-shrink: 0;
    }

    .eond-product-mobile-cta-btns {
        display: flex;
        gap: 8px;
        flex: 1;
    }

    .eond-product-mobile-cta-btns .eond-product-btn-primary {
        flex: 1;
        min-height: 40px;
        padding: 0 14px;
        font-size: 14px;
    }

    .eond-product-mobile-cta-btns .eond-product-btn-secondary {
        min-height: 40px;
        padding: 0 14px;
        font-size: 14px;
        flex-shrink: 0;
    }

    /* 하단 CTA 영역 확보 */
    .eond-product-view {
        padding-bottom: 80px;
    }

    /* 하단 여백 */
    .eond-product-view .eond-product-mobile-cta ~ * {
        /* noop — padding-bottom handles this */
    }
}

/* =========================================
   26. 반응형 — < 1024px (사이드바 풀 width)
   ========================================= */

@media (max-width: 1023px) {
    .eond-product-header-inner {
        flex-direction: column;
    }

    /* 모바일에서 사이드바가 먼저 보임 (order-1) */
    .eond-product-sidebar-card {
        width: 100%;
        order: 1;
    }

    .eond-product-header-info {
        order: 2;
    }

    .eond-checkout-layout {
        grid-template-columns: 1fr;
    }

    .eond-checkout-summary {
        position: static;
    }
}

/* =========================================
   27. 스크롤 리빌 애니메이션
   [data-reveal] — 카드/요소가 뷰포트 진입 시 아래서 위로
   ========================================= */

.eond-product-list [data-reveal] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.eond-product-list [data-reveal].revealed {
    opacity: 1;
    transform: none;
}

/* 순차 지연 */
.eond-product-list [data-reveal-delay="1"] { transition-delay: 0.1s; }
.eond-product-list [data-reveal-delay="2"] { transition-delay: 0.2s; }
.eond-product-list [data-reveal-delay="3"] { transition-delay: 0.3s; }
.eond-product-list [data-reveal-delay="4"] { transition-delay: 0.4s; }

/* =========================================
   28. 탭 콘텐츠 페이드 전환
   ========================================= */

.eond-product-tab-panel {
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.eond-product-tab-panel.tab-entering {
    opacity: 0;
    transform: translateY(8px);
}

.eond-product-tab-panel.tab-visible {
    opacity: 1;
    transform: none;
}

/* =========================================
   29. 접근성: 모션 감소 설정 대응
   ========================================= */

@media (prefers-reduced-motion: reduce) {
    .eond-product-list [data-reveal],
    .eond-product-related [data-reveal] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }

    .eond-product-tab-panel.tab-entering {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }

    .eond-product-card,
    .eond-product-card-thumb img,
    .eond-product-card-thumb-overlay {
        transition: none !important;
    }

    .eond-product-btn-primary,
    .eond-product-btn-secondary,
    .eond-product-card-btn {
        transition: none !important;
    }

    * {
        animation-duration: 0.01ms !important;
    }
}
