/**
 * 人気商品セクション専用スタイル
 * css/popular-section.css
 * @package Ezodeer_Shop
 */

/* ==========================================================================
   人気商品セクション
   ========================================================================== */
   .popular {
    position: relative;
    padding: 80px 0;
    background: #1a1a1a;
    overflow: hidden;
    transition: background-color 1s ease-out;
}

/* チェック模様の背景 */
.popular::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        linear-gradient(45deg, #333 25%, transparent 25%),
        linear-gradient(-45deg, #333 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, #333 75%),
        linear-gradient(-45deg, transparent 75%, #333 75%);
    background-size: 20px 20px;
    background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
    opacity: 0.1;
    z-index: 0;
}

/* 背景がアクティブになった時 */
.popular.bg-active::before {
    opacity: 0.1;
}

/* コンテナ */
.popular .container {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* セクションサブタイトル */
.popular .section-subtitle {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 600;
    color: #8FBC8F;
    letter-spacing: 0.2em;
    margin-bottom: 10px;
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s ease-out;
}

.popular.bg-active .section-subtitle {
    opacity: 1;
    transform: translateY(0);
}

/* セクションタイトル */
.popular .section-title {
    font-size: 3.6rem;
    font-weight: 700;
    color: #FFFFFF;
    margin-bottom: 20px;
    letter-spacing: 0.05em;
    line-height: 1.3;
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s ease-out 0.1s;
}

.popular.bg-active .section-title {
    color: #FFFFFF;
    opacity: 1;
    transform: translateY(0);
}

/* セクションテキスト */
.popular .section-text {
    font-size: 1.6rem;
    color: #CCCCCC;
    max-width: 1000px; /* 800pxから1000pxに拡張 */
    margin: 0 auto 60px;
    text-align: center;
    line-height: 1.8;
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s ease-out 0.2s;
}

.popular.bg-active .section-text {
    color: #CCCCCC;
    opacity: 1;
    transform: translateY(0);
}

/* 用途で探すセクション */
.category-search-section {
    margin-top: 60px;
    text-align: center;
}

.category-search-title {
    font-size: 2.4rem;
    font-weight: 700;
    color: #FFFFFF;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}

/* カテゴリボタン */
.category-buttons {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}

.category-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    background: rgba(255, 255, 255, 0.1);
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-radius: 25px;
    color: #FFFFFF;
    font-size: 1.4rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
}

.category-btn:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.5);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.category-btn i {
    font-size: 1.6rem;
}

/* 商品リスト */
.popular-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 40px;
    margin-bottom: 60px;
    list-style: none;
    padding: 0;
}

/* 商品カード */
.popular-card {
    background-color: rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    transition: all 0.3s ease;
    opacity: 0;
    transform: translateY(50px);
}

.popular.bg-active .popular-card {
    background-color: #FFFFFF;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    opacity: 1;
    transform: translateY(0);
}

/* カードごとのアニメーション遅延 */
.popular-list li:nth-child(1) .popular-card {
    transition-delay: 0.3s;
}

.popular-list li:nth-child(2) .popular-card {
    transition-delay: 0.4s;
}

.popular-list li:nth-child(3) .popular-card {
    transition-delay: 0.5s;
}

.popular-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}

/* カード画像 - 業務用スライダーと同じサイズ */
.popular-card .card-img {
    position: relative;
    width: 100%;
    height: 200px;
    overflow: hidden;
    margin: 0;
}

.popular-card .card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.popular-card:hover .card-img img {
    transform: scale(1.05);
}

/* カードコンテンツ - 業務用スライダーと同じパディング */
.popular-card .card-content {
    padding: 20px;
}

/* 売上情報 */
.sales-info {
    margin-top: 10px;
    padding: 8px 12px;
    background: rgba(139, 69, 19, 0.1);
    border-radius: 8px;
    border-left: 3px solid #8B4513;
}

.sales-count,
.sales-amount {
    display: block;
    font-size: 12px;
    color: #8B4513;
    font-weight: 600;
    margin-bottom: 4px;
}

.sales-count:last-child,
.sales-amount:last-child {
    margin-bottom: 0;
}

.sales-count {
    color: #8B4513;
}

.sales-amount {
    color: #D2691E;
    font-weight: 700;
}

/* 評価 - 削除済み */

/* カードサブタイトル - 削除済み */

/* カードタイトル - category-btnと統一 */
.popular-card .card-title {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 24px;
    background: rgba(255, 255, 255, 0.1);
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-radius: 25px;
    color: #FFFFFF !important;
    font-size: 1.2rem; /* category-btnより少し小さいフォントサイズ */
    font-weight: 600;
    margin-bottom: 8px;
    line-height: 1.4;
    transition: all 0.3s ease;
    text-align: center;
}

.popular.bg-active .popular-card .card-title {
    color: #FFFFFF !important;
}

/* カードタイトルのホバー効果 */
.popular-card:hover .card-title {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.5);
    color: #FFFFFF !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.popular-card .card-title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
}

.popular-card:hover .card-title a {
    color: #8FBC8F;
}

/* カードテキスト - 削除済み */

/* ボタン */
.popular .btn-primary {
    display: inline-block;
    padding: 16px 40px;
    background-color: #8FBC8F;
    color: #FFFFFF;
    font-size: 1.6rem;
    font-weight: 600;
    text-decoration: none;
    border: none;
    border-radius: 50px;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: all 0.3s ease;
    opacity: 0;
    transform: translateY(30px);
}

.popular.bg-active .btn-primary {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.6s;
}

.popular .btn-primary:hover {
    background-color: #7AAC7A;
    transform: translateY(-3px);
    box-shadow: 0 10px 20px rgba(143, 188, 143, 0.3);
}

/* 装飾要素 */
.popular::after {
    content: '';
    position: absolute;
    top: 50px;
    right: -100px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(143, 188, 143, 0.2) 0%, transparent 70%);
    border-radius: 50%;
    opacity: 0;
    transition: opacity 1s ease-out 0.5s;
    z-index: 0;
}

.popular.bg-active::after {
    opacity: 1;
}

/* レスポンシブ対応 */
@media (max-width: 1024px) {
    .popular {
        padding: 70px 0;
    }
    
    .popular-list {
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        gap: 30px;
    }
    
    .popular .section-title {
        font-size: 3rem;
    }
}

@media (max-width: 768px) {
    .popular {
        padding: 60px 0;
    }
    
    .popular .section-title {
        font-size: 2.4rem;
    }
    
    .popular .section-text {
        font-size: 1.4rem;
        margin-bottom: 40px;
    }
    
    .category-search-section {
        margin-top: 40px;
    }
    
    .category-search-title {
        font-size: 2rem;
        margin-bottom: 25px;
    }
    
    .category-buttons {
        gap: 15px;
    }
    
    .category-btn {
        padding: 10px 20px;
        font-size: 1.2rem;
    }
    
    .popular-list {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .popular-card .card-img {
        height: 240px;
    }
    
    .popular-card .card-content {
        padding: 25px;
    }
    
    .popular-card .card-title {
        font-size: 1.8rem;
    }
}

@media (max-width: 480px) {
    .popular {
        padding: 50px 0;
    }
    
    .popular .section-title {
        font-size: 2rem;
    }
    
    .category-search-section {
        margin-top: 30px;
    }
    
    .category-search-title {
        font-size: 1.8rem;
        margin-bottom: 20px;
    }
    
    .category-buttons {
        flex-direction: column;
        align-items: center;
        gap: 12px;
    }
    
    .category-btn {
        width: 100%;
        max-width: 280px;
        justify-content: center;
        padding: 12px 20px;
        font-size: 1.1rem;
    }
    
    .popular .section-subtitle {
        font-size: 1.2rem;
    }
    
    .popular-card .card-img {
        height: 200px;
    }
    
    .popular-card .card-content {
        padding: 20px;
    }
    
    .popular-card .card-title {
        font-size: 1.6rem;
    }
    
    .popular-card .card-text {
        font-size: 1.3rem;
    }
    
    .popular .btn-primary {
        padding: 14px 30px;
        font-size: 1.4rem;
    }
}

/**
 * 人気商品セクション - スライダー追加スタイル
 * css/popular-slider-addon.css
 * ※ 既存のpopular-section.cssの後に読み込む
 * @package Ezodeer_Shop
 */

/* ==========================================================================
   スライダー専用スタイル
   ========================================================================== */

/* 既存のグリッドレイアウトを上書き */
.popular-list {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    margin-bottom: 0 !important;
}

/* スライダーラッパー */
.popular-slider-wrapper {
    position: relative;
    max-width: 1400px;
    margin: 0 auto 40px;
    padding: 0 60px;
}

/* スライダーコンテナ */
.popular-slider-container {
    overflow: hidden;
    position: relative;
    /* モバイルでの見切れ対策 */
    margin: 0 -15px;
}

/* スライダー本体（.popular-listを使用） */
.popular-slider {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    /* 左右に余白を追加 */
    padding: 0 15px;
}

/* スライドアイテム - 業務用スライダーと同じサイズ */
.popular-slide-item {
    flex: 0 0 20%;
    padding: 0 10px;
    box-sizing: border-box;
    height: 300px;
}

/* 既存のカードアニメーションを調整 */
.popular-slide-item .popular-card {
    opacity: 0;
    transform: translateY(50px);
    transition: all 0.8s ease-out;
}

.popular.bg-active .popular-slide-item .popular-card {
    opacity: 1;
    transform: translateY(0);
}

/* スライダー用のアニメーション遅延 */
.popular.bg-active .popular-slide-item:nth-child(1) .popular-card { transition-delay: 0.3s; }
.popular.bg-active .popular-slide-item:nth-child(2) .popular-card { transition-delay: 0.4s; }
.popular.bg-active .popular-slide-item:nth-child(3) .popular-card { transition-delay: 0.5s; }
.popular.bg-active .popular-slide-item:nth-child(4) .popular-card { transition-delay: 0.6s; }
.popular.bg-active .popular-slide-item:nth-child(5) .popular-card { transition-delay: 0.7s; }
.popular.bg-active .popular-slide-item:nth-child(6) .popular-card { transition-delay: 0.3s; }
.popular.bg-active .popular-slide-item:nth-child(7) .popular-card { transition-delay: 0.4s; }
.popular.bg-active .popular-slide-item:nth-child(8) .popular-card { transition-delay: 0.5s; }
.popular.bg-active .popular-slide-item:nth-child(9) .popular-card { transition-delay: 0.6s; }
.popular.bg-active .popular-slide-item:nth-child(10) .popular-card { transition-delay: 0.7s; }

/* ランキングバッジ */
.ranking-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
    color: #FFFFFF;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    z-index: 2;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}

/* ナビゲーションボタン */
.slider-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 50px;
    height: 50px;
    background-color: rgba(0, 0, 0, 0.8);
    border: 2px solid #8FBC8F;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    z-index: 3;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    opacity: 0;
}

/* bg-activeになったらボタンを表示 */
.popular.bg-active .slider-nav {
    background-color: rgba(255, 255, 255, 0.9);
    opacity: 1;
    transition-delay: 1s;
}

.slider-nav-prev {
    left: 0;
}

.slider-nav-next {
    right: 0;
}

.slider-nav i {
    font-size: 24px;
    color: #8FBC8F;
}

.slider-nav:hover {
    background-color: #8FBC8F;
    transform: translateY(-50%) scale(1.1);
}

.slider-nav:hover i {
    color: #FFFFFF;
}

/* インジケーター */
.slider-indicators {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 30px;
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.5s ease;
}

.popular.bg-active .slider-indicators {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.8s;
}

.indicator {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: rgba(143, 188, 143, 0.3);
    cursor: pointer;
    transition: all 0.3s ease;
}

.indicator.active {
    background-color: #8FBC8F;
    transform: scale(1.3);
}

/* カードの高さを統一 - 業務用スライダーと同じ */
.popular-slide-item .popular-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    background: rgba(255, 255, 255, 0.1) !important;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
}

.popular-slide-item .popular-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
    background: rgba(255, 255, 255, 0.2) !important;
}

.popular-slide-item .card-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 20px;
    background: transparent !important;
}

.popular-slide-item .card-text {
    flex: 1;
}

/* より具体的なセレクターで背景色を強制 */
.popular .popular-slide-item .popular-card {
    background: rgba(255, 255, 255, 0.1) !important;
}

.popular .popular-slide-item .popular-card:hover {
    background: rgba(255, 255, 255, 0.2) !important;
}

.popular .popular-slide-item .popular-card .card-content {
    background: transparent !important;
}

/* より具体的なセレクターでフォント色を強制 */
.popular .popular-slide-item .popular-card .card-title {
    color: #FFFFFF !important;
}

.popular .popular-slide-item .popular-card:hover .card-title {
    color: #FFFFFF !important;
}

.popular.bg-active .popular-slide-item .popular-card .card-title {
    color: #FFFFFF !important;
}

/* ==========================================================================
   レスポンシブ対応（スライダー用）
   ========================================================================== */

@media (max-width: 1200px) {
    .popular-slider-wrapper {
        padding: 0 50px;
    }
}

@media (max-width: 768px) {
    .popular-slider-wrapper {
        padding: 0 40px;
        /* コンテナ全体の余白を調整 */
        margin-left: -20px;
        margin-right: -20px;
        width: calc(100% + 40px);
    }
    
    .popular-slider-container {
        /* モバイルでの見切れ対策を強化 */
        margin: 0;
        padding: 0 20px;
    }
    
    .popular-slider {
        /* スライダー自体の余白を調整 */
        padding: 0;
    }
    
    /* 3カラム表示 */
    .popular-slide-item {
        flex: 0 0 33.333%;
        padding: 0 8px; /* 左右のパディングを調整 */
    }
    
    .slider-nav {
        width: 40px;
        height: 40px;
        background-color: rgba(255, 255, 255, 0.95); /* より見やすく */
    }
    
    .slider-nav-prev {
        left: 10px; /* 位置を内側に */
    }
    
    .slider-nav-next {
        right: 10px; /* 位置を内側に */
    }
    
    .slider-nav i {
        font-size: 20px;
    }
    
    .ranking-badge {
        font-size: 1.1rem;
        padding: 6px 12px;
    }
}

@media (max-width: 480px) {
    .popular-slider-wrapper {
        padding: 0;
        margin: 0;
        width: 100%;
    }
    
    .popular-slider-container {
        padding: 0 15px;
        overflow: visible; /* 見切れ対策 */
    }
    
    /* 2カラム表示を維持 */
    .popular-slide-item {
        flex: 0 0 calc(50% - 12px); /* より正確な幅計算 */
        padding: 0;
        margin: 0 6px;
    }
    
    /* 最初と最後のアイテムの余白調整 */
    .popular-slide-item:first-child {
        margin-left: 0;
    }
    
    .popular-slide-item:last-child {
        margin-right: 0;
    }
    
    .slider-nav {
        width: 35px;
        height: 35px;
        background-color: rgba(255, 255, 255, 0.95);
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    }
    
    .slider-nav-prev {
        left: 5px;
    }
    
    .slider-nav-next {
        right: 5px;
    }
    
    .slider-nav i {
        font-size: 18px;
    }
    
    /* カードの画像高さを調整 - 業務用スライダーと同じ */
    .popular-card .card-img {
        height: 160px;
    }
    
    /* カードのパディングを調整 - 業務用スライダーと同じ */
    .popular-card .card-content {
        padding: 12px;
    }
    
        /* タイトルのフォントサイズ調整 - category-btnと統一 */
        .popular-card .card-title {
            font-size: 1rem;
            margin-bottom: 8px;
            padding: 10px 20px;
        }
    
    /* テキストを省略表示 */
    .popular-card .card-text {
        font-size: 1.2rem;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    
    .ranking-badge {
        font-size: 0.9rem;
        padding: 4px 8px;
        top: 8px;
        left: 8px;
    }
    
    .slider-indicators {
        margin-top: 20px;
    }
    
    .indicator {
        width: 10px;
        height: 10px;
    }
}