@charset "utf-8";

/* android対策 */
p { background-image: url(../images/pix.gif); }

/*--------------------------------------------------------
★レスポンシブ■タブレット対応
--------------------------------------------------------*/
@media screen and (max-width: 1170px) {
	#index .top_intro {
    	background: url(../images/top_intro_bg2.jpg) repeat;
    	background-position: left top, left top;
	}
}
@media screen and (max-width: 1080px) {
	/* layout */
	html{
		width: 1080px;
	}
	body {
		width: 1080px;
	}
	.bx-viewport {
		max-width: 1080px;
		width: 100%!important;
	}
	/* header */
	header{
		position: relative;
		display: block;
		width: 1080px;
		overflow: hidden;
		padding-bottom: 10px;
	}
	header.wave:after{
		width: 140%;
	}
	#slider{
		overflow: hidden;
	}
	article{
		position: relative;
		display: block;
		width: 1080px;
		margin-top: -10px;
	}
	footer{
		width: 1080px;
	}
}

/*--------------------------------------------------------
★レスポンシブ■ヘッダ部分
--------------------------------------------------------*/
@media screen and (min-width: 481px) {
	.pc_none{
		display: none!important;
	}
}
@media screen and (max-width: 480px) {
	/* header */
	header{
		max-width: 480px;
		width: 100%;
		height: auto;
		border-top: none;
		padding-top: 50px;
	}
	#rd_header{
		position: fixed;
		display: block;
		z-index: 1000;
		top:0;
		width: 100%;
		height: 50px;
		margin: 0;
		background-color: #fff;
	}
	#rd_header:after{
		background-image: url(../images/wave_white.png);
		bottom: -9px;
		z-index: 1000;
	}
	#rd_logo a{
		position: relative!important;
		display: block!important;
		float: left;
		text-indent: -9999px;
		width: 48%;
		height: 40px;
		padding: 5px 1%;
		background: #fff url(../images/logo.svg) no-repeat center center;
		-webkit-background-size: 90%;
		background-size: 90%;
	}
	#rd_gnav{
		position: relative;
		display: block;
		float: right;
		list-style: none;
		width: 40%;
		height: 50px;
	}
	#rd_gnav li a,#bottom_menu li a{
		position: relative;
		display: inline-block;
		text-decoration: none;
		list-style:none;
		font-size: 7px;
		color:#222;
		line-height: 1em;
		border-left: 1px solid #efefef;
		float: left;
		width: 47%;
		height: 10px;
		padding: 35px 1% 5px;
		text-align: center;
	}
	#rd_gnav li:nth-child(1) a{
		background: url(../images/entry_icon.svg) no-repeat center 28%;
		-webkit-background-size: 25px;
		background-size: 25px;
	}
	#rd_gnav li:hover{
	  background: #fafafa;
	}
	@media only screen and (orientation:landscape) {
		#rd_header{
			position: absolute;
		}
		#topcontrol{
			display: none!important;
		}
	}
	#panel-btn-icon{
		display: block;
		position: absolute;
		top: 35%;
		left: 50%;
		width: 14px;
		height: 2px;
		margin: -1px 0 0 -7px;
		background: #EE5350;
		transition: .2s;
	}
	#panel-btn-icon:before, #panel-btn-icon:after{
		display: block;
		content: "";
		position: absolute;
		top: 50%;
		left: 0;
		width: 14px;
		height: 2px;
		background: #EE5350!important;
		transition: .3s;
	}
	#panel-btn-icon:before{
		margin-top: -6px;
	}
	#panel-btn-icon:after{
		margin-top: 4px;
	}
	#panel-btn .close{
		background: transparent;
	}
	#panel-btn .close:before, #panel-btn .close:after{
		margin-top: 0;
	}
	#panel-btn .close:after{
		background: #EE5350!important;
		transform: rotate(-45deg);
		-webkit-transform: rotate(-45deg);
	}
	#panel-btn .close:before{
		transform: rotate(-135deg);
		-webkit-transform: rotate(-135deg);
	}
	#panel {
		position: absolute;
		display: none;
		top:50px;
		left:0;
		width: 100%;
		height: 360px;
		z-index: 1000;
		margin: 0;
		padding: 12px 0;
		background: rgba(238,83,80,0.8);
		-webkit-background-size: cover;
		background-size: cover;
		text-align: left;
	}
	.dropdown{
		position: absolute;
		display: block;
		list-style-type: none;
		width: 100%;
	}
	.dropdown li a{
		position: relative;
		display: block;
		padding: 9px 5%;
		width: 90%;
		font-size: 12px;
		border-bottom: 1px dotted rgba(255,255,255,0.3);
		line-height: 100%;
		text-decoration: none;
		font-weight: 500;
		color:#fff;
	}
	.dropdown li a:after{
	  content: ">";
	  position: absolute;
	  top: 8px;
	  right: 7%;
	}
	.dropdown li a:hover{
		background: rgba(255,144,143,0.9);
	}

	/* bottom_menu */
	#bottom_menu{
		position: fixed;
		display: block;
		width: 100%;
		height: 50px;
		background: #FFF;
		bottom: 0;
		z-index: 999999;
	}
	#bottom_menu:before{
		background-image: url(../images/wave_white.png);
		top: -9px;
	}
	#bottom_menu li a{
		width: 22.7%;
		background-repeat: no-repeat;
		background-position: center 28%;
		-webkit-background-size: 25px;
		background-size: 25px;
	}
	#bottom_menu li:nth-child(1) a{
		background-image: url(../images/service_icon.svg);
	}
	#bottom_menu li:nth-child(2) a{
		background-image: url(../images/price_icon.svg);
	}
	#bottom_menu li:nth-child(3) a{
		background-image: url(../images/plan_icon.svg);
	}
	#bottom_menu li:nth-child(4) a{
		background-image: url(../images/top_icon.svg);
	}
}


/*--------------------------------------------------------
★レスポンシブ■コンテンツ部分
--------------------------------------------------------*/
@media screen and (max-width: 480px) {
	html{
		max-width: 480px;
			width: 100%;
			overflow-x: hidden;
			-webkit-text-size-adjust: 100%!important;
	}
	body {
		max-width: 480px;
		min-width: 320px;
		width: 100%;
		overflow-x: hidden!important;
		box-shadow: none;
		font-size: 16px;
		line-height: 1.7em;
		-webkit-text-size-adjust: 100%!important;
	}

	/* layout
	------------------------------ */
	.wrapper{
		max-width: 480px;
		width: 92%!important;
		margin: 0;
		padding: 0 4%;
	}

	/* Common
	------------------------------ */
	.sp_none{
		display: none;
	}
	article{
		width: 100%;
		overflow: hidden;
	}
	.fl_l,.fl_r{
		clear: both;
		float: none;
	}

	/* Header
	------------------------------ */
	header{
		padding-top: 22px;
	}
	#header_logo a{
		position: relative;
		display: block;
		width: 218px;
		height: 38px;
		text-indent: -9999px;
		background: url(../images/logo.svg) no-repeat center left;
		-webkit-background-size: auto 33px;
		background-size: auto 33px;
		margin-right: 18px;
		padding-right: 18px;
		border-right: 1px solid #000;
	}
	#header_logo a:hover{
		opacity: 0.6;
	}

	/* bxslider */
	.bxslider li{
		text-indent: -9999px;
		background-repeat: no-repeat;
		background-position: top 25px center;
		-webkit-background-size: contain;
		background-size: contain;
		padding-bottom: 3%;
	}
	.bxslider li.first{
		background-image: url(../images/sp_slider1.jpg);
	}
	.bxslider li.second{
		background-image: url(../images/sp_slider2.jpg);
	}
	.bxslider li.third{
		background-image: url(../images/sp_slider3.jpg);
	}
	header.wave:after,#slider:after{
		display: none;
	}

	/* top_main_contents
	------------------------------ */
	.top_main_contents section{
		text-align: center;
		padding: 40px 0 60px;
	}
	.top_main_contents h2{
		font-size: 22px;
		margin-bottom: 20px;
		padding: 75px 0 22px;
	}

	/* top_service */
	.top_service{
		background-position: left top 10%, right bottom 40%;
		background-repeat: no-repeat, no-repeat;
		-webkit-background-size: 30% auto;
		background-size: 30% auto;
	}
	#top_point{
		width: 100%;
		height: auto;
		margin: 10px auto 50px;
	}
	#top_point li{
		clear: none;
		float: left;
		width: 49%;
		height: 0;
		margin-right: 2%;
		padding-bottom: 48%;
	}
	#top_point li:nth-child(2){
		margin-right: 0;
	}
	#top_point li:nth-child(3){
		clear: both;
		float: none;
		margin: 0 auto;
		top: -14px;
	}

	/* top_price */
	.top_price{
		margin-bottom: 20px;
	}
	.top_price .set_fukidashi{
		width: 28%;
		height: 0;
		padding-bottom: 22%;
	}
	.top_price .set_fukidashi:first-child{
		margin-top: -16%;
		left: 4%;
		z-index: 1;
	}
	.top_price .set_fukidashi:nth-child(3){
		margin-top: -62%;
		right: 4%;
		bottom: auto;
	}
	.top_price .price_box{
		width: 100%;
		height: auto!important;
		background: none!important;
		text-indent: 0!important;
		padding-bottom: 0!important;
	}
	.top_price .price_box img{
		position: relative;
		display: block;
		width: 100%;
		height: auto;
	}

	/* top_target */
	.target_illust{
		width: 100%;
		height: auto;
		margin: 20px auto 40px;
		padding-bottom: 25%;
	}

	/* top_info */
	.top_info{
		padding: 0!important;
	}
	.top_info .wrapper{
		width: 100%!important;
		padding: 0;
	}
	.top_info:before,.top_info:after{
		display: none;
	}
	.top_info .fl_l{
		width: 92%;
		padding: 20px 4% 40px;
		background: #00ACC1;
	}
	.top_info .fl_r{
		width: 92%;
		padding: 20px 4% 40px;
		background: #397BD1;
	}
	.top_info h2{
		width: 100%;
		height: auto;
		-webkit-background-size: 100% auto;
		background-size: 100% auto;
		padding: 0;
	}
	.youtube{
		width: 100%;
		height: 0;
		box-sizing: border-box;
		padding-bottom: 54%;
	}
	.facebook{
		width: 96%;
		padding: 2%;
	}
	.top_info .btn a{
		margin-top: 30px;
	}

	/* top_plans */
	.top_plans ul{
		margin: 30px auto 0;
	}
	.top_plans ul li{
		width: 100%;
		height: auto;
		border: 5px solid #FFF;
		background: #FFF;
		border-radius: 4px;
		box-sizing: border-box;
		margin: 0 auto 20px;
	}
	.top_plans .btn a{
		margin-top: 30px;
	}

	/* main_contents
	------------------------------ */
	.main_title{
		height: auto;
		padding-top: 56px;
		padding-bottom: 25px;
	}
	.main_title h1,
	.main_title h2{
		font-size: 22px;
		font-weight: 700;
		font-family: "Rounded Mplus 1c", sans-serif;
		text-align: center;
		line-height: 1em;
		padding-top: 70px;
		background-repeat: no-repeat;
		background-position: top center;
		-webkit-background-size: 62px 55px;
		background-size: 62px 55px;
	}
	.center_title{
		font-size: 20px;
		line-height: 1.5em;
		letter-spacing: 0.07em;
		margin-bottom: 40px;
		padding-bottom: 28px;
	}
	.center_title:after{
		content: "";
		position: absolute;
		display: block;
		width: 76px;
		height: 5px;
		background-repeat: no-repeat;
		background-position: 0 0;
		-webkit-background-size: 954px 5px;
		background-size: 954px 5px;
		left: 0;
		right: 0;
		bottom: 0;
		margin: 0 auto;
	}
	.box_title{
		font-size: 18px;
		margin: 2px auto 14px;
		padding: 60px 0 16px 36px;
	}
	.box_title:before{
		content: "";
		margin-top: -5px;
		left: 4%;
	}
	span.yellow{
		color: #FCC221;
		font-weight: 700;
		letter-spacing: 0.08em;
		margin-right: 20px;
	}
	span.purple{
		color: #9575CD;
	}

	table tr th{
		vertical-align: middle;
	}

	/* service
	------------------------------ */
	#service{
		padding: 70px 0;
	}
	#service .box_title{
		background-image: url(../images/dot_line_yellow.png);
		margin-bottom: 50px;
	}

	.flow li{
		clear: none;
		float: left;
		width: 40%;
		height: 0;
		margin-right: 20%;
		margin-bottom: 10%;
		padding-bottom: 57%;
		background-position: center top;
	}
	.flow li:nth-child(2n){
		margin-right: 0;
	}
	.flow li:after{
		right: -40%;
		margin: auto;
	}
	.flow li:nth-child(2n):after{
		top: auto;
		left: -190%;
		bottom: -20%;
		transform: rotate( 128deg );
	}

	.flow_detail{
		position: relative;
		display: block;
		margin-top: 30px;
	}
	.flow_detail li{
		width: 100%;
		height: auto;
		line-height: 1.5em;
		margin: 0 auto 20px;
		padding: 15px 4%;
	}
	.flow_detail li:nth-child(1),
	.flow_detail li:nth-child(2),
	.flow_detail li:nth-child(3),
	.flow_detail li:nth-child(4){
		height: auto;
	}
	.flow_detail li:nth-child(2n){
		margin: 0 auto 20px;
	}
	.flow_detail li:last-child{
		font-size: 30px;
		padding-top: 65px;
	}
	.flow_detail li span.title{
		font-size: 20px;
		margin-bottom: 6px;
		padding-left: 0;
	}
	.flow_detail li span.yellow{
		position: relative;
		display: block;
	}

	/* price */
	#price{
		padding-bottom: 50px;
	}
	#price:before{
		top: -9px;
	}
	#price .main_title{
		background: #9575CD;
		height: auto;
		padding-top: 40px;
		padding-bottom: 30px;
	}
	#price .box_title{
		width: 92%;
		height: auto;
		font-size: 18px;
		line-height: 1.5em;
		letter-spacing: 0;
		padding: 20px 4%;
		margin: 30px auto 20px;
	}
	#price ul{
		height: auto;
		padding-bottom: 100px;
	}
	#price ul li{
		width: 100%;
		height: auto;
		font-size: 18px;
		text-align: center;
		margin: 0 auto 80px;
		padding-top: 24px;
		box-sizing: border-box;
	}
	#price ul li:after{
		width: 50px;
		height: 50px;
		top: auto;
		left: 0;
		right: 0;
		bottom: -70px;
		margin: 0 auto;
	}
	#price ul li:nth-child(3){
		margin: 0 auto;
	}
	#price ul li .photo{
		position: relative;
		display: block;
		width: 90%;
		height: auto;
		margin: 10px auto 24px;
	}
	.price_box{
		width: 90%;
		height: 0;
		background-position: center top;
		-webkit-background-size: contain;
		background-size: contain;
		padding-bottom: 60%;
	}
	.price_box:after{
		width: 130%;
		height: 0;
		-webkit-background-size: contain;
		background-size: contain;
		left: -12%;
		right: 0;
		bottom: 5%;
		margin: 0 auto;
		padding-bottom: 55%;
	}

	#price_detail{
		padding: 0 0 80px;
	}
	.badge_list{
		width: 100%;
		height: auto;
		margin: 10px auto 0;
	}
	.badge_list li{
		clear: none;
		float: left;
		margin-right: 2%;
		font-size: 3vw;
		background-position: top center;
	}
	.badge_list li:first-child{
		width: 16%;
		height: 0;
		margin-top: 9%;
		padding-top: 74px;
	}
	.badge_list li:nth-child(2){
		width: 21%;
		height: 0;
		margin-top: 6%;
		padding-top: 83px;
	}
	.badge_list li:nth-child(3){
		width: 26%;
		height: 0;
		margin-top: 3%;
		padding-top: 92px;
	}
	.badge_list li:nth-child(4){
		width: 31%;
		height: 0;
		margin-right: 0;
		padding-top: 100px;
	}

	.design_list{
		margin-top: 30px;
	}
	.design_list li{
		width: 100%;
		height: auto;
		margin: 0 auto 20px;
		padding-bottom: 24px;
	}
	.design_list li:nth-child(3){
		margin: 0 auto 20px;
	}
	.design_list li img{
		width: 90%;
		height: auto;
		margin: 10px auto 0;
	}

	#price_detail table,#price_detail table tbody,
	#price_detail table tr{
		position: relative;
		display: block;
		width: 100%;
		height: auto;
	}
	#price_detail table tr th{
		width: 57%;
		letter-spacing: 0.04em;
		padding: 10px 4%;
	}
	#price_detail table tr td{
		font-size: 18px;
		letter-spacing: 0.04em;
		padding: 10px 4%;
	}
	#price_detail table tr td span{
		position: relative;
		display: block;
		font-size: 14px;
		right: auto;
		margin-top: 2px;
	}

	/* Target
	------------------------------ */
	#target ul.target_list{
		width: 100%;
		height: auto;
		margin: 30px auto 40%;
		padding-bottom: 100%;
	}
	#target ul.target_list:after{
		width: 100%;
		height: 0;
		bottom: -35%;
		padding-bottom: 24%;
	}
	#target ul.target_list li{
		clear: none;
		float: left;
		width : -webkit-calc(100% / 3) ;
		width : calc(100% / 3) ;
		height: 0;
		font-size: 16px;
		margin: 0 0 2% 0;
		padding-top: 11%;
		padding-bottom: 23%;
	}
	*::-ms-backdrop, #target ul.target_list li{
		width: 33.33%; /* IE11 */
	}
	#target ul.target_list li:nth-child(3n){
		margin-right: 0;
	}
	#target ul.target_list li:nth-child(2),
	#target ul.target_list li:nth-child(3),
	#target ul.target_list li:nth-child(4){
		height: 0;
		padding-top: 14%;
		padding-bottom: 20%;
	}
	#target ul.target_list li:nth-child(5){
		margin-left: 0;
	}
	#target .pict_list{
		padding-bottom: 30%;
	}
	#target .pict_list li{
		clear: none;
		float: left;
	}

	/* Plan
	------------------------------ */
	#plan{
		position: relative;
		padding-bottom: 50px;
		z-index: 10;
	}
	#plan .pict_list li{
		width: 100%;
		height: auto;
		margin: 30px auto 20px;
	}
	#plan .pict_list li:nth-child(2){
		margin: 0 auto 50px;
	}
	#plan .pict_list li img{
		position: relative;
		display: block;
		width: 100%;
		height: auto;
	}
	#plan .plan_list li{
		width: 100%;
		height: 205px;
		margin: 0 auto 20px;
	}
	#plan .plan_list li:first-child{
		background-image: url(../images/plan1.png);
	}
	#plan .plan_list li:nth-child(2){
		background-image: url(../images/plan2.png);
	}
	#plan .plan_list li:nth-child(3){
		margin-right: 0;
		background-image: url(../images/plan3.png);
	}

	/* product */
	#product{
		margin-top: -50px;
		padding: 100px 0 82px;
	}
	#product table tbody{
		display: block;
		overflow-x: scroll;
	}
	#product table tr th{
		padding: 14px 0;
	}
	#product table tr td{
		font-size: 22px;
		padding: 14px 12px 10px;
	}
	#product table tr td{
		font-size: 16px;
	}
	#product table tr td:first-child{
		white-space: nowrap;
	}
	#product table tr td:last-child{
		border-right: 0;
	}
	#product table tr:last-of-type td{
		border-bottom: 0;
	}
	#product table tr td span{
		position: relative;
		display: block;
		text-align: center;
	}
	#product table tr td span.yen{
		position: static;
		display: inline;
	}
	#product table.option_table tr:last-child th{
		border-bottom: 0;
	}

	/* FAQ & Contact
	------------------------------ */
	#faq,#contact{
		padding: 50px 0;
	}
	#faq ul li{
		margin: 0 auto 20px;
		padding: 20px 8%;
	}
	#faq ul li .question{
		font-size: 18px;
		line-height: 1.5em;
		margin-bottom: 0;
	}
	#faq ul li .question span.yellow{
		position: relative;
		display: block;
	}

	/* Company
	------------------------------ */
	#company table tr th,
	#company table tr td{
		line-height: 1.4em;
		padding: 18px 4%;
	}
	#company table tr td{
		 word-break: break-all;
	}
	#profile .pict_list li{
		width: 97%;
		height: auto;
		margin-bottom: 20px;
	}

	/* sitemap */
	#sitemap ul:nth-child(2),
	#sitemap ul:nth-child(3){
		width: 100%;
	}

	/* Contact
	------------------------------ */
	#contact{
		padding-top: 0;
	}
	.tel_box{
		width: 290px;
		height: auto;
		margin: 10px auto 0;
		padding: 15px 4%;
	}
	.tel_box .tel_number{
		width: 250px;
		height: 30px;
		margin: 0 auto;
	}
	.tel_box .business_hour{
		text-align: center;
		margin-top: 10px;
	}

	#contact_form form{
		position: relative;
		display: block;
		margin-top: 40px;
	}
	#contact_form .column_box{
		padding: 3%;
		line-height: 30px;
		margin: 0 auto 18px;
	}
	#contact_form dl dt,
	#contact_form dl dd{
		display: inline-block;
		vertical-align: top;
		box-sizing: border-box;
		line-height: 30px;
	}
	#contact_form dl dt{
		position: relative;
		display: block;
		width: 100%;
		font-size: 16px!important;
		line-height: 1em;
		background: none!important;
		border: 0!important;
	}
	#contact_form dl dd{
		width: 97%;
		padding: 5px!important;
	}
	#contact_form dl input,
	#contact_form dl textarea{
		font-size: 14px;
		padding: 8px;
	}
	#contact_form dl textarea{
		max-width: 100%;
		width: 100%!important;
	}
	.mfp_element_all{
		max-width: 100%;
	}
	#contact_form dl label{
		font-size: 14px;
		margin-top: 11px!important;
	}
	#contact_form .caution{
		margin-right: 0;
	}
	#contact_form .canbadge_size li{
		clear: both;
		float: none;
		width: 100%;
	}
	#contact_form dl input[type="checkbox"]{
		margin-top: 2px;
	}

	/* Footer
	------------------------------ */

	/* bottom_contact*/
	.bottom_contact{
		position: relative;
		display: block;
		background: #EE5350;
		padding: 40px 0;
	}
	.bottom_contact .contact_box{
		width: 100%;
		height: auto;
		padding: 30px 4% 2px;
		margin: 0 auto;
		box-sizing: border-box;
	}
	.bottom_contact p{
		font-size: 17px;
	}
	.bottom_contact p.business_hour{
		font-size: 14px;
		line-height: 1.3em;
		margin-bottom: 20px;
	}
	.bottom_contact .fl_l{
		width: 100%;
		height: auto;
	}
	.bottom_contact .tel_number{
		width: 100%;
		height: 0;
		-webkit-background-size: contain;
		background-size: contain;
		padding-bottom: 14%;
	}
	.bottom_contact .image_btn a{
		width: 250px;
		height: 54px;
	}

	footer{
		width: 100%;
	}
	footer.wave_reverse .p50{
		padding: 58px 4% 55px;
	}
	footer .wrapper:nth-child(2){
		padding: 58px 4% 55px;
	}
	.footer_logo a{
		width: 80%;
		height: 0;
		background-position: center center;
		margin: 0 auto 20px;
		padding-bottom: 12%;
	}
	.footer_info{
		text-align: center;
		font-size: 14px;
	}

	footer #copyright{
		padding: 40px 0 150px;
	}
}
