/* styles.css */

html {
    scroll-behavior: smooth;
    /* overflow-x: hidden; */
}
header {
    position: relative;
}
body {

    font-family: 'Yu Gothic', 'YuGothic', "ヒラギノ角ゴシック","Hiragino Kaku Gothic ProN", 'Meiryo', 'メイリオ', 'MS Pゴシック', 'Osaka', sans-serif;
    padding: 0;
    overflow-x: hidden !important;
    width: 100%;
    margin: 0 auto;

}
ul {
    list-style-type: disc;
}
input {
	-webkit-appearance: none;
	background-image: none;
	border: none;
	border-radius: 0;
	color: #fff;
	cursor: pointer;
	display: inline-block;
	font-size: 1em;
	margin: 0;
	padding: 0;
	text-decoration: none;
}
input:hover,
input:focus {
	outline: none;
}
input::-moz-foucus-inner {
	border: none;
	padding: 0;
}

#loading-mask {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #95D6EC;
    color: #D20F79;
    font-weight: bold;
    font-size: min(10vw,50px);
    text-stroke: 4.5px #D20F79;
    -webkit-text-stroke: 4.5px #D20F79;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
    opacity: 1;
    transition: opacity 1.5s ease-out; /* フェードアウト効果 */
    pointer-events: none;
}

.contentWrapper {
    position: relative;
}
.bgImg {
    position: absolute;
    top: -1px;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    z-index: -1;
    min-height: 568px; /* XD準拠 */
}
.bgImg video {
    max-height: 568px; /* XD準拠 */
}
.container {
    width: 540px; /* SP版の最大幅 */
    margin: 0 auto;
    background-color: transparent; /* 背景色を透明に設定 */
    overflow-y: scroll; /* 縦スクロール可能に */
    overflow-x: hidden;
    -ms-overflow-style: none; /* スクロールバーを非表示(Edge用) */
    scrollbar-width: none; /* スクロールバーを非表示(Firefox用) */
}
.container::-webkit-scrollbar { /* スクロールバーを非表示(Chrome & Safari用) */
    display: none;
}
button {
    padding: 0;
    border: none;
    background: transparent;
}
button img {
    display: block;
}
p { /* 文章用テキスト */
    font-size: 20px;
    font-weight: 500;
    color: #742427;
}
h1,h2,h3 {
    margin: 0;
    color: #742427;
}
h3 {
    width: fit-content;
    margin: 0 auto;
    font-size: 24px;
}
a { /* aタグ下線と文字色 */
    text-decoration: none;
    color: #742427;
}
a:active { /* aタグクリック時の文字色 */
    color: #742427;
}
a:focus { /* aタグマウスオーバー時の枠 */
    outline: none;
}
video {
    /* iPhone safariの枠線を消す */
    filter: drop-shadow(0px 0px rgba(0,0,0,0));
  
    /* PCのChromeの枠線を消す */
    outline: none;
    border: none;
}

.background-image_pc,
.background-image_sp {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.2; /* 透明度を調整 */
    z-index: -1; /* 背景に表示 */
    background-color: #94D6EB; /* 既存の背景色を保持 */
}
.background-image_sp {
    display: none;
}

/* 見出しメニューのスタイル */
.heading-menu {
    text-align: left;
    position: absolute;
    bottom: 0;
    left: calc(50% + 280px);
    z-index: 100;
}
.heading-menu ul {
    padding: 0;
    list-style: none;
    display: grid;
    margin: 0;
}
.heading-menu ul li {
    margin: 0 10px;
    padding: 5px 0;
    display: inline;
}
.heading-menu ul li a {
    text-decoration: none;
    color: #ffffff;
    /* テキスト縁取り */
    text-shadow:1px 1px 0 #000, -1px -1px 0 #000,
    -1px 1px 0 #000, 1px -1px 0 #000,
    0px 1px 0 #000,  0-1px 0 #000,
    -1px 0 0 #000, 1px 0 0 #000;
}

.errorPage {
    position: relative; /* 追加: 背景画像を正しく位置づけるため */
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100vw;
    height: 100vh;
    text-align: center;
}
.errorPageWrapper {
    /* 上記の代わりにflexboxの親要素で中央揃えを行う */
    width: 100%; /* 必要に応じて調整 */
    margin: 0 auto; /* 中央揃えのために自動マージンを適用 */
}
.errorPageWrapper p {
    margin-bottom: 30px;
    font-weight: bold;
}
.errorTitle {
    color: #D20F79;
    font-weight: bold;
    font-size: 50px;

    text-stroke: 4.5px #D20F79;
    -webkit-text-stroke: 4.5px #D20F79;
}

/* ふわっと表示するための基本スタイル */
.fadeInUp {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 3.0s ease-out, transform 3.0s ease-out;
    will-change: opacity, transform;
}
/* 表示されたときのスタイル */
.fadeInUp.is-visible {
    opacity: 1;
    transform: translateY(0);
}  

.topvw_wrapper {
    overflow: hidden; /* コンテナの外側にはみ出した部分を非表示にする */
    position: relative; /* 子要素の位置指定の基準点とする */
    width: 100%; /* 必要に応じて幅を指定、または親要素に依存させる */
    min-height: 568px; /* XD準拠 */
}

.topvw_wrapper video {
    position: absolute; /* コンテナ内で自由に位置を調整するため */
    top: 49.9%; /* 上辺をコンテナの中心に合わせる */
    left: 50%; /* 左辺をコンテナの中心に合わせる */
    transform: translate(-50%, -50%); /* 正確に中心に配置する */
    min-width: 100%; /* コンテナの幅より小さくならないように */
    min-height: 100%; /* コンテナの高さより小さくならないように */
    width: auto; /* 幅は自動調整 */
    height: auto; /* 高さは自動調整 */
    object-fit: cover; /* コンテナを覆うようにサイズ調整 */
    max-height: 568px; /* XD準拠 */
}

/* .topvw-pc { display: block !important; } */
/* .topvw-sp {
    display: block !important; 
    
} */

.section-wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 180px;
}
.sw-bgc1 {
    background-color: #95D6EC;
    margin-top: -2px;
}
.sw-bgc2 {
    background-color: #5536E9;
    background-size: 100%;
    background-repeat: repeat;
}
.sw-bgc3 {
    background-color: #FFD5F6;
    padding-bottom: 120px;
}
.section-bg {
    width: 100%;
}
.footer-bg_pc {
    display: block;
}
.footer-bg_sp {
    display: none;
}
.sw-bgc2 .section-bg {
    margin-top: -295px;
    padding-bottom: 15px;
}
.sw-bgc3 .section-bg {
    margin-top: -225px;
}
.section-style {
    max-width: 482.4px;
    margin: 0 auto;
    padding: 29px 0;
}
.info-section {
    max-width: 456px;
}
.section-title {
    width: fit-content;
    margin: 0 auto 45px;
}
.section-title img {
    max-width: 482.4px;
    margin: 0 auto 45px;
}
.games .section-title {
    margin-top: -25px;
}
.games .section-title img {
    margin: 0 auto 9px;
}
.contact .section-title {
    margin-bottom: 0;
}
.contact .section-title img {
    min-height: 57.6px;
}
.info-section h2 img {
    min-height: 57.6px;
}
.info-item {
    position: relative;
}
.info-button-wrapper {
    width: 100%;
}
.info-button {
    position: relative;
    margin: 0 auto;
    text-align: end;
}
.info-button button {
    width: fit-content;
}
.info-label {
    background-color: #fff;
    border: #D20F79 0.5px solid; /*境界線の指定*/
    color: #D20F79;
    padding: 2px 18px;
    font-size: 18px;
    top: 10px;
    left: 10px;
}
.info-label a{
    color: #D20F79;
}
.homeButton {
    padding: 8px 80px;
}
.info-date {
    color: #742427;
    font-size: 18px;
    font-weight: 500;
    margin-left: 3px;
}
.info-content {
    width: 100%;
    margin: unset;
    margin-top: 18.2px;
    font-size: 20px;
    font-weight: 500;
    color: #742427;

    /* 一行折り返しを…で省略する */
    /* white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; */

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2; /* 表示する行数 */
    overflow: hidden;
    text-overflow: ellipsis;

}
.info-detail-btn {
    position: relative;
    width: 145.5px;
    max-height: 37.5px;
    background-color: #FFACEE;
    padding: 7px 40px 7px 20px;
    margin-top: 28px;
    border-radius: 5.76px;
}
.info-detail-btn p {
    width: max-content;
    font-size: 17px;
    color: #FFFFFF;
}
.info-detail-btn img {
    position: absolute;
    right: 20px;
    top: 8.5px;
    min-width: 10px;
    min-height: 21.5px;
    pointer-events: none;
}
.info-border {
    border: none;
    border-top: 4px dotted #FFFFFF;
    margin-top: 20px;
    margin-bottom: 20px;
}

.bgcolor {
    background: linear-gradient(to bottom, rgba(214,241,243, 1) 90%, rgba(0, 0, 255, 0) 100%);
    /* background-color: #D6F1F3; */
    max-width: 100%;
}
.games article {
    /* display: flex; */
    display: block;
    background-color: #FFFFFF;
    border-radius: 10px;
    margin-bottom: 45px;
    padding-bottom: 20px;
    min-height: 600px;
}
.game-thumbnail {
    width: 482.4px; /* コンテナの幅を指定 */
    max-height: 270px; /* コンテナの高さを指定 */
    overflow: hidden; /* 余分な部分を切り取る */
    display: flex; /* Flexboxを使って中央揃えに */
    justify-content: center; /* 水平方向の中央揃え */
    align-items: center; /* 垂直方向の中央揃え */
    border-radius: 10px 10px 0 0;
}
.game-thumbnail img {
    width: 100%; /* 画像をコンテナの幅に合わせる */
    height: 200%; /* 画像をコンテナの高さに合わせる */
    object-fit: cover; /* 余分な部分を切り取り、アスペクト比を保持 */
    object-position: center; /* 画像の中心を基点に表示 */
}
.game-info {
    position: relative;
    margin: 0 auto;
    min-height: 330px;
}
.game-title {
    padding: 30px 0 0px;
    margin-bottom: 15px;
    line-height: 35px;
    /* 行以上は省略 */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1; /* 表示する行数 */
    overflow: hidden;
    text-overflow: ellipsis;
}
.game-title h3 {
    margin: 0 21px;
    font-size: 26px;
    max-height: 53px;
}
.play-button {
    position: absolute;
    width: 290px;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}
.play-button img {
    position: absolute;
    width: 43.2px;
    right: 80.5px;
    top: 38%;
    pointer-events: none;
}
.music-caution {
    position: relative;
}
.music-caution p {
    font-size: 16px;
    color: #D20F79;
    text-align: center;
    position: absolute;
    left: 0;
    right: 0;
    top: 85px;
}
.games input {
    color: #FFFFFF;
    background-color: #5536E9;
    width: 100%;
    min-height: 75px;
    font-size: 25px;
    font-weight: 600;
    padding-right: 50px;
    border-radius: 8.64px;
}
.game-info p { /* 3行以上なら表示省略 */
    margin: 0px 21px 15px;
    line-height: 30px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4; /* 表示する行数 */
    overflow: hidden;
    text-overflow: ellipsis;
    min-height: 120px;
    font-weight: 500;
}
.game-border {
    border: none;
    border-top: 0.5px solid #FFFFFF;
    margin-top: 45px;
    margin-bottom: 45px;
}
.comingsoon-wrapper {
    padding-top: 22px;
    width: 100%;
}
.comingsoon-wrapper img{
    width: 100%;
}
.comingsoon-wrapper p {
    text-align: center;
    font-weight: 600;
    color:#FF5BDE;
    margin: 15.5px 0 0;
}
.contact-ch-wrapper {
    position: relative;
    margin-bottom: 57.5px;
    min-height: 242px;
}
.contact-box {
    position: absolute;
    width: 100%;
    z-index: -1;
}
.contact-ch-wrapper p {
    margin: 0 auto;
    padding-top: 43px;
    max-width: 393px;
    text-align: center;
    line-height: 30px;
}
/* .contact-button {
    margin: 0 auto;
    width: fit-content;
    text-align: center;
} */
.contact-button{
    display: flex;
    justify-content: center;
    align-items: center;
}
.contact-button-wrapper {
    /* position: absolute; */
    color: #FFFFFF;
}
.contact-btn1 {
    bottom: 40px;
}
.contact-btn2 {
    bottom: -73px;
}
.contact-button-wrapper img {
    min-width: 10px;
    min-height: 21.5px;
    position: absolute;
    /* top:38%;
    right: 68%; */
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    pointer-events: none;
}
.contact-btn1 img {
    top:54%;
    right: 30%;
}
.contact-btn2 img {
    top:38%;
    right: 17%;
}
.contact-button-style {
    width: 290px;
    padding: 26px 35px 26px 0;
    max-height: 75px;
    font-size: 17px;
    background-color: #FFACEE;
    border-radius: 8.64px;
    /* transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%); */
}
.privacylink {
    text-decoration:underline;
}
.modalContents h4 {
    font-size: 20px;
}
.privacy {
    color: #742427;
    font-size: 14px;
    text-decoration:underline;
    /* margin: auto;
    padding: 0 !important;
    height: 0; */
    position: absolute;
    z-index: 2;
    top: 87%;
    bottom: 50%;
    right: 0;
    left: 0;
}

.footer-over {
    position: fixed;
    display: none; /* 最初は非表示 */
    z-index: 0; /* footerよりも上に表示 */
    bottom: -22px;
}
.footer-over img {
    position: relative;
    width: 1920px;
    right: 35.9%;
}
/* footer要素を画面幅全体に広げる */
footer {
    /* width: 100vw; */
    position: relative; /* 必要に応じて調整 */
    /* left: 50%;
    transform: translateX(-50%); */
    box-sizing: border-box; /* paddingとborderを幅に含める */
}
/* 必要に応じて追加のスタイリング */
footer {
    background-color: #F56ED6; /* 背景色 */
    text-align: center; /* テキストを中央揃え */
}
footer .section-bg {
    position: absolute;
    margin-top: -120px;
    right: -22.5%;
    width: 1920px;
    max-height: 398px;
}
.footer-inner {
    margin: 0 auto;
    position: relative;
}
.top-button {
    position: absolute;
    top: 0;
    right: 0;
    padding: 10px;
    z-index: 3;
}
.footer-logo {
    position: relative;
    margin: auto;
    width: 100%;
    min-height: 185px;
    background-color: #F56ED6;
}
.footer-logo img{
    z-index: 2;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    width: 350px;
}
.footer-inner p {
    text-align: center;
    font-size: 10px;
    color: #FFFFFF;
    z-index: 4;
    position: absolute;
    bottom: -50%;
    right: 0;
    left: 0;
}
.sp-br1 , .sp-br2 {
    display: none;
}

/* モーダルCSS */
.modalArea {
    display: none;
    position: fixed;
    z-index: 10; /* サイトによってこの数値は調整が必要かもしれません */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.modalBg {
    width: 100%;
    height: 100%;
    background-color: rgba(30, 30, 30, 0.9);
}

.modalWrapper {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: fit-content;
    max-height: 90%;
    max-width: 800px;
    padding: 17px 17px 17px 17px; /* すべての辺で統一されたpaddingを指定 */
    background-color: #E6E3FF;
    overflow-y: scroll; /* 常時スクロールを有効にする */
    font-size: 18px;
    color: #742427;
}

/* Firefox 向けのスクロールバーのスタイリング */
.modalWrapper {
    scrollbar-width: none; /* autoかthinだとchromeでスクロールバーとpaddingが二重になる */
    scrollbar-color: #742427 #E6E3FF; /* スクロールバーの色を指定 */
}

/* Chrome, Safari, Edge 向けのスクロールバーのスタイリング */
.modalWrapper::-webkit-scrollbar {
    /* width: 15px; */
}
.modalWrapper::-webkit-scrollbar-track {
    background: #E6E3FF; /* トラックの色 */
}
.modalWrapper::-webkit-scrollbar-thumb {
    background: #742427; /* サム（スクロールバー本体）の色 */
    border-radius: 8px; /* サムの角を丸くする */
}
.modalWrapper::-webkit-scrollbar-thumb:hover {
    background: #993f42; /* サムをホバーした時の色 */
}

.modalContents {
    min-height: fit-content;
    background-color: #ffffff;
    padding: 2vw;
    padding-left: 40px;
}
.modalContents h3 {
    margin: unset;
    font-size: 22px;
    font-weight: bold;
    color: #742427;
}
.modalContents li {
    font-size: 20px;
    margin-left: 40px;
}
.modalContents span {
    color: #742427;
    font-size: 20px;
    display: block;
    text-align: right;
}

.closeModal {
    position: fixed;
    top: 0; /* updateCloseModalPosition() で算出 */
    right: 0; /* updateCloseModalPosition() で算出 */
    z-index: 11;

    width: 30px;
    height: 30px;
    border: 2px solid #D20F79; /* 枠の調整 */
    border-radius: 50%;  /* 丸みの度合い */
    background: #fff; /* ボタンの背景色 */
    opacity: 0.7;
}
.closeModal::before, .closeModal::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 3px; /* 棒の幅（太さ） */
    height: 22px; /* 棒の高さ */
    background: #D20F79; /* バツ印の色 */
}
.closeModal::before {
transform: translate(-50%,-50%) rotate(45deg);
}
.closeModal::after {
transform: translate(-50%,-50%) rotate(-45deg);
}

/* 追従バナー */
.bottom-banner {
    position: fixed;
    bottom: 0;
    width: 100%;
    text-align: center;
    background-color: #ffffff57;
    padding: 10px 0 0 0;
    margin: 0 auto;
    z-index: 99;
}
.bottom-banner img {
    width: fit-content;
    max-height: 485px;
}
.bottom-banner_pc {
    display: block;
}
.bottom-banner_sp {
    display: none;
}


@media screen and (min-width: 851px) { /* 画面幅850px以上の場合 */
    h3 {
        font-size: 30px;
    }
}
@media screen and (max-width: 850px) { /* 画面幅850px以下の場合 */
    .bottom-banner img {
        width: 100%;
    }
    .bottom-banner_pc {
        display: none;
    }
    .bottom-banner_sp {
        display: block;
    }    

    /* .modalWrapper {
        width: 95%;
        max-height: 83%;
        margin-top: 10%;
    } */

    .heading-menu {
        position: fixed;
        bottom: 20vw;
        left: unset;
        right: 3%;
    }
}


/* 画面幅がpx以上の場合のスタイル */
@media screen and (min-width: 541px) {
    body {
        /* background-image: url('../image/logo_sp.png'); */
        background-color: #95D6EC;
        background-size: cover;
        background-position: center;
        background-attachment: fixed;
    }
    .errBody {
        background-color: #FFFFFF;
    }
    .container {
        margin: 0 auto;
        overflow-y: scroll; /* 縦スクロール可能に */
        height: 100vh;
    }
}

@media screen and (max-width: 540px) {
    .bgImg,
    .footer-over { /* PC用背景とフッター背景を非表示 */
        display: none !important;
    }
    .modalContents {
        padding: 2.5vw;
        padding-left: 25px;
    }
    .modalContents h3,
    .modalContents h4 {
        font-size: 18px;
    }
    .modalContents li {
        margin-left: 25px;
    }
    .modalContents li,
    .modalContents span {
        font-size: 14px;
    }
    .modalWrapper {
        width: 95%;
        max-height: 83%;
        margin-top: 0;
    }

    .closeModal {
        width: 23px;
        height: 23px;
        border: 2px solid #D20F79; /* 枠の調整 */
    }
    .closeModal::before, .closeModal::after {
        width: 1.5px; /* 棒の幅（太さ） */
        height: 15px; /* 棒の高さ */
        background: #D20F79; /* バツ印の色 */
    }
    

    .heading-menu {
        opacity: 0.8;
    }
    .topvw_wrapper {
        position: relative;
        width: 100%;
        overflow: hidden; /* 余白部分を隠す */
        min-height: 100vw;
    }
    .topvw_wrapper video {
        min-width: 300px;
        min-height: 300px;
        height: 101vw;
    }
    .topvw-sp {
        /* 画像をコンテナの幅に合わせ、高さは自動調整 */
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        z-index: -1;
    }
    .contentWrapper {
        max-width: 540px;
    }
    .container {
        width: 100%; /* 画面幅が540px以下の場合は幅を100%に */
        padding-top: 0; /* 疑似要素の高さ分のパディングを解除 */
        overflow: visible;
    }

    .section-title img {
        margin: 0 auto 10px;
        max-height: 75px;
    }
    .section-wrapper {
        width: 100%;
        padding-bottom: 30vw;
    }
    .info-section {
        max-width: 313px;
    }
    .info-section h2 img {
        min-height: 40px;
        max-height: 40px;
    }
    .info-content {
        font-size: 14px;
        margin-top: 10px;
        margin-bottom: 10px;
        line-height: 21px;
    }    
    p, .info-label, .info-date {
        font-size: 14px;
        /* line-height: 7.7vw; */
    }
    .info-label {
        padding: 1px 13.8px;
    }
    .info-detail-btn {
        width: 101px;
        padding: 3px 5px 3px 14px;
        margin-top: 5px;
    }
    .info-detail-btn p {
        font-size: 12px;
    }
    .info-detail-btn img {
        right: 15px;
        top: 4.8px;
        min-width: unset;
        min-height: unset;
        max-width: 7px;
        max-height: 15px;    
    }
    .info-border {
        margin-top: 20px;
        margin-bottom: 20px;
    }
    .section-style {
        max-width: 335px;
    }
    .section-title {
        margin: 0 auto 30px;
    }    
    .section-bg {
        margin-top: -53px;
    }
    .footer-bg_pc {
        display: none;
    }
    .footer-bg_sp {
        display: block;
    }    
    .games article {
        min-height: 418px;
        margin-bottom: 30px;
    }
    .game-thumbnail {
        max-width: 335px;
        max-height: 188px;
    }
    .game-title {
        padding: 20px 0 0 0;
        line-height: 23px;
    }
    .game-title h3 {
        font-size: 18px;
        max-height: 25px;
    }
    .game-info {
        min-height: 230px;
    }
    .game-info p {
        margin: 0px 21px 15px;
        line-height: 21px;
        min-height: 80px;
    }
    .play-button {
        width: 202px;
        bottom: 20px;
    }
    .play-button img {
        width: 30px;
        right: 55px;
    }
    .music-caution p {
        font-size: 12px;
        top: 55px;
    }    
    .games input {
        min-height: 52px;
        font-size: 18px;
        padding-right: 30px;        
    }
    .comingsoon-wrapper {
        padding-top: 16px;
    }
    .comingsoon-wrapper p {
        margin: 3px 0 0;
    }
    .sw-bgc2 {
        padding-bottom: 23vw;
    }
    h3 {
        font-size: 20px;
    }
    .sp-br2{
        display: block;
    }
    .contact .section-title img {
        min-height: 40px;
        margin-bottom: 25px;
    }
    .contact-ch-wrapper {
        min-height: 168px;
        margin-bottom: 40px;
    }
    .contact-ch-wrapper p {
        padding-top: 30px;
        max-width: 273px;
        line-height: 21px;
    }
    .contact-button-style {
        font-size: 12px;
    }
    .contact input {
        min-width: 202px;
        max-height: 52px;
        width: 100%;
        padding: 18px 18px 18px 0;
    }
    .contact-button-wrapper img {
        min-width: unset;
        min-height: unset;
        max-width: 8px;
        max-height: 16px;
    }
    .contact-btn1 {
        bottom: 32px;
    }
    .contact-btn2 {
        bottom: -42px;
    }
    .privacy {
        top: 85%;
        font-size: 12px;
    }
    .footer-logo p {
        line-height: 2.5vw;
        margin-bottom: 5px;
    }
    .top-button input {
        width: 10vw;
        min-width: 25px;
    }
    footer .section-bg {
        overflow-x: hidden !important;
        margin-top: -120px;
        /* right: -21vw;
        width: 345%; */
        right: 0;
        width: 100%;
    }
    .footer-logo {
        min-height: unset;
    }
    .footer-logo img{
        top: 12vw;
        width: 64%;
        max-width: 66vw;
    }
    .footer-inner p {
        bottom: -46vw;
    }
    .errorPageWrapper h1 {
        font-size: 6vw;
    }
    .background-image_sp {
        display: block;
    }
    .background-image_pc {
        display: none;
    }        

    /* 画面幅が540px以下の場合、.topvw-sp イメージに適用 */
    .topvw-sp {
        position: absolute; /* 絶対位置指定 */
        top: 50%; /* 上辺をビューポートの中心に */
        left: 50%; /* 左辺をビューポートの中心に */
        transform: translate(-50%, -50%); /* 中心を正確に合わせる */
        min-width: 100%; /* 最小幅をビューポートの幅に設定 */
        min-height: 100%; /* 最小高さをビューポートの高さに設定 */
        width: auto; /* 幅を自動調整 */
        height: auto; /* 高さを自動調整 */
    }

}

@media screen and (max-width: 414px) {
    .heading-menu {
        right: 1%;
    }
    .heading-menu img {
        width: 80%;
    }
    .footer-inner p {
        bottom: -42vw;
    }
}

/* ウインドウ高さが狭いときはフッター背景なし */
@media screen and (max-height: 550px) {
    .footer-over {
        display: none !important;
    }
}