@charset "UTF-8";


@media screen and (max-width: 640px) {

p{
	font-size: 1em;
}
.contents{
	width: 100%;
}
.menu{
	flex-wrap: wrap;
	padding: 0;
}
.menu li span{
	display: none;
}
.menu li{
	width: 50%;
	padding: 0;
	margin: 0;
	border: none;
}
.flex_box{
	max-width: 80%;
	margin: auto;
	gap: 5.3vw;
	
	p {
		font-size: 0.8em;
	}
}
.box{
	display: block;
	width: auto;
	padding: 20px;
	margin: 20px 20px 12vw 20px;
	max-width: 620px;
	border-radius: 40px;
	
	p {
		font-size: 0.9em;
	}
}
.box .image{
	width: auto;
}
.box .tx{
	width: auto;
	margin-top: 20px;
}
.box02{
	gap: 3.3vw;
	margin: 0 20px;
}
.box02 > div::before{
	width: 53px;
	height: 46px;
	top: -30px;
	left: calc(50% - 23px);
}
.flex_box02{
	gap: 3.3vw;
	justify-content: center;
	max-width: 640px;
	margin: 0 20px;
}
.img02{
	padding-top: 10vw;
}
.img03{
	padding-top: 8.6vw;
	padding-bottom: 4.6vw;
}
.button01{
	padding-top: 5vw;
}
.img06{
	padding: 9vw 20px 10vw 20px;
}
.img07{
	padding: 10vw 0 5vw 0;
}
.img09{
	padding-top: 11vw;
}
.img11{
	padding-top: 6vw;
}
.img12{
	padding: 9vw 0 2vw 0;
}
.img14{
	padding-top: 4.6vw;
}
.img15{
	padding: 8.6vw 0;
}
.img26{
	padding: 12vw 0 3.7vw 0;
}
.img17{
	padding: 10vw 0 2.8vw 0;
}
.img21{
	padding: 8vw 0 4.2vw 0;
}
.button02{
	padding: 5.8vw 0 8vw 0;
}
.img25{
	padding: 0 0 20px 0;
}
.img27{
	margin: 0 20px;
}
.button03{
	padding-top: 3vw;
}
.button04{
	padding: 6vw 0 3.6vw 0;
}

footer{
	margin-top: 0;
	padding: 0 10px;
}
footer .logo{
	float: none;
	margin-bottom: 10px;
}
footer .inner{
	display: block;
	width: 100%;
	padding: 60px 10px 60px 10px;
	margin: 0;
	border-top: 2px solid #cccccc;
}
footer .logo{
	text-align: left;
	margin-bottom: 30px;
}
footer .logo img{
	width: 110px;
}
footer .copy{
	font-size: 1.2em;
	text-align: left;
	margin-bottom: 0;
}
footer .copy p{
	margin: 0;
	font-size: 1.2rem;
}
footer .copy p span{
	margin-bottom: 20px;
	font-size: 2rem;
}
footer .inner > div{
	width: 100%;
}
footer .inner > div> div{
	margin-top: 10px;
}
footer .inner > div> div > *{
	width: 100%;
}
.view_pc{
	display: none !important;
}
.view_sp{
	display: block !important;
}
.sp_left{
	text-align: left !important;
}
.sp_center{
	text-align: center !important;
}
.youtube {
	display: block;
	margin: 40px 0 80px;
	padding: 0 20px;
}
.youtube > div.video {
	margin-top: 20px;
	width: 100%;
	padding-bottom: 56%;
}
#pagetop{
	display: none !important;
}
#sns {
	margin-top: 50px;
	padding: 0 20px;
}
#sns > div{
	display: block;
	padding: 80px 0 60px;
	border-top: 1px solid #b8b8b8;
}
#sns > div .img{
	margin-top: 30px;
}
.view_100{
	margin-left: -20px;
	margin-right: -20px;
	width: calc(100% + 40px);
}

