@charset "UTF-8";

/* m_slide
---------------------------------------------------------*/
.m_slide li,
.welcome_slide li{
	width: min(760px,60vw);
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) { 
.m_slide li,
.welcome_slide li{
	width: 60vw;
}
}




/* welcome
---------------------------------------------------------*/
#welcome .bg{
	position: relative;
}
#welcome .bg::before{
	position: absolute;
	display: block;
	content: "";
	background: #f4fafb;
	background-size: 100% auto;
	width: 100%;
	height: calc(100% - 2em);
	bottom: 0;
	left: 0;
	z-index: -2;
}
#welcome .box1 {
	align-items: center;
}
#welcome .box1 .img_l{
	width: 58%;
	max-width: 630px;
}
#welcome .box1 .txt_r{
	width: 38%;
	text-align: right;
}
#welcome .box1 .txt_r div{
	position: relative;
	text-align: left;
	max-width: 358px;
	margin-left: auto;
	margin-right: 0;
}
#welcome .box1 .txt_r div::before{
	position: absolute;
	display: block;
	content: "";
	background: url("../images/abs1@2x.png")no-repeat top right;
	background-size: 100% auto;
	width: min(92px,8vw);
	height: 176px;
	top: -160px;
	right: -55px;
	aspect-ratio: 92 / 176;
}
.fs32{
	font-size: min(220%,3.5vw);
	letter-spacing: 0.1em;
	line-height: 1.6em;
	margin-bottom: .5em;
}
.fs25{
	font-size: min(175%,2.8vw);
	letter-spacing: 0.1em;
	line-height: 1.6em;
	margin-bottom: .5em;
}
.fs22{
	font-size: min(160%,2.8vw);
	letter-spacing: 0.1em;
	line-height: 1.6em;
	margin-bottom: .5em;
}

#welcome .box2{
	margin-top: -20px;
	margin-bottom: 120px;
	flex-flow: row-reverse;
}
#welcome .box2 .img_r{
	width: 30.5%;
}
#welcome .box2 .txt_l{
	position: relative;
	width: 65%;
	max-width: 754px;
	padding-left: 11em;
	box-sizing: border-box;
	margin-top: 80px;
}
#welcome .box2 .txt_l::before{
	position: absolute;
	display: block;
	content: "";
	background: url("../images/abs2@2x.png")no-repeat top left;
	background-size: 100% auto;
	width: 8em;
	height: 8em;
	top:0;
	left: 0;
}

#welcome .box3{
	margin-top: 40px;
	margin-bottom: 110px;
}

#welcome .col2{
	margin-bottom: 70px;
}
#welcome .col2 li{
	width: 48%;
	max-width: 510px;
}
#welcome .col2 .txt {
	max-width: 450px;
	margin: 30px auto 0;
}
#welcome .col2 .txt .com_btn1{
	margin-top: 30px;
}

#welcome .time{
	position: relative;
	text-align: center;
	padding-top: 40px;
	padding-bottom: 220px;
}
#welcome .time::before{
	position: absolute;
	display: block;
	content: "";
	background: url("../images/img5@2x.png")no-repeat top left;
	background-size: 100% auto;
	width:37%;
	height: 800px;
	top:0;
	left: 0;
}
#welcome .time::after{
	position: absolute;
	display: block;
	content: "";
	background: url("../images/img6@2x.png")no-repeat top right;
	background-size: 100% auto;
	width:37%;
	height: 800px;
	top:0;
	right: 0;
}
#welcome .time .inbox{
	position: relative;
	z-index: 2;
}
#welcome .time .inbox::before{
	position: absolute;
	display: block;
	content: "";
	background: url("../images/abs7@2x.png")no-repeat top center;
	background-size: 100% auto;
	width: 60%;
	max-width: 890px;
	height: 500px;
	top:0;
	left: 0;
	right: 0;
	margin: 0 auto;
	z-index: -1;
}
#welcome .time .abs{
	width: 30em;
	padding-right: 14em;
	box-sizing: border-box;
	margin: 0 auto 1.5em;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) { 
#welcome .bg::before{
	height: calc(100% - 1.5em);
}
#welcome .box1 .txt_r div::before{
	height: 176px;
	top: -13vw;
	right: -2%;
}
.fs22{
	letter-spacing: 0.05em;
}
#welcome .box2{
	margin-top: 3%;
	margin-bottom: 8%;
}
#welcome .box2 .txt_l{
	padding-left: 7.5em;
	margin-top: 2%;
}
#welcome .box2 .txt_l::before{
	width: 6em;
	height: 6em;
}
#welcome .box3{
	margin-top: 3%;
	margin-bottom: 8%;
}
#welcome .col2{
	margin-bottom: 8%;
}
#welcome .col2 .txt {
	margin: 5% auto 0;
}
#welcome .col2 .txt .com_btn1{
	margin-top: 4%;
}

#welcome .time{
	padding-top: 1%;
	padding-bottom: 12%;
}
#welcome .time::before{
	left: -1%;
}
#welcome .time::after{
	right: -1%;
}
#welcome .time .abs{
	width: 25em;
	margin: 0 auto 1.2em;
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) { 
#welcome .bg::before{
	height: calc(100% - 5vw);
}
#welcome .box1 {
	display: block;
}
#welcome .box1 .img_l{
	width: 100%;
	margin-bottom: 5%;
}
#welcome .box1 .txt_r{
	width: 100%;
}
#welcome .box1 .txt_r div{
	max-width: 100%;
}
#welcome .box1 .txt_r div::before{
	width: 15vw;
	top:-20vw;
	right: 0;
}
.fs32{
	font-size: 150%;
	letter-spacing: 0.1em;
	line-height: 1.6em;
	margin-bottom: .3em;
}
.fs25{
	font-size: 130%;
	margin-bottom: .3em;
}
.fs22{
	font-size: 120%;
	letter-spacing: normal;
	margin-bottom: .3em;
}

#welcome .box2{
	margin-top: 8%;
	margin-bottom: 12%;
	display: block;
}
#welcome .box2 .img_r{
	width: 70%;
	margin: 0 auto;
}
#welcome .box2 .txt_l{
	width: 100%;
	max-width: 100%;
	padding-left: 0;
	margin-top: -1em;
	padding-top: 5.5em;
}
#welcome .box2 .txt_l::before{
	width: 5em;
	height: 5em;
	right: 0;
	margin: 0 auto;
}
#welcome .box2 .txt_l h5{
	text-align: center;
}

#welcome .box3{
	margin-top: 4%;
	margin-bottom: 10%;
}

#welcome .col2{
	display: block;
	margin-bottom: 10%;
}
#welcome .col2 li{
	width: 100%;
	margin-bottom: 10%;
}
#welcome .col2 li:last-child{
	margin-bottom: 0;
}
#welcome .col2 .img {
	width: 65%;
	margin: 0 auto;
}
#welcome .col2 .txt {
	max-width: 100%;
	margin: 4% auto 0;
}
#welcome .col2 .txt .com_btn1{
	margin-top: 4%;
}

#welcome .time{
	padding-top: 0;
	padding-bottom: 10%;
}
#welcome .time::before{
	width:45%;
	top:13vw;
	left: -2%;
}
#welcome .time::after{
	width:45%;
	top:13vw;
	right: -2%;
}
#welcome .time .inbox::before{
	width: 100%;
}
#welcome .time .abs{
	margin: 0 auto 32vw;
}
#welcome .time .txt{
	text-align: left;
	padding: 0 5%;
	box-sizing: border-box;
}
}






/* 先進機器が充実
---------------------------------------------------------*/
#device .bg{
	position: relative;
	margin-bottom: 80px;
}
#device .bg::before{
	position: absolute;
	display: block;
	content: "";
	background: #f4fafb;
	background-size: 100% auto;
	width: 100%;
	height: 2.5em;
	top:0;
	left: 0;
	z-index: -2;
}
#device .com_index2{
	text-align: left;
}
#device .flex_box{
	max-width: 1100px;
	margin: 0 auto;
}
#device .flex_box li{
	width: 32%;
	max-width: 325px;
}
#device .flex_box .fs25{
	position: relative;
	margin-bottom: 0;
	padding-left: 1em;
	box-sizing: border-box;
	margin-top: .5em;
}
#device .flex_box .fs25::before{
	position: absolute;
	display: block;
	content: "";
	background: #41b4b5;
	background-size: 100% auto;
	width: 1px;
	height: 1em;
	top: 55%;
	transform: translateY(-50%);
	left: .35em;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) { 
#device .bg{
	margin-bottom: 6%;
}
#device .bg::before{
	height: 2em;
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) { 
#device .bg{
	margin-bottom: 12%;
}
#device .bg::before{
	height: 6vw;
}
#device .flex_box{
	flex-wrap: wrap;
}
#device .flex_box li{
	width: 48%;
	max-width: 100%;
	margin-bottom: 8%;
}
#device .flex_box li:last-child{
	margin-bottom: 0;
}
#device .flex_box li .img{
	width: 100%;
	margin: 0 auto;
}
#device .flex_box .fs25{
	width: 100%;
	margin: .3em auto 0;
	font-size:110%!important;
}
#device .flex_box .fs25{
	padding-left:.7em;
}
#device .flex_box .fs25::before{
	left:0;
}
}





/* kijyun
---------------------------------------------------------*/
#kijyun .bg{
	background: url("../images/abs8@2x.png") no-repeat top left #41b4b5;
	background-size: 40% auto;
}
#kijyun .inbox{
	position: relative;
	padding: 70px 11.5%;
	box-sizing: border-box;
	align-items: center;
}
#kijyun .inbox::before{
	position: absolute;
	display: block;
	content: "";
	background: url("../images/abs4@2x.png")no-repeat bottom right;
	background-size: 100% auto;
	width: 10%;
	height: 200px;
	bottom: 0;
	right: 0;
}

.fullimg{
	height: min(650px,42vw);
	background: url("../images/img10@2x.jpg")no-repeat center center;
	background-size: cover;
	margin-bottom: 80px;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) { 
#kijyun .inbox{
	padding: 6% 0;
}

.fullimg{
	margin-bottom: 8%;
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) { 
#kijyun .inbox{
	padding: 12% 0 18%;
}
#kijyun .inbox::before{
	width: 20%;
}
#kijyun .inbox dt{
	text-align: center;
}
#kijyun .inbox,
#kijyun .com_btn2{
	display: block;
}
#kijyun .com_btn2{
	margin-top: 5%;
}
#kijyun .com_btn2 a{
	text-align: center!important;
}
#kijyun .com_btn2 a span{
	padding-right: .5em;
}
	
.fullimg{
	height: 50vw;
	margin-bottom: 8%;
}
}






/* info
---------------------------------------------------------*/
#info{
	margin-bottom: 120px;
}
#info .com_index2 .ft_co{
	color: #af931a;
}

/*box1*/
#info .box1{
	margin-bottom: 70px;
}
#info .box1 .flex_box{
	align-items: center;	
}
#info .box1 .flex_l{
	width: 61%;
}
#info .box1 .flex_r{
	width: 35%;
	max-width: 407px;
	text-align: center;
}
#info .box1 .flex_r .txt1{
	border-bottom: dashed 1px #d3d3d0;
	padding-bottom: 1.6em;
	margin-bottom: 2.2em;
}
#info .box1 .flex_r .txt1 .name{
	font-size: min(230%,3.2vw);
	letter-spacing: 0.18em;
	line-height: 1em;
	margin-bottom: .5em;
}
#info .box1 .flex_r .txt2 .root{
	font-weight: bold;
	color: #927960;
	line-height: 1.7em;
}
#info .box1 .flex_r .txt2 ul{
	margin: 1.2em 0 2em;
}
#info .box1 .flex_r .txt2 li{
	position: relative;
	font-size: min(135%,1.8vw);
	letter-spacing: 0.1em;
	line-height: 1.5em;
}
#info .box1 .flex_r .txt2 li::before{
	position: absolute;
	display: block;
	content: "";
	background: url("../images/abs5@2x.png")no-repeat top left;
	background-size: 100% auto;
	width: 1.8em;
	height: 1.8em;
	top:-.1em;
	left: 0;
}
#info .box1 .flex_r .txt2 .btn{
	font-size: min(130%,2.2vw);
}
#info .box1 .flex_r .txt2 .btn a{
	position: relative;
	padding-right: 2.5em;
	box-sizing: border-box;
}
#info .box1 .flex_r .txt2 .btn a i{
	position: absolute;
	top: 55%;
	transform: translateY(-50%);
	right: 0;
}

/*box2*/
#info .box2{
	padding-bottom: 120px;
	position: relative;
}
#info .box2::before{
	position: absolute;
	display: block;
	content: "";
background: linear-gradient(to bottom,  rgba(246,245,245,1) 0%,rgba(246,245,245,1) 43%,rgba(246,245,245,0) 100%); 
	background-size: 100% auto;
	width: 100%;
	height: calc(100% - 2em);
	bottom: 0;
	left: 0;
	z-index: -1;
}
#info .box2 .com_index2{
	text-align: left;
}
#info .box2 .flex_box{
	max-width: 1000px;
	margin: 0 auto 55px;
}
#info .box2 .flex_box .flex_l{
	width: 15.5%;
}
#info .box2 .flex_box .flex_r{
	width: 80.5%;
}
#info .box2 .flex_box .flex_r .ft_zen{
	font-size: min(200%,3.2vw);
	letter-spacing: 0.11em;
	line-height: 1.6em;
	margin-bottom: .6em;
}
#info .box2 ul{
	max-width: 1100px;
	display: flex;
    justify-content: space-between;
	margin: 0 auto;
}
#info .box2 ul li{
	width: 32%;
	max-width: 350px;
}

/*box3*/
#info .box3 .flex_box{
	margin-bottom: 80px;
}
#info .box3 .flex_l{
	width: 46.5%;
}
#info .box3 .flex_l .dr{
	background:rgba(232,224,189,0.40);
	border-radius: 10px;
	padding: 40px 4%;
	box-sizing: border-box;
	margin-top: 40px;
}
#info .box3 .flex_l .dr_inbox{
	max-width: 450px;
	margin: 0 auto;
}
#info .box3 .flex_l .dr  .com_index1{
	margin-bottom: 1em;
}
#info .box3 .flex_l .dr  .com_index1::before{
	background: #937d68;
}
#info .box3 .flex_r{
	position: relative;
	width: 48.5%;
}
#info .box3 .flex_r .com_index1{
	position: absolute;
	top:-0.3em;
	left: 0;
	font-size: min(160%,2.2vw);
}
#info .box3 .flex_r .com_index1::before{
	width: 4px;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) { 
#info{
	margin-bottom: 8%;
}

/*box1*/
#info .box1{
	margin-bottom: 5%;
}
#info .box1 .flex_box{
	align-items: center;	
}
#info .box1 .flex_l iframe{
	height: 40vw;
}
#info .box1 .flex_r .txt1{
	padding-bottom: 1em;
	margin-bottom: 1.6em;
}
#info .box1 .flex_r .txt1 address{
	letter-spacing: normal;
	line-height: 1.6em;
}
#info .box1 .flex_r .txt2 .root{
	letter-spacing: normal;
}
#info .box1 .flex_r .txt2 ul{
	margin: 1.2em 0 1em;
}
#info .box1 .flex_r .txt2 li{
	letter-spacing: normal;
}
#info .box1 .flex_r .txt2 .btn a{
	padding-right: 1.5em;
}

/*box2*/
#info .box2{
	padding-bottom: 8%;
}
#info .box2::before{
	height: calc(100% - 1.5em);
}
#info .box2 .flex_box{
	margin: 0 auto 6%;
}
#info .box2 .flex_box .flex_r .ft_zen{
	margin-bottom: .4em;
}

/*box3*/
#info .box3 .flex_box{
	margin-bottom: 6%;
}
#info .box3 .flex_l .dr{
	padding: 5%;
	margin-top: 4%;
}
#info .box3 .flex_r .com_index1{
	top:-0.5em;
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) { 
#info{
	margin-bottom: 12%;
}
#info .com_index2 .ft_co{
	letter-spacing: normal;
}
	
/*box1*/
#info .box1{
	margin-bottom: 10%;
}
#info .box1 .flex_box{
	display: block;
}
#info .box1 .flex_l{
	width: 100%;
	margin-bottom: 6%;
}
#info .box1 .flex_l iframe{
	height: 60vw;
}
#info .box1 .flex_r{
	width: 100%;
	max-width: 100%;
}
#info .box1 .flex_r .txt1{
	padding-bottom: 1em;
	margin-bottom: 1.2em;
}
#info .box1 .flex_r .txt1 .name{
	font-size:160%;
	margin-bottom: .4em;
}
#info .box1 .flex_r .txt2 ul{
	margin: 1em 0 .8em;
}
#info .box1 .flex_r .txt2 li{
	display: inline-block;
	font-size: 105%;
	letter-spacing: 0.05em;
	padding-left: 2em;
	box-sizing: border-box;
}
#info .box1 .flex_r .txt2 .btn{
	font-size: 120%;
}
#info .box1 .flex_r .txt2 .btn a{
	padding-right: 1.7em;
}

/*box2*/
#info .box2{
	padding-bottom: 12%;
}
#info .box2::before{
	height: calc(100% - 6vw);
}
#info .box2 .flex_box{
	display: block;
	margin: 0 auto 8%;
}
#info .box2 .flex_box .flex_l{
	width: 35vw;
	margin: 0 auto 2vw;
}
#info .box2 .flex_box .flex_r{
	width: 100%;
}
#info .box2 .flex_box .flex_r .ft_zen{
	font-size: 150%;
	margin-bottom: .5em;
	text-align: center;
}
#info .box2 ul{
	width: 95%;
	flex-wrap: wrap;
}
#info .box2 ul li{
	width: 49%;
	margin-top: 2%;
}
#info .box2 ul li:nth-child(3){
	margin-left: 25%;
}

/*box3*/
#info .box3 .flex_box{
	display: block;
	margin-bottom: 8%;
}
#info .box3 .flex_l{
	width: 100%;
	margin-bottom: 10%;
}
#info .box3 .flex_l .dr{
	padding: 4%;
	margin-top: 4%;
}
#info .box3 .flex_l .dr  .com_index1{
	margin-bottom: .5em;
}
#info .box3 .flex_r{
	width: 100%;
}
#info .box3 .flex_r .com_index1{
	top: 0;
	font-size: 120%;
}
}