@charset "utf-8";
/* ------------------------------
 見出し・テキスト（PC）
------------------------------ */
/* h1 */
.contents .heading,
.contentsTop .heading,
.contentsNews .heading,
.contentsBlog .heading {
	background: url(../img/linedot_bg_black.svg) repeat 0 0 / 30px 30px;
	color: #fff;
}
.heading h1 {
	width: 1140px;
	margin: 0 auto;
	padding-top: 100px;
	font-size: 4.8rem;
	font-weight: bold;
	line-height: 1;
	letter-spacing: .05em;
}
.heading h1 span {
	display: block;
	position: relative;
	margin-bottom: 30px;
	padding-left: 30px;
	color: #b2b2b2;
	font-family: "Jost", serif;
	font-size: 2.2rem;
	font-weight: 400;
	letter-spacing: 0;
}
.heading h1 span::before {
	content: "";
	display: block;
	position: absolute;
	top: .15em;
	left: 5px;
	width: 16px;
	height: 16px;
	background: url(../img/icon_rotarydamper.svg) no-repeat 0 0 / cover;
}
/* 新着情報・ブログ詳細 h1 */
.mainContents h1 {
	position: relative;
	margin: 35px 0 40px;
	padding-bottom: 20px;
	border-bottom: 1px dotted #b0bac6;
	font-size: 3rem;
	line-height: 1.4;
	font-weight: bold;
}
.mainContents h1::before {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 60px;
	height: 4px;
	background-color: var(--smhd-color);
}
.mainContents h1::after {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 30px;
	height: 4px;
	background-color: var(--blue-color);
}
/* h2 */
.contents h2,
.contentsTop h2 {
	position: relative;
	margin-bottom: 35px;
	padding-bottom: 15px;
	font-size: 3.5rem;
	font-weight: bold;
	line-height: 1.45;
	letter-spacing: .03em;
}
.contents h2::before,
.contentsTop h2::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 60px;
	height: 4px;
	background-color: var(--smhd-color);
}
.contents h2::after,
.contentsTop h2::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 30px;
	height: 4px;
	background-color: var(--blue-color);
}
/* メッセージ h2 */
.contents .messageBlock h2 {
	padding-bottom: 0;
	color: var(--blue-color);
	font-size: 4.3rem;
}
.contents .messageBlock h2::before,
.contents .messageBlock h2::after {
	content: none;
}
/* 理念・パーパス・アイデンティティ h2 */
.contents .groupBlock h2,
.contents .companyBlock h2 {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-bottom: 10px;
	padding-bottom: 0;
	color: var(--blue-color);
	font-weight: bold;
	text-align: center;
}
.contents .companyBlock h2 {
	color: var(--smhd-color);
}
.contents .groupBlock h2 > em,
.contents .companyBlock h2 > em {
	display: inline-block;
	margin-bottom: 25px;
	height: 40px;
	padding: 0 18px;
	background-color: #000;
	color: #fff;
	font-size: 2rem;
	line-height: 40px;
	font-style: normal;
}
.contents .groupBlock h2 > em::after,
.contents .companyBlock h2 > em::after {
	content: "";
	display: block;
	width: 0;
	height: 0;
	margin: 0 auto;
	border-style: solid;
	border-width: 5px 5px 0 5px;
	border-color: #000 transparent transparent transparent;
}
.contents .groupBlock h2::before,
.contents .companyBlock h2::before,
.contentsTop .environmentBox h2::before,
.contentsTop .businessBlock h2::before,
.contents .groupBlock h2::after,
.contents .companyBlock h2::after,
.contentsTop .environmentBox h2::after,
.contentsTop .businessBlock h2::after {
	content: none;
}
.companyBlock h2 + h2 {
	margin-top: 120px;
}
/* ブルー・飾りなし h2 */
.contents .blueHeading h2 {
	padding: 0;
	color: var(--blue-color);
}
.contents .blueHeading h2::before,
.contents .blueHeading h2::after {
	content: none;
}
/* h3・新着情報 h2・ブログ h2 */
.contents h3,
.contentsTop h3,
.contentsNews h2,
.contentsBlog h2,
.contentsTop .environmentBox h2,
.contentsTop .businessBlock h2 {
	margin-bottom: 30px;
	font-size: 2.8rem;
	line-height: 1.45;
	font-weight: bold;
	letter-spacing: .03em;
}
/*  SOMIC N1 lab Iwata h3 */
.contents .n1-labBlock h3 {
	margin-bottom: 0;
}
/*  背景 h3 */
.contents .bgBox h3 {
	text-align: center;
}
/* 環境 h2 */
.contentsTop .environmentBox h2 {
	padding-bottom: 0;
	text-align: center;
}
/* 事業紹介 h2 */
.contentsTop .businessBlock h2 {
	padding-bottom: 0;
	margin-bottom: 5px;
}
/* h4・新着情報 h3・ブログ h3 */
.contents h4,
.contentsTop h4,
.contentsNews h3,
.contentsBlog h3 {
	margin-bottom: 20px;
	color: #00a0e9;
	font-size: 2.4rem;
	line-height: 1.4;
	font-weight: bold;
}
.contentsNews h3,
.contentsBlog h3 {
	margin-bottom: 10px;
}
/* サステナビリティ 安全衛生 h4 */
.contents .bgBox.hsBox h4 {
	padding-bottom: 10px;
	border-bottom: 1px dotted #b0bac6;
	font-size: 1.8rem;
}
/* h5 */
.contents h5,
.contentsTop h5 {
	margin-bottom: 10px;
	font-size: 2rem;
	line-height: 1.4;
	font-weight: bold;
}
/* 背景あり見出し */
.bar {
	height: 70px;
	margin-bottom: 30px;
	background: url(../img/linedot_bg.svg) repeat 0 0 / 30px 30px;
	font-size: 2.6rem;
	line-height: 70px;
	font-weight: bold;
	text-align: center;
}
/* 小見出し */
.subHeading {
	display: inline-block;
	margin-bottom: 25px;
	height: 40px;
	padding: 0 18px;
	background-color: #000;
	color: #fff;
	font-size: 2rem;
	line-height: 40px;
	font-weight: bold;
}
.subHeading::after {
	content: "";
	display: block;
	width: 0;
	height: 0;
	margin: 0 auto;
	border-style: solid;
	border-width: 5px 5px 0 5px;
	border-color: #000 transparent transparent transparent;
}
/* 下点線見出し */
.bdotHeading {
	margin-bottom: 20px;
	padding-bottom: 10px;
	border-bottom: 1px dotted #b0bac6;
	color: var(--blue-color);
	font-size: 1.8rem;
	font-weight: bold;
}
/* アイコン */
.icon-text {
	display: inline-block;
	padding: 1px 10px 0;
	color: #fff;
	background-color: var(--smhd-color);
	line-height: 1.35;
	font-weight: bold;
}
@media print, screen and (min-width: 768px) {
	/* h1 */
	.contents .heading {
		height: 540px;
	}
	.contentsTop .heading,
	.contentsNews .heading,
	.contentsBlog .heading {
		height: 320px;
		margin-bottom: 110px;
	}
	/* 理念・パーパス・アイデンティティ h2 */
	.contents .companyBlock h2 > em > span {
		display: inline-block;
		margin-left: 10px;
	}
	/* ブルー・飾りなし h2 */
	.contents .blueHeading h2 {
		text-align: center;
	}
	.contents .blueHeading h2 span {
		display: block;
	}
	/* h3 */
	.contents h3 span {
		display: block;
	}
}
/* ------------------------------
 見出し・テキスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* h1 */
	.contents .heading,
	.contentsTop .heading,
	.contentsNews .heading,
	.contentsBlog .heading {
		background: url(../img/linedot_bg_black_sp.svg) repeat 0 0 / 24px 24px;
	}
	.contents .heading {
		height: 218px;
	}
	.contentsTop .heading,
	.contentsNews .heading,
	.contentsBlog .heading {
		height: auto;
		margin-bottom: 70px;
		padding: 50px 0 60px;
	}
	.heading h1 {
		width: 90%;
		padding-top: 50px;
		font-size: 3.2rem;
		line-height: 1.2;
		letter-spacing: 0;
	}
	.contentsTop .heading h1,
	.contentsNews .heading h1,
	.contentsBlog .heading h1 {
		padding-top: 0;
	}
	.heading h1 span {
		margin-bottom: 18px;
		padding-left: 28px;
		font-size: 1.8rem;
		letter-spacing: 0;
	}
	.heading h1 span::before {
		top: .05em;
		width: 15px;
		height: 15px;
	}
	/* 新着情報・ブログ一覧 h1 */
	.contentsNews .heading,
	.contentsBlog .heading {
		height: 178px;
		margin-bottom: 70px;
	}
	/* 新着情報・ブログ詳細 h1 */
	.mainContents h1 {
		margin: 15px 0 20px;
		padding-bottom: 15px;
		font-size: 2.3rem;
	}
	.mainContents h1::before {
		width: 50px;
	}
	.mainContents h1::after {
		width: 25px;
	}
	/* h2 */
	.contents h2,
	.contentsTop h2 {
		margin-bottom: 35px;
		padding-bottom: 20px;
		font-size: 2.7rem;
		line-height: 1.3;
	}
	.contents h2::before,
	.contentsTop h2::before {
		width: 50px;
	}
	.contents h2::after,
	.contentsTop h2::after {
		width: 25px;
	}
	/* メッセージ h2 */
	.contents .messageBlock h2 {
		font-size: 2.7rem;
	}
	/* 会社概要上部 h2 */
	.contents .groupBlock h2,
	.contents .companyBlock h2 {
		margin-bottom: 15px;
	}
	.contents .groupBlock h2 > em,
	.contents .companyBlock h2 > em {
		margin-bottom: 20px;
		height: 38px;
		padding: 0 15px;
		font-size: 1.8rem;
		line-height: 38px;
	}
	.contents .companyBlock h2 > em {
		position: relative;
		height: auto;
		padding: 10px;
		line-height: 1.3;
		letter-spacing: -.01em;
	}
	.contents .companyBlock h2 > em > span {
		display: block;
	}
	.contents .companyBlock h2 > em::after {
		content: "";
		position: absolute;
		bottom: -5px;
		left: 0;
		right: 0;
		margin: auto;
	}
	.contents .groupBlock h2 > span > span,
	.contents .companyBlock h2 > span > span {
		display: inline-block;
	}
	/* h3・新着情報 h2・ブログ h2 */
	.contents h3,
	.contentsTop h3,
	.contentsNews h2,
	.contentsBlog h2,
	.contentsTop .environmentBox h2,
	.contentsTop .businessBlock h2 {
		margin-bottom: 20px;
		font-size: 2.2rem;
		line-height: 1.3;
	}
	/* 事業紹介 h2 */
	.contentsTop .businessBlock h2 {
		margin-bottom: 5px;
	}
	/* h4・新着情報 h3・ブログ h3 */
	.contents h4,
	.contentsTop h4,
	.contentsNews h3,
	.contentsBlog h3 {
		margin-bottom: 15px;
		font-size: 2rem;
	}
	.contentsNews h3,
	.contentsBlog h3 {
		margin-bottom: 5px;
	}
	/* サステナビリティ 安全衛生 h4 */
	.contents .bgBox.hsBox h4 {
		font-size: 1.6rem;
	}
	/* h5 */
	.contents h5,
	.contentsTop h5 {
		margin-bottom: 10px;
		font-size: 1.8rem;
		line-height: 1.4;
		font-weight: bold;
	}
	/* 背景あり見出し */
	.bar {
		height: 54px;
		margin-bottom: 20px;
		background: url(../img/linedot_bg.svg) repeat 0 0 / 24px 24px;
		font-size: 2rem;
		line-height: 54px;
	}
	/* 小見出し */
	.subHeading {
		margin-bottom: 20px;
		height: 38px;
		padding: 0 15px;
		font-size: 1.8rem;
		line-height: 38px;
	}
	/* 下点線見出し */
	.bdotHeading {
		margin-bottom: 15px;
		padding-bottom: 5px;
		font-size: 1.6rem;
	}
}

/* ------------------------------
 横幅（PC）
------------------------------ */
/* その他 */
@media print, screen and (min-width: 768px) {
	/* 1/2 */
	.w1-2 {
		width: 47.89474%;
	}
	.w546 {
		width: 546px;
	}
	/* 1/3 */
	.w1-3 {
		width: 30.70175%;
	}
	.w350 {
		width: 350px;
	}
	.w1-3.cms_fl + .w1-3.cms_fl,
	.w1-3.fl + .w1-3.fl {
		margin-left: 3.94736%;
	}
	.w350.cms_fl + .w350.cms_fl,
	.w350.fl + .w350.fl {
		margin-left: 45px;
	}
	/* 2/3 */
	.w2-3 {
		width: 65.35087%;
	}
	.w745 {
		width: 745px;
	}
	/* 1/4 */
	.w1-4 {
		width: 22.63157%;
	}
	.w258 {
		width: 258px;
	}
	.w1-4.cms_fl + .w1-4.cms_fl,
	.w1-4.fl + .w1-4.fl {
		margin-left: 3.15789%;
	}
	.w258.cms_fl + .w258.cms_fl,
	.w258.fl + .w258.fl {
		margin-left: 36px;
	}
	/* 3/4 */
	.w3-4 {
		width: 74.21052%;
	}
	.w846 {
		width: 846px;
	}
	/* 新着情報 1/2 */
	.mainContents .w1-2 {
		width: 47.9518%;
	}
	.mainContents .w398 {
		width: 398px;
	}
	/* 新着情報 1/3 */
	.mainContents .w1-3 {
		width: 30.6024%;
	}
	.mainContents .w254 {
		width: 254px;
	}
	.mainContents .w1-3.cms_fl + .w1-3.cms_fl,
	.mainContents .w1-3.fl + .w1-3.fl {
		margin-left: 4.09638%;
	}
	.mainContents .w254.cms_fl + .w254.cms_fl,
	.mainContents .w254.fl + .w254.fl {
		margin-left: 34px;
	}
	/* 新着情報 2/3 */
	.mainContents .w2-3 {
		width: 65.3012%;
	}
	.mainContents .w542 {
		width: 542px;
	}
	/* 新着情報 1/4 */
	.mainContents .w1-4 {
		width: 23.37349%;
	}
	.mainContents .w194 {
		width: 194px;
	}
	.mainContents .w1-4.cms_fl + .w1-4.cms_fl,
	.mainContents .w1-4.fl + .w1-4.fl {
		margin-left: 2.16867%;
	}
	.mainContents .w194.cms_fl + .w194.cms_fl,
	.mainContents .w194.fl + .w194.fl {
		margin-left: 18px;
	}
	/* 新着情報 3/4 */
	.mainContents .w3-4 {
		width: 74.45783%;
	}
	.mainContents .w618 {
		width: 618px;
	}
	/* 新着情報 1/5 */
	.mainContents .w1-5 {
		width: 18.07228%;
	}
	.mainContents .w150 {
		width: 150px;
	}
	.mainContents .w1-5.cms_fl + .w1-5.cms_fl,
	.mainContents .w1-5.fl + .w1-5.fl {
		margin-left: 2.40963%;
	}
	.mainContents .w150.cms_fl + .w150.cms_fl,
	.mainContents .w150.fl + .w150.fl {
		margin-left: 20px;
	}
	/* 新着情報 2/5 */
	.mainContents .w2-5 {
		width: 38.55421%;
	}
	.mainContents .w320 {
		width: 320px;
	}
	/* 新着情報 3/5 */
	.mainContents .w3-5 {
		width: 59.03614%;
	}
	.mainContents .w490 {
		width: 490px;
	}
	/* 新着情報 4/5 */
	.mainContents .w4-5 {
		width: 79.51807%;
	}
	.mainContents .w660 {
		width: 660px;
	}
	/* その他 */
	.w100 {
		width: 100px;
	}
	.w300 {
		width: 300px;
	}
	.w468 {
		width: 468px;
	}
	.w620 {
		width: 620px;
	}
	.w726 {
		width: 726px;
	}
	.w980 {
		width: 980px;
	}

}
/* ----------------------
 横幅（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.w1-2 + .w1-2:not(.sp_w1-2),
	.w1-3 + .w1-3:not(.sp_w1-3),
	.w1-3 + .w2-3:not(.sp_w2-3),
	.w2-3 + .w1-3:not(.sp_w1-3) {
		margin-top: 20px !important;
	}
	.w1-3 img {
		width: 100%;
	}
	.mainContents .w1-4,
	.mainContents .w194,
	.mainContents .w1-5,
	.mainContents .w150 {
		width: 47%;
	}
	.mainContents .w1-4.cms_fl,
	.mainContents .w1-4.fl,
	.mainContents .w194.cms_fl,
	.mainContents .w194.fl,
	.mainContents .w1-5.cms_fl,
	.mainContents .w1-5.fl,
	.mainContents .w150.cms_fl,
	.mainContents .w150.fl {
		float: left !important;
	}
	.mainContents .w1-4.cms_fl:nth-of-type(2n),
	.mainContents .w1-4.fl:nth-of-type(2n),
	.mainContents .w194.cms_fl:nth-of-type(2n),
	.mainContents .w194.fl:nth-of-type(2n),
	.mainContents .w1-5.cms_fl:nth-of-type(2n),
	.mainContents .w1-5.fl:nth-of-type(2n),
	.mainContents .w150.cms_fl:nth-of-type(2n),
	.mainContents .w150.fl:nth-of-type(2n) {
		margin-left: 6%;
	}
	.sp_w1-2 {
		width: 47%;
	}
	.sp_w1-3 {
		width: 30%;
	}
	.sp_w2-3 {
		width: 65%;
	}
	.sp_w3-4 {
		width: 75%;
	}
	.sp_w3-4.sp_auto.cms_fl,
	.sp_w3-4.sp_auto.cms_fl {
		float: none;
	}
	.sp_w1-3.cms_fl + .sp_w1-3.cms_fl,
	.sp_w1-3.fl + .sp_w1-3.fl {
		margin-left: 5%;
	}
	.sp_w1-2.cms_fl,
	.sp_w1-2.fl,
	.sp_w1-3.cms_fl,
	.sp_w1-3.fl,
	.sp_w2-3.cms_fl,
	.sp_w2-3.fl {
		float: left !important;
	}
	.sp_w1-2.cms_fr,
	.sp_w1-2.fr,
	.sp_w1-3.cms_fr,
	.sp_w1-3.fr,
	.sp_w2-3.cms_fr,
	.sp_w2-3.fr {
		float: right !important;
	}
	.sp_w1-2.cms_fl.sp_auto,
	.sp_w1-2.fl.sp_auto,
	.sp_w1-3.cms_fl.sp_auto,
	.sp_w1-3.fl.sp_auto,
	.sp_w2-3.cms_fl.sp_auto,
	.sp_w2-3.fl.sp_auto,
	.sp_w1-2.cms_fr.sp_auto,
	.sp_w1-2.fr.sp_auto,
	.sp_w1-3.cms_fr.sp_auto,
	.sp_w1-3.fr.sp_auto,
	.sp_w2-3.cms_fr.sp_auto,
	.sp_w2-3.fr.sp_auto {
		float: none !important;
	}
	/* 新着・ブログ1/2の中の1/2 */
	.mainContents .cms_text.w1-2 > .w1-2 {
		width: 47% !important;
		margin-top: 0 !important;
	}
	.mainContents .cms_text.w1-2 > .w1-2.fl {
		float: left !important;
	}
	.mainContents .cms_text.w1-2 > .w1-2.fr {
		float: right !important;
	}
	.mainContents .cms_text.w1-2:has(.fl):has(.fr)::after {
		content: "";
		display: block;
		clear: both;
	}
	/* 新着・ブログ1/2の中の1/3 */
	.mainContents .cms_text.w1-2 .w2-3 {
		width: 62% !important;
		margin-top: 0 !important;
	}
	.mainContents .cms_text.w1-2 .w1-3 {
		width: 31% !important;
		margin-top: 0 !important;
	}
}

/* ------------------------------
 ボックス（PC）
------------------------------ */
/* 背景 */
.bgBox {
	padding: 70px 80px;
	background-color: #ebeef1;
}
/* 強調 */
.emphasisBox {
	padding: 35px 40px;
	border-radius: 12px;
	background-color: var(--smhd-color);
	color: #fff;
	font-size: 2.2rem;
	font-weight: bold;
}
/* 横並び */
.flexBox {
	display: flex !important;
	flex-wrap: wrap;
}
.cms_block.flexBox::after {
	content: none;
}
/* 横並び センター揃え */
.flexBox.jc-c {
	justify-content: center;
}
/* 横並び 端揃え */
.flexBox.jc-sb {
	justify-content: space-between;
}
/* 横並び 縦センター揃え */
.flexBox.ai-c {
	align-items: center;
}
/* 横並び4列（SP横並び2列） */
.flexBox.div4 {
	flex-wrap: wrap;
}
/* 横並びで写真キャプションが上 */
.flexBox.capTop > * {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
@media print, screen and (min-width: 768px) {
	/* 背景 */
	.mainContents .bgBox {
		padding: 35px 40px;
	}
	/* 強調 */
	.emphasisBox {
		text-align: center;
	}
	.mainContents .emphasisBox {
		padding: 25px 40px;
	}
	/* 横並び2列 */
	.flexBox.div2 {
		gap: 40px 48px;
	}
	.flexBox.div2 > * {
		width: 546px;
		margin-bottom: 0;
	}
	.mainContents .flexBox.div2 {
		gap: 30px 34px;
	}
	.mainContents .flexBox.div2 > * {
		width: 398px;
	}
	/* 横並び3列 */
	.flexBox.div3 {
		gap: 40px 45px;
	}
	.flexBox.div3 > * {
		width: 350px;
		margin-bottom: 0;
	}
	.mainContents .flexBox.div3 {
		gap: 20px 22px;
	}
	.mainContents .flexBox.div3 > * {
		width: 254px;
	}
	/* 横並び4列（SP横並び2列） */
	.flexBox.div4 {
		gap: 40px 36px;
	}
	.flexBox.div4 > * {
		width: 258px;
		margin-bottom: 0;
	}
	.mainContents .flexBox.div4 {
		gap: 20px 18px;
	}
	.mainContents .flexBox.div4 > * {
		width: 194px;
	}
	/* 横並び5列（SP横並び2列） */
	.flexBox.div5 {
		gap: 20px;
	}
	.flexBox.div5 > * {
		width: 150px;
		margin-bottom: 0;
	}
}
/* ------------------------------
 ボックス（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 背景 */
	.bgBox {
		padding: 35px 20px;
	}
	/* 強調 */
	.emphasisBox {
		padding: 15px 20px;
		font-size: 1.8rem;
	}
	/* 横並び2列・横並び3列 */
	.flexBox.div2,
	.flexBox.div3 {
		display: block !important;
	}
	/* 横並び4列（SP横並び2列） */
	.flexBox.div4 > *,
	.flexBox.div5 > * {
		width: 47.895%;
		margin-bottom: 0;
	}
	.flexBox.div4,
	.flexBox.div5 {
		gap: 15px 4.21%;
	}
	.mainContents .flexBox.div4 > *,
	.mainContents .flexBox.div5 > * {
		display: block !important;
	}
}

/* ------------------------------
 hover画像拡大
------------------------------ */
a .img-hover {
	overflow: hidden;
	display: block;
	position: relative;
}
a .img-hover img {
	display: block;
	transition-duration: 0.3s;
	overflow: hidden;
	display: block;
	width: 100%;
}
a:hover .img-hover img, a:focus .img-hover img {
	opacity: 1;
	overflow: hidden;
	transform: scale(1.1);
	transition-duration: 0.3s;
}

/* ------------------------------
 線
------------------------------ */
.line {
	margin-bottom: 30px;
	padding-bottom: 15px;
	border-bottom: 1px solid #ddd;
}
/* 点線 */
.dotLine {
	margin-bottom: 20px;
	padding-bottom: 10px;
	border-bottom: 1px dotted #b0bac6;
}
.dotLineTop {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px dotted #b0bac6;
}
/* ------------------------------
 線（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.dotLineTop {
		margin-top: 15px;
		padding-top: 15px;
	}
}

/* ------------------------------
 テーブル（PC）
------------------------------ */
/* デフォルト */
.cms_text table {
	overflow: hidden;
	width: 100%;
	border: 1px solid #c4cbd4;
}
.cms_text table tr:not(:last-child) {
	border-bottom: 1px dotted #c4cbd4;
}
.cms_text table th,
.cms_text table td {
	padding: 22px 19px;
}
.cms_text table th {
	background-color: #ebeef1;
	font-weight: bold;
}
.cms_text table td + td {
	border-left: 1px dotted #c4cbd4;
}
.cms_text table thead th {
	padding: 27px 19px;
	background-color: var(--smhd-color);
	color: #fff;
	font-size: 2rem;
	line-height: 1;
	font-weight: bold;
	text-align: center;
}
.cms_text table thead th + th {
	border-left: 1px dotted #c4cbd4;
}
/* 項目横並び */
.cms_text.sbs table {
	table-layout: fixed;
}
.cms_text.sbs table tr:first-child {
	border-bottom: none;
}
.cms_text.sbs table th + th {
	border-left: 1px dotted #c4cbd4;
}
.cms_text.sbs table th {
	border-left: 1px dotted #c4cbd4;
	text-align: center;
}
@media print, screen and (min-width: 768px) {
	.cms_text table th {
		width: 20%;
	}
}
/* ------------------------------
 テーブル（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.cms_text table th,
	.cms_text table td {
		padding: 12px 14px;
	}
	/* レスポンシブ */
	.cms_text.res table th,
	.cms_text.res table td{
		display: block;
		width: 100%;
	}
	/* スクロール */
	.cms_text.scroller table {
		width: 1140px !important;
	}
	.cms_text.scroller table th {
		width: 25%;
	}
}

/* ------------------------------
 リスト（PC）
------------------------------ */
/* ノーマルリスト●付き */
.cms_text ul > li,
.cms_image ul > li {
	position: relative;
	padding-left: 1em;
}
.cms_text ul > li::before,
.cms_image ul > li::before {
	content: "●";
	position: absolute;
	top: .7em;
	left: 0;
	color: var(--smhd-color);
	font-size: 60%;
}
/* チェック */
.check ul li {
	padding-left: 1.4em;
}
.check ul li::before {
	content: "";
	display: inline-block;
	top: .5em;
	width: 15px;
	height: 15px;
	background: url(../img/icon_check.svg) no-repeat center / cover;
}
/* 横並び */
.inline ul li {
	display: inline-block;
	margin-right: 2em;
}
/* 数字 */
.cms_text ol > li,
.cms_image ol > li {
	counter-increment: count 1;
	position: relative;
	padding-left: 1.5em;
}
.cms_text ol > li:before,
.cms_image ol > li:before {
	content: counter(count)".";
	position: absolute;
	top: 0;
	left: 0;
	font-weight: bold;
}
/* 丸数字 */
.circleNumber ol li {
	counter-increment: count 1;
	position: relative;
	padding-left: 1.4em;
}
.circleNumber ol li:before {
	content: counter(count);
	position: absolute;
	top: .3em;
	left: 0;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background-color: var(--smhd-color);
	color: #fff;
	font-family: "Arial", sans-serif;
	font-size: 1.1rem;
	line-height: 18px;
	font-weight: 700;
	text-align: center;
}
/* 横並び2列・3列 */
@media print, screen and (min-width: 768px) {
	.div2 ul,
	.div3 ul,
	.div4 ul {
		display: flex;
		flex-wrap: wrap;
	}
	.div2.gap-m ul,
	.div3.gap-m ul,
	.div4.gap-m ul {
		gap: 25px 0;
	}
	.gap-m:not(.div2):not(.div3):not(.div4) ul li:not(:last-child) {
		margin-bottom: 25px;
	}
	.div2 ul li,
	.div3 ul li,
	.div4 ul li {
		padding-right: 1em;
	}
	.div2 ul li {
		width: 50%;
	}
	.div3 ul li {
		width: calc(100% / 3);
	}
	.div4 ul li {
		width: calc(100% / 4);
	}
	.flexBox.div2 ul li,
	.flexBox.div3 ul li,
	.flexBox.div4 ul li {
		width: 100%;
	}
}
/* fire fox 調整 */
/* @-moz-document url-prefix(){
	.cms_text ul > li::before,
	.cms_image ul > li::before {
		top: 6px;
	}
} */
/* ------------------------------
 リスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 横並び */
	.inline ul li {
		margin-right: 1em;
	}
	.gap-m:not(.div2):not(.div3) ul li:not(:last-child) {
		margin-bottom: 15px;
	}
	/* 横並び2列・3列 */
	.div3 ul,
	.div4 ul {
		display: flex;
		flex-wrap: wrap;
	}
	.div2 ul li {
		padding-right: 1em;
		width: 100%;
	}
	.div3 ul li,
	.div4 ul li {
		padding-right: 1em;
		width: 50%;
	}
	.flexBox.div3 ul li,
	.flexBox.div4 ul li {
		width: 100%;
	}
}

/* ------------------------------
 ボタン（PC）
------------------------------ */
.btn a,
a.btn {
	display: inline-block;
	position: relative;
	min-width: 281px;
	padding: 22px 60px 21px 45px;
	border-radius: 37.5px;
	background: var(--blue-color) url(../img/icon_arrow_w.svg) no-repeat right 25px center / 21px 15px;
	color: #fff !important;
	font-size: 1.8rem;
	font-weight: bold;
	text-align: center;
	text-decoration: none !important;
	transition: opacity .3s ease-in-out;
}
.btn a[target="_blank"],
a.btn[target="_blank"] {
	background: var(--blue-color) url(../img/icon_blank_white.svg) no-repeat right 27px center / 18px 18px;
}
.cms_pdf.btn a[target="_blank"] {
	background: var(--blue-color) url(../img/icon_download.svg) no-repeat right 23px center / 22px 20px;
}
@media print, screen and (min-width: 768px) {
	.btn.pc_inline-block + .btn.pc_inline-block {
		margin-top: 0;
		margin-left: 16px;
	}
	/* .btn a:hover,
	a .btn:hover {
		opacity: .7;
	} */
}
/* ------------------------------
 ボタン（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.btn a,
	a.btn {
		min-width: 257px;
		padding: 16px 55px 16px 40px;
		border-radius: 30px;
		background: var(--blue-color) url(../img/icon_arrow_w.svg) no-repeat right 20px center / 17px 12px;
		font-size: 1.6rem;
	}
	.btn a[target="_blank"],
	a.btn[target="_blank"] {
		background: var(--blue-color) url(../img/icon_blank_white.svg) no-repeat right 22px center / 14px 14px;
	}
	.cms_pdf.btn a[target="_blank"] {
		background: var(--blue-color) url(../img/icon_download.svg) no-repeat right 18px center / 18px 16px;
	}
	.cms_pdf.btn.sp_2l a[target="_blank"] {
		display: inline-flex;
		flex-direction: column;
		align-items: center;
		min-height: 60px;
		padding: 11px 55px 11px 40px;
		line-height: 1.2;
	}
	.cms_pdf.btn.sp_2l a[target="_blank"] span {
		display: inline-block;
	}
}

/* ------------------------------
 メインイメージ（PC）
------------------------------ */
.contents .mainimg img {
	width: 100%;
}
@media print, screen and (min-width:768px) {
	.contents .mainimg {
		width: calc(calc(100% - 1140px) / 2 + 1140px);
		margin: -245px 0 100px auto;
	}
	.contents .mainimg:has(+.pageLink) {
		margin-bottom: 40px;
	}
}
/* ------------------------------
 メインイメージ（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.contents .mainimg {
		width: 95%;
		margin: -72px 0 60px 5%;
	}
	.contents .mainimg:has(+.pageLink) {
		margin-bottom: 20px;
	}
}


/* ------------------------------
 ページ内リンク（PC）
------------------------------ */
.pageLink {
	display: flex;
	flex-wrap: wrap;
	position: relative;
}
.pageLink::before {
	content: "INDEX";
	position: absolute;
	top: 0;
	left: 0;
	width: 95px;
	height: 54px;
	border-radius: 27px;
	background-color: #000;
	color: #fff;
	font-family: "Jost", serif;
	font-size: 1.7rem;
	line-height: 54px;
	font-weight: 400;
	text-align: center;
}
.cms_block.pageLink .cms_link:not(.btn) a:not([target="_blank"]) {
	display: inline-block;
	height: 54px;
	padding: 0 20px 0 25px;
	border-radius: 27px;
	background-color: #ebeef1;
	line-height: 54px;
}
.cms_block.pageLink .cms_link:not(.btn) a:not([target="_blank"])::after {
	background: var(--blue-color) url(../img/icon_arrow_link.svg) no-repeat 9px 9px / 8px 6px;
	transform: rotate(90deg);
}
@media print, screen and (min-width: 768px) {
	.pageLink {
		gap: 15px;
		width: 1140px;
		margin: 0 auto 90px;
		padding-left: 110px;
	}
}
/* ------------------------------
 ページ内リンク（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.pageLink {
		gap: 10px;
		align-items: flex-start;
		align-content: flex-start;
		padding-top: 52px;
	}
	.pageLink::before {
		width: 90px;
		height: 42px;
		border-radius: 21px;
		line-height: 42px;
	}
	.cms_block.pageLink {
		width: 90%;
		margin: 0 auto 50px;
	}
	.cms_block.pageLink .cms_link:not(.btn) a:not([target="_blank"]) {
		display: inline-block;
		position: relative;
		height: auto;
		padding: 12px 40px 11px 18px;
		border-radius: 21px;
		font-size: 1.4rem;
		line-height: 1.35;
	}
	.cms_block.pageLink .cms_link:not(.btn) a:not([target="_blank"])::after {
		position: absolute;
		top: 50%;
		right: 13px;
		margin: -11px 0 0;
		background: var(--blue-color) url(../img/icon_arrow_link.svg) no-repeat 7px 8px / 8px 6px;
	}
}

/* ------------------------------
 新着情報（PC）
------------------------------ */
.newsList {
	border-top: 1px dotted #b0bac6;
}
.newsList li {
	padding: 26px 0 25px;
	border-bottom: 1px dotted #b0bac6;
}
.newsList li a,
.newsList li div {
	display: flex;
	align-items: flex-start;
	color: #000;
}
.newsList li a[target="_blank"] .headline::after {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	margin: 0 0 3px 5px;
	background: url(../img/icon_blank.svg) no-repeat 0 0 / cover;
	vertical-align: middle;
}
.date {
	width: 100px;
	color: #75869b;
	font-family: "Arial", sans-serif;
	line-height: 28px;
	font-weight: bold;
}
.cate {
	width: 110px;
	height: 24px;
	margin: 1px 20px 0 0;
	border: 1px solid var(--blue-color);
	border-radius: 12px;
	background-color: #fff;
	color: var(--blue-color);
	font-size: 1.2rem;
	line-height: 22px;
	font-weight: bold;
	text-align: center;
}
.cate10 .cate {
	border: 1px solid var(--smhd-color);
	color: var(--smhd-color);
}
.cate11 .cate {
	border: 1px solid var(--blue-color);
	color: var(--blue-color);
}
.cate12 .cate {
	border: 1px solid #0065d9;
	color: #0065d9;
}
.cate13 .cate {
	border: 1px solid #00c7a9;
	color: #00c7a9;
}
@media print, screen and (min-width: 768px) {
	.newsList li .headline {
		width: calc(100% - 230px);
	}
	.contentsHome .newsList li .headline {
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
}
/* ------------------------------
 新着情報（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.newsList li {
		padding: 26px 0 21px;
	}
	.newsList li a,
	.newsList li div {
		flex-wrap: wrap;
	}
	.newsList li .headline {
		width: 100%;
		margin-top: 2px;
	}
}

/* ------------------------------
 ブログ（PC）
------------------------------ */
/* 共通 */
.contentsHome .postText {
	display: flex;
	flex-flow: row wrap;
}
/* トップ グループ活動紹介 */
.contentsHome .postList {
	display: flex;
}
.contentsHome .activityBox .postImg {
	margin-bottom: 12px;
}
.contentsHome .activityBox .postText {
	row-gap: 5px;
}
.contentsHome .activityBox .postText .title {
	width: 100%;
	line-height: 1.5;
}
.tag {
	width: 110px;
	height: 24px;
	margin: 1px 6px 0 0;
	border: 1px solid var(--smhd-color);
	border-radius: 12px;
	background-color: #fff;
	color: var(--smhd-color);
	font-size: 1.2rem;
	line-height: 22px;
	font-weight: bold;
	text-align: center;
}
/* トップ 夢の扉 */
.contentsHome .dreamBox .postBox {
	background-color: #fff;
}
.contentsHome .dreamBox .postText {
	padding: 30px 30px 0;
}
.latest {
	width: 80px;
	height: 23px;
	margin-right: 6px;
	padding-top: 2px;
	background-color: var(--smhd-color);
	color: #fff;
	font-size: 1.4rem;
	line-height: 21px;
	font-weight: bold;
	text-align: center;
	clip-path: polygon(0% 0%, 89% 0, 100% 50%, 89% 100%, 0% 100%);
}
.contentsHome .dreamBox .postText .title {
	overflow: hidden;
	width: 100%;
	margin-top: 10px;
	font-size: 2rem;
	font-weight: bold;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.contentsHome .dreamBox .postText .text {
	overflow: hidden;
	max-height: 50px;
	font-size: 1.5rem;
	line-height: 1.45;
	display: -webkit-box;
	text-overflow: ellipsis;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}
@media print, screen and (min-width: 768px) {
	/* トップ グループ活動紹介 */
	.contentsHome .postList {
		flex-flow: row wrap;
		gap: 15px 30px;
	}
	.contentsHome .postList li {
		width: calc((100% - 30px) / 2);
	}
	/* トップ 夢の扉 */
	.contentsHome .dreamBox .postBox {
		min-height: 516px;
	}
}
/* ------------------------------
 ブログ（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* トップ グループ活動紹介 */
	.contentsHome .activityBox .postBox {
		position: relative;
		padding-bottom: 31px;
	}
	.contentsHome .postSwiper {
		overflow: hidden;
	}
	/* ページネーション */
	.contentsHome .postSwiper .swiper-horizontal > .swiper-pagination-bullets,
	.contentsHome .postSwiper .swiper-pagination-bullets.swiper-pagination-horizontal,
	.contentsHome .postSwiper .swiper-pagination-custom,
	.contentsHome .postSwiper .swiper-pagination-fraction {
		bottom: 0;
	}
	.postSwiper .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
		opacity: 1;
		margin: 0 4px;
		background-color: #fff;
	}
	.postSwiper .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet:first-child {
		margin-left: 0;
	}
	.postSwiper .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
		background-color: var(--smhd-color);
	}
	/* 前へ／次へボタン */
	.contentsHome .postSwiper .swiper-button-next,
	.contentsHome .postSwiper .swiper-button-prev {
		top: 38%;
	}
	/* トップ 夢の扉 */
	.contentsHome .dreamBox .postText {
		padding: 20px;
	}
	.contentsHome .dreamBox .postText .title {
		margin-top: 0;
		font-size: 1.8rem;
	}
}


/* ------------------------------
 リンクブロック（PC）
------------------------------ */
.linkBlock {
	display: flex;
}
.cms_block:has(.linkBlock)::after {
	content: none;
}
.linkBlock a {
	display: block;
}
.linkBlock p {
	display: inline-block;
	margin-top: 16px;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
}
.linkBlock p::after {
	content: "";
	display: inline-block;
	right: 20px;
	width: 38px;
	height: 38px;
	margin: -4px 0 0 6px;
	border-radius: 50%;
	background: var(--blue-color) url(../img/icon_arrow_s_w.svg) no-repeat center center / 12px 8px;
	line-height: 1;
	vertical-align: middle;
	cursor: pointer;
	transition: .3s ease-in-out;
}
@media print, screen and (min-width:768px) {
	.linkBlock {
		flex-wrap: wrap;
		row-gap: 36px;
		justify-content: space-between;
	}
	.linkBlock li {
		width: 546px;
	}
	/* PC3列 */
	.cms_block.lower .linkBlock li {
		width: 350px;
	}
	.cms_block.lower .linkBlock li p {
		font-size: 1.8rem;
	}
	.cms_block.lower .linkBlock p::after {
		width: 30px;
		height: 30px;
		margin: -6px 0 0 6px;
	}
}
/* ------------------------------
 リンクブロック（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.linkBlock {
		flex-direction: column;
		row-gap: 28px;
	}
	.linkBlock p {
		font-size: 1.8rem;
	}
	.linkBlock p::after {
		width: 30px;
		height: 30px;
		margin: -6px 0 0 6px;
	}
}

/* ------------------------------
 YouTube埋め込み
------------------------------ */
.youtube {
	width: 100%;
	aspect-ratio: 16 / 9;
}
.youtube iframe {
	width: 100%;
	height: 100%;
	border: 0;
}