@charset "UTF-8";

/*------------------------------------
全体設定 ここから
-------------------------------------*/


/* フォント指定 */

@font-face {
    font-family: 'Intro Cond';
    src: url('../font/Intro Cond Black Free.otf') format('opentype');
}

@font-face {
    font-family: 'GenEiGothicM';
    src: url('../font/GenEiGothicM-Heavy.ttf') format('opentype');
}

@font-face {
    font-family: 'Impact';
    src: url('../font/impact.ttf') format('opentype');
}

@font-face {
    font-family: 'Ipaexm';
    src: url('../font/ipaexm.ttf') format('opentype');
}


/* スクロールバーを消す */

body::-webkit-scrollbar {
    display: none;
}


/* 初期設定 */

html {
    font-size: 62.5%;
}

body {
    width: 100%;
    font-size: 1.6rem;
    font-family: "toppan-bunkyu-midashi-go-std", sans-serif;
    font-weight: 900;
    font-style: normal;
    color: #000;
    background-color: #fff;
}

body,
header,
nav,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ol,
ul,
li,
a,
dl,
dd,
dt,
div,
span,
time,
figure,
figcaption,
article,
section,
aside {
    margin: 0px;
    padding: 0px;
    box-sizing: border-box;
    /* font-weight: normal; */
    letter-spacing: .05em;
}

img,
svg {
    vertical-align: bottom;
    width: 100%;
}

a {
    text-decoration: none;
    color: #000;
    display: inline-block;
    text-align: center;
    vertical-align: middle;
}

li {
    list-style: none;
}


/* 横幅余白設定 */

.wrap {
    width: auto;
    height: auto;
    margin: 0;
    overflow: hidden;
}

.container {
    width: auto;
    height: auto;
    /* margin: 0 5% 0 5.7%; */
    margin: 0 5.2vw 0 5.72vw;
}

@media screen and (max-width:520px) {
    .container {
        /* margin: 0 1.04vw; */
        margin: 0 4.65vw;
    }
}


/* 改行設定 */

.sp-br {
    display: none;
}


/* 480pxまでの幅の場合、brを消す */

@media screen and (max-width: 540px) {
    .pc-br {
        display: none;
    }
    .sp-br {
        display: block;
    }
}


/* PC・SPの時だけ表示切り替え */

.sp-only {
    display: none;
}


/* 520pxまでの幅の場合消す */

@media screen and (max-width: 540px) {
    .pc-only {
        display: none;
    }
    .sp-only {
        display: block;
    }
}


/* 2カラム */

.col-2 {
    width: 100%;
    display: flex;
}


/* 520pxまでの幅の場合1カラム */

@media screen and (max-width: 540px) {
    .col-2 {
        flex-wrap: wrap;
    }
}


/*--------------------------
メインビジュアル
--------------------------*/

#mainvisual {
    width: auto;
    height: 100vh;
    background-image: url(../img/mv-pc.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    position: relative;
}

.mainvisual-grid-wrap {
    padding-top: 8.75vw;
}

.main-title {
    padding-bottom: 2.60vw;
}

@media screen and (max-width: 960px) {
    #mainvisual {
        height: 40vh;
    }
}


/* グリッドレイアウト */

.mainvisual-grid-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 0px 0px;
    grid-auto-flow: row;
    grid-template-areas: "grid-01 grid-01" "grid-02 grid-03";
}

.mainvisual-grid-01 {
    grid-area: grid-01;
    width: 40.31vw;
    margin: 0 auto;
    padding-bottom: 5.36vw;
}

.mainvisual-grid-02 {
    grid-area: grid-02;
}

.mainvisual-grid-03 {
    grid-area: grid-03;
}


/* アイコン */

.mainvisual-icon {
    width: 16.04vw;
    margin: 0 1.82vw;
}

.mainvisual-icon img {
    width: 16.04vw;
    height: 16.04vw;
}

.mainvisual-icon-label {
    width: 16.04vw;
    height: 3.02vw;
    margin-top: 0.78vw;
    background: #fff;
    border-radius: 1.51vw;
    display: grid;
    place-items: center;
    font-size: 1.56vw;
}

.mainvisual-grid-02 {
    grid-area: grid-02;
    display: flex;
    justify-content: flex-end;
}

.mainvisual-grid-03 {
    grid-area: grid-03;
    display: flex;
}

@media screen and (max-width:540px) {
    #mainvisual {
        width: auto;
        height: 216.74vw;
        background-image: url(../img/mv-sp.jpg);
        background-size: cover;
        background-repeat: no-repeat;
        background-position: top;
        position: relative;
    }
    .mainvisual-grid-wrap {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: 1fr 0fr 1fr;
        gap: 0px 0px;
        grid-auto-flow: row;
        grid-template-areas: "grid-02" "grid-01" "grid-03";
        padding-top: 12.09vw;
    }
    .mainvisual-grid-02,
    .mainvisual-grid-03 {
        flex-direction: column;
    }
    .mainvisual-grid-03 {
        flex-direction: column-reverse;
    }
    .mainvisual-grid-01 {
        width: auto;
        height: 33.72vw;
        margin-bottom: 20.46vw;
        margin-top: 8.14vw;
        padding-bottom: 0;
    }
    .mainvisual-grid-02 {
        justify-content: flex-start;
    }
    /* アイコン */
    .mainvisual-icon {
        width: auto;
        margin: 0;
    }
    .mainvisual-icon img {
        width: 33.72vw;
        height: 33.72vw;
    }
    .mainvisual-icon-label {
        width: 39.53vw;
        height: 8.37vw;
        border-radius: 3.48vw;
    }
    .mainvisual-icon-label {
        font-size: 3.72vw;
        box-shadow: 0px 3px 6px rgb(0, 0, 0, 0.16);
    }
    .mainvisual-icon-01 {
        margin-left: 4.65vw;
    }
    .mainvisual-icon-02 {
        margin-left: 49.3vw;
        margin-top: -2.79vw;
    }
    .mainvisual-icon-03 {
        margin-left: 8.14vw;
        margin-top: -3.95vw;
    }
    .mainvisual-icon-04 {
        margin-left: 39.06vw;
    }
    /* ラベル位置 */
    .mainvisual-icon {
        position: relative;
    }
    .icon-label-01,
    .icon-label-02,
    .icon-label-03,
    .icon-label-04 {
        position: absolute;
    }
    .icon-label-01 {
        bottom: 3.48vw;
        left: 11.62vw;
    }
    .icon-label-02 {
        bottom: -2.32vw;
        left: -16.28vw;
    }
    .icon-label-03 {
        bottom: 3.48vw;
        left: 20.93vw;
    }
    .icon-label-04 {
        top: -8.37vw;
        left: 8.37vw;
    }
}


/*--------------------------
ハンバーガーメニュー
--------------------------*/

header {
    height: 16.28vw;
}


/* ハンバーガーメニュー */

.nav {
    position: fixed;
    top: 0;
    left: 100%;
    width: 100%;
    height: 100vh;
    background: #0628ee;
    color: #fff;
    /* 右からスライド */
    transition: left 0.5s;
    padding-top: 4.16vw;
}

.nav a {
    color: #ffffff;
}


/* ナビゲーションボタン（開く） */

#navbtn {
    position: fixed;
    top: 0;
    right: 0;
    padding: 19px;
    outline: none;
    border: none;
    background: #0628ee;
    width: 70px;
    height: 70px;
    cursor: pointer;
    z-index: 999;
}

#navbtn::before,
#navbtn::after {
    content: '';
    display: block;
    height: 3px;
    background-color: #fff;
    transform: translateY(10px);
    transition: 0.3s ease-in-out;
}

#navbtn::before {
    transform: translateY(-10px);
    box-shadow: 0 11px #fff;
}


/* ナビゲーションボタン（閉じる） */

.open #navbtn::before {
    transform: rotate(-45deg);
    box-shadow: none;
    left: 0px;
    top: 2px;
    position: relative;
}

.open #navbtn::after {
    transform: rotate(45deg);
    box-shadow: none;
}


/* ナビゲーションメニュー 開いた時*/

.open .nav {
    left: calc(100% - 31.25vw);
}


/* メニューを右に寄せる */

.nav {
    /* 右寄せ */
    margin-left: auto;
    z-index: 998;
}

.nav ul {
    display: flex;
    flex-direction: column;
}


/*------------------------------------
nav
-------------------------------------*/

.nav ul li a {
    color: #fff;
    font-size: 1.35vw;
}

.nav ul li a:hover {
    text-decoration: underline;
}

.nav-inner {
    width: 35.41vw;
    margin-left: 3.33vw;
}

.menu-list {
    width: 100%;
}

.menu-list ul li {
    margin-bottom: 2.91vw;
}

.menu-link {
    text-align: left;
}

@media(max-width: 520px) {
    /* ナビ */
    .nav {
        padding-top: 13.95vw;
    }
    .open .nav {
        left: 0;
        width: 100%;
    }
    .nav-inner {
        width: 100%;
        padding-left: 13.95vw;
        margin-left: 0;
    }
    .menu-link {
        margin-bottom: 0;
    }
    .menu-list ul li {
        margin-bottom: 40px;
    }
    .nav ul li a {
        font-size: 4.18vw;
    }
    .menu-subTitle {
        margin-bottom: 4.65vw;
    }
    .menu-item li {
        margin-bottom: 0;
    }
    .menu-subLink {
        margin-bottom: 4.65vw;
    }
    .subLink-under-wrap {
        margin-top: 0;
    }
}


/*--------------------------
cta
--------------------------*/

.cta-wrap {
    background: #FFF7D3;
    overflow: hidden;
}

.cta-content {
    padding: 5.41vw 0;
}

.cta-inner {
    width: 55%;
}

.cta-head {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 37.65vw;
    height: 5.62vw;
    margin: 0 auto;
    border: none;
    border-radius: 2.81vw;
    background-color: #0628ee;
    color: #fff;
    font-size: 1.82vw;
}

.cta-head:hover {
    background-color: #0018de;
}

.cta-list {
    padding: 2.86vw 0;
}

.cta-list ul li {
    position: relative;
    margin-left: 6.45vw;
    font-size: 1.30vw;
    line-height: 2.64;
}

.cta-list ul li::before {
    content: '';
    position: absolute;
    top: -0.52vw;
    left: -4.27vw;
    background-image: url(../img/check-icon.png);
    background-size: cover;
    background-repeat: no-repeat;
    width: 2.70vw;
    height: 3.69vw;
}

.cta-btn-app {
    margin-right: 1.30vw;
}

.cta-img {
    width: 45%;
    padding: 0 3.64vw;
}

@media screen and (max-width:540px) {
    .cta-inner {
        width: 100%;
    }
    .cta-head {
        width: 85.11vw;
        height: 12.79vw;
        border-radius: 6.51vw;
        font-size: 4.18vw;
    }
    .cta-list ul li {
        font-size: 3.72vw;
        line-height: 1.56;
        padding-bottom: 8.37vw;
        margin-left: 15.34vw;
    }
    .cta-list ul li::before {
        width: 6.28vw;
        height: 8.83vw;
        left: -10.23vw;
    }
    .cta-btn {
        margin-right: 0;
        width: 90.69vw;
        height: 25.58vw;
    }
    .cta-btn-app {
        margin-bottom: 2.32vw;
    }
    .cta-img-sp {
        width: 100%;
        height: 44.18vw;
        margin: 8.37vw 0 4.65vw;
    }
}


/*--------------------------
about
--------------------------*/

.about-content {
    padding-bottom: 6.87vw;
}

.about-head {
    padding: 4.16vw 0;
    text-align: center;
}

.about-head h2 {
    font-size: 6.77vw;
    color: #E0FF5A;
    font-family: yu-mincho-pr6n, sans-serif;
    font-style: normal;
    font-weight: 400;
    text-shadow: 1px 2px 3px #000;
}

.about-inner-left {
    width: auto;
    padding: 0 0.93vw 0 4.58vw
}

.about-box {
    width: 39.21vw;
    height: 100%;
    border: 2px solid #000;
}

.about-inner-right {
    width: auto;
    padding-left: 1.82vw;
}

.about-box h3 {
    margin: 2.18vw 0;
    height: 4.27vw;
    font-size: 2.08vw;
    color: #0628EC;
    background: #E0FF5A;
    display: grid;
    place-items: center;
}

.about-img {
    margin-left: -3.02vw;
    margin-right: 3.02vw;
}

.about-box {
    text-align: center;
}

.about-box p {
    padding: 2.6vw 0 4.35vw;
    font-size: 1.56vw;
    line-height: 1.8;
}


/* ラベル */

.about-label {
    text-align: center;
    padding-top: 3.95vw;
}

.about-label-01 {
    width: 30.52vw;
    height: 4.84vw;
}

.about-label-02 {
    width: 39.21vw;
    height: 4.84vw;
    margin-right: 0;
    margin-left: auto;
}


/* .slidein-left.animated,
.slidein-right.animated {
    opacity: 1;
    transform: translateX(0);
} */

.about-label-01,
.about-label-02 {
    background: #0628EC;
    display: grid;
    place-items: center;
    transform: skewX(-23deg);
}

.about-label-01 p,
.about-label-02 p {
    font-size: 2.29vw;
    color: #fff;
    transform: skewX(23deg);
}

.about-label img {
    width: 3.28vw;
}


/* テキスト */

.about-text {
    padding: 3.43vw 0 3.12vw;
}

.about-text p {
    font-size: 1.3vw;
    line-height: 1.8;
}


/* ボックス */

.about-bottom-box {
    width: auto;
    padding: 1.77vw 0;
    border: 2px solid #000;
    text-align: center;
}

.about-bottom-box h4 {
    font-size: 1.82vw;
    line-height: 3.9vw;
    display: inline;
    padding: 0.93vw 0;
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
}

.about-bottom-box p {
    font-size: 1.19vw;
    line-height: 1.73;
    padding-top: 1.82vw;
}

@media screen and (max-width:540px) {
    .about-content {
        padding-bottom: 10.69vw;
    }
    .about-head h2 {
        font-size: 7.9vw;
    }
    .about-inner-left {
        width: 100%;
        padding: 0 4.65vw;
    }
    .about-box {
        width: 100%;
    }
    .about-box h3 {
        height: 10.46vw;
        margin: 6.51vw 0 3.95vw;
        margin-left: -4.65vw;
        margin-right: -4.65vw;
        font-size: 4.18vw;
    }
    .about-img {
        margin: 0;
        padding: 0 5.81vw;
    }
    .about-box p {
        font-size: 3.72vw;
    }
    .about-label-01 {
        margin-left: 2.32vw;
    }
    .about-label-02 {
        margin-right: 2.32vw;
    }
    .about-label-01,
    .about-label-02 {
        width: 61.39vw;
        height: 11.16vw;
        opacity: 0;
    }
    .about-label-01 p,
    .about-label-02 p {
        font-size: 4.18vw;
    }
    .about-label img {
        width: 8.37vw;
    }
    .about-text p {
        font-size: 3.72vw;
        padding: 6.04vw 0 8.6vw;
    }
    .about-label {
        padding-top: 9.76vw;
    }
    .about-label-01 {
        margin-right: 2.32vw;
    }
    .about-inner-right {
        padding-left: 0;
    }
    .about-bottom-box {
        border: 1px solid #000;
        padding: 6.04vw 0 4.65vw;
    }
    .about-bottom-box h4 {
        font-size: 4.65vw;
        padding: 2.32vw 0;
    }
    .about-bottom-box p {
        padding-top: 8.37vw;
        font-size: 3.72vw;
    }
    .box-inner-sp {
        margin-top: 2.79vw;
    }
    /* アニメーション */
    /* アクティブなスライドインアニメーション */
    .slidein-anime.active .slideinLeft-anime {
        animation: slidein-left-active 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    }
    .slidein-anime.active .slideinRight-anime {
        animation: slidein-right-active 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    }
    /* 左からスライドイン（アクティブ時） */
    @keyframes slidein-left-active {
        0% {
            transform: translateX(-180px);
            opacity: 1;
        }
        100% {
            transform: translateX(0);
            transform: skewX(-23deg);
            opacity: 1;
        }
    }
    /* 右からスライドイン（アクティブ時） */
    @keyframes slidein-right-active {
        0% {
            transform: translateX(180px);
            opacity: 1;
        }
        100% {
            transform: translateX(0);
            transform: skewX(-23deg);
            opacity: 1;
        }
    }
}


/*--------------------------
reason
--------------------------*/

.reason-wrap {
    background-image: url(../img/reason.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
}

.reason-wrap::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgb(255 255 255 / 65%);
}


/* .reason-content {} */

.reason-head {
    width: 20.31vw;
    height: 58.33vw;
    background: #0628EC;
    position: relative;
}

.reason-head-logo {
    width: auto;
    height: 20vw;
    display: flex;
    justify-content: center;
    place-items: center;
}

.reason-head-logo img {
    width: 12.03vw;
    height: 8.33vw;
}

.reason-head-text {
    color: #fff;
    font-size: 2.34vw;
    margin: 0 auto;
    display: flex;
    justify-content: center;
}

.reason-head-text p {
    writing-mode: vertical-rl;
    line-height: 1.8;
}

.reason-head-title {
    width: 100%;
    color: #fff;
    text-align: center;
    position: absolute;
    bottom: -0.62vw;
}

.reason-head-title h2 {
    font-size: 4.11vw;
}

.reason-item-group {
    width: 54.66vw;
    margin: 0 6.66vw;
    padding: 5vw 0;
    display: flex;
    flex-wrap: wrap;
}


/* アイテム */

.reason-item-wrap {
    margin-right: 1.56vw;
    position: relative;
    z-index: 5;
    padding-bottom: 1.45vw;
}

.reason-item {
    width: 16.66vw;
    height: 16.66vw;
    border: 1px solid #0628EC;
    text-align: center;
}

.reason-number {
    width: 5.2vw;
    height: 5.2vw;
    background: #0628EC;
    color: #fff;
    font-size: 2.34vw;
    display: grid;
    place-items: center;
}

.reason-number p {
    font-family: heisei-kaku-gothic-std, sans-serif;
    font-style: normal;
    font-weight: 500;
}

.reason-item-text {
    padding-top: 2.6vw;
}

.reason-item-text p {
    font-size: 1.19vw;
    line-height: 1.5;
    padding-left: 0.52vw;
}

.reason-small {
    font-size: 0.78vw;
    line-height: 1.3;
    margin-top: 0.78vw;
}

.reason-item-bg {
    content: '';
    position: absolute;
    top: 0.62vw;
    left: 0.62vw;
    width: 16.66vw;
    height: 16.66vw;
    background: #fff;
    box-shadow: 3px 3px 4px rgb(0, 0, 0, 0.16);
    z-index: -5;
}

@media screen and (max-width:540px) {
    .reason-wrap {
        background-image: none;
    }
    .reason-wrap::before {
        display: none;
    }
    .reason-content {
        top: -7.67vw;
        position: relative;
    }
    .reason-flex {
        flex-direction: column;
        position: relative;
    }
    .reason-head {
        width: 86.51vw;
        height: 26.04vw;
        position: absolute;
        top: 0;
        right: -4.65vw;
    }
    .reason-head-text p {
        writing-mode: inherit;
        line-height: 1.4;
        font-size: 4.18vw;
    }
    .reason-head-text p span {
        display: inline-block;
        margin-left: 13.95vw;
    }
    .reason-head-logo {
        display: none;
    }
    .reason-head-text {
        padding-top: 4.65vw;
        margin-left: 9.3vw;
        justify-content: flex-start;
    }
    .reason-head-title h2 {
        font-size: 10vw;
    }
    .reason-head-title {
        width: auto;
        bottom: -2.1vw;
        margin-left: 1.39vw;
        opacity: 0.8;
        text-align: left;
    }
    .reason-img-sp {
        width: 100%;
        height: 48.14vw;
        position: relative;
        background-image: url(../img/reason-sp.jpg);
        background-size: cover;
        background-repeat: no-repeat;
        background-position: left;
    }
    .reason-item-group {
        padding: 33.02vw 0 0;
        width: auto;
        margin: 0;
        justify-content: space-between;
    }
    .reason-item-wrap {
        margin-right: 0;
    }
    .reason-item {
        width: 44.65vw;
        height: 44.65vw;
    }
    .reason-number {
        width: 13.95vw;
        height: 13.95vw;
        font-size: 8.14vw;
    }
    .reason-item-bg {
        display: none;
    }
    .reason-item-text p {
        font-size: 3.72vw;
    }
    .reason-item-text {
        padding-top: 4.18vw;
    }
    .reason-small {
        line-height: 1.5;
    }
    /* ロゴ */
    .reason-logo-sp {
        width: 100%;
        height: 100%;
        background: #0628EC;
        display: grid;
        place-items: center;
    }
    .reason-logo-sp img {
        width: 33.48vw;
        height: 23.02vw;
    }
    .rotate-zoom {
        width: 0px;
        /* 要素の初期サイズ */
        height: 0px;
        position: relative;
        opacity: 0;
        /* 最初は非表示 */
        display: flex;
        align-items: center;
        justify-content: center;
        /* 中央 */
    }
    .rotate-zoom.visible {
        opacity: 1;
        /* visibleクラスが追加されたら表示されるようにする */
    }
}


/*--------------------------
cta パターン2
--------------------------*/

.cta-text {
    padding: 2.86vw 0;
}

.circle {
    width: 11.45vw;
    height: 11.45vw;
    background: #0628EC;
    color: #fff;
    font-size: 2.6vw;
    border-radius: 50%;
    display: grid;
    place-items: center;
}

.cta-text-inner {
    width: 33.54vw;
    border-top: 2px solid #0628EC;
    border-bottom: 2px solid #0628EC;
    display: flex;
    flex-wrap: wrap;
    align-content: center;
    padding-left: 1.14vw;
}

.cta-text-03 {
    width: 35.62vw;
}

.cta-text-inner p {
    font-size: 1.56vw;
    line-height: 1.6;
}

.cta-text .col-2 {
    justify-content: space-between;
}

@media screen and (max-width:540px) {
    .cta-img-sp {
        width: 100%;
        height: 44.18vw;
    }
    .cta-img-sp img {
        width: 100%;
        height: 100%;
    }
    .cta-contents-flex {
        flex-direction: column;
        align-items: flex-end;
    }
    .cta-text {
        margin-top: -86px;
        padding: 0 0 8.37vw 0;
    }
    .circle {
        width: 30.23vw;
        height: 30.23vw;
        font-size: 6.74vw;
        margin-right: 0;
        transform: translateX(60px);
        opacity: 0;
    }
    .cta-text-inner {
        width: 100%;
        padding: 5.11vw 0;
        justify-content: center;
        margin-top: 5.58vw;
        text-align: center;
        line-height: 1.66;
    }
    .cta-text-inner p {
        font-size: 4.18vw;
        margin-left: -2.32vw;
        margin-right: -2.32vw;
    }
    /* アニメーション */
    .circle {
        opacity: 0;
    }
    .circle02.bounceAnime {
        animation: bounce 0.5s cubic-bezier(0.12, 0, 0.39, 0) 1 forwards;
    }
    .circle03.bounceAnime {
        animation: bounce 0.5s cubic-bezier(0.12, 0, 0.39, 0) 1 forwards;
    }
    .circle04.bounceAnime {
        animation: bounce 0.5s cubic-bezier(0.12, 0, 0.39, 0) 1 forwards;
    }
    @keyframes bounce {
        0% {
            transform: translateX(140px);
            opacity: 0;
        }
        50% {
            transform: translateX(0);
            opacity: 0.8;
        }
        65% {
            transform: translateX(30px);
        }
        100% {
            transform: translateX(0);
            opacity: 1;
        }
    }
}


/*--------------------------
menu
--------------------------*/

.menu-wrap {
    position: relative;
}

.menu-head {
    height: auto;
}

.menu-head h2 {
    position: absolute;
    top: 4.16vw;
    left: -2.08vw;
    font-size: 14.58vw;
    color: #E0FF5A;
    font-family: yu-mincho-pr6n, sans-serif;
    font-style: normal;
    font-weight: 400;
    text-shadow: 1px 2px 3px #000;
    writing-mode: vertical-rl;
}

.menu-content {
    padding-top: 9.37vw;
}

.menu-title {
    width: 25.52vw;
    height: 6.25vw;
    margin: 0 auto;
    display: grid;
    place-items: center;
    border-bottom: 2px solid #020202;
}

.menu-title p {
    font-size: 2.86vw;
}

.menu-item-group {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding-top: 5.52vw;
}

.menu-item {
    width: 21.61vw;
    height: 13.02vw;
    background-image: url(../img/bodycare.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
    display: grid;
    place-items: center;
    z-index: 1;
    margin-right: 1.97vw;
    margin-bottom: 1.56vw;
}

.menu-item::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgb(0 0 0 / 48%);
    /* z-index: 1; */
}

.menu-item-02 {
    background-image: url(../img/footcare.jpg);
}

.menu-item-03 {
    background-image: url(../img/headcare.jpg);
}

.menu-item-04 {
    background-image: url(../img/oiletreatment.jpg);
}

.menu-item-05 {
    background-image: url(../img/stretch.jpg);
}

.menu-item-06 {
    background-image: url(../img/tai.jpg);
}

.menu-item-07 {
    background-image: url(../img/yoga.jpg);
}

.menu-item-08 {
    background-image: url(../img/pilates.jpg);
}

.menu-item-09 {
    background-image: url(../img/training.jpg);
}

.menu-item p {
    position: absolute;
    z-index: 5;
    font-size: 1.82vw;
    color: #fff;
}

.menu-item:nth-child(3n) {
    margin-right: 0;
}

.worry {
    width: auto;
    height: 83.33vw;
    margin-top: 8.85vw;
    position: relative;
}


/* .worry-title {} */

.worry-title p {
    font-size: 2.39vw;
    line-height: 1.5;
}


/* アイテム */

.worry-item-01 {
    content: '';
    position: absolute;
    top: 0.79vw;
    left: 37.29vw;
    width: 46.35vw;
    height: 23.95vw;
    padding-left: 12.23vw;
    padding-bottom: 5.98vw;
}

.worry-item-01::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 34.16vw;
    height: 14.16vw;
    background-image: url(../img/worry-01.jpg);
    background-size: cover;
    background-repeat: no-repeat;
}

.worry-item-01::after {
    content: '身体がお疲れの方へ';
    position: absolute;
    top: 6.14vw;
    left: 17.18vw;
    padding: 1.56vw 2.08vw;
    background-color: #fff;
    font-size: 2.08vw;
}


/* 黄色の背景 */

.worry-item-bg {
    background: #E0FF5A;
    width: 100%;
    height: 100%;
}


/* アイテム */

.worry-item-02 {
    /* content: ''; */
    /* position: absolute; */
    /* top: 29.68vw; */
    /* left: 1.97vw; */
    width: 38.43vw;
    height: 21.87vw;
    padding-right: 17.18vw;
    padding-bottom: 4.16vw;
}

.worry-item-02::before {
    content: '';
    position: absolute;
    top: 7.291vw;
    left: 41.666vw;
    width: 34.16vw;
    height: 14.16vw;
    background-image: url(../img/worry-02.jpg);
    background-size: cover;
    background-repeat: no-repeat;
}

.worry-item-02::after {
    content: '運動不足の方へ';
    position: absolute;
    top: 4.68vw;
    left: 8.54vw;
    padding: 1.56vw 2.08vw;
    background-color: #fff;
    font-size: 2.08vw;
}


/* アイテム */

.worry-item-03 {
    content: '';
    position: absolute;
    top: 37.63vw;
    left: 44.27vw;
    width: 44.27vw;
    height: 20.83vw;
    padding-left: 7.29vw;
    padding-top: 5.2vw;
}

.worry-item-03::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 34.16vw;
    height: 14.16vw;
    background-image: url(../img/worry-03.jpg);
    background-size: cover;
    background-repeat: no-repeat;
}

.worry-item-03::after {
    content: 'なかなか店舗に出向けない方へ';
    position: absolute;
    top: 11.56vw;
    left: 1.56vw;
    padding: 1.56vw 2.08vw;
    background-color: #fff;
    font-size: 2.08vw;
}


/* アイテム */

.worry-item-04 {
    /* content: ''; */
    /* position: absolute; */
    /* top: 58.33vw; */
    /* left: 0; */
    margin-top: 7.2916vw;
    width: 40.78vw;
    height: 18.22vw;
    padding-left: 15.2vw;
    padding-top: 2.18vw;
}

.worry-item-04::before {
    content: '';
    position: absolute;
    top: auto;
    left: 0;
    margin-top: -2.9166vw;
    width: 34.16vw;
    height: 14.16vw;
    background-image: url(../img/worry-04.jpg);
    background-size: cover;
    background-repeat: no-repeat;
}

.worry-item-04::after {
    content: '落ち着く場所で心もスッキリしたい方へ';
    position: absolute;
    top: auto;
    left: 2.18vw;
    margin-top: -7.5vw;
    padding: 1.56vw 2.08vw;
    background-color: #fff;
    font-size: 2.08vw;
    white-space: nowrap;
}


/* 追記 */

.worry-item-column {
    display: flex;
    margin-top: 15.625vw;
}

@media screen and (max-width:540px) {
    .menu-wrap {
        overflow: hidden;
    }
    .menu-container {
        margin: 0;
    }
    .menu-head h2 {
        writing-mode: inherit;
        font-size: 18.6vw;
        top: -3.72vw;
        left: inherit;
        right: 0;
    }
    .menu-content {
        padding-top: 18.6vw;
    }
    .menu-title {
        width: 56.28vw;
        height: 11.62vw;
    }
    .menu-title p {
        font-size: 5.81vw;
    }
    .menu-item {
        min-width: 60.46vw;
        height: 36.51vw;
        margin-right: 5.58vw;
        margin-bottom: 0;
    }
    .menu-item p {
        font-size: 5.58vw;
    }
    .menu-item:nth-child(3n) {
        margin-right: 5.58vw;
    }
    .menu-item-group {
        flex-wrap: nowrap;
        justify-content: unset;
        width: auto;
    }
    .menu-flex-sp {
        display: flex;
    }
    /* スライダー */
    .loop-slider {
        animation: loop 30s infinite linear 0s both;
    }
    @keyframes loop {
        from {
            transform: translateX(0);
        }
        to {
            transform: translateX(-100%);
        }
    }
    /* お悩み */
    .worry {
        margin-top: 12.09vw;
        height: 308.83vw;
    }
    .worry-title {
        text-align: center;
    }
    .worry-title p {
        font-size: 4.65vw;
        line-height: 1.75;
    }
    /* アイテム全体の大きさ */
    .worry-item-01,
    .worry-item-03 {
        left: unset;
        right: 0;
        width: 95.34vw;
        height: 55.81vw;
    }
    .worry-item-02,
    .worry-item-04 {
        right: unset;
        left: 0;
        width: 95.34vw;
        height: 55.81vw;
    }
    /* 画像 */
    .worry-item-01::before {
        background-image: url(../img/worry-01-sp.jpg);
    }
    .worry-item-02::before {
        background-image: url(../img/worry-02-sp.jpg);
    }
    .worry-item-03::before {
        background-image: url(../img/worry-03-sp.jpg);
    }
    .worry-item-04::before {
        background-image: url(../img/worry-04-sp.jpg);
    }
    /* 黄色背景 */
    .worry-item-01,
    .worry-item-03 {
        padding-left: 50%;
        padding-bottom: 4.65vw;
        padding-top: 0;
    }
    .worry-item-02,
    .worry-item-04 {
        padding-left: 0;
        padding-right: 50%;
    }
    .worry-item-04 {
        padding-top: 0;
        padding-bottom: 4.65vw;
        bottom: 0;
    }
    /* 画像の大きさ */
    .worry-item-01::before,
    .worry-item-02::before,
    .worry-item-03::before,
    .worry-item-04::before {
        width: 90.69vw;
        height: 45.11vw;
    }
    .worry-item-01::before,
    .worry-item-03::before {
        top: 10.69vw;
        left: 0;
    }
    .worry-item-02::before,
    .worry-item-04::before {
        left: 4.65vw;
        top: unset;
        bottom: 0;
    }
    /* テキストの大きさ */
    .worry-item-01::after,
    .worry-item-02::after,
    .worry-item-03::after,
    .worry-item-04::after {
        padding: 0;
        font-size: 4.18vw;
        display: flex;
        justify-content: center;
        place-items: center;
    }
    /* テキストの背景の大きさ */
    .worry-item-01::after {
        width: 66.28vw;
        height: 11.62vw;
    }
    .worry-item-02::after {
        width: 67.44vw;
        height: 11.62vw;
    }
    .worry-item-03::after {
        width: 67.44vw;
        height: 11.62vw;
    }
    .worry-item-04::after {
        width: 86.04vw;
        height: 11.62vw;
    }
    /* テキストの位置 */
    .worry-item-01::after,
    .worry-item-03::after {
        top: 4.65vw;
        right: 0;
        left: unset;
    }
    .worry-item-02::after {
        top: 4.65vw;
        right: unset;
        left: 0;
    }
    .worry-item-04::after {
        top: 37.9069vw;
        right: unset;
        left: 0;
    }
    .worry-item-01::after,
    .worry-item-02::after,
    .worry-item-03::after,
    .worry-item-04::after {
        box-shadow: -2px 2px 3px rgb(0, 0, 0, 0.55);
    }
    /* アイテム１の位置 */
    .worry-item-01 {
        position: absolute;
        top: 30.23vw;
    }
    /* アイテム２の位置 */
    .worry-item-02 {
        position: absolute;
        top: 98.14vw;
    }
    /* アイテム３の位置 */
    .worry-item-03 {
        position: absolute;
        top: 166.97vw;
    }
    /* アイテム４の位置 */
    .worry-item-04 {
        position: absolute;
        top: 234.88vw;
        margin-top: 0;
    }
}


/*--------------------------
therapist
--------------------------*/

.therapist-wrap {
    position: relative;
}

.therapist-bg {
    position: absolute;
    top: 22.87vw;
    left: 0;
    width: 100%;
    height: 46.87vw;
    background-color: #0628EC;
    z-index: -1;
}


/* .therapist-content {} */

.therapist-head {
    width: auto;
    text-align: right;
    margin-bottom: 4.68vw;
}

.therapist-head h2 {
    font-size: 6.77vw;
    color: #0628EC;
    font-family: yu-mincho-pr6n, sans-serif;
    font-style: normal;
    font-weight: 400;
}

.therapist-item-group {
    text-align: center;
    padding-bottom: 4.94vw;
    display: flex;
    justify-content: space-between;
}

.therapist-item {
    margin-right: 5.88vw;
}

.therapist-item:nth-child(3n) {
    margin-right: 0px;
}

.therapist-img {
    width: 25.31vw;
    height: 25.31vw;
    margin-bottom: 4.27vw;
}

.therapist-box {
    width: 25.31vw;
    padding: 2.7vw 0;
    background: #fff;
}

.therapist-box p {
    font-size: 2.7vw;
}

.career-tag,
.price-tag {
    width: 17.18vw;
    height: 3.33vw;
    margin: 0 auto;
    background-color: #0628EC;
    border-radius: 1.66vw;
    display: grid;
    place-items: center;
}

.career-tag p,
.price-tag p {
    color: #fff;
    font-size: 1.56vw;
}

.career-tag {
    margin-bottom: 1.35vw;
}

.price-tag {
    margin-top: 1.66vw;
    margin-bottom: 2.29vw;
}

.price-banner {
    width: 100%;
    height: 12.13vw;
    margin: 9.06vw 0;
    border: 2px solid #0628EC;
}

.price-banner-title {
    width: 36.97vw;
    padding-left: 1.04vw;
    background-color: #0628EC;
    color: #fff;
    display: grid;
    place-items: center;
}

.price-banner-title p {
    font-size: 2.86vw;
}

.price-banner-text {
    width: auto;
    padding-top: 2.81vw;
}


/* .price-banner-text p {

} */

.price-banner-text {
    color: #0628EC;
    text-align: center;
    font-size: 2.86vw;
    margin-left: 5.2vw;
}

.price-number {
    font-size: 5.2vw;
    font-family: 'Intro Cond';
    font-weight: normal;
}

.price-center {
    font-size: 3.64vw;
    font-family: 'Zen Maru Gothic', serif;
}

.price-banner-small {
    font-size: 1.3vw;
}

@media screen and (max-width:540px) {
    .therapist-head h2 {
        font-size: 15.11vw;
    }
    .therapist-bg {
        height: 108.14vw;
        top: 48.83vw;
    }
    .therapist-item-group {
        justify-content: center;
        margin: 0 4.65vw;
        width: 81.86vw;
    }
    .therapist-item {
        width: auto;
        margin: 0 auto;
        padding: 0;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }
    .therapist-item:nth-child(2n) {
        margin-right: 0;
    }
    .therapist-item:nth-child(3n) {
        margin-right: 0;
    }
    .therapist-img {
        width: 55.81vw;
        height: 55.81vw;
        margin: 0 auto;
        margin-bottom: 5.58vw;
    }
    .therapist-box {
        width: 75.11vw;
        height: 66.96vw;
        padding: 7.9vw 0;
        margin: auto;
    }
    .career-tag {
        margin-bottom: 3.95vw;
    }
    .price-tag {
        margin: 5.58vw auto;
    }
    .career-tag,
    .price-tag {
        width: 218px;
        height: 9.76vw;
        border-radius: 4.88vw;
    }
    .career-tag p,
    .price-tag p {
        font-size: 4.41vw;
    }
    .therapist-box p {
        font-size: 7.44vw;
    }
    .price-banner {
        height: 175px;
        align-content: flex-start;
    }
    .price-banner-title {
        width: 100%;
        height: 57px;
    }
    .price-banner-title p {
        font-size: 5.81vw;
    }
    .price-banner-text {
        width: 100%;
        height: 118px;
        margin-left: 0;
        font-size: 6.28vw;
    }
    .price-number {
        font-size: 11.39vw;
    }
    .price-center {
        font-size: 7.9vw;
    }
    .price-banner-small {
        font-size: 3.48vw;
    }
}


/*--------------------------
step
--------------------------*/

.step-content {
    padding-top: 10.2vw;
}


/* レイアウト */

.step-item-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr 1fr 2fr;
    gap: 0px 0px;
    grid-auto-flow: row;
    grid-template-areas: "step-title step-item-01" "step-item-02 step-item-01" "step-item-02 step-item-03" "step-item-04 step-item-03";
}

.step-head {
    grid-area: step-title;
}

.step-item-01 {
    grid-area: step-item-01;
}

.step-item-02 {
    grid-area: step-item-02;
}

.step-item-03 {
    grid-area: step-item-03;
}

.step-item-04 {
    grid-area: step-item-04;
}


/* タイトル */


/* .step-item-group {} */

.step-head {
    position: relative;
}

.step-head-inner {
    display: flex;
    color: #0628EC;
}

.step-head-inner p {
    font-size: 18.22vw;
    margin-right: 1.56vw;
    /* font-family: "Futura-Black", sans-serif; */
    /* font-family: 'GenEiGothicM', sans-serif; */
    font-family: 'Intro Cond';
    font-weight: normal;
}

.step-head-inner h2 {
    width: 100%;
    font-size: 6.77vw;
    position: relative;
    padding-top: 9.47vw;
    font-family: yu-mincho-pr6n, sans-serif;
    font-style: normal;
    font-weight: 400;
}

.step-head-inner h2::before {
    content: 'ご利用の流れ';
    position: absolute;
    top: 5.2vw;
    left: 0;
    font-size: 2.6vw;
    font-family: toppan-bunkyu-midashi-go-std, sans-serif;
    font-style: normal;
    font-weight: 900;
}

.step-circle {
    width: 13.54vw;
    height: 13.54vw;
    border-radius: 50%;
    background: #E0FF5A;
    display: grid;
    place-items: center;
    position: absolute;
    top: -6.77vw;
    left: 27.18vw;
}

.step-circle p {
    font-size: 3.12vw;
}


/* 光るアニメーション */

.shine {
    /* overflow: hidden; */
    position: relative;
}

.shine::after {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: -100%;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0) 28%, rgba(255, 255, 255, 0.75) 32%, rgba(255, 255, 255, 0.75) 78%, rgba(255, 255, 255, 0) 82%);
    animation: shine-loop 3s linear infinite;
}

@keyframes shine-loop {
    0% {
        transform: translateX(0);
    }
    10% {
        transform: translateX(200%);
    }
    100% {
        transform: translateX(200%);
    }
}


/* アイテム共通 */

.step-item-img {
    width: 38.33vw;
    height: 22.65vw;
}

.step-item {
    padding-top: 3.43vw;
    position: relative;
}


/* アイテム */

.step-item-01 {
    width: 100%;
    height: 55.83vw;
}

.step-item-inner {
    padding-top: 2.7vw;
    margin-left: 5.93vw;
}

.step-item-title {
    display: flex;
}

.step-item-number {
    width: 5.1vw;
    height: 5.1vw;
    background: #0628EC;
    display: grid;
    place-items: center;
}

.step-item-number p {
    color: #fff;
    font-size: 2.86vw;
}

.step-item-title h3 {
    font-size: 3.38vw;
    margin-left: 2.08vw;
    display: grid;
    place-items: center;
}

.step-item-text {
    padding-top: 2.7vw;
}

.step-item-text p {
    font-size: 1.3vw;
    line-height: 1.8;
}

.step-item-bg {
    width: 38.33vw;
    height: 22.65vw;
    background: #E0FF5A;
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1;
}


/* 矢印 */

.arrow {
    width: 5.2vw;
    height: 5.2vw;
}

.arrow-01 {
    transform: rotate(34deg);
    position: absolute;
    bottom: -8.62vw;
    left: 5.12vw;
}

.arrow-02 {
    transform: rotate(135deg);
    position: absolute;
    bottom: -0.62vw;
    right: 11.62vw;
}


/* .arrow-01 {
    transform: rotate(34deg);
    position: absolute;
    bottom: -0.62vw;
    left: 3.12vw;
} */

.step-item-02,
.step-item-04 {
    margin-top: 3.75vw;
}


/* 02 04 */

.step-even {
    margin-left: 3.54vw;
}

.step-even-img {
    width: 100%;
    text-align: right;
}

.step-even-img img {
    width: 38.33vw;
    height: 22.65vw;
}

.step-even-bg {
    left: 0;
}

@media screen and (max-width:540px) {
    .step-content {
        padding-bottom: 18.6vw;
    }
    /* ステップ */
    .step-item-group {
        display: block;
    }
    .step-head-inner {
        padding-left: 33.72vw;
    }
    .step-head-inner p {
        font-size: 27.9vw;
    }
    .step-head-inner h2 {
        font-size: 12.79vw;
    }
    .step-head-inner h2::before {
        font-size: 4.65vw;
        top: 3.48vw;
    }
    /* 登録簡単 */
    .step-circle {
        width: 25.58vw;
        height: 25.58vw;
        top: -2.32vw;
        left: 5.34vw;
    }
    .step-circle p {
        font-size: 5.81vw;
    }
    /* 矢印 */
    .arrow-01,
    .arrow-02 {
        display: none;
    }
    /* 黄色背景 */
    .step-item-bg {
        display: none;
    }
    .step-item-inner {
        margin-left: 0;
    }
    .step-item-01 {
        width: auto;
        height: auto;
    }
    .step-item-img {
        width: 100%;
        height: 35.58vw;
    }
    .step-item-number {
        width: 9.3vw;
        height: 9.3vw;
    }
    .step-item-number p {
        font-size: 5.58vw;
    }
    .step-item-title h3 {
        font-size: 5.81vw;
    }
    .step-item-text p {
        font-size: 3.72vw;
    }
    /* コンテンツ上余白 */
    .step-item-02,
    .step-item-03,
    .step-item-04 {
        margin-top: 15.81vw;
    }
    /* タイトル上余白 */
    .step-item-inner {
        padding-top: 3.72vw;
    }
    /* 画像の大きさ調整 */
    .step-even-img img {
        width: 100%;
        height: 35.58vw;
    }
}


/*--------------------------
voice
--------------------------*/

.voice-head {
    width: 100%;
    height: 19.27vw;
}

.voice-head h2 {
    font-size: 6.77vw;
    color: #0628EC;
    padding-top: 3.12vw;
    position: relative;
    font-family: yu-mincho-pr6n, sans-serif;
    font-style: normal;
    font-weight: 400;
}

.voice-head h2::after {
    content: 'ご利用者様の声';
    position: absolute;
    top: 10.93vw;
    left: 5.2vw;
    color: #000;
    font-size: 2.08vw;
    font-family: toppan-bunkyu-midashi-go-std, sans-serif;
    font-style: normal;
    font-weight: 900;
}

.voice-bg {
    background: #0628EC;
    margin-left: -5.2vw;
    margin-right: -5.2vw;
}

.voice-inner {
    margin: 0 5.2vw 0 5.72vw;
}

.voice-item-group {
    padding: 5.36vw 0 5.36vw;
    display: flex;
    justify-content: space-between;
}

.voice-item {
    width: 27.91vw;
    text-align: center;
}

.voice-item-title {
    font-size: 2.08vw;
    color: #fff;
    text-align: center;
    margin-bottom: 2.91vw;
}

.voice-item-box {
    width: 100%;
    height: 31.45vw;
    background-image: url(../img/voice-box-bg.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding-top: 4.27vw;
}

.voice-icon {
    width: 6.25vw;
    height: 6.25vw;
    margin: 0 auto;
}

.voice-item-text {
    margin-top: 2.08vw;
    font-size: 1.19vw;
}

.voice-item-text p {
    line-height: 1.7;
}

@media screen and (max-width:540px) {
    .voice-head {
        height: 41.86vw;
        text-align: center;
    }
    .voice-head h2 {
        font-size: 13.95vw;
        padding-top: 10.46vw;
    }
    .voice-head h2::after {
        top: unset;
        left: 122px;
        bottom: -5.58vw;
        font-size: 4.65vw;
    }
    .voice-bg {
        height: auto;
    }
    .voice-item {
        width: 90.69vw;
        margin-right: 8.37vw;
    }
    .voice-item-group {
        display: flex;
        flex-wrap: nowrap;
        justify-content: unset;
    }
    .voice-item-title {
        font-size: 5.81vw;
    }
    .voice-item-box {
        width: 90.69vw;
        height: 100vw;
        padding-top: 15.58vw;
    }
    .voice-icon {
        width: 20.46vw;
        height: 20.23vw;
    }
    .voice-item-text p {
        font-size: 3.48vw;
        padding-top: 5.58vw;
    }
}


/*--------------------------
message
--------------------------*/

.message-wrap {
    height: 73.95vw;
    background-image: url(../img/message.jpg);
    background-size: cover;
    background-repeat: no-repeat;
}

.message-contents {
    padding-top: 8.33vw;
}

.message-text {
    width: 52.5vw;
    height: 56.77vw;
    margin-right: 0;
    margin-left: auto;
    /* background: #fff; */
    background-image: url(../img/message-white.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.56vw;
    position: relative;
}

.message-text p {
    line-height: 1.83;
    font-family: 'Ipaexm';
    font-weight: normal;
}

@media screen and (max-width:540px) {
    .message-wrap {
        height: auto;
        background-image: none;
    }
    .message-contents {
        padding-top: 0;
    }
    .message-text {
        width: 92.55vw;
        height: auto;
        text-align: center;
    }
    .message-text p {
        font-size: 4.18vw;
    }
    /* SP時のタイトル */
    .message-title {
        width: 100%;
        height: 39.53vw;
        display: grid;
        place-items: center;
    }
    .message-title h2 {
        font-size: 13.95vw;
        color: #0628EC;
    }
    .message-img-sp {
        width: 100vw;
        margin: 0 calc(50% - 50vw);
        height: 66.74vw;
        margin-top: 10.69vw;
    }
    .message-img-sp img {
        width: 100%;
        height: 100%;
    }
}


/*--------------------------
ハンバーガーメニュー内のページ
--------------------------*/


/*--------------------------
アプリ
--------------------------*/

.app-content {
    padding: 6.98vw 0;
}

.app-frame {
    width: 100%;
    height: 36.87vw;
    background: #E5FCFF;
    border: 5px solid #0628EC;
    border-radius: 18.43vw;
}

.app-flex {
    justify-content: center;
}

.app-inner {
    margin-right: 3.33vw;
    text-align: center;
}

.app-title {
    padding: 3.43vw 0 2.5vw;
}

.app-title img {
    width: 30.62vw;
    height: 6.66vw;
}

.app-sub-title {
    padding-bottom: 2.5vw;
    font-size: 1.82vw;
}

.app-text {
    font-size: 1.3vw;
    padding-bottom: 2.5vw;
}

.app-text p {
    line-height: 1.8;
}

.app-img {
    width: 26.45vw;
    height: 33.95vw;
    position: relative;
    bottom: -2.39vw;
}

.app-img img {
    width: 100%;
    height: 100%;
}

.app-button {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 35.1vw;
    height: 6.46vw;
    margin: 0 auto;
    border: none;
    border-radius: 3.23vw;
    background-color: #0628EC;
    color: #fff;
    font-size: 1.56vw;
}

.app-button:hover {
    background-color: #435adf;
}

@media screen and (max-width:540px) {
    .app-frame {
        height: 166.28vw;
        border: 2px solid #0628EC;
        border-radius: 0;
    }
    .app-flex {
        flex-direction: column;
        justify-content: unset;
    }
    .app-inner {
        margin-right: 0;
        margin-top: 11.62vw;
    }
    .app-title {
        padding: 0;
        height: 14.41vw;
    }
    .app-title img {
        width: 65.11vw;
        height: 14.41vw;
    }
    .app-sub-title {
        font-size: 4.18vw;
        padding: 4.65vw 0 8.37vw;
    }
    .app-text {
        padding-bottom: 8.37vw;
    }
    .app-text p {
        font-size: 3.72vw;
        line-height: 1.56;
    }
    /* ボタン */
    .app-button {
        width: 74.41vw;
        height: 13.95vw;
        border-radius: 8.37vw;
        font-size: 4.18vw;
    }
    .app-img {
        width: 55.81vw;
        height: 71.62vw;
        margin: 2.09vw auto 0 auto;
    }
}

@media screen and (max-width:540px) {
    /* 四つめのcta */
    .cta-04-circle {
        margin-right: auto;
        margin-left: 7.9vw;
    }
}


/*--------------------------
利用規約ページ
キャンセルポリシー
--------------------------*/

.header-wave {
    width: 100%;
    height: 13.02vw;
    background-image: url(../img/page-top-wave.png);
    background-size: cover;
    background-repeat: no-repeat;
}

.page-title {
    width: 100%;
    height: auto;
    margin-bottom: 6.25vw;
    display: grid;
    place-items: center;
}

.page-title h1 {
    font-size: 3.12vw;
}

.page-contents {
    margin-bottom: 20.83vw;
}

.page-contents-title {
    padding-bottom: 1.41vw;
    border-bottom: 1px solid #000;
    margin-bottom: 3.64vw;
}

.page-contents-subtitle {
    font-size: 1.82vw;
    margin-bottom: 60px;
}

.page-contents-subtitle p {
    font-size: 1.82vw;
    line-height: 1.85;
}

.page-contents-title h2 {
    font-size: 2.34vw;
}

.page-contents-text {
    margin-bottom: 4.16vw;
}

.page-contents-text h3 {
    font-weight: bold;
}

.page-contents-text h3,
.page-contents-text p {
    font-size: 1.82vw;
    line-height: 1.85;
}

.footer-wave {
    width: 100%;
    height: 13.02vw;
    background-image: url(../img/page-bottom-wave.png);
    background-size: cover;
    background-repeat: no-repeat;
}

@media screen and (max-width:540px) {
    .header-wave,
    .footer-wave {
        height: 13.02vw;
    }
    .page-title h1 {
        font-size: 7.44vw;
    }
    .page-contents-title h2 {
        font-size: 5.58vw;
    }
    .page-contents-text h3,
    .page-contents-text p {
        font-size: 3.72vw;
    }
    .page-contents-subtitle {
        margin-bottom: 30px;
    }
    .page-contents-subtitle p {
        font-size: 3.72vw;
    }
    .page-title {
        /* margin-bottom: 40px; */
        margin: 40px 0;
    }
    .page-contents-title {
        padding-bottom: 3.25vw;
        border-bottom: 1px solid #000;
        margin-bottom: 8.14vw;
    }
    .page-contents {
        margin-bottom: 23.25vw;
    }
}


/*--------------------------
よくある質問
--------------------------*/

.question-wrapper {
    margin: 80px 0;
}


/*tabの形状*/

.tab {
    display: flex;
    flex-wrap: wrap;
}

.tab li a {
    display: block;
    background: #ddd;
    margin: 0 2px;
    padding: 10px 20px;
    font-size: 20px;
}


/*liにactiveクラスがついた時の形状*/

.tab li.active a {
    background: #fff;
    color: #0628EC;
}


/*エリアの表示非表示と形状*/

.question-area {
    display: none;
    /*はじめは非表示*/
    opacity: 0;
    /*透過0*/
    background: #fff;
    padding: 50px 0;
}


/*areaにis-activeというクラスがついた時の形状*/

.question-area.is-active {
    display: block;
    /*表示*/
    animation-name: displayAnime;
    /*ふわっと表示させるためのアニメーション*/
    animation-duration: 2s;
    animation-fill-mode: forwards;
}

@keyframes displayAnime {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.question-head {
    display: flex;
    margin-bottom: 24px;
}

.question-contents {
    margin-bottom: 32px;
}

.question-icon {
    width: 40px;
    height: 40px;
    border-radius: 20px;
    background: #C8F600;
    color: #0628EC;
    display: grid;
    place-items: center;
    margin-right: 20px;
}

.question-title {
    display: flex;
    align-content: center;
    flex-wrap: wrap;
}

.question-title p {
    font-size: 24px;
}

.answer-text {
    border-bottom: 1px solid #999;
    padding-bottom: 32px;
}

.answer-text p {
    line-height: 1.8;
}

@media screen and (max-width:540px) {
    .tab li a {
        font-size: 10px;
    }
    .tab {
        display: flex;
        flex-wrap: nowrap;
    }
    .question-title p {
        font-size: 16px;
    }
    .answer-text {
        font-size: 12px;
    }
}


/* アニメーション */


/* fadeUp */

.fadeUp {
    animation-name: fadeUpAnime;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeUpAnime {
    from {
        opacity: 0;
        transform: translateY(100px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fadeUpOrderTrigger {
    opacity: 0;
}

.fadeUpOrder {
    animation-name: fadeUpAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeUpAnime {
    from {
        opacity: 0;
        transform: translateY(100px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* * {
    outline: 1px red solid;
} */