/*
* TOPページ用
*
*
*
*/
/* メインビジュアル用CSS */
#top_main_visual .main_slide {
    position: relative !important;
}

/* モバイルでのレイアウト調整 */
@media (max-width: 767.98px) {
    #top_main_visual .row {
        flex-direction: column;
    }

    #top_main_visual .order-1 {
        order: 1 !important;
    }

    #top_main_visual .order-2 {
        order: 2 !important;
    }

    #top_main_visual .order-3 {
        order: 3 !important;
    }

    #top_main_visual .main_slide {
        min-height: 300px !important;
        border-radius: 12px;
        overflow: hidden;
        margin-bottom: 16px;
    }

    /* サイドメニューのモバイル最適化 */
    #top_main_visual .order-2 {
        padding: 0 12px;
        /*margin: 0 16px;
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);*/
    }

    /* ボタンパネルのモバイル最適化 */
    #top_main_visual .order-3 {
        padding: 0 12px 12px 12px;
        /*margin: 0 16px 16px 16px;
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);*/
    }

    /* パディング調整 */
    #top_main_visual .main_slide_bg {
        padding: 20px !important;
    }

    /* ボタンのモバイル最適化 */
    #top_main_visual .btn {
        border-radius: 8px !important;
        font-weight: 600;
        padding: 12px 16px;
    }
}

@media (max-width: 575.98px) {

    #top_main_visual .main_slide_bg {
        padding: 16px !important;
    }

    #top_main_visual .btn {
        font-size: 14px;
    }
}

@media (min-width: 768px) {
    #top_main_visual .main_slide {
        position: absolute !important;
    }

    #top_main_visual .main_slide_bg {
        --bs-bg-opacity: 0.75;
        /* ぼかしの強さは値を調整 */
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
    }

    #top_main_visual .main_slide_btn {
        position: absolute;
    }
}

/* Swiperのカスタマイズ */
#top_main_visual .swiper {
    overflow: hidden;
}

/*
#top_main_visual .swiper-slide img {
    transition: transform 0.3s ease;
}

#top_main_visual .swiper-slide:hover img {
    transform: scale(1.05);
}*/

/* z-indexの明確な制御 */
#top_main_visual .main_slide {
    z-index: 1 !important;
}

#top_main_visual .order-2 {
    z-index: 10 !important;
}

#top_main_visual .order-3 {
    z-index: 20 !important;
}

/* ------------- 20251204 ------------- */

/* 動的タイトルの文字数制限 */
#top_main_visual .main_slide_bg .dynamic-title {
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
    width: 30ch;
    vertical-align: middle;
    line-height: 1.2;
}

#top_main_visual .main_slide_bg .dynamic-title-single {
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
    width: 30ch;
    vertical-align: middle;
    line-height: 1.2;
}

/* アイコンとテキストの位置調整 */
#top_main_visual .main_slide_bg .dynamic-title+i,
#top_main_visual .main_slide_bg i+.dynamic-title {
    vertical-align: middle;
}

/* お知らせのリンク全体の調整 */
#top_main_visual .main_slide_bg .bg-white a {
    display: flex;
    align-items: center;
    line-height: 1.4;
}

#top_main_visual .main_slide_bg .bg-white a i {
    flex-shrink: 0;
    margin-right: 0.5rem;
}

/* レスポンシブ対応 */
@media (max-width: 767.98px) {
    #top_main_visual .main_slide_bg .dynamic-title {
        width: 40ch;
        /* モバイルでは40文字 */
    }

    #top_main_visual .main_slide_bg .dynamic-title-single {
        width: 25ch;
        /* モバイルでは25文字 */
    }
}

/* v1.0 - サービス情報セクションの画像リンクホバーエフェクト */
.service-info-banners a {
    display: block;
    overflow: hidden;
    border-radius: 8px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.service-info-banners a img {
    /*transition: transform 0.3s ease;*/
    display: block;
    width: 100%;
    height: auto;
}

/*
.service-info-banners a:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

.service-info-banners a:hover img {
    transform: scale(1.05);
}*/