@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@700');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400,700&display=swap');


/* ------------------------------
 リセット
------------------------------ */
* {
border:0;
margin:0;
/* outline:0; */
padding:0;
	-webkit-box-sizing:border-box;
	-moz-box-sizing:border-box;
	-ms-box-sizing:border-box;
	-o-box-sizing:border-box;
	box-sizing:border-box;
font:inherit;
font-family:inherit;
font-size:100%;
font-style:inherit;
font-weight:inherit;
text-decoration:none;
vertical-align:baseline;
}
html {font-size:62.5%; width:100%; height:100%;}
body {
font-size:10px;
font-size:1.0rem;
line-height:1;
position:relative;
text-align:center;
-webkit-text-size-adjust:100%;
-webkit-font-smoothing:antialiased;
-moz-osx-font-smoothing:grayscale;
width:100%;
height:100%;
}
article, aside, dialog, figure, footer, header, main, menu, nav, section {display:block;}
audio, canvas, video {display:inline-block;}
hr {display:block;}
ol, ul {list-style:none;}
blockquote, q {quotes:none;}
blockquote:before, blockquote:after, q:before, q:after {content:''; content:none;}
input, select {vertical-align:middle;}
table {border-collapse:collapse; border-spacing:0; empty-cells:show;}

:root {
	--black-color: #000;
	--red-color: #de473c;
	--light-blue: #f4fafc;
}
/* ------------------------------
 サイト全体（PC用コード）
------------------------------ */
html, body {
	font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	font-weight: 400;
	line-height: 1.75;
	word-wrap: break-word;
	color: var(--black-color);
	-webkit-text-size-adjust: 100%;
	margin: 0 auto;
	font-feature-settings: "palt"; /* 文字詰め */;
}
u { border-bottom: solid 1px var(--black-color);}
img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
}
.cf:after {
	content: "";
	clear: both;
	display: block;
}
.fl { float:left;}
.fr { float:right;}

.tal { text-align:left !important;}
.tac { text-align:center !important;}
.tar { text-align:right !important;}
.vat { vertical-align:top;}
.vam { vertical-align:middle;}
.vab { vertical-align:bottom;}

strong, .bold { font-weight: bold;}
.nobold { font-weight: 500 !important;}
.auto {
	margin-left: auto;
	margin-right: auto;
}
input.none{ display: none;}
/* 行スペース */
.b1 { margin-bottom: 1.5em;}
.b2 { margin-bottom: 3em;}
.b3 { margin-bottom: 4.5em;}

/* スペース */
.mb0 { margin-bottom: 0 !important;}
.mb5 { margin-bottom: 5px !important;}
.mb10 { margin-bottom: 10px !important;}
.mb15 { margin-bottom: 15px !important;}
.mb20 { margin-bottom: 20px !important;}
.mb25 { margin-bottom: 25px !important;}
.mb30 { margin-bottom: 30px !important;}
.mb35 { margin-bottom: 35px !important;}
.mb40 { margin-bottom: 40px !important;}
.mb50 { margin-bottom: 50px !important;}
.mb60 { margin-bottom: 60px !important;}
.mb70 { margin-bottom: 70px !important;}
.mb80 { margin-bottom: 80px !important;}
.mr0 { margin-right: 0 !important;}
.nopd { padding: 0 !important;}

/* リンク */
a {
	color: var(--red-color);
	text-decoration: underline;
	-webkit-transition: 0.2s ease-in-out;
	transition: 0.2s ease-in-out;
}

a img {
	-webkit-transition: 0.3s ease-in-out;
	transition: 0.3s ease-in-out;
}
@media screen and (min-width: 768px) {
	a:focus img, a:hover img {
		opacity: 0.7;
	}
	a:focus, a:hover {
		text-decoration: underline;
	}
}
/* カラー */
.red {
	color: var(--red-color) !important;
	transition: 0.3s ease-in-out;
}
.blue { color: #2963B3;}
.gray { color: #c9c9c9;}
.black { color: var(--black-color);}

/* フォントサイズ */
.big, .f18 { font-size: 1.8rem;}
.f11 { font-size: 1.1rem;}
.f12 { font-size: 1.2rem;}
.f13 { font-size: 1.3rem;}
.f14 { font-size: 1.4rem;}
.f15 { font-size: 1.5rem;}
.f16 { font-size: 1.6rem;}
.f20 { font-size: 2rem;}
.f21 { font-size: 2.1rem;}
.f22 { font-size: 2.2rem;}
.f23 { font-size: 2.3rem;}
.f24 { font-size: 2.4rem;}
.f25 { font-size: 2.5rem;}
.f28 { font-size: 2.8rem;}
.f32 { font-size: 3.2rem;}
.small, small { font-size: 1.3rem;}

/* 英字フォント */
.font-en {
	font-family: 'Poppins', sans-serif;
}
/* 上付き */
sup {
	font-size: 80%;
	vertical-align:top;
}
/* 強調 */
em { font-style: italic;}
/* 打消し */
del { text-decoration: line-through;}
/* 引用・転用 */
blockquote { margin: 1em 3em;}

/* 非表示 */
.hide {
	display: none;
}
.pc {
	display: block;
}
.sp {
	display: none;
}
@media screen and (max-width: 767px) {
	.pc {
		display: none;
	}
	.sp {
		display: block;
	}
}
/* ------------------------------
 PC用限定CSS
------------------------------ */
@media print, screen and (min-width: 768px) {
	.sp { display: none !important;}
	.pc_tal { text-align:left;}
	.pc_tac { text-align:center;}
	.pc_tar { text-align:right;}
	.pc_bold { font-weight: bold;}
	.pc_nobr br { display: none;}
	.pc_mb0 { margin-bottom: 0 !important;}
	.pc_mb10 { margin-bottom: 10px !important;}
	.pc_mb20 { margin-bottom: 20px !important;}
	.pc_mb30 { margin-bottom: 30px !important;}
	.pc_mb40 { margin-bottom: 40px !important;}
	.pc_mb50 { margin-bottom: 50px !important;}
	.pc_mb60 { margin-bottom: 60px !important;}
	.pc_mb80 { margin-bottom: 80px !important;}
	.pc_mb110 { margin-bottom: 110px !important;}
	.pc_mr0 { margin-right: 0 !important;}
	.pc_mr10 { margin-right: 10px !important;}

	/* -- TEL Link -- */
	a[href^="tel:"] {
		color: var(--black-color);
		pointer-events: none;
		cursor: default;
		text-decoration: none;
	}
}
/* ------------------------------
 サイト全体（スマホ用コード）
------------------------------ */
@media screen and (max-width: 767px) {
	html, body {
		min-width: 100%;
		max-width: 100%;
	}
	.pc { display: none !important;}
	.sp_tac { text-align: center !important;}
	.sp_tal { text-align: left !important;}
	.sp_nobr br { display: none;}
	.fl,.fr { float: none;}
	.site { min-width: 0;}

	/* スペース */
	.mb15 { margin-bottom: 10px !important;}
	.mb20 { margin-bottom: 10px !important;}
	.mb25 { margin-bottom: 15px !important;}
	.mb30 { margin-bottom: 15px !important;}
	.mb35 { margin-bottom: 20px !important;}
	.mb40 { margin-bottom: 20px !important;}
	.mb50 { margin-bottom: 30px !important;}
	.mb60 { margin-bottom: 40px !important;}
	.mb70 { margin-bottom: 50px !important;}
	.mb80 { margin-bottom: 55px !important;}
	.sp_mb5 { margin-bottom: 5px !important;}
	.sp_mb10 { margin-bottom: 10px !important;}
	.sp_mb15 { margin-bottom: 15px !important;}
	.sp_mb20 { margin-bottom: 20px !important;}
	.sp_mb30 { margin-bottom: 30px !important;}
	.sp_mb40 { margin-bottom: 40px !important;}
	.sp_mb50 { margin-bottom: 50px !important;}
	.sp_mb60 { margin-bottom: 60px !important;}
	.sp_mr0 { margin-right: 0 !important;}
	
	/* フォントサイズ */
	.big,.f18 { font-size: 1.7rem;}
	.f13 { font-size: 1.2rem;}
	.f14 { font-size: 1.3rem;}
	.f15 { font-size: 1.4rem;}
	.f16 { font-size: 1.5rem;}
	.f20 { font-size: 1.8rem;}
	.f21 { font-size: 1.8rem;}
	.f22 { font-size: 1.9rem;}
	.f23 { font-size: 1.9rem;}
	.f28 { font-size: 2rem;}
	.f24 { font-size: 2.2rem;}
	.f25 { font-size: 2.2rem;}
	.f32 { font-size: 2.2rem;}
	.small,small { font-size: 1.2rem;}
	.nobr br { display: none;}
}


/* ------------------------------
 ヘッダ
------------------------------ */
.header {
	display: block;
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	z-index: 1000;
	width: 100%;
	margin: 0 auto;
	padding: 0;
}
/* -- ロゴ -- */
.headerBlock_logo {
	display: flex;
	justify-content: center;
	align-items: center;
	width: fit-content;
	column-gap: 10px;
	height: 90px;
	padding: 10px 25px;
	background: #fff;
	border-bottom-right-radius: 8px;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
/* blank */
.header a[target="_blank"] {
	display:inline-block;
}
/* ------------------------------
 PC用限定CSS
------------------------------ */
@media print, screen and (min-width: 768px) {
	.headerBlock_logo .logo {
		width: 210px;
	}
	.site_link_btn {
		width: 183px;
	}
	/* -- ロゴ -- */
	.headerBlock_logo a:hover img {
		opacity: 1;
	}
}
/* ------------------------------
 スマホ用コード（ヘッダ）
------------------------------ */
@media screen and (max-width: 767px) {
	/* ロゴ */
	.headerBlock_logo {
		column-gap: 6px;
		height: 50px;
		padding-inline: 12px;
		border-bottom-right-radius: 6px;
	}
	.headerBlock_logo .logo {
		width: 130px;
	}
	.site_link_btn {
		width: 128px;
	}
}

/* ------------------------------
 コンテンツ
------------------------------ */
.site {
	width: 100%;
	overflow: hidden;
	margin: 0 auto;
	padding: 0;
	font-size: 1.6rem;
	line-height: 1.75;
}
.contentsHome,
.contentsTop,
.contents {
	width: 100%;
	position:relative;
	text-align: left;
}
/* -- 横幅1140px -- */
.inBlock {
	text-align: left;
}
.inBlock::after {
	content: "";
	clear: both;
	display: block;
}
.contents .inBlock {
	position: relative;
}

/* --------------------
 PC用限定CSS
--------------------- */
@media print, screen and (min-width: 768px) {
	.site { min-width: 1200px;}
	.contentsHome,
	.contentsTop,
	.contents {
		min-width: 1200px;
		padding-bottom: 110px;
	}
	/* -- 横幅1140px -- */
	.inBlock {
		width: 1140px;
		margin-inline: auto;
	}
	.contents .inBlock::after {
		display: none;
	}
	/* -- コンテンツ左 -- */
	.mainContents {
		width: 846px !important;
	}
	/* -- コンテンツ右 -- */
	.sideContents {
		width: 258px !important;
	}
	/* -- sima -- */
	.contents.lp .cms_block:not(:last-child) {
		margin-bottom: 100px;
	}
}
/* --------------------
 スマホ用コード（コンテンツ）
--------------------- */
@media screen and (max-width: 767px) {
	.site {
		min-width: 320px;
		font-size: 1.5rem;
		line-height: 1.5;
	
	}
	#bggr {
		position: relative;
		z-index: 1;
	}
	.contentsHome,
	.contentsTop,
	.contents {
		min-width: 300px;
		padding-bottom: 40px;
	}
	/* -- コンテンツ左 -- */
	.mainContents {
		padding-left: 5%;
		padding-right: 5%;
		margin-bottom: 40px;
	}
	/* -- sima -- */
	.contents.lp .cms_block:not(:last-child) {
		margin-bottom: 45px;
	}
}


/* ------------------------------
 フッタ
------------------------------ */
.footer {
	color: #fff;
	font-size: 1.4rem;
}
.footer a[target="_blank"]:after {
    content: "";
    width: 9px;
    height: 8px;
    display: inline-block;
    margin-left: 5px;
    background: url(../img/icon_blank.png) no-repeat 0 0 / cover;
}
.footer a {
	color: #fff;
	text-decoration: none;
}
.footer a:hover, .footer a:focus {
	color: #fff;
}
/* -- コピーライト -- */
.copyright {
	font-size: 1.2rem;
	font-weight: 400;
	line-height: 1.2;
	color: #fff;
	text-align: center;
	background: var(--red-color);
	line-height: 40px;
}
/* -- PAGE TOP -- */
.js-btn-pagetop {
	width: 60px;
	height: 60px;
	position: fixed;
	bottom: 60px;
	right: 20px;
	z-index: 100;
	background: var(--red-color);
	transition: background-color 0.2s ease 0s;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 4px;
}
.js-btn-pagetop img {
	width: 23px;
	height: auto;
}
@media screen and (max-width: 767px) {
	.footer {
		padding: 30px 0 0 0;
	}
	.copyright {
		font-size: 1rem;
		text-align: center;
		letter-spacing: -0.4px;
	}
	/* -- PAGE TOP -- */
	.js-btn-pagetop {
		width: 35px;
		height: 35px;
		bottom: 50px;
		right: 10px;
	}
	.js-btn-pagetop img {
		width: 15px;
	}
}
/* ------------------------------
 ノースクリプト
------------------------------ */
#nojs {
	width: 100%;
	padding: 0;
	text-align: center;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 99999;
	background: #2e4fb5;
}
#nojs p {
	padding: 3px 0;
	color: #fff;
	font-size: 1.2rem;
}
/* ------------------------------
 印刷用コード
------------------------------ */
@media print {
	.drawer-open, .naviContent { position: absolute;}
}
 /* -- 余白 -- */
@page {
	margin: 9.7mm 9.7mm;
}
/* ------------------------------
 ファイルリンク（上書き）
------------------------------ */
.contents.lp .cms_text .cms_pdf a, 
.contents.lp .cms_text .cms_doc a, 
.contents.lp .cms_text .cms_ppt a, 
.contents.lp .cms_text .cms_xls a {
	font-weight: inherit;
}
/* ------------------------------
 ページ内リンク（上書き）
------------------------------ */
.lp .pin_link {
	padding: 0;
	border-radius: 0;
}
.lp .pin_link ul {
	justify-content: center;
	gap: 12px 10px;
}
.lp .pin_link ul li {
	padding-left: 0;
	margin-right: 0;
	margin-bottom: 0;
}
.lp .pin_link ul a {
	display: block;
	padding: 12px 15px;
	background: conic-gradient(
		#e8f5f8 25%,
		#fff 0 50%,
		#e8f5f8 0 75%,
		#fff 0
	);
	background-size: 2px 2px;
	border-radius: 40px;
	font-size: 1.4rem;
	color: var(--black-color);
}
.lp .pin_link ul a::before{
	content: none;
}
.lp .pin_link ul a::after{
	content: "";
	position: relative;
	inset: 0;
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-left: 4px;
	margin-bottom: 2px;
	border-top: none;
	border-right: none;
	-webkit-transform: rotate(0);
	transform: rotate(0);
	border-radius: 0;
	background: url(../img/redcap/icon_arrow_c_b.svg) no-repeat 0 0 / cover;
}
@media screen and (min-width: 768px) {
	.lp .pin_link ul a:focus, .lp .pin_link ul a:hover {
		text-decoration: none;
		color: var(--red-color);
	}
}
@media screen and (max-width: 767px) {
	.lp .pin_link {
		padding: 0;
	}
	.lp .pin_link ul {
		justify-content: center;
		gap: 8px 5px;
	}
	.lp .pin_link ul li {
		margin: 0;
	}
	.lp .pin_link ul a {
		padding: 10px 12px;
		font-size: 1.2rem;
	}
}

/* ------------------------------
 見出し（上書き）
------------------------------ */
.contents.lp h2{
	padding-bottom: 17px;
	margin-bottom: 30px;
	position: relative;
	border-bottom: 0;
	font-size: 2.8rem;
	font-weight: bold;
	text-align: center;
	line-height: 1.5;
	letter-spacing: 0.075em;
}
.contents.lp h2:after{
	content:"";
	width: 64px;
	height: 7px;
	display: block;
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	margin-inline: auto;
	background-color: var(--red-color);
}
.contents.lp h2:has(span) {
	padding-top: 70px;
}
.contents.lp h2 span {
	position: absolute;
	top: 0;
	inset-inline: 0;
	z-index: -1;
	margin-inline: auto;
	font-family: "Barlow", sans-serif;
	font-size: 11rem;
	font-weight: bold;
	line-height: 1;
	white-space: nowrap;
	background: conic-gradient(
		#e8f5f8 25%,
		#fff 0 50%,
		#e8f5f8 0 75%,
		#fff 0
	);
	background-size: 2px 2px;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.contents.lp h3 {
	display: block;
	margin-bottom: 20px;
	padding-left: 0;
	padding-bottom: 12px;
	border-bottom: 3px solid;
  	border-image: linear-gradient(to right, var(--red-color) 80px, #e3f3f7 80px) 1;
	font-size: 2.3rem;
	font-weight: bold;
	letter-spacing: 0.075em;
}
.contents.lp .title-simple h3 {
	border: none;
	padding: 0;
}

.title-red {
	display: flex;
	justify-content: center;
	align-items: center;
	column-gap: 5px;
	flex-wrap: wrap;
	margin-bottom: 20px;
	padding: 10px;
	border-radius: 6px 6px 0 0;
	background-color: var(--red-color);
	font-weight: bold;
	text-align: center;
	color: #fff;
}

/* ------------------------------
 スマホ用コード（見出し）
------------------------------ */
@media screen and (max-width: 767px) {
	.contents.lp h2{
		font-size: 2.2rem;
		margin-bottom: 25px;
	}
	.contents.lp h2:after{
		width: 47px;
		height: 5px;
	}
	.contents.lp h2:has(span) {
		padding-top: 55px;
	}
	.contents.lp h2 span {
		bottom: 25px;
		font-size: 7.4rem;
		inset-inline: -5%;
	}
	.contents.lp h3 {
		font-size: 1.8rem;
	}
}

/* ------------------------------
 開閉コンテンツ（上書き）
------------------------------ */
.lp .cms_text.toggle {
	position: relative;
	margin-bottom: 0;
	padding: 20px 60px 19px 25px;
	border-radius: 10px;
	background-color: var(--base-color);
	font-size: 1.8rem;
	font-weight: bold;
	cursor: pointer;
}
.lp .cms_text.toggle .toggleBtn {
	display: block;
	width: 18px;
	height: 18px;
	position: absolute;
	right: 29px;
	inset-block: 0;
	margin-block: auto;
	background: none;
	cursor: pointer;
}
.lp .cms_text.toggle .toggleBtn::before,
.lp .cms_text.toggle .toggleBtn::after {
	content: "";
	display: block;
	position: absolute;
	inset: 0;
	margin: auto;
	background-color: var(--blue-light-color);
}
.lp .cms_text.toggle .toggleBtn::before {
	width: 2px;
	height: 18px;
}
.lp .cms_text.toggle .toggleBtn::after {
	width: 18px;
	height: 2px;
}
.lp .cms_text.toggle.is-open .toggleBtn::before {
	display: none;
}
.lp .cms_text.toggle.faq {
	padding-left: 60px;
}
.lp .cms_text.toggle.faq::before {
	content:"Q";
	display: block;
	position: absolute;
	top: 18px;
	left: 18px;
	width: 32px;
	height: 32px;
	border: 1px solid var(--blue-color);
	border-radius: 50%;
	background-color: #fff;
	color: var(--blue-color);
	font-family: "Rubik", sans-serif;
	font-size: 2.2rem;
	line-height: 34px;
	font-weight: 500;
	text-align: center;
}
.lp .cms_text.toggleContents {
	display: none;
	position: relative;
	margin-bottom: 0;
	margin-top: 18px;
	padding: 4px 20px 22px 25px;
}
.lp .cms_text.toggleContents.faq {
	position: relative;
}
.lp .cms_text.toggleContents.faq {
	padding-left: 60px;
}
.lp .cms_text.toggleContents.faq:before {
	content:"A";
	display: block;
	position: absolute;
	top: 0;
	left: 18px;
	color: #fff;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background-color: var(--blue-color);
	font-family: "Rubik", sans-serif;
	font-size: 2.2rem;
	line-height: 34px;
	font-weight: 500;
	text-align: center;
}
.lp .cms_text.toggleContents + .lp .cms_text.toggle {
	margin-top: 15px;
}
@media print, screen and (min-width: 768px) {
}
/* ------------------------------
 よくあるご質問（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.lp .cms_text.toggle {
		padding: 17px 41px 17px 25px;
		font-size: 1.6rem;
	}
	.lp .cms_text.toggle.faq {
		padding-left: 50px;
	}
	.lp .cms_text.toggle::before {
		right: 22px;
		width: 2px;
		height: 16px;
	}
	.lp .cms_text.toggle::after {
		right: 15px;
		width: 16px;
		height: 2px;
	}
	.lp .cms_text.toggle.faq:before {
		top: 15px;
		left: 10px;
		width: 30px;
		height: 30px;
		font-size: 2rem;
		line-height: 30px;
	}
	.lp .cms_text.toggleContents {
		margin-top: 15px;
		padding: 3px 15px 22px 25px;
	}
	.lp .cms_text.toggleContents.faq {
		padding-left: 50px;
	}
	.lp .cms_text.toggleContents.faq:before {
		top: 0;
		left: 10px;
		width: 30px;
		height: 30px;
		font-size: 2rem;
		line-height: 30px;
	}
}
/* ------------------------------
 開閉コンテンツ（上書き）
------------------------------ */
.lp .toggle {
	margin-bottom: 0 !important;
	position: relative;
	cursor: pointer;
	border-bottom: none;
	padding-bottom: 20px;
}
/* -- アイコン -- */
.lp .toggle::before,
.lp .toggle::after {
	content: none;
}
@media (max-width: 767px) {
	.lp .toggle {
		text-align: left;
		line-height: 46px;
		font-size: 16px;
		padding-left: 14px;
	}
}


/* ------------------------------
 横幅
------------------------------ */
.w270 {width: 270px;}

/* ------------------------------
 リスト
------------------------------ */
/*-- ノーマルリスト --*/
.contents.lp .cms_text ul > li:before, .contents.lp .cms_image ul > li:before {
	color: var(--red-color);
}
/* チェックリスト */
.contents.lp .list-check ul > li,
.contents.lp ul.list-check > li {
	padding: 12px 20px 12px 40px;
	border-radius: 4px;
	background-color: #fff;
}
.contents.lp .list-check ul > li::before,
.contents.lp ul.list-check > li::before {
	content: "";
	display: block;
	width: 19px;
	height: 16px;
	background: url(../img/redcap/icon_check.svg) no-repeat 0 0 / cover;
	position: absolute;
	top: 1.9em;
	left: 20px;
}
@media print, screen and (min-width: 768px) {
	/* 5行で折り返し */
	.list_grid ul,
	.list_grid ol {
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: 1fr;
		gap: 6px;
	}
	.list_grid ul li,
	.list_grid ol li {
		align-self: self-start;
	}
	/* 1行 */
	.list_grid.line-1 ul,
	.list_grid.line-1 ol {
		grid-template-rows: repeat(1, auto);
	}
	/* 2行 */
	.list_grid.line-2 ul,
	.list_grid.line-2 ol {
		grid-template-rows: repeat(2, auto);
	}
	/* 3行 */
	.list_grid.line-3 ul,
	.list_grid.line-3 ol {
		grid-template-rows: repeat(3, auto);
	}
	/* 4行 */
	.list_grid.line-4 ul,
	.list_grid.line-4 ol {
		grid-template-rows: repeat(4, auto);
	}
	/* 5行 */
	.list_grid.line-5 ul,
	.list_grid.line-5 ol {
		grid-template-rows: repeat(5, auto);
	}
	
	/* 横並び 分割 */
	.list_div2 ul,
	ul.list_div2,
	.list_div3 ul,
	ul.list_div3,
	.list_div4 ul,
	ul.list_div4,
	.list_div2 ol,
	ol.list_div2,
	.list_div3 ol,
	ol.list_div3,
	.list_div4 ol,
	ol.list_div4 {
		display: grid;
		align-items: start;
		gap: 6px;
	}
	.list_div2 ul,
	ul.list_div2,
	.list_div2 ol,
	ol.list_div2 {
		grid-template-columns: 1fr 1fr;
	}
	/* 3分割 */
	.list_div3 ul,
	ul.list_div3,
	.list_div3 ol,
	ol.list_div3 {
		grid-template-columns: 1fr 1fr 1fr;
	}
	/* 4分割 */
	.list_div4 ul,
	ul.list_div4,
	.list_div4 ol,
	ol.list_div4 {
		grid-template-columns: 1fr 1fr 1fr 1fr;
	}
}
/* ------------------------------
 リスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* チェックリスト */
	.contents.lp .list-check ul,
	.contents.lp ul.list-check {
		display: grid;
		align-items: start;
		row-gap: 6px;
	}
	.contents.lp .list-check ul > li,
	.contents.lp ul.list-check > li {
		padding: 12px 15px 12px 32px;
	}
	.contents.lp .list-check ul > li::before,
	.contents.lp ul.list-check > li::before {
		top: 1.8em;
		left: 12px;
	}
	/* 横並び 分割 */
	.too_sp.list_div2 ul,
	ul.too_sp.list_div2,
	.too_sp.list_div3 ul,
	ul.too_sp.list_div3,
	.too_sp.list_div4 ul,
	ul.too_sp.list_div4,
	.too_sp.list_div2 ol,
	ol.too_sp.list_div2,
	.too_sp.list_div3 ol,
	ol.too_sp.list_div3,
	.too_sp.list_div4 ol,
	ol.too_sp.list_div4 {
		display: grid;
		align-items: start;
		row-gap: 8px;
	}
	.too_sp.list_div2 ul,
	ul.too_sp.list_div2,
	.too_sp.list_div2 ol,
	ol.too_sp.list_div2 {
		column-gap: 4.21%;
		grid-template-columns: 1fr 1fr;
	}
}
/* ------------------------------
 ボタン
------------------------------ */
.contents.lp .btn a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: fit-content;
	min-height: 68px;
	padding: 5px 55px 5px 25px !important;
	border-radius: 66px;
	text-decoration: none;
	color: var(--black-color);
	font-weight: bold;
	text-align: left;
	border: solid 1px var(--red-color);
	background: #fff url(../img/redcap/icon_arrow_c.svg) no-repeat right 18px center / 29px 29px;
}
.contents.lp .btn a.cms_inner_blank:after {
	content: none;
}
.contents.lp .btn.tac a {
	margin-inline: auto;
}

.btn-mail {
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 68px;
	min-width: 290px;
	border-radius: 66px;
	text-decoration: none;
	text-align: center;
	color: var(--red-color);
	font-weight: bold;
	background: conic-gradient(
		#e8f5f8 25%,
		#fff 0 50%,
		#e8f5f8 0 75%,
		#fff 0
	);
	background-size: 2px 2px;
}
@media print, screen and (min-width: 768px) {
	.contents.lp .btn a:hover {
		opacity: .7;
	}
}
@media screen and (max-width: 767px) {
	.btn-mail {
		width: 100%;
		max-width: 353px;
	}
}
/* ------------------------------
 リンク（PC）
------------------------------ */
/* 横並びリンク */
.inlineLink {
	display: flex;
	flex-flow: row wrap;
	gap: 20px;
}
.inlineLink > br {
	display: none;
}
.inlineLink.tac {
	justify-content: center;
}
.inlineLink.gap-s {
	gap: 10px;
}
/* ------------------------------
 リンク（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 横並びリンク */
	.inlineLink {
		gap: 5px 10px;
	}
}


/* ------------------------------
 メイン
------------------------------ */
.cms_block.main-block {
	width: 100%;
}
.main-block {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	background: url(../img/redcap/main_block_img.jpg) no-repeat center 0 / cover;
}
.lp .main-block .pin_link ul a {
	background: #fff;
}
@media print, screen and (min-width: 768px) {
	.main-block {
		height: 660px;
	}
	.main-block > * {
		width: 1140px;
	}
}
/* ------------------------------
 SP用限定CSS
------------------------------ */
@media screen and (max-width: 767px) {
	.cms_block.main-block {
		margin-inline: 0 !important;
	}
	.main-block {
		min-height: 560px;
		background-image: url(../img/redcap/main_block_img_sp.jpg);
	}
	.main-block .logo_img {
		margin-inline: 8%;
	}
}
/* ------------------------------
 背景ブロック
------------------------------ */
.bg-block {
	position: relative;
	padding-block: 60px 90px;
}
.bg-block::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	z-index: -2;
	right: -50vw;
	left: -50vw;
	background: conic-gradient(
		#e8f5f8 25%,
		#fff 0 50%,
		#e8f5f8 0 75%,
		#fff 0
	);
	background-size: 2px 2px;
}
.contents.lp .bg-block h2 span {
	color: #fff;
}
/* ------------------------------
 背景ブロック（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.cms_block.bg-block {
		margin-inline: 0 !important;
	}
	.bg-block {
		padding-block: 40px 70px;
	}
	.cms_block.bg-block > * {
		margin-inline: 5%;
	}
}

/* ------------------------------
 背景BOX
------------------------------ */
.bg-box {
	position: relative;
	padding: 40px 60px;
	border-radius: 8px;
	background-color: var(--light-blue);
}
.bg-box-white {
	position: relative;
	padding: 20px 30px;
	border-radius: 6px;
	background-color: #fff;
}
.bg-box-white.margin-m {
	padding: 30px 40px;
}
.bg-box-white:has(.title-red) {
	padding-block: 30px;
}
.bg-box-white .title-red {
	margin-top: -30px;
	margin-inline: -30px;
}

.bg-box:has(.icon-num) {
	padding-block: 45px;
}
.bg-box:has(.inline-img) {
	padding-inline: 30px;
}
.bg-box.flow-box::after {
	content: "";
	width: 30px;
	height: 15px;
	clip-path: polygon(50% 100%, 0% 0%, 100% 0%);
	position: absolute;
	top: calc(100% - 1px);
	inset-inline: 0;
	margin-inline: auto;
	background-color: var(--light-blue);
}

/* ------------------------------
 背景BOX（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.bg-box {
		padding: 25px 20px;
		border-radius: 6px;
	}
	.bg-box-white {
		padding: 15px 20px;
		border-radius: 4px;
	}
	.bg-box-white.margin-m {
		padding: 20px;
	}
	.bg-box-white .title-red {
		margin-inline: -20px;
	}
	.bg-box:has(.icon-num) {
		padding-block: 35px;
	}
	.bg-box:has(.inline-img) {
		padding-inline: 20px;
	}
}
/* ------------------------------
 ナンバーアイコン
------------------------------ */
.icon-num {
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	inset-inline: 0;
	top: -30px;
	margin-inline: auto;
	width: 60px;
	height: 60px;
	border-radius: 100%;
	border: solid 2px var(--red-color);
	background-color: #fff;
	font-family: "Barlow", sans-serif;
	font-size: 3.1rem;
	font-weight: bold;
	color: var(--red-color);
}
.icon-num::before,
.icon-num::after {
	content: "";
	clip-path: polygon(50% 100%, 0% 0%, 100% 0%);
	position: absolute;
	inset-inline: 0;
	margin-inline: auto;
}
.icon-num::before {
	z-index: 0;
	width: 12px;
	height: 8px;
	top: 100%;
	background-color: var(--red-color);
}
.icon-num::after {
	z-index: 1;
	width: 8px;
	height: 6px;
	top: calc(100% - 1px);
	background-color: #fff;
}
/* ------------------------------
 ナンバーアイコン（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.icon-num {
		top: -25px;
		width: 49px;
		height: 49px;
		font-size: 2.5rem;
	}
	.icon-num::before {
		width: 8px;
		height: 5px;
	}
	.icon-num::after {
		width: 4px;
		height: 3px;
	}
}
/* ------------------------------
 横並び画像
------------------------------ */
.inline-img {
	display: flex;
	align-items: flex-start;
	column-gap: 15px;
	padding-block: 20px;
	border-block: dotted 1px #c6e6ee;
}
.inline-img + .inline-img {
	border-top: none;
}
.inline-img img {
	width: 57px;
}
.inline-img > div {
	margin-top: 0;
	width: calc(100% - (57px + 15px));
}
/* ------------------------------
 横並び画像（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.inline-img {
		column-gap: 10px;
	}
	.inline-img img {
		width: 36px;
	}
	.inline-img > div {
		width: calc(100% - (36px + 10px));
	}
}