@charset "UTF-8";
/*-----------------------------------

	mainvisual

-----------------------------------*/
#mainvisual {
	background: url(../img/index/mainvisual_bg.png) no-repeat center top / cover;
	padding: max(4.6vw, 69px) 0 27.9vw;
	position: relative;
}
#mainvisual .img_wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 72%;
	margin: 0 auto;
	position: relative;
}
#mainvisual .img_wrap .svg_line {
	width: 66.7%;
	margin: auto;
	position: absolute;
	top: 6.47vw;
	left: 0;
	right: 0;
	z-index: 2;
}
#mainvisual .img_wrap .dash {
	fill: none;
	stroke: #f9bdc2;
	stroke-width: 6px;
	stroke-linecap: round;
	stroke-dasharray: 6.404 13.86;
	opacity: 0;
}
#mainvisual .img_wrap .reveal {
	fill: none;
	stroke: #fff;
	stroke-width: 8px;
	stroke-linecap: round;
}
#mainvisual .img_wrap .img_box {
	opacity: 0;
	position: relative;
	z-index: 0;
}
#mainvisual .img_wrap .lt,
#mainvisual .img_wrap .rt {
	width: 24.1%;
	margin-top: 5.4vw;
	border-radius: 50vw;
	box-shadow: 1px 1px 25px #df424d;
	/*filter: drop-shadow(1px 1px 25px #df424d);*/
}
#mainvisual .img_wrap .ct {
	width: 39.4%;
	margin-left: 2.6%;
}
/*#mainvisual .img_wrap .lt .icon_image,
#mainvisual .img_wrap .rt .icon_image {
	filter: drop-shadow(1px 1px 25px #df424d);
}*/
#mainvisual .img_wrap .lt .icon_pop,
#mainvisual .img_wrap .rt .icon_pop {
	position: absolute;
	z-index: 1;
}
#mainvisual .img_wrap .lt .icon_pop {
	width: 3.12vw;
	top: -0.25vw;
	left: 3.24vw;
}
#mainvisual .img_wrap .rt .icon_pop {
	width: 14.94vw;
	margin: auto;
	inset: 0;
	transform: translateX(-0.15vw);
}
@keyframes floatOnceUp {
	0%   { transform: translateY(0); }
	100% { transform: translateY(-10px); }
}
@keyframes floatDownUp {
	0%   { transform: translateY(-10px); }
	50%  { transform: translateY( 10px); }
	100% { transform: translateY(-10px); }
}
@keyframes floatOnceDown {
	0%   { transform: translateY(0); }
	100% { transform: translateY(10px); }
}
@keyframes floatUpDown {
	0%   { transform: translateY( 10px); }
	50%  { transform: translateY(-10px); }
	100% { transform: translateY( 10px); }
}
#mainvisual .lt-float {
	animation: 
		floatOnceUp 1.5s ease-out 0s 1 both,
		floatDownUp 6s ease-in-out 1.5s infinite;
}
#mainvisual .rt-float {
	animation:
		floatOnceDown 1.5s ease-out 0s 1 both, 
		floatUpDown 6s ease-in-out 1.5s infinite;
}
#mainvisual .ttl_box {
	width: 26.6vw;
	position: absolute;
	left: 4.64vw;
	bottom: 20.1vw;
	z-index: 1;
}
@media screen and (max-width: 640px) {
	#mainvisual {
		background: url(../img/index/sp/mainvisual_bg.png) no-repeat center top / cover;
		padding: 13.4vw 0 112vw;
		overflow: hidden;
	}
	#mainvisual .img_wrap {
		width: 109.4%;
		transform: translateX(-4.7%);
	}
	#mainvisual .img_wrap .svg_line {
		width: 64.7%;
		top: 13.2vw;
	}
	#mainvisual .img_wrap .ct {
		width: 46.8%;
		margin-left: 3.6%;
	}
	#mainvisual .img_wrap .lt,
	#mainvisual .img_wrap .rt {
		width: 23.91%;
		margin-top: 5.3vw;
		box-shadow: 1px 1px 8px #df424d;
	}
	#mainvisual .img_wrap .lt .icon_pop {
		width: 5.12vw;
		top: -1.25vw;
		left: 5.24vw;
	}
	#mainvisual .img_wrap .rt .icon_pop {
		width: 22.2vw;
	}
	/*#mainvisual .img_wrap .lt .icon_image,
	#mainvisual .img_wrap .rt .icon_image {
		filter: drop-shadow(1px 1px 8px #df424d);
	}*/
	@keyframes floatOnceUp {
		0%   { transform: translateY(0); }
		100% { transform: translateY(-5px); }
	}
	@keyframes floatDownUp {
		0%   { transform: translateY(-5px); }
		50%  { transform: translateY( 5px); }
		100% { transform: translateY(-5px); }
	}
	@keyframes floatOnceDown {
		0%   { transform: translateY(0); }
		100% { transform: translateY(5px); }
	}
	@keyframes floatUpDown {
		0%   { transform: translateY( 5px); }
		50%  { transform: translateY(-5px); }
		100% { transform: translateY( 5px); }
	}
	#mainvisual .lt-float {
		animation: 
			floatOnceUp 1s ease-out 0s 1 both,
			floatDownUp 4s ease-in-out 1s infinite;
	}
	#mainvisual .rt-float {
		animation:
			floatOnceDown 1s ease-out 0s 1 both, 
			floatUpDown 4s ease-in-out 1s infinite;
	}
	#mainvisual .ttl_box {
		width: 68.8vw;
		margin: auto;
		left: 0;
		right: 0;
		bottom: 98.7vw;
	}
}
/*-----------------------------------

	section-border

-----------------------------------*/
.section-border {
	width: 100%;
	height: 6px;
	overflow: hidden;
	margin: 30px 0;
}
.section-border::before {
	content: "";
	display: block;
	height: 100%;
	width: 0;
	background-image: repeating-linear-gradient(to right,#f69ca4 0 12px,transparent 12px 18px);
	border-radius: 999px;
	transition: width 1.2s ease-out;
}
.section-border.is-active::before {
	width: 100%;
}
@media screen and (max-width: 640px) {
	.section-border {
		height: 4px;
		margin: 20px 0;
	}
}
/*-----------------------------------

	base

-----------------------------------*/
section {
	position: relative;
}
section .sticky {
	position: absolute;
	top: 30px;
	left: 0;
	width: 60px;
	height: 100%;
	z-index: 10;
	padding-bottom: 30px;
}
section .sticky h2 {
	position: sticky;
	top: 30px;
	left: 20px;
	writing-mode: vertical-rl;
	font: 700 2.1rem/1 var(--fJA);
}
section .sticky h2::before {
	content: "●";
	font-size: 1.5rem;
	color: #b9394a;
	margin-bottom: 7px;
}
@media screen and (max-width: 640px) {
	section .sticky {
		top: 20px;
		left: 5%;
		width: auto;
		height: auto;
	}
	section .sticky h2 {
		position: static;
		writing-mode: inherit;
		font: 700 1.4rem/1 var(--fJA);
		background: var(--bgClr1);
		padding: 5px;
		border-radius: 3px;
	}
	section .sticky h2::before {
		font-size: 1.3rem;
		margin: 0 5px 0 0;
	}
}
/*-----------------------------------

	features_block

-----------------------------------*/
/*-- features01 --*/
#features01 {
	padding: 80px 0 100px;
	position: relative;
	z-index: 0;
}
#features01::before {
	content: "";
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	background-image: var(--bgDot-img);
	background-position: var(--bgDot-pstn);
	background-size: var(--bgDot-size);
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 66px), calc(50% - 82px) calc(100% - 66px), 50% 100%, calc(50% + 82px) calc(100% - 66px), 0% calc(100% - 66px));
}
#features01 .ttl {
	text-align: center;
	margin-bottom: 30px;
}
#features01 .ttl .ttl01 {
	font: 700 3.2rem/1 var(--fJA);
	margin-bottom: 20px;
}
#features01 .ttl .ttl02 {
	font: 700 4.8rem/1 var(--fJA);
}
#features01 .ttl .ttl02 span {
	-webkit-text-stroke: 4px var(--tClr1);
	text-stroke: 4px var(--tClr1);
	paint-order: stroke;
	color: var(--tClr2);
	font: 700 6.2rem/1 var(--fJA);
}
#features01 .image {
	width: 100%;
	height: 100%;
	aspect-ratio: 25 / 13;
	position: relative;
}
#features01 .image img {
	position: absolute;
}
#features01 .image .img01 {
	width: 18%;
	top: 0;
	left: 41%;
}
#features01 .image .img02 {
	width: 17%;
	top: min(105px,7vw);
	left: -1.25%;
}
#features01 .image .img03 {
	width: 17.75%;
	top: min(39px,2.6vw);
	left: 19.25%;
}
#features01 .image .img04 {
	width: 17%;
	top: min(200px,14.33vw);
	left: 37.35%;
}
#features01 .image .img05 {
	width: 19.67%;
	top: min(290px,19.33vw);
	left: 15.95%;
}
#features01 .image .img06 {
	width: 17.12%;
	top: min(39px,2.6vw);
	right: 20.47%;
}
#features01 .image .img07 {
	width: 20.53%;
	top: min(105px,7vw);
	right: -1.25%;
}
#features01 .image .img08 {
	width: 21.38%;
	top: min(290px,19.33vw);
	right: 16.47%;
}
#features01 .image .img09 {
	width: 22%;
	bottom: 0;
	left: 39%;
}
@media screen and (max-width: 840px) {
	#features01 .ttl .ttl01 {
		font: 700 2.4rem/1 var(--fJA);
	}
	#features01 .ttl .ttl02 {
		font: 700 3.6rem/1 var(--fJA);
	}
	#features01 .ttl .ttl02 span {
		font: 700 4.8rem/1 var(--fJA);
	}
}
@media screen and (max-width: 640px) {
	#features01 {
		padding: 70px 0 80px;
	}
	#features01::before {
		clip-path: polygon(0 0, 100% 0, 100% calc(100% - 50px), calc(50% - 65px) calc(100% - 50px), 50% 100%, calc(50% + 65px) calc(100% - 50px), 0% calc(100% - 50px));
	}
	#features01 .ttl .ttl01 {
		font: 700 1.8rem/1 var(--fJA);
		margin-bottom: 10px;
	}
	#features01 .ttl .ttl02 {
		font: 700 2.6rem/1 var(--fJA);
		line-height: 1.6;
	}
	#features01 .ttl .ttl02 span {
		-webkit-text-stroke: 2px var(--tClr1);
		text-stroke: 2px var(--tClr1);
		font: 700 3.4rem/1 var(--fJA);
	}
	#features01 .image {
		aspect-ratio: 169 / 415;
	}
	#features01 .image .img01 {
		width: 50.47%;
		left: 24.76%;
	}
	#features01 .image .img02 {
		width: 37.27%;
		top: 42.84vw;
		left: 7.83%;
	}
	#features01 .image .img03 {
		width: 39.13%;
		top: 31.77vw;
		left: auto;
		right: 7.36%;
	}
	#features01 .image .img04 {
		width: 39.13%;
		top: 80.48vw;
		left: 5.05%;
	}
	#features01 .image .img05 {
		width: 42.84%;
		top: 70.36vw;
		left: auto;
		right: 5.56%;
	}
	#features01 .image .img06 {
		width: 37.27%;
		top: 108.29vw;
		right: 27.64%;
	}
	#features01 .image .img07 {
		width: 44.7%;
		top: 136.06vw;
		right: auto;
		left: 2.44%;
	}
	#features01 .image .img08 {
		width: 46.56%;
		top: 143.46vw;
		right: 1.05%;
	}
	#features01 .image .img09 {
		width: 56.21%;
		bottom: 0;
		left: 21.86%;
	}
}
/*-- features02 --*/
#features02 {
	padding: 10px 0 100px;
}
#features02 .ttlimg {
	width: 160px;
	margin: 0 auto 15px;
}
#features02 h3 {
	font: 700 4.8rem/1.25 var(--fJA);
	text-align: center;
	margin-bottom: 50px;
}
#features02 p {
	font: 500 1.7rem/1.94 var(--fJA);
	text-align: center;
	white-space: pre-line;
	margin-bottom: 45px;
}
#features02 .img01 {
	width: min(770px,100%);
	margin: 0 auto 60px;
}
#features02 .box {
	display: flex;
	flex-wrap: wrap;
	gap: 20px 2%;
	background: var(--mClr);
	border-radius:  20px;
	padding: 30px 50px;
}
#features02 .box .ttl {
	width: 100%;
	font: 700 2.8rem/1 var(--fJA);
	text-align: center;
}
#features02 .box .ttl span {
	font-size: 2rem;
}
#features02 .box figure {
	width: 32%;
}
#features02 .box figure img {
	border-radius: 10px;
}
#features02 .box figure figcaption {
	margin-top: 10px;
	font: 700 1.9rem/1.4 var(--fJA);
	text-align: center;
}
#features02 .box figure figcaption span {
	display: block;
	font-size: 1.4rem;
}
@media screen and (max-width: 840px) {
	#features02 .ttlimg {
		width: 120px;
	}
	#features02 h3 {
		font: 700 3.4rem/1.25 var(--fJA);
	}
	#features02 .box {
		padding: 20px;
	}
	#features02 .box .ttl {
		font: 700 2rem/1 var(--fJA);
	}
	#features02 .box .ttl span {
		font-size: 1.4rem;
	}
	#features02 .box figure figcaption {
		font: 700 1.6rem/1.4 var(--fJA);
	}
	#features02 .box figure figcaption span {
		font-size: 1.3rem;
	}
}
@media screen and (max-width: 640px) {
	#features02 {
		padding: 10px 0 50px;
	}
	#features02 .ttlimg {
		width: 104px;
		margin: 0 auto 10px;
	}
	#features02 h3 {
		font: 700 2.6rem/1.25 var(--fJA);
		margin-bottom: 30px;
	}
	#features02 p {
		font: 500 1.4rem/1.94 var(--fJA);
		text-align: left;
		margin-bottom: 35px;
	}
	#features02 .img01 {
		margin: 0 auto 35px;
	}
	#features02 .box {
		border-radius: 11px;
	}
	#features02 .box figure {
		width: 100%;
	}
	#features02 .box figure figcaption {
		margin-top: 5px;
	}
}
/*-- features03 --*/
#features03 {
	padding-bottom: 100px;
}
#features03 h3 {
	display: flex;
	justify-content: center;
	align-items: center;
	font: 700 4.8rem/1 var(--fJA);
	margin-bottom: 60px;
}
#features03 h3 span {
	-webkit-text-stroke: 4px var(--tClr1);
	text-stroke: 4px var(--tClr1);
	paint-order: stroke;
	font: 900 7.7rem/1 var(--fJA);
	color: var(--tClr3);
	text-box: trim-both cap alphabetic;
}
#features03 .inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
#features03 .inner:nth-of-type(2) {
	flex-direction: row-reverse;
}
#features03 .inner:not(:last-child) {
	margin-bottom: 70px;
}
#features03 .inner .text {
	width: 45.83%;
}
#features03 .inner .text .inner_ttl {
	margin-bottom: 30px;
}
#features03 .inner .text .inner_ttl .ttlItem1 {
	display: flex;
	align-items: center;
	gap: 15px;
	margin-bottom: 15px;
}
#features03 .inner .text .inner_ttl .ttlItem1 .i01 {
	writing-mode: vertical-rl;
	letter-spacing: 0.7em;
	font: 700 1.7rem/25px var(--fJA);
	color: var(--tClr2);
	padding-top: 17px;
	position: relative;
	z-index: 0;
}
#features03 .inner .text .inner_ttl .ttlItem1 .i01::before {
	content: "";
	width: 100%;
	height: calc(100% - 21px);
	background-image: radial-gradient(circle, var(--tClr1) 12.5px, transparent 12.5px);
	background-position: 0 -1.5px;
	background-size: 25px 28px;
	position: absolute;
	top: 14px;
	left: 0;
	z-index: -1;
}
#features03 .inner .text .inner_ttl .ttlItem1 .i02 {
	font: 700 7.4rem/1 var(--fEN2);
	color: var(--tClr3);
	-webkit-text-stroke: 4px var(--tClr1);
	text-stroke: 4px var(--tClr1);
	paint-order: stroke;
	text-box: trim-both cap alphabetic;
}
#features03 .inner .text .inner_ttl .ttlItem2 {
	display: inline;
	background: var(--bgClr2);
	color: #b9394a;
	font: 700 3.4rem/1 var(--fJA);
}
#features03 .inner .text p {
	line-height: 1.68;
	white-space: pre-line;
}
#features03 .inner .text p.note {
	font-size: 1.4rem;
	margin-top: 1em;
}
#features03 .inner .image {
	width: 50.83%;
}
#features03 .inner:last-child .image {
	margin-bottom: -3%;
}
@media screen and (max-width: 1000px) {
	#features03 .inner .text .inner_ttl .ttlItem2 {
		font: 700 2.8rem/1 var(--fJA);
	}
}
@media screen and (max-width: 840px) {
	#features03 .inner {
		flex-wrap: wrap;
		gap: 50px;
	}
	#features03 .inner:nth-of-type(2) {
		flex-direction: row;
	}
	#features03 .inner .text {
		width: 100%;
	}
	#features03 .inner .image {
		width: 100%;
	}
}
@media screen and (max-width: 640px) {
	#features03 {
		padding-bottom: 70px;
	}
	#features03 h3 {
		font: 700 2.6rem/1 var(--fJA);
		margin-bottom: 30px;
	}
	#features03 h3 span {
		font: 900 4.2rem/1 var(--fJA);
	}
	#features03 .inner {
		gap: 25px;
	}
	#features03 .inner:not(:last-child) {
		margin-bottom: 40px;
	}
	#features03 .inner .text .inner_ttl .ttlItem1 {
		gap: 10px;
	}
	#features03 .inner .text .inner_ttl .ttlItem1 .i01 {
		letter-spacing: 0.7em;
		font: 700 1.2rem/18px var(--fJA);
		padding-top: 12px;
	}
	#features03 .inner .text .inner_ttl .ttlItem1 .i01::before {
		height: calc(100% - 15px);
		background-image: radial-gradient(circle, var(--tClr1) 9px, transparent 9px);
		background-position: 0 -1px;
		background-size: 18px 20px;
		top: 9px;
	}
	#features03 .inner .text .inner_ttl .ttlItem1 .i02 {
		font: 700 5.2rem/1 var(--fEN2);
	}
	#features03 .inner .text .inner_ttl .ttlItem2 {
		font: 700 2.4rem/1 var(--fJA);
	}
	#features03 .inner .text p.note {
		font-size: 1rem;
	}
}
/*-----------------------------------

	institution_block

-----------------------------------*/
#institution_block h3 {
	text-align: center;
	font: 700 4.8rem/1 var(--fJA);
	margin-bottom: 45px;
}
@media screen and (max-width: 640px) {
	#institution_block h3 {
		font: 700 2.6rem/1 var(--fJA);
		margin-bottom: 40px;
	}
}
/*-- institution01 --*/
#institution01 {
	padding: 80px 0;
}
#institution01 .contents_inner > p {
	text-align: center;
	line-height: 1.68;
	white-space: pre-line;
	margin-bottom: 30px;
}
#institution01 .step {
	display: flex;
	justify-content: space-between;
}
#institution01 .step .step_box {
	width: 30%;
	position: relative;
}
#institution01 .step .step_box:not(:last-child)::before {
	content: "";
	width: min(33px,2.47vw);
	height: 59px;
	background: url(../img/index/institution01_arrow.svg) no-repeat center center/contain;
	position: absolute;
	top: calc(50% - 29.5px);
	left: calc(100% + min(14px,1.05vw));
}
#institution01 .step .step_box img {
	border-radius: 14px 14px 0 0;
}
#institution01 .step .step_box .no {
	background: var(--mClr);
	color: var(--tClr1);
	width: 120px;
	text-align: center;
	font: 700 2rem/1 var(--fJA);
	padding: 5px 0;
	text-box: trim-both cap alphabetic;
	border-radius: calc(1px/0);
	position: absolute;
	bottom: 123px;
	left: calc(50% - 60px);
}
#institution01 .step .step_box .text {
	width: 100%;
	height: 135px;
	display: grid;
	place-content: center;
	background: var(--bgClr2);
	border-radius: 0 0 14px 14px;
}
#institution01 .step .step_box .text p {
	font: 700 17px/1.53 var(--fJA);
	color: var(--tClr2);
	white-space: pre-line;
	text-align: center;
}
@media screen and (max-width: 840px) {
	#institution01 .step .step_box .no {
		width: 100px;
		font: 700 1.7rem/1 var(--fJA);
		bottom: 124px;
		left: calc(50% - 50px);
	}
	#institution01 .step .step_box .text p {
		font: 700 14px/1.53 var(--fJA);
	}
}
@media screen and (max-width: 640px) {
	#institution01 {
		padding: 80px 0 60px;
	}
	#institution01 .contents_inner > p {
		text-align: left;
		margin-bottom: 30px;
	}
	#institution01 .step {
		flex-wrap: wrap;
		gap: 50px;
		width: min(360px,100%);
		margin: 0 auto;
	}
	#institution01 .step .step_box {
		width: 100%;
	}
	#institution01 .step .step_box:not(:last-child)::before {
		width: 33px;
		transform: rotate(90deg);
		top: calc(100% - 4px);
        left: calc(50% - 16px);
	}
	#institution01 .step .step_box .no {
		bottom: 99px;
	}
	#institution01 .step .step_box .text {
		height: 110px;
	}
}
/*-- institution02 --*/
#institution02 {
	padding: 0 0 80px 0;
}
#institution02 .contents_inner > p {
	width: min(690px,100%);
	margin: 0 auto 30px;
	text-align: center;
	line-height: 1.68;
	white-space: pre-line;
}
#institution02 .youtube {
	width: min(800px,100%);
	margin: 0 auto;
	aspect-ratio: 16 / 9;
}
#institution02 .youtube iframe {
	width: 100%;
	height: 100%;
}
@media screen and (max-width: 640px) {
	#institution02 {
		padding: 0 0 60px 0;
	}
	#institution02 .contents_inner > p {
		text-align: left;
	}
}
/*-----------------------------------

	testimonials_block

-----------------------------------*/
#testimonials_block {
	padding-bottom: 80px;
}
#testimonials_block .contents_inner {
	max-width: 1350px;
	height: 800px;
	background: url(../img/index/testimonials_bg.jpg) no-repeat center center/cover;
	border-radius: 40px;
	display: grid;
	place-content: center;
	position: relative;
}
#testimonials_block h3 {
	width: max-content;
	margin: 0 auto;
	font: 700 4.8rem/1 var(--fJA);
	text-align: center;
	display: block;
	background: var(--mClr);
	text-box: trim-both cap alphabetic;
	padding: 15px;
	border-radius: 10px;
}
#testimonials_block ul {
	position: absolute;
	top: calc(50% + 100px);
	left: calc(50% - min(600px,45%));
	width: min(1200px,90%);
	display: flex;
	justify-content: space-between;
}
#testimonials_block ul li {
	width: 32%;
}
#testimonials_block ul li img {
	filter: drop-shadow(3px 4px 0px var(--mClr));
}
@media screen and (max-width: 840px) {
	#testimonials_block .contents_inner {
		padding: 80px 0;
		height: auto;
		gap: 50px;
	}
	#testimonials_block ul {
		position: static;
		flex-wrap: wrap;
		gap: 20px;
		width: min(380px,90%);
		margin: 0 auto;
	}
	#testimonials_block ul li {
		width: 100%;
	}
}
@media screen and (max-width: 640px) {
	#testimonials_block {
		padding: 80px 0 60px;
	}
	#testimonials_block .contents_inner {
		padding: 60px 0;
		gap: 30px;
		border-radius: 20px;
	}
	#testimonials_block h3 {
		font: 700 2.6rem/1 var(--fJA);
		padding: 10px;
		border-radius: 5px;
	}
}
/*-----------------------------------

	cando_block

-----------------------------------*/
#cando_block {
	padding: 80px 0;
}
#cando_block .contents_inner {
	max-width: 1100px;
}
#cando_block h3 {
	text-align: center;
	font: 700 4.8rem/1 var(--fJA);
	margin-bottom: 45px;
}
#cando_block dl {
	display: flex;
	flex-wrap: wrap;
	overflow: hidden;
	border-radius: 10px;
}
#cando_block dl:not(:last-child) {
	margin-bottom: 5px;
}
#cando_block dl dt {
	width: 300px;
	background: #fdeef0;
	color: var(--mClr);
	padding: 30px;
	font: 700 1.6rem/1.68 var(--fJA);
	align-content: center;
}
#cando_block dl dd {
	width: calc(100% - 300px);
	background: var(--bgClr2);
	color: #5e595a;
	padding: 30px;
	font: 500 1.6rem/1.68 var(--fJA);
	white-space: pre-line;
	align-content: center;
}
#cando_block dl dd:has(ul) {
	white-space: normal;
}
#cando_block dl dd ul li {
	position: relative;
	padding-left: 12px;
}
#cando_block dl dd ul li::before {
	content: "";
	width: 7px;
	height: 7px;
	background: #f9bdc2;
	border-radius: 50%;
	position: absolute;
	top: 11px;
	left: 0;
}
@media screen and (max-width: 840px) {
	#cando_block dl {
		width: 90%;
		margin: 0 auto;
	}
	#cando_block dl dt {
		width: 200px;
		padding: 20px;
	}
	#cando_block dl dd {
		width: calc(100% - 200px);
		padding: 20px;
	}
}
@media screen and (max-width: 640px) {
	#cando_block {
		padding: 80px 0 60px;
	}
	#cando_block h3 {
		font: 700 2.6rem/1 var(--fJA);
		margin-bottom: 40px;
	}
	#cando_block dl {
		width: 100%;
		border-radius: 6px;
	}
	#cando_block dl dt {
		width: 100%;
		padding: 12px 15px;
		font: 700 1.4rem/1.68 var(--fJA);
		align-content: normal;
	}
	#cando_block dl dd {
		width: 100%;
		padding: 12px 15px;
		font: 500 1.3rem/1.68 var(--fJA);
	}
	#cando_block dl dd ul li::before {
		width: 6px;
		height: 6px;
		top: 9px;
	}
}
/*-----------------------------------

	faq_block

-----------------------------------*/
#faq_block {
	padding: 80px 0;
}
#faq_block h3 {
	text-align: center;
	font: 700 4.8rem/1 var(--fJA);
	margin-bottom: 45px;
}
#faq_block dl {
	margin-bottom: 25px;
}
#faq_block dl dt,
#faq_block dl dd {
	position: relative;
	display: flex;
	gap: 15px;
	padding: 25px;
}
#faq_block dl dt {
	background: #ffe1e7;
	color: #b9394a;
	font: 700 2rem/1.7 var(--fJA);
	border-radius: 10px;
	padding-right: 80px;
	cursor: pointer;
}
#faq_block dl dt::before {
	content: "Q";
	font: 500 3rem/1 var(--fEN);
	color: var(--tClr2);
	padding-top: 3px;
}
#faq_block dl dt .icon {
	display: block;
	width: 40px;
	height: 40px;
	background: var(--bgClr2);
	position: absolute;
	top: calc(50% - 20px);
	right: 25px;
	border-radius: 6px;
}
#faq_block dl dt .icon::before,
#faq_block dl dt .icon::after {
	content: "";
	width: 14px;
	height: 2px;
	background: #b9394a;
	border-radius: calc(1px/0);
	position: absolute;
	top: calc(50% - 1px);
	left: calc(50% - 7px);
	transition: 0.3s;
}
#faq_block dl dt .icon::after {
	transform: rotate(90deg);
}
#faq_block dl dt.active .icon::after {
	transform: rotate(0deg);
}
#faq_block dl:first-of-type dd {
	display: flex;
}
#faq_block dl dd {
	display: none;
	line-height: 1.7;
	white-space: pre-line;
}
#faq_block dl dd::before {
	content: "A";
	font: 500 3rem/1 var(--fEN);
	color: var(--tClr1);
}
@media screen and (max-width: 640px) {
	#faq_block {
		padding: 80px 0 60px;
	}
	#faq_block h3 {
		font: 700 2.6rem/1 var(--fJA);
		margin-bottom: 40px;
	}
	#faq_block dl {
		margin-bottom: 15px;
	}
	#faq_block dl dt,
	#faq_block dl dd {
		gap: 10px;
		padding: 15px;
	}
	#faq_block dl dt::before,
	#faq_block dl dd::before {
		font: 500 1.7rem/1 var(--fEN);
		padding-top: 3px;
	}
	#faq_block dl dt {
		padding-right: 50px;
		font: 700 1.3rem/1.7 var(--fJA);
		border-radius: 5px;
	}
	#faq_block dl dt .icon {
		width: 22px;
		height: 22px;
		top: calc(50% - 11px);
		right: 15px;
		border-radius: 3px;
	}
	#faq_block dl dt .icon::before,
	#faq_block dl dt .icon::after {
		width: 8px;
		height: 1px;
		top: calc(50% - 0.5px);
		left: calc(50% - 4px);
	}
	#faq_block dl dd {
		font: 500 1.3rem/1.7 var(--fJA);
	}
}
/*-----------------------------------

	notice_block

-----------------------------------*/
#notice_block {
	padding: 80px 0;
}
#notice_block h3 {
	text-align: center;
	font: 700 4.8rem/1 var(--fJA);
	margin-bottom: 45px;
}
#notice_block ul {
	border-top: 2px solid #f48b95;
	margin-bottom: 30px;
}
#notice_block ul li {
	border-bottom: 2px solid #f48b95;
}
#notice_block ul li a {
	padding: 30px;
	display: flex;
	align-items: center;
	gap: 20px;
}
#notice_block ul li a:hover {
	background: var(--mClr);
	opacity: 1;
}
#notice_block ul li a time {
	width: 110px;
	font: 500 13px/1 var(--fEN);
}
#notice_block ul li a p {
	font-size: 17px;
	width: calc(100% - 130px);
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
}
#notice_block a.more {
	font: 700 1.8rem/50px var(--fJA);
	padding-right: 60px;
	background: url(../img/index/notice_arrow.svg) no-repeat right center/contain;
	width: max-content;
	margin: 0 0 0 auto;
}
@media screen and (max-width: 640px) {
	#notice_block {
		padding: 80px 0 60px;
	}
	#notice_block h3 {
		font: 700 2.6rem/1 var(--fJA);
		margin-bottom: 40px;
	}
	#notice_block ul li a {
		padding: 20px 10px;
		flex-direction: column;
		align-items: normal;
		gap: 10px;
	}
	#notice_block ul li a time {
		font: 500 11px/1 var(--fEN);
	}
	#notice_block ul li a p {
		font-size: 14px;
		width: 100%;
	}
	#notice_block a.more {
		font: 700 1.5rem/44px var(--fJA);
		padding-right: 55px;
	}
}
/*-----------------------------------

	contact_block

-----------------------------------*/
#contact_block {
	padding: 80px 0;
}
#contact_block h3 {
	text-align: center;
	font: 700 4.8rem/1 var(--fJA);
	margin-bottom: 45px;
}
#contact_block .box {
	width: calc(100% + 100px);
	margin: 0 -50px 40px;
	background: var(--mClr);
	padding: 30px 50px 50px;
	border-radius: 20px;
}
#contact_block .box h4 {
	font: 700 2.1rem/1 var(--fJA);
	margin-bottom: 15px;
}
@media screen and (max-width: 1333px) {
	#contact_block .box {
		width: 108%;
		margin: 0 -4% 40px;
		padding: 30px 4% 50px;
	}
}
@media screen and (max-width: 640px) {
	#contact_block {
		padding: 80px 0 60px;
	}
	#contact_block h3 {
		font: 700 2.6rem/1 var(--fJA);
		margin-bottom: 40px;
	}
	#contact_block .box {
		width: 100%;
		margin: 0 0 30px;
		padding: 20px 20px 40px;
		border-radius: 10px;
	}
	#contact_block .box h4 {
		font: 700 1.5rem/1 var(--fJA);
		margin-bottom: 10px;
	}
}
/*-- flow  --*/
#contact_block .box ul.flow {
	display: flex;
	border-radius: 30px;
	overflow: hidden;
	margin-bottom: 60px;
	background: var(--bgClr2);
}
#contact_block .box ul.flow li {
	width: 20%;
	background: var(--bgClr2);
	position: relative;
	z-index: 0;
}
#contact_block .box ul.flow li:not(:first-child)::before {
	content: "";
	width: 16px;
	height: 100%;
	background: var(--mClr);
	clip-path: polygon(0 0, 2px 0, 2px calc(50% - 27px), 100% 50%, 2px calc(50% + 27px), 2px 100%, 0 100%);
	position: absolute;
	top: 0;
	left: 0;
	z-index: 5;
}
#contact_block .box ul.flow li:not(:first-child)::after {
	content: "";
	width: 14px;
	height: 54px;
	background: var(--bgClr2);
	clip-path: polygon(0 0, 0% 100%, 100% 50%);
	position: absolute;
	top: calc(50% - 27px);
	left: 0;
	z-index: 5;
}
#contact_block .box ul.flow li .ttlArea {
	background: #fce3e5;
	padding: 45px 0 20px;
	position: relative;
}
#contact_block .box ul.flow li .ttlArea .step {
	font-family: var(--fEN);
	color: #f37b85;
	width: max-content;
	position: absolute;
	top: 23px;
	left: 50%;
	transform: translateX(-50%);
}
#contact_block .box ul.flow li .ttlArea .ttl {
	font: 700 2.3rem/1.2 var(--fJA);
	color: var(--mClr);
	height: 55px;
	text-align: center;
	display: grid;
	place-content: center;
}
#contact_block .box ul.flow li .txtArea {
	padding: 25px;
	color: #5e595a;
	line-height: 1.68;
}
@media screen and (max-width: 840px) {
	#contact_block .box ul.flow {
		flex-wrap: wrap;
	}
	#contact_block .box ul.flow li {
		width: 100%;
	}
	#contact_block .box ul.flow li:not(:first-child)::before {
		width: 100%;
		height: 16px;
		clip-path: polygon(0 0, 100% 0, 100% 2px, calc(50% + 27px) 2px, 50% 100%, calc(50% - 27px) 2px, 0 2px);
	}
	#contact_block .box ul.flow li:not(:first-child)::after {
		width: 54px;
		height: 14px;
		clip-path: polygon(0 0, 50% 100%, 100% 0);
		top: 0;
		left: calc(50% - 27px);
	}
	#contact_block .box ul.flow li .ttlArea {
		padding: 30px 0 20px;
	}
	#contact_block .box ul.flow li .ttlArea .step {
		position: static;
		transform: translateX(0);
		width: 100%;
		text-align: center;
		margin-bottom: 10px;
	}
	#contact_block .box ul.flow li .ttlArea .ttl {
		height: auto;
		display: block;
	}
}
@media screen and (max-width: 640px) {
	#contact_block .box ul.flow {
		flex-wrap: wrap;
		border-radius: 20px;
		margin-bottom: 50px;
	}
	#contact_block .box ul.flow li .ttlArea .step {
		font-size: 1.5rem;
		top: 23px;
	}
	#contact_block .box ul.flow li .ttlArea .ttl {
		font: 700 2rem/1.2 var(--fJA);
	}
	#contact_block .box ul.flow li .txtArea {
		font-size: 1.4rem;
		padding: 20px;
	}
}
/*-- link  --*/
#contact_block .box ul.link {
	display: flex;
	justify-content: space-between;
}
#contact_block .box ul.link li {
	width: 48.57%;
}
#contact_block .box ul.link li a {
	background: var(--bgClr2);
	border-radius: 30px;
	outline: 6px dashed #f4838d;
	outline-offset: -3px;
	text-align: center;
	display: grid;
	justify-items:center;
	align-items: center;
	height: 260px;
	font: 700 2.8rem/1 var(--fJA);
	color: var(--tClr2);
	padding-right: 80px;
	position: relative;
}
#contact_block .box ul.link li a:hover {
	opacity: 1;
	background: var(--mClr);
	color: var(--tClr1);
}
#contact_block .box ul.link li a::before, #contact_block .box ul.link li a::after {
	content: "";
	width: 60px;
	height: 60px;
	position: absolute;
	top: calc(50% - 30px);
	right: 30px;
	z-index: 1;
	opacity: 1;
	transition: 0.3s;
}
#contact_block .box ul.link li a::before {
	background: url(../img/index/link_arrow01.svg) no-repeat center center/contain;
}
#contact_block .box ul.link li a::after {
	background: url(../img/index/link_arrow02.svg) no-repeat center center/contain;
}
#contact_block .box ul.link li a:hover::after {
	opacity: 0;
}
#contact_block .box ul.link li a br {
	display: none;
}
@media screen and (max-width: 1333px) {
	#contact_block .box ul.link li a {
		height: 200px;
		font: 700 2.2rem/1 var(--fJA);
		padding-right: 60px;
	}
	#contact_block .box ul.link li a::before, #contact_block .box ul.link li a::after {
		width: 50px;
		height: 50px;
		top: calc(50% - 25px);
		right: 20px;
	}
}
@media screen and (max-width: 840px) {
	#contact_block .box ul.link {
		flex-wrap: wrap;
		gap: 20px;
	}
	#contact_block .box ul.link li {
		width: 100%;
	}
}
@media screen and (max-width: 640px) {
	#contact_block .box ul.link li a {
		border-radius: 20px;
		outline: 4px dashed #f4838d;
		outline-offset: -2px;
		height: 130px;
		text-align: left;
		justify-items:left;
		font: 700 1.7rem/1.4 var(--fJA);
		padding: 0 40px;
	}
	#contact_block .box ul.link li a::before, #contact_block .box ul.link li a::after {
		width: 30px;
		height: 30px;
		top: calc(50% - 15px);
	}
	#contact_block .box ul.link li a br {
		display: inline;
	}
}
/*-- note  --*/
#contact_block .note dl dt {
	position: relative;
	font: 700 2rem/1.7 var(--fJA);
	border-radius: 10px;
	border: 1px solid var(--tClr1);
	padding: 25px 80px;
	cursor: pointer;
	background: url(../img/index/contact_icon_note.svg) no-repeat 25px center/32px;
}
#contact_block .note dl dt .icon {
	display: block;
	width: 40px;
	height: 40px;
	background: var(--bgClr2);
	position: absolute;
	top: calc(50% - 20px);
	right: 25px;
	border-radius: 6px;
}
#contact_block .note dl dt .icon::before,
#contact_block .note dl dt .icon::after {
	content: "";
	width: 14px;
	height: 2px;
	background: #b9394a;
	border-radius: calc(1px/0);
	position: absolute;
	top: calc(50% - 1px);
	left: calc(50% - 7px);
	transition: 0.3s;
}
#contact_block .note dl dt .icon::after {
	transform: rotate(90deg);
}
#contact_block .note dl dt.active .icon::after {
	transform: rotate(0deg);
}
#contact_block .note dl dd {
	padding: 35px 80px;
	display: none;
	flex-direction: column;
	gap: 20px;
}
#contact_block .note dl dd .wrap {
	line-height: 1.68;
}
#contact_block .note dl dd .ttl {
	font-weight: 700;
}
#contact_block .note dl dd ul li {
	padding-left: 1em;
	text-indent: -1em;
}
#contact_block .note dl dd ul li::before {
	content: "・";
}
@media screen and (max-width: 840px) {
	#contact_block .note dl dd {
		padding: 35px 0;
	}
}
@media screen and (max-width: 640px) {
	#contact_block .note dl dt {
		font: 700 1.4rem/1.7 var(--fJA);
		border-radius: 5px;
		padding: 15px 50px;
		background: url(../img/index/contact_icon_note.svg) no-repeat 15px center/24px;
	}
	#contact_block .note dl dt .icon {
		width: 22px;
		height: 22px;
		top: calc(50% - 11px);
		right: 15px;
		border-radius: 3px;
	}
	#contact_block .note dl dt .icon::before,
	#contact_block .note dl dt .icon::after {
		width: 8px;
		height: 1px;
		top: calc(50% - 0.5px);
		left: calc(50% - 4px);
	}
	#contact_block .note dl dd {
		padding: 15px 0;
		gap: 15px;
	}
}

@media screen and (max-width: 640px) {
    footer {
        padding: 60px 0 100px;
    }
}