
:root {
	--pink: #f0428b;
}



body{
	background: #fff;
	margin: 0px;
	color: rgba(0, 0, 0, 0.87);
	font-family: "M PLUS 1p", sans-serif;
	font-weight: 500;
	font-size: 18px;
	line-height: 1.5;
	letter-spacing: 0.00938em;
}


@media all and (min-width: 1024px) {
	.pc{display: block !important;}
	.sp{display: none !important;}
}

@media all and (max-width: 1023px) {
	body{
	}
	img{max-width: 100%;}
	.sp{display: block !important;}
	.pc{display: none !important;}
}


.clearfix::after {
  content: "";
  display: block;
  clear: both;
}


.dotted_line{
	border-bottom: var(--color) dotted 1px;
}

.object-fit-img {
  object-fit: contain;
  font-family: 'object-fit: contain;'
}
.object-fit-img {
  object-fit: cover;
  object-position: bottom;
  font-family: 'object-fit: cover; object-position: bottom;'
}

.btn_fade{
	transition: 0.2s;
}

.btn_fade:hover{
	opacity: 0.5;
}


/*----------------------------------
js-animation
------------------------------------*/

.js-animation {
  opacity: 0;
  visibility: hidden;
  transform: translateY(40px);
  transition: all 1s;
}
.js-animation.is-show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0px);
}







img.img-responsive{
	width: auto;
	max-width: 100%;
}


.text_center{
	text-align: center;
}

span.pink{
	color: var(--pink);
	font-weight: 900;
	font-size: large;
}




/*-------------------------------
header
--------------------------------*/

header{
	background: #fafafa;
	width: 100%;
}

header .flex_box{
	display: flex;
	justify-content: flex-end;
	column-gap: 10px;
	width: calc(100% - 20px - 20px);
	margin: 0 auto;
}

header .signin button,
header .signup button {
	font-weight: bold;
	padding: 0.8em 2em;
	cursor: pointer;
	transition: 0.2s;
	font-size: 1em;
	display: block;
	text-align: center;
	border-radius: 5px;
	box-shadow: rgb(0, 0, 0) 2px 2px 6px -2px;
	border: 1px solid rgb(77, 197, 205);
	margin: 20px 0;
	transition: 0.2s;

}
header .signin button:hover,
header .signup button:hover{
	opacity: 0.5;
}
header .signin button {
	color: rgb(77, 197, 205);
	background: rgb(255, 255, 255);
}

header .signup button {
	background: rgb(77, 197, 205);
	color: rgb(255, 255, 255);
}





/*-------------------------------
main
--------------------------------*/
main{
	margin-bottom: 200px;
}

/*--------------------------------
flex
-------------------------------*/

.flex_box{
	display: flex;
}


/*--------------------------------
grid_box
-------------------------------*/

.grid_box{
	display: grid;
	column-gap: 10px;
}
.grid_box.grid_box_five{
	grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
}


/*-------------------------------
h
---------------------------------*/
h2{
	font-family: "M PLUS 1p", sans-serif;
	text-align: center;
	font-size: 3em;
	font-weight: 900;
}


@media all and (max-width: 767px) {
	h2{
		font-size: 2em;
	}
}





/*-------------------------
main_visual
--------------------------*/
#main_visual {
	text-align: center;
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
}

#main_visual .img{
	margin: 0;
	text-align: center;
}

#main_visual .btn_box {
	clear: both;
	width: 400px;
	margin: 0 auto;
}

#main_visual .btn_box a.btn {
	margin-bottom: 0.5rem;
	border-radius: 20px;
	display: block;

	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.5;
	position: relative;
	display: inline-block;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	letter-spacing: 0.1em;
	color: #fff !important;
	border-radius: 20px;

}

#main_visual .btn_box a:before {
	background: #ab4570;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	content: "";
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
	-webkit-transform: translate3d(0, 0.75rem, -1rem);
	transform: translate3d(0, 0.75rem, -1rem);
	border-radius: inherit;
	-webkit-box-shadow: 0 0.6rem 0 0 rgba(0, 0, 0, 0.2);
	box-shadow: 0 0.6rem 0 0 rgba(0, 0, 0, 0.2);
}

#main_visual .btn_box div {
	background: linear-gradient(#f35bea, #f563a1);
	line-height: 50px;
	padding-left: 40px;
	padding-right: 40px;
	position: relative;
	display: block;
	padding: 10px 2em;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
	border-radius: inherit;

}


#main_visual .btn_box a.btn:after {
	font-weight: normal;
	line-height: 1;
	position: absolute;
	top: calc(50% - 1rem);
	left: 1.5rem;
	margin: 0;
	padding: 0;
	content: "";
}

#main_visual .btn_box a.btn:hover {
	-webkit-transform: translate(0, 0.25rem);
	transform: translate(0, 0.25rem);
}

#main_visual .btn_box a.btn:hover:before {
	-webkit-transform: translate3d(0, 0.5rem, -1rem);
	transform: translate3d(0, 0.5rem, -1rem);
	-webkit-box-shadow: 0 0.35rem 0 0 rgba(0, 0, 0, 0.2);
	box-shadow: 0 0.35rem 0 0 rgba(0, 0, 0, 0.2);
}


#main_visual .btn_box a.btn:active {
	-webkit-transform: translate(0rem, 0.75rem);
	transform: translate(0rem, 0.75rem);
}

#main_visual .btn_box a.btn:active:before {
	-webkit-transform: translate3d(0, 0, -1rem);
	transform: translate3d(0, 0, -1rem);
	-webkit-box-shadow: 0 0.35rem 0 0 rgba(0, 0, 0, 0.2);
	box-shadow: 0 0.35rem 0 0 rgba(0, 0, 0, 0.2);
}

#main_visual .btn_box a div p{
	margin: 0;
	display: table;
}
#main_visual .btn_box a div span{
	display: table-cell;
	vertical-align: middle;
	line-height: 0;
}
#main_visual .btn_box div svg{
	font-size: 3em;
	padding-right: 10px;
}






/*-------------------------------
container
---------------------------------*/
#container{
	width: 90%;
	max-width: 1024px;
	margin: 0 auto;
}


#container section.content{
	margin-top: 200px;
}


#container article.small_w{
	max-width: 800px;
	margin: 0 auto;
}

@media all and (max-width: 767px) {

	#container section.content{
		margin-top: 100px;
	}
}





/*------------------------------
case
-----------------------------*/
#case .grid_box div{
	text-align: center;
	font-weight: bold;
	font-size: 90%;
}

@media all and (max-width: 767px) {
	#case .grid_box.grid_box_five{
		grid-template-columns: 1fr 1fr;
	}

	#case .grid_box.grid_box_five .img img{
		width: 100%;
	}
	
	
}


/*-----------------------------
service
-------------------------------*/
#service .box{
	background: #47c3cb;
	border-radius: 20px;
	box-shadow: rgb(0, 0, 0) 2px 2px 6px -2px;
	margin-bottom: 50px;
	position: relative;
}

#service .box:last-child{
	margin-bottom: 0;
}

#service .box h3{
	background: #daf3f5;
	padding: 1em;
	border-radius: 20px 20px 0 0 ;
	margin: 0;
}


#service .box p.text{
	margin: 0;
	padding: 1em;
	color: #fff;
}


#service .box p.img{
	margin: 0;
	position: absolute;
	width: 200px;
	bottom: -50px;
	right: -30px;
}




@media all and (max-width: 767px) {
	#service .box {
		text-align: center;
	}
	#service .box p.img {
		position: static;
		margin: 0 auto;
	}
}




/*------------------------------
inquiry
------------------------------*/




/*-------------------------------------
cp_form
-------------------------------------*/


.cp_form{
	background: #ededed;
	width: calc(100% - 2em - 2em);
	padding: 2em;
	border-radius: 20px;
}

.cp_form table{
	width: 100%;
}

.cp_form table th,
.cp_form table td{
	display: block;
}
.cp_form table th{
	text-align: left;
}

.cp_form table input,
.cp_form table textarea{
	width: calc(100% - 2em);
	padding: 1em;
	border: var(--gray) solid 1px;
	border-radius: 10px;
}

.cp_form .btn_p{
	text-align: center;
}
.cp_form .btn_p input{
	border: none;
	
	display: block;
    background: var(--pink);
    border: var(--pink) solid 3px;
    border-radius: 40px;
    padding: 0.5em 0;
    text-decoration: none;
    font-size: 25px;
    font-weight: 600;
    color: #fff;
    position: relative;
    transition: 0.2s;
    width: 250px;
    margin: 0 auto;
    text-align: center;
	
	cursor: pointer;
	transition: 0.2s;
}


.cp_form .btn_p input:hover{
	background: #fff;
	color: var(--pink);
}

.cp_form .btn_p input:disabled,
.cp_form .btn_p input:disabled:hover{
	opacity: 1;
	background: #ccc;
	border-color: #ccc;
	color:#999;
	cursor:auto;
}

.btn_prev{
	text-align: center;
}

.btn_prev input{
	border: none;
	background: none;
	text-decoration: underline;
	cursor: pointer;
}




@media all and (max-width: 767px) {
	.cp_form{
		width: calc(100% - 10px - 10px);
    	padding: 10px;
	}
}







/*------------------------------
footer
------------------------------*/
footer{
	background: #000;
	padding: 20px 40px;
}



footer .logo{
	width: 100px;
	padding-right: 50px;
}
footer .logo p{
	margin: 0;
}
footer ul{
	margin: 0;	
	padding: 0;
	display: flex;
	column-gap: 1em;
}

footer ul li{
	margin: 0;
	padding: 0;
	list-style: none;
}

footer ul li a{
	color: #fff;
	text-decoration: none;
	font-size: smaller;
}

footer address{
	color: #fff;
	font-style: normal;
	font-size: 10px;
	opacity: 0.5;
	margin-top: 20px;
}





@media all and (max-width: 767px) {
	footer .flex_box{
		display: block;
	}
	
	footer ul{
		display: block;
	}
}















