@charset "UTF-8";
@import url("grid.css");
:root { /* 色変更される場合は、#以降のカラーコードを変更してください IE非対応 */
        --base-color: #000;
        --link-color: #666;
        --red-color: #ff0000;
        --yel-color: #fff100;
        --linkhover-color: #999;
        --back-color: #f7f7f7;
        --back2-color: #231815;
        --border-color: #000;
        --white-color: #fff;
}
img {
        max-width: 100%;
        height: auto; /*高さ自動*/
}
a {
        display: block;
        color: var(--link-color);
        -webkit-text-decoration-line: none;
        text-decoration-line: none;
}
a:hover {
        color: var(--linkhover-color);
}
.red {
        color: var(--red-color);
}
.yel {
        color: var(--yel-color);
}
.whi {
        color: var(--white-color);
        font-weight: 500;
        -webkit-transform: rotate(0.05deg);
        transform: rotate(0.05deg);
}
/*ヘッダー
-------------------------------------*/
/* header {
        display: flex;
        flex-direction: row;
        padding: 0;
        margin: 1rem 2rem;
        color: var(--base-color);
        align-items: center;
}
/* ヘッダー固定 */
header {
        /*      position: sticky;*/
        position: relative;
        top: 0;
        padding: 0 1rem;
        z-index: 10;
        background-color: var(--white-color);
}
.header {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        padding: 0;
        margin: 1rem 2rem;
}
.header-box {
        margin-left: auto;
}
.sitetitle {
        width: 20%;
        max-width: 280px;
}
.contact-button {
        padding: 1rem;
        border: 2px solid var(--base-color);
}
menu ul {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        -ms-flex-pack: distribute;
        justify-content: space-around;
        list-style: none;
        margin: 1rem 0 0 0;
}
menu li {
        -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
        flex: 1 0 auto;
        border-right: 1px solid;
        padding: 0 0.5rem;
}
menu li a {
        text-decoration: none;
        text-align: center;
        width: 100%;
        font-family: vdl-logojrblack, sans-serif;
        line-height: 1;
        color: var(--base-color);
        font-size: 16px;
}
menu a:hover {
        background-color: var(--back-color);
}
menu a {
        padding: 0.5rem;
}
@media screen and (min-width: 960px) {
        header {
                padding: 1px 2rem;
        }
        .sp {
                display: none !important;
        }
        /* PC時はMENUボタンを非表示 */
        #open, #close {
                display: none !important;
        }
        #navi {
                /* display: block !important; */
        }
        nav li a {
                font-size: 1.3vw;
        }
}
@media screen and (max-width: 960px) {
        .pc {
                display: none !important;
        }
        .header {
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                -ms-flex-direction: column;
                flex-direction: column;
                margin: 0;
                position: absolute;
                width: 100%;
                height: 100vh;
                left: 0;
                top: 0;
        }
        .chenge-red {
                background: red;
        }
        .header #open, #close {
                position: absolute;
                top: 10px;
                right: 0;
        }
        nav ul {
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                -ms-flex-direction: column;
                flex-direction: column;
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -ms-flex-pack: distribute;
                justify-content: space-around;
                list-style: none;
                width: 80%;
                margin: 50px auto;
        }
        .header li.last-x {
                padding-top: 20px;
                text-align: center;
        }
        .header li {
                padding-top: 0;
        }
        .drawer__nav__link img {
                height: 30px;
        }
        .last-x .drawer__nav__link img {
                height: 60px;
        }
        .header-box {
                margin-left: initial;
        }
        /* スマホ時はMENUボタンを表示 */
        #open {
                display: block;
                background: url(../img/sp/button.svg);
                background-repeat: no-repeat;
                background-size: contain;
                width: 50px;
                height: 50px;
                border: none;
                position: absolute;
                top: 10px;
                right: 0px;
        }
        #close {
                display: block;
                background: url(../img/sp/button2.svg);
                background-repeat: no-repeat;
                background-size: contain;
                width: 50px;
                height: 50px;
                border: none;
                position: absolute;
                top: 10px;
                right: 0px;
        }
        /* スマホ時はメニューを非表示 */
        #navi {
                display: none;
        }
}
/*メイン画像
-------------------------------------*/
.mainimg img {
        /*width: 100vw;*/
}
.mainimg {
        padding: 5vh 0 0;
        height: 100vh;
        background-image: url(../img/sp/back_main0.svg);
        background-position: top;
        background-repeat: no-repeat;
        background-size: cover;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
}
.left {
        float: left
}
.right {
        float: right
}
#box1 {
        display: inline-block;
        width: 80px;
        height: 80px;
        background-image: url(../img/star1.svg);
        -webkit-animation: 3s linear infinite rotation1;
        animation: 3s linear infinite rotation1;
}
#box2 {
        display: inline-block;
        width: 40px;
        height: 40px;
        background-image: url(../img/star2.svg);
        -webkit-animation: 3s linear infinite rotation1;
        animation: 3s linear infinite rotation1;
}
#box1 {
        -webkit-animation: 3s linear infinite rotation1;
        animation: 3s linear infinite rotation1;
}
#box2 {
        -webkit-animation: 4s linear infinite rotation1;
        animation: 4s linear infinite rotation1;
}
@-webkit-keyframes rotation1 {
        0% {
                -webkit-transform: rotate(0);
                transform: rotate(0);
        }
        100% {
                -webkit-transform: rotate(360deg);
                transform: rotate(360deg);
        }
}
@keyframes rotation1 {
        0% {
                -webkit-transform: rotate(0);
                transform: rotate(0);
        }
        100% {
                -webkit-transform: rotate(360deg);
                transform: rotate(360deg);
        }
}
.big {
        width: 38%;
        max-width: 365px;
        position: absolute;
        top: 27%;
        left: 30%;
        z-index: 5;
}
.big2 {
        width: 51%;
        max-width: 510px;
        position: absolute;
        top: 30%;
        left: 25%;
        z-index: 3;
}
.animation {
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out;
        -webkit-animation-iteration-count: infinite;
        animation-iteration-count: infinite;
        -webkit-animation-direction: alternate;
        animation-direction: alternate;
        -webkit-animation-duration: 1.5s;
        animation-duration: 1.5s;
}
/* 拡大 */
.zoomIn {
        -webkit-animation-name: zoomInAnime;
        animation-name: zoomInAnime;
        -webkit-animation-duration: 0.5s;
        animation-duration: 0.5s;
        -webkit-animation-fill-mode: forwards;
        animation-fill-mode: forwards;
}
@-webkit-keyframes zoomInAnime {
        from {
                -webkit-transform: scale(0.4);
                transform: scale(0.4);
        }
        to {
                -webkit-transform: scale(1);
                transform: scale(1);
        }
}
@keyframes zoomInAnime {
        from {
                -webkit-transform: scale(0.4);
                transform: scale(0.4);
        }
        to {
                -webkit-transform: scale(1);
                transform: scale(1);
        }
}
/* 大アニメ */
.keyframe6 {
        -webkit-animation-name: poyopoyo;
        animation-name: poyopoyo;
}
@-webkit-keyframes poyopoyo {
        0%, 40%, 60%, 80% {
                -webkit-transform: scale(1.0);
                transform: scale(1.0);
        }
        50%, 70% {
                -webkit-transform: scale(0.95);
                transform: scale(0.95);
        }
}
@keyframes poyopoyo {
        0%, 40%, 60%, 80% {
                -webkit-transform: scale(1.0);
                transform: scale(1.0);
        }
        50%, 70% {
                -webkit-transform: scale(0.95);
                transform: scale(0.95);
        }
}
/* 画像を光らせる */
.reflection {
        display: inline-block;
        position: relative;
        overflow: hidden;
}
.reflection:after {
        content: "";
        height: 90%;
        width: 30px;
        position: absolute;
        top: -180px;
        left: 0;
        background-color: #fff;
        opacity: 0;
        -webkit-transform: rotate(45deg);
        -webkit-animation: reflection 2s ease-in-out infinite;
}
@-webkit-keyframes reflection {
        0% {
                -webkit-transform: scale(0) rotate(45deg);
                opacity: 0;
        }
        80% {
                -webkit-transform: scale(0) rotate(45deg);
                opacity: 0.5;
        }
        81% {
                -webkit-transform: scale(4) rotate(45deg);
                opacity: 1;
        }
        100% {
                -webkit-transform: scale(50) rotate(45deg);
                opacity: 0;
        }
}
@keyframes reflection {
        0% {
                -webkit-transform: scale(0) rotate(45deg);
                opacity: 0;
        }
        80% {
                -webkit-transform: scale(0) rotate(45deg);
                opacity: 0.5;
        }
        81% {
                -webkit-transform: scale(4) rotate(45deg);
                opacity: 1;
        }
        100% {
                -webkit-transform: scale(50) rotate(45deg);
                opacity: 0;
        }
}
/* 大アニメ */
.anim-box.poyoyon2.is-animated {
        -webkit-animation: poyoyon2 1s ease-in-out forwards;
        animation: poyoyon2 1s ease-in-out forwards;
}
@-webkit-keyframes poyoyon2 {
        0% {
                -webkit-transform: scale(1.0, 1.0) translate(0, 0);
                transform: scale(1.0, 1.0) translate(0, 0);
        }
        15% {
                -webkit-transform: scale(0.98, 0.9) translate(0, 5px);
                transform: scale(0.98, 0.9) translate(0, 5px);
        }
        30% {
                -webkit-transform: scale(1.02, 1.0) translate(0, 8px);
                transform: scale(1.02, 1.0) translate(0, 8px);
        }
        50% {
                -webkit-transform: scale(0.98, 1.05) translate(0, -8px);
                transform: scale(0.98, 1.05) translate(0, -8px);
        }
        70% {
                -webkit-transform: scale(1.0, 0.9) translate(0, 5px);
                transform: scale(1.0, 0.9) translate(0, 5px);
        }
        100% {
                -webkit-transform: scale(1.0, 1.0) translate(0, 0);
                transform: scale(1.0, 1.0) translate(0, 0);
        }
        0%, 100% {
                opacity: 1;
        }
}
@keyframes poyoyon2 {
        0% {
                -webkit-transform: scale(1.0, 1.0) translate(0, 0);
                transform: scale(1.0, 1.0) translate(0, 0);
        }
        15% {
                -webkit-transform: scale(0.98, 0.9) translate(0, 5px);
                transform: scale(0.98, 0.9) translate(0, 5px);
        }
        30% {
                -webkit-transform: scale(1.02, 1.0) translate(0, 8px);
                transform: scale(1.02, 1.0) translate(0, 8px);
        }
        50% {
                -webkit-transform: scale(0.98, 1.05) translate(0, -8px);
                transform: scale(0.98, 1.05) translate(0, -8px);
        }
        70% {
                -webkit-transform: scale(1.0, 0.9) translate(0, 5px);
                transform: scale(1.0, 0.9) translate(0, 5px);
        }
        100% {
                -webkit-transform: scale(1.0, 1.0) translate(0, 0);
                transform: scale(1.0, 1.0) translate(0, 0);
        }
        0%, 100% {
                opacity: 1;
        }
}
.top {
        margin-top: -20px
}
@media screen and (max-width: 960px) {
        .box1 img:nth-child(2) {
                margin: 5vh 0 0 0;
                float: left;
        }
        .box2 img:nth-child(2) {
                margin: 0 0 5vh 0;
                float: right;
        }
}
@media screen and (min-width: 960px) {
        .mainimg {
                padding: 2% 0;
                height: 90vh;
                min-height: 540px;
                background-image: url(../img/back_main0.svg)
        }
        .box img {
                margin: -20px
        }
        .big {
                top: 23%;
                left: 30%;
        }
        .big2 {
                top: 20%;
                left: 25%;
        }
}
@media (orientation: landscape) and (max-height: 450px) {
        .mainimg {
                padding: 100px 0 0;
                height: auto;
        }
}
/*メインコンテンツ
-------------------------------------*/
main {
        margin: 0;
}
section {
        margin: 0;
        padding: 9rem 0;
}
.plan {
        padding: 4rem 0 9rem;
}
.gray-back {
        background-color: var(--back-color);
}
.brack-back {
        background-color: var(--back2-color);
        border-bottom: 20px solid #ff0000;
        color: var(--white-color);
        font-size: 28px;
        padding: 1em 0;
}
span.end {
        font-size: 56px;
        color: red!important;
}
.map {
        background-image: url(../img/back-map.svg);
        background-position: center center;
        margin: 3em 0;
}
.map .container {
        width: 100%;
        max-width: 800px;
        padding-top: 3rem
}
.kyousan {
        padding: 0 0 8rem;
}
.map p {
        font-size: 22px;
        line-height: 2.5;
        -webkit-transform: rotate(0.05deg);
        transform: rotate(0.05deg);
}
.chara {
        background-image: url(../img/back_chara1.svg), url(../img/back_chara0.svg), url(../img/back_chara2.svg);
        background-position: top, center, bottom;
        background-repeat: no-repeat, repeat, no-repeat;
        background-size: 100% auto, 100%, 100% auto;
}
.sheel, footer {
        background-image: url(../img/back_black.jpg);
        background-position: center center;
        background-repeat: repeat;
        background-size: 100% auto;
}
.eki {
        text-align: left;
}
.step {
        background: #fff;
        padding: 5% 0;
        width: 100%;
        max-width: 880px;
        margin: 0 auto 20px;
}
.step p {
        font-size: 27px;
}
.red-back {
        background: url(../img/back_red.svg) no-repeat 0 0 / cover;
        background-color: var(--red-color);
        width: 100%;
        background-size: 100% auto;
        color: var(--white-color);
        font-size: 28px;
}
.red-back2 {
        content: "";
        background: url(../img/back_red2.svg) no-repeat 0 0 / cover;
        width: 100%;
        height: 100px;
        display: block;
        margin-top: -3px;
}
.btn1 {
        background: var(--yel-color);
        width: 70%;
        max-width: 280px;
        text-align: center;
        color: var(--red-color);
        margin: 0 auto 5%;
}
.btn2 {
        background: var(--yel-color);
        width: 70%;
        max-width: 1000px;
        text-align: center;
        color: var(--base-color);
        margin: 5% auto;
        border-radius: 20px;
}
.btn3 {
        font-family: vdl-logojrblack, sans-serif;
        font-style: normal;
        font-weight: 900;
        font-size: 30px;
        background: var(--yel-color);
        width: 90%;
        max-width: 400px;
        text-align: center;
        color: var(--red-color);
        margin: 0 auto 5%;
        margin-top: 5rem;
        -webkit-box-shadow: 0px 0px 18px 0px #777777;
        box-shadow: 0px 0px 18px 0px #777777;
        border-radius: 35px;
        padding: 1rem 4rem;
}
.span-5 img {
        width: 100%;
}
.span-1 {
        margin-top: 20%
}
.disc {
        font-size: 18px;
        font-weight: 400;
        text-align: left;
}
img.colabo {
        display: block;
        margin: 0 auto;
}
@media screen and (max-width: 960px) {
        .brack-back {
                font-size: 14px;
                padding: 2vh 0;
        }
        span.end {
        font-size: 28px;
        }
        section {
                margin: 0;
                padding: 7vh 0;
        }
        .plan {
                padding: 1vh 0 7vh;
        }
        .map p {
                font-size: 16px;
                line-height: 2;
        }
        .step p {
                font-size: 18px;
                text-align: left;
                padding: 0 1rem;
        }
        .chara {
                background-image: url(../img/sp/back_chara.svg);
                background-position: top;
                background-repeat: no-repeat;
                background-size: cover;
        }
        .sheel {
                padding: 3vh 0 7vh;
        }
        .sheel h3 {
                margin: 4vh;
        }
        .red-back {
                background: url(../img/sp/back_red.svg) no-repeat 0 0 / cover;
                font-size: 16px;
                padding: 7vh 1rem;
        }
        .red-back .col {
                padding: 2rem;
        }
        .btn2 {
                background: var(--yel-color);
                width: auto;
                margin: 5% auto;
                border-radius: 30px;
        }
        .btn3 {
                font-size: 26px;
                padding: 1rem 3rem;
        }
}
/*キャッチコピー
-------------------------------------*/
.catch {
        text-align: center;
}
.catch h2 {
        padding-bottom: 1rem;
}
.catch span {
        color: var(--yel-color);
}
.map span {
        color: var(--red-color);
}
.fs15 {
        font-size: 15px;
        font-weight: 400;
        margin-top: 40px;
        -webkit-transform: rotate(0.05deg);
        transform: rotate(0.05deg);
        text-align: left;
}
.fs20 {
        font-size: 20px;
        font-weight: 400;
        margin-top: 40px;
        -webkit-transform: rotate(0.05deg);
        transform: rotate(0.05deg);
        text-align: left;
}
.fs32 {
        font-size: 32px;
        -webkit-transform: rotate(0.05deg);
        transform: rotate(0.05deg);
}
.fs26 {
        font-size: 26px;
        -webkit-transform: rotate(0.05deg);
        transform: rotate(0.05deg);
}
.under {
        border-bottom: 0.4rem solid var(--base-color);
        padding: 0 1rem 1rem 1rem;
}
.center {
        text-align: center;
}
@media screen and (max-width: 960px) {
        .fs15 {
                font-size: 15px;
                font-weight: 400;
                margin-top: 40px;
        }
        .fs20 {
                font-size: 20px;
                font-weight: 700;
        }
        .fs32 {
                font-size: 16px;
        }
        .fs26 {
                font-size: 16px;
        }
}
/*申し込みの流れ
-------------------------------------*/
.flow.row {
        margin-bottom: 3rem;
}
/*フッター
-------------------------------------*/
footer {
        background-color: var(--back-color);
        padding: 5rem 0;
        color: var(--white-color);
        font-weight: 500;
        -webkit-transform: rotate(0.05deg);
        transform: rotate(0.05deg);
        text-align: center;
}
footer .row {
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center
}
footer h4 {
        border-bottom: 3px solid var(--border-color);
}
footer p span {
        border: 1px solid #fff;
        padding: 0 0.5rem;
        margin-right: 1rem
}
footer a {
        color: var(--white-color);
}
@media screen and (max-width: 960px) {
        footer {
                padding: 5rem 5rem 3rem;
        }
        footer .col {
                padding-bottom: 1.5rem;
        }
}
/*テーブル
-------------------------------------*/
.contact-box {
        border: 1px solid var(--border-color);
        text-align: center;
        padding: 2rem 0;
}
.eki table {
        max-width: 960px;
        width: 100%;
        margin: 10px auto
}
table {
        background-color: var(--white-color);
}
th {
        padding: 1rem;
        background-color: var(--red-color);
        color: var(--border-color);
}
td {
        padding: 1rem;
        font-weight: 500;
}
.tbl-r01 th {
        text-align: center;
        font-family: vdl-logojrblack, sans-serif;
        font-weight: 700;
        font-style: normal;
        color: var(--white-color);
        font-size: 1.2em;
}
.tbl-r01 td:nth-child(2) {
        font-family: vdl-logojrblack, sans-serif;
        font-weight: 400;
        font-style: normal;
}
.tbl-r01 span {
        display: inline-block;
        padding: 3px 10px;
        position: relative;
        background-color: var(--yel-color);
        border: 3px solid red;
        border-radius: 50%;
        text-align: center;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        margin-right: 1rem;
}
.tbl-r01 span::before {
        content: "";
        position: absolute;
        border: solid 1px #000;
        border-radius: 50%;
        top: 0px;
        left: 0px;
        bottom: 0px;
        right: 0px;
}
.tbl-r01 span::after {
        content: "";
        position: absolute;
        border: solid 2px #000;
        border-radius: 50%;
        top: -5px;
        left: -5px;
        bottom: -5px;
        right: -5px;
}
.tbl-r04 span {
        font-family: vdl-logojrblack, sans-serif;
        font-weight: 700;
        font-style: normal;
}
@media screen and (max-width: 960px) {
        td {
                padding: 0.5rem;
        }
        .tbl-r01:first-child {
                padding: 0.5rem 0;
        }
}
/*コピーライト
-------------------------------------*/
.copyright {
        font-weight: 400;
        text-align: center;
        padding: 1rem 0;
        background-color: var(--base-color);
        -webkit-transform: rotate(0.05deg);
        transform: rotate(0.05deg);
}
.copyright a {
        color: var(--white-color);
        text-decoration: none;
        display: inline;
        font-size: 13px;
}
/*ページトップへ戻るボタン
-------------------------------------*/
#pagetop {
        position: fixed;
        bottom: 10px;
        right: 10px;
}
#pagetop a {
        display: block;
        background-color: var(--base-color);
        color: var(--white-color);
        padding: 5px 8px;
        text-align: center;
        font-size: 40px;
}
#pagetop a:hover {
        background-color: var(--link-color);
}
/* 幅960px以下の表示
-------------------------------------*/
@media screen and (max-width: 960px) {
        /*ヘッダー
-------------------------------------*/
        .sitetitle {
                width: 60%;
                max-width: 300px;
                margin: 15px 10px 0;
        }
        /*お問い合わせ
-------------------------------------*/
        .table th {
                width: 100%;
                display: block;
        }
        .table td {
                display: block;
        }
        #pagetop a {
                font-size: 20px;
        }
}


/*2024.04.22追加*/
.kyousan .box{ padding: 20px; background-color: #fff5e0; -webkit-box-align: center; -ms-flex-align: center; align-items: center; }
.kyousan .box>div{ width: calc(100% - 358px); }
.kyousan .box>a{ width: 288px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; }
.kyousan .box h4{ color: #000; font-family: "M PLUS 1p", sans-serif; font-size: 18px; font-weight: 400; }
.kyousan .box p{ font-weight: 400; }
.kyousan .box p.as{ margin-top: 10px; font-size: 15px; }
.kyousan .box p span{ color: #e60012; }
@media screen and (max-width: 960px) {
.kyousan .box{ padding: 28px 20px; display: block }
.kyousan .box>div{ width: 100%; }
.kyousan .box h4{ font-size: 15px; text-align: center }
.kyousan .box>a{ width: 100%; margin-top: 15px; }
}