@charset "utf-8";

/* ------------------------------
 リンク
------------------------------ */
/* -- テキストリンク -- */
.cms_block a {
	display: inline;
}
.cms_block a {
	color: var(--gray-color);
	text-decoration: underline;
}
/* target="_blank" */
.cms_block .cms_text a[target="_blank"]::after {
	content: "";
	display: inline-block;
	width: 11px;
	height: 11px;
	margin: -2px 5px 0;
	background: url(../img/icon_blank.svg) no-repeat center / cover;
	vertical-align: middle;
}
/* -- アイコンリンク -- */
.cms_pdf a,
a.cms_pdf,
.cms_doc a,
a.cms_doc,
.cms_xls a,
a.cms_xls {
	position: relative;
	display: inline-block;
	text-decoration: none;
}
.cms_block .cms_link a,
.cms_block a.cms_link {
	color: var(--main-font-color);
	text-decoration: none;
}
.cms_link:not(.btn) a,
a.cms_link:not(.btn),
a .cms_link span {
	position: relative;
	display: inline-block;
	font-size: 1.7rem;
	font-weight: bold;
	padding-top: 4px;
}
.cms_link:not(.btn) a::before,
a.cms_link:not(.btn)::before,
a .cms_link span::before {
	content: "";
	width: calc(100% - 70px);
	height: 1px;
	background-color: #333;
	position: absolute;
	left: 0;
	bottom: 10px;
}
.cms_link:not(.btn) a::after,
a.cms_link:not(.btn)::after,
a .cms_link span::after {
	content: "";
	display: inline-block;
	width: 56px;
	height: 56px;
	margin: -3px 0 0 14px;
	background: url(../img/arrow_link.svg) no-repeat left calc(50% + 1px) top 50% / 10px 16px, 
				linear-gradient(225deg, rgba(93, 240, 254, 1) 0%, 20%, rgba(0, 50, 123, 1) 50%, 80%, rgba(10, 127, 211, 1) 100%);
	border-radius: 100%;
	vertical-align: middle;
}
/* リンク中 */
.link-m .cms_link:not(.btn) a::before,
.link-m a.cms_link:not(.btn)::before,
.link-m a .cms_link span::before {
	width: calc(100% - 48px);
	bottom: 5px;
}
.link-m .cms_link:not(.btn) a::after,
.link-m a.cms_link:not(.btn)::after,
.link-m a .cms_link span::after {
	width: 40px;
	height: 40px;
	background-size: 9px 13px, cover;
	margin-left: 8px;
}
/* リンク小 */
.link-s .cms_link:not(.btn) a,
.link-s a.cms_link:not(.btn),
.link-s .cms_link span {
	font-size: 1.6rem;
}
.link-s .cms_link:not(.btn) a::before,
.link-s a.cms_link:not(.btn)::before,
.link-s a .cms_link span::before {
	width: calc(100% - 44px);
	bottom: 3px;
}
.link-s .cms_link:not(.btn) a::after,
.link-s a.cms_link:not(.btn).cms_link:not(.btn)::after,
.link-s a .cms_link span::after {
	width: 36px;
	height: 36px;
	margin-left: 8px;
	background-size: 7px 11px, cover;
}
/* ブランクアイコン */
.cms_link:not(.btn) a[target="_blank"]::after,
a[target="_blank"].cms_link:not(.btn)::after,
a[target="_blank"] .cms_link span::after {
	background: url(../img/icon_blank_w.svg) no-repeat left 50% top 50% / 16px 16px, 
				linear-gradient(225deg, rgba(93, 240, 254, 1) 0%, 20%, rgba(0, 50, 123, 1) 50%, 80%, rgba(10, 127, 211, 1) 100%);
}
.link-m .cms_link:not(.btn) a[target="_blank"]::after,
.link-m a[target="_blank"].cms_link:not(.btn)::after,
.link-m a[target="_blank"] .cms_link span::after {
	background-size: 12px 12px, cover;
}
.link-s .cms_link:not(.btn) a[target="_blank"]::after,
.link-s a[target="_blank"].cms_link:not(.btn)::after,
.link-s a[target="_blank"] .cms_link span::after {
	background-size: 11px 11px, cover;
}
/* ページ内リンク */
.cms_link:not(.btn) a[href^="#"]::after,
a[href^="#"].cms_link:not(.btn)::after {
	transform: rotate(90deg);
}
/* PDF */
.cms_pdf a,
a.cms_pdf,
.cms_doc a,
a.cms_doc,
.cms_xls a,
a.cms_xls {
	color: #5a6b80;
	text-decoration: underline;
	padding-left: 28px;
}
a.cms_pdf[target="_blank"]::before,
.cms_pdf a[target="_blank"]::before,
a.cms_doc[target="_blank"]::before,
.cms_doc a[target="_blank"]::before,
a.cms_xls[target="_blank"]::before,
.cms_xls a[target="_blank"]::before {
	content: "";
	display: inline-block;
	width: 20px;
	height: 26px;
	position: absolute;
    top: 0.1em;
	left: 0;
}
a.cms_pdf[target="_blank"]::before,
.cms_pdf a[target="_blank"]::before {
	background: url(../img/icon_pdf.svg) no-repeat center / cover;
}
a.cms_pdf.btn[target="_blank"]::before,
.cms_pdf.btn a[target="_blank"]::before,
a.cms_xls.btn[target="_blank"]::before,
.cms_xls.btn a[target="_blank"]::before,
a.cms_doc.btn[target="_blank"]::before,
.cms_doc.btn a[target="_blank"]::before {
	width: 20px;
	height: 26px;
}
/* Excel */
a.cms_xls[target="_blank"]::before,
.cms_xls a[target="_blank"]::before {
	background: url(../img/icon_xls.svg) no-repeat center / cover;
}
/* Word */
a.cms_doc[target="_blank"]::before,
.cms_doc a[target="_blank"]::before {
	background: url(../img/icon_doc.svg) no-repeat center / cover;
}
a.cms_pdf[target="_blank"]::after,
.cms_pdf a[target="_blank"]::after,
a.cms_doc[target="_blank"]::after,
.cms_doc a[target="_blank"]::after,
a.cms_xls[target="_blank"]::after,
.cms_xls a[target="_blank"]::after {
	content: none;
}
/* PPT */
/*
a.cms_ppt,
.cms_ppt a {
	display: inline-block;
	padding-left: 25px;
	background: url(../img/icon_ppt.png) no-repeat 0 2px / 20px 25px;
	color: #000;
}
.cms_pdf a.cms_blank,
.cms_doc a.cms_blank,
.cms_xls a.cms_blank,
.cms_ppt a.cms_blank {
	background: none;
}
*/
.cms_block .cms_link:not(:last-child),
.cms_block .cms_pdf:not(:last-child),
.cms_block .cms_doc:not(:last-child),
.cms_block .cms_xls:not(:last-child) {
	margin-bottom: 5px;
}
@media print, screen and (min-width: 768px) {
	/* リンクブロック横並び */
	.cms_link.inline,
	.cms_pdf.inline,
	.cms_doc.inline,
	.cms_xls.inline,
	.cms_ppt.inline {
		display: inline-block;
		margin-right: 1em;
	}
	/* ホバー */
	a.cms_link:hover,
	.cms_link a:hover,
	a.cms_pdf:hover,
	.cms_pdf a:hover,
	a.cms_doc:hover,
	.cms_doc a:hover,
	a.cms_xls:hover,
	.cms_xls a:hover,
	a.cms_ppt:hover,
	.cms_ppt a:hover {
		text-decoration: none;
	}
}
/* ------------------------------
 リンク（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* -- アイコンリンク -- */
	.cms_block .cms_link:not(:last-child),
	.cms_block .cms_pdf:not(:last-child),
	.cms_block .cms_doc:not(:last-child),
	.cms_block .cms_xls:not(:last-child) {
		margin-bottom: 10px;
	}
	.cms_link:not(.btn) a,
	a.cms_link:not(.btn) {
		font-size: 1.6rem;
	}
	.cms_link:not(.btn) a::before,
	a.cms_link:not(.btn)::before {
		width: calc(100% - 43px);
		bottom: 4px;
	}
	.cms_link:not(.btn) a::after,
	a.cms_link:not(.btn)::after {
		width: 35px;
		height: 35px;
		margin: -3px 0 0 14px;
		background-size: 8px 13px, cover;
		margin-left: 8px;
	}
	/* PDF */
	.cms_pdf a,
	a.cms_pdf,
	.cms_doc a,
	a.cms_doc,
	.cms_xls a,
	a.cms_xls {
		padding-left: 25px;
	}
	a.cms_pdf[target="_blank"]::before,
	.cms_pdf a[target="_blank"]::before,
	a.cms_doc[target="_blank"]::before,
	.cms_doc a[target="_blank"]::before,
	a.cms_xls[target="_blank"]::before,
	.cms_xls a[target="_blank"]::before {
		top: 0.05em;
		left: 0;
	}
}

/* ----------------------------------------------
	■回り込み
------------------------------------------------- */
* + .cms_cf,
.cms_block:after,
.cms_clear_before {
	display: block;
	clear: both;
	content: '';
}
.cms_cf:after {
	display: block;
	clear: both;
	content: '';
}
.cms_clear {
	clear: both;
}
.cms_clear_block {
	font-size: 0 !important;
	line-height: 0 !important;
	clear: both !important;
	width: 0 !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
}

/* ----------------------------------------------
	■マージン
------------------------------------------------- */
.cms_block {
	margin-bottom: 80px;
	margin-left: auto;
	margin-right: auto;
}
.cms_block:last-child,
.cms_text:last-child,
.cms_image:last-child {
	margin-bottom: 0 !important;
}
.cms_image {
	margin-bottom: 40px;
}
.cms_text {
	margin-bottom: 40px;
}
.cms_fl {
	float: left;
}
.cms_fr {
	float: right;
}
.cms_caption_t,
.cms_caption_b {
	/*font-size: 1.4rem;*/
}
.cms_caption_t {
	margin-bottom: 10px;
}
.cms_caption_b {
	margin-top: 10px;
}
/* h2が最初にある場合上の空きを広げる */
.cms_image:has(h2:first-child) .cms_caption_b {
	margin-top: 40px;
}
.fl + .fr,
.cms_fl + .cms_fr,
.cms_fl + .fr,
.fl + .cms_fr {
	margin-left: 0;
}
.cms_cf + .cms_cf {
	margin-top: -.75em;
}

/* ----------------------------------------------
 ■配置
------------------------------------------------- */
.cms_center {
	text-align: center;
}
.cms_left {
	text-align: left;
}
.cms_right {
	text-align: right;
}
.cms_center .cms_caption_t,
.tal .cms_caption_t,
.cms_center .cms_caption_b,
.tal .cms_caption_b {
	text-align: left;
}
.tac .cms_caption_t,
.tac .cms_caption_b {
	text-align: center !important;
}
.tar .cms_caption_t,
.tar .cms_caption_b {
	text-align: right !important;
}

/* ----------------------------------------------
 ■ボーダー
------------------------------------------------- */
img.cms_border{
	border: var(--border);
}

/* ----------------------------------------------
 ■PDFダウンロード
------------------------------------------------- */
.adobebox {
	padding: 25px 28px;
	border: solid 1px #dcdcdc;
}
.adobebox .tleft {
	overflow: hidden;
}
.adobebox .imgright {
	float: right;
	width: 115px;
	margin-left: 10px;
}

/* -------------------------------------------
 ■now loading
---------------------------------------------- */
#now_loading {
	z-index: 9998;
	width: 60px;
	height: 60px;
	padding: 10px;
	padding: 10px;
	opacity: .75;
	border-radius: 15px;
	background-color: #e0e0e0;
}
#now_loading img {
	width: 100%;
	height: 100%;
}

/* ------------------------------
 タブレット・スマホ用コード
------------------------------ */
@media screen and (max-width: 767px) {
	.cms_block {
		margin-bottom: 40px;
	}
	.cms_image {
		text-align: center;
		margin-bottom: 25px;
	}
	.cms_image .cms_caption_t,
	.cms_image .cms_caption_b {
		text-align: left;
	}
	.cms_text {
		margin-bottom: 25px;
	}
	.cms_fl {
		float: none !important;
	}
	.cms_fr {
		float: none !important;
	}
	.cms_caption_t,
	.cms_caption_b {
		/*font-size: 1.3rem;*/
	}
	.cms_caption_t {
		margin-bottom: 5px;
	}
	.cms_caption_b {
		margin-top: 5px;
	}
	#now_loading {
		width: 40px;
		height: 40px;
	}
}
@media screen and (max-width:640px) {
	#now_loading img {
		margin-left: 0 !important;
	}
	#now_loading {
		position: fixed;
		top: 50%;
		left: 50%;
		z-index: 9998;
		width: 75px;
		height: 75px;
		margin: 0 0 0 -13%;
		padding-top: 10px;
		padding-right: 7px;
		padding-left: 7px !important;
		opacity: .5;
		border-radius: 15px;
		background-color: #e0e0e0;
	}
}