/* ========================================
   フッターの余白を親テーマと完全に一致
   ======================================== */

/* フッター基本設定 */
.l--footer {
    background-color: #F2FAFE !important;
    padding: 55px 0 60px !important;
    margin: 0 !important;
    position: relative !important;
    clear: both !important;
}

.l--footer__inner {
    max-width: 988px !important;
    margin: 0 auto !important;
    padding: 0 40px !important;
    text-align: center !important;
}

/* SNSリスト - 親テーマのサイズに合わせる */
.l--footer-snslist {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    margin: 0 0 60px !important;
    padding: 0 !important;
    list-style: none !important;
    text-align: center !important;
}

.l--footer-snslist li {
    letter-spacing: normal !important;
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;
}

.l--footer-snslist a {
    display: block !important;
    transition: all 0.6s ease !important;
}

.l--footer-snslist a:hover {
    opacity: 0.65 !important;
}

/* Instagram アイコン */
.l--footer-snslist a.snsIn {
    margin: 0 10px 0 0 !important;
    background-color: #5CC6FF !important;
    width: 50px !important;
    height: 50px !important;
    border-radius: 50% !important;
    background-image: url(../../kireilign-theme-2022/dist/images/common/parts/icon__sns_in.webp) !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: 21px !important;
}

/* X(Twitter) アイコン */
.l--footer-snslist a.snsX {
    margin: 0 10px 0 0 !important;
    background-color: #5CC6FF !important;
    width: 50px !important;
    height: 50px !important;
    border-radius: 50% !important;
    background-image: url(../../kireilign-theme-2022/dist/images/common/parts/icon__sns_x.webp) !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: 21px !important;
}

/* LINE アイコン */
.l--footer-snslist a.snsLi {
    margin: 0 !important;
    background-color: #00B900 !important;
    line-height: 5rem !important;
    width: 180px !important;
    height: 50px !important;
    border-radius: 25px !important;
}

.l--footer-snslist a.snsLi span {
    padding: 0 0 0 45px !important;
    display: inline-block !important;
    background-image: url(../../kireilign-theme-2022/dist/images/common/parts/icon__sns_li.webp) !important;
    background-repeat: no-repeat !important;
    background-position: left center !important;
    background-size: 34px !important;
    color: #FFF !important;
    font-weight: bold !important;
    font-size: 1.6rem !important;
}

/* フッターナビゲーション - 親テーマのスタイルに合わせる */
.l--footer-list {
    text-align: center !important;
    letter-spacing: -6.75px !important; /* 親テーマの計算値に合わせる */
    margin: 0 0 60px !important;
    padding: 0 !important;
    list-style: none !important;
}

@media screen and (min-width: 768px) {
    .l--footer-list {
        display: flex !important;
        flex-wrap: wrap !important;
        margin-bottom: 60px !important;
    }
}

.l--footer-list li {
    letter-spacing: normal !important;
    display: inline-block !important;
    margin: 0 30px !important;
}

@media screen and (min-width: 768px) {
    .l--footer-list li {
        margin: 15px 15px !important;
        width: 25% !important;
        max-width: 200px !important;
        height: auto !important;
        text-align: left !important;
    }
}

.l--footer-list li a {
    display: block !important;
    padding: 0 0 0 20px !important;
    transition: all 0.6s ease !important;
    background-image: url(../../kireilign-theme-2022/dist/images/common/parts/icon__arrow_right_df.webp) !important;
    background-repeat: no-repeat !important;
    background-position: left center !important;
    background-size: 8px !important;
    color: #888888 !important;
    text-decoration: none !important;
    font-size: 1.5rem !important;
}

.l--footer-list li a:hover {
    color: #888888 !important;
    text-decoration: underline !important;
    opacity: 0.65 !important;
}

/* コピーライト - 親テーマのスタイルに合わせる */
.l--footer-copyright {
    font-size: 1.3rem !important;
    color: #888888 !important;
    text-align: center !important;
    display: block !important;
    line-height: 1 !important;
    margin: 0 !important;
}

/* フッターCTAバナー - 親テーマの背景を維持 */
.l--bannerContact {
    /* background は親テーマから継承（波の背景画像を維持） */
    padding: 50px 20px !important; /* 適切なパディング */
    text-align: center !important;
    margin: 0 !important;
    position: relative !important;
}

.l--bannerContact__contents {
    max-width: 800px !important;
    margin: 0 auto !important;
    padding: 0 20px !important; /* 左右のパディングのみ */
    position: relative !important;
    z-index: 1 !important;
}

.shm_footer_label {
    font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif !important; /* フォント指定追加 */
    color: #333333 !important; /* 黒色に戻す */
    font-size: 18px !important; /* 親テーマと同じサイズ */
    font-weight: 400 !important; /* 通常の太さ */
    line-height: 40px !important; /* 親テーマと同じ行高 */
    margin-bottom: 20px !important;
}

.l--bannerContact-text {
    font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif !important; /* フォント指定追加 */
    color: #333333 !important; /* 黒色に戻す */
    font-size: 15px !important; /* 親テーマと同じサイズ */
    margin-bottom: 30px !important;
    line-height: 1.8 !important;
}


/* ========================================
   モバイル表示時の調整（768px以下）
   ======================================== */
@media screen and (max-width: 768px) {
    .l--footer {
        padding: 12vw 0 !important;
    }
    
    .l--footer__inner {
        padding: 0 6.6666666667vw !important;
        max-width: initial !important;
    }
    
    .l--footer-snslist {
        margin: 0 0 12vw !important;
    }
    
    .l--footer-snslist li a.snsIn {
        margin: 0 2.6666666667vw 0 0 !important;
        width: 13.3333333333vw !important;
        height: 13.3333333333vw !important;
        border-radius: 50% !important;
        background-size: 5.6vw !important;
    }
    
    .l--footer-snslist li a.snsX {
        margin: 0 2.6666666667vw 0 0 !important;
        width: 13.3333333333vw !important;
        height: 13.3333333333vw !important;
        border-radius: 50% !important;
        background-size: 5.6vw !important;
    }
    
    .l--footer-snslist li a.snsLi {
        line-height: 13.3333333333vw !important;
        width: 48vw !important;
        height: 13.3333333333vw !important;
        border-radius: 6.6666666667vw !important;
    }
    
    .l--footer-snslist li a.snsLi span {
        padding: 0 0 0 12vw !important;
        background-size: 9.0666666667vw !important;
        font-size: 4.2666666667vw !important;
    }
    
    .l--footer-list {
        margin-bottom: 13.3333333333vw !important;
    }
    
    .l--footer-list li {
        display: block !important;
        text-align: left !important;
        margin: 0 !important;
        border-bottom: 1px solid rgba(128, 200, 239, 0.29) !important;
    }
    
    .l--footer-list li:first-child {
        border-top: 1px solid rgba(128, 200, 239, 0.29) !important;
    }
    
    .l--footer-list li a {
        font-size: 4vw !important;
        padding: 6.6666666667vw 0 6.6666666667vw 8vw !important;
        background-size: 1.8666666667vw 3.4666666667vw !important;
        background-position: 4vw center !important;
        color: #666 !important;
    }
    
    .l--footer-copyright {
        font-size: 2.6666666667vw !important;
    }
    
    /* フッターCTAバナー - 親テーマの背景を維持 */
    .l--bannerContact {
        padding: 12vw 5vw !important; /* モバイル用パディング */
    }
    
    .l--bannerContact__contents {
        padding: 0 !important; /* パディングリセット */
    }
    
    .shm_footer_label {
        font-size: 18px !important; /* 親テーマと同じサイズ（固定値） */
        margin-bottom: 20px !important;
        line-height: 40px !important;
    }
    
    .l--bannerContact-text {
        font-size: 3.2vw !important; /* 親テーマのSP版サイズ */
        margin-bottom: 30px !important;
        line-height: 1.8 !important;
    }
}

/* TOPページかそれ以外で余白を一致させる */
body.home .l--footer {
    margin-top: 0 !important;
}

body:not(.home) .l--footer {
    margin-top: 0 !important;
}

/* 下層ページのフッター前の余白調整 */
body:not(.home) .l--commonLnks {
    margin-bottom: 0 !important;
}

/* ページトップへ戻るボタンの位置 */
.page--top-wrap {
    position: fixed !important;
    bottom: 20px !important;
    right: 20px !important;
    z-index: 999 !important;
}