/* top */

/* top-kv */

.kv {
	background: url(../img/top/kv-bg.webp) no-repeat center center/cover;
	padding-top: 135px;
	position: relative;
}

.kv__wrap {
	margin: 0 auto;
	max-width: 1056px;
	padding-bottom: 117px;
	position: relative;
	width: 100%;
	z-index: 1;
}

.kv__inner {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 10px;
	position: relative;
}

.kv__cards {
	inset: 0;
	position: absolute;
}

.kv__card {
	animation: float-card 6s ease-in-out infinite;
	position: absolute;
}

.kv__card.--01 {
	animation-delay: 0s;
	left: 0;
	top: 65px;
}

.kv__card.--02 {
	animation-delay: 1.1s;
	right: 12px;
	top: 69px;
}

.kv__card.--03 {
	animation-delay: 0.6s;
	bottom: 28px;
	left: 22px;
}

.kv__card.--04 {
	animation-delay: 1.7s;
	bottom: 18px;
	right: 46px;
}

.kv__card-img {
	width: 302px;
}

.kv__card-content {
	bottom: -10px;
	position: absolute;
	right: -10px;
	width: 110px;
}

.kv__card-chara {
	animation: kv-chara-jump-neg 5s infinite;
	left: -51px;
	pointer-events: none;
	position: absolute;
	top: 9px;
	width: 70px;
	z-index: 1;
}

.kv__card-chara.--02 {
	animation: kv-chara-jump-pos 5s infinite;
	animation-delay: 1.3s;
	left: -57px;
	top: 11px;
}

.kv__card-name {
	display: block;
	transition: filter 0.25s ease;
}

.kv__card-name:hover {
	filter: brightness(1.05);
}

.kv__title {
	align-items: center;
	display: flex;
	flex-direction: column;
}

.kv__title-copy01 {
	animation: kv-fade-up 0.7s ease both;
	animation-delay: 0.3s;
	width: 293px;
}

.kv__title-copy02 {
	animation: kv-fade-up 0.7s ease both;
	animation-delay: 0.5s;
	margin-top: -5px;
	width: 315px;
}

.kv__img {
	width: 85.2272727273%;
}

.kv__back {
	inset: 0;
	position: absolute;
	z-index: 0;
}

.kv__parts-kumo {
	animation: float-kumo 3.5s ease-in-out infinite;
	position: absolute;
	width: 90px;
}

.kv__parts-kumo.--w-01 {
	animation-delay: 0s;
	right: calc(50% + 340px);
	top: 17.4331550802%;
}

.kv__parts-kumo.--w-02 {
	animation-delay: 1.2s;
	bottom: 34.3315508021%;
	left: calc(50% + 422px);
}

.kv__parts-kumo.--y-01 {
	animation-delay: 0.6s;
	left: calc(50% + 265px);
	top: 19.1443850267%;
}

.kv__parts-kumo.--y-02 {
	animation-delay: 1.8s;
	right: calc(50% + 454px);
	top: 46.9518716578%;
}

.kv__parts-kumo.--y-03 {
	animation-delay: 2.4s;
	bottom: 10.1604278075%;
	right: calc(50% + 151px);
}

.kv__parts-dot {
	position: absolute;
	width: 120px;
}

.kv__parts-dot.--01 {
	right: calc(50% + 215px);
	top: 22.3529411765%;
}

.kv__parts-dot.--02 {
	left: calc(50% + 395px);
	top: 42.4598930481%;
}

.kv__parts-dot.--03 {
	bottom: 9.5187165775%;
	right: calc(50% + 264px);
}

.kv__parts-dot.--04 {
	bottom: 8.8770053476%;
	left: calc(50% + 250px);
}

.kv__parts-dot.--05 {
	display: none;
}

.top-about {
	background: url(../img/top/top-about-bg.webp) repeat-y center/1200px auto;
	padding-bottom: 29px;
	padding-top: 17px;
	position: relative;
}

.top-about__inner {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.top-about__heading {
	line-height: 1.3;
	text-align: center;
}

.top-about__title {
	font-size: 36px;
}

.top-about__desc {
	font-size: 24px;
	margin-top: 5px;
}

.top-about__content {
	align-items: center;
	display: flex;
	flex-direction: column;
}

.top-about__text {
	font-size: 18px;
	font-style: normal;
	font-weight: 500;
	line-height: 200%;
	margin-bottom: 19px;
	text-align: center;
}

.top-about__chara {
	animation: jump 2.5s infinite;
	margin-top: 30px;
	position: relative;
	width: 405px;
	z-index: 1;
}

.top-policy {
	background: var(--color-mint_light, #B1DFDB);
	padding-block: 30px;
	position: relative;
}

.top-policy__inner {
	align-items: center;
	display: flex;
	gap: 50px;
}

.top-policy__img {
	width: 48.7%;
}

.top-policy__contain {
	align-items: center;
	background: var(--mono-white, #FFF);
	border-radius: 20px;
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	gap: 20px;
	padding: 40px 50px;
}

.top-policy__head {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.top-policy__icon {
	width: 75px;
}

.top-policy__title {
	font-size: 32px;
	line-height: 130%;
}

.top-policy__text { /* 背景色 */
	background-color: #fff; /* 点線1の色 */
	background-image: linear-gradient(90deg, transparent 0%, transparent 50%, #fff 50%, #fff 100%), linear-gradient(180deg, var(--color-yellow) 2px, transparent 2px); /* 点線1のサイズ */
	background-size: 8px 100%, 100% 2.55em;
	font-size: 18px;
	line-height: 255%; /* 最終行の下にも罫線を引く */
	padding-bottom: 1px;
	padding-top: 3px;
	position: relative;
	position: relative;
	text-align: center;
	width: 100%;
}

@media (min-width: 1200px) {

.top-about {
	background-size: 100% auto;
}

}

@media screen and (max-width: 1020px) {

.top-policy__inner {
	gap: 20px;
}

}

@media screen and (max-width: 920px) {

.kv__wrap {
	zoom: 0.8;
}

.top-policy__inner {
	flex-direction: column;
	gap: 20px;
	margin: 0 auto;
	max-width: 470px;
}

.top-policy__img {
	width: 100%;
}

.top-policy__contain {
	padding: 40px 20px;
	width: 100%;
}

.top-policy__icon {
	width: 50px;
}

.top-policy__title {
	font-size: 28px;
}

.top-policy__text {
	font-size: 16px;
}

}

@media screen and (max-width: 767px) {

.kv {
	padding-top: 90px;
}

.kv__wrap {
	max-width: 375px;
	padding-bottom: 70px;
	zoom: 1;
}

.kv__inner {
	gap: 0;
}

.kv__cards {
	display: flex;
	flex-wrap: wrap;
	gap: 40px 10px;
	margin-top: 10px;
	order: 3;
	padding: 0 15px;
	position: static;
}

.kv__card {
	position: relative;
	width: calc((100% - 10px) / 2);
}

.kv__card.--01 {
	inset: auto;
}

.kv__card.--02 {
	inset: auto;
}

.kv__card.--03 {
	inset: auto;
}

.kv__card.--04 {
	inset: auto;
}

.kv__card-img {
	width: 100%;
}

.kv__card-content {
	align-items: center;
	bottom: -31px;
	display: flex;
	justify-content: center;
	left: 50%;
	right: auto;
	transform: translateX(-50%);
	width: auto;
}

.kv__card-chara {
	margin-right: -20px;
	position: static;
	width: 54px;
}

.kv__card-name {
	width: 95px;
}

.kv__title-copy01 {
	width: 209px;
}

.kv__title-copy02 {
	width: 249px;
}

.kv__img {
	width: 92%;
}

.kv__parts-kumo {
	display: none;
}

.kv__parts-dot.--01 {
	right: calc(50% + 52px);
	top: 14.3431635389%;
}

.kv__parts-dot.--02 {
	left: calc(50% + 82px);
	top: 18.7667560322%;
	width: 100px;
}

.kv__parts-dot.--03 {
	bottom: 38.3378016086%;
	right: calc(50% + 58px);
	width: 100px;
}

.kv__parts-dot.--04 {
	bottom: 39.6782841823%;
	left: calc(50% + 102px);
	width: 60px;
}

.kv__parts-dot.--05 {
	bottom: 18.2305630027%;
	display: block;
	left: calc(50% + 28px);
	width: 80px;
}

.top-about {
	padding-bottom: 0px;
	padding-top: 22px;
}

.top-about__inner {
	gap: 22px;
}

.top-about__title {
	font-size: 32px;
}

.top-about__desc {
	font-size: 20px;
	line-height: 160%;
	margin-top: 10px;
}

.top-about__text {
	font-size: 16px;
}

.top-about__chara {
	margin-top: 19px;
	width: 250px;
}

}

@keyframes kv-fade-up {

from {
	opacity: 0;
	transform: translateY(20px);
}

to {
	opacity: 1;
	transform: translateY(0);
}

}

@keyframes float-kumo {

0%,100% {
	transform: translateY(0);
}

50% {
	transform: translateY(-14px);
}

}

@keyframes float-card {

0%,100% {
	transform: translateY(0);
}

50% {
	transform: translateY(-10px);
}

}

@keyframes kv-chara-jump-neg {

0% {
	animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1);
	transform: translateY(0) rotate(-15deg);
}

10% {
	animation-timing-function: cubic-bezier(0.32, 0, 0.67, 0);
	transform: translateY(-7px) rotate(-15deg);
}

20%,100% {
	transform: translateY(0) rotate(-15deg);
}

}

@keyframes kv-chara-jump-pos {

0% {
	animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1);
	transform: translateY(0) rotate(15deg);
}

10% {
	animation-timing-function: cubic-bezier(0.32, 0, 0.67, 0);
	transform: translateY(-7px) rotate(15deg);
}

20%,100% {
	transform: translateY(0) rotate(15deg);
}

}

@keyframes jump {

0% {
	animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1);
	transform: translateY(0);
}

15% {
	animation-timing-function: cubic-bezier(0.32, 0, 0.67, 0);
	transform: translateY(-18px);
}

30%,100% {
	transform: translateY(0);
}

}

