/**
 * Logo slider custom CSS - Simple CSS Animation Implementation
 *
 * シンプルなCSS Animationベースのロゴスライダー
 * PC・モバイル・iPhone全対応、安定性重視の実装
 *
 * @package LogoSliderMigration
 * @version 2.0.0
 */

/* ==========================================================================
   基本コンテナ設定
   ========================================================================== */

.lsm {
    margin: 40px 0;
    padding: 0;
    background: #fff;
    overflow: hidden;
}

/* ==========================================================================
   実績バナー（独立セクション）
   ========================================================================== */

.lsm-awards {
    text-align: center;
    margin: 0 0 30px 0;
    padding: 0;
}

.lsm-awards img {
    display: inline-block;
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

/* ==========================================================================
   ロゴスライダー本体
   ========================================================================== */

.lsm-slider {
    overflow: hidden;
    position: relative;
    background: #fff;
    margin: 20px 0;
}

.lsm-slider__track {
    display: flex;
    width: max-content; /* コンテンツに応じて幅を自動調整 */
    /* アニメーション速度はJavaScriptで動的に制御 */
    animation: slide-logos linear infinite;
    will-change: transform;
}

.lsm-slide {
    flex: 0 0 auto;
    padding: 10px 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lsm-slide img {
    display: block;
    height: 80px;
    width: auto;
    max-width: 200px;
    object-fit: contain;
    transition: opacity 0.3s ease;
}

.lsm-slide img:hover {
    opacity: 0.8;
}

/* ==========================================================================
   CSS Animation定義
   ========================================================================== */

@keyframes slide-logos {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-25%);
    }
}

/* ==========================================================================
   レスポンシブ対応
   ========================================================================== */

/* タブレット（768px以下） */
@media screen and (max-width: 768px) {
    .lsm {
        margin: 30px 0;
    }
    
    .lsm-awards {
        margin: 0 0 20px 0;
    }
    
    .lsm-slider {
        margin: 15px 0;
    }
    
    .lsm-slide {
        padding: 8px 15px;
    }
    
    .lsm-slide img {
        height: 60px;
        max-width: 150px;
    }
    
    .lsm-slider__track {
        animation-duration: 30s; /* モバイルでは遅く */
    }
}

/* モバイル（480px以下） */
@media screen and (max-width: 480px) {
    .lsm {
        margin: 20px 0;
    }
    
    .lsm-awards {
        margin: 0 0 15px 0;
    }
    
    .lsm-slider {
        margin: 10px 0;
    }
    
    .lsm-slide {
        padding: 6px 12px;
    }
    
    .lsm-slide img {
        height: 50px;
        max-width: 120px;
    }
    
    .lsm-slider__track {
        animation-duration: 30s; /* モバイルでは遅く */
    }
}

/* ==========================================================================
   パフォーマンス最適化
   ========================================================================== */

/* GPU加速の促進（2Dアニメーション最適化） */
.lsm-slider__track {
    backface-visibility: hidden;
}

/* ホバー効果（軽量化） */
.lsm-slider:hover .lsm-slider__track {
    opacity: 0.9;
}

/* ==========================================================================
   アクセシビリティ対応
   ========================================================================== */

/* アニメーション無効設定のユーザー向け */
@media (prefers-reduced-motion: reduce) {
    .lsm-slider__track {
        animation: none;
    }
    
    .lsm-slider__track {
        overflow-x: auto;
        scroll-snap-type: x mandatory;
    }
    
    .lsm-slide {
        scroll-snap-align: center;
    }
}

/* ==========================================================================
   デバッグ用スタイル（開発時のみ）
   ========================================================================== */

.lsm.debug {
    border: 2px dashed #ff0000;
}

.lsm.debug .lsm-slider {
    border: 1px solid #00ff00;
}

.lsm.debug .lsm-slide {
    border: 1px solid #0000ff;
}