@charset "utf-8";
/* Settings
   ========================================================================== */
* {
    margin: 0;
    padding: 0;
}
body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,section,article,aside,hgroup,header,footer,nav,dialog,figure,menu,video,audio,mark,time,canvas,details {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    background: transparent;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}
html{
    /* 1rem = 100pxと同義 */
    font-size: 100px;
}
body{
    min-width: 1025px;
    font-size: .16rem;
    font-family: "Zen Kaku Gothic New", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Myriad Pro, Myriad, Arial, sans-serif;
    font-weight: 500;
    font-style: normal;
    font-optical-sizing: auto;
    color: #000;
    overflow-x: scroll;
    text-size-adjust: 100%;
	background: #fff;
    word-wrap: break-word;
    word-break: break-all;
}
img {
	max-width: 100%;
	margin: auto;
    vertical-align: bottom;
}
a {
    color: #000;
    text-decoration: none;
	display: inline-block;
    transition: all .2s;
}
a:hover{
    opacity: .6;
}
a img{
    text-decoration: none;
}
section,article,aside,hgroup,header,footer,nav,dialog,figure,figcaption {
	display: block;
}
input,select {
    vertical-align: middle;
}
ul,
li,
dl,
dt,
dd,
form {
    margin: 0px;
    padding: 0px;
    border: 0px;
    list-style: none;
}
li::marker {
    margin: 0;
    padding: 0;
}
blockquote,
q {
    quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
    content: '';
    content: none;
}
ins {
    /* remember to highlight inserts somehow! */
    text-decoration: none;
}
del {
    text-decoration: line-through;
}
table {
    /* markup tables with 'cellspacing="0"' */
    border-collapse: collapse;
    border-spacing: 0;
}
button{
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    vertical-align: middle;
    border: 0;
    background: transparent;
    border-radius: 0;
    text-align: inherit;
}
button:hover {
    cursor: pointer;
}
/*h1,h2,h3,h4,h5,h6{
    font-weight: normal;
}*/
/* Style parts
   ========================================================================== */
.alc {
    text-align: center !important;
}
.all {
    text-align: left !important;
}
.alr {
    text-align: right !important;
}
.floatL {
    float: left;
}
.floatR {
    float: right;
}
.clr {
    zoom: 1;
}
.clr:after {
    content: ' ';
    display: block;
    clear: both;
    height: 0;
}
.clearboth {
    clear: both !important;
}
.pc {
    display: block;
}
.sp {
    display: none;
}
/* font size */
.fs-12{
    font-size: .12rem;
}
.fs-13{
    font-size: .13rem;
}
.fs-14{
    font-size: .14rem;
}
.fs-15{
    font-size: .15rem;
}
.fs-16{
    font-size: .16rem;
}
.fs-18{
    font-size: .18rem;
}
.fs-20{
    font-size: .2rem;
}
.fs-22{
    font-size: .22rem;
}
.fs-24{
    font-size: .24rem;
}
.fs-26{
    font-size: .26rem;
}
.fs-28{
    font-size: .28rem;
}
.fs-30{
    font-size: .3rem;
}
.fs-32{
    font-size: .32rem;
}
.fs-36{
    font-size: .36rem;
}
.fs-40{
    font-size: .40rem;
}
.fs-46{
    font-size: .46rem;
}
.fs-48{
    font-size: .48rem;
}
.fs-60{
    font-size: .60rem;
}
.fs-70{
    font-size: .70rem;
}
.fs-75{
    font-size: .75rem;
}
.fs-85{
    font-size: .85rem;
}
/* font weight */
.bold{
    font-weight: 700;
}
/* line hight */
.lh-14{
    line-height: 1.4;
}
.lh-16{
    line-height: 1.6;
}
.lh-18{
    line-height: 1.8;
}
.lh-2{
    line-height: 2;
}
.lh-23{
    line-height: 2.3;
}
.lh-25{
    line-height: 2.5;
}
/* letter-space */
.ls-1{
    letter-spacing: .01rem;
}
/* color */
.pink{
    color: #e83278;
}
.white{
    color: #fff;
}
/* Common parts
   ========================================================================== */
main{
    padding-top: 1.3rem;
}
.c-inner{
    width: min(100% - 1rem, 12rem);
    margin: auto;
}
.c-sec-wave{
    --height: 40px;
    mask-image: url(../img/common/bg_wave.svg),linear-gradient(to bottom, transparent 0%, transparent var(--height), #000 var(--height), #000 100%);
    mask-size: 1200px;
    margin-top: calc(-1 * var(--height));
}
.c-sec_ttl{
    display: flex;
    justify-content: center;
    align-items: center;
}
.c-sec_ttl span{
    border-top: 2px solid #000;
    border-bottom: 2px solid #000;
    padding: .1rem;
}
.c-sec_ttlwrap{
    display: grid;
    place-items: center;
    gap: .1rem;
}
.c-sec_ttl02{
    display: flex;
    justify-content: center;
    align-items: center;
}
.c-sec_ttl02 span{
    border-bottom: 2px solid #000;
    padding-bottom: .1rem;
}
.c-sec-btn{
    width: min(100%,630px);
    height: .9rem;
    margin: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .1rem;
    background: #f78ca8;
    -webkit-box-shadow: 0 0 8px 2px rgba(0, 0, 0, .15);
    box-shadow: 0 0 8px 2px rgba(0, 0, 0, .15);
    border-radius: 9999px;
    color: hsl(0, 0%, 100%);
    position: relative;
}
.c-sec-btn::after{
    content: '';
    width: .54rem;
    height: .11rem;
    border-bottom: 2px solid #fff;
    border-right: 3px solid #fff;
    transform: skew(45deg);
    position: absolute;
    top: 0;
    bottom: 0;
    right: .4rem;
    margin: auto;
    transition: all .2s;
}
.c-sec-btn.is-hover::after{
    right: .3rem;
}
.c-sec-btn-2col{
    display: flex;
    justify-content: space-between;
    gap: .1rem;
    width: min(100%,630px);
    margin: auto;
}
.c-sec-btn-2col a{
    width: 100%;
    height: .7rem;
    margin: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .1rem;
    background: #f5a8bc;
    -webkit-box-shadow: 0 0 8px 2px rgba(0, 0, 0, .15);
    box-shadow: 0 0 8px 2px rgba(0, 0, 0, .15);
    border-radius: 9999px;
    color: #fff;
    position: relative;
}
.c-sec-btn-2col a::after{
    content: '';
    width: .33rem;
    height: .11rem;
    border-bottom: 2px solid #fff;
    border-right: 3px solid #fff;
    transform: skew(45deg);
    position: absolute;
    top: 0;
    bottom: 0;
    right: .3rem;
    margin: auto;
    transition: all .2s;
}
.c-sec-btn-2col a.is-hover::after{
    right: .2rem;
}
.c-conts-ttl{
    display: flex;
    align-items: center;
    gap: .2rem;
}
.c-conts-ttl .num{
    color: transparent;
    background: linear-gradient(45deg, #f83600, #facc22);
    background-clip: text;
    flex: 0 0 auto;
}
.c-conts-ttl .underline{
    padding: .1rem 0 .05rem;
    border-bottom: 2px solid #000;
}
.c-flw_regi{
    position: fixed;
    z-index: 9996;
    top: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 1rem;
    height: 1.5rem;
}
.c-flw_regi a{
    color: #fff;
    background: #e83278;
    border-radius: .3rem 0 0 .3rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: .05rem;
    width: 100%;
    height: 100%;
    -webkit-box-shadow: 0 0 8px 2px rgba(255, 255, 255, .5);
    box-shadow: 0 0 8px 2px rgba(255, 255, 255, .5);
    transition: all .2s;
    text-align: center;
}
.c-flw_regi a img{
    width: .48rem;
    margin: 0;
}
.c-flw_regi .is-hover{
    background: #eb6e9f;
}
.c-bc{
    padding: .2rem 0;
}
.c-bc a:hover{
    opacity: 1;
    color: #ff2c83;
}
.c-bc  > ul{
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .1rem;
}
.c-bc  > ul li{
    display: flex;
    align-items: baseline;
    gap: .1rem;
}
.c-bc > ul li:not(:last-child)::after{
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    border-right: 2px solid #ff2c83;
    border-bottom: 2px solid #ff2c83;
    transform: rotate(-45deg) translateY(-30%);
}
/* Common JS parts
   ========================================================================== */
/*html.is-open{
    height: 100%;
    overflow: hidden;
}*/
.js-fadein{
    transition: all 1s;
    opacity: 0;
}
.js-fadein.is-animated{
    opacity: 1;
}
.js-hover:hover{
    opacity: 1;
}
.js-flw{
    display: none;
}
.js-slideinL{
    transform: translate3d(-50px, 0, 0);
    transition: all 1s;
    opacity: 0;
}
.js-slideinL.is-animated{
    transform: translate3d(0, 0, 0);
    opacity: 1;
}
.js-slideinR{
    transform: translate3d(50px, 0, 0);
    transition: all 1s;
    opacity: 0;
}
.js-slideinR.is-animated{
    transform: translate3d(0, 0, 0);
    opacity: 1;
}
/* Header
   ========================================================================== */
.l-header{
    position: fixed;
    z-index: 9997;
    width: 100%;
    background: url(../img/common/header_bg.png) no-repeat top center / cover;
    -webkit-box-shadow: 0 0 8px 2px rgba(0, 0, 0, .15);
    box-shadow: 0 0 8px 2px rgba(0, 0, 0, .15);
}
.l-hedaer__cont{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .2rem;
    height: 1.3rem;
}
.l-header__cont-logo{
    flex: 0 0 .95rem;
}
.l-header__cont-nav{
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: .3rem;
    height: 100%;
}
.l-header__cont-nav-entry{
    display: flex;
    gap: .2rem;
}
.c-entry_btn{
    position: relative;
    border: 2px solid #fff;
    color: #fff!important;
    border-radius: 9999px;
    width: 260px;
    height: 45px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-left: 10px;
}
.c-entry_btn::before{
    content: '';
    width: 50px;
    height: 65px;
    background: url(../img/common/ico_mascot.svg) no-repeat top center / 100% auto;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
}
.c-entry_btn::after{
    content: '';
    width: 9px;
    height: 10px;
    clip-path: polygon(100% 50%, 0 0, 0 100%);
    background: #fff;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 15px;
    margin: auto;
    transition: all .2s;
}
.c-entry_btn.is-hover::after{
    right: 10px;
}
.c-entry_btn.tokyo{
    background: linear-gradient(90deg, #b32dbb, #3e45d6);
}
.c-entry_btn.osaka{
    background: linear-gradient(90deg, #8a28c3, #d4620e);
}
.l-header__hMenuBtn{
    position: relative;
    z-index: 9999;
    width: .8rem;
    height: .8rem;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
}
.l-header__hMenuBtn-line{
    width: .4rem;
    height: .05rem;
    background: transparent;
    position: relative;
    transition: all .2s;
}
.l-header__hMenuBtn-line::before,
.l-header__hMenuBtn-line::after{
    content: "";
    position: absolute;
    width: .4rem;
    height: 100%;
    background: #e73278;
    transition: all .2s;
}
.l-header__hMenuBtn-line::before {
    transform: translateY(-.07rem);
}
.l-header__hMenuBtn-line::after {
    transform: translateY(.07rem);
}
.l-header__hMenuBtn.is-open{
    background: #eb6e9f;
}
.l-header__hMenuBtn-line.is-open::before,
.l-header__hMenuBtn-line.is-open::after {
    content: "";
    transition: all .2s;
    background: #fff;
}
.l-header__hMenuBtn-line.is-open::before {
    width: .4rem;
    transform: rotate(25deg);
}
.l-header__hMenuBtn-line.is-open::after {
    width: .4rem;
    transform: rotate(-25deg);
}
.l-header__hMenu{
    position: fixed;
    z-index: 9998;
    top: 0;
    left: 0;
    width: 100%;
    visibility: hidden;
    opacity: 0;
    background: #ffe5eb;
    transition: all .2s;
    overflow-y: scroll;
    -webkit-box-shadow: 0 0 8px 2px rgba(0, 0, 0, .15);
    box-shadow: 0 0 8px 2px rgba(0, 0, 0, .15);
}
.l-header__hMenu.is-open{
    visibility: visible;
    opacity: 1;
    transition: all .2s;
}
.l-header__hMenu-nav{
    padding: 1.5rem 0 1rem;
}
.l-header__hMenu-nav-main{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    place-items: flex-start;
    gap: .1rem;
}
.l-header__hMenu-nav-main > li{
    display: grid;
    gap: .3rem;
}
.l-header__hMenu-nav-main > li > a{
    font-weight: bold;
    color: #e83278;
}
.l-header__hMenu-nav-sub{
    display: grid;
    gap: .2rem;
    margin-top: -.1rem;
}
.l-header__hMenu-subnav{
    margin-top: 1rem;
    padding-top: .5rem;
    border-top: 1px solid #000;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}
.l-header__hMenu-subnav-info{
    display: flex;
    gap: .3rem;
}
.l-header__hMenu-subnav-info a{
    color: #e83278;
    border-bottom: 1px solid #e83278;
    padding-bottom: .1rem;
    display: flex;
    align-items: center;
    gap: .15rem;
}
.l-header__hMenu-subnav-info a::after{
    content: '';
    width: 9px;
    height: 10px;
    clip-path: polygon(100% 50%, 0 0, 0 100%);
    background: #e83278;
}
/* Footer
   ========================================================================== */
.l-footer{
    background: #e83278;
    color: #fff;
    border-radius: 1rem 1rem 0 0;
    position: relative;
    margin-top: -1rem;
}
.l-footer a{
    color: #fff;
}
.l-footer__cont{
    padding: .5rem 0 .25rem;
    display: grid;
    gap: .3rem;
    position: relative;
}
.l-footer__cont-nav-main{
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: .1rem;
}
.l-footer__cont-nav a{
    width: 100%;
    position: relative;
}
.l-footer__cont-nav a:hover{
    opacity: 1;
    text-decoration: underline;
}
.l-footer__cont-nav-main > li > a{
    display: flex;
    align-items: center;
    font-weight: bold;
}
/*.l-footer__cont-nav-main > li > a::after{
    content: '';
    width: 1px;
    height: 100%;
    background: #fff;
    position: absolute;
    top: 0;
    right: -.05rem;
}
.l-footer__cont-nav-main > li:first-child > a::before{
    content: '';
    width: 1px;
    height: 100%;
    background: #fff;
    position: absolute;
    top: 0;
    left: 0;
}*/
.l-footer__cont-nav-sub{
    margin-top: .25rem;
    display: grid;
    gap: .1rem;
}
.l-footer__cont-subnav{
    position: absolute;
    bottom: .25rem;
    right: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .3rem;
}
.l-footer__cont-subnav-sns a{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .05rem;
}
.l-footer__cont-subnav-txt{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .1rem;
}
.l-footer__cont-logo{
    display: flex;
    justify-content: center;
    align-items: center;
}
.l-footer__cont-logo img{
    width: 1rem;
}
.l-footer__cont-copy{
    text-align: center;
}
@media only screen and (max-width: 1024px) {
    /* Settings
   ========================================================================== */
    html{
        /* 1rem = 50pxと同義 */
        font-size: 50px;
    }
    body{
        min-width: 100%;
        font-size: calc((.16rem * 100 / 50) * 0.9);
    }
    /* Style parts
   ========================================================================== */
    .pc {
        display: none;
    }
    .sp {
        display: block;
    }
    .fs-12{
        font-size: calc((.12rem * 100 / 50) * 1);
    }
    .fs-13{
        font-size: calc((.13rem * 100 / 50) * 0.9);
    }
    .fs-14{
        font-size: calc((.14rem * 100 / 50) * 0.9);
    }
    .fs-15{
        font-size: calc((.15rem * 100 / 50) * 0.9);
    }
    .fs-16{
        font-size: calc((.16rem * 100 / 50) * 0.9);
    }
    .fs-18{
        font-size: calc((.18rem * 100 / 50) * 0.9);
    }
    .fs-20{
        font-size: calc((.2rem * 100 / 50) * 0.9);
    }
    .fs-22{
        font-size: calc((.22rem * 100 / 50) * 0.9);
    }
    .fs-24{
        font-size: calc((.24rem * 100 / 50) * 0.8);
    }
    .fs-26{
        font-size: calc((.26rem * 100 / 50) * 0.8);
    }
    .fs-28{
        font-size: calc((.28rem * 100 / 50) * 0.7);
    }
    .fs-30{
        font-size: calc((.3rem * 100 / 50) * 0.7);
    }
    .fs-32{
        font-size: calc((.32rem * 100 / 50) * 0.7);
    }
    .fs-36{
        font-size: calc((.36rem * 100 / 50) * 0.6);
    }
    .fs-40{
        font-size: calc((.4rem * 100 / 50) * 0.6);
    }
    .fs-46{
        font-size: calc((.46rem * 100 / 50) * 0.6);
    }
    .fs-48{
        font-size: calc((.48rem * 100 / 50) * 0.6);
    }
    .fs-60{
        font-size: calc((.60rem * 100 / 50) * 0.6);
    }
    .fs-70{
        font-size: calc((.70rem * 100 / 50) * 0.6);
    }
    .fs-75{
        font-size: calc((.75rem * 100 / 50) * 0.6);
    }
    .fs-85{
        font-size: calc((.85rem * 100 / 50) * 0.6);
    }
    .f-min{
        font-weight: 700;
    }
    .lh-2{
        line-height: 1.8;
    }
    .lh-23{
        line-height: 2.1;
    }
    .lh-25{
        line-height: 2.1;
    }
    /* Common parts
    ========================================================================== */
    .c-sec-wave{
        --height: 25px;
        mask-size: 300px;
        mask-image: url(../img/common/bg_wave_sp.svg),linear-gradient(to bottom, transparent 0%, transparent var(--height), #000 var(--height), #000 100%);
    }
    .c-sec-btn-2col a{
        height: .9rem;
    }
    .c-sec-btn-2col{
        flex-direction: column;
        gap: .4rem;
    }
    .c-flw_regi{
        top: auto;
        width: 100%;
        height: 1rem;
    }
    .c-flw_regi a{
        border-radius: .5rem .5rem 0 0;
        flex-direction: row-reverse;
    }
    /* Header
   ========================================================================== */
    .l-header__cont-nav-entry{
        display: none;
    }
    .l-header__hMenu-nav-main{
        grid-template-columns: repeat(2, 1fr);
        gap: .5rem;
    }
    /* Footer
   ========================================================================== */
    .l-footer{
        border-radius: .5rem .5rem 0 0;
    }
    .l-footer__cont-nav{
        display: grid;
        row-gap: .5rem;
    }
    .l-footer__cont-nav-main{
        grid-template-columns: repeat(4, 1fr);
        row-gap: .5rem;
    }
    /*.l-footer__cont-nav-main > li:nth-child(5n) > a::before{
        content: '';
        width: 1px;
        height: 100%;
        background: #fff;
        position: absolute;
        top: 0;
        left: 0;
    }*/
    .l-footer__cont-nav-sub{
        gap: .2rem;
    }
    .l-footer__cont-subnav{
        position: relative;
        bottom: auto;
        right: auto;
        align-items: flex-start;
    }
    .l-footer__cont{
        padding-bottom: 1.2rem;
    }
}
@media only screen and (max-width: 430px) {
    /* Header
   ========================================================================== */
    .l-header__hMenu{
        height: 100vh;
    }
    .l-header__hMenu-nav-main{
        grid-template-columns: repeat(1, 1fr);
    }
    /* Footer
   ========================================================================== */
    .l-footer__cont-nav-main{
        grid-template-columns: repeat(2, 1fr);
    }
    /*.l-footer__cont-nav-main > li:nth-child(odd) > a::before{
        content: '';
        width: 1px;
        height: 100%;
        background: #fff;
        position: absolute;
        top: 0;
        left: 0;
    }*/
    .l-header__hMenu-subnav{
        flex-direction: column;
        gap: .3rem;
    }
    .l-header__hMenu-subnav-info{
        flex-direction: column;
    }
}