@charset "utf-8";
/*------------------------------------------------------------
	index
------------------------------------------------------------*/
#main .mainVisual {
	padding: 7.5rem 0 8.3rem;
}
#main .mainVisual .logo {
	margin: 0 auto;
	width: 18.5rem;
}
@keyframes bounceIn {
	from,
	20%,
	40%,
	60%,
	80%,
	to {
		-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	}
	0% {
		opacity: 0;
		-webkit-transform: scale3d(0.3, 0.3, 0.3);
		transform: scale3d(0.3, 0.3, 0.3);
	}
	20% {
		-webkit-transform: scale3d(1.1, 1.1, 1.1);
		transform: scale3d(1.1, 1.1, 1.1);
	}
	40% {
		-webkit-transform: scale3d(0.9, 0.9, 0.9);
		transform: scale3d(0.9, 0.9, 0.9);
	}
	60% {
		opacity: 1;
		-webkit-transform: scale3d(1.03, 1.03, 1.03);
		transform: scale3d(1.03, 1.03, 1.03);
	}
	80% {
		-webkit-transform: scale3d(0.97, 0.97, 0.97);
		transform: scale3d(0.97, 0.97, 0.97);
	}
	to {
		opacity: 1;
		-webkit-transform: scale3d(1, 1, 1);
		transform: scale3d(1, 1, 1);
	}
}
.ainWrp {
	width: 100%;
	left: 50%;
	top: 0;
	position: fixed;
	transform: translate(-50%, 0);
	background: url(../img/common/bg.jpg) no-repeat center top;
	background-size: 100%;
	aspect-ratio: 1366/748;
	z-index: 0;
}
.mainImg {
	position: absolute;
	left: 19%;
	bottom: 34.5%;
	width: 13.69%;
	transform: translate(-50%, 50%);
}
.mainImg img {
	width: 100%;
}
.mainImg .img {
	opacity: 0;
	transform: scale3d(0.3, 0.3, 0.3);
	position: absolute;
}
.mainImg .img00 {
	width: 100%;
	left: -48%;
	top: -40%;
	z-index: 3;
}
.mainImg .img01 {
	width: 100%;
	left: 41.8%;
	top: -43.4%;
}
.mainImg .img02 {
	width: 100%;
	left: -28%;
	top: -56.2%;
	z-index: 1;
}
.mainImg .img.animate__bounceIn {
	animation: bounceIn 0.75s forwards;
}
.mainImg .img.hide {
	animation: imghide 0.5s forwards;
}
@keyframes imghide {
	0% {
		opacity: 1;
		transform: scale3d(1, 1, 1) translateY(0);
	}
	100% {
		opacity: 0;
		transform: scale3d(1, 1, 1) translateY(-2rem);
	}
}
#main .topTxt {
	margin: 0 2rem 2.5rem;
	font-size: 3.3rem;
	line-height: 1.85;
	letter-spacing: 0.15rem;
	font-feature-settings: "palt";
	text-align: justify;
}
#main .topTxt .lineBg {
	background: linear-gradient(#00ffbf, #00ffbf) 0 100%/0 0.1rem no-repeat;
	background-size: 100% 1.4rem;
}
#main .txtList {
	margin-top: 12.3rem;
}
#main .txtList li {
	margin-bottom: 9.3rem;
	padding: 0.1rem 1rem 4rem;
	text-align: center;
	border: 0.8rem solid #FFF;
	border-radius: 5rem;
}
#main .txtList .head {
	margin: -7.4rem 0 -4.5rem;
	padding: 1.5rem 1rem 7rem;
	min-height: 33.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 3.94rem;
	line-height: 1.22;
	letter-spacing: 0.16rem;
	text-shadow: 0.1rem 0.4rem 0 rgba(255, 255, 255, 0.5);
	background: url(../img/index/ttl_bg01.webp) no-repeat center center / contain;
}
#main .txtList .head02 {
	background-image: url(../img/index/ttl_bg02.webp);
}
#main .txtList .head03 {
	font-size: 3.64rem;
	line-height: 1.1;
	background-image: url(../img/index/ttl_bg03.webp);
}
#main .txtList .ttl {
	margin-bottom: 1.5rem;
	font-size: 2.7rem;
	letter-spacing: 0.04rem;
	font-feature-settings: "palt";
}
#main .txtList .txt {
	font-size: 1.6rem;
	letter-spacing: 0.02rem;
	font-feature-settings: "palt";
}
#main .flow {
	margin-bottom: 11rem;
}
#main .flow .headLine01 {
	margin-bottom: 2.1rem;
}
#main .flowList {
	margin-bottom: 10.5rem;
}
#main .flowList li {
	margin-bottom: 5.4rem;
	position: relative;
}
#main .flowList li:last-child {
	margin-bottom: 0;
}
#main .flowList li:not(:last-child):after {
	width: 100%;
	height: 1.9rem;
	position: absolute;
	left: 0;
	top: calc(100% + 1.5rem);
	content: '';
	background: url(../img/index/icon.png) no-repeat center top / 0.8rem;
}
#main .flowList li .subBox {
	padding: 1.2rem 1rem 1.4rem;
	line-height: 1.4;
	letter-spacing: 0.08rem;
	text-align: center;
	background-color: #FFF;
	border-radius: 10rem;
}
#main .flowList li .subBox .txt {
	display: block;
}
#main .flowList li .subBox .red {
	display: block;
	color: #E60012;
}
#main .flowList li .subBox .red .sml {
	display: inline-block;
	vertical-align: 0.3rem;
	font-size: 1.7rem;
}
#main .flowList li p {
	margin-top: 0.8rem;
	text-align: center;
	font-size: 1.4rem;
	line-height: 1.642;
}
#main .flowList li .txtBg {
	background: #00FFBF;
}
#main .flowList .btn {
	margin-left: 1rem;
	padding: 0.8rem 1rem;
	display: inline-block;
	font-size: 1.6rem;
	line-height: 1.5;
	text-align: center;
	background-color: #e1e1df;
	border-radius: 10rem;
	vertical-align: 0.4rem;
}
#main .flowList a:hover {
	opacity: 0.7;
}
#main .flow .noteBox {
	margin-bottom: 2.3rem;
	padding: 1rem 2.7rem 2rem;
	border: 0.5rem solid #fff;
	border-radius: 3.6rem;
}
#main .flow .noteBox .ttl {
	margin-bottom: 0.9rem;
	text-align: center;
	font-size: 2.4rem;
	letter-spacing: 0.08em;
}
#main .flow .noteBox .noteList {
	margin-right: -2.5rem;
}
#main .flow .noteBox .noteList li {
	padding-left: 1.8rem;
	font-size: 1.2rem;
	letter-spacing: -0.03em;
	line-height: 1.9;
	background: url(../img/common/icon02.png) no-repeat left top 0.3rem / 1.5rem;
}
#main .lineBnr a {
	display: block;
}
#main .lineBnr a:hover {
	opacity: 0.7;
}
#main .stateBox {
	margin-bottom: 8rem;
}
#main .stateBox .headLine01 {
	margin-bottom: 4.6rem;
}
#main .state {
	margin-bottom: 1.3rem;
	position: relative;
	border-radius: 3rem;
	overflow: hidden;
}
#main .state .ttl {
	position: absolute;
	display: flex;
	align-items: center;
	right: 7%;
	width: 44.5%;
	height: 62%;
	top: 1.5%;
	text-align: justify;
	line-height: 1.55;
}
#main .state .txt {
	position: absolute;
	left: 7%;
	right: 7%;
	bottom: 8%;
	color: #FFF;
	font-size: 1.596rem;
	text-align: justify;
}
#main .stateBox .topTxt {
	margin-top: 4.5rem;
	letter-spacing: 0.1rem;
}
#main .contact {
	margin-bottom: 9rem;
}
#main .contact .headLine01 {
	margin-bottom: 2.7rem;
	line-height: 1.18;
}
#main .contact .list {
	background: #fff;
	border-radius: 4rem;
	border: 0.8rem solid #00FFBF;
}
#main .contact .list li {
	padding: 2.4rem 2.4rem 3.7rem;
	border-bottom: 0.9rem solid #00FFBF;
}
#main .contact .list li:last-child {
	border-bottom: none;
}
#main .contact .list li h3 {
	margin-bottom: 2.9rem;
	text-align: center;
	font-size: 4rem;
	font-weight: 700;
}
#main .contact .list li h3 small {
	margin-top: 0.2rem;
	display: block;
	font-size: 2.2rem;
}
#main .contact .list li .imgBox {
	padding-top: 3.2rem;
	display: flex;
	gap: 1.5rem;
}
#main .contact .list li .imgBox .photo {
	width: 36.9%;
	text-align: center;
	padding: 0.9rem 0 0 0.4rem;
}
#main .contact .list li .imgBox .photo img {
	width: 13rem;
}
#main .contact .list li .imgBox .photo .txt {
	margin: 0.9rem 0.6rem 0 0;
	display: block;
	font-size: 1.3rem;
}
#main .contact .list li .imgBox .text {
	flex: 1;
}
#main .contact .list li .imgBox .text p {
	font-size: 1.4rem;
	line-height: 1.642;
}
#main .contact .list li .imgBox .text .ttl {
	margin-bottom: 1.8rem;
	font-size: 2.4rem;
	line-height: 1.34;
	letter-spacing: 0.03em;
}
#main .contact .list .closed {
	min-height: 39.4rem;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}
#main .contact .list .closed img {
	width: 45.1rem;
}
#main .contact .list .last {
	padding-top: 2.7rem;
	padding-bottom: 3.5rem;
}
#main .bnrList {
	margin: 0 2rem 0 2.1rem;
}
#main .bnrList li {
	margin-bottom: 1.8rem;
}
#main .bnrList li:last-child {
	margin-bottom: 0;
}
#main .bnrList li a {
	display: block;
}
#main .bnrList li img {
	width: 100%;
}
#main .bnrList li a:hover {
	opacity: 0.8;
}
@media all and (min-width: 768px) {
	#main .sec01 {
		height: auto !important;
	}
	#main .mainBox {
		opacity: 0;
	}
	#main .mainBox.show {
		opacity: 1;
	}
}
@media all and (max-width: 767px) {
	.ainWrp {
		width: 76.7rem;
		height: 100lvh;
		aspect-ratio: initial;
		background-image: url(../img/common/sp_bg01.jpg);
		background-position: center bottom;
		background-color: #fff;
		transform: translateX(-50%);
		transition: opacity 0.8s;
	}
	.ainWrp::after {
		width: 100%;
		height: 11.5rem;
		position: absolute;
		left: 0;
		bottom: 0;
		background: linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 3rem, rgba(255, 255, 255, 0) 100%);
		content: '';
	}
	.ainWrp.hide {
		opacity: 0;
	}
	.mainImg {
		left: 50.43%;
		bottom: 21.6rem;
		width: 21.3%;
	}
	.mainImg .img00 {
		left: -56.5%;
		top: -28%;
	}
	.mainImg .img01 {
		left: 61.4%;
		top: -32.4%;
	}
	.mainImg .img02 {
		left: -2.7%;
		top: -55%;
	}
	#main .mainVisual {
		padding: 2.9vh 0 0;
		transition: all 0.4s;
	}
	#main .mainVisual.hide {
		opacity: 0;
	}
	#main .mainVisual p {
		margin-bottom: 3rem;
		text-align: center;
		font-size: 2.1rem;
		line-height: 1.43;
	}
	#main .mainVisual p .bg {
		background: linear-gradient(#00FFBF, #00FFBF) no-repeat left bottom / 100% 1rem;
	}
	#main .mainVisual .logo {
		margin: 0 auto;
		width: 14.6rem;
	}
	#main .mainBox {
		padding-top: calc(97.5vh - 30rem);
	}
	#main .sec01 {
		margin-bottom: 5.6rem;
	}
	#main .topTxt {
		margin: 0 2.5rem;
		font-size: 2.2rem;
		line-height: 2.13;
		letter-spacing: 0;
	}
	#main .topTxt .lineBg {
		background-size: 100% 1rem;
	}
	#main .txtList {
		margin-top: 8.2rem;
	}
	#main .txtList li {
		margin-bottom: 5.6rem;
		padding: 0.1rem 2.6rem 2rem;
		border-radius: 4rem;
	}
	#main .txtList li:last-child {
		margin-bottom: 0;
	}
	#main .txtList .head {
		margin: -4.7rem auto -4.2rem;
		padding: 1.5rem 1rem 6.3rem;
		max-width: 26.2rem;
		min-height: initial;
		font-size: 2.4rem;
		line-height: 1.26;
		letter-spacing: 0;
		text-shadow: 0.1rem 0.2rem 0 rgba(255, 255, 255, 0.5);
		background-image: url(../img/index/ttl_bg01_sp.webp);
		aspect-ratio: 524/436;
	}
	#main .txtList .head02 {
		margin-top: -3.8rem;
		margin-bottom: -4.6rem;
		padding-bottom: 7.1rem;
		aspect-ratio: 524/420;
		background-image: url(../img/index/ttl_bg02_sp.webp);
	}
	#main .txtList .head03 {
		font-size: 2.2rem;
		aspect-ratio: 524/430;
		background-image: url(../img/index/ttl_bg03_sp.webp);
	}
	#main .txtList .ttl {
		margin-bottom: 0.9rem;
		font-size: 1.7rem;
	}
	#main .txtList .txt {
		font-size: 1rem;
		letter-spacing: 0.04em;
	}
	#main .flow {
		margin-bottom: 6.4rem;
	}
	#main .flow .headLine01 {
		margin-bottom: 3.1rem;
		font-size: 2.6rem;
	}
	#main .flowList {
		margin-bottom: 5rem;
	}
	#main .flowList li {
		margin-bottom: 3.5rem;
	}
	#main .flowList li:last-child {
		margin-bottom: 0;
	}
	#main .flowList li:not(:last-child):after {
		height: 1.2rem;
		top: calc(100% + 1.2rem);
		background-size: auto 100%;
	}
	#main .flowList li .subBox {
		padding: 0.8rem 0.3rem 0.8rem;
		font-size: 1.5rem;
		letter-spacing: 0;
	}
	#main .flowList li .subBox .red .sml {
		vertical-align: 0;
		font-size: 1.3rem;
	}
	#main .flowList li p {
		margin: 1rem -0.5rem 0;
		font-size: 1.2rem;
	}
	#main .flowList .btn {
		margin-left: 0.4rem;
		padding: 0.4rem 0.7rem;
		font-size: 1rem;
		vertical-align: 0.2rem;
	}
	#main .flow .noteBox {
		margin-bottom: 2rem;
		padding: 1rem 2rem 2rem;
		border-width: 0.4rem;
		border-radius: 2.5rem;
	}
	#main .flow .noteBox .ttl {
		margin-bottom: 0.5rem;
		font-size: 2rem;
	}
	#main .flow .noteBox .noteList {
		margin-right: 0;
	}
	#main .flow .noteBox .noteList li {
		letter-spacing: 0;
	}
	#main .lineBnr {
		text-align: center;
	}
	#main .stateBox {
		margin-bottom: 4.9rem;
	}
	#main .stateBox .headLine01 {
		margin-bottom: 2.1rem;
		font-size: 2.6rem;
		line-height: 1.45;
	}
	#main .state {
		margin-bottom: 0.8rem;
	}
	#main .state .ttl {
		right: 9%;
		width: 42%;
		height: 62%;
		top: 4.5%;
		font-size: 1.5rem;
		line-height: 1.5;
		letter-spacing: 0.04em;
		font-feature-settings: "palt";
	}
	#main .state .txt {
		font-size: 1rem;
	}
	#main .stateBox .topTxt {
		margin: 2.7rem 1.4rem 0;
		font-size: 2rem;
		letter-spacing: 0;
		line-height: 1.86;
	}
	#main .contact {
		margin-bottom: 4.7rem;
	}
	#main .contact .headLine01 {
		margin-bottom: 1.7rem;
	}
	#main .contact .list {
		border-radius: 3rem;
	}
	#main .contact .list li {
		padding: 1.1rem 1.2rem 2.2rem;
	}
	#main .contact .list li:last-child {
		border-bottom: none;
	}
	#main .contact .list li h3 {
		margin-bottom: 1.7rem;
		font-size: 2.4rem;
	}
	#main .contact .list li h3 small {
		margin-top: 0.1rem;
		font-size: 1.4rem;
	}
	#main .contact .list li .imgBox {
		padding-top: 2rem;
		gap: 1rem;
	}
	#main .contact .list li .imgBox .photo {
		width: 33.2%;
		padding: 0.5rem 0 0 0.9rem;
	}
	#main .contact .list li .imgBox .photo img {
		width: 7.9rem;
	}
	#main .contact .list li .imgBox .photo .txt {
		margin: 0.6rem 0.4rem 0 0;
		font-size: 0.8rem;
	}
	#main .contact .list li .imgBox .text p {
		font-size: 1rem;
		font-feature-settings: "palt";
		letter-spacing: 0.1em;
		line-height: 1.4;
	}
	#main .contact .list li .imgBox .text .ttl {
		margin-bottom: 0.9rem;
		font-size: 1.5rem;
		letter-spacing: 0.1em;
	}
	#main .contact .list .closed {
		min-height: 29rem;
	}
	#main .contact .list .last {
		padding-top: 1.4rem;
		padding-bottom: 1.8rem;
	}
	#main .bnrList {
		margin: 0;
	}
	#main .bnrList li {
		margin-bottom: 1.1rem;
	}
	#main .bnrList li:last-child {
		margin-bottom: 0;
	}
}
@media all and (max-width: 767px) and (min-height: 800px) {
	#main .mainVisual {
		padding-top: 10vh;
	}
	#main .mainBox {
		padding-top: calc(90vh - 30rem);
	}
}
.fixBox {
	width: 35.6rem;
	position: fixed;
	right: 2.2rem;
	bottom: 1.3rem;
	z-index: 500;
}
.fixBox a {
	display: block;
	position: relative;
}
.fixBox .inWrp {
	padding: 0.5rem 12rem 0.8rem 1.5rem;
	width: 100%;
	min-height: 9.2rem;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 2.6rem;
	border: 0.8rem solid #00FFBF;
	background: rgba(255, 255, 255, 0.65);
	transition: .2s cubic-bezier(.17, .67, .46, 2.14);
}
.fixBox .txt01 {
	padding-top: 1.8rem;
	width: 16.4rem;
	display: flex;
	justify-content: center;
	position: absolute;
	right: -1.1rem;
	top: -4.2rem;
	font-size: 1.2rem;
	text-align: center;
	background: url(../img/common/txt_bg01.webp) no-repeat center top / 100%;
	aspect-ratio: 328/144;
	z-index: 1;
	animation: stFloat 2s linear infinite;
}
@keyframes stFloat {
	0% {
		-webkit-transform: translateY(0);
		transform: translateY(0);
	}
	50% {
		-webkit-transform: translateY(-0.6rem);
		transform: translateY(-0.6rem);
	}
	100% {
		-webkit-transform: translateY(0);
		transform: translateY(0);
	}
}
.fixBox .txt02 {
	font-size: 2.8rem;
	line-height: 1.3;
}
.fixBox .txt02 .sub {
	margin-top: 0.1rem;
	display: block;
	font-size: 1.4rem;
}
.fixBox .txt02 .sub .sm {
	margin-right: 0.5rem;
	font-size: 1rem;
}
.fixBox .txt03 {
	padding: 0.6rem 0.3rem 0.2rem;
	width: 9.6rem;
	position: absolute;
	right: 1.2rem;
	bottom: -0.1rem;
	text-align: center;
	font-size: 1rem;
	line-height: 1.2;
	border-radius: 0.9rem 0.9rem 0 0;
	background: #00FFBF;
}
.fixBox .img {
	width: 8.3rem;
	position: absolute;
	right: 1.6rem;
	bottom: 1.3rem;
	line-height: 0;
}
@media all and (min-width: 768px) {
	.fixBox {
		display: block !important;
	}
	.fixBox .txt01.break {
		background-image: url(../img/common/txt_bg02.png);
	}
	.fixBox a:hover .inWrp {
		transform: scale(1.02);
	}
}
@media all and (max-width: 767px) {
	.fixBox {
		width: calc(100% - 4rem);
		right: 50%;
		transform: translateX(50%);
		display: none;
	}
	.fixBox .inWrp {
		padding: 0.5rem 11rem 0.8rem 1rem;
		min-height: 8.7rem;
		background: #fff;
	}
	.fixBox .txt01 {
		width: 15.4rem;
		right: -0.9rem;
		top: -3.8rem;
		font-size: 1.1rem;
	}
	.fixBox .txt02 {
		font-size: 2.6rem;
	}
	.fixBox .txt02 .sub {
		font-size: 1.3rem;
	}
	.fixBox .txt03 {
		padding: 0.6rem 0.3rem 0.1rem;
		width: 9rem;
	}
	.fixBox .img {
		width: 7.8rem;
	}
}