@charset 'utf-8';
@media screen and (min-width: 737px) {
    .container{
        width: 430px;
        margin: auto;
        position: relative;
        z-index: 1;
        box-shadow: 0px 0px 16px -6px rgba(0,0,0,0.6);
    }
    body{
        position: relative;
    }
    body:before,
    body:after{
        content: "";
        width: calc((100% - 430px) / 2);
        height: 100vh;
        position: fixed;
        top: 0;
    }
    body:before{
        left: 0;
        background: url(../img/pc_bg1.jpg)no-repeat center;
        background-size: auto 100%;
    }
    body:after{
        right: 0;
        background: url(../img/pc_bg2.jpg)no-repeat center;
        background-size: auto 100%;
    }
    #menu{
        width: 430px !important;
    }
    #open{
        right: calc(((100% - 430px) / 2) + 12px) !important;
    }
    #close,
    #pagetop{
        right: calc((100% - 430px) / 2) !important;
    }
    #menu{
        scrollbar-width: none;
        border-right: 8px solid #D7D7D7 !important;
    }
    #menu::-webkit-scrollbar {
        background: #D7D7D7;
        width: 2px;
    }
    #menu::-webkit-scrollbar-thumb {
        background-color: #D7D7D7;
    }
    #menu::-webkit-scrollbar-thumb:hover {
        background-color: #D7D7D7;
    }
}

img{
    max-width: 100%;
}
.container{
    background: url(../img/bg.jpg)repeat-y top center;
    background-size: 100% auto;
}
.title{
    position: relative;
    margin-bottom: 32px;
}
.title .tit{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 0;
    height: 100%;
}
#check .title .tit{
    background: url(../img/tit1.png)no-repeat center top;
    background-size: auto 100%;
}
#test .title .tit{
    background: url(../img/tit2.png)no-repeat center top;
    background-size: auto 100%;
}
.button{
    opacity: 0;
    transform: scale(0.5);
    transition: 0.3s;
    top: 0;
    position: relative;
}
.button a{
    border-radius: 50px;
    display: inline-block;
    box-shadow: 0px 7px 5px -4px rgba(0,0,0,0.48);
}
.button.active{
    animation-name: bounce;
    animation-duration: 0.3s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}
.button:hover{
    cursor: pointer;
    top: -5px;
}
.center{
    text-align: center;
}
p{
    font-size: 15px;
    line-height: 1.6em;
    font-weight: 400;
}
p.small{
    font-size: 10px;
    font-weight: 500;
}



#main .imgs{
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}
#main .imgs div{
    width: 100%;
    height: 0;
    left: 0;
    padding-top: 66.8%;
    position: absolute;
    transform: skew(0, -17.4deg);
    overflow: hidden;
}
#main .imgs img{
    position: absolute;
    transform: skew(0, 17.4deg);
}
#main .imgs .main1{
    background: #858966;
    top: -7.2%;
}
#main .imgs .main1 img{
    top: 23.4%;
    right: 100%;
}
#main .imgs .main2{
    background: #E3C0D8;
    top: 23.6%;
    padding-top: 57.2%;
}
#main .imgs .main2 img{
    top: -28%;
    left: 100%;
}
#main .imgs .main3{
    background: #969F96;
    bottom: 23.6%;
    padding-top: 57.2%;
}
#main .imgs .main3 img{
    bottom: -28%;
    right: 100%;
}
#main .imgs .main4{
    background: #DDC470;
    bottom: -7.2%;
}
#main .imgs .main4 img{
    bottom: 23.4%;
    left: 100%;
}
#main{
    position: relative;
    margin-bottom: 40px;
    overflow: hidden;
}
#main .inner{
    position: absolute;
    top: 30%;
    left: 0%;
    width: 100%;
    z-index: 1;
}
#main .inner .main_tit1{
    padding: 0 16% 111px 7%;
}
#main .inner .button{
    margin: 0 18%;
}
#main .main_tit2{
    width: 12%;
    height: auto;
    position: absolute;
    bottom: 27%;
    left: 10%;
}
@keyframes fadeinup {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}
#main .inner,
#main .main_tit2{
    opacity: 0;
    transform: translateY(20px);
    animation-name: fadeinup;
    animation-duration: 0.5s;
    animation-delay: 0.5s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}
@keyframes bounce {
    0% {
        opacity: 0;
        transform: scale(0.5);
    }
    60% {
        opacity: 0.95;
        transform: scale(1.05);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}
#main .inner .button{
    opacity: 0;
    transform: scale(0.5);
    animation-name: bounce;
    animation-duration: 0.3s;
    animation-delay: 1s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}
@keyframes main_right {
    0% {
        right: 100%;
    }
    100% {
        right: 0;
    }
}
@keyframes main_left {
    0% {
        left: 100%;
    }
    100% {
        left: 0;
    }
}
#main .main1 img,
#main .main3 img{
    animation-name: main_right;
    animation-duration: 0.5s;
    animation-delay: 0s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}
#main .main2 img,
#main .main4 img{
    animation-name: main_left;
    animation-duration: 0.5s;
    animation-delay: 0s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}

.lead{
    margin-bottom: 40px;
}
.lead p{
    display: inline-block;
    text-align: left;
    line-height: 2em;
}

#check{
    margin-bottom: 54px;
}
#check ul{
    border-top: 5px solid #fff;
}
#check li{
    border-bottom: 5px solid #fff;
    transform: translateY(20px);
    opacity: 0;
}
#check .active li{
    animation-name: fadeinup;
    animation-duration: 0.5s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}
#check .active li:nth-of-type(1){
    animation-delay: 0s;
}
#check .active li:nth-of-type(2){
    animation-delay: 0.2s;
}
#check .active li:nth-of-type(3){
    animation-delay: 0.4s;
}
#check .active li:nth-of-type(4){
    animation-delay: 0.6s;
}
#check li a{
    display: block;
    position: relative;
    overflow: hidden;
}
#check li a:before{
    content: "";
    width: 40px;
    height: 40px;
    position: absolute;
    bottom: 13px;
    right: 15px;
    background: url(../img/type_arrow.png)no-repeat center;
    background-size: contain;
    z-index: 1;
}
#check li a img:not(.type_tit){
    transition: 0.3s;
}
#check li a:hover img:not(.type_tit){
    transform: scale(1.05);
}
#check li .type_tit{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#test{
    padding-bottom: 60px;
}
#test .box{
    padding: 0 16px;
}
#test .box{
    margin-bottom: 40px;
}
#test .box p:not(.attention):not(.small){
    margin-bottom: 24px;
}
#test h6{
    color: #fff;
    font-size: 21px;
    font-weight: 600;
    line-height: 57px;
    background: url(../img/tit_bg.png)no-repeat center;
    background-size: 100% 100%;
    margin-bottom: 20px;
}
@media screen and (min-width: 431px) {
    #test h6{
        background-size: auto 100%;
    }
}
#test .attention{
    background: #fff;
    border: 1px solid #231815;
    font-size: 10px;
    font-weight: 500;
    display: inline-block;
    padding: 0 6px;
    line-height: 20px;
    margin-bottom: 16px;
}
#test .img{
    margin: 0 28px 20px 22px;
    position: relative;
}
#test .img:before{
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 6px;
    left: 6px;
    border-radius: 20px;
    background: #D6D7D7;
    mix-blend-mode: multiply;
}
#test .img img{
    border-radius: 20px;
    position: relative;
    z-index: 1;
}
#test .more{
    margin-bottom: 24px;
}
#test .button{
    margin: 0 78px;
}
#test .button.active{
    animation-delay: 0s;
}

#whichtype{
    background: #fff;
    position: relative;
    padding: 30px 0 88px;
}
.top #whichtype:before{
    content: "";
    width: 100%;
    height: 9px;
    position: absolute;
    top: -8px;
    left: 0;
    background: url(../img/bg2.png)repeat-x center bottom;
    background-size: auto 9px;
}
#whichtype .box .tit_img{
    margin-top: -60px;
}
@keyframes fadeinleft {
    0% {
        opacity: 0;
        transform: translateX(-20px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}
#whichtype .box .tit{
    opacity: 0;
    transform: translateX(-20px);
}
#whichtype .box.active .tit{
    animation-name: fadeinleft;
    animation-duration: 0.5s;
    animation-delay: 0.5s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}
#whichtype .box .button{
    margin: -56px 78px 42px;
}
#whichtype .box.active .button{
    animation-name: bounce;
    animation-duration: 0.3s;
    animation-delay: 1s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}
#whichtype .sticker{
    margin-bottom: 56px;
}
#whichtype .sticker .tit_img{
    margin-top: 16px;
    margin-bottom: 18px;
}
#whichtype .sticker .small{
    margin-top: 12px;
    margin-bottom: 24px;
}
#whichtype .sticker.active .button{
    animation-name: bounce;
    animation-duration: 0.3s;
    animation-delay: 0.5s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}
#whichtype .links p{
    width: calc(100% - 64px);
    max-width: 368px;
}
#whichtype .links p.bnr{
    margin: 0 auto 16px;
}
#whichtype .links p.citycontact{
    margin: 0 auto 32px;
}
#whichtype .links p.citycontact a{
    display: inline-block;
    width: 100%;
    line-height: 65px;
    border: 1px solid #231815;
}
#whichtype .links p.citycontact a img{
    vertical-align: middle;
}
#whichtype .links h6{
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 16px;
}
#whichtype .links ul{
    margin: 0 32px;
    display: flex;
    flex-wrap: wrap;
}
#whichtype .links li{
    width: calc((100% - 16px) / 3);
    margin-right: 8px;
    margin-bottom: 10px;
    border-radius: 8px;
    overflow: hidden;
}
#whichtype .links li:nth-of-type(3n){
    margin-right: 0;
}
#whichtype .links li:nth-last-of-type(-n+3){
    margin-bottom: 0;
}


footer{
    background: #2B2C37;
    color: #fff;
    padding: 50px 0 24px;
    position: relative;
}
footer ul{
    font-size: 0;
    margin-bottom: 30px;
}
footer li{
    display: inline-block;
    vertical-align: middle;
    font-size: 15px;
    font-weight: 500;
    margin: 0 7px;
    padding-left: 15px;
    position: relative;
}
footer li:before{
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #fff;
    position: absolute;
    top: 50%;
    left: 0;
    margin-top: -5px;
}
footer small{
    font-size: 10px;
    font-weight: 500;
}
#pagetop{
    position: fixed;
    bottom: 0;
    right: 0;
    z-index: 10;
}
#pagetop.active{
    position: absolute;
    top: -48px;
    right: 0 !important;
}
#pagetop a{
    width: 48px;
    line-height: 48px;
    text-align: center;
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    display: block;
    background: #A40F00;
    border-radius: 8px 8px 0 0;
}

.menu_btn{
    cursor: pointer;
}
#open{
    width: 58px;
    height: 58px;
    box-sizing: border-box;
    position: fixed;
    top: 6px;
    right: 12px;
    z-index: 100;
}
#open span{
    width: 32px;
    height: 4px;
    background: #fff;
    position: absolute;
    left: 14px;
}
.under #open span{
    background: #000;
}
.under h1, .interview h1 {
	display: none;
}
#open span:nth-of-type(1){
    top: 22px;
}
#open span:nth-of-type(2){
    top: 31px;
}

#close{
    width: 58px;
    height: 58px;
    box-sizing: border-box;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 100;
    background: #fff;
    border-left: 2px solid #000000;
    border-bottom: 2px solid #000000;
    display: none;
}
#close span{
    width: 43px;
    height: 3px;
    background: #000;
    position: absolute;
    top: 50%;
    left: 50%;
}
#close span:nth-of-type(1){
    transform: translate(-50%, -50%) rotate(45deg);
}
#close span:nth-of-type(2){
    transform: translate(-50%, -50%) rotate(-45deg);
}
#menu{
    position: fixed;
    top: 0;
    left: 50%;
    z-index: 99;
    width: 100%;
    max-height: 100%;
    overflow-y: scroll;
    overflow-x: hidden;
    border: 10px solid #D7D7D7;
    transform: translateX(-50%);
    display: none;
    background: url(../img/bg.jpg)repeat-y top center;
    background-size: 100% auto;
}
#menu .inner{
    padding: 64px 16px 32px;
    border-bottom: none;
}
#menu .inner .logo{
    text-align: center;
    margin-bottom: 48px;
}
#menu .inner > ul{
    margin-bottom: 70px;
}
#menu .inner > ul li{
    margin-bottom: 24px;
}
#menu .inner > ul li:last-of-type{
    margin-bottom: 0;
}
#menu .inner > ul li a{
    display: block;
    line-height: 64px;
    font-size: 18px;
    font-weight: 500;
    padding-left: 64px;
    background: #fff;
    border-radius: 50px;
    border: 1px solid #000;
    position: relative;
}
#menu .inner > ul li a:before{
    content: "";
    width: 21px;
    height: 21px;
    position: absolute;
    top: 50%;
    left: 30px;
    background: url(../img/menu_arrow.png)no-repeat center;
    background-size: contain;
    margin-top: -10px;
}
#menu .citycontact{
    margin-bottom: 48px;
}
#menu .citycontact a{
    display: block;
    width: 100%;
    line-height: 65px;
    border: 1px solid #231815;
    background: #fff;
    position: relative;
}
#menu .citycontact a:before{
    content: "";
    width: 5px;
    height: 5px;
    background: #F41B1B;
    position: absolute;
    bottom: 3px;
    right: 3px;
    background: url(../img/citycontact_arrow.png)no-repeat center;
    background-size: contain;
}
#menu .citycontact a img{
    vertical-align: middle;
}
#menu .shop h2{
    font-size: 20px;
    font-weight: 700;
    padding: 12px 0;
    margin: 0 -26px 22px;
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
}
#menu .shop > p{
    font-size: 14px;
    margin-bottom: 30px;
}
#menu .shop dl{
    background: #fff;
    border-radius: 14px;
    border: 1px solid #000;
    padding: 17px 14px 18px;
    margin-bottom: 7px;
}
#menu .shop dl dt{
    text-align: left;
    font-size: 22px;
    font-weight: 500;
    padding-left: 14px;
    position: relative;
    cursor: pointer;
}
#menu .shop dl dt:before,
#menu .shop dl dt:after{
    content: "";
    width: 22px;
    height: 4px;
    background: #000;
    position: absolute;
    top: 50%;
    right: 8px;
    margin-top: -2px;
}
#menu .shop dl dt:after{
    transform: rotate(90deg);
}
#menu .shop dl dd{
    padding-top: 28px;
    padding-bottom: 2px;
    display: none;
}
#menu .shop dl dd ul{
    display: flex;
    flex-wrap: wrap;
}
#menu .shop dl dd li{
    width: calc((100% - 8px) / 2);
    margin-right: 8px;
    margin-bottom: 16px;
}
#menu .shop dl dd li:nth-of-type(2n){
    margin-right: 0;
}
#menu .shop dl dd li:nth-last-of-type(-n+2){
    margin-bottom: 0;
}
#menu .shop dl dd li a{
    display: block;
}
#menu .shop dl dd li p{
    margin-top: 5px;
    font-size: 12px;
    line-height: 1.4em;
}

#chikame1 {
	margin-bottom: 32px;
}
#chikame h3 {
	font-size: 24px;
	text-align: left;
	width: 80%;
	margin: 0 auto 16px;
}
#chikame p {
	width: 80%;
	margin: 0 auto 32px;
	text-align: left;
}
#chikame2 {
	width: 80%;
	margin: 0 auto 16px;
}
#chikame h4 a {
	color: #244E80;
	text-decoration: underline;
}
#chikame h4 a:hover {
	text-decoration: none;
}


/* 下層 */
.under .container{
    padding: 48px 0 93px;
}
@keyframes fadein {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
.under .result h2{
    opacity: 0;
    animation-name: fadein;
    animation-duration: 0.5s;
    animation-delay: 0.2s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}
.under .result h3{
    margin-top: -16px;
    position: relative;
    z-index: 1;
}
.under .result .main_img{
    margin-top: -12px;
    margin-bottom: 45px;
}
.under .result h3,
.under .result .main_img{
    opacity: 0;
    transform: translateY(20px);
    animation-name: fadeinup;
    animation-duration: 0.5s;
    animation-delay: 0.7s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}
.under .result p{
    padding: 0 36px;
    margin-bottom: 20px;
}
.under .result p#hash {
	color: #C33CC0;
}
.under .recommend h2{
    margin-bottom: 18px;
}
.under .recommend h3{
    margin-bottom: 32px;
}
.under .recommend .wrapper{
    padding: 0 36px;
    margin-bottom: 36px;
}
.under .recommend .item{
    display: flex;
    max-width: 358px;
    margin: 0 auto 16px;
}
.under #magic {
	font-size: 10px;
    line-height: 1.45em;
	margin-bottom: 20px;
}
.under .recommend .item .img{
    width: 168px;
    margin-right: 18px;
}
.under .recommend .item .img span{
    font-size: 9px;
    display: block;
    margin-top: 10px;
    /*white-space: nowrap;*/
    letter-spacing: -0.03em;
}
.under .recommend .item .text{
    width: calc(100% - 168px - 18px);
}
.under .recommend .item .text h4{
    font-size: 15px;
    line-height: 1.3em;
    padding-bottom: 8px;
    margin-bottom: 8px;
    border-bottom: 1px solid #000;
    font-weight: 700;
}
.under .recommend .item .text h4 span.maker {
    font-size: 11px;
}
.under .recommend .item .text h4 span.s-maker {
    font-size: 9px;
}
.under .recommend .item .text p{
    font-size: 14px;
    line-height: 1.45em;
}
.under .share{
    margin-bottom: 40px;
}
.under .share h3{
    margin-bottom: 16px;
}
.under .share ul{
    font-size: 0;
    padding: 0 52px;
}
.under .share li{
    display: inline-block;
    vertical-align: top;
    width: calc((100% - 28px) / 3);
    max-width: 95px;
    margin-right: 14px;
}
.under .share li:last-of-type{
    margin-right: 0;
}
.under .share li a{
    display: block;
    transition: 0.3s;
}
.under .share li a:hover{
    opacity: 0.8;
}
.under .other{
    margin-bottom: 42px;
}
.under .other h3{
    margin-bottom: 18px;
}
.under .other ul{
    padding: 0 24px;
    font-size: 0;
}
.under .other li{
    display: inline-block;
    vertical-align: top;
    width: calc((100% - 12px) / 3);
    max-width: 123px;
    margin-right: 6px;
}
.under .other li:last-of-type{
    margin-right: 0;
}
.under .other li .othertype_tit{
    margin-bottom: 12px;
}
.under .other li a{
    transition: 0.3s;
}
.under .other li a:hover{
    filter: brightness(1.2);
}
.under .more{
    margin-bottom: 28px;
}
.under .btns{
    margin-top: 42px;
}
.under .btns .button{
    margin-bottom: 27px;
}
.under .btns .button:last-of-type{
    margin-bottom: 0;
}
.under .active .button{
    animation-name: bounce;
    animation-duration: 0.3s;
    animation-delay: 0s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}


.under.shindan .container{
    min-height: 100vh;
    padding: 34px 0 88px;
    border-top: 22px solid #2B2C37;
    border-bottom: 22px solid #2B2C37;
}
.under.shindan .slick-slide{
    opacity: 0;
    transition: 0.5s;
}
.under.shindan .slick-slide.slick-current{
    opacity: 1;
}
.under.shindan .content{
    padding: 0 25px;
    max-width: 430px;
    margin: auto;
}
.under.shindan .dots{
    display: block;
    text-align: center;
    line-height: 0;
}
.under.shindan .dots span{
    width: 9px;
    height: 9px;
    background: #B3B3B3;
    display: inline-block;
    border-radius: 50%;
    margin: 0 10px;
}
.under.shindan .dots span.active{
    background: #000;
}
.under.shindan .tit{
    padding-top: 48px;
    margin-bottom: 24px;
    position: relative;
}
.under.shindan .tit img{
    display: inline;
}
.under.shindan .tit img:not(.fukidashi){
    border-bottom: 1px solid #000;
    border-width: 1.5px;
}
.under.shindan .tit .fukidashi{
    position: absolute;
    top: 0;
    left: 50%;
    margin-left: -188px;
}
.under.shindan .btns{
    font-size: 0;
    margin-bottom: 25px;
}
.under.shindan .btns button{
    width: calc((100% - 18px) / 2);
    max-width: 161px;
    height: 128px;
    border-radius: 22px;
    color: #fff;
    margin-right: 18px;
    background: #FF53FF;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.4em;
    vertical-align: top;
    box-shadow: 0px 7px 5px -4px rgba(0,0,0,0.48);
}
.under.shindan .btns button:last-of-type{
    margin-right: 0;
    background: #2987C9;
}
.under.shindan .q{
    width: 100%;
    height: 68px;
    display: table;
    padding-bottom: 16px;
}
.under.shindan .q h6{
    display: table-cell;
    vertical-align: middle;
    width: 100%;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.3em;
}

.animation.fadeinup{
    opacity: 0;
    transform: translateY(20px);
}
.animation.fadeinup.active{
    animation-name: fadeinup;
    animation-duration: 0.5s;
    animation-delay: 0s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}


@keyframes w100 {
    0% {
        width: 0;
    }
    100% {
        width: 100%;
    }
}
.title.animation .tit{
    width: 0;
}
.title.animation.active .tit{
    animation-name: w100;
    animation-duration: 0.5s;
    animation-delay: 0.5s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}
footer a,
.links a{
    transition: 0.3s;
}
footer a:hover,
.links a:hover{
    opacity: 0.8;
}



.interview .container{
    background: #fff;
}
.interview main > ul{
    margin-bottom: 16px;
}
.interview main > ul > li{
    text-align: center;
}
.interview main > ul > li a{
    font-size: 17px;
    font-weight: 600;
    color: #244E80;
    text-decoration: underline;
}
.interview .movie{
    width: 100%;
    height: 0;
    padding-top: 56.25%;
    position: relative;
}
.interview .movie iframe{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.interview footer{
    padding-top: 20px;
}