/*------------------------------------------- contents common ---*/
main h2 {
	font-size: 2.375rem;
	font-weight: bold;
	line-height: 1.2;
	margin-bottom: 25px;
	color: #16233f;
}
main h3 {
	font-size: 1.5rem;
	font-weight: bold;
	color: #16233f;
	position: relative;
	line-height: 1.5;
	margin-bottom: 30px;
}
main h3:before {
	content: "";
	width: 35px;
	height: 1px;
	background-color: #16233f;
	position: absolute;
	left: -50px;
	top: 18px;
}
@media screen and (max-width: 999px) {
	main h3:before {
		height: 0;
	}
}
@media screen and (max-width: 479px) {
	main h2 {
		font-size: 1.875rem;
	}
}
/*------------------------------------------- title ---*/
#title {
	/* height: 300px; */
	height: 200px;
	position: relative;
	background: url(../images/mainvisual.jpg) center center no-repeat;
	background-size: cover;
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-pack: center;
	-webkit-justify-content: center;
	justify-content: center;
	-ms-flex-align: center;
	-webkit-align-items: center;
	align-items: center;
}
#title h2 {
	text-align: center;
	color: #fff;
	margin-bottom: 0;
	text-shadow: 0px 0px 10px black ;
}
#title h2 span {
	display: block;
	font-size: 1.125rem;
}
#title ol {
	position: absolute;
	left: 50px;
	bottom: 20px;
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
}
#title li {
	font-size: 0.875rem;
	font-weight: bold;
	line-height: 1em;
	padding-right: 2em;
	position: relative;
	color: #fff;
}
#title li:after {
	position: absolute;
	right: 0.5em;
	content: ">";
}
#title li:last-of-type:after {
	content: "";
}
#title li a {
	color: #fff;
	opacity: 1;
}
#title li span {
	opacity: .7;
}
@media screen and (max-width: 999px) {
	#title ol {
		left: 2%;
	}
}
@media screen and (max-width: 767px) {
	#title {
		height: 200px;
	}
	#title ol {
		width: 98%;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		-ms-overflow-style: none;/* IE, Edge 対応 */
		scrollbar-width: none;/* Firefox 対応 */
	}
	#title ol::-webkit-scrollbar {/* Chrome, Safari 対応 */
		display:none;
	}
	#title ol li {
		white-space: nowrap;
	}
}
@media screen and (max-width: 479px) {
	#title {
		height: 150px;
	}
	#title ol {
		display: none;
	}
}

/*------------------------------------------- products ---*/
#products {
	padding: 100px 0;
}

main #products h2:first-of-type {
	margin-top: 0;
}
#products ul {
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-wrap:wrap;
	-webkit-flex-wrap:wrap;
	flex-wrap:wrap;
}
#products li {
	/* width: 22%;
	margin-right: 4%; */
	width: 20%;
	/* margin-bottom: 80px; */
	margin-bottom: 30px;
	box-sizing: border-box;
}
/* #products li:nth-of-type(4n) {
	margin-right: 0;
} */
#products li dt {
	margin-bottom: 10px;
}
#products li dt figure {
	/* border: 1px solid #ccc; */
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	border-left: 1px solid #ccc;
	position: relative;
	display: block;
	text-align: center;
	box-sizing: border-box;
	transition: all .3s ease;
}
#products li:nth-child(5n) dt figure,
#products li:last-child dt figure {
	border-right: 1px solid #ccc;
}
#products li a:hover figure:after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background-color: #006abc;
	transition: all .3s ease;
}
#products li dt img {
	max-width: 350px;
}
#products li dd {
	font-size: 1.25rem;
	color: #333;
	font-weight: bold;
	line-height: 1.2;
}
#products li dd span {
	display: block;
	font-family: 'Lato',sans-serif;
	font-size: 1rem;
	font-weight: bold;
	color: #006abc;
}
#products li dd em {
	display: block;
	font-family: 'Lato',sans-serif;
	font-size: 0.75rem;
	font-weight: normal;
	color: #666;
	margin-top: 3px;
}
.load-more {
	width: 200px;
	height: 48px;
	line-height: 48px;
	font-size: 18px;
	font-weight: 900;
	background-color: #16233f;
	color: #FFF;
	border: none;
	cursor: pointer;
	position: relative;
	display: block;
}
.load-more:hover {
	background-color: #006abc;
}

.load-more img {
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    width: 8px;
    height: 12px;
}

.load-more:hover img {
    right: 15px;
	transition: all 0.3s;
}
.entry-loading {
	display: none;
	font-weight: 900;
	color: #16233f;
}
.entry-loading.is-show {
	display: block;
}

.product-list ins {
    display: block;
    font-size: 0.875rem;
    font-weight: bold;
    color: #999;
    line-height: 1.5em;
}
@media screen and (max-width: 1499px) {
	/* #products li {
		width: 23%;
		margin-right: calc(8% / 3);
	} */
}
@media screen and (max-width: 1399px) {
	#products li {
		width: calc( 100% / 3 );
	}
	#products li:nth-child(5n) dt figure {
		border-right: unset;
	}
	#products li:nth-child(3n) dt figure,
	#products li:last-child dt figure {
		border-right: 1px solid #CCC;
	}
}
@media screen and (max-width: 1199px) {
	#products li {
		/* width: 31%;
		margin-right: calc(7% / 2); */
		width: 48%;
		margin-right: 4%;
	}
	#products li:nth-child(3n) {
		margin-right: 4%;
	}
	#products li:nth-child(2n) {
		margin-right: 0;
	}
	/* #products li:nth-of-type(4n) {
		margin-right: calc(7% / 2);
	} 
	#products li:nth-of-type(3n) {
		margin-right: 0;
	}*/
	#products li dt figure,
	#products li:nth-child(2n) dt figure,
	#products li:last-child dt figure {
		border-right: 1px solid #CCC;
	}
}



@media screen and (max-width: 666px) {
	/* #products li {
		width: 48%;
		margin-right: 4%;
	}
	#products li:nth-of-type(3n) {
		margin-right: 4%;
	} */
}
@media screen and (max-width: 479px) {
	#products {
		padding: 80px 0;
	}
	#products li {
		margin-bottom: 10%;
	}
	#products li dd {
		font-size: 0.875rem;
	}
	#products li dd span {
		font-size: 0.75rem;
	}
	.load-more {
		width: 100%;
	}
}

#sppage {
	margin-bottom: 100px;
}
#sppage ul {
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-wrap:wrap;
	-webkit-flex-wrap:wrap;
	flex-wrap:wrap;
	margin: 0 -50px;
}
#sppage li {
	width: 25%;
	border-right: 1px solid #ccc;
	box-sizing: border-box;
	line-height: 1.3;
}
#sppage li:nth-of-type(4n) {
	border-right: 0;
}
#sppage li a {
	box-sizing: border-box;
	display: block;
	font-size: 1.25rem;
	font-weight: bold;
	height: 100%;
	padding: 10%;
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-align: center;
	-webkit-align-items: center;
	align-items: center;
	color: #333;
}
#sppage li a:hover {
	background-color: #f3f3f3;
	color: #16233f;
}
@media screen and (max-width: 999px) {
	#sppage ul {
		margin: 0;
		border-left: 1px solid #ccc;
	}
	#sppage li {
		width: 50%;
	}
	#sppage li {
		width: 50%;
	}
}
@media screen and (max-width: 767px) {
	#sppage li a {
		font-size: 1rem;
	}
}
@media screen and (max-width: 479px) {
	#sppage {
		margin-bottom: 80px;
	}
	#sppage ul {
		border-bottom: 0;
	}
	#sppage li {
		width: 100%;
		border-bottom: 1px solid #ccc;
	}
	#sppage li a {
		padding: 20px;
	}
}
/*------------------------------------------- products_detail ---*/
#products_detail {
	width: 100%;
	position: relative;
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	margin-bottom: 100px;
}
.fixedsticky { top: 0; }
#products_detail .left {
	width: 60%;
	box-sizing: border-box;
	padding: 100px 50px 0 50px;
	margin-right: auto;
	margin-bottom: -50px;
	background-color: #fff;
}
#products_detail .left h2 em {
	display: block;
	font-size: 2rem;
	color: #006abc;
	line-height: 1em;
	margin-bottom: 5px;
}
#products_detail .left h2 ins {
	display: block;
	font-size: 1rem;
	color: #999;
	line-height: 1em;
}
#products_detail .left h2 span {
	display: inline-block;
	background-color: #006abc;
	font-size: 0.875rem;
	color: #fff;
	padding: 5px;
}
#products_detail .left .explain p {
	line-height: 2.5;
}
#products_detail .left .link li {
	margin-bottom: 10px;
}
#products_detail .left .link li:last-of-type {
	margin-bottom: 0;
}
#products_detail .left .link li a {
	display: inline-block;
	font-weight: bold;
	color: #fff;
	font-size: 0.875rem;
	background-color: #16233f;
	padding: 15px;
	line-height: 1.3;
}
#products_detail .left .link li a:hover {
	background-color: #006abc;
}

#products_detail .spec {
	margin-top: 100px;
}
#products_detail h4 {
	font-size: 1.125rem;
	font-weight: bold;
	color: #006abc;
}
#products_detail .feature {
	margin-bottom: 30px;
}
#products_detail .feature li {
	line-height: 1.5;
	padding: 8px 0 8px 30px;
	position: relative;
}
#products_detail .feature li:before {
	content: "";
	width: 8px;
	height: 8px;
	background-color: #006abc;
	position: absolute;
	left: 0;
	top: 15px;
}
#products_detail .feature img {
	width: auto;
	max-width: 100%;
}
.table01 table {
	margin-bottom: 50px;
}
.table01 tr {
	width: 100%;
}
.table01 th {
	width: 160px;
	box-sizing: border-box;
	padding: 20px 2em 20px 0;
	text-align: left;
	font-weight: bold;
	border-bottom: 1px solid #ddd;
	line-height: 1.5;
	vertical-align: top;
}
.table01 td {
	width: calc(100% - 160px);
	box-sizing: border-box;
	padding: 20px 1em 20px 0;
	border-bottom: 1px solid #ddd;
	line-height: 1.5;
	vertical-align: top;
}
.table01 img {
	width: auto;
	max-width: 100%;
}
.table02 {
	width: 100%;
	margin-bottom: 50px;
}
.table02 table {
	display: block;
	overflow-x: auto;
	white-space: nowrap;
	-webkit-overflow-scrolling: touch;
	border-top: 1px solid #ddd;
	border-left: 1px solid #ddd;
	box-sizing: border-box;
	width: 100%;
}
.table02 tbody {
	width: 100%;
}
.table02 tr {
	width: 100%;
}
.table02 th {
	white-space: nowrap;
	font-size: 0.875rem;
	box-sizing: border-box;
	padding: 5px;
	text-align: center;
	font-weight: bold;
	border-bottom: 1px solid #ddd;
	border-right: 1px solid #ddd;
	line-height: 1.5;
	background-color: #16233f;
	width: 100px;
	color: #fff;
}
.table02 td {
	text-align: center;
	font-size: 0.875rem;
	box-sizing: border-box;
	padding: 5px;
	border-right: 1px solid #ddd;
	border-bottom: 1px solid #ddd;
	line-height: 1.5;
	width: 70px;
}
.table02 tr:nth-of-type(2n) td {
	background-color: #f3f3f3;
}
.paragraph_upper,
.paragraph_lower,
.paragraph_upper p,
.paragraph_lower p {
	line-height: 1.5;
	font-size: 0.875rem;
	margin: 0;
}

#products_detail .right {
	width: 40%;
	background-color: #f3f3f3;
	padding-top: 50px;
}
#products_detail .right div.fixedsticky {
	width: 100%;
	box-sizing: border-box;
	padding: 50px;
}
#products_detail .right ul.image > li > figure {
	border: 1px solid #ccc;
	margin-bottom: 50px;
}
#products_detail .right ul.image ul {
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-wrap:wrap;
	-webkit-flex-wrap:wrap;
	flex-wrap:wrap;
	width: 100%;
	margin-bottom: 50px;
}
#products_detail .right ul.image ul li {
	border: 1px solid #ccc;
	box-sizing: border-box;
	width: 45%;
	margin-bottom: 50px;
}
#products_detail .right ul.image ul li:nth-of-type(2n-1) {
	margin-right: 10%;
}
#products_detail .right .movie_content {
	margin-bottom: 50px;
}
#products_detail .right h4 {
	font-size: 1rem;
	font-weight: bold;
}
#products_detail .right .movie {
	position: relative;
	width: 100%;
}
#products_detail .right .movie:before {
	content:"";
	display: block;
	padding-top: 68.8%;;
}
#products_detail .right .movie iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
#products_detail .right p {
	font-size: 0.875rem;
	line-height: 1.5;
	margin-bottom: 0;
}

#same_category {
	padding: 0 50px 100px 50px;
}
#same_category h3 {
	color: #16233f;
	font-weight: bold;
	font-size: 1.75rem;
	text-align: center;
	line-height: 1;
	margin-bottom: 20px;
}
#same_category h3:before {
	height: 0;
}
#same_category ul {
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-wrap:wrap;
	-webkit-flex-wrap:wrap;
	flex-wrap:wrap;
	border-left: 1px solid #ccc;
	box-sizing: border-box;
}
#same_category li {
	width: 20%;
	text-align: center;
	border-top: 1px solid #ccc;
	border-right: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	box-sizing: border-box;
	font-size: 0.875rem;
	line-height: 1.5;
}
#same_category li a {
	display: block;
	height: 100%;
	box-sizing: border-box;
	color: #333;
	position: relative;
	padding: 4% 8% 2% 8%;
	font-weight: bold;
}
#same_category li a:hover:after {
	content: "";
	width: 100%;
	height: 2px;
	position: absolute;
	bottom: 0;
	left: 0;
	background-color: #006abc;
}
#same_category li a em {
	display: block;
	color: #006abc;
}
#same_category li a ins {
	display: block;
	font-weight: normal;
	font-size: 0.75rem;
	color: #666;
}

@media screen and (max-width: 1399px) {
	#products_detail {
		display: block;
	}
	#products_detail .left {
		width: 100%;
		padding: 100px 50px;
	}
	#products_detail .right {
		width: 100%;
	}
	#products_detail .right ul.image > li {
		max-width: 500px;
		margin: 0 auto;
	}
	#products_detail .right .movie {
		max-width: 550px;
		margin: 0 auto;
	}
	#products_detail .right h4 {
		max-width: 550px;
		margin: 0 auto;
	}
	#products_detail .right p {
		max-width: 550px;
		margin: 0 auto;
	}
}
@media screen and (max-width: 1199px) {
	#same_category li {
		width: calc(100% / 3);
		border-top: 0;
	}
	#same_category li:first-of-type,
	#same_category li:nth-of-type(2),
	#same_category li:nth-of-type(3) {
		border-top: 1px solid #ccc;
	}
}
@media screen and (max-width: 999px) {
	#products_detail .left {
		padding: 100px 0;
		width: 96%;
		margin: 0 auto;
	}
	#products_detail .right {
		padding: 50px 0;
		width: 96%;
		margin: 0 auto;
	}
	#products_detail .right div {
		padding: 0;
	}
	#same_category {
		padding: 0 0 100px 0;
		width: 96%;
		margin: 0 auto;
	}

}
@media screen and (max-width: 699px) {
	#same_category li {
		width: 50%;
	}
	#same_category li:nth-of-type(3) {
		border-top: 0;
	}
}
@media screen and (max-width: 479px) {
	#products_detail {
		margin-bottom: 80px;
	}
	#products_detail .left {
		padding: 80px 0;
	}
	#products_detail .left h2 em {
		font-size: 1.5rem;
	}
	#products_detail .left h2 ins {
		font-size: 1rem;
	}
	.table01 th {
		display: block;
		width: 100%;
		padding: 1em 0 0 0;
		border-bottom: 0;
	}
	.table01 td {
		display: block;
		width: 100%;
		padding: 0 0 1em 0;
	}
	#products_detail .right div.fixedsticky {
		padding: 20px;
	}
	#same_category {
		padding: 0 0 80px 0;
	}
}

/*------------------------------------------- company ---*/
#greeting {
	margin: 100px 0;
}
#greeting .inner {
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-pack:justify;
	-webkit-justify-content: space-between;
	justify-content:space-between;
	-ms-flex-wrap:wrap;
	-webkit-flex-wrap:wrap;
	flex-wrap:wrap;
}
#greeting h2 {
	width: 100%;
}
#greeting .left {
	width: calc(100% - 750px);
}
#greeting .right {
	width: 650px;
	background-color: #f3f3f3;
	box-sizing: border-box;
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-pack: center;
	-webkit-justify-content: center;
	justify-content: center;
	-ms-flex-align: center;
	-webkit-align-items: center;
	align-items: center;
	padding: 55px 0;
}
#greeting .right dl {
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-align: center;
	-webkit-align-items: center;
	align-items: center;
	margin-bottom: 40px;
}
#greeting .right dl:nth-of-type(3) {
	margin-bottom: 0;
}
#greeting .right dt {
	width: 62px;
	height: 62px;
	margin: 0 30px 0 0;
	background-color: #006abc;
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-pack: center;
	-webkit-justify-content: center;
	justify-content: center;
	-ms-flex-align: center;
	-webkit-align-items: center;
	align-items: center;
}
#greeting .right dl:first-of-type dt img {
	width: 33.19px;
	height: 34.5px;
}
#greeting .right dl:nth-of-type(2) dt img {
	width: 34px;
	height: 34px;
}
#greeting .right dl:nth-of-type(3) dt img {
	width: 46px;
	height: 34px;
}
#greeting .right dd {
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight:600;
	font-size: 1.4375rem;
	line-height: 1;
	white-space: nowrap;
}
#greeting .right dd span {
	display: block;
	font-weight: bold;
	font-size: 1.125rem;
	font-family: 'Lato',sans-serif;
	color: #006abc;
	line-height: 1;
	margin-top: 12px;
}
@media screen and (max-width: 1599px) {
	#greeting .left {
		width: calc(100% - 600px);
	}
	#greeting .right {
		width: 550px;
	}
}
@media screen and (max-width: 1399px) {
	#greeting .inner {
		display: block;
	}
	#greeting .left {
		width: 100%;
		margin-bottom: 50px;
	}
	#greeting .right {
		width: 100%;
	}
}
@media screen and (max-width: 999px) {
	#greeting .right div {
		margin: 0 30px;
	}
}
@media screen and (max-width: 599px) {
	#greeting .right div {
		margin: 0 20px;
		width: 100%;
		box-sizing: border-box;
	}
	@media all and (-ms-high-contrast:none){
		*::-ms-backdrop, #greeting .right div { overflow-x: hidden; } /* IE11 */
	}
	#greeting .right dt {
		width: 10%;
		height: auto;
		margin-right: 20px;
		position: relative;
	}
	#greeting .right dt:before {
		content: "";
		display: block;
		padding-top: 100%;
	}
	#greeting .right dl:first-of-type dt img {
		width: 53.53%;
		height: auto;
	}
	#greeting .right dl:nth-of-type(2) dt img {
		width: 54.83%;
		height: auto;
	}
	#greeting .right dl:nth-of-type(3) dt img {
		width: 74.19%;
		height: auto;
	}
	#greeting .right dd {
		font-size: 4vw;
	}
	#greeting .right dd span {
		margin-top: 0.66666em;
		font-size: 3vw;
	}
}
@media screen and (max-width: 479px) {
	#greeting {
		margin: 80px 0;
	}
	#greeting .right div {
		margin: 0 2vw;
	}
	#greeting .right dt {
		width: 15%;
		margin-right: 10px;
	}
	#greeting .right dd {
		font-size: 4.2vw;
	}
	#greeting .right dd span {
		margin-top: 0.66666em;
		font-size: 3vw;
	}
}

#outline {
	margin-bottom: 100px;
}
#outline th {
	width: 240px;
	box-sizing: border-box;
	padding: 20px 2em 20px 10px;
	text-align: left;
	font-weight: bold;
	border-bottom: 1px solid #ddd;
	line-height: 1.5;
	vertical-align: top;
}
#outline td {
	width: calc(100% - 240px);
	box-sizing: border-box;
	padding: 20px 1em 20px 0;
	border-bottom: 1px solid #ddd;
	line-height: 1.5;
	vertical-align: top;
}
@media screen and (max-width: 767px) {
	#outline th {
		width: 180px;
	}
	#outline td {
		width: calc(100% - 180px);
	}
}
@media screen and (max-width: 479px) {
	#outline {
		margin-bottom: 80px;
	}
	#outline th {
		display: block;
		width: 100%;
		padding: 20px 2em 0 0;
		border-bottom: 0;
	}
	#outline td {
		display: block;
		width: 100%;
		padding: 0 0 20px 0;
	}
}

#sales {
	margin-bottom: 100px;
}
#sales li {
	line-height: 1.5;
	padding: 8px 0 8px 30px;
	position: relative;
}
#sales li:before {
	content: "";
	width: 8px;
	height: 8px;
	background-color: #006abc;
	position: absolute;
	left: 11px;
	top: 15px;
}
@media screen and (max-width: 479px) {
	#sales {
		margin-bottom: 80px;
	}
}

#environmental_policy {
	margin-bottom: 100px;
}
#environmental_policy p {
	margin-bottom: 50px;
}
#environmental_policy ol {
	counter-reset: number 0;/* number のカウンタを 0 にセット */
}
#environmental_policy li {
	line-height: 1.5;
	padding: 8px 0 8px 30px;
	position: relative;
}
#environmental_policy li:before {
	content: "";
	width: 19px;
	height: 19px;
	background-color: #006abc;
	position: absolute;
	left: 0px;
	top: 10px;
	counter-increment: number 1;/* number カウンタの増加数をセット */
	content: counter(number) " ";/* 表示形式を指定 */
	color: #fff;
	line-height: 19px;
	text-align: center;
}
@media all and (-ms-high-contrast:none){
	#environmental_policy li:before { line-height: 1.5;} /* IE11 */
}
@media screen and (max-width: 479px) {
	#environmental_policy {
		margin-bottom: 80px;
	}
}


/*------------------------------------------- service_detail ---*/
#service_detail {
	margin: 100px 0;
}

#service_detail .uptxt{
	margin-bottom: 150px;
}


#service_detail h3 {
	margin-top: 80px;
}
#service_detail .service_box {
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-pack:justify;
	-webkit-justify-content: space-between;
	justify-content:space-between;
	margin-bottom: 150px;
}
#service_detail .service_box div {
	/* width: 44%; */
	width: 70%;
}
#service_detail .service_box figure {
	/* width: 46%; */
	width: 20%;
}
#service_detail nav {
	background-color: #f3f3f3;
	position: relative;
}
#service_detail h3 {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%,-50%);
	font-size: 1.875rem;
	margin: 0;
	color: #16233f;
	text-align: center;
}
#service_detail h3:before {
	display: none;
}
#service_detail ul {
	background-color: #f3f3f3;
	padding: 60px 60px 50px 60px;
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-wrap:wrap;
	-webkit-flex-wrap:wrap;
	flex-wrap:wrap;
}
#service_detail nav li {
	width: 18.8%;
	margin-right: 1.5%;
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	flex-direction:column;
	margin-bottom: 10px;
}
#service_detail nav li:nth-of-type(5n) {
	margin-right: 0%;
}
#service_detail nav li a {
	color			: #fff;
	display			: block;
	background-color: #16233f;
	padding			: 1rem 0.5rem;
	line-height		: 1.5;
	display			:-ms-flexbox;
	display			:-webkit-flex;
	display			: flex;
	flex-direction	:column;
	-ms-flex-pack	: center;
	-webkit-justify-content: center;
	justify-content	: center;
	-ms-flex-align	: center;
	-webkit-align-items: center;
	align-items		: center;
	flex-grow		:1
}
#service_detail nav li a:hover {
	background-color: #006abc;
}

@media screen and (max-width: 1499px) {
	#service_detail ul {
		padding: 40px 40px 30px 40px;
	}
	#service_detail nav li {
		width: 30%;
		margin-right: 5%;
	}
	#service_detail nav li:nth-of-type(5n) {
		margin-right: 5%;
	}
	#service_detail nav li:nth-of-type(3n) {
		margin-right: 0%;
	}
}
@media screen and (max-width: 1199px) {
	#service_detail .service_box {
		display: block;
	}
	#service_detail .service_box div {
		width: 100%;
		margin-bottom: 50px;
	}
	#service_detail .service_box figure {
		width: 100%;
	}
	#service_detail nav li {
		width: 47.5%;
		margin-right: 5%;
	}
	#service_detail nav li:nth-of-type(5n) {
		margin-right: 5%;
	}
	#service_detail nav li:nth-of-type(3n) {
		margin-right: 5%;
	}
	#service_detail nav li:nth-of-type(2n) {
		margin-right: 0%;
	}
}
@media screen and (max-width: 599px) {
	#service_detail ul {
		padding: 40px 20px 10px 20px;
	}
}
@media screen and (max-width: 479px) {
	#service_detail ul {
		display: block;
	}
	#service_detail nav li {
		width: 100%;
		margin-right: 0;
	}
}



/*------------------------------------------- partners ---*/
#partners {
	margin: 100px 0;
}
#partners p {
	line-height: 2.5;
	margin-bottom: 100px;
}
#partners ul {
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-wrap:wrap;
	-webkit-flex-wrap:wrap;
	flex-wrap:wrap;
}
#partners li {
	width: 22%;
	margin: 0 4% 90px 0;
}
#partners li:nth-of-type(4n) {
	margin: 0 0 90px 0;
}
#partners li figure {
	box-sizing: border-box;
	border: 1px solid #ccc;
	position: relative;
	transition: all .3s ease;
}
#partners li a:hover figure:after {
	position: absolute;
	top: 0;
	left: 0;
	height: 0;
	content: "";
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	border: 2px solid #333;
	transition: all .3s ease;
}
#partners dt {
	font-family: 'Lato',"Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体",sans-serif;
	font-weight: 900;
	color: #333;
	line-height: 1.5;
	margin: 0.5em 0;
}
#partners dt span {
	font-family: "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体",sans-serif;
	font-weight: bold;
	font-size: 0.875rem;
}
#partners dd {
	font-size: 0.875rem;
	line-height: 1.5;
	color: #333;
}
@media screen and (max-width: 1499px) {
	#partners li {
		width: 23%;
		margin-right: calc(8% / 3);
	}
	#partners dt span {
		display: block;
	}
}
@media screen and (max-width: 1399px) {
	#partners li {
		width: 30%;
		margin-right: 5%;
	}
	#partners li:nth-of-type(4n) {
		margin-right: 5%;
	}
	#partners li:nth-of-type(3n) {
		margin-right: 0;
	}
}
@media screen and (max-width: 767px) {
	#partners li {
		width: 45%;
		margin-right: 10%;
	}
	#partners li:nth-of-type(3n) {
		margin-right: 10%;
	}
	#partners li:nth-of-type(2n) {
		margin-right: 0;
	}
}
@media screen and (max-width: 479px) {
	#partners {
		margin: 80px 0;
	}
	#partners p {
		line-height: 2;
		margin-bottom: 80px;
	}
	#partners li {
		width: 48%;
		margin-right: 4%;
		margin-bottom: 50px;
	}
	#partners li:nth-of-type(3n) {
		margin-right: 4%;
	}
	#partners li:nth-of-type(2n) {
		margin-right: 0;
	}
}

/*------------------------------------------- recruit ---*/
#recruit {
	margin: 100px 0;
}
#recruit p {
	margin-bottom: 75px;
}
#recruit table {
	margin-bottom: 50px;
}
#recruit th {
	width: 240px;
	box-sizing: border-box;
	padding: 20px 2em 20px 10px;
	text-align: left;
	font-weight: bold;
	border-bottom: 1px solid #ddd;
	line-height: 1.5;
	vertical-align: top;
}
#recruit td {
	width: calc(100% - 240px);
	box-sizing: border-box;
	padding: 20px 1em 20px 0;
	border-bottom: 1px solid #ddd;
	line-height: 1.5;
	vertical-align: top;
}
#recruit p.btn {
	width: 200px;
	margin: 0 auto 0 0;
}
#recruit p.btn a {
	display: block;
	width: 100%;
	height: 48px;
	line-height: 48px;
	font-size: 0.75rem;
	font-weight: 900;
	color: #fff;
	text-align: center;
	background-color: #16233f
}
#recruit p.btn a:hover {
	background-color: #006abc;
}
@media screen and (max-width: 767px) {
	#recruit th {
		width: 180px;
	}
	#recruit td {
		width: calc(100% - 180px);
	}
	#recruit p.btn {
		width: 300px;
		margin: 0 auto;
	}
}
@media screen and (max-width: 479px) {
	#recruit {
		margin: 80px 0;
	}
	#recruit th {
		display: block;
		width: 100%;
		padding: 20px 2em 0 0;
		border-bottom: 0;
	}
	#recruit td {
		display: block;
		width: 100%;
		padding: 0 0 20px 0;
	}
	#recruit p.btn {
		width: 100%;
	}
}

/*------------------------------------------- newst ---*/
#news {
	margin: 100px 0;
}
#news ul {
	margin-bottom: 100px;
}
#news ul li {
	font-weight: bold;
	font-size: 1.125rem;
	border-bottom: 1px solid #ccc;
	line-height: 1.5;
}
#news ul li a,
#news ul li span {
	display: block;
	padding: 22px 40px 22px 0;
	color: #333;
	position: relative;
}
#news ul li a:after {
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	content: "";
	width: 11px;
	height: 16px;
	background: url(../images/arrow_link.png) center center no-repeat;
	transition: all .3s ease;
}
#news ul li a:hover {
	color: #006abc;
}
#news ul li a:hover:after {
	right: 10px;
	transition: all .3s ease;
}
#news ul li time {
	font-size: 1rem;
	color: #006abc;
	display: block;
	line-height: 1;
	margin-bottom: 10px;
}
#news nav ol,
#products nav ol {
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-pack: center;
	-webkit-justify-content: center;
	justify-content: center;
	padding: 0;
}
#news nav ol li,
#products nav ol li {
	font-family: 'Lato',sans-serif;
	font-weight: 900;
	font-size: 1.125rem;
	width: 40px;
	line-height: 40px;
	margin: 0 2px;
	text-align: center;
}
#news nav ol li.prev,
#products nav ol li.prev {
	margin: 0 2px 0 0;
	position: relative;
}
#news nav ol li.next,
#products nav ol li.next {
	margin: 0 0 0 2px;
	position: relative;
}
#news nav ol li.prev:after,
#news nav ol li.next:after,
#products nav ol li.prev:after,
#products nav ol li.next:after {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	content: "";
	width: 11px;
	height: 16px;
	display: block;
	pointer-events: none;
}
#news nav ol li.prev:after,
#products nav ol li.prev:after {
	background: url(../images/arrow_prev.png) center center no-repeat;
}
#news nav ol li.next:after,
#products nav ol li.next:after {
	background: url(../images/arrow_next.png) center center no-repeat;
}
#news nav ol li a,
#products nav ol li a {
	display: block;
	height: 40px;
	box-sizing: border-box;
	border: 1px solid #16233f;
	text-align: center;
	color: #fff;
	background-color: #16233f;
}
#news nav ol li span,
#products nav ol li span {
	display: block;
	border: 1px solid #16233f;
	text-align: center;
	color: #16233f;
	background-color: #fff;	
	box-sizing: border-box;
	width: 40px;
	height: 40px;
}
#news nav ol li a:hover,
#products nav ol li a:hover {
	background-color: #006abc;
}

@media screen and (max-width: 479px) {
	#news {
		margin: 80px 0;
	}
	#news ul {
		margin-bottom: 80px;
	}
}

/*------------------------------------------- news_detail ---*/
#news_detail {
	margin: 100px 0;
}
#news_detail h2 {
	font-size: 1.875rem;
}
#news_detail h2 time {
	display: block;
	font-size: 1rem;
	font-weight: bold;
	color: #006abc;
}
#news_detail div {
	margin-bottom: 50px;
}
#news_detail div h3 {
	margin-top: 50px;
	margin-bottom: 15px;
}
#news_detail div h4 {
	font-size: 1.125rem;
	font-weight: bold;
	color: #006abc;
}
#news_detail div img {
	width: auto;
}
#news_detail div table {
	width: 100%;
	box-sizing: border-box;
	margin: 0 0 1.5em 0;
	border-top:1px solid #ccc;
	border-left:1px solid #ccc;
}
#news_detail div th,
#news_detail div td {
	border-bottom:1px solid #ccc;
	border-right:1px solid #ccc;
	padding: 5px 10px;
	line-height: 1.5;
	box-sizing: border-box;
	word-break: break-all;
}
#news_detail div ul {
	padding: 0;
	margin: 0 0 1.5em 0;
}
#news_detail div ol {
	padding: 0;
	margin: 0 0 1.5em 0;
	counter-reset: number 0;
}
#news_detail div ul li {
	line-height: 1.5;
    padding: 8px 0 8px 30px;
    position: relative;
}
#news_detail div ul li:before {
    content: "";
    width: 8px;
    height: 8px;
    background-color: #006abc;
    position: absolute;
    left: 0;
    top: 15px;
}
#news_detail div ol li {
	line-height: 1.5;
    padding: 8px 0 8px 30px;
    position: relative;
}
#news_detail div ol li:before {
	content: "";
	width: 19px;
	height: 19px;
	background-color: #006abc;
	position: absolute;
	left: 0px;
	top: 10px;
	counter-increment: number 1;
	content: counter(number) " ";
	color: #fff;
	line-height: 19px;
	text-align: center;
}
@media all and (-ms-high-contrast:none){
	*::-ms-backdrop, #news_detail div ol li:before { line-height: 1.5;} /* IE11 */
}
#news_detail div blockquote {
	background: #f3f3f3;
	padding: 20px;
	display:block;
	margin:1em 0;
}
#news_detail div blockquote p {
	margin-bottom:0;
}
#news_detail div a {
	color:#006abc;
	text-decoration:underline;
}
#news_detail div a:hover {
	color:#333;
	text-decoration:none;
}
#news_detail div img.alignleft {
	float: left;
	margin: 0 50px 20px 0;
}
#news_detail div img.aligncenter {
	clear:both;
	display:block;
	margin:auto auto 20px auto;
}
#news_detail div img.alignright {
	float: right;
	margin: 0 0 20px 50px;
}
#news_detail p.btn {
	width: 200px;
	margin: 0 auto 0 0;
}
#news_detail p.btn a {
	display: block;
	width: 100%;
	height: 48px;
	line-height: 48px;
	font-size: 0.75rem;
	font-weight: 900;
	color: #fff;
	text-align: center;
	background-color: #16233f
}
#news_detail p.btn a:hover {
	background-color: #006abc;
}

@media screen and (max-width: 767px) {
	#news_detail p.btn {
		width: 300px;
		margin: 0 auto;
	}
}
@media screen and (max-width: 479px) {
	#news_detail {
		margin: 80px 0;
	}
	#news_detail h2 {
		font-size: 1.75rem;
	}
	#news_detail div img {
		width: 100%;
		height: auto;
	}
	#news_detail div img.alignleft {
		float: none;
		clear:both;
		display:block;
		margin: 0 auto 20px auto;
	}
	#news_detail div img.aligncenter {
		clear:both;
		display:block;
		margin:auto auto 20px auto;
	}
	#news_detail div img.alignright {
		float: none;
		clear:both;
		display:block;
		margin: 0 auto 20px auto;
	}
	#news_detail p.btn {
		width: 100%;
	}
	#news_detail div th,
	#news_detail div td {
		font-size: 0.875rem;
	}
}


/*------------------------------------------- contact ---*/
#contact {
	margin: 100px 0;
}
#contact table {
	margin-bottom: 80px;
}
#contact th {
	width: 240px;
	box-sizing: border-box;
	padding: 20px 2em 20px 10px;
	text-align: left;
	font-weight: bold;
	border-bottom: 1px solid #ddd;
	line-height: 1.5;
	vertical-align: middle;
	position: relative;
}
#contact th.top {
	vertical-align: top;
	padding-bottom: 30px 2em 30px 10px;
}
#contact th span {
	position: absolute;
	background-color: #04263f;
	color: #fff;
	font-size: 0.75rem;
	right: 30px;
	top: 50%;
    display: block;
    width: 46px;
    height: 24px;
    line-height: 24px;
    text-align: center;
    letter-spacing: 0.2em;
    transform: translateY(-50%);
}
#contact th.top span {
	top: 18px;
    transform: translateY(0);
}
#contact td {
	width: calc(100% - 240px);
	box-sizing: border-box;
	padding: 20px 1em 20px 0;
	border-bottom: 1px solid #ddd;
	line-height: 1.5;
	vertical-align: top;
}
#contact table input,
#contact table textarea,
#contact table select {
	border: 0;
	background-color: #f3f3f3;
	width: 100%;
	max-width: 800px;
	padding: 10px;
    box-sizing: border-box;
}
#contact table select#form-pref {
	max-width: 400px;
}
#contact .mwform-tel-field {
	display: block;
	max-width: 800px;
	width: 100%;
}
#contact .mwform-tel-field input {
	width: 8em;
}
#contact table .mwform-radio-field {
	display: block;
	margin-bottom: 5px;
}
.mw_wp_form .horizontal-item + .horizontal-item {
	margin-left: 0 !important;
}
#contact table input[type="radio"] {
	width: auto;
	border: 0;
	background-color: #f3f3f3;
}
#contact .send {
	text-align: center;
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-pack: center;
	-webkit-justify-content: center;
	justify-content: center;
}
#contact .send input {
	display: block;
	width: 200px;
	height: 48px;
	line-height: 48px;
	font-size: 0.75rem;
	font-weight: 900;
	color: #fff;
	text-align: center;
	background-color: #16233f;
	border: 1px solid #16233f;
	cursor: pointer;
	transition: all .2s ease;
	margin: 0 10px;
}
#contact .send input:hover {
	background-color: #006abc;
	border: 1px solid #006abc;
	transition: all .2s ease;
}
#contact p.btn {
	width: 300px;
	margin: 0 auto;
}
#contact p.btn a {
	display: block;
	width: 100%;
	height: 48px;
	line-height: 48px;
	font-size: 0.75rem;
	font-weight: 900;
	color: #fff;
	text-align: center;
	background-color: #16233f
}
#contact p.btn a:hover {
	background-color: #006abc;
}
@media screen and (max-width: 767px) {
	#contact th {
		width: 220px;
	}
	#contact th span,
	#contact th.top span {
		right: 20px;
	}
	#contact td {
		width: calc(100% - 220px);
	}
	#contact .mwform-tel-field input {
    width: calc((100% - 2.4em) / 3);
	}
	#contact .send input {
		width: 300px;
	}
}
@media screen and (max-width: 479px) {
	#contact {
		margin: 80px 0;
	}
	#contact th {
		display: block;
		width: 100%;
		padding: 20px 2em 0 0;
		border-bottom: 0;
	}
	#contact th span,
	#contact th.top span {
		top: auto;
		bottom: 2px;
		right: 0;
		transform: translateY(0);
	}
	#contact td {
		display: block;
		width: 100%;
		padding: 0 0 20px 0;
	}
	#contact .send input {
		width: 100%;
	}
	#contact p.btn {
		width: 100%;
	}
}

/*------------------------------------------- policy ---*/
#policy {
	margin: 100px 0;
}
#policy h3 {
	margin-top: 80px;
}
#policy li {
	line-height: 1.5;
	padding: 8px 0 8px 30px;
	position: relative;
}
#policy li:before {
	content: "";
	width: 8px;
	height: 8px;
	background-color: #006abc;
	position: absolute;
	left: 11px;
	top: 15px;
}
#policy blockquote {
	background-color: #f3f3f3;
	box-sizing: border-box;
	padding: 50px;
	margin: 80px 0 0 0;
}
#policy blockquote h3 {
	margin-top: 0;
}
#policy blockquote h3:before {
	height: 0;
}
#policy blockquote p {
	margin-bottom: 0;
}
@media screen and (max-width: 767px) {
	#policy blockquote {
		padding: 20px;
	}
	#policy blockquote h3 {
		font-size: 1.25rem;
		margin-bottom: 15px;
	}
}
@media screen and (max-width: 479px) {
	#policy {
		margin: 80px 0;
	}
	#policy h3 {
		margin-top: 50px; 
	}
	#policy blockquote {
		margin: 50px 0 0 0;
	}
}


/*------------------------------------------- link ---*/
#link {
	margin: 100px 0;
}
#link h3 {
	margin-top: 80px;
}
#link ul {
	width: 100%;
	/*display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-wrap:wrap;
	-webkit-flex-wrap:wrap;
	flex-wrap:wrap;*/
	box-sizing: border-box;
	border-top: 1px solid #ccc;
	border-left: 1px solid #ccc;
}
#link li {
	/*width: 50%;*/
	box-sizing: border-box;
	line-height: 1.5;
	border-bottom: 1px solid #ccc;
	border-right: 1px solid #ccc;
	word-wrap: break-word;
}
#link li a {
	display: block;
	display:-ms-flexbox;
	display:-webkit-flex;
	display: flex;
	-ms-flex-align: center;
	-webkit-align-items: center;
	align-items: center;
	-ms-flex-wrap:wrap;
	-webkit-flex-wrap:wrap;
	flex-wrap:wrap;
	word-wrap: break-word;
	padding: 35px 50px 35px 20px;
	box-sizing: border-box;
	height: 100%;
	color: #333;
	font-size: 1.125rem;
	font-weight: bold;
	position: relative;
}
#link li a:hover {
	color: #006abc;
}
#link li a:after {
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	content: "";
	display: block;
	width: 11px;
	height: 16px;
	background: url(../images/arrow_link.png) center center no-repeat;
	transition: all .3s ease;
}
#link li a:hover:after {
	right: 10px;
	transition: all .3s ease;
}
#link li a span {
	display: block;
	width: 100%;
	font-size: 0.875rem;
	color: #666;
	font-weight: normal;
}
@media screen and (max-width: 767px) {
	#link ul {
		display: block;
	}
	#link li {
		width: 100%;
	}
}
@media screen and (max-width: 479px) {
	#link {
		margin: 80px 0;
	}
	#link h3 {
		margin-top: 50px; 
	}
	#link li a {
		font-size: 1rem;
		padding: 20px 50px 20px 10px; 
	}
}

/*------------------------------------------- 20241106 ---*/
.prod-container{
	width: 100%;
	margin-bottom: 60px;
}

main #products h2{
	border-bottom: 5px solid #16233f;
	padding-left: 10px;
	padding-bottom: 0.5rem;
    border-left: 20px solid #16233f;
}

.prod-card{
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

.prod-card .prod-txt{
	width: 60%;
}

.prod-card figure{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 36%;
}

.prod-card figure img{
	width: calc( 33% - 5px );
	margin-left: 5px;
}
.prod-card figure img:first-of-type {
	margin-left: 0;
}

.prod-container a{
	background-color: #16233f;
	display: block;
    width: 200px;
    height: 48px;
    line-height: 48px;
    font-size: 18px;
    font-weight: 900;
    color: #fff;
    text-align: center;
	position: relative;
}

.prod-container a:hover {
    background-color: #006abc;
}

.prod-container a img {
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    width: 8px;
    height: 12px;
}
.prod-container a:hover img {
    right: 15px;
	transition: all 0.3s;
}

.top-featured {
	margin-bottom: 80px;
}
@media screen and (max-width: 999px) {
	.prod-container.sp-prod{
		display: block;
	}
	.prod-container.pc-prod{
		display: none;
	}
	.prod-card {
		flex-wrap: wrap;
		margin-bottom: 30px;
	}
	.prod-card .prod-txt,
	.prod-card figure {
		width: 100%;
	}
	main .prod-container h2 {
		font-size: 2rem;
	}
	.sp-prod a{
		margin: 0 auto;
	}

}

.cat-wrap{
	margin-bottom: 100px;
}
@media screen and (max-width: 999px) {
	.cat-wrap{
		margin-bottom: 80px;
	}
}