.widget_custom_html .p-widget {
    padding: 0 !important; margin: 0 !important;
    background: transparent !important; border: none !important; box-shadow: none !important;
}
.ultra-fast-slider-wrapper {
    position: relative; width: 100% !important; max-width: none !important;
    margin: 0 !important; overflow: hidden;
}
.custom-swiper-slider {
    width: 100%;
    height: 400px;
    position: relative;
}

/* 画像レベルで地域切替 */
.swiper-slide .reg-pic { display: none; }
body.pa-area-kanto  .swiper-slide .reg-kanto  { display: block; }
body.pa-area-kansai .swiper-slide .reg-kansai { display: block; }
body:not(.pa-area-kanto):not(.pa-area-kansai) .swiper-slide .reg-kansai { display: block; }

/* ★ 修正ポイント：ラッパーとスライド自体の高さを100%（400px）に強制する */
.swiper-wrapper { display: flex !important; flex-wrap: nowrap !important; height: 100% !important; }
.swiper-slide { width: 100% !important; height: 100% !important; flex-shrink: 0 !important; line-height: 0; }

/* ★ 修正ポイント：画像を包むpictureタグも100%にする */
.swiper-slide picture {
    display: block;
    width: 100%;
    height: 100%;
}

.swiper-slide img {
    width: 100%; 
    height: 100%;
    /* これで確実に400pxの枠を埋め尽くし、はみ出た左右をカットします */
    object-fit: cover;
    object-position: center;
    vertical-align: bottom;
}

/* スマホ・タブレット用（960px以下） */
@media (max-width: 960px) {
    .custom-swiper-slider { 
        height: auto; 
        aspect-ratio: auto; 
    }
    .swiper-slide picture {
        height: auto;
        aspect-ratio: 768 / 506;
    }
    .swiper-slide img { 
        object-fit: contain; 
        height: auto;
    }
    /* ③ SPのみ：ドットを画像の下に配置する追加コード */
    .ultra-fast-slider-wrapper .swiper-pagination {
        position: static !important; /* 絶対配置（画像への重ね掛け）を解除 */
        margin-top: 10px !important; /* 画像とドットの間の余白 */
        margin-bottom: 5px !important; /* ドットの下の余白 */
    }
}

.ultra-fast-slider-wrapper .swiper-pagination {
    position: absolute;
    bottom: 8px !important;
    left: 0;
    width: 100%;
    text-align: center;
    z-index: 10;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}
.ultra-fast-slider-wrapper .swiper-pagination-bullet {
    background: #ccc !important;
    opacity: 0.7 !important;
    width: 8px; height: 8px;
    margin: 0 5px !important;
    transition: all 0.3s ease;
    display: block !important;
    opacity: 0.5;
}
.ultra-fast-slider-wrapper .swiper-pagination-bullet-active {
    background: #004d2c !important;
    width: 12px; height: 12px;
}
.ultra-fast-slider-wrapper p, .ultra-fast-slider-wrapper br { display: none !important; }
@media (max-width: 960px) {
    .ultra-fast-slider-wrapper .swiper-pagination-bullet {
        width: 7px; height: 7px;
    }
    .ultra-fast-slider-wrapper .swiper-pagination-bullet-active {
        width: 10px; height: 10px;
    }
}