/* ======================================
   基本設定
   ====================================== */
body {
    box-sizing: border-box;
}

/* ======================================
   PC/SP表示切り替え
   ====================================== */
@media screen and (min-width: 521px) {
    body .show_sp {
        display: none !important;
    }
}

@media screen and (max-width: 519px) {
    body .show_pc {
        display: none !important;
    }
    body .show_sp {
        display: block !important;
    }
}

/* ======================================
   ホバーエフェクト
   ====================================== */
@media screen and (min-width: 521px) {
    body .hov {
        opacity: 1.0;
        transition: opacity 0.9s ease;
    }
    body .hov:hover {
        opacity: 0.7;
    }
}

/* ======================================
   iOS対応 - ステータスバー・タブバー透過防止
   ====================================== */
body .for-status-bars {
    position: fixed;
    top: 0;
    pointer-events: none;
    height: 5px;
    width: 100%;
    background-color: #000;
    mix-blend-mode: lighten;
}

body .for-tab-bars {
    position: fixed;
    bottom: 0;
    pointer-events: none;
    height: 4px;
    width: 100%;
    background-color: #000;
    mix-blend-mode: lighten;
}

/* ======================================
   アニメーション定義
   ====================================== */

/* 雲の揺らぎアニメーション */
@keyframes border-wobble {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

body .animated-border {
    transform-origin: center center;
    animation: border-wobble 4s linear infinite alternate;
}

/* KV予約ボタン イラスト上下移動 (PC) */
@keyframes float-up-down {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-50px);
    }
    100% {
        transform: translateY(0);
    }
}

/* KV予約ボタン イラスト上下移動 (SP) */
@keyframes float-up-down-sp {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-15px);
    }
    100% {
        transform: translateY(0);
    }
}

/* メインエリア キャラクター揺らぎ */
@keyframes rotate-swing {
    0% {
        transform: translateX(-10px) translateY(0) rotate(-5deg);
    }
    50% {
        transform: translateX(0) translateY(-5px) rotate(0);
    }
    100% {
        transform: translateX(10px) translateY(0) rotate(5deg);
    }
}

/* 予約セクション ジャンプアニメーション */
@keyframes rotate-swing-yoyaku-jump {
    0% {
        transform: translateY(5px);
    }
    10% {
        transform: translateY(0);
    }
    100% {
        transform: translateY(0);
    }
}

/* タイトルセクション ジャンプアニメーション */
@keyframes rotate-swing-title-jump {
    0% {
        transform: translateY(5px);
    }
    10% {
        transform: translateY(0);
    }
    100% {
        transform: translateY(0);
    }
}

/* 遊び方セクション 金槌アニメーション */
@keyframes rotate-swing-howto-kanaduchi {
    0% {
        transform: translateX(0) translateY(0) rotate(10deg);
    }
    100% {
        transform: translateX(-20px) translateY(15px) rotate(-10deg);
    }
}

/* 動画セクション 図鑑アニメーション */
@keyframes rotate-swing-movie-zukan {
    0% {
        transform: translateX(-10px) translateY(-5px) rotate(10deg);
    }
    50% {
        transform: translateX(0) translateY(0) rotate(20deg);
    }
    100% {
        transform: translateX(10px) translateY(-5px) rotate(30deg);
    }
}

/* ======================================
   スクロールフェードイン
   ====================================== */
body .fadein {
    opacity: 0;
    transform: translateY(50px);
}

/* ======================================
   アコーディオン
   ====================================== */
body .accordion-target {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out, opacity 0.3s ease-out;
}

body .accordion-target.is-open {
    max-height: 2000px;
    opacity: 1;
}

@media screen and (max-width: 519px) {
    body .accordion-target.is-open {
        max-height: 4000px;
    }
}

/* ======================================
   KVリリース情報の位置設定
   ====================================== */
body .kv__release {
    bottom: 17%;
    right: 4%;
}

@media screen and (max-width: 519px) {
    body .kv__release {
        right: 0;
        bottom: -32vw;
    }
}

/* 固定時のスタイル */
body .kv__release.is-fixed {
    position: fixed;
    top: 500px;
    right: 10%;
    z-index: 1000;
}

@media screen and (max-width: 519px) {
    body .kv__release.is-fixed {
        right: 0;
    }
}

/* ======================================
   KV予約ボタンの位置設定
   ====================================== */
body .kv__yoyaku.fixed-target {
    right: 3%;
    bottom: 5%;
    z-index: 1000;
}

@media screen and (min-width: 521px) {
    body .kv__yoyaku.fixed-target {
        opacity: 0;
    }
}

@media screen and (min-width: 1441px) {
    body .kv__yoyaku.fixed-target {
        right: 3%;
    }
}

@media screen and (max-width: 519px) {
    body .kv__yoyaku.fixed-target {
        position: fixed;
        right: 12px;
        bottom: 10vw;
    }
}

/* 固定時のスタイル */
body .kv__yoyaku.is-fixed {
    opacity: 1;
    position: fixed;
    right: 3%;
    bottom: 5%;
    z-index: 1000;
}

@media screen and (min-width: 1441px) {
    body .kv__yoyaku.is-fixed {
        right: 3%;
    }
}

@media screen and (max-width: 519px) {
    body .kv__yoyaku.is-fixed {
        right: 12px;
        bottom: 10vw;
    }
}

/* ======================================
   ハンバーガーメニュー
   ====================================== */
body .open-btn,
body .close-btn {
    right: 3%;
    top: 5%;
    display: none;
    cursor: pointer;
    height: 62.58px;
    position: absolute;
    width: 140px;
    z-index: 3;
}

@media screen and (max-width: 519px) {
    body .open-btn,
    body .close-btn {
        height: 50px;
        right: 12px;
        top: 5vw;
        width: 112px;
    }
}

body .open-btn__bar,
body .close-btn__bar {
    transition: opacity 0.6s, display 0.6s;
    transition-behavior: allow-discrete;
}

body .open-btn span,
body .close-btn span {
    border: 1px solid #fff;
    position: absolute;
    width: 23px;
    transition: ease 0.4s;
}

@media screen and (max-width: 519px) {
    body .open-btn span,
    body .close-btn span {
        width: 19px;
    }
}

body .open-btn span:first-of-type,
body .close-btn span:first-of-type {
    right: 12%;
    top: 36%;
}

body .open-btn span:nth-of-type(2),
body .close-btn span:nth-of-type(2) {
    right: 12%;
    top: 48%;
}

body .open-btn span:nth-of-type(3),
body .close-btn span:nth-of-type(3) {
    right: 12%;
    top: 60%;
}

/* 閉じるボタン */
body .close-btn {
    right: -2%;
    top: 7%;
    position: absolute;
    z-index: 30;
}

body .close-btn img {
    width: 50%;
}

@media screen and (max-width: 1039px) {
    body .close-btn {
        position: fixed;
        right: -5vh;
    }
    body .close-btn img {
        width: 6vw;
    }
}

@media screen and (max-width: 519px) {
    body .close-btn {
        right: -6vw;
        top: 14vw;
    }
    body .close-btn img {
        width: 13vw;
    }
}

body .close-btn span {
    width: 26px;
}

@media screen and (max-width: 519px) {
    body .close-btn span {
        width: 22px;
    }
}

body .close-btn span:first-of-type {
    transform: rotate(35deg);
    right: 11%;
    top: 49%;
}

@media screen and (max-width: 519px) {
    body .close-btn span:first-of-type {
        right: 10%;
        top: 48%;
    }
}

body .close-btn span:nth-of-type(2) {
    opacity: 0;
}

body .close-btn span:nth-of-type(3) {
    transform: rotate(-35deg);
    right: 11%;
    top: 49%;
}

@media screen and (max-width: 519px) {
    body .close-btn span:nth-of-type(3) {
        right: 10%;
        top: 48%;
    }
}

/* 開くボタン 固定時 */
body .open-btn.is-fixed {
    position: fixed;
    top: 50px;
    right: 1%;
    z-index: 1000;
    transition: transform 0.3s ease-out;
}

@media screen and (min-width: 1441px) {
    body .open-btn.is-fixed {
        right: 3%;
        top: 5%;
    }
}

body .open {
    display: block;
}

/* ハンバーガーメニュー本体 */
body .hamburger {
    position: relative;
    z-index: 50;
    margin: 0 auto;
    max-width: 1355px;
    width: 100%;
    height: 100%;
}

body .hamburger .active {
    opacity: 1;
    display: block;
}

body .hamburger__inner {
    width: 80%;
    margin: 0 auto;
}

body .hamburger__menu-list {
    position: fixed;
    display: none;
    opacity: 0;
    transition: background-image 0.4s ease, opacity 0.4s ease;
    background-image: url(../images/menu-list-bg.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    padding: 13rem 0;
    max-width: 1100px;
    z-index: 2;
    box-sizing: border-box;
    top: 55%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    width: 95vw;
    max-height: 741.74px;
    height: 100%;
}

@media screen and (max-width: 1039px) {
    body .hamburger__menu-list {
        height: auto;
        max-height: none;
    }
}

@media screen and (max-width: 519px) {
    body .hamburger__menu-list {
        background-image: url(../images/menu-list-bg-sp.png);
        left: 3vw;
        top: 2%;
        width: 94vw;
        padding: 10rem 0 3rem;
        transform: none;
    }
}

body .hamburger__menu-list__title {
    display: flex;
    align-items: center;
    justify-content: center;
}

body .hamburger__menu-list__title__left {
    width: 104px;
    margin-right: 1.7rem;
}

@media screen and (max-width: 1040px) {
    body .hamburger__menu-list__title__left {
        width: 10.5%;
    }
}

@media screen and (max-width: 519px) {
    body .hamburger__menu-list__title__left {
        width: 18.5vw;
        margin: 0;
    }
}

body .hamburger__menu-list__title__img {
    border-bottom: 0.5rem dotted #c399ff;
    margin-right: 1.7rem;
    position: relative;
    text-align: center;
    width: 239.6px;
    box-sizing: border-box;
    height: 60px;
    padding-top: 4px;
}

body .hamburger__menu-list__title__img img {
    width: 60%;
}

@media screen and (max-width: 519px) {
    body .hamburger__menu-list__title__img img {
        width: 61%;
    }
}

@media screen and (max-width: 1039px) {
    body .hamburger__menu-list__title__img {
        width: 24%;
        height: 6vw;
    }
}

@media screen and (max-width: 519px) {
    body .hamburger__menu-list__title__img {
        border-bottom: 0.3rem dotted #c399ff;
        height: 11vw;
        margin: 0 1rem;
        padding: 0.2rem 0 0;
        width: 45%;
    }
}

@media screen and (max-width: 1039px) {
    body .hamburger__menu-list__title__right {
        width: 7%;
    }
}

@media screen and (max-width: 519px) {
    body .hamburger__menu-list__title__right {
        width: 13vw;
    }
}

body .hamburger__menu-list ul {
    padding: 4rem 8rem 4rem 9rem;
    flex-wrap: wrap;
    display: flex;
    justify-content: space-between;
}

@media screen and (max-width: 1040px) {
    body .hamburger__menu-list ul {
        padding: 42px 7%;
    }
}

@media screen and (max-width: 519px) {
    body .hamburger__menu-list ul {
        flex: inherit;
        padding: 6% 8% 0;
    }
}

body .hamburger__menu-list ul li {
    width: 49%;
    margin-bottom: 2.2rem;
}

@media screen and (max-width: 519px) {
    body .hamburger__menu-list ul li {
        margin: 0 0 5.6%;
        width: 100%;
        height: 100%;
    }
    body .hamburger__menu-list ul li a img {
        margin: 0 auto;
        height: 8.3vh;
    }
}

body .menu-bg {
    background: #000;
    height: 100vh;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    opacity: 0;
    z-index: -1;
    transition: background-color 0.6s ease, opacity 0.6s ease;
}

body .light {
    opacity: 0.8;
    z-index: 50;
}

/* ======================================
   メインコンテンツ
   ====================================== */
body main {
    font-family: "Noto Sans CJK JP", sans-serif;
    font-style: normal;
    color: #585858;
    overflow: hidden;
}

/* タイトルエリア */
body main .title {
    background: white;
}

body main .title h1 {
    color: black;
    text-align: left;
    margin-left: 8%;
    padding: 2.5rem 0;
    font-size: 3rem;
}

@media screen and (max-width: 519px) {
    body main .title h1 {
        font-size: 6vw;
        margin-left: 2%;
    }
}

/* インフォエリア */
body main .info {
    background: #C8E27D;
}

body main .info p {
    font-size: 1.8rem;
    font-weight: 500;
    padding: 1.7rem 0;
    text-align: center;
}

@media screen and (max-width: 519px) {
    body main .info p {
        text-align: left;
        font-size: 4vw;
        margin-left: 4%;
    }
}

/* 共通ボタン */
body main .common-btn {
    max-width: 100%;
    height: auto;
    padding: 0 11px;
}

body main .common-btn a {
    display: block;
}

@media screen and (max-width: 519px) {
    body main .common-btn {
        padding: 0 9px;
        height: auto;
        margin-bottom: 6%;
    }
}

/* 登録ボタン */
body main .common-touroku {
    text-align: center;
}

body main .common-touroku img {
    width: 50%;
}

@media screen and (max-width: 519px) {
    body main .common-touroku img {
        width: 100%;
    }
}

/* ======================================
   KVエリア
   ====================================== */
body main .kv {
    position: relative;
    z-index: 13;
    height: 932px;
    background-image: url(../images/kv_bg@pc.webp);
    background-position: top center;
    background-size: cover;
    padding-top: 0;
}

@media screen and (min-width: 1441px) {
    body main .kv {
        height: 1324px;
    }
}

@media screen and (max-width: 519px) {
    body main .kv {
        height: 565px;
        background-image: url(../images/kv_bg@sp.webp);
    }
}

body main .kv__inner {
    max-width: 100%;
    height: 100%;
    position: relative;
    margin: 0 auto;
}

body main .kv__logo-switch2 {
    position: absolute;
    left: 0;
    top: 0;
}

body main .kv__logo {
    margin: 0 auto;
    position: absolute;
    right: 0;
    left: 0;
    top: 15.5%;
    width: 348px;
}

@media screen and (max-width: 519px) {
    body main .kv__logo {
        width: 50vw;
    }
}

body main .kv__logo img {
    width: 100%;
    display: block;
    max-width: 100%;
    height: auto;
    transform-origin: center center;
}

body main .kv__release {
    bottom: 35%;
    height: 128px;
    max-width: 420px;
    position: absolute;
    right: 3%;
}

@media screen and (min-width: 1441px) {
    body main .kv__release {
        bottom: 55%;
    }
}

@media screen and (max-width: 1039px) {
    body main .kv__release {
        bottom: min(13.1944444444vw, 190px);
        right: min(3.4722222222vw, 50px);
    }
}

@media screen and (max-width: 519px) {
    body main .kv__release {
        bottom: -15%;
        right: 0;
    }
}

body main .kv__release__text a {
    display: block;
    cursor: pointer;
}

body main .kv__release__text a::before {
    content: "";
    width: 155px;
    height: 174px;
    display: block;
    background: url("../images/kv_ill.png") no-repeat;
    background-size: contain;
    position: absolute;
    top: -25px;
    left: 30px;
    z-index: 5;
    animation-name: float-up-down;
    animation-duration: 3s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-timing-function: ease-in-out;
}

@media screen and (max-width: 519px) {
    body main .kv__release__text a::before {
        width: 45%;
        top: -10px;
        animation-name: float-up-down-sp;
    }
}

body main .kv__release__text img {
    max-width: 100%;
}

body main .kv__yoyaku {
    bottom: 42%;
    position: absolute;
    right: 1%;
}

@media screen and (max-width: 1039px) {
    body main .kv__yoyaku {
        bottom: min(13.1944444444vw, 190px);
        right: min(3.4722222222vw, 10px);
    }
}

@media screen and (max-width: 519px) {
    body main .kv__yoyaku {
        bottom: -19%;
        right: -9%;
    }
}

body main .kv__yoyaku a {
    position: relative;
    display: block;
}

body main .kv__yoyaku a img {
    width: 100%;
    max-width: 100%;
}

@media screen and (max-width: 519px) {
    body main .kv__yoyaku a img {
        width: 96px;
    }
}

/* ======================================
   ゲームエリア
   ====================================== */
body main .game {
    margin-top: -6%;
    padding: 14rem 0 9rem;
    background: #94E0F2;
    position: relative;
}

@media screen and (max-width: 1039px) {
    body main .game {
        margin-top: -10vw;
        padding: 10vw 0;
    }
}

@media screen and (max-width: 519px) {
    body main .game {
        padding: 35vw 0 28vw;
    }
}

body main .game::before {
    content: "";
    width: 100%;
    height: 78px;
    display: block;
    background: url("../images/game_cloud.png") no-repeat bottom center;
    position: absolute;
    bottom: 60px;
}

body main .game::after {
    content: "";
    width: 100%;
    height: 89px;
    display: block;
    background: url(../images/main_kusa.png) no-repeat bottom center;
    position: absolute;
    bottom: -15px;
}

@media screen and (max-width: 519px) {
    body main .game::after {
        height: 52px;
        background: url(../images/main_kusa_sp.png) no-repeat bottom center;
        bottom: -2px;
    }
}

body main .game .swiper {
    padding: 0;
    margin: 0;
    overflow: visible;
}

body main .game .swiper-pagination {
    bottom: 9%;
}

body main .game .swiper-pagination-bullet {
    width: 12px;
    height: 12px;
}

body main .game__slider {
    width: 100%;
}

body main .game__slider .swiper-wrapper {
    transition-timing-function: linear;
}

body main .game__slider .swiper-slide {
    width: 30%;
    position: relative;
    z-index: 0;
}

body main .game__slider .swiper-slide.item01,
body main .game__slider .swiper-slide.item03 {
    z-index: 2;
}

body main .game__slider .swiper-slide.item04 {
    z-index: 1;
}

body main .game__slider .swiper-slide.item01 {
    margin-top: -4rem;
}

body main .game__slider .swiper-slide.item03 {
    margin-top: -6rem;
}

@media screen and (max-width: 519px) {
    body main .game__slider .swiper-slide {
        width: 75%;
    }
    body main .game__slider .swiper-slide.item01 {
        margin-top: -5%;
    }
    body main .game__slider .swiper-slide.item03 {
        margin-top: -6%;
    }
}

body main .game__slider .swiper-slide img {
    display: block;
    max-width: 100%;
    width: 100%;
}

/* ======================================
   メインエリア
   ====================================== */
body main .main-area {
    background-image: url("../images/main_bg.png");
    position: relative;
    padding: 8rem 0;
}

@media screen and (max-width: 519px) {
    body main .main-area {
        padding: 5rem 0;
    }
}

body main .main-area::before,
body main .main-area::after {
    content: "";
    width: 117px;
    height: 100%;
    display: block;
    position: absolute;
    z-index: 0;
    top: 0;
}

body main .main-area::before {
    background: url(../images/main_side.png) repeat-y left top;
    left: 0;
}

@media screen and (max-width: 1039px) {
    body main .main-area::before {
        display: none;
    }
}

body main .main-area::after {
    background: url(../images/main_side.png) repeat-y right top;
    right: 0;
}

@media screen and (max-width: 1039px) {
    body main .main-area::after {
        display: none;
    }
}

body main .main-area .inner {
    width: 82%;
    max-width: 1184px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

@media screen and (max-width: 519px) {
    body main .main-area .inner {
        overflow: hidden;
        width: 95%;
    }
}

body main .main-area .main-area__box-wrap {
    width: 95%;
    margin: 0 auto;
    padding-top: 3rem;
}

@media screen and (max-width: 519px) {
    body main .main-area .main-area__box-wrap {
        padding-top: 0;
    }
}

body main .main-area .main-area__box-line {
    margin: 8rem 0 -5rem;
}

@media screen and (max-width: 519px) {
    body main .main-area .main-area__box-line {
        margin: 5rem auto 2rem;
        width: 90%;
    }
}

body main .main-area h4 {
    font-family: "M PLUS Rounded 1c", serif;
    font-size: 2.4rem;
    font-weight: 900;
    line-height: 1.9;
    margin-top: -1.5rem;
}

@media screen and (max-width: 519px) {
    body main .main-area h4 {
        font-size: 6vw;
        line-height: 1.6;
    }
}

/* メインエリア ヘッダー */
body main .main-area__head {
    position: relative;
    border-radius: 40px;
    background: #fff;
    opacity: 0.8;
    text-align: center;
    font-family: "Noto Sans CJK JP", sans-serif;
    padding: 4rem 6.5rem;
    margin: 0 auto 28rem;
    width: 81%;
}

@media screen and (max-width: 519px) {
    body main .main-area__head {
        width: 100%;
        padding: 4rem 0.5rem;
        margin: 0 auto 20rem;
        border-radius: 20px;
    }
}

body main .main-area__head h2 {
    color: #80579c;
    line-height: 1.7;
    font-size: 3.6rem;
}

@media screen and (max-width: 519px) {
    body main .main-area__head h2 {
        font-size: 6vw;
    }
}

body main .main-area__head h2 span {
    font-size: 4.2rem;
}

@media screen and (max-width: 519px) {
    body main .main-area__head h2 span {
        font-size: 8vw;
    }
}

body main .main-area__head .main-area__box-line {
    margin: 1rem 0 0;
}

@media screen and (max-width: 519px) {
    body main .main-area__head .main-area__box-line {
        margin: 1rem auto 1.5rem;
    }
}

body main .main-area__head__ill {
    position: absolute;
    right: -0.5%;
    top: 6%;
}

@media screen and (max-width: 1039px) {
    body main .main-area__head__ill {
        width: 15%;
    }
}

@media screen and (max-width: 519px) {
    body main .main-area__head__ill {
        width: auto;
        right: -9.5%;
        top: 6%;
    }
}

body main .main-area__head__ill img {
    width: 50%;
}

@media screen and (max-width: 519px) {
    body main .main-area__head__ill img {
        width: 25%;
    }
}

body main .main-area__head__detail {
    font-size: 2.6rem;
    line-height: 1.5;
    color: #585858;
}

@media screen and (max-width: 519px) {
    body main .main-area__head__detail {
        font-size: 5vw;
    }
}

/* ======================================
   メインエリア 各セクション共通
   ====================================== */
body main .main-area__yoyaku,
body main .main-area__tokuten,
body main .main-area__howto,
body main .main-area__movie,
body main .main-area__title {
    margin: 48rem auto;
    padding: 0 0 2rem;
    position: relative;
}

@media screen and (max-width: 519px) {
    body main .main-area__yoyaku,
    body main .main-area__tokuten,
    body main .main-area__howto,
    body main .main-area__movie,
    body main .main-area__title {
        margin: 20rem auto 0;
    }
}

body main .main-area__yoyaku::before,
body main .main-area__yoyaku::after,
body main .main-area__tokuten::before,
body main .main-area__tokuten::after,
body main .main-area__howto::before,
body main .main-area__howto::after,
body main .main-area__movie::before,
body main .main-area__movie::after,
body main .main-area__title::before,
body main .main-area__title::after {
    content: "";
    display: block;
    position: absolute;
    z-index: 2;
    width: 50%;
}

body main .main-area__yoyaku h3,
body main .main-area__tokuten h3,
body main .main-area__howto h3,
body main .main-area__movie h3,
body main .main-area__title h3 {
    text-align: center;
    position: absolute;
    z-index: 1;
    left: 50%;
    top: -14rem;
    transform: translateX(-50%);
}

@media screen and (max-width: 519px) {
    body main .main-area__yoyaku h3,
    body main .main-area__tokuten h3,
    body main .main-area__howto h3,
    body main .main-area__movie h3,
    body main .main-area__title h3 {
        width: 80%;
        top: -9rem;
    }
}

body main .main-area__yoyaku .main-area__block-inner,
body main .main-area__tokuten .main-area__block-inner,
body main .main-area__howto .main-area__block-inner,
body main .main-area__movie .main-area__block-inner,
body main .main-area__title .main-area__block-inner {
    position: relative;
    background: url(../images/bg_cloud_repeat.svg) repeat-y;
    padding: 6rem 8rem 0;
    background-size: 100% auto;
}

@media screen and (max-width: 519px) {
    body main .main-area__yoyaku .main-area__block-inner,
    body main .main-area__tokuten .main-area__block-inner,
    body main .main-area__howto .main-area__block-inner,
    body main .main-area__movie .main-area__block-inner,
    body main .main-area__title .main-area__block-inner {
        background: url(../images/bg_cloud_repeat_sp.svg) repeat-y;
        background-position: center;
        background-size: contain;
        padding: 6rem 3rem 4rem;
    }
}

body main .main-area__yoyaku .main-area__block-inner::before,
body main .main-area__yoyaku .main-area__block-inner::after,
body main .main-area__tokuten .main-area__block-inner::before,
body main .main-area__tokuten .main-area__block-inner::after,
body main .main-area__howto .main-area__block-inner::before,
body main .main-area__howto .main-area__block-inner::after,
body main .main-area__movie .main-area__block-inner::before,
body main .main-area__movie .main-area__block-inner::after,
body main .main-area__title .main-area__block-inner::before,
body main .main-area__title .main-area__block-inner::after {
    content: "";
    display: block;
    position: absolute;
    width: 100%;
    z-index: -1;
    left: 0;
}

body main .main-area__yoyaku .main-area__block-inner::before,
body main .main-area__tokuten .main-area__block-inner::before,
body main .main-area__howto .main-area__block-inner::before,
body main .main-area__movie .main-area__block-inner::before,
body main .main-area__title .main-area__block-inner::before {
    background: url(../images/bg_cloud_top.svg) no-repeat;
    padding-bottom: 20vw;
    top: -13vw;
    background-size: 100% auto;
}

@media screen and (min-width: 1041px) {
    body main .main-area__yoyaku .main-area__block-inner::before,
    body main .main-area__tokuten .main-area__block-inner::before,
    body main .main-area__howto .main-area__block-inner::before,
    body main .main-area__movie .main-area__block-inner::before,
    body main .main-area__title .main-area__block-inner::before {
        top: -100px;
    }
}

@media screen and (max-width: 519px) {
    body main .main-area__yoyaku .main-area__block-inner::before,
    body main .main-area__tokuten .main-area__block-inner::before,
    body main .main-area__howto .main-area__block-inner::before,
    body main .main-area__movie .main-area__block-inner::before,
    body main .main-area__title .main-area__block-inner::before {
        background: url(../images/bg_cloud_top_sp.svg) no-repeat;
        background-position: center;
        background-size: contain;
        top: -14vw;
        padding-bottom: 24vw;
    }
}

body main .main-area__yoyaku .main-area__block-inner::after,
body main .main-area__tokuten .main-area__block-inner::after,
body main .main-area__howto .main-area__block-inner::after,
body main .main-area__movie .main-area__block-inner::after,
body main .main-area__title .main-area__block-inner::after {
    background: url(../images/bg_cloud_bottom.svg) no-repeat;
    bottom: -13vw;
    padding-bottom: 20.5vw;
    background-size: 100% auto;
}

@media screen and (min-width: 1041px) {
    body main .main-area__yoyaku .main-area__block-inner::after,
    body main .main-area__tokuten .main-area__block-inner::after,
    body main .main-area__howto .main-area__block-inner::after,
    body main .main-area__movie .main-area__block-inner::after,
    body main .main-area__title .main-area__block-inner::after {
        bottom: -15vw;
    }
}

@media screen and (max-width: 519px) {
    body main .main-area__yoyaku .main-area__block-inner::after,
    body main .main-area__tokuten .main-area__block-inner::after,
    body main .main-area__howto .main-area__block-inner::after,
    body main .main-area__movie .main-area__block-inner::after,
    body main .main-area__title .main-area__block-inner::after {
        background: url(../images/bg_cloud_bottom_sp.svg) no-repeat;
        background-position: center;
        background-size: contain;
        bottom: -15vw;
        padding-bottom: 24.5vw;
    }
}

/* ======================================
   予約セクション
   ====================================== */
body main .main-area__yoyaku {
    margin-top: 0;
}

body main .main-area__yoyaku::before {
    height: 187px;
    background: url(../images/ill_fushigidane.png) no-repeat top center;
    background-size: contain;
    transform-origin: 50% 50%;
    animation: rotate-swing 1s steps(2, end) infinite alternate;
    top: -20%;
    left: -13%;
}

@media screen and (max-width: 1039px) {
    body main .main-area__yoyaku::before {
        width: 30%;
        left: -5%;
    }
}

@media screen and (max-width: 519px) {
    body main .main-area__yoyaku::before {
        width: 31%;
        left: 12%;
        top: -13%;
    }
}

body main .main-area__yoyaku::after {
    max-width: 408px;
    height: 291px;
    background: url(../images/ill_jump.png) no-repeat top center;
    background-size: contain;
    transform-origin: 50% 50%;
    animation: rotate-swing-yoyaku-jump 1s steps(2, end) infinite alternate;
    bottom: -16%;
    right: -10%;
}

@media screen and (max-width: 1039px) {
    body main .main-area__yoyaku::after {
        width: 31%;
        right: -5%;
        bottom: -30%;
    }
}

@media screen and (max-width: 519px) {
    body main .main-area__yoyaku::after {
        bottom: -16%;
        right: 4%;
        width: 45%;
    }
}

body main .main-area__yoyaku__info {
    display: flex;
    justify-content: space-around;
}

@media screen and (max-width: 519px) {
    body main .main-area__yoyaku__info {
        flex-direction: column;
    }
}

body main .main-area__yoyaku__info__text {
    width: 67%;
    font-weight: normal;
    font-size: 1.8rem;
    line-height: 2;
    position: relative;
    z-index: 1;
    margin-top: -1rem;
}

body main .main-area__yoyaku__info__text span {
    display: inline-block;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 2;
    margin-top: 1.5rem;
}

@media screen and (max-width: 519px) {
    body main .main-area__yoyaku__info__text {
        width: 100%;
        line-height: 1.6;
    }
}

body main .main-area__yoyaku__info__text p + p {
    margin-top: 3.5rem;
}

body main .main-area__yoyaku__info__img {
    position: relative;
    z-index: 1;
    margin-top: -1rem;
}

@media screen and (max-width: 519px) {
    body main .main-area__yoyaku__info__img {
        margin: 10% auto 0;
        text-align: center;
        width: 45%;
    }
}

body main .main-area__yoyaku__info__img li {
    margin-top: 1rem;
}

body main .main-area__yoyaku__info__img li:first-of-type {
    margin-right: 6%;
}

body main .main-area__yoyaku__info__img li:nth-of-type(2) {
    margin-right: 16%;
}

body main .main-area__yoyaku__btn {
    padding: 5rem 0;
}

@media screen and (max-width: 519px) {
    body main .main-area__yoyaku__btn {
        padding: 0;
    }
}

body main .main-area__yoyaku__btn__item {
    display: flex;
    justify-content: space-between;
    width: 100%;
    column-gap: 1%;
    margin: 3.5rem auto 0;
}

@media screen and (max-width: 519px) {
    body main .main-area__yoyaku__btn__item {
        flex-direction: column;
    }
}

body main .main-area__yoyaku__btn__register {
    margin: 4rem auto;
}

@media screen and (max-width: 519px) {
    body main .main-area__yoyaku__btn__register {
        margin: 2rem auto;
    }
}

body main .main-area__yoyaku__btn__register .common-touroku {
    margin: 0 auto 3rem;
}

body main .main-area__yoyaku__btn__register p {
    text-align: center;
}

@media screen and (max-width: 519px) {
    body main .main-area__yoyaku__btn__register p {
        text-align: left;
    }
}

/* ======================================
   特典セクション
   ====================================== */
body main .main-area__tokuten {
    padding-bottom: 9rem;
}

@media screen and (max-width: 519px) {
    body main .main-area__tokuten {
        padding-bottom: 0;
    }
}

body main .main-area__tokuten h3::after {
    content: "";
    display: block;
    position: absolute;
    width: 301px;
    height: 143px;
    background: url(../images/ill_hitokage.png) no-repeat top center;
    background-size: contain;
    transform-origin: 50% 50%;
    animation: rotate-swing 1s steps(2, end) infinite alternate;
    left: -62%;
    top: 10%;
}

@media screen and (max-width: 1039px) {
    body main .main-area__tokuten h3::after {
        left: -49%;
        top: 22%;
        width: 43%;
    }
}

@media screen and (max-width: 519px) {
    body main .main-area__tokuten h3::after {
        left: -5%;
        top: -56.5%;
        width: 46%;
    }
}

body main .main-area__tokuten p {
    font-size: 1.7rem;
    line-height: 2.1;
}

body main .main-area__tokuten__notice {
    max-width: 264px;
    height: 60px;
    margin: 7rem auto 0;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 3rem;
    background: #fff;
    color: #585858;
    border: 2px solid #80579c;
    font-size: 1.6rem;
    line-height: 2;
    font-weight: bold;
    cursor: pointer;
}

body main .main-area__tokuten__notice__detail p {
    font-size: 1.6rem;
    font-weight: normal;
    padding: 3rem 0 0;
    line-height: 1.7;
}

body main .main-area__tokuten__img {
    text-align: center;
    padding: 7.5rem 0 4rem;
}

@media screen and (max-width: 519px) {
    body main .main-area__tokuten__img {
        padding: 3.5rem 0 4rem;
    }
}

/* ======================================
   タイトルセクション
   ====================================== */
body main .main-area__title::before {
    height: 167px;
    background: url(../images/ill_zenigame.png) no-repeat top center;
    background-size: contain;
    transform-origin: 50% 50%;
    animation: rotate-swing 1s steps(2, end) infinite alternate;
    right: -10%;
    top: -14%;
}

@media screen and (max-width: 1039px) {
    body main .main-area__title::before {
        width: 25%;
        right: -1%;
        top: -20%;
    }
}

@media screen and (max-width: 519px) {
    body main .main-area__title::before {
        right: 11%;
        top: -12%;
        width: 23%;
    }
}

body main .main-area__title::after {
    max-width: 408px;
    height: 291px;
    background: url(../images/ill_jump2.png) no-repeat top center;
    background-size: contain;
    transform-origin: 50% 50%;
    animation: rotate-swing-title-jump 1s steps(2, end) infinite alternate;
    bottom: -16%;
    left: -10%;
}

@media screen and (max-width: 1039px) {
    body main .main-area__title::after {
        width: 31%;
        left: -1%;
        bottom: -34%;
    }
}

@media screen and (max-width: 519px) {
    body main .main-area__title::after {
        bottom: -18%;
        left: 4%;
        width: 45%;
    }
}

body main .main-area__title__lead {
    text-align: center;
}

/* ======================================
   遊び方セクション
   ====================================== */
body main .main-area__howto::after {
    height: 290px;
    background: url(../images/ill_metamon.png) no-repeat top center;
    background-size: contain;
    transform-origin: 50% 50%;
    animation: rotate-swing 1s steps(2, end) infinite alternate;
    bottom: -155px;
    left: -18%;
}

@media screen and (max-width: 1039px) {
    body main .main-area__howto::after {
        width: 25%;
        bottom: -15vw;
        left: -1vw;
    }
}

@media screen and (max-width: 519px) {
    body main .main-area__howto::after {
        bottom: -41vw;
        left: 1vw;
        width: 35%;
    }
}

body main .main-area__howto h3::after {
    content: "";
    display: block;
    position: absolute;
    width: 207px;
    height: 115px;
    background: url(../images/ill_kanaduchi.png) no-repeat top center;
    background-size: contain;
    transform-origin: 50% 50%;
    animation: rotate-swing-howto-kanaduchi 1s steps(2, end) infinite alternate;
    right: -24%;
    top: -12%;
}

@media screen and (max-width: 1039px) {
    body main .main-area__howto h3::after {
        right: -14vw;
        top: -2vw;
    }
}

@media screen and (max-width: 519px) {
    body main .main-area__howto h3::after {
        right: -7vw;
        top: -5vw;
        width: 14%;
    }
}

body main .main-area__howto__list {
    margin: 4.5rem 0;
}

body main .main-area__howto__list__step {
    font-size: 4rem;
    text-align: center;
    color: #80579c;
    margin-bottom: 5rem;
}

body main .main-area__howto__list__step__title {
    position: relative;
    display: flex;
    justify-content: flex-start;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step__title {
        flex-direction: column;
    }
}

body main .main-area__howto__list__step__title span {
    display: block;
    margin-left: 22rem;
}

body main .main-area__howto__list__step__title__btn {
    position: absolute;
    top: -15%;
    right: 4.5%;
    width: 6%;
    cursor: pointer;
    aspect-ratio: 100 / 97;
    background-repeat: no-repeat;
    background-size: contain, 0;
    background-image:
    url(../images/btn_plus.png),
    url(../images/btn_minus.png);
}

body main .main-area__howto__list__step:has(.is-open) .main-area__howto__list__step__title__btn {
    background-size: 0, contain;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step__title__btn {
        right: 6.5%;
        top: 14%;
        width: 16%;
    }
}

body main .main-area__howto__list__step__register {
    padding: 2.5rem 0 7rem;
}

body main .main-area__howto__list__step p {
    text-align: left;
    color: #585858;
    font-size: 1.8rem;
    margin: 2rem 0;
    line-height: 2;
}

body main .main-area__howto__list__step p span {
    display: block;
    padding: 2rem 0;
    font-weight: normal;
    font-size: 1.6rem;
    line-height: 1.8;
}

body main .main-area__howto__list__step__info {
    font-weight: bold;
    display: flex;
    justify-content: space-between;
}

body main .main-area__howto__list__step__info span {
    font-weight: normal;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step__info {
        flex-direction: column;
    }
}

body main .main-area__howto__list__step__info p {
    width: 51%;
    margin-right: 6%;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step__info p {
        width: 100%;
    }
}

body main .main-area__howto__list__step__info p span {
    padding: 1.6rem 0;
    font-size: 1.6rem;
    line-height: 1.9;
    display: inline-block;
}

body main .main-area__howto__list__step__info__imgwrap {
    padding: 3rem 0 4rem;
    width: 43%;
    display: flex;
    justify-content: space-between;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step__info__imgwrap {
        width: 100%;
    }
}

body main .main-area__howto__list__step__info__img {
    display: block;
    width: 48%;
    justify-content: space-between;
}

body main .main-area__howto__list__step__info__img img {
    max-width: 100%;
}

body main .main-area__howto__list__step .main-area__howto__list__step__haisou-wrap {
    display: flex;
    justify-content: space-between;
    column-gap: 7%;
    padding: 2.5rem 0;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step .main-area__howto__list__step__haisou-wrap {
        flex-direction: column;
    }
}

body main .main-area__howto__list__step__haisou {
    width: 48%;
    position: relative;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step__haisou {
        width: 100%;
    }
}

body main .main-area__howto__list__step__haisou__img {
    margin-top: 5rem;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step__haisou__img {
        margin-bottom: 5rem;
    }
}

body main .main-area__howto__list__step__haisou::after {
    background: url(../images/howto_dot.png);
    content: "";
    display: block;
    height: 100%;
    right: -9%;
    top: 0;
    position: absolute;
    width: 5px;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step__haisou::after {
        display: none;
    }
}

body main .main-area__howto__list__step__tenpo {
    width: 48%;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step__tenpo {
        width: 100%;
    }
}

body main .main-area__howto__list__step__tenpo__item__select {
    margin-top: 2rem;
}

body main .main-area__howto__list__step__label {
    width: 100%;
    max-width: 271px;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 2.6rem;
    color: #fff;
    margin: 0 auto;
    position: relative;
}

body main .main-area__howto__list__step__label img {
    max-width: 100%;
}

body main .main-area__howto__list__step__text-wrap {
    border-radius: 16px;
    background: #f2eee4;
    padding: 2rem;
    margin: 3rem 0;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step__text-wrap {
        border-radius: 8px;
        padding: 2rem 1rem;
    }
}

body main .main-area__howto__list__step__text__fukidashi {
    border-radius: 27.21px;
    background: #94e0f2;
    font-size: 1.3rem;
    line-height: 2.1;
    height: 5.4rem;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 97%;
    margin: 0 auto;
    color: #585858;
    position: relative;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step__text__fukidashi {
        font-size: 3vw;
        font-weight: bold;
    }
}

body main .main-area__howto__list__step__text__fukidashi::before {
    content: "";
    display: block;
    position: absolute;
    height: 19px;
    width: 16px;
    background: url(../images/fukidashi_mark.svg) no-repeat bottom center;
    bottom: -10px;
    background-size: contain;
}

body main .main-area__howto__list__step__text__item {
    background: #fff;
    color: #585858;
    font-weight: bold;
    font-size: 1.8rem;
    padding: 2rem 5rem;
    margin-top: -1rem;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step__text__item {
        font-size: 3.5vw;
        padding: 2rem 1rem;
    }
}

body main .main-area__howto__list__step__text__item p {
    text-align: center;
    font-size: 1.2rem;
    font-weight: normal;
    margin: 0 0 0.5rem;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step__text__item p {
        font-size: 2vw;
    }
}

body main .main-area__howto__list__step__text__item ul {
    text-align: left;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step__text__item ul {
        padding: 0 2rem;
    }
}

body main .main-area__howto__list__step__text__item ul li {
    font-size: 1.2rem;
    border: 1px solid #f0f0f0;
    padding: 0.8rem 1rem;
    border-radius: 20px;
    display: inline-block;
    margin: 0 0.5rem 0.5rem 0;
}

body main .main-area__howto__list__step__text__item ul li:last-of-type {
    border: 1px solid #4169e1;
}

@media screen and (max-width: 519px) {
    body main .main-area__howto__list__step__text__item ul li {
        font-size: 2vw;
        padding: 0.3rem 0.5rem;
    }
}

/* ======================================
   動画セクション
   ====================================== */
body main .main-area__movie {
    margin: 48rem auto 29rem;
}

@media screen and (max-width: 519px) {
    body main .main-area__movie {
        margin: 20rem auto 13rem;
    }
}

body main .main-area__movie::before {
    height: 142px;
    background: url(../images/ill_zukan.png) no-repeat top center;
    background-size: contain;
    transform-origin: 50% 50%;
    animation: rotate-swing-movie-zukan 1s steps(2, end) infinite alternate;
    right: -3%;
    top: -15%;
}

@media screen and (max-width: 1039px) {
    body main .main-area__movie::before {
        width: 15%;
        right: 2%;
        top: -30%;
    }
}

@media screen and (max-width: 519px) {
    body main .main-area__movie::before {
        right: 83%;
        top: -13%;
        width: 17%;
    }
}

body main .main-area__movie::after {
    height: 178px;
    background: url(../images/ill_all.png) no-repeat top center;
    background-size: contain;
    transform-origin: 50% 50%;
    animation: rotate-swing 1s steps(2, end) infinite alternate;
    bottom: -20%;
    right: -10%;
}

@media screen and (max-width: 1039px) {
    body main .main-area__movie::after {
        width: 35%;
        right: -5%;
        bottom: -30%;
    }
}

@media screen and (max-width: 519px) {
    body main .main-area__movie::after {
        bottom: -20%;
        width: 40%;
        right: 5%;
    }
}

body main .main-area__movie__flame {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
}

body main .main-area__movie__flame iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

body main .main-area__movie h4 {
    text-align: center;
    padding-top: 6rem;
    padding-bottom: 3rem;
}

body main .main-area__movie p {
    font-size: 1.7rem;
    line-height: 2.1;
}

/* ======================================
   Aboutエリア
   ====================================== */
body main .about {
    background: url("../images/about_bg.png") repeat, linear-gradient(#ffcb03 0%, #fffffc 100%);
    padding: 0 0 100px 0;
}

body main .about__inner {
    width: 82%;
    max-width: 1184px;
    margin: 0 auto;
}

@media screen and (max-width: 519px) {
    body main .about__inner {
        width: 90%;
    }
}

body main .about h3 {
    text-align: center;
    color: #b26315;
    font-size: 4rem;
    font-family: "M PLUS Rounded 1c", serif;
    line-height: 1.3;
    display: table;
    padding: 90px 0 70px;
    margin: 0 auto;
    position: relative;
}

@media screen and (max-width: 519px) {
    body main .about h3 {
        display: table;
        font-size: 7.5vw;
        text-align: left;
        padding: 80px 0 40px;
    }
}

body main .about h3::before,
body main .about h3::after {
    content: "";
    display: block;
    position: absolute;
}

body main .about h3::before {
    background: url(../images/about_pikachu.png) no-repeat top center;
    background-size: contain;
    width: 176px;
    height: 147px;
    left: -35%;
    top: 14%;
}

@media screen and (max-width: 1039px) {
    body main .about h3::before {
        width: 27%;
        left: -25%;
        top: 10%;
    }
}

@media screen and (max-width: 519px) {
    body main .about h3::before {
        left: -43%;
        top: 28%;
        width: 46%;
        background-size: contain;
        height: 100%;
    }
}

body main .about h3::after {
    background: url(../images/about_ball.png) no-repeat top center;
    background-size: contain;
    width: 95px;
    height: 93px;
    right: -20%;
    top: 30%;
}

@media screen and (max-width: 1039px) {
    body main .about h3::after {
        width: 17%;
        right: -20%;
        top: 23%;
    }
}

@media screen and (max-width: 519px) {
    body main .about h3::after {
        height: 100%;
        right: -30%;
        top: 40%;
        width: 25%;
        background-size: contain;
    }
}

body main .about__detail {
    margin-bottom: 5rem;
}

body main .about__text {
    font-size: 2.4rem;
    line-height: 2;
    text-align: center;
    font-weight: bold;
}

@media screen and (max-width: 519px) {
    body main .about__text {
        font-size: 4vw;
    }
}

body main .about__text.top {
    padding-bottom: 50px;
}

body main .about__title {
    border-radius: 40px;
    background: #ffac67;
    position: relative;
    color: #fff;
    font-size: 2.8rem;
    font-family: "M PLUS Rounded 1c", serif;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 608px;
    margin: 0 auto;
}

@media screen and (max-width: 519px) {
    body main .about__title {
        text-align: center;
        font-size: 5vw;
        font-weight: bold;
    }
}

body main .about__title::before,
body main .about__title::after {
    content: "";
    display: block;
    position: absolute;
}

body main .about__title::before {
    background: url(../images/about_midashi1.png) no-repeat center center;
    width: 45px;
    height: 46px;
    left: 5%;
}

body main .about__title::after {
    background: url(../images/about_midashi2.png) no-repeat center center;
    width: 45px;
    height: 46px;
    right: 5%;
}

body main .about__info {
    background: #fff;
    border-radius: 20px;
    display: flex;
    justify-content: space-between;
    padding: 85px 30px 50px 120px;
    margin-top: -40px;
}

@media screen and (max-width: 519px) {
    body main .about__info {
        flex-direction: column;
        padding: 23% 6%;
    }
}

body main .about__info__text {
    font-size: 1.8rem;
    line-height: 2;
    width: 51%;
}

@media screen and (max-width: 519px) {
    body main .about__info__text {
        width: 100%;
    }
}

body main .about__info__text h4 {
    font-size: 2.4rem;
    line-height: 1.3;
    font-weight: bold;
    margin-bottom: 2rem;
}

body main .about__info__img {
    width: 43%;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}

@media screen and (max-width: 519px) {
    body main .about__info__img {
        width: 100%;
        padding-top: 10%;
    }
}

body main .about__link {
    max-width: 500px;
    margin: 0 auto;
    padding-top: 6.3rem;
    text-align: center;
}

body main .about__link span {
    font-size: 2rem;
    position: relative;
    display: block;
    margin-bottom: 1rem;
}

@media screen and (max-width: 519px) {
    body main .about__link span {
        font-size: 5vw;
        font-weight: bold;
    }
}

body main .about__link span::before,
body main .about__link span::after {
    content: "";
    position: absolute;
    width: 22px;
    height: 28px;
}

body main .about__link span::before {
    background: url(../images/about_line1.svg) no-repeat bottom center;
    left: 16%;
}

@media screen and (max-width: 519px) {
    body main .about__link span::before {
        left: 5%;
    }
}

body main .about__link span::after {
    background: url(../images/about_line2.svg) no-repeat bottom center;
    right: 16%;
}

@media screen and (max-width: 519px) {
    body main .about__link span::after {
        right: 5%;
    }
}

body main .about__link a {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100px;
    border-radius: 50px;
    background: #dc220d;
    color: #fff;
    box-shadow: 0px 10px 0px rgba(0, 0, 0, 0.15);
    font-size: 3.8rem;
    line-height: 0.9;
}

@media screen and (max-width: 519px) {
    body main .about__link a {
        height: 80px;
        font-size: 7vw;
        font-weight: bold;
    }
}

/* ======================================
   クレジットエリア
   ====================================== */
body main .credit {
    font-weight: bold;
    background-image: url("../images/main_bg.png");
    font-size: 1.6rem;
    line-height: 1.8;
    padding: 0 0 12rem;
}

body main .credit__inner {
    max-width: 1184px;
    width: 82%;
    margin: 0 auto;
}

body main .credit p {
    padding-bottom: 3.5rem;
}
