/* ========================================
   スライダー画像のサイズ調整（共通スタイル）
   ======================================== */

/* スライダー画像のサイズ調整 */
.sp-img-wrap {
    position: relative !important;
    width: 100% !important;
    overflow: hidden !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.sp-img-wrap .swiper-container {
    width: 100% !important;
    height: auto !important;
    position: relative !important;
}

.sp-img-wrap .swiper-slide {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    overflow: hidden !important;
    background-color: #f5f5f5 !important;
}

.sp-img-wrap .swiper-slide a {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

.sp-img-wrap .swiper-slide img.sp-elm {
    width: 100% !important;
    height: auto !important;
    max-height: 600px !important;
    object-fit: contain !important;
    object-position: center !important;
    display: block !important;
}

/* PC用スライダー（hidden-xs） */
@media screen and (min-width: 768px) {
    .sp-img-wrap.hidden-xs {
        margin-top: 0 !important;
        padding-top: 80px !important;
    }
    .sp-img-wrap.hidden-xs .swiper-slide {
        height: 500px !important;
    }
    .sp-img-wrap.hidden-xs .swiper-slide img.sp-elm {
        max-height: 500px !important;
    }
}

/* モバイル用スライダー（visible-xs） */
@media screen and (max-width: 767px) {
    .sp-img-wrap.visible-xs {
        margin-top: 0 !important;
        padding-top: 40px !important;
    }
    .sp-img-wrap.visible-xs .swiper-slide {
        height: 300px !important;
    }
    .sp-img-wrap.visible-xs .swiper-slide img.sp-elm {
        max-height: 300px !important;
    }
}

/* スライダーの高さを画像に合わせる */
.swiper-wrapper {
    display: flex !important;
    align-items: center !important;
}

/* スライダーナビゲーションボタンのスタイル */
.sp-img-wrap .swiper-button-prev,
.sp-img-wrap .swiper-button-next {
    width: 50px !important;
    height: 50px !important;
    background-color: rgba(255, 255, 255, 0.8) !important;
    border-radius: 50% !important;
    color: #333 !important;
    font-weight: bold !important;
    transition: all 0.3s ease !important;
}

.sp-img-wrap .swiper-button-prev:hover,
.sp-img-wrap .swiper-button-next:hover {
    background-color: rgba(255, 255, 255, 1) !important;
    transform: scale(1.1) !important;
}

.sp-img-wrap .swiper-button-prev:after,
.sp-img-wrap .swiper-button-next:after {
    font-size: 20px !important;
    font-weight: bold !important;
}

/* ページネーションのスタイル */
.sp-img-wrap .swiper-pagination {
    bottom: 15px !important;
}

.sp-img-wrap .swiper-pagination-bullet {
    width: 12px !important;
    height: 12px !important;
    background-color: #fff !important;
    opacity: 0.7 !important;
    margin: 0 5px !important;
    transition: all 0.3s ease !important;
}

.sp-img-wrap .swiper-pagination-bullet-active {
    background-color: #007bff !important;
    opacity: 1 !important;
    transform: scale(1.2) !important;
}

/* モバイル用ボタンサイズ調整 */
@media screen and (max-width: 767px) {
    .sp-img-wrap .swiper-button-prev,
    .sp-img-wrap .swiper-button-next {
        width: 40px !important;
        height: 40px !important;
    }
    .sp-img-wrap .swiper-button-prev:after,
    .sp-img-wrap .swiper-button-next:after {
        font-size: 16px !important;
    }
}
