/* ヘッダ
----------------------------------*/

#header .hdInr {
	background: #fff;
}

#header .hdInr .pcHead .pcInr .contactBtn .btn {
	border: none;
 font-weight: 500;
}

#header .hdInr .pcHead .pcInr .contactBtn .btn:hover {
	background: none;
	color: #000;
 position: relative;
}

#header .hdInr .pcHead .pcInr .contactBtn .btn:hover::after {
	content: " ";
	width: calc(100% - 40px);
	height: 1px;
	background: #000;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}

/* フッタ
----------------------------------*/

#footer{
 background: #fff;
 position: relative;
}

#footer::before{
 content: '';
 display: block;
 position: absolute;
 bottom: 120px;
 left: 0;
 width: 100%;
 height: 1px;
 background: #000;
}


#footer .ftInr{
 box-sizing: border-box;
 position: relative;
 padding-left: 350px;
 padding-top: 0;
}

 #footer .ftInr .topCts .ftMenu .itemWrap .menuItem .item a::before{
 content: ''
}

#footer .ftInr .topCts .subLine{
 margin-top: 50px;
}

#footer .ftInr .bottomCts{
 padding-top: 0;
}

#footer .ftInr .bottomCts .ftLogo{
 position: absolute;
 top: 0;
 left: 0;
}

#footer .ftInr .topCts .ftMenu .itemWrap .listTtl a{
	color: #8ACF9B;
 color: #666;
}

#footer .ftInr .topCts .ftMenu .itemWrap .listTtl a:hover {
	opacity: 1.0;
 color: #33B34E;
 color: #999;
}

#footer .ftInr .topCts .ftMenu .itemWrap .menuItem .item a{
 position: relative;
 padding-left: 20px;
}

#footer .ftInr .topCts .ftMenu .itemWrap .menuItem .item a::before{
 content: '';
 display: block;
 background: url("/box/img/toppage/icon_footer_link.svg") no-repeat left top;
 background-size: 18px;
 width: 18px;
 height: 18px;
 position: absolute;
 top: calc(50% - 8px);
 left: 0;
}

@media screen and (max-width: 970px) {
 
 #footer .ftInr{
 padding-left: 0;
}
 
 #footer .ftInr .bottomCts .ftLogo{
 top: 0;
 left: 15px;
}
 
 #footer .ftInr{
 padding-top: 50px;
}

 
}

@media screen and (max-width: 768px) {
 
 #footer{
  margin-top: 0px;
 }
 
 #footer::before{
 display:none;
 position: relative;
}
 
 #footer .ftInr .topCts .ftMenu .itemWrap .listTtl .spBtn{
  color: #8ACF9B;
 }
 
 #footer .ftInr .topCts .ftMenu .itemWrap.js-item .listTtl .spBtn::after, #footer .ftInr .topCts .ftMenu .itemWrap.js-item .listTtl .spBtn::before{
  background:#8ACF9B; 
 }
 
 
#footer .ftInr .bottomCts{
 padding-top: 50px;
}
 
 #footer .ftInr .bottomCts .ftLogo{
 position: relative;
 top: auto;
 left: auto;
}

}

/* リンク
----------------------------------*/

.iconLink{
 font-size: 20px;
 letter-spacing: 2px;
 text-decoration: none;
 padding-left: 32px;
 line-height: 24px;
}

.iconLink:hover{
 color: #33B34E;
}

.iconLink.left{
 background: url("/box/img/toppage/icon_left.svg") no-repeat left center;
 background-size: 24px;
}

.iconLink.down{
 background: url("/box/img/toppage/icon_down.svg") no-repeat left center;
 background-size: 24px;
}


/* メインビジュアル
----------------------------------*/
.mainVisWrap {
 position: relative; 
 margin-top: -30px;
 overflow: hidden;
 }

.mainVisWrap::before{
 content: '';
 position: absolute;
 top: 0;
 left: 0;
 display: block;
 height: 100px;
 width: 100%;
 background: #fff;
 border-bottom-left-radius: 1000px 100px;
 border-bottom-right-radius: 1000px 100px;
 margin-left: -50px;
 margin-right: -50px;
 padding-left: 50px;
 padding-right: 50px;
}

.mainVisWrap::after{
 content: '';
 position: absolute;
 bottom: 0;
 left: 0;
 display: block;
 height: 160px;
 width: 100%;
 background: #fff;
 border-top-left-radius: 1000px 100px;
 border-top-right-radius: 1000px 100px;
 margin-left: -50px;
 margin-right: -50px;
 padding-left: 50px;
 padding-right: 50px;
 z-index: 1;
}

.mainVisWrap img{
 width: 100%;
}

@media screen and (max-width: 1400px) {
 .mainVisWrap {
  background: url("/box/img/toppage/main_bg.jpg") no-repeat top center;
  background-size: cover;
  height: 700px;
 }
 .mainVisWrap img{
 display: none;
}
}

@media screen and (max-width: 970px) {
 .mainVisWrap::before{
 height: 50px;
}
}
@media screen and (max-width: 768px) {
.mainVisWrap {
 background: url("/box/img/toppage/main_bg.jpg") no-repeat bottom 40px center;
 background-size: cover;
 height: 500px;
 }
}

.mainVisWrap h2{
 box-sizing: border-box;
 padding: 0 20px;
 position: absolute;
 bottom: 0;
 left:0;
 width: 100%;
 text-align: center;
 font-size: 32px;
 font-weight: bold;
 line-height: 2.0em;
 letter-spacing: 0.2em;
 z-index: 2;
}

@media screen and (max-width: 500px) {
.mainVisWrap h2{
 font-size: 6.5vw;
 letter-spacing: 0.1em;
 line-height: 2em;
 }
}


/* .secWrap
----------------------------------*/

.secWrap {
	margin-top: 40px;
}



/* .secLead
----------------------------------*/

@media screen and (max-width: 768px) {
.secLead.cm-ctsIdt {
 padding: 0 5vw;
 }
}
.secLead .secInr {
	box-sizing: border-box;
	padding: 60px 0 104px;
	position: relative;
}
.secLead .secInr::before {
	content: " ";
	width: 300px;
	height: 100%;
	background: url("/box/img/toppage/sec_lead_bg.svg") no-repeat top center;
	background-size: 100% auto;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	opacity: 0;
	transition: opacity 1.6s ease-out 1.4s;
}
.secLead.js-active .secInr::before {
	opacity: 1;
}
.secLead .secInr .ctsLead {
	text-align: center;
	position: relative;
	z-index: 1;
}
.secLead .secInr .ctsLead .txt {
	font-size: 18px;
	line-height: 2.3;
 margin-bottom: 40px;
}


@media screen and (max-width: 768px) {
	.secLead .secInr {
		padding: 0 0 18.4vw;
	}
	.secLead .secInr::before {
		width: 50%;
		height: 100%;
	}
	.secLead .secInr .ctsLead {
	}
	.secLead .secInr .ctsLead .txt {
		font-size: 4.5vw;
	}
}

/* 3つの事業
----------------------------------*/

.secBusiness{
 background: url("/box/img/toppage/business_bg.svg") no-repeat top center;
 background-size: cover; 
 position: relative;
 overflow: hidden;
 padding: 150px 0;
}

.secBusiness::before{
 content: '';
 position: absolute;
 top: 0;
 left: 0;
 display: block;
 height: 100px;
 width: 100%;
 background: #fff;
 border-bottom-left-radius: 1000px 100px;
 border-bottom-right-radius: 1000px 100px;
 margin-left: -50px;
 margin-right: -50px;
 padding-left: 50px;
 padding-right: 50px;
}

.secBusiness::after{
 content: '';
 position: absolute;
 bottom: 0;
 left: 0;
 display: block;
 height: 100px;
 width: 100%;
 background: #e5f0e1;
 border-top-left-radius: 1000px 100px;
 border-top-right-radius: 1000px 100px;
 margin-left: -50px;
 margin-right: -50px;
 padding-left: 50px;
 padding-right: 50px;
 z-index: 1;
}

.secBusiness .secInr{
 width: 86%;
 max-width: 1000px;
 margin: 0 auto;
}

.secBusiness .secBusiness_h2{
 color: #fff;
 color: #666;
 text-align: center;
 font-size: 40px;
 letter-spacing: 0.1em;
}

.secBusiness .secBusiness_h2 span{
 font-size: 24px;
}

.secBusiness .secBusinessBox{
 background: rgba(255,255,255,.85);
 border-radius: 30px;
 position: relative;
 margin-top: 80px;
 text-align: center;
}

.secBusiness .secBusinessBox img{
 position: absolute;
 width: 55%;
 max-width: 540px;
}

.secBusiness .secBusinessBox.secDevices img,
.secBusiness .secBusinessBox.secSystems img{
 top: calc(50% - 210px);
 right: -5%;
}

.secBusiness .secBusinessBox.secSensors img{
 top: calc(50% - 240px);
 left: -5%;
}

.secBusiness .secBusinessBox.secDevices .secBusinessBoxText,
.secBusiness .secBusinessBox.secSystems .secBusinessBoxText{
 padding: 7% 0 7% 7%;
 text-align: left;
}

.secBusiness .secBusinessBox.secSensors .secBusinessBoxText{
 padding: 5% 7% 5% 53%;
 text-align: left;
}


.secBusiness .secBusinessBox .secBusinessBoxText h2.secTtl{
 color: #000;
 font-size: 40px;
 font-weight: bold;
 line-height: 1.4em;
}

@media screen and (max-width: 1164px) {
 
 .secBusiness .secBusinessBox .secBusinessBoxText h2.secTtl{
 font-size: 3.3vw;
}
 
 .secBusiness .secBusinessBox.secDevices img,
.secBusiness .secBusinessBox.secSystems img{
 top: calc(50% - 18.5vw);
}

.secBusiness .secBusinessBox.secSensors img{
 top: calc(50% - 20vw);
} 
}

.secBusiness .secBusinessBox.secDevices .secBusinessBoxText h2.secTtl,
.secBusiness .secBusinessBox.secSystems .secBusinessBoxText h2.secTtl{
 margin-bottom: 40px;
 letter-spacing: 0.1em;
}

.secBusiness .secBusinessBox.secSensors .secBusinessBoxText h2.secTtl{
  margin-bottom: 20px;
 letter-spacing: 0;
}

.secBusiness .secBusinessBox .secBusinessBoxText h2.secTtl span{
 color: #8CCE9D;
 font-size: 16px;
 display: block;
 letter-spacing: 0.05em;
 line-height: 1.4em;
 margin-bottom: 20px;
}

.secBusiness .secBusinessBox .secBusinessBoxText p{
 margin-bottom: 80px;
 font-size: 16px;
 letter-spacing: 0.05em;
 line-height: 2em;
}
.secBusiness .secBusinessBox.secDevices .secBusinessBoxText p,
.secBusiness .secBusinessBox.secSystems .secBusinessBoxText p{
 margin-bottom: 80px;
}

.secBusiness .secBusinessBox.secSensors .secBusinessBoxText p{
 margin-bottom: 40px;
}

@media screen and (max-width: 970px) {
 .secBusiness .secBusinessBox{
  margin-top: 110px;
 }
 .secBusiness .secBusinessBox img{
  position: relative;
  width: 86%; 
  max-width: 86%;
}
 .secBusiness .secBusinessBox.secDevices img,
.secBusiness .secBusinessBox.secSystems img,
 .secBusiness .secBusinessBox.secSensors img{
  top: -80px;
  left: auto;
  right: auto;
}
.secBusiness .secBusinessBox.secDevices .secBusinessBoxText,
.secBusiness .secBusinessBox.secSystems .secBusinessBoxText{
 margin-top: -60px;
 padding: 0 20px 30px 20px;
 display: inline-block;
 }

.secBusiness .secBusinessBox.secSensors .secBusinessBoxText{
 margin-top: -60px;
 padding: 0 20px 30px 20px;
 display: inline-block;
}
 
 .secBusiness .secBusinessBox .secBusinessBoxText h2.secTtl{
 font-size: 32px;
}

.secBusiness .secBusinessBox.secDevices .secBusinessBoxText h2.secTtl,
.secBusiness .secBusinessBox.secSystems .secBusinessBoxText h2.secTtl,
.secBusiness .secBusinessBox.secSensors .secBusinessBoxText h2.secTtl{
  margin-bottom: 20px;
}


 
.secBusiness .secBusinessBox.secDevices .secBusinessBoxText p,
.secBusiness .secBusinessBox.secSystems .secBusinessBoxText p{
 margin-bottom: 40px;
}

.secBusiness .secBusinessBox.secSensors .secBusinessBoxText p{
 margin-bottom: 40px;
}
}
@media screen and (max-width: 500px) {
 .secBusiness .secBusinessBox .secBusinessBoxText p br{
  display: none;
 }
 
  .secBusiness .secBusinessBox .secBusinessBoxText h2.secTtl{
 font-size: 7.4vw;
}
}

/* .secBnrWrap
----------------------------------*/

.secBnrWrap {
 background: #E5F0E0;
 padding-bottom: 50px;
 text-align: center;
}

.secBnrWrap .secInr .bnrItemWrap {
}
.secBnrWrap .secInr .bnrItemWrap .item {
	width: calc(33% - 40px);
 display: inline-block;
 margin: 0 20px;
}

.secBnrWrap .secInr .bnrItemWrap .item .itemInr {
	display: block;
	text-decoration: none;
	transition: all 0.3s ease-out;
}
.secBnrWrap .secInr .bnrItemWrap .item .itemInr:hover {
  color: #33B34E;
}

.secBnrWrap .secInr .bnrItemWrap .item .itemInr .img{
 overflow: hidden;
 border-radius: 20px;
 max-width: 313px;
 margin: 0 auto;
}

.secBnrWrap .secInr .bnrItemWrap .item .itemInr .img img {
	width: 100%;
	height: auto;
 transition:0.3s;
 
}
.secBnrWrap .secInr .bnrItemWrap .item .itemInr:hover .img img {
	opacity: 1;
 transform:scale(1.2);
	transition:0.3s;
}

.secBnrWrap .secInr .bnrItemWrap .item .itemInr p{
 margin-bottom: 16px;
}

/* SP
----------------------------------*/
@media screen and (max-width: 768px) {

	.secBnrWrap .secInr .bnrItemWrap .item {
		width: auto;
  display: block;
		margin-bottom: 40px;
	}

}






