/* 共通パーツ */
/****************** ⬛︎ここに書くもの
    ボタン
    見出し
    カード
    リストUI
    下層FV
******************/

/* ボタン基本コード */
.entry-narrow-btn,
.entry-wide-btn,
.member-black-btn,
.event-black-btn,
.member-white-btn,
.event-white-btn,
.talk-btn,
.sp_roles-talk-btn,
.courses-btn,
.return-top-btn {
    font-family: "Noto Sans JP";
    font-weight: 900;
    display: flex;
    justify-content: space-between;
    align-items: center;
    letter-spacing: 0.06em;
}

/* ==========================================================================
   1. 通常時のスタイル（PC・スマホ共通）
   ========================================================================== */
/* 黒ボタン（初期：黒に見えるが、実は白ベースの上に黒カバーを被せている） */
.entry-narrow-btn,
.entry-wide-btn,
.member-black-btn,
.event-black-btn,
.talk-btn,
.sp_roles-talk-btn,
.courses-btn,
.return-top-btn {
    color: #FFFFFF;
    background-color: #FFFFFF; /* ホバーで露出する色 */
    position: relative;
    overflow: hidden;
    transition: color 0.3s ease;
    z-index: 1;
}

/* 白ボタン（初期：白に見えるが、実は黒ベースの上に白カバーを被せている） */
.member-white-btn,
.event-white-btn {
    color: #282828;
    background-color: #000000; /* ホバーで露出する色（四隅の白残りを防ぐ） */
    position: relative;
    overflow: hidden;
    transition: color 0.3s ease;
    z-index: 1;
}

/* 全ボタン共通：上にかぶさるカバーの動き設定 */
.entry-narrow-btn::before,
.entry-wide-btn::before,
.member-black-btn::before,
.event-black-btn::before,
.talk-btn::before,
.sp_roles-talk-btn::before,
.courses-btn::before,
.return-top-btn::before,
.member-white-btn::before,
.event-white-btn::before {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    border-radius: inherit;
    transform-origin: left center;
    transform: scaleX(1);
    transition: transform 0.3s ease;
}

/* 黒ボタンのカバー色（黒） */
.entry-narrow-btn::before,
.entry-wide-btn::before,
.member-black-btn::before,
.event-black-btn::before,
.talk-btn::before,
.sp_roles-talk-btn::before,
.courses-btn::before,
.return-top-btn::before {
    background-color: #000000; 
}

/* 白ボタンのカバー色（白） */
.member-white-btn::before,
.event-white-btn::before {
    background-color: #FFFFFF; 
}


/* 全ボタンの画像トランジション */
.entry-narrow-btn img,
.entry-wide-btn img,
.member-black-btn img,
.event-black-btn img,
.member-white-btn img,
.event-white-btn img,
.talk-btn img,
.sp_roles-talk-btn img,
.courses-btn img,
.return-top-btn img {
    transition: filter 0.3s ease; 
}


/* 各ボタン固有のサイズ（PC時） */
.entry-narrow-btn {
    max-width: 185px;
    width: 100%;
    height: 42px;
    border-radius: 4px;
}
.entry-narrow-btn__p-box {
    margin-left: 45px;
}
.entry-narrow-btn p{
    transform: matrix(1, 0, -0.19, 0.98, 0, 0);
}
.entry-narrow-btn img{
    margin-right: 13px;
}

.entry-wide-btn{
    position: relative;
    max-width: 379px;
    width: 100%;
    height: 60px;
    border-radius: 6px;
}
.entry-wide-btn p{
    display: block;
    margin: 0 auto;
}
.entry-wide-btn img{
    position: absolute;
    top: 5px;
    right: 30px;
}

.member-black-btn,
.event-black-btn,
.member-white-btn,
.event-white-btn{
    max-width: 422px;
    width: 100%;
    height: 88px;
    border-radius: 6px;
}
.member-black-btn p,
.event-black-btn p,
.member-white-btn p,
.event-white-btn p{
    display: block;
    margin-left: 51px;
}
.member-black-btn img,
.event-black-btn img,
.member-white-btn img,
.event-white-btn img {
    height: 66px;
    width: auto;
    margin-right: 13px;
}

.talk-btn{
    max-width: 247px;
    width: 100%;
    height: 60px;
    border-radius: 6px;
}
.talk-btn p{
    margin-left: 24px;
}
.talk-btn img{
    margin-right: 15px;
}

.courses-btn{
    max-width: 295px;
    width: 100%;
    height: 60px;
    border-radius: 6px;
}
.courses-btn p{
    display: block;
    margin-left: 72px;
    letter-spacing: 2px;
    font-weight: 700;
}
.courses-btn img {
    width: 20px;
    height: 20px;
    margin-right: 20px;
}

.chevron-btn {
    display: inline-block;
}

.return-top-btn {
    max-width: 232px;
    width: 100%;
    height: 56px;
    margin-left: auto;
    margin-right: auto;
    border-radius: 6px;
    letter-spacing: 2px;
    font-weight: 700;
}

.return-top-btn p {
    margin-left: 45px;
}

.return-top-btn img {
    width: 20px;
    height: 20px;
    margin-right: 37px;
}

.p-fv {
    display: block;
    margin-top: 56px;
}

.s-fv {
    display: none;
}


/* ==========================================================================
   2. 【PC・マウス環境限定】マウスを乗せた（ホバーした）ときの動き
   ========================================================================== */
@media (hover: hover) {
    /* テキスト色の変化 */
    .entry-narrow-btn:hover,
    .entry-wide-btn:hover,
    .member-black-btn:hover,
    .event-black-btn:hover,
    .talk-btn:hover,
    .sp_roles-talk-btn:hover,
    .courses-btn:hover,
    .return-top-btn:hover {
        color: #000000;
    }

    .member-white-btn:hover,
    .event-white-btn:hover {
        color: #FFFFFF;
    }

    /* 全ボタン共通のアニメーション（カバーが右へ縮んでベースが左から現れる） */
    .entry-narrow-btn:hover::before,
    .entry-wide-btn:hover::before,
    .member-black-btn:hover::before,
    .event-black-btn:hover::before,
    .talk-btn:hover::before,
    .sp_roles-talk-btn:hover::before,
    .courses-btn:hover::before,
    .return-top-btn:hover::before,
    .member-white-btn:hover::before,
    .event-white-btn:hover::before {
        transform-origin: right center;
        transform: scaleX(0);
    }

    /* 全ボタンの画像反転 */
    .entry-narrow-btn:hover img,
    .entry-wide-btn:hover img,
    .member-black-btn:hover img,
    .event-black-btn:hover img,
    .member-white-btn:hover img,
    .event-white-btn:hover img,
    .talk-btn:hover img,
    .sp_roles-talk-btn:hover img,
    .courses-btn:hover img,
    .return-top-btn:hover img {
        filter: invert(1);
    }
}


/* ==========================================================================
   3. 【タッチデバイス実機限定】スマホでのホバー残像を強制カット
   ========================================================================== */
@media (hover: none) {
    /* ❌ マウスがない環境（スマホ実機）のときだけ、見た目を通常時に完全固定 */
    .entry-narrow-btn:hover, .entry-narrow-btn:focus,
    .entry-wide-btn:hover, .entry-wide-btn:focus,
    .member-black-btn:hover, .member-black-btn:focus,
    .event-black-btn:hover, .event-black-btn:focus,
    .talk-btn:hover, .talk-btn:focus,
    .sp_roles-talk-btn:hover, .sp_roles-talk-btn:focus,
    .courses-btn:hover, .courses-btn:focus,
    .return-top-btn:hover, .return-top-btn:focus {
        color: #FFFFFF !important;
    }

    .member-white-btn:hover, .member-white-btn:focus,
    .event-white-btn:hover, .event-white-btn:focus {
        color: #282828 !important;
    }
    
    .entry-narrow-btn:hover::before, .entry-narrow-btn:focus::before,
    .entry-wide-btn:hover::before, .entry-wide-btn:focus::before,
    .member-black-btn:hover::before, .member-black-btn:focus::before,
    .event-black-btn:hover::before, .event-black-btn:focus::before,
    .talk-btn:hover::before, .talk-btn:focus::before,
    .sp_roles-talk-btn:hover::before, .sp_roles-talk-btn:focus::before,
    .courses-btn:hover::before, .courses-btn:focus::before,
    .return-top-btn:hover::before, .return-top-btn:focus::before,
    .member-white-btn:hover::before, .member-white-btn:focus::before,
    .event-white-btn:hover::before, .event-white-btn:focus::before {
        transform-origin: left center !important;
        transform: scaleX(1) !important; 
    }
    
    /* 画像の反転リセット */
    .entry-narrow-btn:hover img, .entry-narrow-btn:focus img,
    .entry-wide-btn:hover img, .entry-wide-btn:focus img,
    .member-black-btn:hover img, .member-black-btn:focus img,
    .event-black-btn:hover img, .event-black-btn:focus img,
    .member-white-btn:hover img, .member-white-btn:focus img,
    .event-white-btn:hover img, .event-white-btn:focus img,
    .talk-btn:hover img, .talk-btn:focus img,
    .sp_roles-talk-btn:hover img, .sp_roles-talk-btn:focus img,
    .courses-btn:hover img, .courses-btn:focus img,
    .return-top-btn:hover img, .return-top-btn:focus img {
        filter: none !important;
    }
}


/* ==========================================================================
   4. レスポンシブ（画面幅に応じたサイズ調整・スマホのタップ処理）
   ========================================================================== */
@media screen and (max-width: 1000px) {
    .entry-narrow-btn {
        display: none;
    }
}

@media screen and (max-width: 800px) {
    .entry-narrow-btn__p-box {
        margin-left: 30px;
    }
}

@media screen and (max-width: 767px) {
    /* ⭕ JSで「is-tapped」クラスがついている瞬間（指が触れている間）だけ、最優先で反転させる */
    
    .entry-narrow-btn.is-tapped,
    .entry-wide-btn.is-tapped,
    .member-black-btn.is-tapped,
    .event-black-btn.is-tapped,
    .talk-btn.is-tapped,
    .sp_roles-talk-btn.is-tapped,
    .courses-btn.is-tapped,
    .return-top-btn.is-tapped {
        color: #000000 !important;
    }

    .member-white-btn.is-tapped,
    .event-white-btn.is-tapped {
        color: #FFFFFF !important;
    }

    /* 全ボタン共通のタップ時アニメーション */
    .entry-narrow-btn.is-tapped::before,
    .entry-wide-btn.is-tapped::before,
    .member-black-btn.is-tapped::before,
    .event-black-btn.is-tapped::before,
    .talk-btn.is-tapped::before,
    .sp_roles-talk-btn.is-tapped::before,
    .courses-btn.is-tapped::before,
    .return-top-btn.is-tapped::before,
    .member-white-btn.is-tapped::before,
    .event-white-btn.is-tapped::before {
        transform-origin: right center !important;
        transform: scaleX(0) !important; 
    }

    /* 全ボタンのタップ時画像反転 */
    .entry-narrow-btn.is-tapped img,
    .entry-wide-btn.is-tapped img,
    .member-black-btn.is-tapped img,
    .event-black-btn.is-tapped img,
    .member-white-btn.is-tapped img,
    .event-white-btn.is-tapped img,
    .talk-btn.is-tapped img,
    .sp_roles-talk-btn.is-tapped img,
    .courses-btn.is-tapped img,
    .return-top-btn.is-tapped img {
        filter: invert(1) !important;
    }

    /* 以下、SPサイズ時のレイアウト調整 */
    .talk-btn,
    .member-white-btn,
    .event-white-btn,
    .entry-wide-btn,
    .member-black-btn,
    .event-black-btn {
        max-width: 358px;
        width: 100%;
        height: 60px;
        margin-left: auto;
        margin-right: auto;
    }

    .courses-btn {
        max-width: 359px;
        width: 100%;
        height: 56px;
        margin-left: auto;
        margin-right: auto;
    }

    .sp_roles-talk-btn {
        max-width: 322px;
        width: 100%;
        height: 56px;
        border-radius: 5.65px;
        margin-left: auto;
        margin-right: auto;
    }

    .sp_roles-talk-btn p {
        margin-left: 23px;
    }

    .sp_roles-talk-btn img {
        width: 40px;
        height: 37px;
        margin-right: 16px;
    }

    .chevron-btn {
        width: 28px;
        height: 28px;
    }

    .entry-wide-btn p {
        margin-left: 24px;
    }

    .entry-wide-btn img,
    .member-black-btn img,
    .event-black-btn img,
    .member-white-btn img,
    .event-white-btn img,
    .talk-btn img {
        width: 43px;
        height: 40px;
    }

    .entry-wide-btn img {
        top: 10px;
        right: 21px;
    }

    .member-black-btn img,
    .event-black-btn img,
    .member-white-btn img,
    .event-white-btn img {
        margin-right: 25px;
    }

    .talk-btn img {
        margin-right: 21px;
    }

    .member-black-btn p,
    .event-black-btn p,
    .member-white-btn p,
    .event-white-btn p {
        margin-left: 34px;
    }

    .courses-btn p {
        margin-left: 91px;
    }

    .courses-btn img {
        margin-right: 83px;
    }

    .p-fv {
        display: none;
    }

    .s-fv {
        display: block;
    }
}

@media screen and (max-width: 380px) {
    .courses-btn p {
        margin-left: 61px;
    }

    .courses-btn img {
        margin-right: 53px;
    }
}