@charset "UTF-8";

*{
	box-sizing: border-box; 
	margin: 0;
	padding: 0;
}
body{
	font-family: 'Noto Serif JP', serif;
	font-weight: 500;
	font-size: 14px;
}

.clear { clear: both; }
.clearfix::after {
	content:".";
	height:0;
	visibility:hidden;
	display:block;
	clear:both;
	line-height:0; 
}
.br::before {
	content: "\A" ;
	white-space: pre ;
}
.flex-box {
	display: flex;
	justify-content: space-evenly;
	align-content: flex-start;

}

.print_only { display: none; }

/* Typography
?????????????????????????????????????????????????? */
h1, h2, h3, h4, h5, h6 {
	margin-top: 1em;
	margin-bottom: 1em;
/*	font-weight: 300; */
}
h1 { font-size: 2.0rem; line-height: 1.2;  letter-spacing: -.1rem;}
h2 { font-size: 1.5rem; line-height: 1.25; letter-spacing: -.1rem; }
h3 { font-size: 1.2rem; line-height: 1.3;  letter-spacing: -.1rem; }
h4 { font-size: 1.0rem; line-height: 1.35; letter-spacing: -.08rem; }

/* Links
?????????????????????????????????????????????????? */
a { color: initial; }
.font-white, .font-white a { color: #fff; }

/* Buttons
?????????????????????????????????????????????????? */
.button,
button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
	background-color: #bbb;
	color: #fff;
}
.button-primary {
	border: 1px solid #999;
	border-radius: 11px;
	cursor: pointer;
	font-size: 16px;
	padding: 3px 10px;
	height:38px;
}
.button-secondary {
	border: 1px solid #999;
	border-radius: 11px;
	cursor: pointer;
	font-size: 16px;
	padding: 3px 10px;
/*	width:80px; */
	height:38px;
}
.button-primary:hover, .button-secondary:hover {
	opacity: 0.5 ;
}

.search_container{
	box-sizing: border-box;
	position: relative;
	border: 1px solid #999;
	display: block;
/*	padding: 3px 10px; */
/*	border-radius: 20px; */
/*	height: 2.3em; */
	width: 260px;
	overflow: hidden;
}
.search_container input[type="text"]{
	border: none;
	height: 2.0em;
}
.search_container input[type="text"]:focus {
	outline: 0;
}
.search_container input[type="submit"]{
	cursor: pointer;
	font-family: FontAwesome;
	font-size: 1.3em;
	border: none;
	background: none;
	color: #3879D9;
	position: absolute;
	width: 2.5em;
	height: 2.5em;
	right: 0;
	top: -10px;
	outline : none;
}


/* Forms
?????????????????????????????????????????????????? */
input[type="email"],
input[type="number"],
input[type="search"],
input[type="text"],
input[type="tel"],
input[type="url"],
input[type="password"],
textarea,
select {
	background-color: #FFFFFF;
	border: 1px solid #999;
	font-size: 16px;
	padding: 3px 10px;
	margin-right: 5px;
	height: 2em;
}


/* Header
?????????????????????????????????????????????????? */
.site-header{
	display: flex;
	padding: 10px 0px;
	position: absolute;
	width: 100%;
	z-index: 99;
/* 	border-bottom: 2px solid #555555; */
	position: fixed;
	top: 0;
	background: #fff;
}
.site-header.fixed{
	position: fixed;
	top: 0;
}
.site-header .inner {
	width: 1200px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
h1.site-logo { font-size: 1rem; margin: 0;}
span.h1-msg {
	font-size: 15px;
}
.site-logo img{
	width: auto;
}
.gnav__menu{
	display: flex;
}
.gnav__menu__item{
	margin-left: 20px;
	padding: 2px 20px;
}
.gnav__menu__item a{
	color: #fff;
	text-decoration: none;
}


/*スマホ用メニュー*/
.btn {
	background:transparent url(images/sp_btn.png) no-repeat 0 0;
	display: block;
	width:44px;
	height: 44px;
	position: absolute;
	right:0px;
	cursor: pointer;
	z-index: 200;
	margin-right: 10px;
}
.peke {
	background-position: -44px 0;
}
.drawr {
	display: none;
	background-color:#fff;
	position: absolute;
	top: 0px;
	right:0;
	width:300px;
	padding:60px 0 20px 20px;
	z-index: 100;
	text-align: left;
}
.drawr a {
	color:#888;
	display: block;
	padding: 10px;
	font-size: 16px;
	font-weight: bold;
}
#menu li {
	width:300px;
	list-style:none;
}
/*
#menu li a {
	color:#888;
	display: block;
	padding: 10px;
	font-size: 16px;
	font-weight: bold;
}
*/
#menu li li {
	padding-left: 1em;
}


/* Footer
?????????????????????????????????????????????????? */
footer {
	padding: 10px;
	background: #555555;
	color: #fff;
}
.copyright{
	background: #555;
	color: #fff;
	font-size: 12px;
	text-align: center;
}

/* Content
?????????????????????????????????????????????????? */
.content{
	line-height: 1.6;
	max-width: 100%;

	padding-left: 10px;
	padding-right: 10px;

	margin-top: 80px;
	font-size: 16px;
}

#home .content{
	line-height: 1.6;
	max-width: 100%;
	padding-left: 10px;
	padding-right: 10px;
}

.content p{
	margin-bottom: 1em;
}
.content .inner {
	max-width: 1200px;
	margin: 0 auto;
}
.content h1 {
	border-bottom: 4px solid #eee;	
}

.content h1 span.uline {
	display: inline-block;
	border-bottom: 4px solid #ff8400;	
	position: relative;
	bottom: -4px;		
	padding: 0 2em 0 0.5em;
}

.content-footer{
	max-width: 1200px;
	margin: 80px auto 10px;
}
.contact-area {
	display: flex;
	justify-content: center;
}
.contact {
	border: 1px solid #07162E;
	width: 15em;
	padding: 10px 20px;
	margin: 0 auto 20px;
	font-size: 28px;
	text-align: center;
}
.contact-area a { text-decoration: none; }

.info-area {
	float: left;
	width: 30%;
	margin-left: 5%;
}
.company-name {
	font-size: 130%;
}
.map-area {
	float: right;
	width: 40%;
	margin-right: 5%;
	border: #aaa solid 1px;
}
.gmap {
	height: 0;
	overflow: hidden;
	padding-bottom: 56.25%;
	position: relative;
}
.gmap iframe {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
}


/* 
 * テーブル枠あり
 */
table.table-border  {
	border-collapse: collapse;
	border-top: 1px solid #cccccc;
}
table.table-border {
	width: 100%;
}
table.table-border tr {
	border-left: 1px solid #cccccc;
}
table.table-border th {
	background-color: #f3f3f3;
	border-bottom: 1px solid #cccccc;
	border-right: 1px solid #cccccc;
	padding: 8px 8px 8px 8px;
	text-align: center;
	white-space: nowrap;
}
table.table-border td {
	border-bottom: 1px solid #cccccc;
	border-right: 1px solid #cccccc;
	padding: 8px 8px 8px 8px;
	text-align: left;
}
table.table-border th.left1 {
	background-color: #fff;
	border-bottom: 1px solid #cccccc;
	border-right: 1px solid #cccccc;
	padding: 8px 8px 8px 8px;
	text-align: center;
/*	white-space: nowrap;*/
	font-weight: normal;
}
tr.blank-row {
	border-left: none;
	border-right: none;
	border-left-color: #fff;
}
tr.blank-row td {
	border: none;
}
/* 
 * テーブル枠なし
 */
table.table-no-border  {
	border-collapse: collapse;
}
table.table-no-border {
	width: 100%;
}
table.table-no-border tr {
}
table.table-no-border th {
	padding: 8px 8px 8px 8px;
/*	font-weight: normal;*/
	white-space: nowrap;
	text-align: left;
}
table.table-no-border td {
	padding: 8px 8px 8px 8px; 
	text-align: left;
}
table.table-no-border th.left1 {
	background-color: #fff;
	padding: 8px 8px 8px 8px;
	text-align: center;
/*	white-space: nowrap;*/
/*	font-weight: normal; */
}

/* 
 * dl 横並び
 */

.flex-box dl {
  display: flex;
  flex-wrap: wrap;
}
.flex-box dl dt {
  width: 25%;
  font-weight: bold;
}
.flex-box dl dd {
  width: 75%;
  line-height: 1.3em;
  margin-bottom: 0.8em;
}



/* pages */
.main { width: 100%;}
.main h2 { margin-top: 0; }
.main h3 {
	margin-top: 40px;
	border-bottom: 2px solid #555555;
	color: #000000;
	padding-left: 0.5em;
}
.main h3:first-child {
	margin-top: 0px;
}
.sub ul, .sideMenu li {
	margin: 0;
	padding: 0;
	border: none;
	font-style: normal;
	font-weight: normal;
	font-size: 100%;
	list-style-type: none;
	text-align: left;
}
.sub ul li {
	width: 90%;
	border-bottom: #CCCCCC 1px solid;
}

.sub ul li a {
	display: block;
	background: #fff;
	line-height: 120%;
	padding: 8px 0 8px 20px;
	color: #333333;
	text-decoration: none;
}

.sub ul li a:link,
.sub ul li a:visited,
.sub ul li a:active {
	color: #333333;
	text-decoration: none;
}

/* トップページ */
.catchphrase {
	font-size: 30px;
	font-weight: bolder;
	text-align: center;
}
.business_cols {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	padding: 50px 0;
	
}
.business_img {
	padding-bottom: 30px;
}
.business_text {
	width: 60%;
	position: relative;
	z-index: 0;
	overflow: hidden;
	background: #E3E3E3;
	margin-left: -180px;
	padding: 30px 60px;
}
.business_text::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 0%;
	height: 100%;
	background-color: #07162E;
	-webkit-transition: .5s;
	transition: .5s;
}
.business_text:hover::before {
	width: 100%;
}
.business_text h3 {
	font-size: 40px;
	font-weight: bold;
	margin-bottom: 0.5em;
	padding-left: 0;
	border: none;
/*	color: #07162E; */
	color: #555555;
}
.business_text p {
	font-size: 20px;
/*	color: #07162E; */
	color: #555555;
}
.business_cols-rev {
	flex-direction: row-reverse;
}
.business_text-rev {
	margin-left: 0;
	margin-right: -180px;
	z-index: 2;
}
.business_text:hover h3, .business_text:hover p {
	color: #fff;
}

/* common pages */
h2.contentTitle {
	clear: both;
	margin-bottom: 20px;
	padding: 10px 20px;	/*上下、左右への余白*/
	font-size: 24px;	/*文字サイズ*/
	color: #fff;		/*文字色*/
	background: #555555;	/*背景色*/
}
h2.contentTitle::first-letter {
	border-left: 5px solid #fff;	/*左の線の幅、線種、色*/
	padding-left: 15px;		/*線とテキストとの余白*/
}
#company ul, #company ol { margin-left: 1em; }
.company-info {
	display: flex;
}
.facility table.table-no-border td {
	padding: 05px 8px 0px 8px;
}
.certificate { 
	display: flex; 
	justify-content: space-between;
}
.certificate a { width: 30%; }
.certificate a img { width: 100%; }
.certificate figure { width: 30%; }
.certificate figure img { width: 100%; }
.contact-phone { text-align: center; }
.contact-phone a {
	font-size: 150%;
	color: #000;
}
.contact-phone p { margin: 0; }
.contact-phone .mob-contents { font-size: 80%;}

/*--------------------------------------------------*/
/*media Queries
----------------------------------------------------*/
@media only screen and (max-width : 425px) {		/* スマホ */
	body { font-size: 16px; }
	#home .content {
		margin-top:inherit;
	}
	.pc-contents { display: none; }
	img { width: 100%; }
	ul.gnav { display:none; }
	span.mob-br:after {
		content: "\A" ;
		white-space: pre ;
	}
	.pc-contents { display: none; }
	table { width: 100%; }
	/* スマホでのみtableをdl風にする（枠なし） */
	table.dl-style { width: 100%; border: none;}
	.dl-style tbody tr{
		display: block;
		margin-bottom: 1.5em;
	}
	table.dl-style tbody th{
		width: 100%;
		display: list-item;
		list-style-type: none;
		margin-bottom: 5px;
		padding: 0;
		font-weight: bold;
		border: none;
		text-align: left;
		white-space: nowrap;
	}
	table.dl-style tbody td{
		display: list-item;
		list-style-type: none;
		border: none;
		padding: 0;
	}

	/* テーブルの縦横を入れ替える */
	table.product-table {
		border : 1px solid;
		-ms-writing-mode : tb-lr;
		writing-mode : vertical-lr;
	}
	table.product-table th {
		border : 1px solid;
		line-height : 1;
		height : 1em;
	}
	table.product-table td {
		border : 1px solid;
		line-height : 1;
		height : 1em;
	}
	table.product-table td, table.product-table th{
		-ms-writing-mode : lr-tb;
		writing-mode : horizontal-tb;
		white-space : nowrap;
	}

	.site-logo img { width: 80%; }

	.info-area { display: none; }

	.mv-bg {
		margin-top: 78px;
	}
	.business_cols {
		display: block;
		padding: 30px 0;
	}
	.business_img {
		padding-bottom: 0;
	}
	.business_text {
		width: 100%;
		position: relative;
		z-index: 0;
		overflow: hidden;
		background: #E3E3E3;
		margin-left: inherit;
		padding: 10px 30px;
	}
	.business_text h3, .business_text p{
		font-size: inherit;
	}
	.content-footer {
		margin: 20px auto 10px;
	}
	.contact {
		font-size: inherit;
		width: 100%;
	}
	.contact_box {
		display: flex;
		justify-content: space-between;
		margin-bottom: 10px;
	}
	.company-info { display: block; }

}
@media only screen and (min-width : 425px) {		/*  */
	.mob-contents { display: none; }
	.btn { display:none; }
	.site-header{
		padding: 0px 10px;
	}
	a:hover { opacity: 0.5 ; }

	.content{
		padding-left: 2%;
		padding-right: 2%;

	}

	/*========= ナビゲーションドロップダウンのためのCSS ===============*/

	.gnav {
		display: flex;
		height: 2rem;
		margin: 0 auto;
	}
	.gnav > li {/*親階層のみ幅を25%にする*/
		margin: 0 0 0 1em;
	}
	/*全てのリスト・リンク共通*/
	.gnav li {
		list-style: none;
		position: relative;
/*		width: 25%; */
		height: 2rem;
		line-height: 2rem;
		text-align: center;
	}
	.gnav li a {
		display: block;
/*
		height: 2rem;
		line-height: 2rem;
		text-align: center;
*/
		text-decoration: none;
		width: 100%;
	}
	/*子階層以降共通*/
	.gnav li li {
		height: 0;
		overflow: hidden;
		transition: .5s;
		background: #fff;
		padding: 0 1em;
		position: relative;
		top: 100%;
		width: 300%;

	}
	.gnav li li a {
		border-top: 1px solid #eee;
		text-align: left;
	}
	.gnav li:hover > ul > li {
		height: 2rem;
		overflow: visible;
	}
	footer {
		margin-top: 60px;
/*		min-height: 110px;*/
	}

	.large_slide .slick-slide img { width: 100%; }


	.photo { width: 32%; float: left; margin-right: 2%; }
	.photo:nth-child(3n) { margin-right: 0;}
	.photo img { width: 100%; }


	.atago, .eco { width: 70%; }
	.maparea { width: 30%; }
	.maparea img { width: 100%; }
	.facility { width: 40%;}
	a[href^="tel:"] {
	    pointer-events: none;
	    text-decoration: none;
	}
}

@media only screen and (min-width : 670px) {	/*670px*/
	.footer-name {
		width: 45%;
		float: left;
	}
	.area {
		width: 55%;
		float: right;
	}
/*	.footer-box { display: none; } */
	.inner_footer {
		margin: 0 20px;
	}

}

@media only screen and (min-width: 900px) {	/*900px*/
}
@media only screen and (min-width: 1210px) {	/*1210px*/
	.inner_footer {
		width: 1200px;
		margin: 0 auto;
/*		display: inline-block;*/
	}

}
@media print {
  *,
  *::before,
  *::after {
	text-shadow: none !important;
	box-shadow: none !important;
  }
  a:not(.btn) {
	text-decoration: underline;
  }
  abbr[title]::after {
	content: " (" attr(title) ")";
  }
  pre {
	white-space: pre-wrap !important;
  }
  pre,
  blockquote {
	border: 1px solid #adb5bd;
	page-break-inside: avoid;
  }
  thead {
	display: table-header-group;
  }
  tr,
  img {
	page-break-inside: avoid;
  }
  p,
  h2,
  h3 {
	orphans: 3;
	widows: 3;
  }
  h2,
  h3 {
	page-break-after: avoid;
  }
  @page {
	size: a3;
  }
  body {
	min-width: 992px !important;
  }
  .container {
	min-width: 992px !important;
  }
  .navbar {
	display: none;
  }
  .badge {
	border: 1px solid #000;
  }
  .table {
	border-collapse: collapse !important;
  }
  .table td,
  .table th {
	background-color: #fff !important;
  }
  .table-bordered th,
  .table-bordered td {
	border: 1px solid #dee2e6 !important;
  }
  .table-dark {
	color: inherit;
  }
  .table-dark th,
  .table-dark td,
  .table-dark thead th,
  .table-dark tbody + tbody {
	border-color: #dee2e6;
  }
  .table .thead-dark th {
	color: inherit;
	border-color: #dee2e6;
  }
	nav, .btn, .sub, .mob-contents, .link-area { display: none; }
	.site-header {
		position: inherit;
		border: none;
	}
	.content {
		 margin: 10px 0;
	}
	footer { background: none; color: #333; border-top: 1px dotted #333; }
	.no-print { display: none; }
	.print_only { display: block; margin:60px 0; }
	.print_only ul.slides { 
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		align-content: flex-start;
		gap: 20px;
	}
	.print_only ul.slides li { width: 49%; }
	.print_only ul.slides li img  { width: 100%; }
	.product {
	    display: flex;
	    justify-content: space-between;
	    align-content: flex-start;
	}
}
