@charset "utf-8";
/* ------------------------------
 見出し・テキスト（PC）
------------------------------ */
/* -- h1 -- */
.headingIn h1 {
	position: relative;
	font-size: 4rem;
	font-weight: bold;
	line-height: 1.2;
}
.headingIn .subtitle {
	display: block;
	font-family: "Inter", sans-serif;
	font-size: 2.1rem;
	font-weight: 600;
	color: var(--blue-color);
	letter-spacing: 0.035em;
	margin-bottom: 5px;
}
/* -- h2 -- */
.contents h2 {
	position: relative;
	font-size: 2.6rem;
	font-weight: 600;
	padding-bottom: 30px;
	margin-bottom: 50px;
	line-height: 1.5;
}
.contents h2::before {
	content: "";
	width: 74px;
	height: 3px;
	background-color: var(--blue-color);
	position: absolute;
	bottom: 0;
	left: 0;
}

/* -- h3 -- */
.contents h3 {
	font-size: 2.4rem;
	font-weight: bold;
	margin-bottom: 40px;
}
/* ------------------------------
 見出し・テキスト（PC）
------------------------------ */
@media print, screen and (min-width: 768px) {
	.headingIn {
		width: 1140px;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 50px;
	}
}
/* ------------------------------
 見出し・テキスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* -- h1 -- */
	.headingIn {
		width: 90%;
		margin-left: 5%;
		margin-right: 5%;
		margin-bottom: 25px;
	}
	.headingIn h1 {
		font-size: 2.2rem;
	}
	.headingIn .subtitle {
		font-size: 1.2rem;
		margin-bottom: 0;
	}
	/* -- h2 -- */
	.contents h2 {
		font-size: 2rem;
		padding-bottom: 15px;
		margin-bottom: 25px;
	}
	.contents h2::before {
		width: 46px;
	}
	/* -- h3 -- */
	.contents h3 {
		font-size: 1.8rem;
		margin-bottom: 15px;
	}
}
/* ------------------------------
 下層メインイメージ（PC）
------------------------------ */
@media print, screen and (min-width: 768px) {
	.main_image {
		width: 1140px;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 80px;
	}
}
/* ------------------------------
 下層メインイメージ（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.main_image {
		margin-bottom: 30px;
	}
}
/* ------------------------------
 横幅（PC）
------------------------------ */
@media print, screen and (min-width: 768px) {
	.cms_fl + .cms_fl {
		margin-left: 5.702%;
	}
	.mainContents .cms_fl + .cms_fl {
		margin-left: 8.725%;
	}
	/* 1/2 */
	.w546,
	.w1-2 {
		width: 47.895%;
	}
	/* サイドあり1/2 */
	.mainContents .w546,
	.mainContents .w1-2 {
		width: 48.323%;
	}
	/* 1/3 */
	.w350,
	.w1-3 {
		width: 30.702%;
	}
	.w350.cms_fl + .w350.cms_fl:not(.cms_clear_before),
	.w350.fl + .w350.fl:not(.cms_clear_before),
	.w1-3.cms_fl + .w1-3.cms_fl:not(.cms_clear_before),
	.w1-3.fl + .w1-3.fl:not(.cms_clear_before) {
		margin-left: 3.947%;
	}
	.w350.cms_fl + .w350.cms_fl.ml0 {
		margin-left: 0;
	}
	/* サイドあり1/3 */
	.mainContents .w350,
	.mainContents .w1-3 {
		width: 31.276%;
	}
	.mainContents .w350.cms_fl + .w350.cms_fl:not(.cms_clear_before),
	.mainContents .w350.fl + .w350.fl:not(.cms_clear_before),
	.mainContents .w1-3.cms_fl + .w1-3.cms_fl:not(.cms_clear_before),
	.mainContents .w1-3.fl + .w1-3.fl:not(.cms_clear_before) {
		margin-left: 3.086%;
	}
	/* 2/3 */
	.w745,
	.w2-3 {
		width: 65.351%;
	}
	/* サイドあり2/3 */
	.mainContents .w745,
	.mainContents .w2-3 {
		width: 65.638%;
	}
	/* 1/4 */
	.w258,
	.w1-4 {
		width: 22.632%;
	}
	.w258.cms_fl + .w258.cms_fl,
	.w258.fl + .w258.fl,
	.w1-4.cms_fl + .w1-4.cms_fl,
	.w1-4.fl + .w1-4.fl {
		margin-left: 3.157%;
	}
	/* サイドあり1/4 */
	.mainContents .w258,
	.mainContents .w1-4 {
		width: 22.685%;
	}
	.mainContents .w258.cms_fl + .w258.cms_fl,
	.mainContents .w258.fl + .w258.fl,
	.mainContents .w1-4.cms_fl + .w1-4.cms_fl,
	.mainContents .w1-4.fl + .w1-4.fl {
		margin-left: 3.084%;
	}
	/* 3/4 */
	.w846,
	.w3-4 {
		width: 74.211%;
	}
	/* サイドあり3/4 */
	.mainContents .ww846,
	.mainContents .w3-4 {
		width: 74.229%;
	}
	/* 1/5 */
	.w208,
	.w1-5 {
		width: 18.246%;
	}
	.w208.cms_fl + .w208.cms_fl,
	.w208.fl + .w208.fl,
	.w1-5.cms_fl + .w1-5.cms_fl,
	.w1-5.fl + .w1-5.fl {
		margin-left: 2.1925%;
	}
	/* その他 */
	.w980 {
		width: 980px;
	}
	.w780 {
		width: 780px;
	}
	.w300 {
		width: 300px;
	}
	/* ご挨拶 */
	.textBox {
		width: 660px;
	}
	.imgBox {
		width: 440px;
	}
}
/* ----------------------
 横幅（SP）
---------------------- */
@media screen and (max-width: 767px) {
	:is(.w258, .w1-4),
	:is(.w208, .w1-5) {
		width: 47.25%;
	}
	:is(.w258, .w1-4).cms_fl,
	:is(.w208, .w1-5).cms_fl {
		float: left !important;
	}
	:is(.w258, .w1-4).cms_fr {
		float: right !important;
	}
	:is(.w258, .w1-4).cms_fl + :is(.w258, .w1-4).cms_fl,
	:is(.w208, .w1-5).cms_fl + :is(.w208, .w1-5).cms_fl,
	:is(.w208, .w1-5).cms_fl + :is(.w208, .w1-5).cms_fl + :is(.w208, .w1-5).cms_fl + :is(.w208, .w1-5).cms_fl {
		margin-left: 5.5%;
	}
	:is(.w258, .w1-4).cms_fl + :is(.w258, .w1-4).cms_fl + :is(.w258, .w1-4).cms_fl {
		margin-bottom: 0;
		margin-left: 0;
	}
	:is(.w208, .w1-5).cms_fl + :is(.w208, .w1-5).cms_fl + :is(.w208, .w1-5).cms_fl {
		margin-left: 0;
	}
	/* サイドあり */
	.mainContents :is(.w258, .w1-4),
	.mainContents :is(.w208, .w1-5) {
		width: 47.41%;
	}
	.mainContents :is(.w258, .w1-4).cms_fl + :is(.w258, .w1-4).cms_fl,
	.mainContents :is(.w208, .w1-5).cms_fl + :is(.w208, .w1-5).cms_fl,
	.mainContents :is(.w208, .w1-5).cms_fl + :is(.w208, .w1-5).cms_fl + :is(.w208, .w1-5).cms_fl + :is(.w208, .w1-5).cms_fl {
		margin-left: 5.18%;
	}
	.mainContents :is(.w258, .w1-4).cms_fl + :is(.w258, .w1-4).cms_fl + :is(.w258, .w1-4).cms_fl {
		margin-bottom: 0;
		margin-left: 0;
	}
	.mainContents :is(.w208, .w1-5).cms_fl + :is(.w208, .w1-5).cms_fl + :is(.w208, .w1-5).cms_fl {
		margin-left: 0;
	}
	/* 3/4サイズは100% */
	:is(.w258, .w1-4) + .w3-4 {
		clear: both;
		width: 100%;
	}
	/* ご挨拶 */
	.textBox {
		margin-bottom: 30px;
	}
}
/* ------------------------------
 ボックス（PC）
------------------------------ */
/* 横並び */
.flexBox {
	display: flex !important;
	flex-wrap: wrap;
}
.box_block.flexBox::after {
	content: none;
}
/* 横並び センター揃え */
.flexBox.jc-c {
	justify-content: center;
}
/* 横並び 端揃え */
.flexBox.jc-sb {
	justify-content: space-between;
}
/* 横並び 縦センター揃え */
.flexBox.ai-c {
	align-items: center;
}
/* 横並び 縦上揃え */
.flexBox.ai-s {
	align-items: start;
}
/* 横並び4列（SP横並び2列） */
.flexBox.div4 {
	flex-wrap: wrap;
	gap: 30px 3.158%;
}
/* 横並びで写真キャプションが上 */
.flexBox.capTop > * {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
/* flexBoxの中でも横並びにしない */
.flexBox.h100p > h2,
.flexBox.h100p > h3 {
	width: 100% !important;
	text-align: center !important;
}
.flexBox .fg-1 {
	flex-grow: 1;
}
@media print, screen and (min-width: 768px) {
	/* 横並び2列 */
	.flexBox.div2 {
		flex-wrap: wrap;
		column-gap: 4.21%;
	}
	.flexBox.div2 > * {
		width: 47.895%;
	}
	.mainContents .flexBox.div2 {
		column-gap: 4.39%;
	}
	.mainContents .flexBox.div2 > * {
		width: 47.805%;
	}
	/* 横並び3列 */
	.flexBox.div3 {
		flex-wrap: wrap;
		column-gap: 3.948%;
	}
	.flexBox.div3 > * {
		width: 30.702%;
	}
	.mainContents .flexBox.div3 {
		column-gap: 3.17%;
	}
	.mainContents .flexBox.div3 > * {
		width: 31.22%;
	}
	/* 横並び4列（SP横並び2列） */
	.flexBox.div4 > * {
		width: 22.632%;
	}
}
/* ------------------------------
 ボックス（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 横並び2列・横並び3列 */
	.flexBox.div2,
	.flexBox.div3 {
		display: block !important;
	}
	/* .flexBox.div2 > * + *,
	.flexBox.div3 > * + * {
		margin-top: 30px;
	} */
	/* 横並び4列（SP横並び2列） */
	.flexBox.div4 {
		flex-wrap: wrap;
		gap: 15px 5.18%;
	}
	.flexBox.div4 > * {
		width: 47.41%;
	}
	/* 横並び4列（SP横並びにしない） */
	.flexBox.div4.sp_nodiv {
		display: block;
	}
	.flexBox.div4.sp_nodiv > * {
		width: 100%;
	}
}
/* ------------------------------
 順番指定
------------------------------ */
@media print, screen and (min-width: 768px) {
	.order1 { order: 1;}
	.order2 { order: 2;}
	.order3 { order: 3;}
}
@media screen and (max-width: 767px) {
	.sp_order1 { order: 1;}
	.sp_order2 { order: 2;}
	.sp_order3 { order: 3;}
}
/* ------------------------------
 テーブル（PC）
------------------------------ */
/* デフォルト */
.contents table {
	width: 100%;
	border-collapse: collapse;
	overflow: hidden;
	border-top: var(--border);;
}
.contents table th {
	padding: 20px 15px 20px 5px;
}
.contents table td {
	padding: 20px 20px 20px 15px;
}
.contents table th {
	font-weight: bold;
}
.contents table th {
	border-bottom: var(--border);;
}
.contents table td {
	border-bottom: var(--border);;
}
@media print, screen and (min-width: 768px) {
	.contents table th {
		width: 25%;
	}
}
/* ------------------------------
 テーブル（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.contents table th {
		padding: 16px 20px 16px 0;
	}
	.contents table td {
		padding: 16px 20px 16px 25px;
	}
	/* レスポンシブ */
	.contents .res table {
		display: block;
        width: 100%;
        box-sizing: border-box;
		word-break: break-all;
        overflow-wrap: break-word;
	}
	.contents .res table th,
	.contents .res table td{
		display: block;
		width: 100%;
		border-bottom: none;
		border-left: none;
	}
	.contents .res table th {
		padding: 20px 0 2px 0;
	}
	.contents .res table td {
		position: relative;
		padding: 0 0 20px 0;
		border-bottom: var(--border);
	}
}
/* ------------------------------
 リスト（PC）
------------------------------ */
/* -- ノーマルリスト●付き -- */
.box_text ul > li,
.cms_image ul > li {
	position: relative;
	padding-left: 1em;
}
.box_text .ti1c ul > li {
	text-indent: 0;
}
.box_text ul > li::before,
.cms_image ul > li::before {
	content: "";
	width: 10px;
	height: 10px;
	background-color: var(--blue-color);
	border-radius: 100%;
	position: absolute;
	top: .6em;
	left: 0;
}
.box_text table ul > li {
	line-height: 1.75;
}
/* -- 数字リスト -- */
.box_text ol {
	margin: 10px 0;
}
.box_text ol > li,
.cms_image ol > li {
	position: relative;
	counter-increment: cnt;
	padding-left: 2.5em;
}
.box_text ol:has(li:nth-child(n + 10)) > li,
.cms_image ol:has(li:nth-child(n + 10)) > li {
	padding-left: 3em;
}
.box_text ol > li::before,
.cms_image ol > li::before {
	content: '（' counter(cnt) '）';
	position: absolute;
	top: 0;
	left: 0;
	color: var(--main-font-color);
}
.box_text ol:has(li:nth-child(n + 10)) > li::before,
.cms_image ol:has(li:nth-child(n + 10)) > li::before {
	width: 3.2em;
	text-align: right;
}
/* ul、ol下スペース */
.box_text ul > li:not(:last-child),
.cms_image ul > li:not(:last-child),
.box_text ol > li:not(:last-child),
.cms_image ol > li:not(:last-child) {
	margin-bottom: 3px;
}
/* 1文字分アキ */
.box_block .box_text.list-mb1c ul > li:not(:last-child),
.box_block .cms_image.list-mb1c ul > li:not(:last-child),
.box_block ul.list-mb1c > li:not(:last-child),
.box_block .box_text.list-mb1c ol > li:not(:last-child),
.box_block .cms_image.list-mb1c ol > li:not(:last-child),
.box_block ol.list-mb1c > li:not(:last-child) {
	margin-bottom: 1em;
}
/* -- 横並びリスト -- */
.inline ul li {
	display: inline-block;
	margin-right: 2em;
}
table .inline ul li {
	margin-right: 1em;
}
@media print, screen and (min-width: 768px) {
	/* 5行で折り返し */
	.list_grid2 ul {
		display: grid;
		grid-auto-flow: column;
		grid-template-rows: repeat(5, auto);
	}
	.list_grid2 ul li {
		align-self: self-start;
	}
	/* 横並び2分割 */
	.list_div4 ul {
		display: flex;
		flex-wrap: wrap;
		column-gap: 1em;
	}
	.list_div4 ul li {
		width: calc((100% - 3em) / 4);
	}
}
/* ------------------------------
 リスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.box_text ul > li::before,
	.cms_image ul > li::before {
		width: 9px;
		height: 9px;
		top: .55em;
	}
	/* ul、ol下スペース */
	.box_text ul > li:not(:last-child),
	.cms_image ul > li:not(:last-child),
	.box_text ol > li:not(:last-child),
	.cms_image ol > li:not(:last-child) {
		margin-bottom: 5px;
	}
}
/* ------------------------------
 リンク（PC）
------------------------------ */
/* -- リンク -- */
.box_text .box_link a::after {
	content: "";
	display: inline-block;
	width: 20px;
	height: 20px;
	background: url(../img/icon_arrow_s.svg) no-repeat;
	vertical-align: middle;
	background-size: cover;
  	margin-left: 8px;
}
/* -- 横並びリンク -- */
.inlineLink {
	display: flex;
	flex-flow: row wrap;
	gap: 60px;
}
/* -- PDFリンク -- */
a.pdf::before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 20px;
	background: url(../img/icon_pdf.svg) no-repeat;
	margin-left: 5px;
	margin-right: 5px;
  	vertical-align: -3px;
}
/* -- エクセルリンク -- */
a.xls::before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 20px;
	background: url(../img/icon_xls.svg) no-repeat;
	margin-left: 5px;
	margin-right: 5px;
  	vertical-align: -3px;
}
/* ------------------------------
 リンク（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* -- 横並びリンク -- */
	.inlineLink {
		gap: 10px 20px;
	}
}
/* ------------------------------
 ボタン（PC）
------------------------------ */
/* -- デフォルト -- */
.btn a,
a.btn {
	display: inline-block;
	position: relative;
	min-width: 210px;
	color: #fff;
	font-weight: 500;
	background-color: var(--blue-color);
	text-decoration: none;
	cursor: pointer;
	transition: .3s ease-in-out;
	border-radius: 54px;
	line-height: 54px;
}
/* ------------------------------
 ボタン（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* -- デフォルト -- */
	.btn a,
	a.btn {
		min-width: 204px;
	}
}
/* ------------------------------
 新着情報（PC）
------------------------------ */
/* -- 新着情報一覧 -- */
.newsList li {
	width: 100%;
	padding: 25px 0;
	border-bottom: var(--border);
}
.newsList li:first-child {
	border-top: var(--border);
}
/* ブランクアイコン */
span.blank {
	display: none;
}
.newsList li a {
	color: var(--main-font-color);
	text-decoration: none;
}
.newsList li a[target="_blank"]::after {
	content: "";
	display: inline-block;
	width: 12px;
	height: 12px;
	background: url(../img/icon_blank.svg) no-repeat;
	vertical-align: middle;
	margin: 0 10px 0.3em;
}
/* NEWアイコン */
.newsList li .headline span.new {
	display: inline-block;
	font-family: "Inter", sans-serif;
	font-size: 1.1rem;
	font-weight: 600;
	color: #fff;
	background-color: #ed1c24;
	letter-spacing: 0.035em;
	border-radius: 3px;
	vertical-align: middle;
	line-height: 18px;
	width: 40px;
	text-align: center;
	margin-left: 10px;
  	margin-bottom: 3px;
}
/* お知らせタイトル */
.newsList .headline {
	width: calc(100% - 110px);
	line-height: 1.5;
}
/* リンクありの場合 */
.newsList .headline a {
	position: relative;
	display: inline-block;
}
/* 日付 */
.date {
	display: inline-block;
	color: #828993;
}
.newsList .date {
	padding-top: 2px;
	line-height: 20px;
	width: 110px;
}
/* -- 新着情報見出し -- */
.newsBlock h1 {
	font-size: 3.6rem;
	position: relative;
	font-weight: 600;
}
.newsBlock h1::before {
	content: "";
	width: 80px;
	height: 2px;
	background-color: var(--blue-color);
	position: absolute;
	bottom: 0;
	left: 0;
}
.newsBlock h1::after {
	content: "";
	display: block;
	width: 100%;
	height: 2px;
	background-color: var(--border-color);
	margin-top: 40px;
}
@media print, screen and (min-width: 768px) {
	.newsList li {
		display: flex;
		align-items: flex-start;
	}
}
/* ------------------------------
 新着一覧（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* -- 新着情報一覧 -- */
	.newsList li {
		padding: 12px 0 13px;
	}
	/* お知らせタイトル */
	.newsList .headline {
		width: 100%;
	}
	/* -- 新着情報見出し -- */
	.newsBlock h1 {
		font-size: 2.2rem;
		line-height: 1.5;
	}
	.newsBlock h1::after {
		margin-top: 25px;
	}
}
