/* ==========================================
   1. 共通設定（全デバイス共通）
   ========================================== */
* {
    font-family: 'Noto Sans JP', sans-serif;
}

img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
}



/* 基本はSP表示：PC要素は隠す */
.pc-only {
    display: none;
    overflow: hidden;
}

.sp-only {
    display: block;
    width: 100%;
}

/* スマホヘッダー：外に出しておいてOK（display: block前提） */
.sp-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px;
    width: 100%;
    box-sizing: border-box;
}

.sp-header-logo img {
    width: auto;
    max-width: 150px;
}

.sp-header-menu img {
    width: auto;
    max-width: 40px;
}

/* 共通の微調整クラス */
.img-padding {
    padding-bottom: 8%;
}

/* SP版ボタンコンテナ */
.sp-only-buttons {
    position: relative;
}

.button-container,
.button-container-fv {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: center;
    gap: 5px;
    z-index: 1;
}

.button-container {
    bottom: 10%;
}

/* ==========================================
   2. スマホ専用の設定 (max-width: 767px)
   ========================================== */
@media screen and (max-width: 767px) {
    #section-02 {
        background-image: url("../img/sp/section_2/section2-back.webp");
        background-size: 100% auto;
        ;
    }

    #section-03 {
        background-image: url("../img/sp/section_3/section3_back.webp");
        background-size: 100% auto;
    }

    .section3-width {
        width: 90%;
        margin: auto;
    }

    .section3_3 {
        margin-left: 6%;
    }

    .section4-container {
        margin-bottom: 7%;
    }

    .section11-container {
        margin-bottom: 6%;
    }

    .section14-container {
        margin-bottom: 9%;
    }

    .sp-only.footer-content {
        position: relative;
        background-image: url("../img/sp/section_15.webp");
        background-size: cover;
        background-position: center;
        height: 240px;
    }

    .footer-links-sp {
        position: absolute;
        bottom: 50%;
        left: 50%;
        transform: translateX(-50%);
        text-align: center;
        letter-spacing: 0.1em;
        font-size: 12px;
        z-index: 1;
        width: 100%;
        color: white;
    }

    .footer-links-sp a {
        color: white;
        text-decoration: none;
        margin: 0 5px;
    }

    .button-container,
    .button-container-fv {
        bottom: 2%;
        padding: 0 7px;

    }

    .button-container img,
    .button-container-fv img {
        width: 100% !important;
        max-width: none !important;

    }
}

/* ==========================================
   3. PC専用の設定 (min-width: 768px)
   ========================================== */
@media screen and (min-width: 768px) {

    /* 表示切り替え */
    .pc-only {
        display: block !important;
        width: 100%;
        overflow: hidden;
    }

    .sp-only {
        display: none !important;
    }

    /* PC版は画面幅を絞っても画像を縮小させず、中央を残して左右を切り落とす */
    .pc-only>img,
    .img-center img,
    .section04-container>img,
    .section11-container>img,
    .section14-container>img {
        /* 横幅を自動（実寸）にする */
        height: auto;
        min-width: 1200px;
        /* ★ここが重要：1200pxまでは絶対に縮小させない */
        flex-shrink: 0;
        position: relative;
        left: 50%;
        transform: translateX(-50%);
    }

    /* PCヘッダーレイアウト */
    .pc-only.pc-header {
        display: flex !important;
        justify-content: space-between;
        align-items: center;
        padding-top: 5px;
        box-sizing: border-box;
    }

    .pc-header-logo img {
        width: auto;
        max-width: 200px;
        padding-left: 30px;
    }

    .pc-header-buttons {
        display: flex;
        gap: 10px;
        padding-right: 20px;
        /* 右側の余白（必要に応じて調整） */
        width: auto;
        /* width: 100% や固定幅をやめ、中身に合わせる */
        justify-content: flex-end;
    }

    .pc-header-buttons a {
        flex: 0 1 auto;
        width: 220px;
    }

    .pc-header-buttons img {
        width: 100%;
        height: auto;
        display: block;
    }

    .logo-line {
        box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);
        position: relative;
        z-index: 10;
        padding: 5px;
    }

    /* PC版ボタン配置コンテナ */
    .section04-container,
    .section11-container,
    .section14-container {
        position: relative;
        display: block;
        /* 余計な隙間を生まないようblockに */
    }

    .fv-container {
        width: 100%;
        overflow: hidden;
        /* はみ出した画像を隠す */
        display: flex;
        justify-content: center;
        /* 中央寄せ */
        position: relative;
    }

    /* fv_1.webp の設定 */
    .fv-container>img {
        display: block;
        height: auto;

        /* 1. 1920pxなどの大画面では全域に広がる */
        width: 100%;

        /* 2. 1200pxまではこのサイズを維持（＝両端が切り落とされる） */
        min-width: 1200px;

        /* 3. 常に中央に配置 */
        position: relative;
        left: 50%;
        transform: translateX(-50%);
    }

    /* ボタンの位置調整（画像が動かないので、ボタンも中央基準で配置） */
    .fv-buttons {
        position: absolute;
        width: 26vw;
        max-width: 28rem;
        min-width: 16rem;
        left: 28%;
        /* 画像の中央から見てどの位置に置くかを計算 */
        /* 例：中央から少し左にずらす場合 */
        transform: translateX(-50%);
        bottom: 35px;
        z-index: 5;
    }

    .section04-buttons,
    .section11-buttons,
    .section14-buttons {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        display: flex;
        z-index: 1;
    }

    .fv-buttons a {
        display: block;
    }

    /* ボタンの位置調整（画像が動かないので、ボタンも中央基準で配置） */
    .fv-buttons {
        position: absolute;
        width: 28vw;
        max-width: 28rem;
        min-width: 18rem;
        left: 28%;
        /* 画像の中央から見てどの位置に置くかを計算 */
        /* 例：中央から少し左にずらす場合 */
        text-align: left;
        bottom: 40px;
        z-index: 5;
    }

    @media screen and (min-width:1200px) {
        .fv-buttons {
            position: absolute;
            width: 28vw;
            max-width: 30rem;
            min-width: 18rem;
            left: 28%;
            /* 画像の中央から見てどの位置に置くかを計算 */
            /* 例：中央から少し左にずらす場合 */
            transform: translateX(-50%);
            bottom: 45px;
            z-index: 5;
        }

        .section04-buttons {
            bottom: 40px;
        }

        .section11-buttons {
            bottom: 60px;
        }

        .section14-buttons {
            bottom: 80px;
        }

        .section04-buttons,
        .section11-buttons,
        .section14-buttons {
            width: 55%;

        }

    }

    @media screen and (max-width: 1199px) {
        .fv-buttons {
            /* 1200pxの時のサイズで完全に固定する */
            width: 350px;
            /* 1200px × 25% */
            left: 360px;
            /* 1200px × 30% */
            bottom: 40px;
            /* 1200px × 5% */

            /* 画像が中央配置(left:50%)なので、ボタンも中央から数えて配置 */
            left: 50%;
            margin-left: -440px;
            /* 中央(600px)から見て、360pxの位置にする調整 */
            transform: none;
        }

        .section04-buttons {
            bottom: 30px;
        }

        .section11-buttons {
            bottom: 45px;
        }

        .section14-buttons {
            bottom: 55px;
        }

        .section04-buttons,
        .section11-buttons,
        .section14-buttons {
            width: 700px;
            max-width: 60rem;
        }
    }

    .fv-buttons img {
        width: 100%;
        height: auto;
    }







    .section04-buttons a,
    .section11-buttons a,
    .section14-buttons a {
        flex: 1 1 0;
        min-width: 0;
    }

    .section04-buttons img,
    .section11-buttons img,
    .section14-buttons img {
        width: 100%;
        max-width: none;
        height: auto;
        display: block;
    }

    /* 真ん中寄せとサイズ調整 */
    .img-center {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 100%;
        overflow: hidden;
    }

    .img-center img {
        margin: 0 auto;

    }

    .img-minimize {
        width: 27%;
        margin: 0 auto;
    }

    .img-padding-pc {
        padding-top: 3%;
        padding-bottom: 5%;
    }

    /* PCフッター */
    .pc-only.footer-content {
        position: relative;
        background-image: url("../img/pc/section/section15.webp");
        background-size: cover;
        background-position: center;
        height: 400px;
    }

    .footer-links {
        position: absolute;
        bottom: 55%;
        left: 50%;
        transform: translateX(-50%);
        text-align: center;
        font-size: 20px;
        z-index: 1;
        width: 100%;
        color: white;
        letter-spacing: 0.1em;
    }

    .footer-links a {
        color: white;
        text-decoration: none;
        margin: 0 10px;
    }

    .copyright {
        position: absolute;
        bottom: 40%;
        left: 50%;
        transform: translateX(-50%);
        text-align: center;
        font-size: 14px;
        color: white;
        z-index: 1;
        width: 100%;
    }

    .button-container-fv {
        bottom: 2%;
    }

    .button-container img,
    .button-container-fv img {
        width: 170px !important;
        max-width: none !important;
    }
}

.copyright-sp {
    position: absolute;
    bottom: 30%;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    font-size: 8px;
    color: white;
    z-index: 1;
    width: 100%;
}

/* others.css に追記 */
.sp-nav-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.85);
    z-index: 10000;
    display: none;
    /* 最初は隠す */
    flex-direction: column;
    padding: 30px;
    box-sizing: border-box;
}

/* openクラスがついたら表示する */
.sp-nav-overlay.open {
    display: flex;
}

.sp-nav-header {
    text-align: right;
}

.sp-nav-header button {
    background: none;
    border: none;
    color: white;
    font-size: 40px;
}

.sp-nav-links {
    margin: auto;
    list-style: none;
    text-align: center;
}

.sp-nav-links li {
    margin: 25px 0;
}

.sp-nav-links a {
    color: white;
    font-size: 24px;
    text-decoration: none;
}