@charset "utf-8";
/*--------------------------------------------
　toppage
--------------------------------------------*/
#hero_outer{
	width: 100%;
position: relative;
min-height: 420px;
z-index: 1;
	background: url(../images/top/mainimg02.jpg) no-repeat;
	background-position: center center;
	background-size: cover;
}
#hero_outer img{
/*	width: 100%;
	height: auto;
	object-fit: cover;
	object-position: center;
	z-index: 1;*/
}
#hero_outer p.caption{
	color: #fff;
	font-size: 2rem;
	position: absolute;
	bottom: 16%;
	left: 10%;
	letter-spacing: 0.1em;
	/* font-family: "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "serif","ＭＳ Ｐ明朝", "MS PMincho"; */
	z-index: 1;
	font-family: "Zen Old Mincho", serif,"ＭＳ Ｐ明朝", "MS PMincho";
	font-weight: 600;
	font-style: normal;
}
#hero_outer p.animated{
	animation-duration: 2.5s;
	animation-delay: 3s;
}
.contents .animated{
	animation-duration: 2.5s;
}
#logo-svg {
    width: 65%;
    height: auto;
    position: absolute;
    top: 10%;
    right: 10%;
}
.cls-1{stroke-width:2px;}
.toppage section{
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 70px;
	padding-bottom: 70px;
}
p.subttl_e{
	padding: 0;
	margin: 0;
	color: #478A9E;
	letter-spacing: 0.1em;
	font-family: "Zen Old Mincho", serif,"ＭＳ Ｐ明朝", "MS PMincho";
	font-weight: bold;
}
.toppage h2,.technology h2,.about h2,.equipment h2{
	margin-top: 10px;
	margin-bottom: 30px;
	letter-spacing: 0.1em;
	font-family: "Zen Old Mincho", serif,"ＭＳ Ｐ明朝", "MS PMincho";
}

.toppage h2 .txt_s,.technology h2 .txt_s{
	display: block;
	margin-bottom: 10px;
}
#top_tech{
	background:linear-gradient(90deg,#E1E6E9 0%,#E1E6E9 50%,#fff 50%,#fff 100%);
}
#top_about,#top_environment{background:linear-gradient(90deg,#fff 0%,#fff 50%,#E1E6E9 50%,#E1E6E9 100%);}

#top_tech .tech_inner,#top_about .about_inner{
	max-width: 800px;
	margin: 0 auto;
}
#top_tech .tech_r{
	text-align: right;
	margin-right: 2em;
	position: relative;
}
#top_tech .tech_r:after {
  position: absolute;
  content: "";
  background: #478A9E;
    width: 2px;
    height: 50%;
    right: 5%;
    top: 110%;
}
#top_about .about_l{
	margin-left: 2em;
	position: relative;
}

#top_about .about_l:after {
  position: absolute;
  content: "";
  background: #478A9E;
    width: 2px;
    height: 70%;
    left: 5%;
    top: 110%;
}
#top_tech a img,#top_about a img{
	/*display: block;*/
	width: 100%;
	height: auto;
	max-width: 800px;
	margin: 0 auto;
}
#top_about .contact-btn{
	margin-bottom: 30px;
}
#top_about .contact-btn span a img {
    max-width: 390px;
}

#top_equip{
	background:url(../images/common/geo-ptn01.png);
	text-align: center;
}

#top_equip h2,#top_equip ul{
	display: block;
	vertical-align: middle;
	margin: 0 2em;
}
#top_equip h2 img{
	width: 100%;
	height: auto;
	max-width: 270px;
}
#top_equip a{
	color: #fff;
	line-height: 1.6em;
	text-align: left;
	font-size: 2rem;
}

#top_equip ul{
  margin-top: 1.5em;
  margin-bottom: .75em;
margin-left: 5em;
    margin-right: 5em;	
}
#top_equip ul li{
	  margin-bottom: .25em;
  position: relative;	
}

#top_equip ul li::before{
  content: "";
  position: absolute;
  top: 0.75em;
  left: -16px;
  width: 10px;
  height: calc(100% + .25em);
  border-left: 1px solid #fff;	
}

#top_equip ul li:last-child::before{
	  height: calc(1em - .95em);
}
/*#top_equip ul li:first-child::after{
	  height: calc(1em - .75em);
}
*/
#top_equip ul li::after{
  content: "";
  position: absolute;
  top: .75em;
  left: -16px;
  width: 10px;
  border-top: 1px solid #fff;	
}

section#top_environment{
	text-align: center;
	padding-bottom: 0;
	position: relative;
}
#top_environment .circle{
	 color: #fff;
  background-color:rgba(88,194,223,0.9);
  padding: 70px 1em;
  margin: 0;
  width: 320px;
  height: 320px;
  line-height: 2em;
  text-align: center;
  display: inline-block;
  border-radius: 50%;
	position: absolute;
	left: calc(50% - 160px);
	top: -30px;
	opacity:0.5;
}

#top_environment .circle h2 a{
	color: #fff;
	display: inline-block;
	border: 2px #fff solid;
	padding: 10px 1em;
	font-size: 0.7em;
	margin-top: 10px;
}
#top_environment img{
	width: 100%;
	height: auto;
	min-height: 320px;
	object-fit:cover;
	object-position: 50% 50%; 
}
#top_environment img.ofi {
font-family: 'object-fit: cover; object-position: 50% 50%;' /* IE・Edge対応 */
}

.googlemap {
    position: relative;
    /*padding-bottom: 56.25%;*/
    padding-top: 30px;
    height: 0;
    overflow: hidden;
	height: 300px;
	border-top: 4px solid #478A9E;
}
 
.googlemap iframe,
.googlemap object,
.googlemap embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.googlemap_half{
	display: inline-table;
	width: calc(100% / 2);
	border-top: none;
}
@media screen and (min-width:768px){
	#hero_outer{
		min-height: 800px;}
	#logo-svg {
		width: 33%;}
	.cls-1{stroke-width:2px;}
	#hero_outer p.caption{
		font-size: 4rem;
		letter-spacing: 0.2em;}
	#top_equip h2,#top_equip ul{
		display: inline-block;
	}
	/*.contact-btn span{
	display: inline-block;
	width: 48%;
	margin: 0px 0.2em;
}*/
}


/*--------------------------------------------
　technology
--------------------------------------------*/
.technology .pagelink ul li{
	width: 90%;
    margin: 10px 1%;
}

.technology #techno h3{
	color: #58C2DF;
	position: relative;
	margin-bottom: 60px;
}
.technology #techno h3:after{
	position: absolute;
    opacity: ;
    width: 200px;
    height: 2px;
    content: '';
    background: #58C2DF;
	bottom: -30px;
	left: calc(50% - 100px);
}
#techno .techno_intro{
	text-align: center;
	margin-bottom: 70px;
}
#techno .techno_intro img{
	width: 100%;
	height: auto;
	max-width: 1000px;
}
#techno .tech_txt1,#techno .tech_txt2,#techno .tech_txt3{
	margin: 0px auto 70px;
	width: 90%;
	max-width: 1000px;	
	line-height: 1.8em;
}
.tech_txt1 h4,.tech_txt2 h4,.tech_txt3 h4{
	margin-bottom: 30px;
	position: relative;
	line-height: 1.5em;
	font-size: 1.25em;
	color: #151F36;
	text-indent: 0.5em;
}
.tech_txt1 h4:after,.tech_txt2 h4:after,.tech_txt3 h4:after,.about h3:after{
	content: "";
	display: block;
	height: 3px;
	background: -moz-linear-gradient(left, rgba(3,3,3,1) 0%, rgba(89,145,159,1) 36%, rgba(253,244,239,1) 100%);
background: -webkit-linear-gradient(left, rgba(3,3,3,1) 0%, rgba(89,145,159,1) 36%, rgba(253,244,239,1) 100%);
background: -o-linear-gradient(left, rgba(3,3,3,1) 0%, rgba(89,145,159,1) 36%, rgba(253,244,239,1) 100%);
background: -ms-linear-gradient(left, rgba(3,3,3,1) 0%, rgba(89,145,159,1) 36%, rgba(253,244,239,1) 100%);
background: linear-gradient(to right, rgba(3,3,3,1) 0%, rgba(89,145,159,1) 36%, rgba(253,244,239,1) 100%);
}
#techno .tech_txt1 p{
/*	background: url(../images/page/tech/bg_tech.png) center bottom no-repeat;
	background-size: contain;
	padding: 0px 2% 160px;*/
}
#techno .tech_txt1 a{
	display: block;
	vertical-align: bottom;
	text-align: right;
	margin-top: 10px;
}
/*.tech_txt2 span,.tech_txt3 span,.tech_txt2 p,.tech_txt3 p{
	display: block;
}*/
.tech_txt1 img.img-l{
	width: 100%;
	height: auto;
	max-width: 1000px;
}
.tech_txt2 div,.tech_txt3 div{
	padding: 0;
	margin-bottom: 20px;
}
.tech_txt2 p,.tech_txt3 p{
	padding: 0px 1% ;
}

.tech_txt2 img,.tech_txt3 img {
	width: 100%;
	height: auto;
	/*max-width: 500px;*/
	/*padding: 0px 2%;*/
}
.tech_txt3 .box_r img{
	max-width: 500px;
}


#products{
	background: url(../images/common/ptn02.png);
	padding: 50px 1%;
}
#products h3{
	position: relative;
	display: block;
	background: url(../images/page/tech/logo_t.png) no-repeat left;
	background-size: contain;
	padding: 20px 0px;
	color: #478A9E;
	letter-spacing: 0.2em;
	max-width: 1000px;
	margin: 0 auto 20px;
}

#products h3:after{
content: '';
position: absolute;
top: 50%;
display: inline-block;
width: 86%;
height: 2px;
background-color: #478A9E;
}
#products ul{
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;

}
#products ul li{
	display: inline-block;
	width : 47% ; /* 未対応ブラウザ用フォールバック */
	width : -webkit-calc(94% / 2);
	width: calc(93% / 2);
	text-align: center;
	box-sizing: border-box;
	border: 1px solid #bbb;
	margin: 0px 1% 20px;
	background-color: rgba(255,255,255,0.70);
}
#products ul li img,#products ul li span{
	display: block;
	width: 90%;
	margin: 10px auto;
}
@media screen and (min-width:768px){
	.technology .pagelink ul li{
		width: 47%;}
	#techno .tech_txt1 p{    /*padding-bottom: 400px;*/}
	.tech_txt3 .box_r img{	margin: 30px 1% 0px;}
	.tech_txt3 .box_l{	padding-right: 1%;}
	#products ul li{width: calc(93% / 3);}
}
/*--------------------------------------------
　about
--------------------------------------------*/
#message,#vision,#profile{
	max-width: 1000px;
	margin: 0 auto 70px;
}
.about .pagelink ul li,.equipment .pagelink ul li{
	width: 90%;
    margin: 10px 1%;
}

.about h3{
	margin-bottom: 50px;
	color: #151F36;
	line-height: 1.5em;
	text-indent: 0.5em;
	letter-spacing: 0.1em;
}
.about section p{
	line-height: 1.8em;
	padding: 10px 1%;
    width: 80%;
    margin: 10px auto;
    font-family: "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "serif";
}
.about .ttl-box .subttl_e{
	color: #58C2DF;
}
.about #message dl,.about #message p{
	display: inline-block;
	vertical-align: top;
}
.about #message dl{
	width: 100%;
	text-align: center;
}
.about #message dl img{
	width: 90%;
	height: auto;
	max-width: 280px;
	margin-bottom: 10px;
}
.about #message p{width:100%;}

.about #vision{
	/*text-align: center;*/
}
.about #vision h3{
	text-align: left;
}
.about img.vison{
    padding: 10px 2%;
    width: 100%;
    height: auto;
    max-width: 1000px;
}

.about #profile dl{
	text-align: center;
}
.about #profile dt{
	position: relative;
	line-height: 1.4;
	padding:0.25em 1em;
	display: inline-block;
	margin-bottom: 30px;
    vertical-align: top;
	letter-spacing: 0.1em;
	color: #478A9E;
}
.about #profile dt:after{
	content:'';
width: 20px;
height: 30px;
position: absolute;
display: inline-block;
	border-right: solid 2px #478A9E;
  border-bottom: solid 2px #478A9E;
  bottom:0;
  right: 0;
}
.about #profile dd{
	width: 100%;
	display: inline-block;
	margin-bottom: 30px;
	padding: 0.25em 1em;
}
.about #environment{
	background: url(../images/top/top_environment.jpg) no-repeat center bottom;
	background-size: cover;
	padding: 70px 0px;
	margin-bottom: 100px;
}
.about #environment .environment_txt{
	width: 90%;
	max-width: 1000px;
	margin: 0 auto;
	color: #151F36;
	/*text-shadow:1px 1px 5px #072e07;*/
	background-color: rgba(255,255,255,0.7);
	padding: 20px 2%;
}
.about #environment h3{
	text-align: center;
	text-indent: 0;
	/*color: #262626;*/
	margin-bottom: 30px;
}
.about #environment h3:after{
	background: none;
}
.about #environment p{
	padding: 0px 1% 10px;
}

@media screen and (min-width:768px){
	.about .pagelink ul li,.equipment .pagelink ul li{
		width: 28%;}
	.about .pagelink ul li.environment{width: 89%;}
	.about #message dl{	width: 39%;}
	/*.about #message p{width:60%;}*/
	.about #profile dt{
		width: 38%;
	text-align: right;}
	.about #profile dd{
		width: 60%;
	text-align: left;}
}
/*--------------------------------------------
　equipment
--------------------------------------------*/
.equipment .ttl-box .subttl_e {
    color: #151F36;
}
.equipment .equip_intro{
	text-align: center;
	margin-bottom: 30px;
}
.equipment .equip_intro h3{
	border-bottom: 1px solid #151F36;
	color: #151F36;
	line-height: 1.5em;
}
.equipment .pagelink{
	border: none;
}
.equipment section h4{
	text-align: center;
	color: #fff;
	letter-spacing: 0.2em;
	font-size: 2.5rem;
	background-size: cover;
	max-width: 1000px;
	margin: 0 auto 50px;
	padding: 80px 0px;
}
.equipment #lathe h4{
	background: url(../images/page/equip/equip_senban.jpg) no-repeat center;
}
.equipment #machining h4{
	background: url(../images/page/equip/equip_mashi.jpg) no-repeat center;
}
.equipment #other h4{
	background: url(../images/page/equip/equip_other.jpg) no-repeat center;
}
.equipment #a-lathe h4{
	background: url(../images/page/equip/equip_a-senban.jpg) no-repeat center;
}
.equipment h5{
	max-width: 1000px;
	margin: 40px auto 20px;
	color: #fff;
	background-color: #151F36;
	padding: 10px;
	font-size: 1.8rem;
	font-weight: bold;
}
.equipment dl{
	width: 90%;
	max-width: 1000px;
	margin: 0 auto 30px;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	flex-direction: column;
}
.equipment dl dt,.equipment dl dd{
	/*display: inline-table;*/
	vertical-align: middle;

}
.equipment dl dt{
	background-color: #478A9E;
	color: #fff;
	text-align: center;
	display:flex;
-webkit-align-items: center;
-webkit-justify-content: center; 
	align-items: center; /*上下中央*/
	justify-content: center; /*左右中央*/
	padding: 10px 0px;
}
.equipment dl dd ul{
	margin: 8px 2%;
	width: 96%;
}
.equipment dl dd ul li{
	border-bottom: 1px solid #478A9E;
	padding: 8px 1%;
}
.equipment dl dd ul li.no-border{
	border-bottom: none;
}
.equipment dl dd ul li span.quantity{
	float: right;
}
@media screen and (min-width:768px){
	.equipment section h4{
		padding: 120px 0px;
	}
	.equipment dl{
		flex-direction: row;
	}
	.equipment dl dt{
		width: 30%;
	}
	.equipment dl dd{
		width: 70%;
	}
}

/*　2026.02追加　*/
.equip_image{
	margin: 0 auto 20px;
	width: 100%;
	text-align: center;
}
.equip_image img{
	width: 100%;
	height: auto;
	max-width: 480px;
}
@media screen and (min-width:768px){
.equip_image{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
	max-width: 1000px;
}
}
/*--------------------------------------------
　contact
--------------------------------------------*/
.contact .ttl-txt{
	display: block;
	width: 100%;
	text-align: center;
	border-bottom: 1px solid #151F36;
	margin: 50px 0px;
}
.contact .ttl-txt h2 {
	color: #151F36;
	margin-top: 10px;
	font-family: "Zen Old Mincho", serif,"ＭＳ Ｐ明朝", "MS PMincho";
	letter-spacing: 0.1em;
	line-height: 1.8em;
}

#contact h3{
	font-size: 2rem;
	letter-spacing: 0.1em;
	margin-bottom: 30px;
}
#contact form{
	width: 90%;
	max-width: 800px;
	margin: 30px auto 50px;
}
#contact form dt{
	background-color: #E1E6E9;
	padding: 8px 1%;
	margin-bottom: 10px;
	width: 100%;
}
#contact form dd{
	margin-bottom: 30px;
	width: 100%;
}
#contact form dd input{
	line-height: 2em;
}
.must{
	color: #C10003;
	font-size: 0.8em;
	padding: 2px 1%;
}

#contact #send{
	text-align: center;
}
input.reset,input.submit,input.return{
	border: none;
	color: #fff;
	margin: 0px 1%;
	padding: 10px 2%;
	border-radius: 5px;
	letter-spacing: 0.1em;
    transition: all 0.5s;
	box-sizing: border-box;
}
input.reset,input.return{
    background-color: #CFD7DC;
}
input.submit{
	background-color: #58C2DF;
}
input.reset:hover,input.submit:hover,input.return:hover{
	/*background-color: #fff;
	border: #58C2DF 2px solid;
	color: #58C2DF;*/
	opacity: 0.6;
}

/*ボックス全体*/
.accbox {
    margin: 2em auto;
    padding: 0;
    max-width: 800px;/*最大幅*/
}

/*ラベル*/
.accbox label {
    display: block;
    margin: 1.5px 0;
    padding : 11px 12px;
    color :#fff;
    font-weight: bold;
    background :#478A9E;
    cursor :pointer;
    transition: all 0.7s;
}

/*ラベルホバー時*/
.accbox label:hover {
    background :#151F36;
}

/*チェックは隠す*/
.accbox input {
    display: none;
}

/*中身を非表示にしておく*/
.accbox .accshow {
    height: 0;
    padding: 0;
    overflow: hidden;
    opacity: 0;
    transition: 0.8s;
}

/*クリックで中身表示*/
.cssacc:checked + .accshow {
    height: auto;
    padding: 10px 1em 5px;
    background: #EEF1F2;
    opacity: 1;
}
#privacy p{
	   font-size: 1.4rem;
    line-height: 2.2rem;
}
#privacy h5{
	/*color: #151F36;*/
	font-weight: bold;
	border-left: 3px solid #151F36;
	margin: 0;
	padding: 3px 1%;
}
@media screen and (min-width:768px){
	#contact form dt,#contact form dd{
		display: inline-block;
		vertical-align: top;
	}
	#contact form dt{
		/*width: 30%;*/
	}
	#contact form dd{
		/*width: 69%;*/
	}
}
