@charset "UTF-8";

/* mv
----------------------------------------*/
.mv {
	margin-bottom: 13.8rem;
	z-index: 0;
}
.mv video {
	width: 100%;
	height: 100vh;
	object-fit: cover;
	display: block;
	position: fixed;
	top: 0;
	left: 0;
	pointer-events: none;
	margin-bottom: -100vh;
	transition: opacity .55s cubic-bezier(0.16, 1, 0.3, 1);
}
.mv video.is-passed {
	opacity: .82;
}
.mv_inner {
	z-index: 2;
	padding-top: 100vh;
}
.mv_scroll {
	position: absolute;
	right: 5.8rem;
	bottom: 7.5rem;
	color: #fff;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: .14em;
	padding-top: 6.2rem;
	z-index: 99;
}
.mv_scroll::before {
	content: '';
	display: block;
	width: .1rem;
	height: 8rem;
	background: rgba(255, 255, 255, .5);
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0 auto;
}
.mv_scroll::after {
	content: '';
	display: block;
	width: .1rem;
	height: 1.5rem;
	background: #fff;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 6.5rem;
	margin: 0 auto;
	animation-fill-mode: forwards;
	animation-duration: 2s;
	animation-name: mv_scroll;
	animation-iteration-count: infinite;
	animation-timing-function: ease-out;
}
.mv_scroll span {
	display: flex;
	justify-content: center;
	writing-mode: vertical-rl;
	position: absolute;
	top: 0;
	left: -.5rem;
	margin: 0 auto;
}
@keyframes mv_scroll {
	0% {
		transform: translateY(0);
		opacity: 1;
	}
	50% {
		transform: translateY(0);
		opacity: 1;
	}
	100% {
		transform: translateY(6.5rem);
		opacity: 0;
	}
}
@media only screen and (max-width: 768px) {
	.mv {
		margin-bottom: 0;
		height: 38rem;
		overflow: hidden;
		background: #fff;
	}
	.mv video {
		height: 38rem;
		object-fit: contain;
		position: absolute;
		margin-bottom: 0;
		z-index: 0;
		-webkit-transform: translateZ(0);
		transform: translateZ(0);
	}
	.mv_inner {
		height: 38rem;
		padding-top: 0;
	}
	.mv video.is-passed {
		position: fixed;
		inset: 0;
		width: 100%;
		height: 100vh;
		height: 100dvh;
		object-fit: cover;
		object-position: center top;
	}
	.mv_scroll {
		right: 2.4rem;
		bottom: 4.8rem;
	}
}

/* intro
----------------------------------------*/
.intro {
	background: #fff;
	padding: 9rem 0;
	z-index: 2;
}
.intro::before {
	content: '';
	display: block;
	height: 20rem;
	position: absolute;
	top: -20rem;
	left: 0;
	right: 0;
	background: url(../../img/index/intro_bg_01.svg) no-repeat top center / 100% 514.7rem;
}
.intro::after {
	content: '';
	display: block;
	position: absolute;
	top: -23rem;
	left: 0;
	right: 0;
	height: 23.3rem;
	width: 0;
	background: url(../../img/index/bg_01.svg) no-repeat left top / 100vw 100%;
	pointer-events: none;
	transition: width 1s;
}
.mv.show + .intro::after {
	width: 100%;
}
.intro_inner {
	max-width: 104rem;
	margin: 0 auto;
	padding-left: 4.4rem;
	display: flex;
}
.intro_inner figure {
	width: 35.7rem;
}
.intro_inner figure.anim_fadeUp {
	transition-delay: .08s;
}
.intro_box {
	flex: 1;
	padding: .4rem 0 0 16rem;
}
.intro h2 {
	font-size: 4.2rem;
	letter-spacing: .04em;
	margin: 0 -.5rem 5.2rem 0;
}
.intro_title,
.intro_box p {
	opacity: 0;
	transform: translate3d(0, 4rem, 0);
	transition: opacity 1.12s cubic-bezier(.19, 1, .22, 1), transform 1.12s cubic-bezier(.19, 1, .22, 1);
	will-change: opacity, transform;
}
.intro_box.show .intro_title,
.intro_box.show p {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}
.intro_title {
	transition-delay: .16s;
}
.intro_box p {
	font-size: 1.8rem;
	letter-spacing: .06em;
	line-height: 2;
	white-space: nowrap;
	font-weight: 700;
}
.intro_box p:nth-of-type(1) {
	transition-delay: .32s;
}
.intro_box p:nth-of-type(2) {
	transition-delay: .46s;
}
.intro_box p:nth-of-type(3) {
	transition-delay: .6s;
}
.intro_box p:nth-of-type(4) {
	transition-delay: .74s;
}
.intro_box p + p {
	margin-top: 2.5rem;
}
@media only screen and (max-width: 768px) {
	.intro {
		
	}
	.intro::before {
		height: 20rem;
		top: -5rem;
		background: url(../../img/index/intro_bg_01-sp@3x.png) no-repeat top center / 100% 513.3rem;
	}
	.intro::after {
		top: -13.2rem;
		height: 19.1rem;
		background: url(../../img/index/bg_01-sp@3x.png) no-repeat left top / 100vw 100%;
		transition-duration: .4s;
		transition-timing-function: ease-out;
	}
	.intro_inner {
		padding-left: 0;
		display: block;
	}
	.intro_inner figure {
		width: 21.7rem;
		margin: 0 auto 17.9rem;
	}
	.intro_inner .intro_logo.anim_fadeUp {
		opacity: 0;
		transform: translate3d(0, 2rem, 0);
		transition: none;
		animation: intro_logo_sp 1.05s cubic-bezier(0.16, 1, 0.3, 1) .35s forwards;
	}
	.intro_box {
		padding: .4rem 2rem 0 4rem;
	}
	.intro_box::before {
		content: '';
		display: block;
		position: absolute;
		top: -19.5rem;
		left: 0;
		width: 0;
		height: 20.6rem;
		background: url(../../img/index/intro_bg_01_02-sp@3x.png) no-repeat top left / 100vw 20.6rem;
		pointer-events: none;
		transition: width .4s ease-out;
	}
	.intro_box.show::before {
		width: 100%;
	}
	.intro h2 {
		font-size: 2.6rem;
		margin: 0 0 3rem;
	}
	.intro_box p {
		font-size: 1.4rem;
		line-height: 2.1429;
	}
	.intro_box p + p {
		margin-top: 2rem;
	}
}
@keyframes intro_logo_sp {
	100% {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}
@media only screen and (max-width: 768px) and (prefers-reduced-motion: reduce) {
	.intro_inner .intro_logo.anim_fadeUp {
		animation: none;
		opacity: 1;
		transform: none;
	}
}

/* thanks
----------------------------------------*/
.thanks {
	background: #fff;
	padding: 1.3rem 0 20.5rem;
}
.thanks::before {
	content: '';
	display: block;
	position: absolute;
	right: 0;
	top: -17.3rem;
	width: 0;
	pointer-events: none;
	height: 92.9rem;
	background: url(../../img/index/bg_02.svg) no-repeat top right / 100vw 100%;
	z-index: 2;
	transition: width 1s;
}
.thanks.show::before {
	width: 100%;
}
.thanks h2 {
	width: 70rem;
	margin: 0 auto;
	position: absolute;
	top: 54.7rem;
	left: 0;
	right: 0;
}
.thanks h2 span.en {
	font-size: 4.2rem;
	font-weight: 900;
	line-height: 1.5714;
	color: #45B035;
	position: absolute;
	top: 12rem;
	left: 1.4rem;
	right: 0;
	text-align: center;
	letter-spacing: .3em;
}
.thanks h2 span.en span {
	letter-spacing: .1em;
}
.thanks_img {
	max-width: 127rem;
	margin: 0 auto;
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	position: relative;
}
.thanks_img figure {
	border-radius: 1rem;
	overflow: hidden;
}
.thanks_img figure:nth-child(1) {
	width: 34rem;
	margin: 0 14.6rem 0 5.9rem;
	transition-delay: .08s;
	z-index: 3;
}
.thanks_img figure:nth-child(2) {
	width: 10.5rem;
	margin: 32rem 12.6rem 0 0;
	transition-delay: .22s;
}
.thanks_img figure:nth-child(3) {
	width: 22.5rem;
	margin: 26.4rem 16.4rem 0 0;
	transition-delay: .14s;
}
.thanks_img figure:nth-child(4) {
	width: 10.5rem;
	margin: 32rem 0 0;
	transition-delay: .28s;
}
.thanks_img figure:nth-child(5) {
	width: 10.5rem;
	margin: 11.4rem 6.4rem 0 0;
	transition-delay: .18s;
}
.thanks_img figure:nth-child(6) {
	width: 22.5rem;
	margin: 19.4rem 21.7rem 0 0;
	transition-delay: .32s;
}
.thanks_img figure:nth-child(7) {
	width: 10.5rem;
	margin: 36.4rem 17.4rem 0 0;
	transition-delay: .24s;
}
.thanks_img figure:nth-child(8) {
	width: 34rem;
	margin: 19.4rem 0 0;
	transition-delay: .38s;
}
@media only screen and (max-width: 768px) {
	.thanks {
		padding: 1.2rem 0 15.7rem;
	}
	.thanks::before {
		top: -6.1rem;
		height: 33.5rem;
		background: url(../../img/index/bg_02-sp@3x.png) no-repeat top right / 100vw 100%;
		z-index: 1;
		transition-duration: .4s;
		transition-timing-function: ease-out;
	}
	.thanks h2 {
		width: 31rem;
		top: 28.3rem;
	}
	.thanks h2 span.en {
		font-size: 2.4rem;
		line-height: 1.75;
		top: 4.9rem;
		left: .8rem;
	}
	.thanks_img figure {
		border-radius: .5rem;
	}
	.thanks_img figure:nth-child(1) {
		width: 18rem;
		margin: 0 6rem 0 2rem;
		order: 0;
	}
	.thanks_img figure:nth-child(2) {
		display: none;
	}
	.thanks_img figure:nth-child(3) {
		width: 11rem;
		margin: 5rem 0 0;
		order: 1;
	}
	.thanks_img figure:nth-child(4) {
		width: 7rem;
		margin: .6rem 0 0 22rem;
		order: 3;
	}
	.thanks_img figure:nth-child(5) {
		width: 7rem;
		margin: 11.1rem 0 0 1rem;
		order: 2;
	}
	.thanks_img figure:nth-child(6) {
		width: 11rem;
		margin: 5.7rem 5rem 0 3rem;
		order: 4;
	}
	.thanks_img figure:nth-child(7) {
		width: 7rem;
		margin: .4rem 0 0 7rem;
		order: 6;
	}
	.thanks_img figure:nth-child(8) {
		width: 18rem;
		margin: .3rem 0 0;
		order: 5;
	}
}

/* tvcm
----------------------------------------*/
.tvcm {
	background: #fff;
	padding-bottom: 37.2rem;
}
.tvcm_bg {
	position: absolute;
	top: -62.2rem;
	width: 100%;
	left: 0;
	z-index: 2;
	pointer-events: none;
}
.tvcm_bg svg {
	width: 100%;
	height: 135.9rem;
}
#mask .st0 {
  fill: none;
  stroke: #fff;
  stroke-dasharray: 5000;
  stroke-dashoffset: 5000;
  will-change: stroke-dashoffset;
}
.tvcm_inner {
	max-width: 127rem;
	margin: 0 auto;
	display: flex;
}
.tvcm_video {
	width: 73rem;
	order: -1;
	z-index: 2;
}
.tvcm_video::before {
	content: '';
	display: block;
	position: absolute;
	top: 4rem;
	left: 4.1rem;
	width: 73rem;
	height: 43rem;
	background: url(../../img/index/tvcm_bg_02.jpg) no-repeat left top / 100% auto;
	border-radius: 1rem;
	opacity: 0;
	transform: translate3d(0, 2.8rem, 0) scale(.985);
	transform-origin: center;
	transition: opacity 1.25s cubic-bezier(0.16, 1, 0.3, 1), transform 1.25s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: opacity, transform;
}
.tvcm_video:has(.tvcm_video_inner.show)::before {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
}
.tvcm_video video {
	width: 100%;
	aspect-ratio: 73 / 43;
	object-fit: cover;
	display: block;
	position: relative;
	pointer-events: none;
	transform: translate3d(0, 0, 0) scale(1);
	transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}
.tvcm_video_inner {
	display: block;
	overflow: hidden;
	border-radius: 1rem;
	cursor: pointer;
	transition: transform .55s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .55s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: opacity, transform;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}
.tvcm_video_inner.anim_fadeUp {
	transform: translate3d(0, 3.2rem, 0) scale(.985);
	transition: opacity 1.28s cubic-bezier(0.16, 1, 0.3, 1), transform 1.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .55s cubic-bezier(0.16, 1, 0.3, 1);
	transition-delay: .08s;
}
.tvcm_video_inner.show {
	transform: translate3d(0, 0, 0) scale(1);
}
.tvcm_video_inner::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, .3);
	pointer-events: none;
	transition: opacity .45s cubic-bezier(0.16, 1, 0.3, 1);
}
.tvcm_video_inner.play::after,
.tvcm_video_inner.play + .tvcm_video_caption {
	opacity: 0;
}
.tvcm_video_caption {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	text-align: center;
	color: #fff;
	font-size: 1.6rem;
	letter-spacing: .06em;
	font-weight: 700;
	display: flex;
	justify-content: center;
	align-items: center;
	padding-top: 12.1rem;
	pointer-events: none;
	opacity: 0;
	transform: translate3d(0, 1.4rem, 0);
	transition: opacity .85s cubic-bezier(0.16, 1, 0.3, 1) .28s, transform .85s cubic-bezier(0.16, 1, 0.3, 1) .28s;
	will-change: opacity, transform;
}
.tvcm_video_caption::before {
	content: '';
	display: block;
	width: 6.8rem;
	height: 6.8rem;
	background: rgba(255, 255, 255, .92);
	border-radius: 50%;
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 2.7rem;
	margin: auto;
}
.tvcm_video_caption::after {
	content: '';
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 1.4rem 0 1.4rem 2.6rem;
	border-color: transparent transparent transparent #2E8A24;
	position: absolute;
	top: 0;
	left: .8rem;
	right: 0;
	bottom: 2.7rem;
	margin: auto;
}
.tvcm_video_inner.show + .tvcm_video_caption {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}
.tvcm_video_inner.play + .tvcm_video_caption {
	opacity: 0;
	transform: translate3d(0, 0, 0);
	transition-delay: 0s;
}
.tvcm_box {
	flex: 1;
	text-align: right;
	margin: -2.2rem 6rem 0 0;
	z-index: 2;
}
.tvcm h2 {
	font-size: 1.6rem;
	font-weight: 700;
	color: #C0A25C;
	letter-spacing: .06em;
	margin-bottom: 6.5rem;
}
.tvcm h2 .en {
	width: fit-content;
	display: block;
	font-size: 7rem;
	letter-spacing: 0;
	color: #333;
	margin: 0 0 .3rem auto;
	padding-left: 4rem;
}
.tvcm h2 .en::before {
	content: '';
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
	background: #C0A25C;
	position: absolute;
	top: 5.2rem;
	left: 0;
}
.tvcm h3.anim_fadeUp {
	transition-delay: .18s;
}
.tvcm p.anim_fadeUp {
	transition-delay: .3s;
}
.tvcm h3 {
	font-size: 2.6rem;
	line-height: 1.5385;
	letter-spacing: .04em;
	margin: 0 -.2rem 2.5rem;
}
.tvcm p {
	font-size: 1.6rem;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 2.125;
	margin-right: -.2rem;
}
@media only screen and (max-width: 768px) {
	.tvcm {
		padding-bottom: 28rem;
		margin-top: -0.9rem;
	}
	.tvcm_bg {
		top: -23.9rem;
	}
	.tvcm_bg svg {
		height: 24.6rem;
	}
	#mask_sp .st0 {
		fill: none;
		stroke: #fff;
		stroke-dasharray: 2000;
		stroke-dashoffset: 2000;
	}
	.tvcm_inner {
		margin: 0 2rem;
		display: block;
	}
	.tvcm_inner::after {
		content: '';
		display: block;
		background: url(../../img/index/bg_06-sp@3x.png) no-repeat top right / 100vw 100%;
		position: absolute;
		top: 22.7rem;
		right: -2rem;
		width: 0;
		height: 25.3rem;
		pointer-events: none;
		transition: width .4s ease-out;
	}
	.tvcm_inner:has(.tvcm_video_inner.show)::after {
		width: 100vw;
	}
	.tvcm_video {
		width: auto;
		padding-right: 2rem;
		margin-top: 4rem;
	}
	.tvcm_video::before {
		top: 2rem;
		left: 2rem;
		width: 33rem;
		height: 19.4rem;
		border-radius: .5rem;
	}
	.tvcm_video_inner {
		border-radius: .5rem;
	}
	.tvcm_video_caption {
		font-size: 1.4rem;
		padding: 8rem 2rem 0 0;
	}
	.tvcm_video_caption::before {
		width: 4rem;
		height: 4rem;
		right: 1.8rem;
		bottom: 1.6rem;
	}
	.tvcm_video_caption::after {
		border-width: .9rem 0 .9rem 1.6rem;
		left: -1.3rem;
		bottom: 1.6rem;
	}
	.tvcm_box {
		text-align: left;
		margin: 0;
		z-index: 2;
	}
	.tvcm h2 {
		font-size: 1.4rem;
		padding-left: 2.1rem;
		margin-bottom: 4.5rem;
	}
	.tvcm h2 .en {
		width: auto;
		font-size: 5rem;
		padding-left: 0;
	}
	.tvcm h2 .en::before {
		width: 1rem;
		height: 1rem;
		top: 3.7rem;
		left: -2rem;
	}
	.tvcm h3 {
		font-size: 2.4rem;
		line-height: 1.5833;
		margin: 0 2.1rem 1.9rem;
	}
	.tvcm p {
		font-size: 1.4rem;
		line-height: 2.1429;
		margin: 0 2.1rem;
	}
}
@media (prefers-reduced-motion: reduce) {
	.tvcm_video::before,
	.tvcm_video_inner.anim_fadeUp,
	.tvcm_video_caption {
		transition-duration: .01ms;
		transition-delay: 0s;
	}
}

/* message
----------------------------------------*/
.message {
	background: #F7FEF4;
	padding: 4.3rem 0 28rem;
}
.message_bg {
	position: sticky;
	top: 14.1rem;
	margin: 0 -34.6rem -118rem auto;
	width: 118rem;
	height: 118rem;
	border-radius: 50%;
	background: linear-gradient(to bottom, #45b035 0%,#d9f0ba 100%);
	opacity: .1;
}
.message::before {
	content: '';
	display: block;
	position: absolute;
	top: -20rem;
	left: 0;
	width: 100%;
	height: 21rem;
	background: url(../../img/index/message_bg_01.svg) no-repeat top left / 100% 213.2rem;
}
.message_inner::before,
.message_inner::after {
	content: '';
	display: block;
	background: url(../../img/index/bg_04.svg) no-repeat top left / 100vw 100%;
	position: absolute;
	top: -18.8rem;
	left: 0;
	width: 0;
	height: 67.9rem;
	transition: width 1s;
}
.message_inner::after {
	background: url(../../img/index/bg_05.svg) no-repeat top right / 100vw 100%;
	top: 58.6rem;
	right: 0;
	left: auto;
	height: 69rem;
}
.message:has(.message_item_01.show) .message_inner::before {
	width: 100%;
}
.message:has(.message_item_02.show) .message_inner::after {
	width: 100%;
}
.message_inner {
	max-width: 127rem;
	margin: 0 auto;
	display: flex;
	position: static;
}
.message_ttl {
	width: 43.3rem;
	padding: 19.9rem 0 18rem;
}
.message_ttl h2 {
	font-size: 1.6rem;
	color: #45B035;
	letter-spacing: .06em;
	padding-left: 4.4rem;
	position: sticky;
	top: 32rem;
	left: 0;
	z-index: 2;
}
.message_ttl h2 .en {
	display: block;
	font-size: 7rem;
	letter-spacing: 0;
	color: #333;
	margin: 0 0 .8rem -.4rem;
}
.message_ttl h2::before {
	content: '';
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	background: #45B035;
	border-radius: 50%;
	position: absolute;
	left: 0;
	top: 5.2rem;
}
.message_wrap {
	flex: 1;
	padding: 2.8rem 0 0 2.2rem;
}
.message_item {
	display: flex;
	align-items: center;
	z-index: 2;
}
.message_item + .message_item {
	margin-top: 22.6rem;
}
.message_img {
	width: 36rem;
}
.message_img figure {
	width: 36rem;
	border-radius: 1rem;
	overflow: hidden;
	transform: rotate(5deg);
	-webkit-mask-image: -webkit-radial-gradient(#fff, #fff);
	mask-image: radial-gradient(#fff, #fff);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}
.message_img figure.anim_img {
	transform: translate3d(0, 5rem, 0) rotate(5deg);
}
.message_img figure.anim_img.show {
	transform: rotate(5deg);
}
.message_item + .message_item .message_img figure {
	transform: rotate(-5deg);
}
.message_item + .message_item .message_img figure.anim_img {
	transform: translate3d(0, 5rem, 0) rotate(-5deg);
}
.message_item + .message_item .message_img figure.anim_img.show {
	transform: rotate(-5deg);
}
.message_img .message_img_bg {
	position: absolute;
	top: 0;
	left: 0;
	transform: rotate(-5deg);
	background: #fff;
	border-radius: 1rem;
	overflow: hidden;
}
.message_item + .message_item .message_img .message_img_bg {
	transform: rotate(5deg);
}
.message_img .message_img_bg img {
	opacity: .7;
	filter: blur(1rem);
	transform: scale(1.04);
}
.message_box {
	padding: 6rem 0 0 13.3rem;
}
.message_item + .message_item .message_box {
	padding-top: 11.3rem;
}
.message_item h3 {
	font-size: 2.6rem;
	letter-spacing: .04em;
	line-height: 1.5385;
	margin-bottom: 2.3rem;
}
.message_prof {
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: .06em;
	margin-bottom: .6rem;
}
.message_prof span {
	font-size: 1.5rem;
	font-weight: 500;
	letter-spacing: .06em;
	color: #767B76;
	margin-right: 1rem;
	vertical-align: .1rem;
}
.message_txt {
	font-size: 1.3rem;
	font-weight: 600;
	color: #C0A25C;
	letter-spacing: .06em;
}
.message_btn {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 26.2rem;
	height: 6rem;
	border-radius: 3rem;
	background: #45B035;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: .06em;
	margin-top: 3.05rem;
	padding: .1rem 3.5rem 0 0;
	padding-left: 3.5rem;
	box-shadow: .3rem .4rem .5rem rgba(0, 0, 0, .1);
	transition: background .45s cubic-bezier(0.16, 1, 0.3, 1), transform .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
}
.message_btn::after {
	content: '';
	display: block;
	width: .8rem;
	height: .8rem;
	border-top: .2rem solid #fff;
	border-right: .2rem solid #fff;
	position: absolute;
	top: 0;
	right: 2.7rem;
	bottom: 0;
	margin: auto 0;
	transform: rotate(45deg);
	transition: transform .45s cubic-bezier(0.16, 1, 0.3, 1);
}
.message_item + .message_item .message_btn {
	margin-top: 4rem;
}
@media only screen and (max-width: 768px) {
	.message {
		padding: 2rem 0 28rem;
		margin-bottom: 0;
	}
	.message_bg {
		top: 10.2rem;
		margin: 37.8rem -30.7rem -95.5rem auto;
		width: 67.7rem;
		height: 67.7rem;
	}
	.message::before {
		top: -18.2rem;
		background: url(../../img/index/message_bg_01-sp@3x.png) no-repeat top left / 100% 218.4rem;
	}
	.message_inner::before,
	.message_inner::after {
		background-image: url(../../img/index/bg_04-sp@3x.png);
		top: -20.8rem;
		height: 19.9rem;
		transition-duration: .4s;
		transition-timing-function: ease-out;
	}
	.message_inner::after {
		background-image: url(../../img/index/bg_05-sp@3x.png);
		top: 86.6rem;
		height: 26.3rem;
	}
	.message.show .message_inner::before {
		width: 100%;
	}
	.message_inner {
		display: block;
		margin: -105.5rem 2rem 0;
	}
	.message_ttl {
		width: auto;
		padding: 0 0 5.6rem;
	}
	.message_ttl h2 {
		font-size: 1.4rem;
		padding-left: 2rem;
		position: relative;
		top: auto;
		left: auto;
	}
	.message_ttl h2 .en {
		font-size: 5rem;
		margin: 0 0 .3rem;
	}
	.message_ttl h2::before {
		width: 1rem;
		height: 1rem;
		top: 3.7rem;
	}
	.message_wrap {
		padding: 2.8rem 0 0;
	}
	.message_item {
		display: block;
	}
	.message_item + .message_item {
		margin-top: 15rem;
	}
	.message_img {
		width: 25rem;
		margin: 0 auto;
	}
	.message_img figure {
		width: 25rem;
	}
	.message_box {
		padding: 4.2rem 0 0;
	}
	.message_item + .message_item .message_box {
		padding-top: 4rem;
	}
	.message_item h3 {
		font-size: 2.4rem;
		line-height: 1.5833;
		margin: 0 0 1.4rem 7.6rem;
	}
	.message_prof {
		font-size: 1.8rem;
		margin: 0 0 .8rem 7.6rem;
	}
	.message_prof span {
		font-size: 1.4rem;
		margin-right: .6rem;
		vertical-align: 0;
	}
	.message_txt {
		margin-left: 7.6rem;
	}
	.message_item + .message_item h3,
	.message_item + .message_item .message_prof,
	.message_item + .message_item .message_txt {
		margin-left: 6.5rem;
	}
	.message_btn {
		width: 28rem;
		margin: 3rem auto 0;
	}
	.message_item + .message_item .message_btn {
		margin-top: 2.9rem;
	}
}

/* modal
----------------------------------------*/
.modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(74, 85, 73, 0.8);
	z-index: 5000;
	display: flex;
	justify-content: center;
	align-items: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity .5s;
}
.modal_inner {
	width: 100%;
	max-height: 100%;
	overflow: auto;
	padding: 4rem 0;
}
.modal_open .modal {
	opacity: 1;
	pointer-events: all;
}
.modal_close {
	appearance: none;
	width: 5rem;
	height: 5rem;
	position: absolute;
	top: 1rem;
	right: 1rem;
	border: 0;
	padding: 0;
	background: none;
	background: #45B035;
	border-radius: 1rem;
	cursor: pointer;
}
.modal_close::before,
.modal_close::after {
	content: '';
	display: block;
	width: 1.9rem;
	height: .2rem;
	background: #fff;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	transform: rotate(45deg) scale(.8);
}
.modal_close::after {
	transform: rotate(-45deg) scale(.8);
}
.modal_item {
	width: 102rem;
	margin: 0 auto;
	padding: 3rem 6rem 3rem 3rem;
	display: flex;
	align-items: flex-end;
	border-radius: .5rem;
	background: #fff;
	overflow: hidden;
}
.modal_item_movie {
	display: block;
	width: fit-content;
	max-width: calc(100vw - 8rem);
	padding: 7rem 3rem 3rem;
}
.modal_movie {
	background: #000;
	border-radius: 1rem;
	overflow: hidden;
}
.modal_movie video {
	width: auto;
	height: auto;
	max-width: calc(100vw - 14rem);
	max-height: calc(100vh - 14rem);
	display: block;
}
.modal_item figure {
	width: 33rem;
	border-radius: 1rem;
	overflow: hidden;
}
.modal_box {
	flex: 1;
	padding: 0 0 1.1rem 10.2rem;
}
.modal_box h2 {
	font-size: 2.4rem;
	letter-spacing: .04em;
	line-height: 1.5;
	margin-bottom: 2rem;
}
.modal_box h2::before {
	content: '';
	display: block;
	width: 9.7rem;
	height: 8.2rem;
	background: url(../../img/index/message_icon_01.svg) no-repeat left top / 100% auto;
	position: absolute;
	top: -7.1rem;
	left: -4.8rem;
}
.modal_box p {
	font-size: 1.3rem;
	letter-spacing: .06em;
	line-height: 2;
	font-weight: 700;
	margin-right: -.5rem;
}
.modal_box p + p {
	margin-top: 2rem;
}
.modal_nowrap_pc {
	white-space: nowrap;
	letter-spacing: .02em;
}
.modal_name {
	font-size: 2rem;
	letter-spacing: .06em;
	font-weight: 700;
	text-align: right;
	margin-top: 5.6rem;
}
.modal_name span {
	font-size: 1.5rem;
	letter-spacing: .06em;
	color: #767B76;
	font-weight: 500;
	margin-right: 1rem;
	vertical-align: .1rem;
}
@media only screen and (max-width: 768px) {
	.modal_close {
		width: 4rem;
		height: 4rem;
		border-radius: .5rem;
		z-index: 2;
	}
	.modal_item {
		width: 35rem;
		padding: 2rem 2rem 1.8rem;
		display: block;
		border-radius: 1rem;
	}
	.modal_item_movie {
		width: fit-content;
		max-width: calc(100vw - 4rem);
		padding: 5.5rem 1rem 1rem;
	}
	.modal_movie {
		border-radius: .5rem;
	}
	.modal_movie video {
		max-width: calc(100vw - 6rem);
		max-height: calc(100vh - 9rem);
	}
	.modal_item figure {
		width: auto;
	}
	.modal_box {
		padding: 4.3rem 1.5rem 1.1rem;
	}
	.modal_box h2::before {
		width: 6.4rem;
		height: 5.4rem;
		top: -3.3rem;
		left: -1.5rem;
	}
	.modal_box p {
		line-height: 1.8462;
	}
	.modal_nowrap_pc {
		white-space: normal;
		letter-spacing: inherit;
	}
	.modal_name {
		margin-top: 2rem;
	}
}

/* history
----------------------------------------*/
.history {
	margin-top: -27rem;
	padding: 28rem 0 24.5rem;
	height: 128.5rem;
	background: linear-gradient(to bottom, rgba(255,255,255,0) 0,rgba(255,255,255,0) 40rem,rgba(255,255,255,.95) 40rem);
}
.history::before {
	content: '';
	display: block;
	background: url(../../img/index/history_bg_01.svg) no-repeat top left / 100vw 100%;
	position: absolute;
	top: 0;
	left: 0;
	height: 128.5rem;
	width: 0;
	transition: width .7s ease-out;
	z-index: 1;
}
.history::after {
	content: '';
	display: block;
	background: url(../../img/index/history_bg_01.svg) no-repeat top left / 100vw 100%;
	position: absolute;
	top: 0;
	left: 0;
	height: 128.5rem;
	width: 100%;
	filter: brightness(0) invert(1);
	pointer-events: none;
	z-index: 0;
}
.history.show::before {
	width: 100%;
}
.history_inner {
	width: calc(50% + 57.5rem);
	display: flex;
	align-items: center;
	z-index: 2;
}
.history_box {
	width: 31rem;
	text-align: right;
	color: #fff;
	padding-top: 3.8rem;
}
.history_box h2 {
	font-size: 1.6rem;
	color: #FFE19B;
	letter-spacing: .06em;
	margin-bottom: 4.5rem;
}
.history_box h2 .en::before {
	content: '';
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
	background: #FFE19B;
	position: absolute;
	top: 5.2rem;
	left: -4rem;
}
.history_box h2 .en {
	width: fit-content;
	display: block;
	font-size: 7rem;
	color: #fff;
	letter-spacing: 0;
	margin: 0 0 .8rem auto;
}
.history_box p.anim_fadeUp {
	transition-delay: .18s;
}
.history_box p {
	font-size: 2.6rem;
	font-weight: 700;
	letter-spacing: .04em;
	margin-left: -.5rem;
}
.history_btn {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 17rem;
	height: 17rem;
	border-radius: 50%;
	background: #FFE19B;
	margin: 5.9rem 0 0 auto;
	color: #333;
	text-align: center;
	font-size: 1.8rem;
	line-height: 1.5556;
	letter-spacing: .25rem;
	font-weight: 900;
	padding: 0 0 1.7rem .2rem;
	box-shadow: .4rem .4rem 1.5rem rgba(0, 0, 0, .25);
	overflow: hidden;
	isolation: isolate;
	transition: color .45s cubic-bezier(0.16, 1, 0.3, 1), transform .55s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .55s cubic-bezier(0.16, 1, 0.3, 1);
}
.history_btn::before {
	content: '';
	display: block;
	position: absolute;
	inset: 0;
	background: #fff;
	border-radius: inherit;
	transform: scale(0);
	transition: transform .6s cubic-bezier(0.16, 1, 0.3, 1);
	z-index: -1;
}
.history_btn::after {
	content: '';
	display: block;
	background: url(../../img/index/history_icon_01.svg) no-repeat top left / 100% auto;
	width: 1.6rem;
	height: 1.6rem;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 3.7rem;
	margin: 0 auto;
	transition: transform .45s cubic-bezier(0.16, 1, 0.3, 1);
	z-index: 1;
}
.history_btn > span {
	z-index: 1;
}
.history_btn > span > span {
	letter-spacing: .25em;
	margin-left: .2rem;
}
.history_btn.anim_fadeUp {
	transition-delay: .32s;
}
@media (hover:hover) and (pointer:fine) {
	.tvcm_video_inner:hover,
	.message_btn:hover,
	.history_btn:hover {
		opacity: 1;
	}
	.tvcm_video_inner:hover {
		transform: translateY(-.6rem);
		box-shadow: .7rem .9rem 2.4rem rgba(0, 0, 0, .18);
	}
	.tvcm_video_inner:hover video {
		transform: scale(1.035);
	}
	.tvcm_video_inner:hover::after {
		opacity: .18;
	}
	.message_btn:hover {
		background: #2E8A24;
		transform: translateY(-.4rem);
		box-shadow: .5rem .7rem 1.8rem rgba(69, 176, 53, .25);
	}
	.message_btn:hover::after {
		transform: translateX(.6rem) rotate(45deg);
	}
	.history_btn:hover {
		transform: translateY(-.6rem) scale(1.03);
		box-shadow: .8rem .9rem 2.4rem rgba(0, 0, 0, .22);
	}
	.history_btn:hover::before {
		transform: scale(1);
	}
	.history_btn:hover::after {
		transform: translate(.5rem, -.5rem);
	}
}
.history_img {
	--history-slide-gap: 3.2rem;
	--history-slide-width: 157rem;
	--history-slide-angle: 6deg;
	--history-slide-shift-y: -19rem;
	width: calc(100% - 31rem);
	overflow: hidden;
	order: -1;
	mask-image: linear-gradient(to left, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 1) 20.3rem);
	mask-size: 100% 100%;
	mask-repeat: no-repeat;
	mask-position: center;
	-webkit-mask-image: linear-gradient(to left, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 1) 20.3rem);
	-webkit-mask-size: 100% 100%;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
}
.history_img_axis {
	position: relative;
	top: var(--history-slide-shift-y);
	width: max-content;
	transform: rotate(var(--history-slide-angle));
	transform-origin: left center;
}
.history_img_track {
	display: flex;
	align-items: flex-start;
	gap: var(--history-slide-gap);
	width: max-content;
	animation-fill-mode: forwards;
	animation-duration: 30s;
	animation-name: history_img;
	animation-iteration-count: infinite;
	animation-timing-function: linear;
	will-change: transform;
}
.history_img figure {
	width: var(--history-slide-width);
	flex-shrink: 0;
	transform: rotate(calc(var(--history-slide-angle) * -1));
	transform-origin: center;
}
@keyframes history_img {
	0% {
		transform: translate3d(0, 0, 0);
	}
	100% {
		transform: translate3d(calc((var(--history-slide-width) + var(--history-slide-gap)) * -1), 0, 0);
	}
}
@media only screen and (max-width: 768px) {
	.history {
		margin:-20.3rem 0 -0.1rem;
		padding: 13.7rem 0 4.5rem;
		height: 96.8rem;
		background: linear-gradient(to bottom, rgba(255,255,255,0) 0,rgba(255,255,255,0) 40rem,rgba(255,255,255,.95) 40rem);
	}
	.history::before {
		background-image: url(../../img/index/history_bg_01-sp@3x.png);
		height: 96.8rem;
		transition-duration: .4s;
		transition-timing-function: ease-out;
	}
	.history::after {
		background-image: url(../../img/index/history_bg_01-sp@3x.png);
		height: 96.8rem;
	}
	.history_inner {
		width: auto;
		display: block;
		opacity: 0;
		transform: translateY(2rem);
		transition: opacity .4s ease-out .35s, transform .4s ease-out .35s;
	}
	.history.show .history_inner {
		opacity: 1;
		transform: none;
	}
	.history_box {
		width: auto;
		text-align: left;
		padding: 0 4rem;
		position: static;
	}
	.history_box h2 {
		font-size: 1.4rem;
		margin-bottom: 3.4rem;
	}
	.history_box h2 .en::before {
		width: 1rem;
		height: 1rem;
		top: 3.7rem;
		left: -2rem;
	}
	.history_box h2 .en {
		width: auto;
		font-size: 5rem;
		margin: 0 0 .4rem auto;
	}
	.history_box p {
		font-size: 2.4rem;
		line-height: 1.5833;
		margin-left: 0;
	}
	.history_btn {
		position: absolute;
		bottom: .6rem;
		right: 2rem;
		width: 12rem;
		height: 12rem;
		margin: 0;
		font-size: 1.3rem;
		line-height: 1.6923;
		z-index: 2;
		padding: 0 0 1.3rem .2rem;
	}
	.history_btn::after {
		width: 1.4rem;
		height: 1.4rem;
		bottom: 2.2rem;
	}
	.history_img {
		--history-slide-gap: 1.8rem;
		--history-slide-width: 90rem;
		--history-slide-angle: 8deg;
		--history-slide-shift-y: -9rem;
		width: auto;
		margin-top: 4rem;
	}
}

/* logo
----------------------------------------*/
.logo {
	padding: 4.2rem 0 18rem;
	background: rgba(255, 255, 255, .95);
}
.logo h2 {
	max-width: 115rem;
	margin: 0 auto 7.3rem;
	font-size: 1.6rem;
	color: #45B035;
	letter-spacing: .06em;
	padding-left: 4rem;
}
.logo h2 .en {
	display: block;
	font-size: 7rem;
	letter-spacing: 0;
	margin-bottom: .8rem;
	color: #333;
}
.logo h2::before {
	content: '';
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
	background: #45B035;
	position: absolute;
	top: 5.2rem;
	left: 0;
}
.logo_inner {
	max-width: 115rem;
	margin: 0 auto;
	display: flex;
}
.logo_img {
	width: 36rem;
	height: 36rem;
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: .7rem;
	background: #fff;
	border-radius: 50%;
}
.logo_img img {
	width: 23rem;
}
.logo_box {
	flex: 1;
	margin-left: 8.3rem;
	padding: .1rem 0 0 8.9rem;
	border-left: .1rem solid rgba(192, 192, 192, .5);
}
.logo_txt {
	font-size: 1.6rem;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 2.125;
	text-align: justify;
	margin-bottom: 4.9rem;
}
.logo_box dl {
	display: grid;
	grid-template-columns: 14rem auto;
	gap: 2.9rem 0;
}
.logo_box dd {
	padding-left: 4rem;
	display: flex;
	align-items: center;
	font-size: 1.4rem;
	font-weight: 700;
	letter-spacing: .075em;
	line-height: 2;
	text-align: justify;
}
.logo_box dd:last-child {
	letter-spacing: .081em;
}
@media only screen and (max-width: 768px) {
	.logo {
		padding: 2rem 2rem 8.4rem;
		margin-top: -0.037rem;
		margin-bottom: -0.2rem;
	}
	.logo h2 {
		margin: 0 1rem 4rem;
		font-size: 1.4rem;
		padding-left: 2rem;
	}
	.logo h2 .en {
		font-size: 4.6rem;
		line-height: 1.0869;
		margin-bottom: 1.6rem;
	}
	.logo h2::before {
		width: 1rem;
		height: 1rem;
		top: 2.4rem;
	}
	.logo_inner {
		display: block;
	}
	.logo_img {
		width: 28rem;
		height: 28rem;
		margin: 0 auto;
	}
	.logo_img img {
		width: 17.95rem;
	}
	.logo_box {
		margin-left: 0;
		padding: 3.4rem 0 0;
		border-left: 0;
	}
	.logo_txt {
		text-align: center;
		font-size: 1.4rem;
		line-height: 2.1429;
	}
	.logo_box dl {
		border-top: .1rem solid rgba(192, 192, 192, .5);
		padding-top: 6rem;
		grid-template-columns: 10.5rem auto;
		gap: 4rem 0;
	}
	.logo_box dd {
		padding-left: 2rem;
		font-size: 1.3rem;
		line-height: 1.8462;
	}
}
