@charset "utf-8";
main {
	overflow: clip;
}

#hero_bg {
	width: 100%;
	height: auto;
	position: relative;
}
	#hero_bg::before {
		content: '';
		display: block;
		width: 100%;
		height: 100%;
		background-image: url(../image/bg@pc.webp);
		background-size: 100% auto;
		background-position: top center;
		background-repeat: repeat;
		mix-blend-mode: multiply;
		opacity: .3;
		position: absolute;
		top: 0%;
		left: 0%;
		z-index: 1;
	}
	.hero_bg__inner {
		width: 100%;
		height: 100vh;
		background-color: var(--c-bg-gray);
		position: absolute;
		top: 0;
		left: 0;
		z-index: 1;
	}
		.hero_bg__wrap {
			width: 100%;
			min-width: 1440px;
			height: auto;
			aspect-ratio: 1440 / 1024;
			position: relative;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%);
			z-index: 2;
		}
			.hero_bg__image {
				height: auto;
				position: absolute;
				transform: translate(-50%, -50%);
			}
			.hero_bg__image._01 {
				width: calc((264.12 / var(--vw)) * 100%);
				top: calc((-34 / 1024) * 100%);
				left: calc((380 / var(--vw)) * 100%);
			}
			.hero_bg__image._02 {
				width: calc((257.19 / var(--vw)) * 100%);
				top: calc((66 / 1024) * 100%);
				left: calc((709 / var(--vw)) * 100%);
			}
			.hero_bg__image._03 {
				width: calc((257.18 / var(--vw)) * 100%);
				top: calc((39 / 1024) * 100%);
				left: calc((1036 / var(--vw)) * 100%);
			}
			.hero_bg__image._04 {
				width: calc((252.29 / var(--vw)) * 100%);
				top: calc((-58 / 1024) * 100%);
				left: calc((1336 / var(--vw)) * 100%);
			}
			.hero_bg__image._05 {
				width: calc((244.85 / var(--vw)) * 100%);
				top: calc((529 / 1024) * 100%);
				left: calc((-50 / var(--vw)) * 100%);
			}
			.hero_bg__image._06 {
				width: calc((257.18 / var(--vw)) * 100%);
				top: calc((446 / 1024) * 100%);
				left: calc((383 / var(--vw)) * 100%);
			}
			.hero_bg__image._07 {
				width: calc((236.86 / var(--vw)) * 100%);
				top: calc((401 / 1024) * 100%);
				left: calc((1042 / var(--vw)) * 100%);
			}
			.hero_bg__image._08 {
				width: calc((248.45 / var(--vw)) * 100%);
				top: calc((428 / 1024) * 100%);
				left: calc((1347 / var(--vw)) * 100%);
			}
			.hero_bg__image._09 {
				width: calc((264.12 / var(--vw)) * 100%);
				top: calc((892 / 1024) * 100%);
				left: calc((252 / var(--vw)) * 100%);
			}
			.hero_bg__image._10 {
				width: calc((257.19 / var(--vw)) * 100%);
				top: calc((972 / 1024) * 100%);
				left: calc((592 / var(--vw)) * 100%);
			}
			.hero_bg__image._11 {
				width: calc((257.18 / var(--vw)) * 100%);
				top: calc((840 / 1024) * 100%);
				left: calc((978 / var(--vw)) * 100%);
			}
			.hero_bg__image._12 {
				width: calc((252.29 / var(--vw)) * 100%);
				top: calc((915 / 1024) * 100%);
				left: calc((1284 / var(--vw)) * 100%);
			}

.hero_origin__wrapper {
	--hero_origin_clip_height_base: 1024;
	--hero_origin_clip_start_width: max(calc((273.13 / var(--vw)) * 100%), 273.13px);
	--hero_origin_clip_start_width_base: 273.13;
	--hero_origin_clip_position_top: calc((503 / var(--hero_origin_clip_height_base)) * 100%);
	--hero_origin_clip_position_top_base: 503;
	--hero_origin_clip_position_left: calc((719 / var(--vw)) * 100%);
	--hero_origin_clip_position_left_base: 719;
	width: 100%;
	height: auto;
	position: relative;
	z-index: 2;
}
.hero_origin__wrapper._clip_active {
	-webkit-clip-path: url(#hero_contents_clip);
	clip-path: url(#hero_contents_clip);
}

#hero {
	width: 100%;
	height: 100vh;
	position: relative;
}
	.hero__inner {
		width: 100%;
		height: 100%;
	}
		.hero__contents {
			width: 100%;
			height: 100vh;
			background-color: var(--c-blue);
			position: absolute;
			top: 0;
			left: 0;
			z-index: 3;
		}
		.hero__clip_svg {
			width: 100%;
			height: 100%;
			position: absolute;
			top: 0;
			left: 0;
			opacity: 0;
			pointer-events: none;
			overflow: visible;
			will-change: transform;
		}
			.hero__contents::before {
				content: '';
				display: block;
				width: 100%;
				height: 100%;
				background-image: url(../image/about/hero-texture@pc.webp);
				background-size: cover;
				background-position: bottom center;
				background-repeat: no-repeat;
				mix-blend-mode: multiply;
				position: absolute;
				top: 0;
				left: 0;
				z-index: 1;
			}
			.hero__contents__inner {
				display: flex;
				flex-direction: column;
				justify-content: center;
				align-items: flex-start;
				width: max(calc((471 / var(--vw)) * 100vw), 471px);
				height: 100%;
				margin: 0 auto;
				position: relative;
				z-index: 2;
			}
				.hero__heading {
					width: 100%;
					height: auto;
					margin-bottom: max(calc((154 / var(--vw)) * 100vw), 154px);
					font-size: max(calc((14 / var(--vw)) * 100vw), 14px);
					font-weight: 900;
					line-height: 1.5;
					letter-spacing: 0.15em;
					text-align: center;
					color: var(--c-white);
					opacity: 0;
					transform: translateY(10%);
					transition: .4s;
				}
				._run .hero__heading {
					opacity: 1;
					transform: translateY(0%);
				}
				.hero__character {
					/* 終点位置は heading の真下を参照して JS で動的算出 (vh/vw 混在を計算で吸収しない)。
					   CSS は start (clip center に co-locate する vh 基準) のみ */
					--hero_character_move_x: 0px;
					--hero_character_current_move_y: 0px;
					--hero_character_current_move_x: 0px;
					--hero_character_end_width: max(calc((88 / var(--vw)) * 100%), 88px);
					width: max(calc((157 / var(--vw)) * 100vw), 157px);
					height: auto;
					position: absolute;
					top: calc((507 / 1024) * 100%);
					left: calc((721 / var(--vw)) * 100%);
					transform: translate(calc(-50% + var(--hero_character_current_move_x)), calc(-50% + var(--hero_character_current_move_y)));
					z-index: 2;
				}
				/* SP only: character の終点アンカー (layout に乗る不可視の枠)。
				   PC は heading.offsetTop を使うので不要。default で display:none */
				.hero__character_anchor {
					display: none;
				}
				.hero__copy {
					width: 100%;
					height: auto;
					margin-bottom: max(calc((50 / var(--vw)) * 100vw), 50px);
					opacity: 0;
					transition-duration: 1s;
					/* transition-delay: .1s; */
				}
				._run .hero__copy {
					opacity: 1;
				}
					.hero__copy svg {
						fill: var(--c-white);
					}
				.hero__text {
					width: 100%;
					height: auto;
					font-size: max(calc((16 / var(--vw)) * 100vw), 16px);
					font-weight: 700;
					line-height: 1.9;
					letter-spacing: 0.05em;
					color: var(--c-white);
					opacity: 0;
					transition-duration: 1s;
					/* transition-delay: .2s; */
				}
				._run .hero__text {
					opacity: 1;
				}

#origin {
	width: 100%;
	height: auto;
	padding: max(calc((140 / var(--vw)) * 100vw), 140px) 0 max(calc((309 / var(--vw)) * 100vw), 309px);
	background-color: var(--c-blue);
	position: relative;
	overflow: hidden;
}
	#origin::before {
		content: '';
		display: block;
		width: 100%;
		height: 100%;
		background-image: url(../image/about/origin-texture@pc.webp);
		background-size: cover;
		background-position: top center;
		background-repeat: no-repeat;
		mix-blend-mode: multiply;
		position: absolute;
		top: 0;
		left: 0;
		z-index: 1;
	}
	.origin__inner {
		width: calc((1115 / var(--vw)) * 100%);
		height: auto;
		margin: 0 auto;
		position: relative;
		z-index: 2;
	}
		.origin__contents {
			display: flex;
			justify-content: space-between;
			align-items: flex-end;
			width: 100%;
			height: auto;
			padding: max(calc((59 / var(--vw)) * 100vw), 59px) max(calc((69 / var(--vw)) * 100vw), 69px) max(calc((69 / var(--vw)) * 100vw), 69px);
			border-radius: max(calc((40 / var(--vw)) * 100vw), 40px);
			background-color: rgba(255, 255, 255, 0.1);
			border: solid max(calc((1 / var(--vw)) * 100vw), 1px) var(--c-white);
			backdrop-filter: blur(0px);
			-webkit-backdrop-filter: blur(0px);
			opacity: 0;
			transform: scale(0.88);
			transition: transform .6s cubic-bezier(0.34, 1.7, 0.64, 1),
			            opacity .4s ease-out,
			            backdrop-filter .6s ease-out;
		}
		._run .origin__contents {
			backdrop-filter: blur(4px);
			-webkit-backdrop-filter: blur(4px);
			opacity: 1;
			transform: scale(1);
		}
			.origin__contents__main {
				width: calc((580 / 975) * 100%);
				height: auto;
			}
				.origin__contents__heading {
					display: flex;
					justify-content: flex-start;
					align-items: center;
					width: 100%;
					height: auto;
					margin-bottom: max(calc((30 / var(--vw)) * 100vw), 30px);
				}
					.origin__contents__heading__logo {
						width: max(calc((47 / var(--vw)) * 100vw), 47px);
						height: auto;
						margin-right: max(calc((33 / var(--vw)) * 100vw), 33px);
					}
						.origin__contents__heading__logo svg {
							fill: var(--c-white);
						}
					.origin__contents__heading__text {
						width: fit-content;
						height: auto;
						font-size: max(calc((30 / var(--vw)) * 100vw), 30px);
						font-weight: 700;
						line-height: 1.9;
						letter-spacing: 0.05em;
						color: var(--c-white);
					}
				.origin__contents__text {
					width: 100%;
					height: auto;
					font-size: max(calc((16 / var(--vw)) * 100vw), 16px);
					font-weight: 700;
					line-height: 1.9;
					letter-spacing: 0.05em;
					color: var(--c-white);
				}
			.origin__contents__image {
				width: calc((288 / 975) * 100%);
				height: auto;
				aspect-ratio: 288 / 216;
				margin: 0 auto max(calc((-6 / var(--vw)) * 100vw), -6px);
				position: relative;
			}
				.origin__contents__image__word {
					display: flex;
					justify-content: center;
					align-items: center;
					width: calc((89 / 288) * 100%);
					height: auto;
					aspect-ratio: 1 / 1;
					border-radius: 9999px;
					border: solid max(calc((1 / var(--vw)) * 100vw), 1px) var(--c-white);
					position: absolute;
				}
				._01.origin__contents__image__word {
					top: calc((61 / 216) * 100%);
					left: 0;
				}
				._02.origin__contents__image__word {
					top: 0;
					left: calc((99 / 288) * 100%);
				}
				._03.origin__contents__image__word {
					top: calc((61 / 216) * 100%);
					right: 0;
				}
					.origin__contents__image__word__text {
						font-size: max(calc((16 / var(--vw)) * 100vw), 16px);
						font-weight: 900;
						line-height: 1.9;
						letter-spacing: 0.05em;
						text-align: center;
						color: var(--c-white);
					}
					.origin__contents__image__word__image {
						height: auto;
						position: absolute;
					}
					._01 .origin__contents__image__word__image {
						width: calc((29 / 89) * 100%);
						top: calc((-2 / 89) * 100%);
						right: calc((-2 / 89) * 100%);
					}
					._02 .origin__contents__image__word__image {
						width: calc((35 / 89) * 100%);
						top: calc((-4 / 89) * 100%);
						right: calc((-1 / 89) * 100%);
					}
					._03 .origin__contents__image__word__image {
						width: calc((44 / 89) * 100%);
						top: calc((-1 / 89) * 100%);
						right: calc((-17 / 89) * 100%);
					}
				.origin__contents__image__character {
					width: calc((79 / 288) * 100%);
					height: auto;
					position: absolute;
					bottom: 0;
					left: calc((101 / 288) * 100%);
				}
	.origin__obj {
		position: absolute;
	}
	.origin__obj__flower {
		width: max(calc((29 / var(--vw)) * 100vw), 29px);
		height: auto;
		z-index: 1;
	}
	._01.origin__obj__flower {
		bottom: max(calc((712 / var(--vw)) * 100vw), 712px);
		left: calc((153 / var(--vw)) * 100%);
		transform: rotate(-47deg);
	}
	._02.origin__obj__flower {
		bottom: max(calc((605 / var(--vw)) * 100vw), 605px);
		left: calc((58 / var(--vw)) * 100%);
		transform: rotate(-47deg);
	}
	._03.origin__obj__flower {
		bottom: max(calc((508 / var(--vw)) * 100vw), 508px);
		left: calc((175 / var(--vw)) * 100%);
		transform: rotate(-47deg);
	}
	._04.origin__obj__flower {
		bottom: max(calc((423 / var(--vw)) * 100vw), 423px);
		left: calc((63 / var(--vw)) * 100%);
		transform: rotate(-47deg);
	}
	._05.origin__obj__flower {
		bottom: max(calc((698 / var(--vw)) * 100vw), 698px);
		right: calc((167 / var(--vw)) * 100%);
		transform: rotate(47deg);
	}
	._06.origin__obj__flower {
		bottom: max(calc((602 / var(--vw)) * 100vw), 602px);
		right: calc((56 / var(--vw)) * 100%);
		transform: rotate(47deg);
	}
	._07.origin__obj__flower {
		bottom: max(calc((508 / var(--vw)) * 100vw), 508px);
		right: calc((188 / var(--vw)) * 100%);
		transform: rotate(47deg);
	}
	._08.origin__obj__flower {
		bottom: max(calc((437 / var(--vw)) * 100vw), 437px);
		right: calc((85 / var(--vw)) * 100%);
		transform: rotate(47deg);
	}
		.origin__obj__flower img {
			opacity: 0;
			transform: scale(0.3);
			transition: transform 1s cubic-bezier(0.34, 1.7, 0.64, 1),
						opacity .8s ease-out;
		}
		._01.origin__obj__flower img {
			transition-delay: .1s;
		}
		._02.origin__obj__flower img {
			transition-delay: .2s;
		}
		._03.origin__obj__flower img {
			transition-delay: .3s;
		}
		._04.origin__obj__flower img {
			transition-delay: .4s;
		}
		._05.origin__obj__flower img {
			transition-delay: .1s;
		}
		._06.origin__obj__flower img {
			transition-delay: .2s;
		}
		._07.origin__obj__flower img {
			transition-delay: .3s;
		}
		._08.origin__obj__flower img {
			transition-delay: .4s;
		}
		._run .origin__obj__flower img {
			opacity: 1;
			transform: scale(1);
		}
	.origin__obj__tree {
		width: max(calc((294 / var(--vw)) * 100vw), 294px);
		height: auto;
		bottom: max(calc((130 / var(--vw)) * 100vw), 130px);
		z-index: 3;
	}
	._left.origin__obj__tree {
		left: max(calc((-56 / var(--vw)) * 100vw), -56px);
		transform: rotate(77deg);
	}
	._right.origin__obj__tree {
		right: max(calc((-56 / var(--vw)) * 100vw), -56px);
		transform: rotate(-77deg);
	}
		._right.origin__obj__tree img {
			transform: scale(-1,1);
		}

#company {
	width: 100%;
	height: auto;
	padding: max(calc((14 / var(--vw)) * 100vw), 14px) 0 max(calc((92 / var(--vw)) * 100vw), 92px);
	background-color: var(--c-white);
	position: relative;
	z-index: 2;
}
	#company::before {
		content: '';
		display: block;
		position: absolute;
		left: 0;
		right: 0;
		bottom: 100%;
		height: calc((153 / var(--vw)) * 100vw);
		background: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 153' preserveAspectRatio='none'%3E%3Cpath d='M0 79.6747C56.5799 35.5711 227 -7.47638 341.506 1.09937C520.973 14.5402 665.921 129.649 850.725 89.8135C1246.95 4.4048 1440 152.674 1440 152.674V153H0Z' fill='%23ffffff'/%3E%3C/svg%3E") no-repeat center top / 100% 100%;
		pointer-events: none;
		z-index: 1;
	}
	.company__inner {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		width: calc((1200 / var(--vw)) * 100%);
		height: auto;
		margin: 0 auto;
	}
		.company__heading {
			width: max(calc((250 / var(--vw)) * 100vw), 250px);
			padding-top: max(calc((20 / var(--vw)) * 100vw), 20px);
		}
			.company__heading__main_text {
				width: max(calc((200 / var(--vw)) * 100vw), 200px);
				height: auto;
				margin: 0 auto max(calc((21 / var(--vw)) * 100vw), 21px) 0;
			}
				.company__heading__main_text svg {
					fill: var(--c-black);
				}
		.company__info {
			width: calc((757 / 1200) * 100%);
			height: auto;
		}
			.company__info__list {
				display: flex;
				flex-direction: column;
				justify-content: flex-start;
				align-items: stretch;
				width: 100%;
				height: auto;
			}
				.company__info__list__item {
					display: flex;
					justify-content: space-between;
					align-items: flex-start;
					width: 100%;
					height: auto;
					padding: max(calc((28 / var(--vw)) * 100vw), 28px) 0;
					border-bottom: solid max(calc((1 / var(--vw)) * 100vw), 1px) #F2F2F2;
				}
					.company__info__list__item dt,
					.company__info__list__item dd {
						font-size: max(calc((14 / var(--vw)) * 100vw), 14px);
						font-weight: 500;
						line-height: 1.8;
						letter-spacing: 0.05em;
					}
					.company__info__list__item dt {
						width: calc((177 / 757) * 100%);
						min-width: max(calc((125 / var(--vw)) * 100vw), 125px);
						height: auto;
					}
					.company__info__list__item dd {
						flex: 1;
						height: auto;
					}

#member {
	width: 100%;
	height: auto;
	padding: max(calc((38 / var(--vw)) * 100vw), 38px) 0 0;
	position: relative;
	z-index: 2;
}
	#member::before {
		content: '';
		display: block;
		width: 100%;
		height: 10vh;
		background-color: var(--c-white);
		position: absolute;
		top: 0;
		left: 0;
		z-index: 1;
	}
	.member__inner {
		width: 100%;
		height: auto;
		margin: 0 auto;
		position: relative;
		z-index: 2;
	}
		.member__contents {
			width: 100%;
			height: auto;
			padding: max(calc((100 / var(--vw)) * 100vw), 100px) 0 max(calc((80 / var(--vw)) * 100vw), 80px);
			border-radius: max(calc((45 / var(--vw)) * 100vw), 45px);
			background-color: var(--c-bg-gray);
			box-shadow: 0 max(calc((3 / var(--vw)) * 100vw), 3px) max(calc((3 / var(--vw)) * 100vw), 3px) rgba(52, 52, 52, 0.1);
		}
			.member__contents__top {
				width: 100%;
				height: auto;
				margin-bottom: max(calc((80 / var(--vw)) * 100vw), 80px);
				position: relative;
			}
				.member__heading {
					width: fit-content;
					height: auto;
					padding-left: calc((180 / 1360) * 100%);
					margin: 0 auto 0 0;
				}
					.member__heading__main_text {
						width: max(calc((428 / var(--vw)) * 100vw), 428px);
					}
						.member__heading__main_text svg {
							fill: var(--c-main-blue);
						}
				.member__obj {
					display: flex;
					justify-content: flex-end;
					align-items: center;
					gap: max(calc((40 / var(--vw)) * 100vw), 40px);
					width: fit-content;
					height: auto;
					position: absolute;
					top: max(calc((-30 / var(--vw)) * 100vw), -30px);
					right: calc((80 / 1360) * 100%);
					z-index: 1;
				}
					.member__obj__balloon {
						display: flex;
						justify-content: center;
						align-items: center;
						width: max(calc((270 / var(--vw)) * 100vw), 270px);
						height: max(calc((66 / var(--vw)) * 100vw), 66px);
						border-radius: 9999px;
						border: solid max(calc((1 / var(--vw)) * 100vw), 1px) var(--c-black);
						position: relative;
						top: max(calc((2 / var(--vw)) * 100vw), 2px);
						transform: translateX(0.6vw);
						opacity: 0;
						transition: .6s;
						transition-delay: .75s;
						z-index: 2;
					}
					._run .member__obj__balloon {
						transform: translateX(0);
						opacity: 1;
					}
						.member__obj__balloon__text {
							font-size: max(calc((12 / var(--vw)) * 100vw), 12px);
							font-weight: 500;
							line-height: 1.5;
							letter-spacing: 0.1em;
							color: var(--c-black);
							overflow: hidden;
						}
								.member__obj__balloon__text span {
									display: inline-block;
									transform: translateY(100%);
									transition: .6s;
								}
								._run .member__obj__balloon__text span {
									transform: translateY(0);
								}
						.member__obj__balloon__line {
							display: block;
							width: max(calc((20 / var(--vw)) * 100vw), 20px);
							height: max(calc((1 / var(--vw)) * 100vw), 1px);
							background-color: var(--c-black);
							position: absolute;
							top: max(calc((50 / var(--vw)) * 100vw), 50%);
							right: calc((-10 / 367) * 100%);
							transform: translateY(-50%);
							z-index: 2;
						}
					.member__obj__character {
						width: max(calc((79 / var(--vw)) * 100vw), 79px);
						height: auto;
						opacity: 0;
						transform: translate(40%, -70%) scale(0.9);
						transform-origin: center bottom;
					}
					._run .member__obj__character {
						animation: member__obj__character-in .75s cubic-bezier(.55, 0, .35, 1) forwards;
					}
					@keyframes member__obj__character-in {
						0%   { opacity: 0; transform: translate(30%, -70%) scale(1); }
						60%  {             transform: scale(1.15, 0.85); }
						65%  { opacity: 1; transform: translate(0, 0) }
						70%  {             transform: translate(0, 0) scale(0.95, 1.05); }
						90%  {             transform: translate(0, 0) scale(1); }
						100% { opacity: 1; transform: translate(0, 0) scale(1); }
					}
			.member__list {
				width: 100%;
				height: auto;
				margin: 0 auto max(calc((40 / var(--vw)) * 100vw), 40px);
				overflow: hidden;
			}
				.member__list__swiper {
					width: calc((1000 / 1360) * 100%);
					height: auto;
					overflow: initial;
				}
				.member__list__swiper__wrapper {
					align-items: stretch;
				}
				.member__list__swiper__wrapper:active {
					cursor: grabbing;
				}
					.member__list__swiper .swiper-slide {
						width: 320px !important;
						height: auto;
					}
						.member__list__item {
							width: 100%;
							height: 100%;
							padding: 35px 35px 20px;
							border-radius: 6px;
							background-color: var(--c-blue);
							position: relative;
							overflow: hidden;
						}
							.member__list__item * {
								position: relative;
								z-index: 2;
							}
							.member__list__item__en_position {
								width: fit-content;
								height: auto;
								font-size: 12px;
								font-weight: 500;
								line-height: 1.5;
								letter-spacing: 0.05em;
								color: var(--c-white);
								position: absolute;
								top: 20px;
								right: 20px;
							}
							.member__list__item__jp_position {
								width: 100%;
								height: auto;
								padding-left: 12px;
								margin-bottom: 1px;
								font-size: 12px;
								font-weight: 700;
								line-height: 1.8;
								letter-spacing: 0em;
								color: var(--c-yellow);
								position: relative;
							}
								.member__list__item__jp_position::before {
									content: '';
									display: block;
									width: 6px;
									height: 6px;
									border-radius: 9999px;
									background-color: var(--c-yellow);
									position: absolute;
									top: 8px;
									left: 0;
								}
							.member__list__item__name {
								width: 100%;
								height: auto;
								padding-left: 12px;
								font-size: 22px;
								font-weight: 700;
								line-height: 1.5;
								letter-spacing: 0.05em;
								color: var(--c-white);
							}
							.member__list__item__image {
								width: 190px;
								height: auto;
								margin: 14px auto 24px;
								aspect-ratio: 1 / 1;
								border-radius: 9999px;
								background-color: var(--c-white);
								overflow: hidden;
							}
							.member__list__item__strengths,
							.member__list__item__like {
								width: 100%;
								height: auto;
							}
							.member__list__item__strengths {
								margin-bottom: 24px;
							}
								.member__list__item__strengths dt,
								.member__list__item__like dt {
									width: 100%;
									height: auto;
									padding-left: 28px;
									margin: 0 auto 5px;
									font-size: 12px;
									font-weight: 700;
									line-height: 1.5;
									letter-spacing: 0.05em;
									color: var(--c-yellow);
									position: relative;
								}
									.member__list__item__strengths__icon,
									.member__list__item__like__icon {
										display: block;
										height: auto;
										position: absolute;
										left: 0;
									}
									.member__list__item__strengths__icon {
										width: 18.3px;
										top: 1.4px;
									}
									.member__list__item__like__icon {
										width: 17px;
										top: 2px;
									}
										.member__list__item__strengths__icon svg,
										.member__list__item__like__icon svg {
											fill: var(--c-yellow);
										}
								.member__list__item__strengths dd,
								.member__list__item__like dd {
									width: 100%;
									height: auto;
									padding-left: 28px;
									font-size: 14px;
									font-weight: 700;
									line-height: 1.5;
									letter-spacing: 0.05em;
									color: var(--c-white);
								}
							.member__list__item__cp_name {
								width: 42px;
								height: auto;
								position: absolute;
								left: -5px;
								bottom: -6px;
								z-index: 1;
							}
								.member__list__item__cp_name svg {
									fill: #0877D8;
								}
			.member__nav {
				display: flex;
				justify-content: space-between;
				align-items: center;
				width: 100%;
				height: auto;
				padding-left: calc((180 / 1360) * 100%);
				padding-right: calc((80 / 1360) * 100%);
				margin: 0 auto;
			}
				.member__nav__pagination {
					display: flex;
					justify-content: flex-start;
					align-items: center;
					gap: max(calc((7 / var(--vw)) * 100vw), 7px);
					width: fit-content !important;
					position: static;
				}
					.member__nav__pagination .swiper-pagination-bullet {
						display: flex;
						justify-content: center;
						align-items: center;
						width: max(calc((35 / var(--vw)) * 100vw), 35px);
						height: max(calc((35 / var(--vw)) * 100vw), 35px);
						padding: 0 0 max(calc((2 / var(--vw)) * 100vw), 2px);
						margin: 0 !important;
						border-radius: 9999px;
						background: transparent;
						border: solid max(calc((1 / var(--vw)) * 100vw), 1px) var(--c-main-blue);
						font-size: max(calc((12 / var(--vw)) * 100vw), 12px);
						font-weight: 500;
						line-height: 1.5;
						letter-spacing: 0.05em;
						color: var(--c-main-blue);
						opacity: 1;
					}
					.member__nav__pagination .swiper-pagination-bullet-active {
						background-color: var(--c-main-blue);
						color: var(--c-white);
					}
				.member__nav__arrow_wrap {
					display: flex;
					justify-content: space-between;
					align-items: center;
					width: max(calc((132 / var(--vw)) * 100vw), 132px);
					height: auto;
				}
					.member__nav__arrow {
						width: max(calc((60 / var(--vw)) * 100vw), 60px);
						height: max(calc((42 / var(--vw)) * 100vw), 42px);
						padding: max(calc((1 / var(--vw)) * 100vw), 1px) 0 0;
						margin: 0;
						background-color: var(--c-main-blue);
						border: solid max(calc((1 / var(--vw)) * 100vw), 1px) var(--c-main-blue);
						border-radius: 50%;
						position: static;
						color: var(--c-main-blue);
						transition: .3s;
					}
					.member__nav__arrow.swiper-button-disabled {
						background-color: var(--c-dark-gray);
						border-color: var(--c-dark-gray);
					}
						.member__nav__arrow::after {
							display: none;
						}
						.member__nav__arrow svg {
							width: max(calc((15 / var(--vw)) * 100vw), 15px);
							height: auto;
							fill: var(--c-white);
						}
						.member__nav__arrow._prev svg {
							transform: scale(-1,1);
						}
				@media (any-hover: hover) {
					.member__nav__arrow:hover {
						background-color: var(--c-white);
					}
						.member__nav__arrow svg {
							transition: .3s;
						}
						.member__nav__arrow:hover svg {
							fill: var(--c-main-blue);
						}
				}

/* ================================================== PC */
@media all and (min-width: 1025px) {
	
}


/* ================================================== SP */
@media all and (max-width: 1024px) {
/* HERO_BG */
	#hero_bg::before {
		background-image: url(../image/bg@sp.webp);
	}
		.hero_bg__wrap {
			width: 100%;
			height: 100%;
			min-width: initial;
			aspect-ratio: initial;
		}
			/* top は wrap height に対する % で指定。default mode (wrap=100vh) でも
			   wide-aspect mode (wrap=100vw × 663/375) でも同じ式で正しく追従する */
			.hero_bg__image._01 {
				width: calc((125 / var(--vw)) * 100vw);
				top: calc((56 / 663) * 100%);
				left: calc((25 / var(--vw)) * 100vw);
			}
			.hero_bg__image._02 {
				width: calc((122 / var(--vw)) * 100vw);
				top: calc((88 / 663) * 100%);
				left: calc((181 / var(--vw)) * 100vw);
			}
			.hero_bg__image._03 {
				width: calc((122 / var(--vw)) * 100vw);
				top: calc((53 / 663) * 100%);
				left: calc((336 / var(--vw)) * 100vw);
			}
			.hero_bg__image._04 {
				width: calc((122 / var(--vw)) * 100vw);
				top: calc((260 / 663) * 100%);
				left: calc((26 / var(--vw)) * 100vw);
			}
			.hero_bg__image._05 {
				width: calc((112 / var(--vw)) * 100vw);
				top: calc((244 / 663) * 100%);
				left: calc((339 / var(--vw)) * 100%);
			}
			.hero_bg__image._06 {
				width: calc((118 / var(--vw)) * 100vw);
				top: calc((451 / 663) * 100%);
				left: calc((29 / var(--vw)) * 100%);
			}
			.hero_bg__image._07 {
				width: calc((113 / var(--vw)) * 100vw);
				top: calc((519 / 663) * 100%);
				left: calc((191 / var(--vw)) * 100%);
			}
			.hero_bg__image._08 {
				width: calc((113 / var(--vw)) * 100vw);
				top: calc((449 / 663) * 100%);
				left: calc((341 / var(--vw)) * 100%);
			}
			.hero_bg__image._09 {
				width: calc((122 / var(--vw)) * 100vw);
				top: calc((640 / 663) * 100%);
				left: calc((53 / var(--vw)) * 100%);
			}
			.hero_bg__image._10 {
				width: calc((125 / var(--vw)) * 100vw);
				top: calc((652 / 663) * 100%);
				left: calc((323 / var(--vw)) * 100%);
			}

.hero_origin__wrapper {
	--hero_origin_clip_height_base: 664;
	--hero_origin_clip_start_width: max(calc((129.681 / var(--vw)) * 100%), 129.681px);
	--hero_origin_clip_start_width_base: 129.681;
	--hero_origin_clip_position_top: calc((321 / var(--hero_origin_clip_height_base)) * 100%);
	--hero_origin_clip_position_top_base: 321;
	--hero_origin_clip_position_left: calc((193.84 / var(--vw)) * 100%);
	--hero_origin_clip_position_left_base: 193.84;
}

/* HERO */
#hero {
	height: auto;
	margin: 0 auto -1px;
}
	.hero__inner {
		height: auto;
	}
		.hero__contents {
			padding: calc((152 / var(--vw)) * 100vw) 0 calc((50 / var(--vw)) * 100vw);
			height: auto;
			position: initial;
		}
			.hero__contents::before {
				background-image: url(../image/about/hero-texture@sp.webp);
			}
			.hero__contents__inner {
				width: calc((323 / var(--vw)) * 100vw);
			}
				.hero__heading {
					/* アンカー上端までの gap。アンカーが既存の 126 分のうち character 占有領域を
					   担うので heading 側の margin は gap 分のみ */
					margin-bottom: calc((14 / var(--vw)) * 100vw);
					font-size: calc((14 / var(--vw)) * 100vw);
				}
				.hero__character {
					/* end / 着座サイズはアンカー要素 (.hero__character_anchor) の実寸を JS が読み取って決める。
					   ここに残してある変数は start (clip mask 中心) と width 用 */
					--hero_character_start_x_base: 193.84;
					--hero_character_start_y_base: 321;
					--hero_character_width_base: 75;
					--hero_character_end_width_base: 68;
					width: calc((var(--hero_character_width_base) / var(--vw)) * 100vw);
					position: absolute;
					top: 0;
					left: 0;
					transform: translate(
						var(--hero_character_translate_x, 0px),
						var(--hero_character_translate_y, 0px)
					);
				}
				.hero__character_anchor {
					/* SP only: character の終点位置を layout で確保する不可視ボックス。
					   width = character end (68) / aspect で end size と一致させる。
					   visibility:hidden で見えないが占有領域は残す。
					   margin-bottom = アンカー下端から copy への gap (元 126 - 14 - height 相当) */
					display: block;
					width: calc((68 / var(--vw)) * 100vw);
					aspect-ratio: 75 / 75.7;
					margin: 0 auto calc((44 / var(--vw)) * 100vw);
					visibility: hidden;
				}
				.hero__copy {
					width: calc((314.57 / var(--vw)) * 100vw);
					margin-bottom: calc((40 / var(--vw)) * 100vw);
				}
				.hero__text {
					font-size: calc((14 / var(--vw)) * 100vw);
					line-height: 1.8;
				}

/* ORIGIN */
#origin {
	padding: calc((154 / var(--vw)) * 100vw) 0 calc((120 / var(--vw)) * 100vw);
}
	#origin::before {
		background-image: url(../image/about/origin-texture@sp.webp);
	}
	.origin__inner {
		width: calc((334 / var(--vw)) * 100%);
	}
		.origin__contents {
			flex-direction: column;
			justify-content: flex-start;
			align-items: stretch;
			padding: calc((40 / var(--vw)) * 100vw) 0 calc((50 / var(--vw)) * 100vw);
			border-radius: calc((40 / var(--vw)) * 100vw);
			border: solid calc((1 / var(--vw)) * 100vw) var(--c-white);
		}
			.origin__contents__main {
				width: 100%;
				margin: 0 auto calc((60 / var(--vw)) * 100vw);
			}
				.origin__contents__heading {
					flex-direction: column;
					margin-bottom: calc((30 / var(--vw)) * 100vw);
				}
					.origin__contents__heading__logo {
						width: calc((50 / var(--vw)) * 100vw);
						margin: 0 auto calc((20 / var(--vw)) * 100vw);
					}
					.origin__contents__heading__text {
						width: 100%;
						font-size: 24px;
						text-align: center;
					}
				.origin__contents__text {
					width: calc((285 / 332) * 100%);
					margin: 0 auto;
					font-size: calc((14 / var(--vw)) * 100vw);
				}
			.origin__contents__image {
				width: calc((305.1 / var(--vw)) * 100vw);
				aspect-ratio: 305.1 / 228.4;
				margin: 0 calc((3 / var(--vw)) * 100vw) 0 auto;
			}
				.origin__contents__image__word {
					width: calc((89 / var(--vw)) * 100vw);
					border: solid calc((1 / var(--vw)) * 100vw) var(--c-white);
				}
				._01.origin__contents__image__word {
					top: calc((61 / var(--vw)) * 100vw);
				}
				._02.origin__contents__image__word {
					left: calc((99 / var(--vw)) * 100vw);
				}
				._03.origin__contents__image__word {
					top: calc((61 / var(--vw)) * 100vw);
					right: calc((17 / var(--vw)) * 100vw);
				}
					.origin__contents__image__word__text {
						font-size: calc((16 / var(--vw)) * 100vw);
					}
				.origin__contents__image__character {
					width: calc((77 / var(--vw)) * 100vw);
					left: calc((102 / var(--vw)) * 100vw);
				}
	.origin__obj__flower {
		width: calc((25 / var(--vw)) * 100vw);
	}
	._01.origin__obj__flower {
		bottom: auto;
		top: calc((54 / var(--vw)) * 100vw);
		left: calc((34 / var(--vw)) * 100vw);
		transform: rotate(-39deg);
	}
	._02.origin__obj__flower {
		bottom: auto;
		top: calc((75 / var(--vw)) * 100vw);
		left: calc((104 / var(--vw)) * 100%);
		transform: rotate(0deg);
	}
	._03.origin__obj__flower {
		bottom: auto;
		top: calc((55 / var(--vw)) * 100vw);
		left: calc((172 / var(--vw)) * 100%);
		transform: rotate(-15deg);
	}
	._04.origin__obj__flower {
		bottom: auto;
		top: calc((74 / var(--vw)) * 100vw);
		left: calc((245 / var(--vw)) * 100%);
		transform: rotate(43deg);
	}
	._05.origin__obj__flower {
		bottom: auto;
		top: calc((55 / var(--vw)) * 100vw);
		right: calc((32 / var(--vw)) * 100%);
		transform: rotate(-17deg);
	}
	._06.origin__obj__flower,
	._07.origin__obj__flower,
	._08.origin__obj__flower {
		display: none;
	}
	.origin__obj__tree {
		width: calc((139.35 / var(--vw)) * 100vw);
		bottom: calc((58.64 / var(--vw)) * 100vw);
	}
	._left.origin__obj__tree {
		left: calc((-28.87 / var(--vw)) * 100vw);
	}
	._right.origin__obj__tree {
		right: calc((-28.87 / var(--vw)) * 100vw);
	}

/* COMPANY */
#company {
	padding: calc((65 / var(--vw)) * 100vw) 0 calc((100 / var(--vw)) * 100vw);
}
	#company::before {
		height: calc((31 / var(--vw)) * 100vw);
		background: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 375 31' preserveAspectRatio='none'%3E%3Cpath d='M0 7.75928C21.6407 2.18733 46.5819 -1.12513 66.3291 0.351074C112.043 3.76851 150.761 27.7525 194.476 31.0005H0V7.75928ZM229.351 28.7007C295.365 14.4968 343.762 20.5184 375 29.5601V31.0005H213.572C218.739 30.5989 223.993 29.8535 229.351 28.7007Z' fill='%23ffffff'/%3E%3C/svg%3E") no-repeat center top / 100% 100%;
	}
	.company__inner {
		flex-direction: column;
		justify-content: flex-start;
		align-items: stretch;
		width: calc((334 / var(--vw)) * 100vw);
	}
		.company__heading {
			width: 100%;
			padding-top: 0;
			margin: 0 auto calc(((24 / var(--vw)) * 100vw));
		}
			.company__heading__main_text {
				width: calc((119 / var(--vw)) * 100vw);
				margin: 0 auto calc((10 / var(--vw)) * 100vw);
			}
			.company__heading__sub_text {
				text-align: center;
			}
		.company__info {
			width: 100%;
		}
			.company__info__list {
				width: 100%;
			}
				.company__info__list__item {
					display: block;
					padding: calc((20 / var(--vw)) * 100vw) 0;
					border-bottom: solid calc((1 / var(--vw)) * 100vw) #F2F2F2;
				}
					.company__info__list__item dt,
					.company__info__list__item dd {
						font-size: calc((14 / var(--vw)) * 100vw);
					}
					.company__info__list__item dt {
						width: 100%;
						margin: 0 auto calc((10 / var(--vw)) * 100vw);
					}
					.company__info__list__item dd {
						flex: initial;
						width: 100%;
					}

/* MEMBER */
#member {
	padding: 0;
	margin: calc((-22 / var(--vw)) * 100vw) auto 0;
	background-color: initial;
}
		.member__contents {
			padding: calc((52 / var(--vw)) * 100vw) 0 calc((50 / var(--vw)) * 100vw);
			border-radius: calc((22 / var(--vw)) * 100vw);
		}
			.member__contents__top {
				display: flex;
				flex-direction: column-reverse;
				justify-content: flex-start;
				align-items: center;
				margin-bottom: calc((40 / var(--vw)) * 100vw);
			}
				.member__heading {
					width: 100%;
					padding-left: calc((2 / var(--vw)) * 100vw);
					margin: 0 auto 0;
				}
					.member__heading__main_text {
						width: calc((227.51 / var(--vw)) * 100vw);
						margin: 0 auto;
					}
				.member__obj {
					width: 100%;
					position: initial;
					margin-bottom: calc((13 / var(--vw)) * 100vw);
				}
					.member__obj__balloon {
						display: block;
						width: 100%;
						height: auto;
						border-radius: initial;
						border: none;
						position: initial;
					}
						.member__obj__balloon__text {
							display: block;
							width: 100%;
							margin: 0 auto calc((12 / var(--vw)) * 100vw);
							font-size: calc((12 / var(--vw)) * 100vw);
							text-align: center;
						}
						.member__obj__balloon__line {
							width: calc((1 / var(--vw)) * 100vw);
							height: calc((12 / var(--vw)) * 100vw);
							margin: 0 auto;
							position: initial;
							transform: initial;
						}
					.member__obj__character {
						display: none;
					}
			.member__list {
				margin: 0 auto calc((30 / var(--vw)) * 100vw);
			}
				.member__list__swiper {
					width: calc((340 / var(--vw)) * 100vw);
				}
					.member__list__swiper .swiper-slide {
						width: calc((340 / var(--vw)) * 100vw) !important;
					}
						.member__list__item {
							padding: calc((35 / var(--vw)) * 100vw) calc((35 / var(--vw)) * 100vw) calc((56 / var(--vw)) * 100vw);
							border-radius: calc((6 / var(--vw)) * 100vw);
						}
							.member__list__item__en_position {
								font-size: calc((12 / var(--vw)) * 100vw);
								top: calc((20 / var(--vw)) * 100vw);
								right: calc((20 / var(--vw)) * 100vw);
							}
							.member__list__item__jp_position {
								padding-left: calc((12 / var(--vw)) * 100vw);
								margin-bottom: calc((1 / var(--vw)) * 100vw);
								font-size: calc((12 / var(--vw)) * 100vw);
							}
								.member__list__item__jp_position::before {
									width: calc((6 / var(--vw)) * 100vw);
									height: calc((6 / var(--vw)) * 100vw);
									top: calc((8 / var(--vw)) * 100vw);
								}
							.member__list__item__name {
								padding-left: calc((12 / var(--vw)) * 100vw);
								font-size: calc((22 / var(--vw)) * 100vw);
							}
							.member__list__item__image {
								width: calc((190 / var(--vw)) * 100vw);
								margin: calc((14 / var(--vw)) * 100vw) auto calc((24 / var(--vw)) * 100vw);
							}
							.member__list__item__strengths {
								margin-bottom: calc((24 / var(--vw)) * 100vw);
							}
								.member__list__item__strengths dt,
								.member__list__item__like dt {
									padding-left: calc((28 / var(--vw)) * 100vw);
									margin: 0 auto calc((5 / var(--vw)) * 100vw);
									font-size: calc((12 / var(--vw)) * 100vw);
									letter-spacing: 0.07em;
								}
									.member__list__item__strengths__icon {
										width: calc((21 / var(--vw)) * 100vw);
										top: 0;
										left: calc((2 / var(--vw)) * 100vw);
									}
									.member__list__item__like__icon {
										width: calc((17 / var(--vw)) * 100vw);
										top: calc((2 / var(--vw)) * 100vw);
										left: calc((4 / var(--vw)) * 100vw);
									}
								.member__list__item__strengths dd,
								.member__list__item__like dd {
									padding-left: calc((28 / var(--vw)) * 100vw);
									font-size: calc((14 / var(--vw)) * 100vw);
									letter-spacing: 0.07em;
								}
							.member__list__item__cp_name {
								width: calc((42 / var(--vw)) * 100vw);
								left: calc((-5 / var(--vw)) * 100vw);
								bottom: calc((-6 / var(--vw)) * 100vw);
							}
			.member__nav {
				justify-content: center;
				padding-left: 0;
				padding-right: 0;
			}
				.member__nav__pagination {
					justify-content: center;
					gap: calc((7 / var(--vw)) * 100vw);
				}
					.member__nav__pagination .swiper-pagination-bullet {
						width: calc((35 / var(--vw)) * 100vw);
						height: calc((35 / var(--vw)) * 100vw);
						padding: 0 0 calc((1 / var(--vw)) * 100vw);
						border: solid calc((1 / var(--vw)) * 100vw) var(--c-main-blue);
						font-size: calc((12 / var(--vw)) * 100vw);
					}
					.member__nav__pagination .swiper-pagination-bullet-active {
						background-color: var(--c-main-blue);
						color: var(--c-white);
					}
				.member__nav__arrow_wrap {
					display: none;
				}
}

/* ===== タブレット系: design 375:663 より横長な viewport では、wrap を
   デザイン比率で固定し横幅基準にする。画像は wrap に対する % 配置なので
   レイアウト関係が崩れず、被りも発生しない。
   #hero_bg は base のまま (height:auto / 子は absolute なので flow 占有 0)。
   inner は base の 100vh をそのまま使い、はみ出した wrap を inner 側で clip する ===== */
@media all and (max-width: 1024px) and (min-aspect-ratio: 375/663) {
	.hero_bg__inner {
		overflow: hidden;
	}
		.hero_bg__wrap {
			width: 100%;
			height: auto;
			aspect-ratio: 375 / 663;
			position: absolute;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%);
		}
}

@media all and (max-width: 768px) {

}