@charset "utf-8";
/* ------------------------------
 見出し&テキスト
------------------------------ */
/* -- H1 -- */
.contents h1 {
	font-size: 4.7rem;
	font-weight: bold;
	line-height: 1.4;
	letter-spacing: 0.05em;
}
/* -- H2 -- */
.contentsHome h3,
.contents h2 {
	font-size: 3.4rem;
	font-weight: bold;
	line-height: 1.4;
	letter-spacing: 0.05em;
	padding-bottom: 15px;
	margin-bottom: 40px;
	border-bottom: solid 2px #173491;
}
.contentsHome h2 {
	font-size: 5.2rem;
	font-weight: bold;
	line-height: 1.4;
	letter-spacing: 0.03em;
	margin-bottom: 30px;
}
/* -- H3 -- */
.contentsHome h4,
.contents h3 {
	font-size: 2.6rem;
	font-weight: bold;
	line-height: 1.4;
	letter-spacing: 0.03em;
	margin-bottom: 20px;
}
.contents h3 .font-en {
	font-size: 1.1rem;
	font-weight: 400;
	color: #1C6FFF;
	display: block;
}
/* -- H4 -- */
.contents h4 {
	font-size: 2.2rem;
	font-weight: bold;
	line-height: 1.4;
	letter-spacing: 0.03em;
	padding-bottom: 10px;
	margin-bottom: 15px;
	border-bottom: solid 1px #656565;
}

/* -- H5 -- */
.contents h5 {
	font-size: 1.9rem;
	font-weight: bold;
	line-height: 1.4;
	letter-spacing: 0.03em;
	margin-bottom: 10px;
}
/* -- メインリード -- */
.mainLead {
	font-size: 2.7rem;
	font-weight: bold;
	line-height: 1.4;
	letter-spacing: 0.03em;
	margin-bottom: 20px;
}
/* -- リード -- */
.lead {
	font-size: 1.8rem;
	font-weight: bold;
	margin-bottom: 15px;
}
/* -- 囲み有り見出し -- */
.contents .frame-title {
	font-size: 1.8rem;
	line-height: 1.4;
	font-weight: bold;
	margin-bottom: 30px;
}
.contents .frame-title span {
	font-size: 88.88888%;
	padding: 5px 15px;
	display: inline-block;
	vertical-align: top;
	margin-top: -3px;
	margin-right: 1em;
	margin-bottom: 8px;
	background-color: #173491;
}
/* -- 囲み線見出し -- */
.contents .box-title {
	font-weight: bold;
	margin-bottom: 25px;
}
.contents .box-title span {
	font-size: 1.6rem;
	line-height: 1.4;
	padding: 8px 15px;
	display: inline-block;
	vertical-align: top;
	border: solid 1px #888888;
}
.contents .box-title span:not(:last-child) {
	margin-bottom: 5px;
}
/* 強調タイトル */
.em-title {
	font-size: 1.8rem;
	font-weight: bold;
	position: relative;
	padding-left: 20px;
	margin-bottom: 5px;
}
.em-title::before {
	content: "";
	width: 14px;
	height: 14px;
	background: #173491;
	position: absolute;
	left: 0;
	top: .4em;
}
/* ------------------------------
 スマホ用コード（見出し）
------------------------------ */
@media screen and (max-width: 767px) {
	/* -- H1 -- */
	.contents h1 {
		font-size: 3.4rem;
	}
	/* -- H2 -- */
	.contentsHome h3,
	.contents h2 {
		font-size: 2.8rem;
		padding-bottom: 10px;
		margin-bottom: 25px;
	}
	.contentsHome h2 {
		font-size: 3.4rem;
		margin-bottom: 15px;
	}
	/* -- H3 -- */
	.contentsHome h4,
	.contents h3 {
		font-size: 2.4rem;
		margin-bottom: 10px;
	}
	/* -- H4 -- */
	.contents h4 {
		font-size: 2rem;
		padding-bottom: 8px;
		margin-bottom: 10px;
	}
	/* -- H5 -- */
	.contents h5 {
		font-size: 1.8rem;
		margin-bottom: 5px;
	}
	/* -- メインリード -- */
	.mainLead {
		font-size: 2.4rem;
		margin-bottom: 5px;
	}
	
}

/* ------------------------------
 ボックス
------------------------------ */
/* 横並び */
.cms_block.flexBox,
.cms_cms.flexBox,
.flexBox {
	display: flex;
	flex-wrap: wrap;
}
.flexBox::after,
.cms_block.flexBox::after {
	display: none;
}
/* 横並び センター揃え */
.flexBox.jc-c {
	justify-content: center;
}
/* 横並び 端揃え */
.flexBox.jc-sb {
	justify-content: space-between;
}
/* 横並び 縦センター揃え */
.flexBox.ai-c {
	align-items: center;
}
/* 横並び 縦上揃え */
.flexBox.ai-fs {
	align-items: flex-start;
}
/* 横並び 縦下揃え */
.flexBox.ai-fe {
	align-items: flex-end;
}
/* --------------------
 PC用限定CSS
--------------------- */
@media print, screen and (min-width: 768px) {
	/* -- 1/2 --- */
	.w546 { width: 546px;}
	.w1-2 { width: 47.895%;}
	
	.cms_fr.w546, .fr.w546,
	.cms_fr.w1-2, .fr.w1-2 {
		margin-left: 0;
	}
	/* -- サイドナビ有 1/2 --- */
	.w410 { width: 410px;}
	.mainContents .w1-2 { width: 47.873%;}
	
	.cms_fr.w410, .fr.w410 {
		margin-left: 0;
	}

	/* -- 1/3 --- */
	.w350 {  width: 350px;}
	.w1-3 { width: 30.702%;}
	/* -- 2/3 --- */
	.w745 { width: 745px;}
	.w2-3 { width: 65.351%;}

	.cms_fl.w350, .fl.w350, .cms_fl.w745, .fl.w745 {
		margin-right: 45px;
	}
	.cms_fl.w1-3, .fl.w1-3, .cms_fl.w2-3, .fl.w2-3 {
		margin-right: 3.947%;
	}
	
	.cms_fr.w350, .fr.w350, .cms_fr.w745, .fr.w745,
	.cms_fr.w1-3, .fr.w1-3, .cms_fr.w2-3, .fr.w2-3 {
		margin-left: 0;
	}
	/* -- サイドナビ有 1/3 --- */
	.w264 { width: 264px;}
	.mainContents .w1-3 { width: 30.497%;}

	.cms_fl.w264, .fl.w264 {
		margin-right: 27px;
	}
	.mainContents .cms_fl.w1-3, .mainContents .fl.w1-3 {
		margin-right: 4.254%;
	}
	/* -- サイドナビ有 2/3 --- */
	.w552 { width: 552px;}
	.mainContents .w2-3 {
		width: 65.249%;
	}

	/* -- 1/4 --- */
	.w258 { width: 258px;}
	.w1-4 { width: 22.696%;}
	/* -- 3/4 --- */
	.w846{ width: 846px !important;}
	.w3-4 { width: 74.232%;}
	
	.cms_fl.w258, .fl.w258, .cms_fl.w846, .fl.w846 {
		margin-right: 36px;
	}
	.cms_fl.w1-4, .fl.w1-4, .cms_fl.w3-4, .fl.w3-4 {
		margin-right: 3.072%;
	}
	.w1-2.cms_fl + .cms_fl.w1-4, .w1-2.fl + .fl.w1-4, .w1-2.cms_fl + .fl.w1-4, .w1-2.fl + .cms_fl.w1-4,
	.w1-2.cms_fl + .cms_fl.w258, .w1-2.fl + .fl.w258, .w1-2.cms_fl + .fl.w258, .w1-2.fl + .cms_fl.w258,
	.w546.cms_fl + .cms_fl.w258, .w546.fl + .fl.w258, .w546.cms_fl + .fl.w258, .w546.fl + .cms_fl.w258,
	.w546.cms_fl + .cms_fl.w1-4, .w546.fl + .fl.w1-4, .w546.cms_fl + .fl.w1-4, .w546.fl + .cms_fl.w1-4 {
		margin-right: 2.632%;
	}
	.cms_fr.w258, .fr.w258, .cms_fr.w846, .fr.w846,
	.cms_fr.w1-4, .fr.w1-4, .cms_fr.w3-4, .fr.w3-4 {
		margin-left: 0;
	}

	/* -- 1/5 --- */
	.w208 { width: 208px;}
	.w1-5 { width: 18.246%;}

	.cms_fl.w208, .fl.w208{
		margin-right: 25px;
	}
	.cms_fl.w1-5, .fl.w1-5 {
		margin-right: 2.194%;
	}
	.cms_fr.w208, .fr.w208,
	.cms_fr.w1-5, .fr.w1-5 {
		margin-left: 0;
	}
	
	/* -- 3/5 --- */
	.w3-5 { width: 59.123%;}
	/* -- 4/5 --- */
	.w907{ width: 907px !important;}
	.w4-5 { width: 79.562%;}
	
	/* -- その他 --- */
	.cms_block {
		width: 1140px;
	}
	.mainContents .cms_block,
	.wide {
		width: 100%;
	}
	.w180 { width: 180px;}
	.w526 { width: 526px;}
	.w522 { width: 522px;}

	/* 横並び2列 */
	.flexBox.div2 {
		flex-flow: row wrap;
		gap: 40px 48px;
	}
	.flexBox.div2 > * {
		width: 546px;
		margin-bottom: 0;
	}
	.mainContents .flexBox.div2 {
		gap: 30px 4.254%;
	}
	.mainContents .flexBox.div2 > * {
		width: 47.873%;
	}
	/* 横並び3列 */
	.flexBox.div3 {
		flex-flow: row wrap;
		gap: 40px 45px;
	}
	.flexBox.div3 > * {
		width: 350px;
		margin-bottom: 0;
	}
	.mainContents .flexBox.div3 {
		gap: 20px 3.947%;
	}
	.mainContents .flexBox.div3 > * {
		width: 30.702%;
	}
	/* 横並び4列（SP横並び2列） */
	.flexBox.div4 {
		gap: 40px 36px;
	}
	.flexBox.div4 > * {
		width: 258px;
		margin-bottom: 0;
	}
	/* 横並び5列（SP横並び2列） */
	.flexBox.div5 {
		gap: 40px 25px;
	}
	.flexBox.div5 > * {
		width: 208px;
		margin-bottom: 0;
	}

	/* 横並び センター揃え */
	.flexBox.pc_jc-c {
		justify-content: center;
	}
	/* 横並び 端揃え */
	.flexBox.pc_jc-sb {
		justify-content: space-between;
	}
	/* 横並び 縦センター揃え */
	.flexBox.pc_ai-c {
		align-items: center;
	}
	/* 横並び 縦下揃え */
	.flexBox.pc_ai-fe {
		align-items: flex-end;
	}

	/* flexbox 順番 */
	.order1 { order: 1;}
	.order2 { order: 2;}
	.order3 { order: 3;}
	.order4 { order: 4;}
}
/* --------------------
 スマホ用コード
--------------------- */
@media screen and (max-width: 767px) {
	/* 横並び2,3列 */
	.flexBox.div2 > *,
	.flexBox.div3 > * {
		width: 100%;
	}
	/* 横並び4,5列（SP横並び2列） */
	.flexBox.div4,
	.flexBox.div5 {
		gap: 15px 5.5%;
	}
	.flexBox.div4 > *,
	.flexBox.div5 > * {
		width: 47.25%;
		margin-bottom: 0;
	}
	
	/* -- 横並びボックス（flexbox） --- */
	/* -- 1/4 --- */
	/* -- 1/5 --- */
	.w1-5, .w208 {
		width: 49%;
	}
	.w4-5 + .w208, .w4-5 + .w1-5 {
		width: 100%;
	}
	.w1-5.fl, .w208.fl, .w208.cms_fl {
		float: left !important;
		margin-right: 2%;
	}
	.w1-5.fr, .w208.fr, .w208.cms_fr {
		float: left !important;
	}
	/* -- 横幅100％ --- */
	.w1-5.sp100, .w208.sp100 {
		width: 100%;
		margin-right: 0 !important;
		float: none !important;
	}
	
	/* flexbox 1/5 */
	.flexBox .w1-5:not(:nth-child(2n)),
	.flexBox .w208:not(:nth-child(2n)),
	.sp_mr2 {
		margin-right: 2%;
	}
	/* -- 横並びボックス（flexbox） センター揃え --- */
	.flexBox.sp_jc-c {
		justify-content: center;
	}
	/* -- 横並びボックス（flexbox） 縦センター揃え --- */
	.flexBox.sp_at-c {
		align-items: center;
	}
	/* -- 横並びボックス（flexbox） 左右別れ --- */
	.flexBox.sp_jc-sb {
		justify-content: space-between;
	}
	/* -- 横並びボックス（flexbox） 縦組み --- */
	.flexBox.sp_fd-c {
		flex-direction: column;
	}
	
	/* -- その他 --- */
	.contents > .cms_block {
		margin-left: 5% !important;
		margin-right: 5% !important;
	}
}

/* ------------------------------
 カテゴリーメニュー
------------------------------ */
.naviBlock > .navi:first-child {
	border-top: solid 1px #656565;
}

.naviBlock > h2 {
	margin-bottom: 0 !important;
}
.naviBlock > .navi {
	width: 100%;
	padding: 30px 0;
	border-bottom: solid 1px #656565;
}
.naviBlock > .cms_text.navi:not(:last-child) {
	margin-bottom: 0;
}
.naviBlock > .navi > a {
	color: #fff;
	text-decoration: none;
	position: relative;
	padding: 30px 45px 30px 5px;
	margin: -30px 0 -30px 0;
	background: url(../img/icon_arrow_r.svg) no-repeat right 3px bottom 17px / 26px 9px;
}
.naviBlock .title {
	font-size: 2.2rem;
	font-weight: bold;
	line-height: 1.4;
}
/* 画像ありのメニュー */
.navi_img p {
	font-size: 2rem;
	font-weight: bold;
}
.navi_img.btn a {
	font-size: 1.6rem;
	height: 70px;
}
/* ------------------------------
 PC用限定CSS
------------------------------ */
@media print, screen and (min-width: 768px) {
	.naviBlock > .navi, .naviBlock > .navi > a {
		width: 100%;
		display: flex;
		align-items: center;
		flex-flow: column;
	}
	.naviBlock .title {
		width: 100%;
	}
	.naviBlock .title + * {
		width: 100%;
		margin-top: 5px;
	}
	/* .naviBlock .title {
		width: 250px;
		padding-right: 20px;
	}
	.naviBlock .title + * {
		width: calc(100% - 255px);
	} */
	/* 縦積みの場合 */
	/* .naviBlock.column > .navi, .naviBlock.column > .navi > a {
		flex-flow: column;
	}
	.naviBlock.column .title {
		width: 100%;
	}
	.naviBlock.column .title + * {
		width: 100%;
		margin-top: 5px;
	} */
	/* hover */
	.naviBlock a:hover, .naviBlock a:focus {
		opacity: 1;
		color: #fff;
		background-size: 26px 9px;
		background-color: rgba(23, 52, 145, 1);
	}
	/* 画像ありのメニュー */
	.navi_img {
		display: flex;
		flex-flow: column;
		margin-bottom: 80px;
	}
	.flexBox.div2 .navi_img {
		margin-bottom: 50px;
	}
	.navi_img > div {
		display: flex;
		flex-flow: column;
		justify-content: space-between;
		gap: 15px 0;
		height: 100%;
	}
}
/* ------------------------------
 スマホ用コード
------------------------------ */
@media screen and (max-width: 767px) {
	.naviBlock > h2 {
		font-size: 2.4rem;
	}
	.naviBlock > .navi {
		padding: 20px 0;
	}
	.naviBlock > .navi a {
		display: block;
		padding: 20px 30px 20px 0;
		margin: -20px 0 -20px 0;
		background: url(../img/icon_arrow_r.svg) no-repeat right 0 bottom 15px / 26px 9px;
	}
	.naviBlock .title {
		font-size: 2rem;
		margin-bottom: 10px;
	}
	.naviBlock .title:last-child {
		margin-bottom: 0;
	}
	/* 画像ありのメニュー  */
	.navi_img > div div {
		margin-bottom: 15px;
	}
	.cms_image.navi_img {
		margin-bottom: 40px;
	}
}



/* ------------------------------
 テーブル
------------------------------ */
/* -- デフォルト -- */
table {
	width: 100%;
	background: #232323;
}
table th, table td {
	text-align: left;
	vertical-align: top;
	border: solid 1px rgba(255, 255, 255, .2);
}
table th {
	font-weight: bold;
	padding: 15px;
	background: #122973;
}
table thead th {
	text-align: center;
}
table td {
	font-weight: 500;
	padding: 15px 20px;
	/*word-break: break-all;*/
}
/* 均等 */
.contents .equality table {
	table-layout: fixed;
}
/* --------------------
 PC用限定CSS
--------------------- */
@media print, screen and (min-width: 768px) {
	table tbody th:first-child {
		min-width: 180px;
	}
}
/* --------------------
 スマホ用コード
--------------------- */
@media screen and (max-width: 767px) {
	table th, table td {
		padding: 12px 15px;
	}
	/* -- レスポンシブ -- */
	.res table th {
		width: auto !important;
		display: block;
		border-bottom: none;
	}
	.res table td {
		width: auto !important;
		display: block;
		border-top: none;
	}
	.res table tr:not(:last-child) td {
		border-bottom: none;
	}
	/* -- 横スクロール -- */
	.scroller table {
		width: 1140px !important;
	}
	.mainContents .scroller table {
		width: 846px !important;
	}
}
/* ------------------------------
 iframe
------------------------------ */
.cms_text iframe {
	width: 100%;
}
.gmap > div {
    position: relative;
    width: 100%;
    padding-top: 61.72161%;
}
.gmap > div + * {
    margin-top: 15px;
}
.gmap > div > iframe {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
}

/* ------------------------------
 スマホ用コード
------------------------------ */
@media screen and (max-width: 767px) {
	.movieBox iframe {
		position: absolute;
		top: 0;
		right: 0;
		width: 100%;
		height: 100%;
	}
	.movieBox {
		position: relative;
		width: 100%;
		padding-top: 67.27272%;
	}
}
/* ------------------------------
 リスト
------------------------------ */
/*  ノーマルリスト */
.cms_text ul > li, 
.cms_image ul > li,
.list ul li {
	line-height: 1.5;
	padding-left: 15px;
	position: relative;
}
.cms_text ul > li:not(:last-child), 
.cms_image ul > li:not(:last-child) {
	margin-bottom: 8px;
}
.cms_text ul > li:before, 
.cms_image ul > li:before,
.list ul li:before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 100%;
	background: #173491;
	position: absolute;
	left: 0;
	top: .6em;
	-webkit-transition: 0.3s ease-in-out;
	transition: 0.3s ease-in-out;
}
ul li.gray:before {
	background: #717171 !important;
}
.cms_text ul > li ul li:before, 
.cms_image ul > li ul li:before {
	width: 6px;
	height: 6px;
	background: #fff;
	left: 2px;
	top: .6em;
}
/* 数字リスト */
ol > li {
	list-style-type:none;
	list-style-position:inside;
	counter-increment: cnt;
	padding-left: 25px;
	position: relative;
}
ol > li:not(:last-child) {
	margin-bottom: 5px;
}
ol > li:before {
	content: counter(cnt);
	font-size: 1.1rem;
	font-weight: bold;
	color: #fff;
	text-align: center;
	line-height: 20px;
	width: 20px;
	height: 20px;
	background: #173491;
	border-radius: 100%;
	position: absolute;
	top: .3em;
	left: 0;
}
ol > li > ol > li {
	counter-increment: cnt2;
}
ol > li > ol > li:before {
	content: counter(cnt2);
}
/* 強調リスト */
.emList ul li {
	font-size: 1.8rem;
	font-weight: bold;
	background: #232323;
	padding: 15px 15px 15px 35px;
}
.emList ul li:not(:last-child) {
	margin-bottom: 10px;
}
.emList ul li:before {
	width: 10px !important;
	height: 10px !important;
	left: 18px !important;
	top: 1.3em !important;
	background: none;
	border-radius: 0;
}
.emList ul li ul {
	padding: 15px 15px 0;
	background: #121212;
	margin: 15px -15px -15px -35px;
}
.emList ul li ul li {
	font-size: 1.6rem;
	font-weight: normal;
	background: none;
	padding: 0 0 0 35px;
}
.emList ul li ul li:not(:last-child) {
	margin-bottom: 5px;
}
.emList ul li ul li:before {
	top: .5em !important;
}
/* チェックリスト */
.checkList ul > li {
	padding-left: 20px;
}
.checkList ul > li::before {
	content: "";
	width: 15px;
	height: 15px;
	background: #173491;
	border-radius: 0;
	left: 0;
	top: .4em;
}
.checkList ul > li::after {
	content: "";
	width: 14px;
	height: 12px;
	background: url(../img/icon_check.svg) no-repeat 0 0 / cover;
	position: absolute;
	left: 3px;
	top: .35em;
}
/* 注釈リスト */
.notesList ul > li,
.cms_text ul.notesList > li {
	padding-left: 20px;
}
.notesList ul > li:before,
.cms_text ul.notesList > li:before {
	content: "※";
	left: 0;
	top: 0;
	width: auto;
	height: auto;
	border-radius: 0;
	background: none;
}
/* --------------------
 PC用限定CSS
--------------------- */
@media print, screen and (min-width: 768px) {
	/* 横並び 分割 */
	.list_div2 > ul,
	.list_div3 > ul {
		display: flex;
		flex-flow: row wrap;
	}
	.list_div2 > ul {
		gap: 0 48px;
	}
	.list_div2 > ul > li {
		width: calc((100% - 48px) / 2);
	}
	.list_div3 > ul {
		gap: 0 45px;
	}
	.list_div3 > ul > li {
		width: calc((100% - 90px) / 3);
	}
}
/* --------------------
 スマホ用コード
--------------------- */
@media screen and (max-width: 767px) {
	.emList ul li {
		font-size: 1.7rem;
	}
}

/* ------------------------------
 ページ内リンク
------------------------------ */
.pageInLink {
	background: #2a2a2a;
}
.pageInLink summary {
	font-size: 2.3rem;
	line-height: 1;
	height: 70px;
	padding: 10px 25px;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	background: #232323;
	position: relative;
	cursor: pointer;
	list-style: none;
}
.pageInLink summary::-webkit-details-marker {
	display:none;
}
/* 開閉ボタン */
.pageInLink summary::before,
.pageInLink summary::after {
	font-size: 1.1rem;
	width: 70px;
	padding-bottom: 10px;
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	transition: 0.3s ease-in-out;
}
.pageInLink summary::before {
	content: "OPEN";
	background: #173491 url(../img/icon_arrow_b.svg) no-repeat center bottom 20px / 16px 10px;
}
.pageInLink summary::after {
	content: "CLOSE";
	background: #173491 url(../img/icon_arrow_t.svg) no-repeat center bottom 20px / 16px 10px;
	opacity: 0;
}
.pageInLink details[open] summary::before {
	opacity: 0;
}
.pageInLink details[open] summary::after {
	opacity: 1;
}
.pageInLink ul {
	padding: 15px 25px;
}
.pageInLink ul a:not(:hover):not(:focus) {
	text-decoration: none;
}
.pageInLink ul li {
	padding-left: 0;
}
.pageInLink ul li a:not(:hover) {
	color: #fff;
}
.pageInLink ul li::before {
	display: none;
}
/* --------------------
 スマホ用コード
--------------------- */
@media screen and (max-width: 767px) {
	.pageInLink summary {
		font-size: 1.9rem;
		height: 50px;
		padding: 10px 20px;
	}
	/* 開閉ボタン */
	.pageInLink summary::before,
	.pageInLink summary::after {
		font-size: 1rem;
		width: 50px;
		padding-bottom: 5px;
		background-size: 12px 8px;
		background-position: center bottom 12px;
	}
	.pageInLink ul {
		padding: 15px 20px;
	}
}
/* ------------------------------
 囲み
------------------------------ */
.boxed {
	padding: 50px 60px;
	border: solid 1px #888888;
}
/* padding 小 */
.boxed.size-s {
	padding: 25px 30px;
}
/* --------------------
 スマホ用コード
--------------------- */
@media screen and (max-width: 767px) {
	.boxed {
		padding: 25px;
	}
	/* padding 小 */
	.boxed.size-s {
		padding: 20px;
	}
}
/* ------------------------------
 囲み背景
------------------------------ */
.bgBox {
	padding: 50px 60px;
	background: #232323;
}
/* padding 小 */
.bgBox.size-s {
	padding: 35px 40px;
}
/* padding 小 */
.bgBox.size-ss {
	padding: 30px;
}
/* --------------------
 スマホ用コード
--------------------- */
@media screen and (max-width: 767px) {
	.bgBox {
		padding: 25px; 
	}
	/* padding 小 */
	.bgBox.size-s {
		padding: 20px;
	}
}
/* ------------------------------
 ボタン
------------------------------ */
.btn a {
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 1.4;
	color: #fff;
	text-align: center;
	text-decoration: none;
	width: 546px;
	height: 90px;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 5px 60px;
	background-color: #121212;
	border: solid 1px #a0a0a0;
	transition: 0.3s ease-in-out;
	position: relative;
	z-index: 1;
}
.btn.size-s a {
	font-size: 1.6rem;
	height: 70px;
}
.bgBox .btn a {
	background-color: transparent;
}
.btn a::after {
	content: "";
	opacity: 0;
	position: absolute;
	top: -1px;
	left: -1px;
	right: -1px;
	bottom: -1px;
	background-color: rgba(23, 52, 145, 1);
	transition: 0.3s ease-in-out;
	z-index: -1;
}
.btn:not(.list) a {
	background-image: url(../img/icon_arrow_r.svg);
	background-size: 33px 11px;
	background-repeat: no-repeat;
	background-position: right 17px bottom 19px;
}
.btn.wide a {
	width: 100%;
}
.btn a.cms_link,
p.cms_link.btn a,
.btn-line a.cms_link,
p.cms_link.btn-line a {
	text-decoration: none;
}
.btn a.cms_link::before,
p.cms_link.btn a::before {
	display: none;
}
/* -- 一覧 -- */
.list.btn a::before {
	content: "";
}
.btn.list a {
	background-image: url(../img/icon_square.svg);
	background-size: 16px 16px;
	background-repeat: no-repeat;
	background-position: 40px center;
}
.btn.list a {
	background-image: url(../img/icon_square.svg);
	background-size: 16px 16px;
	background-repeat: no-repeat;
	background-position: 40px center;
}
/* -- ページ内リンクボタン -- */
.p-in-link.btn a {
	background-image: url(../img/icon_arrow_simple_b.svg);
	background-size: 17px 10px;
	background-repeat: no-repeat;
	background-position: right 22px center;
}
/* -- CONTACT -- */
.contact.btn a {
	color: #121212;
	background-color: #e6ff00;
	border: none;
}
.btn.contact a {
	background-image: url(../img/icon_arrow_blk_r.svg);
}
.contact.btn a span {
	padding-left: 28px;
	position: relative;
}
.contact.btn a span::before,
.contact.btn a span::after {
	content: "";
	width: 23px;
	height: 17px;
	display: inline-block;
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	margin: auto;
}
.contact.btn a span::before {
	background: url(../img/icon_mail_blk.svg) no-repeat 0 0 / cover;
}
/* センター表示 */
.tac .btn a,
.tac.btn a {
	margin-left: auto;
	margin-right: auto;
}
/* センター表示 */
.tar .btn a,
.tar.btn a {
	margin-left: auto;
	margin-right: 0;
}
/* 横並びボタン */
.inline-btn {
	display: flex;
	justify-content: center;
	flex-flow: row wrap;
	text-align: center;
	gap: 45px 48px;
}
.mainContents .inline-btn {
	gap: 35px 36px;
}
.cms_block.inline-btn::after {
	content: none;
}
.inline-btn > br {
	display: none;
}
.inline-btn p + p {
	margin-top: 0;
}
.inline-btn.nowrap > * {
	width: 100%;
}
.inline-btn.nowrap > *:only-child {
	width: 47.895%;
}
.inline-btn.nowrap > * a {
	width: 100%;
}
/* --------------------
 PC用限定CSS
--------------------- */
@media print, screen and (min-width: 768px) {
	.btn a:hover, .btn a:focus,
	.btn a:hover::after, .btn a:focus::after {
		color: #fff;
		opacity: 1;
	}
	.mainContents .btn:not(.wide) a {
		width: 405px;
	}
	.btn:not(.list):not(.p-in-link) a::after {
		background-image: url(../img/icon_arrow_r.svg);
		background-size: 33px 11px;
		background-repeat: no-repeat;
		background-position: right 18px bottom 20px;
	}
	/* -- 一覧 -- */
	.btn.list a::after {
		background-image: url(../img/icon_square.svg);
		background-size: 16px 16px;
		background-repeat: no-repeat;
		background-position: 41px center;
	}
	/* -- ページ内リンクボタン -- */
	.p-in-link.btn a::after {
		background-image: url(../img/icon_arrow_simple_b.svg);
		background-size: 17px 10px;
		background-repeat: no-repeat;
		background-position: right 23px center;
	}
	/* -- CONTACT -- */
	.contact.btn a:hover, .contact.btn a:focus {
		color: #fff;
	}
	.contact.btn a span::after {
		opacity: 0;
		background: url(../img/icon_mail.svg) no-repeat 0 0 / cover;
		transition: 0.3s ease-in-out;
	}
	.contact.btn a:hover span::after, .contact.btn a:focus span::after {
		opacity: 1;
	}
	.bgBox .btn.f18 a {
		font-size: 1.8rem;
	}
}
/* --------------------
 スマホ用コード
--------------------- */
@media screen and (max-width: 767px) {
	.btn a {
		font-size: 1.8rem;
		width: 100%;
		min-width: auto;
		height: auto;
		padding: 20px 40px;
		min-height: 70px;
	}
	.btn.size-s a {
		font-size: 1.6rem;
		min-height: 50px;
	}
	.btn:not(.list) a {
		background-size: 22px 7px;
	}
	/* -- 一覧 -- */
	.btn.list a {
		background-position: 20px center;
	}
	.inline-btn, .mainContents .inline-btn {
		gap: 10px 15px;
	}
	.inline-btn > * {
		width: 100%;
	}
}

/* ------------------------------
 STEPリスト
------------------------------ */
.stepList > * {
	margin-bottom: 12px;
	position: relative;
}
.stepList ul {
	padding: 25px 40px;
	background-color: #232323;
}
.stepList .next ul {
	padding-bottom: 13px;
}
.stepList ul li {
	display: flex;
	align-items: flex-start;
	position: relative;
	padding-left: 0;
	margin-bottom: 0 !important;
}
.stepList ul li:not(:last-child),
.stepList .next ul li:last-child {
	padding-bottom: 12px;
}
.stepList ul li::before {
	display: none;
}
.stepList ul li:not(:last-child)::after,
.stepList .next ul li:last-child::after,
.stepList .next + .item::before {
	content: "";
	width: 2px;
	position: absolute;
	top: 32px;
	bottom: 0;
	left: 16px;
	background-color: #173491;
}
.stepList .next + .item::before {
	top: -30px;
	bottom: -26px;
	left: 56px;
	z-index: 1;
}
.stepList .item {
	font-weight: bold;
	text-align: center;
	padding-bottom: 5px;
	margin-bottom: 0;
}
.stepList ul li p {
	font-size: 1.6rem;
	font-weight: bold;
	line-height: 35px;
	text-align: center;
	width: 35px;
	height: 35px;
	border-radius: 100%;
	background-color: #173491;
	margin-right: 8px;
}
.stepList ul li p + * {
	padding-top: 5px;
	width: calc(100% - 38px);
}
/* .stepList ul li.back::before {
	content: "";
	width: 20px;
	height: 10px;
	background-image: url(../img/white_arrow_l.png);
	background-size: cover;
	background-position: 0 0;
	position: absolute;
	top: calc(50% + 20px);
	left: calc(100% - 1px);
	margin: auto;
} */
/* --------------------
 PC用限定CSS
--------------------- */
@media print, screen and (min-width: 768px) {
	.stepList:not(.wide) {
		width: 522px;
		margin-left: 0;
	}
}
/* --------------------
 スマホ用コード
--------------------- */
@media screen and (max-width: 767px) {
	.stepList ul {
		padding: 20px;
	}
	.stepList .next + .item::before {
		top: -25px;
		bottom: -21px;
		left: 36px;
	}
}
/* ------------------------------
 STEP詳細
------------------------------ */
.step-item {
	font-size: 1.8rem;
	font-weight: bold;
	text-align: center;
	padding: 10px;
	margin-bottom: 40px;
	background-color: #333;
	position: relative;
}
.step-item::after {
	content: "";
	width: 18px;
	height: 9px;
	clip-path: polygon(50% 100%, 0 0, 100% 0);
	background-color: #333;
	display: block;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	margin: auto;
}
.stepBox {
	padding-left: 79px;
	position: relative;
}
.stepBox .cms_text {
	margin-bottom: 20px;
}
.stepBox:not(.last) {
	padding-bottom: 60px;
	margin-bottom: 0;
}
.stepBox:not(.last)::before,
.stepBox + .step-item::before {
	content: "";
	width: 3px;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 26px;
	background-color: #173491;
}
.stepBox + .step-item::before {
	bottom: -40px;
}
.stepBox h3 {
	font-size: 2.4rem;
	margin-bottom: 25px;
	position: relative;
}
.stepBox > h3:last-child {
	margin-bottom: 0;
}
.stepBox h3 span {
	font-size: 2.1rem;
	font-weight: bold;
	line-height: 56px;
	text-align: center;
	width: 56px;
	height: 56px;
	border-radius: 100%;
	background-color: #173491;
	position: absolute;
	top: -13px;
	left: -79px;
}
.stepBox h4 {
	font-size: 1.8rem;
	font-weight: bold;
	padding-bottom: 0;
	border-bottom: 0;
}
.divBox.flexBox {
	gap: 0 16px;
	margin-bottom: 20px;
}
.divBox:not(.flexBox),
.divBox.flexBox > div {
	padding: 20px 25px;
	background-color: #232323;
}
/* --------------------
 PC用限定CSS
--------------------- */
@media print, screen and (min-width: 768px) {
	.divBox.flexBox > div {
		width: calc((100% - 32px) / 3);
	}
}
/* --------------------
 スマホ用コード
--------------------- */
@media screen and (max-width: 767px) {
	.step-item {
		font-size: 1.7rem;
		padding: 5px;
		margin-bottom: 30px;
	}
	.stepBox {
		padding-left: 54px;
	}
	.stepBox .cms_text {
		margin-bottom: 25px;
	}
	.stepBox:not(.last) {
		padding-bottom: 40px;
	}
	.stepBox:not(.last)::before,
	.stepBox + .step-item::before {
		left: 20px;
	}
	.stepBox + .step-item::before {
		bottom: -20px;
	}
	.stepBox h3 {
		font-size: 2rem;
		margin-bottom: 20px;
	}
	.stepBox h3 span {
		font-size: 1.8rem;
		line-height: 44px;
		width: 44px;
		height: 44px;
		top: -10px;
		left: -54px;
	}
	.stepBox h4 {
		font-size: 1.6rem;
		margin-bottom: 8px;
	}
	.divBox.flexBox {
		gap: 8px;
	}
	.divBox.flexBox > div {
		width: 100%;
	}
}
/* ------------------------------
 記事カテゴリ
------------------------------ */
/* -- 新着一覧 -- */
.newsList a {
	text-decoration: none;
}
.newsList a:focus, .newsList a:hover {
	text-decoration: underline;
}
.newsList li {
	line-height: 1.4;
	display: flex;
	align-items: flex-start;
	flex-flow: row wrap;
	padding-bottom: 25px;
    border-bottom: solid 1px #4d4d4d;
}
.newsList li:not(:last-child) {
    margin-bottom: 25px;
}
/* 記事日付 */
.date {
	font-weight: 500;
	line-height: 1.4;
	color: #c4c4c4;
}
.flexBox > .date {
	margin-right: 12px;
}
.newsList .date {
	font-size: 1.4rem;
	width: 122px;
}
/* 記事カテゴリー */
.cate, .cateBox span {
	font-size: 1.2rem;
	font-weight: 500;
	color: #c4c4c4;
	padding: 0 4px;
	line-height: 20px !important;
	text-align: center;
	vertical-align: middle;
	display: inline-block;
	border: solid 1px #a0a0a0;
}
.newsList .cate {
	width: 110px;
	margin-right: 12px;
}
.cateBox {
	display: flex;
	flex-flow: row wrap;
	gap: 8px 8px;
}
.cateBox:not(:last-child) {
	margin-bottom: 5px;
}
.naviBlock .navi .cateBox {
	margin-bottom: 10px;
}
/* 新着テキスト */
.newsList .boxText {
	font-weight: bold;
}
/* --------------------
 PC用限定CSS
--------------------- */
@media print, screen and (min-width: 768px) {
	/* -- 新着一覧 -- */
	.mainContents .newsList li:first-child {
		padding-top: 25px;
		border-top: solid 1px #4d4d4d;
	}
	.newsList .boxText a {
		display: inline;
		position: relative;
		text-decoration: none;
	}
	.newsList .boxText {
		width: calc(100% - 244px);
	}
}
/* ----------------------
 スマホ用コード
---------------------- */
@media screen and (max-width: 767px) {
	.newsList li:first-child {
		padding-top: 20px;
		border-top: solid 1px #4d4d4d;
	}
	.newsList li {
		padding-bottom: 20px;
	}
	.newsList li:not(:last-child) {
		margin-bottom: 20px;
	}
	.newsList .boxText {
		width: 100%;
		margin-top: 10px;
	}
}

/* ------------------------------
 アイコン
------------------------------ */
/* 丸矢印アイコン */
p.cms_link:not(.btn) a, 
a.cms_link,
.iconLink a, 
.pLink a,.dlLink a {
	font-weight: bold;
	color: #fff;
	line-height: 1.5;
	margin-left: 20px;
	display: inline-block;
	position: relative;
}
/* .cms_link打消し↓ */
.caseBlock a.cms_link {
	line-height: 1.75;
	font-weight: normal;
	display: flex;
	margin-left: 0;
}
.btn a.cms_link {
	display: flex;
	margin-left: 0;
}
.btn a.cms_link::after {
	background-image: url(../img/icon_arrow_r.svg);
}
/* .cms_link打消し↑ */

p.cms_link:not(.dlLink) a::before, 
a.cms_link::before, .iconLink a::before,  
.pLink a::before {
	content: "";
	width: 13px;
	height: 13px;
	position: absolute;
	top: .25em;
	left: -20px;
}
.caseBlock a.cms_link::before {
	content: none;
}
p.cms_link:not(.pLink):not(.dlLink):not(.btn) a::before, 
a.cms_link::before,
.iconLink a::before {
	background: url(../img/icon_c_arrow_r.svg) no-repeat 0 0 / cover;
}
/* ページ内リンク（単体） */
.pLink a::before {
	background: url(../img/icon_c_arrow_b.svg) no-repeat 0 0 / cover;
}
/* ダウンロード */
.dlLink a::before {
	content: "";
	width: 16px;
	height: 15px;
	background: url(../img/icon_dl.svg) no-repeat 0 0 / cover;
	position: absolute;
	top: .25em;
	left: -20px;
}
.iconLink li, .pLink li, .dlLink li {
	padding-left: 0 !important;
}
.iconLink li::before, .pLink li::before, .dlLink li::before {
	display: none;
}
.iconLink li:not(:last-child),
.pLink li:not(:last-child) {
	margin-bottom: 5px;
}
p.cms_link:not(.btn):not(.dlLink) a[target="_blank"]::after, 
a.cms_link[target="_blank"]::after {
	content: '';
	width: 9px;
	height: 7px;
	margin-left: 5px;
	margin-bottom: .2em;
	display: inline-block;
	background: url(../img/icon_blank.svg) no-repeat 0 0 / cover;
}
/* 色なしリンク */
.no-c_link a {
	color: #fff;
}
.no-c_link a[target="_blank"]::after {
	background-image: url(../img/icon_blank.svg) !important;
}
/* --------------------
 PC用限定CSS
--------------------- */
@media print, screen and (min-width: 768px) {
	p.cms_link a:hover, p.cms_link a:focus,
	a.cms_link a:hover, a.cms_link a:focus,
	.iconLink a:hover, .iconLink a:focus,
	.pLink a:hover, .pLink a:focus,
	.dlLink a:hover, .dlLink a:focus {
		opacity: 1;
	}
	
}
/* ----------------------
 スマホ用コード
---------------------- */
@media screen and (max-width: 767px) {
	.iconLink li:not(:last-child),
	.pLink li:not(:last-child) {
		margin-bottom: 10px;
	}
}
/* ------------------------------
 画像とテキストリンク
------------------------------ */
.linkBox a {
	color: #fff;
	display: block;
	text-decoration: none;
	background: none;
 }
 .linkBox .imgBox {
	 margin-bottom: 15px;
 }
 .linkBox .imgBox img {
	 width: 100%;
 }
 .linkBox .title {
	 font-size: 2rem;
	 font-weight: bold;
	 line-height: 1.4;
 }
 /* ----------------------
  スマホ用コード
 ---------------------- */
 @media screen and (max-width: 767px) {
	 .linkBox .imgBox {
		 margin-bottom: 10px;
	 }
	 .linkBox .title {
		 font-size: 1.8rem;
	 }
 }
 /* --------------------
 PC用限定CSS hover下線
--------------------- */
 @media print, screen and (min-width: 768px) {
	 .articleBox a .title, .linkBox a .title {
		 display: inline-block;
		 background-repeat: no-repeat;
		 background-position: left bottom;
		 background-size: 0 1px;
		 transition: background-size 0.3s;
		 transition: 0.3s ease-in-out;
		 background-image: linear-gradient(90deg, #fff, #fff); /* 線の色 */
	 }
	 .articleBox a:hover .title, .articleBox a:focus .title,
	 .linkBox a:hover .title, .linkBox a:focus .title {
		 text-decoration: none;
		 background-size: 100% 1px;
	 }
 }
 /* ------------------------------
 矢印付BOX
------------------------------ */
.arrowBox .beforeBox,
.arrowBox .afterBox {
	padding: 25px 30px;
}
.arrowBox .beforeBox,
.arrowBox .cms_text.beforeBox {
	background-color: #232323;
	margin-bottom: 30px;
	position: relative;
}
.arrowBox .beforeBox::after {
	content: "";
	width: 15px;
	height: 35px;
	background: url(../img/icon_bottom_arrow.svg) no-repeat 0 0 / cover;
	position: absolute;
	top: calc(100% - 10px);
	left: 22px;
}
.arrowBox .afterBox {
	background-color: #173491;
}
/* ----------------------
スマホ用コード
---------------------- */
@media screen and (max-width: 767px) {
	.arrowBox .beforeBox,
	.arrowBox .afterBox {
		padding: 20px;
	}
}

 /* ------------------------------
 開発実績等
------------------------------ */
.caseBlock .navi {
	background-color: #232323;
	padding: 30px 50px 30px 40px;
}
.caseBlock .navi:not(:last-child) {
	margin-bottom: 10px;
}
.caseBlock .navi h4 {
	border-bottom: none;
	padding-bottom: 0;
}
.caseBlock .navi h4:last-child {
	margin-bottom: 0;
}
.caseBlock .navi > a {
	color: #fff;
	display: flex;
	position: relative;
	background: none;
	margin: -30px -50px -30px -40px;
	padding: 30px 50px 30px 40px;
}
.caseBlock .navi > a::after {
	content: "";
	width: 48px;
	height: 48px;
	background: #173491 url(../img/icon_arrow_r.svg) no-repeat center center / 18px 7px;
	position: absolute;
	bottom: 0;
	right: 0;
}
.caseBlock.flexBox h2 {
	width: 100%;
	margin-bottom: 0;
}
/* --------------------
 PC用限定CSS
--------------------- */
 @media print, screen and (min-width: 768px) {
	.caseBlock.flexBox {
		gap: 30px 36px;
	}
	.caseBlock.flexBox .navi {
		display: flex;
		width: calc((100% - 36px) / 2);
		margin-bottom: 0;
	}
	.caseBlock.flexBox .navi > * {
		width: calc(100% + 50px + 40px);
	}
	.caseBlock .navi > a:hover, .caseBlock .navi > a:focus {
		color: #fff;
		background-color: #173491;
	}
	.caseBlock .navi > a:hover ul > li::before, .caseBlock .navi > a:focus ul > li::before {
		background: #fff;
	}
}
/* ----------------------
スマホ用コード
---------------------- */
@media screen and (max-width: 767px) {
	.caseBlock .navi {
		padding: 25px
	}
	.caseBlock.flexBox .navi {
		width: 100%;
	}
	.caseBlock .navi > a {
		margin: -25px;
		padding: 25px;
	}
	.caseBlock .navi > a::after {
		width: 25px;
		height: 25px;
		background-size: 14px 5px;
	}
}

/* ------------------------------
 ソフトウエア開発 業務領域
------------------------------ */
.software-table{
    position: relative;
}
.software-table:before{
    content:"";
	width: 207px;
	height: 41px;
	display: block;
	background: url(../img/bg_software_table_arrow01.png) no-repeat;
	position: absolute;
	bottom: 307px;
	left: 460px;
}
.software-table:after{
    content:"";
	width: 260px;
	height: 41px;
	display: block;
	background: url(../img/bg_software_table_arrow02.png) no-repeat;
	position: absolute;
	bottom: 122px;
	left: 260px;
}
.software-table tr:first-child th {
    width: calc(100% / 5);
}
.software-table tr:first-child td:first-child{
    background: #003f7a;
	border-bottom: none;
}
.software-table tr:nth-child(2) td:first-child{
	width: 38px;
	padding: 0;
	background: #003f7a;
	border-top: none;
}
.software-table tr td.bk-lblue {
    background: #1a5288;
}
.software-table tr:nth-child(4) td:first-child{
    background: #007187;
}
.software-table tr:nth-child(5) td:first-child{
    background: #192230;
}
.software-table td p.bold{
	line-height: 1.4 !important;
}
.software-table td p.dot{
	position: relative;
	padding-left: 15px;
	font-weight: bold;
}
.software-table td p.dot:before{
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 100%;
	background: #fff;
	position: absolute;
	left: 0;
	top: .6em;
}
.cms_text.software-table ul {
	margin-top: 10px;
}
.cms_text.software-table ul > li {
	line-height: 1.2;
	margin-bottom: 0.7em;
}
.cms_text.software-table ul > li:last-child {
	margin-bottom: 0;
}
.cms_text.software-table ul > li:before {
	background: #1a66a1 !important;
	left: 0;
	top: 0.3em !important;
}
.software-table tr:nth-child(4) td ul > li:before{
    background: #007187 !important;
}
@media screen and (max-width: 767px) {
	.software-table:before{
		bottom: 290px;
	}
	.software-table:after{
		bottom: 110px;
	}
}

/* ------------------------------
 設計実績・導入事例 絞り込み
------------------------------ */
.selectTab h5 {
	font-size: 2rem;
	padding-left: 25px;
	position: relative;
}
.selectTab h5::before {
	content: "";
	width: 19px;
	height: 19px;
	position: absolute;
	top: 4px;
	left: 0;
	background: url(../img/icon_search_blue.svg) no-repeat 0 0 / cover;
}
.selectTab ul {
	display: flex;
	flex-flow: row wrap;
	gap: 10px 10px;
}
.selectTab ul li {
	font-weight: bold;
	text-align: center;
	width: 130px;
	padding: 0;
	display: flex;
	justify-content: center;
	background-color: #000;
	margin-bottom: 0 !important;
}
.selectTab ul li a {
	line-height: 1.4;
	color: #fff;
	padding: 3px;
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	background-image: none !important;
}
.selectTab ul li::before {
	display: none;
}
/* --------------------
 PC用限定CSS
--------------------- */
@media print, screen and (min-width: 768px) {
	.selectTab ul li.select a,
	.selectTab ul li a:hover, .selectTab ul li a:focus {
		background-color: #173491;
	}
}

/* ------------------------------
 40年の歩み 画像上の文字
------------------------------ */
.cms_block.long-image {
	width: 100%;
	height: 200px;
	position: relative;
	z-index: 1;
	padding: 0;
}
.long-image img {
	object-fit: cover;
    height: 200px;
	width: 100%;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 0;
}
.long-image .cms_caption_b {
	font-size: 1.8rem;
	font-weight: bold;
	text-align: center;
	line-height: 1.5;
	height: 200px;
	margin: 0;
	position: relative;
	z-index: 5;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: row;
}
.long-image .cms_caption_b {
	font-size: 1.8rem;
	font-weight: bold;
	text-align: center;
	line-height: 1.5;
	height: 200px;
	margin: 0;
	position: relative;
	z-index: 5;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-flow: column;
}
.long-image .cms_caption_b strong {
	font-size: 4.5rem;
}
.long-image .cms_caption_b strong small {
	font-size: 50%;
}
/* ----------------------
スマホ用コード
---------------------- */
@media screen and (max-width: 767px) {
	.long-image .cms_caption_b strong {
		line-height: 1.2;
	}
}
