/* ロゴセクション全体（コンパクト化 + 白ロゴ対策背景） */
#logo {
    padding: 40px 0;
    overflow: hidden;
    /* 背景色：白ロゴが見えるよう、サイトの青に合わせた極めて薄いグレー */
    /* background-color: #f4f7f9; */
}

/* 見出し部分 */
.logo-slider__header {
    margin-bottom: 25px;
}

#logo .section__ttl {
    margin-bottom: 0.8rem;
}

/* スライダー全体のコンテナ */
.logo-slider__content {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

/* 各行のコンテナ */
.logo-slider__row {
    display: flex;
    width: 100%;
}

/* ロゴリスト本体 */
.logo-slider__list {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
}

/* ロゴアイテム（サイズ制限の強化） */
.logo-slider__list li {
    width: 140px;
    /* 幅の最大値 */
    height: 60px;
    /* 高さの最大値：縦長ロゴの巨大化を防止 */
    margin: 0 15px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ロゴ画像（歪み防止と自動リサイズ） */
.logo-slider__list img {
    max-width: 100%;
    /* 枠の幅を超えない */
    max-height: 100%;
    /* 枠の高さを超えない */
    width: auto;
    /* 比率を維持 */
    height: auto;
    /* 比率を維持 */
    object-fit: contain;
    /* 枠内に収めて歪ませない */
    filter: none;
    opacity: 1;
}

/* --- アニメーションの設定 --- */
.row-left .logo-slider__list {
    animation: scroll-left 50s infinite linear;
}

.row-right .logo-slider__list {
    animation: scroll-right 50s infinite linear;
}

@keyframes scroll-left {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

@keyframes scroll-right {
    from {
        transform: translateX(-50%);
    }

    to {
        transform: translateX(0);
    }
}

/* --- スマホ対応 --- */
@media screen and (max-width: 768px) {
    #logo {
        padding: 30px 0;
    }

    #logo .section__ttl {
        margin-bottom: 0.5rem;
    }

    .logo-slider__header {
        margin-bottom: 15px;
    }

    .logo-slider__content {
        gap: 10px;
    }

    .logo-slider__list li {
        width: 100px;
        /* スマホ時の幅制限 */
        height: 45px;
        /* スマホ時の高さ制限 */
        margin: 0 10px;
    }
}