#top_banner_slick {
    overflow: hidden;
}
/* JS読み込み・初期化前のレイアウト崩れを防ぐ */
.slick-banner-slider:not(.slick-initialized) {
    display: flex;
    justify-content: center;
    overflow: hidden;
}
.slick-banner-slider:not(.slick-initialized) .slick-slide-item {
    flex: 0 0 auto;
}
.slick-banner-slider:not(.slick-initialized) .slick-slide-item:not(:first-child) {
    display: none;
}

.slick-banner-slider {
    position: relative;
    width: 100%;
    margin: 0 auto;
}
.slick-banner-slider .slick-track {
    display: flex;
    align-items: center;
}
.slick-banner-slider .slick-track::before,
.slick-banner-slider .slick-track::after {
    display: none;
}
.slick-banner-slider .slick-slide {
    height: auto;
    float: none;
}
.slick-banner-slider .slick-slide-item {
    padding: 0 15px; /* スライド間の間隔を30pxにするため左右15pxに変更 */
    outline: none;
    width: 664px; /* 画像幅800px + 左右padding30px = 830px */
    box-sizing: border-box; /* paddingを含めて830pxに（中身の画像は800pxになる） */
}
.slick-banner-slider .slick-slide-item img {
    width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}
.slick-banner-slider .slick-prev,
.slick-banner-slider .slick-next {
    width: 50px;
    height: 50px;
    z-index: 10;
    background: #fff;
    border-radius: 50%;
    border: 1px solid #2E467C;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.slick-banner-slider .slick-prev {
    left: calc(50% - 310px - 30px) /* 800pxの半分(400px)の端から、ボタン幅(60px)の半分(30px)外側にずらすことで半分重なる */
}
.slick-banner-slider .slick-next {
    right: calc(50% - 310px - 30px)
}
.slick-banner-slider .slick-prev:before,
.slick-banner-slider .slick-next:before {
    content: '';
    display: inline-block;
    width: 10px;
    height: 10px;
    border-top: 2px solid #2E467C;
    border-left: 2px solid #2E467C;
    position: absolute;
    top: 50%;
    left: 50%;
}
.slick-banner-slider .slick-prev:before {
    transform: translate(-30%, -50%) rotate(-45deg);
}
.slick-banner-slider .slick-next:before {
    transform: translate(-70%, -50%) rotate(135deg);
}
.slick-banner-slider .slick-dots {
    bottom: -30px;
    width: 100%;
    text-align: center;
    padding: 0;
    margin: 0;
    list-style: none;
}
.slick-banner-slider .slick-dots li {
    display: inline-block;
    margin: 0 4px;
}
.slick-banner-slider .slick-dots li button {
    width: 16px;
    height: 16px;
    padding: 0;
    font-size: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    position: relative;
}
.slick-banner-slider .slick-dots li button:before {
    content: '';
    width: 16px;
    height: 16px;
    border: 2px solid #2E467C;
    border-radius: 50%;
    background-color: transparent;
    position: absolute;
    top: 0;
    left: 0;
}
.slick-banner-slider .slick-dots li.slick-active button:before {
    background-color: #2E467C;
}
@media (max-width: 1000px) {
    .slick-banner-slider .slick-slide-item {
        width: 80vw;
    }
    .slick-banner-slider .slick-prev {
        left: calc(10vw - 30px); /* 余白10vw分を考慮しつつ半分重なるように */
    }
    .slick-banner-slider .slick-next {
        right: calc(10vw - 30px);
    }
}
@media (max-width: 767px) {
    .slick-banner-slider .slick-slide-item {
        width: 85vw;
        padding: 0 5px; /* SP時は間隔を少し狭める */
    }
    .slick-banner-slider .slick-prev,
    .slick-banner-slider .slick-next {
        width: 40px;
        height: 40px;
    }
    .slick-banner-slider .slick-prev {
        left: calc(7.5vw - 20px); /* 100vw - 85vw = 15vw の半分(7.5vw)の端から、ボタン幅(40px)の半分(20px)外側にずらす */
    }
    .slick-banner-slider .slick-next {
        right: calc(7.5vw - 20px);
    }
    .slick-banner-slider .slick-prev:before,
    .slick-banner-slider .slick-next:before {
        width: 10px;
        height: 10px;
        border-width: 2px;
    }
}
