@charset "utf-8";

/* ------------------------------
 見出し（PC）
------------------------------ */
/* H1 */
.contentsTop h1,
.contents h1 {
	font-size: 3.2rem;
	font-weight: bold;
	text-align: center;
	margin-bottom: 40px;
	line-height: 1.5;
}
.contentsTop h1::after,
.contents h1::after {
	content: "";
	display: block;
	width: 80px;
	height: 4px;
	margin-top: 10px;
	margin-left: auto;
	margin-right: auto;
	background-color: #ea2424;
}
.contents h1.products_name {
	font-size: 2.7rem;
}
.contents h1.products_name span {
	font-size: 2rem;
	display: block;
}
/* H2 */
.contentsHome h2 {
	font-size: 2.8rem;
	font-weight: bold;
	text-align: center;
	margin-bottom: 30px;
	line-height: 1.5;
}
.contentsHome h2::after {
	content: "";
	background: #ea2424;
	width: 80px;
	height: 4px;
	display: block;
	margin-top: 10px;
	margin-left: auto;
	margin-right: auto;
}
.contentsTop h2,
.contents h2 {
	margin-bottom: 30px;
	padding-bottom: 10px;
	border-bottom: 1px dotted #bdccd4;
	font-size: 2.4rem;
	line-height: 1.5;
	font-weight: bold;
}
/* H3 */
.contents h3 {
	font-size: 1.8rem;
	font-weight: bold;
	margin-bottom: 10px;
}
/* ------------------------------
 見出し（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* H1 */
	.contentsTop h1,
	.contents h1 {
		font-size: 2.4rem;
		margin-bottom: 40px;
	}
	.contentsTop h1::after,
	.contents h1::after {
		width: 50px;
	}
	.contents h1.products_name {
		font-size: 2.2rem;
		padding: 0 20px;
	}
	.contents h1.products_name span {
		font-size: 1.8rem;
		display: block;
	}
	/* H2 */
	.contentsHome h2,
	.contentsTop h2,
	.contents h2 {
		font-size: 2.1rem;
		margin-bottom: 20px;
	}
	/* H3 */
	.contents h3 {
		margin-bottom: 7px;
	}
}

/* ------------------------------
 グリッド
------------------------------ */
.units-row::after {
	content: "";
	clear: both;
	display: block;
}
/* ------------------------------
 グリッド（PC）
------------------------------ */
@media print, screen and (min-width: 768px) {
	.units-row {
		width: 1140px;
		margin: 0 auto;
	}
	.contents .units-row {
		width: 1140px;
		padding: 40px 70px;
		border-radius: 8px;
		background: #fff;
	}
	/* 1/2 */
	.w546,
	.w1-2 {
		width: 47.895%;
	}
	/* 製品詳細 1/2 */
	.productList.w1-2 {
		width: 48%;
	}
	/* 1/3 */
	.w350,
	.w1-3 {
		width: 30.702%;
	}
	/* 2/3 */
	.w745,
	.w2-3 {
		width: 65.351%;
	}
	/* 1/4 */
	.w258,
	.w1-4 {
		width: 22.632%;
	}
	/* units-row 1/4 */
	.contents .units-row .w1-4 {
		width: 23.6%;
	}
	/* 1/5 */
	.w1-5 {
		width: calc(100% / 5);
	}
	/* 横並び時スペース */
	.w1-2.fl:not(:nth-of-type(odd)) {
		margin-left: 4.21%;
	}
	.w350.cms_fl + .w350.cms_fl,
	.w1-3.fl + .w1-3.fl {
		margin-left: 3.947%;
	}
	.w258.cms_fl + .w258.cms_fl,
	.w1-4.fl + .w1-4.fl {
		margin-left: 3.158%;
	}
	.contents .units-row .w1-4.cms_fl + .w1-4.cms_fl {
		margin-left: 1.867%;
	}
	.goodsBox.fl + .goodsBox.fl {
		margin-left: 0;
	}
	.goodsBox.fl:not(:nth-of-type(3n+1)) {
		margin-left: 3.947% !important;
	}
	/* その他 */
	.w900 {
		width: 900px;
	}
	.w110 {
		width: 110px;
	}
	.w130 {
		width: 130px;
	}
	.w465 {
		width: 465px;
	}
}
/* ------------------------------
 グリッド（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.units-row {
		padding-left: 5%;
		padding-right: 5%;
	}
	.contents .units-row {
		margin-left: 5%;
		margin-right: 5%;
		padding: 33px 5%;
		border-radius: 8px;
		background: #fff;
		box-shadow: 0 0 10px #d3d3d3;
	}
}

/* ------------------------------
 ボックス
------------------------------ */
/* 横並びボックス */
.flexBox {
	display: flex !important;
	flex-flow: row wrap;
}
.flexBox::after {
	display: none;
}
/* センター揃え */
.flexBox.fb-tac {
	justify-content: center;
}
/* 左右揃え */
.flexBox.fb-btw {
	justify-content: space-between;
}
/* 縦センター揃え */
.flexBox.fb-vac {
	align-items: center;
}

/* ------------------------------
 ページ内リンク（PC）
------------------------------ */
.pageNavi {
	font-size: 0;
	text-align: center;
	margin-bottom: 60px;
	padding: 25px 25px 10px 25px;
	background: #fff;
	border-radius: 8px;
}
.pageNavi li {
	font-size: 1.8rem;
	line-height: 1.1;
	display: inline-block;
	padding-left: 0;
	padding-right: 25px;
	margin-bottom: 15px;
}
.pageNavi li a {
	color: #000;
	text-decoration: none;
	position: relative;
}
.pageNavi li a:hover {
	text-decoration: underline;
}
.pageNavi li a::after {
	font-family: "FontAwesome";
	font-size: 170%;
	content: "\f105";
	display: inline-block;
	top: .15em;
	line-height: 14px;
	vertical-align: middle;
	color: #ea2424;
	margin-left: 10px;
	transform: rotate(90deg);
}
/* ------------------------------
 ページ内リンク（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.pageNavi {
		margin-bottom: 40px;
		padding-bottom: 25px;
	}
	.pageNavi li {
		font-size: 1.5rem;
		padding-left: 15px;
		padding-right: 15px;
		margin-bottom: 5px;
	}
}

/* ------------------------------
 リスト（PC）
------------------------------ */
/* ノーマルリスト */
.list ul li {
	position: relative;
	padding-left: 1.2em;
}
.list ul li::before {
	content: "";
	position: absolute;
	top: .4em;
	left: 0;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: #ea2424;
	vertical-align: top;
}
/* 中黒リスト */
.disc ul li {
	position: relative;
	padding-left: 1.1em;
}
.disc ul li::before {
	content: "・";
	vertical-align: top;
	position: absolute;
	top: 0;
	left: 0;
}
/* 横並びリスト */
.inline li {
	display: inline-block;
	margin-right: 15px;
}
/* ------------------------------
 リスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 横並びリスト解除 */
	.inline.off li {
		display: block;
	}
}

/* ------------------------------
 テーブル（PC）
------------------------------ */
/* 上下線 */
.line_tb table {
	width: 100%;
	border-top: 1px solid #eaefef;
	border-bottom: 1px solid #eaefef;
}
.line_tb table tr:first-child th,
.line_tb table tr:first-child td {
	padding-top: 10px;
}
.line_tb table tr:last-child th,
.line_tb table tr:last-child td {
	padding-bottom: 10px;
}
.line_tb table th {
	padding: 2px 10px 2px 0;
	text-align: left;
	vertical-align: top;
}
.line_tb table td {
	padding: 2px 0;
	vertical-align: top;
}
/* ------------------------------
 テーブル（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* レスポンシブ */
	.res table th,
	.res table td {
		width: 100% !important;
		display: block;
	}
}

/* ------------------------------
 アイコン
------------------------------ */
.icon-arrow {
	/* position: relative; */
	line-height: 1.4;
}
span.icon-arrow {
	display: inline-block;
}
.icon-arrow::after {
	content: "";
	display: inline-block;
	width: 25px;
	height: 25px;
	margin: 0 0 6px 10px;
	border-radius: 50%;
	background: #ea2424 url(../img/icon_arrow_r_w.svg) no-repeat 10px center / 6px 9px;
	vertical-align: middle;
}
.product .icon-arrow {
	font-size: 2.2rem;
}
.icon-arrow-s::after {
	content: "";
	display: inline-block;
	width: 20px;
	height: 20px;
	margin: 0 0 4px 6px;
	border-radius: 50%;
	background: #ea2424 url(../img/icon_arrow_r_w.svg) no-repeat 8px 6px / 5px 7px;
	vertical-align: middle;
}

/* ------------------------------
 ボタン（PC）
------------------------------ */
.btn a,
.cms_block .btnRed a {
	display: inline-block;
	min-width: 288px;
	padding: 17px 20px;
	border-radius: 5px;
	background: #ea2424;
	color: #fff;
	font-size: 1.8rem;
	line-height: 1.5;
	font-weight: bold;
	text-decoration: none;
	text-align: center;
	transition: .3s ease-in-out;
}
.cms_block .btnRed a {
	min-width: 350px;
	padding: 22px 20px;
	font-size: 2.4rem;
	font-weight: bold;
}
.cms_block .btn a {
	display: inline-block;
	min-width: 354px;
	padding: 17px 20px;
	border-radius: 5px;
	background: #fff;
	color: #000;
	font-size: 2.2rem;
	line-height: 1.5;
	font-weight: bold;
	text-decoration: none;
	text-align: center;
}
.cms_block .btn a::after {
	content: "\f105";
	margin-left: 10px;
	color: #ea2424;
	font-family: "FontAwesome";
	font-size: 150% !important;
	line-height: .98;
	font-weight: normal;
	vertical-align: top;
}
.btn a:hover {
	opacity: .7;
}
.btn.cms_pdf a {
	background: #ea2424;
	color: #fff;
	margin-left: 0;
	padding-left: 20px;
}
.btn .cms_blank::after {
	color: #fff;
}
/* ------------------------------
 ボタン（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.cms_block .btn a {
		min-width: 288px;
		font-size: 1.7rem;
	}
	.cms_block .btnRed a {
		width: 100%;
		min-width: 288px;
		font-size: 2rem;
	}
}

/* ------------------------------
 INDEX 製品BOX（PC）
------------------------------ */
.cms_text.goodsBox {
	overflow: visible !important;
	position: relative;
	margin-bottom: 45px;
	border-radius: 8px;
	background-color: #fff;
}
.goodsBox a {
	display: block;
	padding: 33px;
	color: #000;
	text-decoration: none;
}
.goodsBox .imgBox {
	margin-bottom: 20px;
}
.goodsBox h3 {
	margin-bottom: 20px;
	font-size: 2.0rem;
	font-weight: bold;
}
/* アイコンと価格 */
.goodsBox .icon-block {
	width: 100%;
	margin-bottom: 20px;
}
.goodsBox a:hover .icon-block img {
	opacity: 1;
}
.goodsBox .icon-block ul {
	display: flex;
	column-gap: 6px;
}
.goodsBox .icon-block ul li {
	width: 52px;
}
.goodsBox .price-block {
	width: 100%;
	padding-top: 30px;
	border-top: 1px dotted #bdccd4;
	text-align: right;
	line-height: 1;
}
/* ------------------------------
 INDEX 製品BOX（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* アイコンと価格 */
	.goodsBox .icon-block ul li {
		width: calc(calc(100% - 24px) / 5);
	}
}