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

	- header
	- kv
	- award
	- logo
	- btn
	- feature
	- problems
	- services
	- support
	- voice
	- partners
	- step
	- shop
	- faq
	- footer
	- floating

-----------------------------------------*/

/*----------------------------------------
		header
-----------------------------------------*/
header {
	inline-size: min(100%, 1600px);
	margin-inline: auto;
}

header h1 {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-block: min(0.63%, 10px);
}

header h1 span {
	margin-inline-end: min(0.9375vw, 15px);
	font-size: var(--font-size26);
	font-weight: var(--font-weight-medium);
}

header h1 img {
	inline-size: min(15.7vw, 236px);
}

@media (width <=800px) {
	header {
		inline-size: 100%;
		margin-inline: 0;
	}

	header h1 {
		margin-block: 2%;
	}

	header h1 span {
		margin-inline-end: 2.5vw;
		font-size: var(--font-size13);
	}

	header h1 img {
		inline-size: 30vw;
	}
}

/*----------------------------------------
		kv
-----------------------------------------*/
.kv {
	inline-size: min(100%, 2000px);
	margin-inline: auto;
	background: url(../img/kv.webp) no-repeat left top;
	background-size: 100% auto;
}

.kv p {
	inline-size: min(44.9%, 898px);
	margin-inline: auto;
	padding-block-start: min(5%, 100px);
	transform: translate(max(1.65%, 33px));
}

@media (width <=800px) {
	.kv {
		inline-size: 100%;
		margin-inline: 0;
		aspect-ratio: 200 / 250;
		background: url(../img/kv_sp.webp) no-repeat left top;
		background-size: 100% auto;
	}

	.kv p {
		inline-size: 83.5%;
		padding-block-start: 22.5%;
		transform: unset;
	}
}

/*----------------------------------------
	award
-----------------------------------------*/
.award {
	inline-size: min(100%, 1600px);
	margin-inline: auto;
}

.award ul {
	inline-size: min(69.25%, 1108px);
	display: flex;
	gap: 0 min(1.8%, 20px);
	margin-inline: auto;
}

.award ul li {
	inline-size: min(23.1%, 256px);
}

.award ul li:nth-child(2) {
	inline-size: min(25.27%, 280px);
}

.award p {
	margin-block-start: min(0.63%, 10px);
	font-size: var(--font-size12);
	color: var(--color-gray);
	text-align: center;
}

@media (width <=800px) {
	.award {
		inline-size: 88%;
		margin-block-start: 7.39%;
	}

	.award ul {
		inline-size: 100%;
		flex-wrap: wrap;
		gap: 3.9vw 1.42%;
		margin-inline: 0;
	}

	.award ul li {
		inline-size: 47.16%;
		text-align: center;
	}

	.award ul li:nth-child(even),
	.award ul li:nth-child(2) {
		inline-size: 51.42%;
	}

	.award ul li:last-child img {
		inline-size: 91.71%;
	}

	.award p {
		margin-block-start: 1.42%;
		font-size: var(--font-size9);
		line-height: var(--line-height13);
		text-align: left;
		text-indent: -1em;
		padding-inline-start: 1em;
	}
}

/*----------------------------------------
	logo
-----------------------------------------*/
.logo {
	margin-block-start: min(1.88%, 30px);
	overflow: hidden;
}

.logo .logo_wrap {
	max-width: 2000px;
	padding-block-start: min(0.94%, 15px);
}

.logo .logo_wrap .swiper-wrapper {
	transition-timing-function: linear;
}

.logo .logo_wrap .swiper-slide {
	inline-size: min(8.9%, 178px);
	width: auto;
}

@media (width <=800px) {
	.logo {
		margin-block-start: 6.25%;
	}

	.logo .logo_wrap {
		padding-block-start: 3.5%;
	}

	.logo .logo_wrap .swiper-slide {
		inline-size: 38.25vw;
	}
}

/*----------------------------------------
	btn
-----------------------------------------*/
.btn {
	position: relative;
	inline-size: min(42.5%, 680px);
	margin-block-start: min(2.19%, 35px);
	margin-inline: auto;
	filter: drop-shadow(0 10px 5px rgba(0, 0, 0, 0.1));
	z-index: 5;
}

@media (hover: hover) and (width >=800px) {
	.btn:hover {
		background: url(../img/ctaButtn01_hover.webp) no-repeat left top;
		background-size: 100% auto;
	}

	.btn:hover a {
		opacity: 0;
		transition: opacity 0.2s cubic-bezier(0.45, 0, 0.55, 1);
	}
}

@media (width <=800px) {
	.btn {
		inline-size: 88%;
		margin-block-start: 5%;
	}
}

/*----------------------------------------
	feature
-----------------------------------------*/
.feature {
	position: relative;
	margin-block-start: min(-2.81%, -45px);
	padding-block-end: min(12.81%, 205px);
	background: var(--color-seashell);
}

.feature::before {
	content: '';
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	display: block;
	inline-size: 100%;
	block-size: auto;
	aspect-ratio: 1600 / 250;
	background: var(--color-white) url(../img/feature_bg.svg) no-repeat left top;
	background-size: 100% auto;
}

.feature h2 {
	position: relative;
	inline-size: min(42.75%, 684px);
	padding-block-start: min(10.13%, 162px);
	margin-inline: auto;
	z-index: 2;
}

.feature .point {
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, minmax(21.88%, 350px));
	justify-content: space-between;
	inline-size: min(70%, 1120px);
	margin-inline: auto;
	z-index: 2;
}

.feature .point section:nth-child(2) {
	margin-block-start: min(20%, 70px);
}

.feature .point section:nth-child(3) {
	margin-block-start: min(40%, 140px);
}

.feature .point section picture {
	display: block;
	inline-size: min(62.86%, 220px);
	margin-block-end: min(6.57%, 23px);
	margin-inline: auto;
}

.feature .point section h3 {
	font-size: var(--font-size24);
	font-weight: var(--font-weight-medium);
	text-align: center;
	letter-spacing: -0.03em;
}

.feature .point section p {
	margin-block-start: min(3.14%, 11px);
	font-size: var(--font-size16);
	text-align: center;
	letter-spacing: -0.03em;
}

.feature .point section p span {
	background-image: linear-gradient(transparent 80%, var(--color-androidgreen) 20%);
	font-size: var(--font-size18);
	font-weight: var(--font-weight-medium);
}

.feature .point section:first-child p span span {
	font-size: var(--font-size16);
}

.feature .point section:nth-child(2) p span span {
	font-size: var(--font-size19);
	font-family: var(--font-family-lato);
}

@media (width <=800px) {
	.feature {
		margin-block-start: 3.75%;
		padding-block-end: 0;
	}

	.feature::before {
		aspect-ratio: 400 / 60;
		background-image: url(../img/feature_bg_sp.svg);
	}

	.feature h2 {
		inline-size: 88%;
		padding-block-start: 15%;
	}

	.feature .point {
		grid-template-columns: 1fr;
		justify-content: unset;
		gap: 0 0;
		inline-size: 87%;
		margin-block-start: 10%;
	}

	.feature .point section:nth-child(2),
	.feature .point section:nth-child(3) {
		margin-block-start: 11.4%;
	}

	.feature .point section picture {
		inline-size: auto;
		margin-block-end: 4.23%;
		margin-inline: 10.34%;
	}

	.feature .point section picture img {
		inline-size: 81.88%;
	}

	.feature .point section h3 {
		font-size: var(--font-size20);
	}

	.feature .point section p {
		margin-block-start: 1.32%;
		margin-inline: -5%;
		font-size: var(--font-size13);
	}

	.feature .point section p span {
		font-size: var(--font-size16);
	}

	.feature .point section:first-child p span span {
		font-size: var(--font-size13);
	}

	.feature .point section:nth-child(2) p span span {
		font-size: var(--font-size18);
	}
}

/*----------------------------------------
	problems
-----------------------------------------*/
.problems {
	padding-block-end: min(10.75%, 172px);
	background: var(--color-seashell);
}

.problems h2 {
	position: relative;
	padding-block: min(4.19%, 67px) min(6.68%, 107px);
}

.problems h2::before {
	content: '';
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	display: block;
	inline-size: 100%;
	block-size: 100%;
	background: var(--color-nyanza);
	transform: skewY(-5.5deg);
	z-index: 1;
}

.problems h2 span {
	position: relative;
	display: block;
	inline-size: min(70%, 1120px);
	margin-inline: auto;
	padding-inline-start: min(28.62%, 458px);
	z-index: 3;
}

.problems h2 span::before {
	content: '';
	position: absolute;
	inset-block-start: max(-156.78%, -185px);
	inset-inline-start: min(-0.45%, 5px);
	display: block;
	inline-size: min(42.14%, 472px);
	aspect-ratio: 472 / 465;
	background: url(../img/problems_title_pic.webp) no-repeat left top;
	background-size: 100% auto;
	z-index: 2;
}

.problems h2 span img {
	display: block;
	inline-size: min(83.69%, 554px);
}

.problems .container {
	position: relative;
	inline-size: min(100%, 1600px);
	margin-inline: auto;
	z-index: 2;
}

.problems .container::before {
	content: '';
	position: absolute;
	inset-block-start: max(-6.88vw, -110px);
	inset-inline-end: min(2.36%, 38px);
	display: block;
	inline-size: min(51.5%, 824px);
	aspect-ratio: 824 / 252;
	background: url(../img/problems_writing.svg) no-repeat right min(2.36%, 38px) top;
	background-size: 100% auto;
}

.problems .container h3 {
	position: relative;
	inline-size: min(39.87%, 638px);
	padding-block-start: min(4.75%, 76px);
	margin-inline: auto;
	z-index: 2;
}

.problems .container>p {
	inline-size: min(70%, 1120px);
	margin-block-start: min(3.75%, 60px);
	margin-inline: auto;
}

.problems .message {
	inline-size: min(70%, 1120px);
	margin-block-start: min(2.41%, 27px);
	margin-inline: auto;
}

.problems .message h4 {
	position: relative;
	inline-size: min(83.39%, 934px);
	margin-block-end: max(-2.67vw, -43px);
	margin-inline-start: auto;
	z-index: 2;
}

.problems .message h4 img {
	inline-size: min(30.83%, 288px);
	margin-inline-start: min(29.12%, 272px);
}

.problems .message .message_wrap {
	position: relative;
	inline-size: min(83.39%, 934px);
	margin-inline-start: auto;
	padding-block-end: min(4.82%, 45px);
	background: url(../img/problems_msg_bg.svg) no-repeat left bottom;
	background-size: min(89.84%, 840px) auto;
}

.problems .message .message_wrap::after {
	content: '';
	position: absolute;
	inset-block-end: min(-5.14%, -48px);
	inset-inline-end: 0;
	display: block;
	inline-size: min(29.99%, 280px);
	aspect-ratio: 280 / 346;
	background: url(../img/problems_msg_adv.webp) no-repeat left top;
	background-size: 100% auto;
}

.problems .message .message_wrap div {
	inline-size: min(88.87%, 830px);
	min-block-size: min(30.12%, 250px);
	padding-block: min(8.43%, 70px) min(4.82%, 40px);
	padding-inline-start: min(7.22%, 60px);
	background: var(--color-white);
	border-radius: min(0.88vw, 14px);
}

.problems .message .message_wrap div p {
	padding-inline-end: min(14.46%, 120px);
	font-size: var(--font-size18);
	line-height: var(--line-height20);
	font-weight: var(--font-weight-medium);
	letter-spacing: -0.03em;
}

.problems .message .message_wrap div p+p {
	padding-block-start: min(0.77%, 6px);
	padding-inline-end: min(25.32%, 195px);
	text-align: end;
}

.problems .message .message_wrap div p+p span {
	font-size: var(--font-size16);
}

@media (width <=800px) {
	.problems {
		padding-block: 19.5% 16.25%;
	}

	.problems h2 {
		padding-block: 0;
	}

	.problems h2::before {
		display: none;
	}

	.problems h2 span {
		inline-size: 88%;
		padding-inline-start: 0;
	}

	.problems h2 span::before {
		display: none;
	}

	.problems h2 span img {
		inline-size: 100%;
	}

	.problems .container {
		inline-size: 100%;
		margin-block-start: 1.75%;
		padding-block-start: 61%;
	}

	.problems .container::before {
		inset-block-start: 0;
		inset-inline-start: 0;
		inline-size: 61%;
		margin-inline: auto;
		aspect-ratio: 244 / 239;
		background: url(../img/problems_title_pic_sp.webp) no-repeat left top;
		background-size: 100% auto;
		transform: translate(1%);
		z-index: 2;
	}

	.problems .container::after {
		content: '';
		position: absolute;
		inset-block-start: 10vw;
		inset-inline-start: 0;
		display: block;
		inline-size: 100%;
		block-size: 44.25vw;
		background: var(--color-nyanza);
		transform: skewY(-11deg);
		z-index: 1;
	}

	.problems .container h3 {
		position: relative;
		inline-size: 100%;
		margin-block-start: -8.75%;
		padding-block-start: 17.5%;
		padding-inline: 6%;
	}

	.problems .container h3 img {
		position: relative;
		z-index: 2;
	}

	.problems .container h3::before {
		content: '';
		position: absolute;
		inset-block-start: 0;
		inset-inline-start: 0;
		display: block;
		inline-size: 100%;
		aspect-ratio: 400 / 108;
		background: url(../img/problems_writing_sp.svg) no-repeat left top;
		background-size: 100% auto;
		z-index: 1;
	}

	.problems .container h3::after {
		content: '';
		position: absolute;
		inset-block-start: 2vw;
		inset-inline-start: 0;
		display: block;
		inline-size: 100%;
		block-size: 140px;
		background: var(--color-white);
		transform: skewY(-11deg);
		z-index: -1;
	}

	.problems .container>p {
		position: relative;
		inline-size: 100%;
		margin-inline: 0;
		padding-inline: 6%;
		margin-block-start: 10%;
		padding-block-start: 3%;
	}

	.problems .container>p::before {
		content: '';
		position: absolute;
		inset-block-start: -27.5%;
		inset-inline-start: 0;
		display: block;
		inline-size: 100%;
		block-size: 27.5%;
		background: var(--color-white);
		z-index: -1;
	}

	.problems .message {
		position: relative;
		inline-size: 88%;
		margin-block-start: 3.25vw;
		margin-inline: auto;
		padding-block-end: 68vw;
	}

	.problems .message::after {
		content: '';
		position: absolute;
		inset-block-end: 0;
		inset-inline-start: calc(50% - 28vw);
		display: block;
		inline-size: 63.63%;
		aspect-ratio: 280 / 346;
		background: url(../img/problems_msg_adv.webp) no-repeat left top;
		background-size: 100% auto;
	}

	.problems .message h4 {
		inline-size: 100%;
		margin-block-end: -7.1%;
		margin-inline-start: 0;
		text-align: center;
	}

	.problems .message h4 img {
		inline-size: 48.3%;
		margin-inline-start: 0;
	}

	.problems .message .message_wrap {
		inline-size: 100%;
		margin-inline-start: 0;
		padding-block-end: 5.97%;
		padding-inline-end: 1.7%;
		background: url(../img/problems_msg_bg_sp.svg) no-repeat left bottom;
		background-size: 100% auto;
	}

	.problems .message .message_wrap::after {
		display: none;
	}

	.problems .message .message_wrap div {
		inline-size: auto;
		min-block-size: unset;
		padding-block: 12.69% 7.85%;
		padding-inline: 4.52%;
		border-radius: 0.75vw;
	}

	.problems .message .message_wrap div p {
		padding-inline: 1.66% 0;
		font-size: var(--font-size15);
		line-height: var(--line-height16);
		color: var(--color-darklava);
		font-weight: var(--font-weight-medium);
		letter-spacing: -0.03em;
	}

	.problems .message .message_wrap div p+p {
		padding-block-start: 1.99%;
		padding-inline-end: 0;
	}

	.problems .message .message_wrap div p+p span {
		font-size: var(--font-size13);
	}
}

/*----------------------------------------
	services
-----------------------------------------*/
.services h2 {
	background-color: var(--color-nyanza);
	padding-block-end: min(4.125vw, 66px);
}

.services h2 div {
	position: relative;
	inline-size: min(100%, 1600px);
	margin-inline: auto;
}

.services h2 div::before {
	content: "";
	position: absolute;
	inset-block-start: max(-2.5vw, -40px);
	inset-inline-start: min(0.813vw, 13px);
	;
	display: block;
	background: url(../img/services_writing.svg) no-repeat left top;
	background-size: cover;
	inline-size: min(46.5vw, 744px);
	aspect-ratio: 744/230;
}

.services h2 div::after {
	content: "";
	position: absolute;
	inset-block-start: max(-1.5vw, -24px);
	inset-inline-end: min(6.875vw, 110px);
	display: block;
	background: url(../img/services_title_pic.webp) no-repeat left top;
	background-size: cover;
	inline-size: min(14vw, 224px);
	aspect-ratio: 448/612;
}

.services h2 img {
	position: relative;
	inset-block-start: max(-1.063vw, -17px);
	z-index: 1;
	inline-size: min(43.75vw, 700px);
	display: block;
	margin-inline: auto;
}

.services .container_wrap {
	position: relative;
	overflow: hidden;
	padding-block-end: 20vw;
}

.services .container_wrap::before {
	z-index: -1;
	content: '';
	position: absolute;
	inset-block-start: min(2.5vw, 40px);
	inset-inline-start: 50%;
	transform: translateX(-50%);
	display: block;
	inline-size: 245%;
	block-size: 100%;
	background: url(../img/services_bg.svg) no-repeat left top;
	background-size: 100% auto;
}

.services .container {
	position: relative;
	inline-size: min(100%, 1600px);
	margin-inline: auto;
	z-index: 2;
}

.services .container h3 {
	inline-size: min(64.75vw, 1036px);
	margin-inline: auto;
	margin-block-start: min(4.813vw, 77px);
}

.services .container h3+p {
	font-size: var(--font-size20);
	font-weight: var(--font-weight-medium);
	text-align: center;
	margin-block-start: min(2.063vw, 33px);
}

.services .container .services01 {
	display: grid;
	margin-block-start: min(3.562vw, 57px);
}

.services .container .services01>* {
	grid-column: 1/2;
	grid-row: 1/2;
}

.services .container .services01>picture img {
	inline-size: min(52.5vw, 840px);
	margin-inline: 0 auto;
}

.services .container .services01>div {
	margin-inline: auto min(16.875vw, 270px);
	inline-size: min(34.125vw, 546px);
	margin-block-start: min(4.25vw, 68px);
}

.services .container .services01>div h4 {
	font-size: var(--font-size36);
	font-weight: var(--font-weight-medium);
	letter-spacing: -0.03em;
}

.services .container .services01>div p {
	margin-block-start: min(1.6875vw, 27px);
	font-size: var(--font-size18);
	letter-spacing: -0.03em;
}

.services .container .services01>div p+p {
	margin-block-start: min(1.0625vw, 17px);
}

.services .container .services01>div p span {
	background-image: linear-gradient(transparent 70%, var(--color-mustardyellow) 30%);
	font-size: var(--font-size24);
}

.services .container .services01>p {
	inline-size: min(35.125vw, 562px);
	margin-block-start: min(32.125vw, 514px);
	margin-inline: auto min(28.438vw, 455px);
}

.services .container .services02 {
	display: grid;
	margin-block-start: min(3.75vw, 60px);
}

.services .container .services02>* {
	grid-column: 1/2;
	grid-row: 1/2;
}

.services .container .services02>img {
	inline-size: min(52.5vw, 840px);
	margin-inline: auto 0;
}

.services .container .services02>div {
	margin-inline: min(15vw, 240px) auto;
	inline-size: min(38.438vw, 615px);
	margin-block-start: min(2.875vw, 46px);
}

.services .container .services02>div h4 {
	font-size: var(--font-size36);
	font-weight: var(--font-weight-medium);
	letter-spacing: -0.03em;
}

.services .container .services02>div p {
	margin-block-start: min(1.6875vw, 27px);
	font-size: var(--font-size18);
	letter-spacing: -0.03em;
}

.services .container .services02>div p+p {
	margin-block-start: min(1.0625vw, 17px);
}

.services .container .services02>div p span {
	background-image: linear-gradient(transparent 70%, var(--color-mustardyellow) 30%);
	font-size: var(--font-size24);
}

.services .container .services02>p {
	inline-size: min(28.125vw, 450px);
	margin-block-start: min(35vw, 560px);
	margin-inline: auto min(25.75vw, 412px);
}

.services .container .services03 {
	display: grid;
	margin-block-start: min(5.063vw, 81px);
}

.services .container .services03>* {
	grid-column: 1/2;
	grid-row: 1/2;
}

.services .container .services03>picture img {
	inline-size: min(52.5vw, 840px);
	margin-inline: 0 auto;
}

.services .container .services03>div {
	margin-inline: auto min(15vw, 240px);
	inline-size: min(36.125vw, 578px);
	margin-block-start: min(2.875vw, 46px);
}

.services .container .services03>div h4 {
	font-size: var(--font-size36);
	font-weight: var(--font-weight-medium);
	letter-spacing: -0.03em;
}

.services .container .services03>div p {
	margin-block-start: min(1.6875vw, 27px);
	font-size: var(--font-size18);
	letter-spacing: -0.03em;
}

.services .container .services03>div p+p {
	margin-block-start: min(1.0625vw, 17px);
}

.services .container .services03>div p span {
	background-image: linear-gradient(transparent 70%, var(--color-mustardyellow) 30%);
	font-size: var(--font-size24);
}

.services .container .services03>div p span span {
	font-size: var(--font-size25);
	font-family: var(--font-family-lato);
}

.services .container .services03>p {
	inline-size: min(34.5625vw, 553px);
	margin-block-start: min(31.875vw, 510px);
	margin-inline: auto min(22.75vw, 364px);
}

@media (width <=800px) {
	.services h2 {
		padding-block: 0;
		padding-inline: 2.5vw;
	}

	.services h2 div {
		display: grid;
		grid-template-columns: 1fr auto;
		gap: 2vw;
	}

	.services h2 div::before {
		background-image: url(../img/services_writing_sp.svg);
		inset-block-start: 75%;
		inset-inline-start: -1%;
		inline-size: 84vw;
		z-index: 1;
	}

	.services h2 div::after {
		position: static;
		background-image: url(../img/services_title_pic_sp.webp);
		inline-size: 30.5vw;
		margin-block-start: -2vw;
	}

	.services h2 img {
		inline-size: 100%;
		inset-block-start: -7vw;
	}

	.services .container_wrap {
		padding-block-end: 44.4vw;
	}

	.services .container_wrap::before {
		background-image: url(../img/services_bg_sp.svg);
		inline-size: 264%;
	}

	.services .container h3 {
		inline-size: 88vw;
		margin-block-start: 16vw;
	}

	.services .container h3+p {
		font-size: var(--font-size16);
		margin-block-start: 5.8vw;
		padding-inline: 2.5vw;
		letter-spacing: -0.05em;
	}

	.services .container .services01 {
		margin-block-start: 9vw;
	}

	.services .container .services01>picture img {
		inline-size: 100%;
		padding-inline-end: 5.9vw;
	}

	.services .container .services01>div {
		grid-row: unset;
		padding-inline: 5.6vw;
		inline-size: 100%;
		margin-block-start: 5vw;
	}

	.services .container .services01>div h4 {
		font-size: var(--font-size25);
		line-height: var(--line-height14);
	}

	.services .container .services01>div p {
		margin-block-start: 4.75vw;
		font-size: var(--font-size15);
		line-height: var(--line-height14);
	}

	.services .container .services01>div p+p {
		margin-block-start: 3.5vw;
	}

	.services .container .services01>div p span {
		font-size: var(--font-size20);
	}

	.services .container .services01>p {
		grid-row: unset;
		padding-inline: 5.6vw;
		inline-size: 100%;
		margin-block-start: 9.5vw;
	}

	.services .container .services02 {
		margin-block-start: 12vw;
	}

	.services .container .services02>img {
		inline-size: 100%;
		padding-inline-start: 5.9vw;
	}

	.services .container .services02>div {
		grid-row: unset;
		padding-inline: 5.9vw;
		inline-size: 100%;
		margin-block-start: 5.5vw;
		margin-inline: 0;
	}

	.services .container .services02>div h4 {
		font-size: var(--font-size25);
		line-height: var(--line-height14);
	}

	.services .container .services02>div p {
		margin-block-start: 4vw;
		font-size: var(--font-size15);
		line-height: var(--line-height14);
	}

	.services .container .services02>div p+p {
		margin-block-start: 2.25vw;
	}

	.services .container .services02>div p span {
		font-size: var(--font-size20);
	}

	.services .container .services02>p {
		grid-row: unset;
		padding-inline: 5.6vw;
		inline-size: 100%;
		margin-block-start: 6vw;
	}

	.services .container .services03 {
		margin-block-start: 15vw;
	}

	.services .container .services03>picture img {
		inline-size: 100%;
		padding-inline-end: 5.9vw;
	}

	.services .container .services03>div {
		grid-row: unset;
		padding-inline: 5.9vw;
		inline-size: 100%;
		margin-block-start: 5.25vw;
	}

	.services .container .services03>div h4 {
		font-size: var(--font-size25);
		line-height: var(--line-height14);
	}

	.services .container .services03>div p {
		margin-block-start: 4vw;
		font-size: var(--font-size15);
		line-height: var(--line-height14);
	}

	.services .container .services03>div p+p {
		margin-block-start: 2.25vw;
	}

	.services .container .services03>div p span {
		font-size: var(--font-size20);
	}

	.services .container .services03>div p span span {
		font-size: var(--font-size20);
	}

	.services .container .services03>p {
		grid-row: unset;
		padding-inline: 5.9vw;
		inline-size: 100%;
		margin-block-start: 9vw;
	}
}

/*----------------------------------------
	support
-----------------------------------------*/
.support {
	position: relative;
}

.support::after {
	content: "";
	position: absolute;
	inset-block-end: calc(100% - 1px);
	inset-inline: 0;
	margin-inline: auto;
	inline-size: 100%;
	block-size: auto;
	aspect-ratio: 1600/280;
	background: url(../img/support_bg.svg);
	background-repeat: no-repeat;
	background-position: left top;
	background-size: cover;
	z-index: 2;
}

.support::before {
	content: "";
	display: block;
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	inline-size: 100%;
	block-size: calc(100% - min(23.063vw, 369px));
	background-color: var(--color-green);
}

.support>div {
	position: relative;
	inset-block-start: max(-11vw, -176px);
	margin-block-end: max(-11vw, -176px);
}

.support .title {
	position: relative;
	z-index: 3;
	display: flex;
	justify-content: center;
	margin-block: auto 0;
	inline-size: 100%;
	block-size: auto;
}

.support .title h2 {
	inline-size: min(45vw, 720px);
	height: fit-content;
	margin-block: auto min(2.375vw, 38px);
	position: relative;
	z-index: 3;
}

.support .title>p {
	inline-size: min(15.188vw, 243px);
	height: fit-content;
	margin-block: auto 0;
	inset-inline-end: max(-1.75vw, -28px);
	position: relative;
	z-index: 3;
}

@media (width > 800px) {
	.support .support_txt {
		display: none;
	}

	.support .slide {
		inline-size: min(70vw, 1120px);
		margin-inline: auto;
		margin-block-start: min(1.063vw, 17px);
	}

	.support .swiper-wrapper {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: min(2.563vw, 41px) min(2.188vw, 35px);
	}

	.support .swiper-wrapper .swiper-slide {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: max-content auto;
		background: var(--color-white);
		border-radius: min(0.75vw, 10px);
	}

	.support .swiper-wrapper .swiper-slide div {
		padding-block: min(1.5vw, 24px) min(2vw, 32px);
		padding-inline: min(1.5vw, 24px);
	}

	.support .swiper-wrapper .swiper-slide div h3 {
		font-size: var(--font-size26);
		font-weight: var(--font-weight-medium);
		line-height: var(--line-height14);
		color: var(--color-green);
		letter-spacing: -0.03em;
	}

	.support .swiper-wrapper .swiper-slide div p {
		margin-block-start: min(0.9375vw, 15px);
		font-size: var(--font-size18);
		line-height: var(--line-height16);
		letter-spacing: -0.03em;
	}

	.support .swiper-wrapper .swiper-slide div p span {
		background-image: linear-gradient(transparent 75%, var(--color-middleblue) 25%);
		font-size: var(--font-size20);
		font-weight: var(--font-weight-medium);
	}

	.support .swiper-wrapper .swiper-slide div p span span {
		font-family: var(--font-family-lato);
		font-size: var(--font-size21);
		font-weight: var(--font-weight-regular);
	}
}

@media (width <=800px) {
	.support::after {
		aspect-ratio: 400/150;
		background: url(../img/support_bg_sp.svg);
	}

	.support::before {
		block-size: calc(100% - 56.6vw);
	}

	.support>div {
		inset-block-start: -24.1vw;
		margin-block-end: -24.1vw;
	}

	.support .title {
		display: grid;
		aspect-ratio: unset;
	}

	.support .title::before {
		background-image: url(../img/support_bg_sp.svg);
		aspect-ratio: 400/150;
	}

	.support .title h2 {
		inline-size: 88vw;
		margin-block: 0;
	}

	.support .title>p {
		position: static;
		margin-inline: auto;
		margin-block-start: 8vw;
		inline-size: 48.7vw;
	}

	.support .support_txt {
		position: relative;
		z-index: 1;
		margin-block-start: 7vw;
		color: var(--color-white);
		inline-size: fit-content;
		margin-inline: auto 6vw;
		font-size: var(--font-size16);
	}

	.support .slide {
		position: relative;
		margin-block-start: 2.5vw;
		padding-block-end: 6vw;
		padding-inline: 6vw;
		overflow: hidden;
	}

	.support .swiper-wrapper .swiper-slide {
		height: auto;
		background: var(--color-white);
		border-radius: 3vw;
	}

	.support .swiper-wrapper .swiper-slide div {
		padding-block: 4vw 6vw;
		padding-inline: 3.75vw;
	}

	.support .swiper-wrapper .swiper-slide div h3 {
		font-size: var(--font-size20);
		font-weight: var(--font-weight-medium);
		line-height: var(--line-height14);
		color: var(--color-green);
	}

	.support .swiper-wrapper .swiper-slide div p {
		margin-block-start: 1.75vw;
		font-size: var(--font-size15);
		line-height: var(--line-height16);
	}

	.support .swiper-wrapper .swiper-slide div p span {
		background-image: linear-gradient(transparent 75%, var(--color-middleblue) 25%);
		font-size: var(--font-size17);
		font-weight: var(--font-weight-medium);
	}

	.support .swiper-wrapper .swiper-slide div p span span {
		font-family: var(--font-family-lato);
		font-size: var(--font-size18);
		font-weight: var(--font-weight-regular);
	}

	.support .slide .swiper-scrollbar {
		inline-size: 88%;
		inset-inline-start: 50%;
		transform: translateX(-50%);
		background-color: var(--color-darklava);
	}

	.support .slide .swiper-scrollbar-drag {
		background-color: var(--color-brightgray);
	}
}

.support .message {
	inline-size: min(70%, 1120px);
	margin-block-start: min(3.875vw, 62px);
	margin-inline: auto;
	padding-block-end: min(4.01%, 45px);
}

.support .message h3 {
	position: relative;
	inline-size: min(83.39%, 934px);
	margin-block-end: max(-2.67vw, -43px);
	margin-inline-start: auto;
	z-index: 2;
}

.support .message h3 img {
	inline-size: min(30.83%, 288px);
	margin-inline-start: min(29.12%, 272px);
}

.support .message .message_wrap {
	position: relative;
	inline-size: min(83.39%, 934px);
	margin-inline-start: auto;
	padding-block-end: min(4.82%, 45px);
	background: url(../img/support_msg_bg.svg) no-repeat left bottom;
	background-size: min(89.84%, 840px) auto;
}

.support .message .message_wrap::after {
	content: '';
	position: absolute;
	inset-block-end: min(-5.14%, -48px);
	inset-inline-end: 0;
	display: block;
	inline-size: min(29.99%, 280px);
	aspect-ratio: 280 / 346;
	background: url(../img/support_msg_adv.webp) no-repeat left top;
	background-size: 100% auto;
}

.support .message .message_wrap div {
	inline-size: min(88.87%, 830px);
	min-block-size: min(30.12%, 250px);
	padding-block: min(8.43%, 70px) min(4.82%, 40px);
	padding-inline-start: min(7.22%, 60px);
	background: var(--color-honeydew);
	border-radius: min(0.88vw, 14px);
}

.support .message .message_wrap div p {
	padding-inline-end: min(19.48%, 150px);
	font-size: var(--font-size18);
	line-height: var(--line-height20);
	color: var(--color-darklava);
	font-weight: var(--font-weight-medium);
	letter-spacing: -0.03em;
}

.support .message .message_wrap div p span {
	font-size: var(--font-size19);
	font-family: var(--font-family-lato);
	font-weight: var(--font-weight-regular);
}

.support .message .message_wrap div p+p {
	padding-block-start: min(0.77%, 6px);
	padding-inline-end: min(25.32%, 195px);
	text-align: end;
}

.support .message .message_wrap div p+p span {
	font-size: var(--font-size16);
}

@media (width <=800px) {
	.support .message {
		position: relative;
		inline-size: 88%;
		margin-block-start: 3.25vw;
		margin-inline: auto;
		padding-block-end: 68vw;
	}

	.support .message::after {
		content: '';
		position: absolute;
		inset-block-end: 0;
		inset-inline-start: calc(50% - 28vw);
		display: block;
		inline-size: 63.63%;
		aspect-ratio: 280 / 346;
		background: url(../img/support_msg_adv.webp) no-repeat left top;
		background-size: 100% auto;
	}

	.support .message h3 {
		inline-size: 100%;
		margin-block-end: -7.1%;
		margin-inline-start: 0;
		text-align: center;
	}

	.support .message h3 img {
		inline-size: 48.86%;
		margin-inline-start: 1.5%;
	}

	.support .message .message_wrap {
		inline-size: 100%;
		margin-inline-start: 0;
		padding-block-end: 5.97%;
		padding-inline-end: 1.7%;
		background: url(../img/support_msg_bg_sp.svg) no-repeat left bottom;
		background-size: 100% auto;
	}

	.support .message .message_wrap::after {
		display: none;
	}

	.support .message .message_wrap div {
		inline-size: auto;
		min-block-size: unset;
		padding-block: 12.69% 7.85%;
		padding-inline: 4.52%;
		border-radius: 0.75vw;
	}

	.support .message .message_wrap div p {
		padding-inline: 1.66% 0;
		font-size: var(--font-size15);
		line-height: var(--line-height16);
		letter-spacing: -0.03em;
	}

	.support .message .message_wrap div p+p {
		padding-block-start: 1.99%;
		padding-inline-end: 0;
	}

	.support .message .message_wrap div p+p span {
		font-size: var(--font-size13);
	}
}

/*----------------------------------------
	voice
-----------------------------------------*/
.voice .title {
	padding-block-start: min(22%, 352px);
}

.voice .title::before {
	content: '';
	position: relative;
	display: block;
	block-size: min(22vw, 352px);
	inline-size: min(100%, 1600px);
	margin-inline: auto;
	margin-block-start: max(-22vw, -352px);
	background: url(../img/voice_title_pic.webp) no-repeat center bottom;
	background-size: min(32.75%, 524px) auto;
	z-index: 2;
	transform: translate(min(-1.36vw, -22px));
}

.voice .title h2 {
	position: relative;
	padding-block-start: min(22%, 352px);
	margin-block-start: max(-2.37%, -38px);
	padding: min(3.75%, 60px);
	background: var(--color-nyanza);
	text-align: center;
	z-index: 1;
}

.voice .title h2 img {
	inline-size: min(100%, 1072px);
}

.voice .container {
	padding-block-end: min(6.25%, 100px);
	background: url(../img/voice_bg.svg) no-repeat left top;
	background-size: cover;
}

.voice .container h3 {
	position: relative;
	inline-size: min(100%, 1600px);
	margin-block-start: max(-3.75%, -60px);
	margin-inline: auto;
	text-align: center;
	z-index: 2;
}

.voice .container h3::before {
	content: '';
	display: block;
	inline-size: min(42.69%, 683px);
	margin-inline-start: auto;
	margin-block-end: min(1.63%, 26px);
	aspect-ratio: 683 / 114;
	background: url(../img/voice_writing.svg) no-repeat right min(-1%, -16px) top;
	background-size: 100% auto;
}

.voice .container h3 img {
	inline-size: min(100%, 706px);
}

.voice .container .voice01 {
	display: grid;
	grid-template-columns: min(53.14%, 592px) min(44.52%, 496px);
	justify-content: space-between;
	inline-size: min(71.25%, 1140px);
	margin-block-start: min(43.09%, 48px);
	margin-inline: auto;
	padding-inline: min(0.9%, 10px) min(1.47%, 16px);
}

.voice .container .voice01 div {
	margin-block-start: min(11.69%, 58px);
}

.voice .container .voice01 div .voice_customer {
	font-size: var(--font-size18);
	font-weight: var(--font-weight-medium);
}

.voice .container .voice01 div .voice_customer span {
	font-size: var(--font-size24);
}

.voice .container .voice01 div h4 {
	margin-block-start: min(1.41%, 7px);
	font-size: var(--font-size34);
	line-height: var(--line-height13);
	font-weight: var(--font-weight-medium);
	letter-spacing: -0.03em;
}

.voice .container .voice01 div .voice_txt {
	margin-block-start: min(5.65%, 28px);
	font-size: var(--font-size18);
	line-height: var(--line-height18);
	letter-spacing: -0.03em;
}

.voice .container .voice01 div .voice_txt span {
	background-image: linear-gradient(transparent 70%, var(--color-middleblue) 30%);
	font-size: var(--font-size22);
	line-height: var(--line-height14);
}

.voice .container .voice02 {
	display: grid;
	grid-template-columns: min(44.07%, 498px) min(51.5%, 582px);
	justify-content: space-between;
	inline-size: min(71.25%, 1140px);
	margin-block-start: min(1.59%, 18px);
	margin-inline: auto;
	padding-inline-start: min(0.88%, 10px);
}

.voice .container .voice02 p {
	order: 2;
}

.voice .container .voice02 div {
	margin-block-start: min(17.46%, 87px);
	order: 1;
}

.voice .container .voice02 div .voice_customer {
	font-size: var(--font-size18);
	font-weight: var(--font-weight-medium);
}

.voice .container .voice02 div .voice_customer span {
	font-size: var(--font-size24);
}

.voice .container .voice02 div h4 {
	margin-block-start: min(1.41%, 7px);
	font-size: var(--font-size34);
	line-height: var(--line-height13);
	font-weight: var(--font-weight-medium);
	letter-spacing: -0.03em;
}

.voice .container .voice02 div .voice_txt {
	margin-block-start: min(5.65%, 28px);
	font-size: var(--font-size18);
	line-height: var(--line-height18);
	letter-spacing: -0.03em;
}

.voice .container .voice02 div .voice_txt span {
	background-image: linear-gradient(transparent 70%, var(--color-mustardyellow) 30%);
	font-size: var(--font-size22);
	line-height: var(--line-height14);
}

.voice .container .voice03 {
	display: grid;
	grid-template-columns: min(51.35%, 572px) min(44.7%, 498px);
	justify-content: space-between;
	inline-size: min(71.25%, 1140px);
	margin-block-start: min(3.32%, 37px);
	margin-inline: auto;
	padding-inline: min(0.9%, 10px) min(1.47%, 16px);
}

.voice .container .voice03 div {
	margin-block-start: min(8.63%, 43px);
}

.voice .container .voice03 div .voice_customer {
	font-size: var(--font-size18);
	font-weight: var(--font-weight-medium);
}

.voice .container .voice03 div .voice_customer span {
	font-size: var(--font-size24);
}

.voice .container .voice03 div h4 {
	margin-block-start: min(1.41%, 7px);
	font-size: var(--font-size34);
	line-height: var(--line-height13);
	font-weight: var(--font-weight-medium);
	letter-spacing: -0.03em;
}

.voice .container .voice03 div .voice_txt {
	margin-block-start: min(5.65%, 28px);
	font-size: var(--font-size18);
	line-height: var(--line-height18);
	letter-spacing: -0.03em;
}

.voice .container .voice03 div .voice_txt span {
	background-image: linear-gradient(transparent 70%, var(--color-perfume) 30%);
	font-size: var(--font-size22);
	line-height: var(--line-height14);
}

.voice .container .message {
	inline-size: min(70%, 1120px);
	margin-block-start: min(51.79%, 58px);
	margin-inline: auto;
}

.voice .container .message h4 {
	position: relative;
	inline-size: min(83.39%, 934px);
	margin-block-end: max(-2.67vw, -43px);
	margin-inline-start: auto;
	z-index: 2;
}

.voice .container .message h4 img {
	inline-size: min(30.83%, 288px);
	margin-inline-start: min(29.12%, 272px);
}

.voice .container .message .message_wrap {
	position: relative;
	inline-size: min(83.39%, 934px);
	margin-inline-start: auto;
	padding-block-end: min(4.82%, 45px);
	background: url(../img/voice_msg_bg.svg) no-repeat left bottom;
	background-size: min(89.84%, 840px) auto;
}

.voice .container .message .message_wrap::after {
	content: '';
	position: absolute;
	inset-block-end: min(-5.14%, -48px);
	inset-inline-end: 0;
	display: block;
	inline-size: min(29.99%, 280px);
	aspect-ratio: 280 / 346;
	background: url(../img/voice_msg_adv.webp) no-repeat left top;
	background-size: 100% auto;
}

.voice .container .message .message_wrap div {
	inline-size: min(88.87%, 830px);
	min-block-size: min(30.12%, 250px);
	padding-block: min(8.43%, 70px) min(4.82%, 40px);
	padding-inline-start: min(7.22%, 60px);
	background: var(--color-white);
	border-radius: min(0.88vw, 14px);
}

.voice .container .message .message_wrap div p {
	padding-inline-end: min(13.86%, 115px);
	font-size: var(--font-size18);
	line-height: var(--line-height20);
	color: var(--color-darklava);
	font-weight: var(--font-weight-medium);
	letter-spacing: -0.03em;
}

.voice .container .message .message_wrap div p+p {
	padding-block-start: min(0.77%, 6px);
	padding-inline-end: min(29.87%, 230px);
	text-align: end;
}

.voice .container .message .message_wrap div p+p span {
	font-size: var(--font-size16);
}

.voice .container .slide {
	margin-block-start: min(7.12%, 114px);
}

.voice .container .slide .swiper-container {
	overflow: hidden;
}

.voice .container .slide .swiper-wrapper {
	display: grid;
	grid-template-columns: repeat(9, max-content);
	gap: 0 min(3.13%, 50px);
	transition-timing-function: linear;
}

.voice .container .slide .swiper-slide img {
	display: block;
	inline-size: auto;
	block-size: 31em;
}

@media (width <=800px) {
	.voice .title {
		padding-block-start: 43.5%;
	}

	.voice .title::before {
		block-size: 43.5vw;
		inline-size: 100%;
		margin-inline: 0;
		margin-block-start: -33.25vw;
		background: url(../img/voice_title_pic_sp.webp) no-repeat center bottom;
		background-size: 88% auto;
		transform: translate(-0.25%);
	}

	.voice .title h2 {
		padding-block-start: 43.5%;
		margin-block-start: -3%;
		padding: 7% 0;
		text-align: center;
	}

	.voice .title h2 img {
		inline-size: 88%;
	}

	.voice .container {
		padding-block-end: 20%;
		background-image: url(../img/voice_bg_sp.svg);
	}

	.voice .container h3 {
		inline-size: 100%;
		margin-block-start: -7%;
		margin-inline: 0;
	}

	.voice .container h3::before {
		inline-size: 77.25%;
		margin-block-end: 8.75vw;
		aspect-ratio: 309 / 52;
		background: url(../img/voice_writing_sp.svg) no-repeat right -1.25vw top;
		background-size: 100% auto;
	}

	.voice .container h3 img {
		inline-size: 88%;
	}

	.voice .container .voice01 {
		grid-template-columns: auto;
		justify-content: unset;
		inline-size: 88.5%;
		margin-block-start: 8.5vw;
		padding-inline: 0 0;
	}

	.voice .container .voice01 div {
		margin-block-start: 0.5%;
		margin-inline: 0.28%;
	}

	.voice .container .voice01 div .voice_customer {
		font-size: var(--font-size15);
	}

	.voice .container .voice01 div .voice_customer span {
		font-size: var(--font-size20);
	}

	.voice .container .voice01 div h4 {
		margin-block-start: 7px;
		font-size: var(--font-size25);
		line-height: var(--line-height14);
	}

	.voice .container .voice01 div .voice_txt {
		margin-block-start: min(5.65%, 28px);
		font-size: var(--font-size15);
		line-height: var(--line-height16);
	}

	.voice .container .voice01 div .voice_txt span {
		font-size: var(--font-size19);
		line-height: var(--line-height13);
	}

	.voice .container .voice02 {
		grid-template-columns: auto;
		justify-content: unset;
		inline-size: 88.5%;
		margin-block-start: 8.5vw;
		padding-inline: 0 0;
	}

	.voice .container .voice02 p {
		order: 1;
	}

	.voice .container .voice02 div {
		margin-block-start: 0.5%;
		margin-inline: 0.28%;
		order: 2;
	}

	.voice .container .voice02 div .voice_customer {
		font-size: var(--font-size15);
	}

	.voice .container .voice02 div .voice_customer span {
		font-size: var(--font-size20);
	}

	.voice .container .voice02 div h4 {
		margin-block-start: 7px;
		font-size: var(--font-size25);
		line-height: var(--line-height14);
	}

	.voice .container .voice02 div .voice_txt {
		margin-block-start: min(5.65%, 28px);
		font-size: var(--font-size15);
		line-height: var(--line-height16);
	}

	.voice .container .voice02 div .voice_txt span {
		font-size: var(--font-size19);
		line-height: var(--line-height13);
	}

	.voice .container .voice03 {
		grid-template-columns: auto;
		justify-content: unset;
		inline-size: 88.5%;
		margin-block-start: 7.25vw;
		padding-inline: 0 0;
	}

	.voice .container .voice03 div {
		margin-block-start: 0.5%;
		margin-inline: 0.56%;
	}

	.voice .container .voice03 div .voice_customer {
		font-size: var(--font-size15);
	}

	.voice .container .voice03 div .voice_customer span {
		font-size: var(--font-size20);
	}

	.voice .container .voice03 div h4 {
		margin-block-start: 7px;
		font-size: var(--font-size25);
		line-height: var(--line-height14);
	}

	.voice .container .voice03 div .voice_txt {
		margin-block-start: min(5.65%, 28px);
		font-size: var(--font-size15);
		line-height: var(--line-height16);
	}

	.voice .container .voice03 div .voice_txt span {
		font-size: var(--font-size19);
		line-height: var(--line-height13);
	}

	.voice .container .message {
		position: relative;
		inline-size: 88%;
		margin-block-start: 9%;
		margin-inline: auto;
		padding-block-end: 68vw;
	}

	.voice .container .message::after {
		content: '';
		position: absolute;
		inset-block-end: 0;
		inset-inline-start: calc(50% - 28vw);
		display: block;
		inline-size: 63.63%;
		aspect-ratio: 280 / 346;
		background: url(../img/voice_msg_adv.webp) no-repeat left top;
		background-size: 100% auto;
	}

	.voice .container .message h4 {
		inline-size: 100%;
		margin-block-end: -7.1%;
		margin-inline-start: 0;
		text-align: center;
	}

	.voice .container .message h4 img {
		inline-size: 48.86%;
		margin-inline-start: 1.25%;
	}

	.voice .container .message .message_wrap {
		inline-size: 100%;
		margin-inline-start: 0;
		padding-block-end: 5.97%;
		padding-inline-end: 1.7%;
		background: url(../img/voice_msg_bg_sp.svg) no-repeat left bottom;
		background-size: 100% auto;
	}

	.voice .container .message .message_wrap::after {
		display: none;
	}

	.voice .container .message .message_wrap div {
		inline-size: auto;
		min-block-size: unset;
		padding-block: 12.69% 7.85%;
		padding-inline: 4.52%;
		border-radius: 0.75vw;
	}

	.voice .container .message .message_wrap div p {
		padding-inline: 1.66% 0;
		font-size: var(--font-size15);
		line-height: var(--line-height16);
	}

	.voice .container .message .message_wrap div p+p {
		padding-block-start: 1.99%;
		padding-inline-end: 0;
	}

	.voice .container .message .message_wrap div p+p span {
		font-size: var(--font-size13);
	}

	.voice .container .slide {
		margin-block-start: 12.5%;
	}

	.voice .container .slide .swiper-wrapper {
		gap: 0 7.5%;
	}

	.voice .container .slide .swiper-slide img {
		block-size: 13.2em;
	}
}

/*----------------------------------------
	partners
-----------------------------------------*/
.partners h2 {
	inline-size: min(62.88%, 1006px);
	margin-block-start: min(10.74%, 108px);
	margin-inline: auto;
	background-image: url(../img/partners_icon01.svg), url(../img/partners_writing.svg);
	background-repeat: no-repeat, no-repeat;
	background-position: right top, center bottom min(0.9375vw, 15px);
	background-size: min(12.72%, 128px) min(7.95vw, 80px), min(19.68%, 198px) min(2.125vw, 34px);
	font-size: var(--font-size38);
	line-height: var(--line-height13);
	font-weight: var(--font-weight-medium);
	letter-spacing: -0.03em;
	color: var(--color-green);
	text-align: center;
}

.partners h2>span {
	display: inline-block;
	padding-block: min(2.49%, 25px) min(6.46%, 65px);
	padding-inline: min(13.42%, 135px);
	background-image: url(../img/partners_title_lt.svg), url(../img/partners_title_rt.svg);
	background-repeat: no-repeat, no-repeat;
	background-position: left top, right top;
	background-size: min(5.625vw, 90px) min(11.88vw, 190px), min(5.625vw, 90px) min(11.88vw, 190px);
}

.partners h2 span span {
	font-size: var(--font-size39);
	font-family: var(--font-family-lato);
	font-weight: var(--font-weight-regular);
}

.partners>div {
	inline-size: min(62.88%, 1006px);
	margin-block-start: min(2.38%, 24px);
	margin-inline: auto;
	padding-block-end: min(0.4%, 4px);
	background: url(../img/partners_icon02.svg) no-repeat left bottom;
	background-size: min(15.11%, 152px) min(9.74vw, 98px);
	text-align: center;
}

.partners>div p {
	font-size: var(--font-size18);
	letter-spacing: -0.03em;
}

.partners>div p span {
	background-image: linear-gradient(transparent 70%, var(--color-androidgreen) 30%);
	font-size: var(--font-size20);
	font-weight: var(--font-weight-medium);
}

.partners>div p+p {
	margin-block-start: min(21.86%, 22px);
}

.partners>p {
	inline-size: min(58.13%, 930px);
	margin-block-start: min(6.13%, 57px);
	margin-inline: auto;
}

.partners .interview {
	inline-size: min(60%, 960px);
	margin-block-start: min(7.5%, 72px);
	margin-inline: auto;
}

.partners .interview h3 {
	inline-size: min(68.75%, 660px);
	margin-inline: auto;
}

.partners .interview .interview01 {
	inline-size: 100%;
	display: grid;
	grid-template-columns: min(43.75%, 420px) min(56.25%, 540px);
	margin-block-start: min(5.59%, 52px);
}

.partners .interview .interview01 .interview_person {
	background: var(--color-greensheen);
}

.partners .interview .interview01 .interview_person h4 {
	padding-block: min(6.66%, 28px);
	padding-inline: min(3.57%, 15px);
	font-size: var(--font-size28);
	font-weight: var(--font-weight-medium);
	line-height: var(--line-height13);
	letter-spacing: -0.03em;
	color: var(--color-white);
	text-align: center;
}

.partners .interview .interview01 .interview_content {
	padding-block: min(7.41%, 40px) min(3.7%, 20px);
	padding-inline: min(4.62%, 25px) min(2.77%, 15px);
	background: var(--color-honeydew);
}

.partners .interview .interview01 .interview_content h5 img {
	inline-size: min(10.94vw, 175px);
}

.partners .interview .interview01 .interview_content h5>span {
	display: block;
	margin-block-start: min(0.94vw, 15px);
	font-size: var(--font-size16);
	letter-spacing: -0.03em;
}

.partners .interview .interview01 .interview_content h5>span+span {
	margin-block-start: min(0.06vw, 1px);
	font-size: var(--font-size20);
	font-weight: var(--font-weight-medium);
}

.partners .interview .interview01 .interview_content h5>span+span span {
	font-size: var(--font-size14);
}

.partners .interview .interview01 .interview_content p {
	margin-block-start: min(1.06vw, 15px);
	font-size: var(--font-size18);
	line-height: var(--line-height18);
	letter-spacing: -0.03em;
}

.partners .interview .interview02 {
	inline-size: 100%;
	display: grid;
	grid-template-columns: min(56.25%, 540px) min(43.75%, 420px);
	margin-block-start: min(3.54%, 34px);
}

.partners .interview .interview02 .interview_person {
	background: var(--color-greensheen);
	order: 2;
}

.partners .interview .interview02 .interview_person h4 {
	padding-block: min(6.66%, 28px);
	padding-inline: min(3.57%, 15px);
	font-size: var(--font-size28);
	font-weight: var(--font-weight-medium);
	line-height: var(--line-height13);
	color: var(--color-white);
	text-align: center;
}

.partners .interview .interview02 .interview_content {
	padding-block: min(7.41%, 40px) min(3.7%, 20px);
	padding-inline: min(4.62%, 25px) min(2.77%, 15px);
	background: var(--color-honeydew);
	order: 1;
}

.partners .interview .interview02 .interview_content h5 img {
	inline-size: min(9.125vw, 146px);
}

.partners .interview .interview02 .interview_content h5>span {
	display: block;
	margin-block-start: min(0.75vw, 12px);
	font-size: var(--font-size20);
	font-weight: var(--font-weight-medium);
	letter-spacing: -0.03em;
}

.partners .interview .interview02 .interview_content h5>span span {
	font-size: var(--font-size14);
}

.partners .interview .interview02 .interview_content p {
	margin-block-start: min(1.06vw, 15px);
	font-size: var(--font-size18);
	line-height: var(--line-height18);
	letter-spacing: -0.03em;
}

@media (width <=800px) {
	.partners h2 {
		inline-size: 89%;
		margin-block-start: 3.25vw;
		padding-block-start: 13.75vw;
		background-position: right top, center bottom 2.25vw;
		background-size: 21.91% 12vw, 34.27% auto;
		font-size: var(--font-size22);
		line-height: var(--line-height12);
	}

	.partners h2>span {
		display: block;
		padding-block: 2.25% 11.24%;
		padding-inline: 0;
		background-size: 14% auto, 14% auto;
	}

	.partners h2 span span {
		font-size: var(--font-size23);
	}

	.partners>div {
		inline-size: 89%;
		margin-block-start: 3.25vw;
		padding-block-end: 18.25vw;
		background-size: 26.4% 14.5vw;
	}

	.partners>div p {
		font-size: var(--font-size15);
	}

	.partners>div p span {
		font-size: var(--font-size18);
	}

	.partners>div p+p {
		margin-block-start: 2vw;
	}

	.partners>p {
		inline-size: 88%;
		margin-block-start: 6.25vw;
	}

	.partners .interview {
		inline-size: 88%;
		margin-block-start: 7.5vw;
	}

	.partners .interview h3 {
		inline-size: 100%;
	}

	.partners .interview .interview01 {
		grid-template-columns: auto;
		margin-block-start: 7.5vw;
	}

	.partners .interview .interview01 .interview_person h4 {
		padding-block: 8.25vw;
		padding-inline: 1.25vw;
		font-size: var(--font-size20);
	}

	.partners .interview .interview01 .interview_content {
		padding-block: 7vw 6.25vw;
		padding-inline: 5vw;
	}

	.partners .interview .interview01 .interview_content h5 img {
		inline-size: 31.25vw;
	}

	.partners .interview .interview01 .interview_content h5>span {
		margin-block-start: 2.75vw;
		font-size: var(--font-size14);
	}

	.partners .interview .interview01 .interview_content h5>span+span {
		margin-block-start: 0.25vw;
		font-size: var(--font-size16);
	}

	.partners .interview .interview01 .interview_content h5>span+span span {
		font-size: var(--font-size12);
	}

	.partners .interview .interview01 .interview_content p {
		margin-block-start: 2.25vw;
		font-size: var(--font-size15);
		line-height: var(--line-height16);
	}

	.partners .interview .interview02 {
		grid-template-columns: auto;
		margin-block-start: 6.25vw;
	}

	.partners .interview .interview02 .interview_person {
		order: 1;
	}

	.partners .interview .interview02 .interview_person h4 {
		padding-block: 5vw;
		padding-inline: 2.5vw;
		font-size: var(--font-size20);
	}

	.partners .interview .interview02 .interview_content {
		padding-block: 7vw 6.25vw;
		padding-inline: 5vw;
		order: 2;
	}

	.partners .interview .interview02 .interview_content h5 img {
		inline-size: 26.25vw;
	}

	.partners .interview .interview02 .interview_content h5>span {
		margin-block-start: 2.75vw;
		font-size: var(--font-size16);
	}

	.partners .interview .interview02 .interview_content h5>span span {
		font-size: var(--font-size12);
	}

	.partners .interview .interview02 .interview_content p {
		margin-block-start: 2.25vw;
		font-size: var(--font-size15);
		line-height: var(--line-height16);
	}
}

/*----------------------------------------
	step
-----------------------------------------*/
.step {
	position: relative;
	margin-block-start: min(1.88%, 30px);
	padding-block-start: min(6.88%, 110px);
	padding-block-end: min(9.38%, 150px);
	background-image: url(../img/step_title_pic.webp), url(../img/step_bg.svg);
	background-repeat: no-repeat, no-repeat;
	background-position: left top, left top 6.88vw;
	background-size: 41.63vw 20.06vw, 100% auto;
}

.step::before {
	content: '';
	position: absolute;
	inset-block-start: min(18.75%, 300px);
	inset-inline-start: 0;
	display: block;
	inline-size: 100%;
	block-size: calc(100% - min(18.75%, 300px));
	background: var(--color-nyanza);
	z-index: -1;
}

.step h2 {
	inline-size: min(56.45%, 908px);
	padding-block-start: 9.58%;
	margin-inline: auto;
}

.step .flow_pc {
	display: flex;
	justify-content: space-between;
	inline-size: min(60%, 960px);
	padding-block-start: min(5.22%, 53px);
	margin-inline: auto;
}

.step .flow_pc .flow_lists {
	inline-size: min(38.54%, 370px);
	padding-inline-start: min(8.65%, 32px);
}

.step .flow_pc .flow_lists li {
	position: relative;
	display: grid;
	grid-template-columns: max-content auto;
	align-items: center;
	gap: 0 min(5.41%, 20px);
	color: var(--color-darkgray);
	cursor: pointer;
}

.step .flow_pc .flow_lists li+li {
	margin-block-start: min(10.27%, 38px);
}

.step .flow_pc .flow_lists li::before {
	content: '';
	position: absolute;
	inset-inline-start: min(-2vw, -32px);
	inset-block-start: calc(50% - min(1.89vw, 7px));
	display: block;
	inline-size: min(3.78vw, 14px);
	block-size: min(3.78vw, 14px);
	border-radius: 50%;
	background: var(--color-darkgray);
	z-index: 2;
}

.step .flow_pc .flow_lists li::after {
	content: '';
	position: absolute;
	inset-inline-start: min(-1.63vw, -26px);
	inset-block-start: 0;
	display: block;
	inline-size: 2px;
	block-size: calc(100% + min(10.27vw, 38px));
	background: var(--color-darkgray);
	z-index: 1;
}

.step .flow_pc .flow_lists li:first-of-type:after {
	inset-block-start: 50%;
	block-size: calc(50% + min(10.27vw, 38px));
}

.step .flow_pc .flow_lists li:last-of-type:after {
	inset-block-end: -50%;
	block-size: 50%;
}

.step .flow_pc .flow_lists li.active {
	color: var(--color-green);
}

.step .flow_pc .flow_lists li.active::before {
	background: var(--color-green);
}

.step .flow_pc .flow_lists li .flow_no {
	display: grid;
	grid-template-columns: 1fr;
	gap: min(0.27%, 1px) 0;
	font-family: var(--font-family-lato);
	line-height: var(--line-height10);
}

.step .flow_pc .flow_lists li .flow_no span {
	font-size: var(--font-size12);
	text-align: center;
}

.step .flow_pc .flow_lists li .flow_no span+span {
	font-size: var(--font-size23);
	font-weight: var(--font-weight-bold);
}

.step .flow_pc .flow_lists li .flow_title {
	font-size: var(--font-size20);
	font-weight: var(--font-weight-medium);
	line-height: var(--line-height12);
	letter-spacing: -0.03em;
}

.step .flow_pc .flow_contents {
	inline-size: min(56.25%, 540px);
	padding-block-start: min(5.56%, 30px);
}

.step .flow_pc .flow_contents .flow_content {
	display: none;
	position: relative;
	padding-block: min(5.56%, 30px);
	padding-inline: min(5.56%, 30px);
	background: var(--color-white);
	border-radius: 16px;
	filter: drop-shadow(0 5px 5px rgba(0, 0, 0, 0.05));
}

.step .flow_pc .flow_contents .flow_content.active {
	display: block;
}

.step .flow_pc .flow_contents .flow_content .flow_photo .flow_no {
	position: absolute;
	inset-block-start: min(-3.4%, -20px);
	inset-inline-start: min(-3.7%, -20px);
	display: block;
	inline-size: min(16.66%, 90px);
}

.step .flow_pc .flow_contents .flow_content .flow_txt {
	margin-block-start: 16px;
}

.step .flow_pc .flow_contents .flow_content .flow_txt dt {
	font-size: var(--font-size24);
	font-weight: var(--font-weight-medium);
	color: var(--color-green);
	text-align: center;
	letter-spacing: -0.03em;
}

.step .flow_pc .flow_contents .flow_content .flow_txt dd {
	margin-block-start: min(3%, 14px);
}

.step .flow_sp {
	display: none;
}

@media (width <=1180px) {
	.step .flow_pc .flow_lists li .flow_title {
		font-size: var(--font-size19);
	}
}

@media (width <=800px) {
	.step {
		margin-block-start: 6.5%;
		padding-block-start: 30.5%;
		padding-block-end: 17.5%;
		background-image: url(../img/step_title_pic_sp.webp), url(../img/step_bg_sp.svg);
		background-repeat: no-repeat, no-repeat;
		background-position: left top, left top 30.5vw;
		background-size: 100% 55.25vw, 100% auto;
	}

	.step::before {
		inset-block-start: 62.5vw;
		block-size: calc(100% - 62.5vw);
	}

	.step h2 {
		inline-size: 92%;
		padding-block-start: 20.75%;
	}

	.step .flow_pc {
		display: none;
	}

	.step .flow_sp {
		display: block;
		inline-size: 83%;
		margin-block-start: 15.06%;
		margin-inline: auto;
	}

	.step .flow_sp .flow_contents {
		padding-inline-start: 7.83%;
	}

	.step .flow_sp dl {
		position: relative;
	}

	.step .flow_sp dl::before {
		content: '';
		position: absolute;
		inset-inline-start: -5vw;
		inset-block-start: 0;
		display: block;
		inline-size: 2px;
		block-size: calc(100% + 7.51vw);
		background: var(--color-darkgray);
		z-index: 1;
	}

	.step .flow_sp dl:first-of-type:before {
		inset-block-start: 1em;
		block-size: calc(100% + (7.51vw - 1em));
	}

	.step .flow_sp dl:nth-last-child(2):before {
		inset-block-start: 0;
		inset-inline-end: -1em;
		block-size: calc(100% + (7.51vw + 1em));
	}

	.step .flow_sp dl:last-of-type:before {
		display: none;
	}

	.step .flow_sp dl dt {
		position: relative;
		display: grid;
		grid-template-columns: max-content auto;
		align-items: center;
		gap: 0 5.42%;
		color: var(--color-darkgray);
		cursor: pointer;
	}

	.step .flow_sp dl dt::before {
		content: '';
		position: absolute;
		inset-inline-start: -8.16%;
		inset-block-start: calc(50% - 1.625vw);
		display: block;
		inline-size: 4.24%;
		block-size: 3.25vw;
		border-radius: 50%;
		background: var(--color-darkgray);
		z-index: 2;
	}

	.step .flow_sp dl.active dt::before {
		background: var(--color-green);
	}

	.step .flow_sp dl dt::after {
		content: '';
		position: absolute;
		inset-block-start: calc(50% - 1.31%);
		inset-inline-end: 0;
		display: block;
		block-size: 2.61vw;
		inline-size: 4.56%;
		background: url(../img/arrow_down.svg) no-repeat right center;
		background-size: 100% auto;
	}

	.step .flow_sp dl:not(:first-of-type) {
		margin-block-start: 14.05%;
	}

	.step .flow_sp dl.active dt {
		color: var(--color-green);
	}

	.step .flow_sp dl.active dt::after {
		background-image: url(../img/arrow_up.svg);
	}

	.step .flow_sp dl dt .flow_no {
		display: grid;
		grid-template-columns: 1fr;
		gap: 1px 0;
		font-family: var(--font-family-lato);
		line-height: var(--line-height10);
	}

	.step .flow_sp dl dt .flow_no span {
		font-size: var(--font-size12);
		text-align: center;
	}

	.step .flow_sp dl dt .flow_no span+span {
		font-size: var(--font-size20);
		font-weight: var(--font-weight-bold);
	}

	.step .flow_sp dl dt .flow_title {
		padding-inline-end: 6.54%;
		font-size: var(--font-size18);
		font-weight: var(--font-weight-medium);
		line-height: var(--line-height12);
		letter-spacing: -0.05em;
	}

	.step .flow_sp dl dd {
		margin-block: 8.82% -6.54%;
		max-block-size: 0;
		overflow: hidden;
		opacity: 0;
		transition: max-block-size 0.3s ease, opacity 0.3s ease, margin 0.3s ease;
	}

	.step .flow_sp dl.no-transition dd {
		transition: none;
	}

	.step .flow_sp dl.active dd {
		max-block-size: 2000px;
		opacity: 1;
	}

	.step .flow_sp dl dd .flow_txt {
		margin-block-start: 5.22%;
		font-weight: var(--font-weight-medium);
	}

	.step .flow_sp dl dd .flow_btn {
		margin-block-start: 6.54%;
		padding-block: 3.59%;
		background: var(--color-white);
		text-align: center;
		font-size: var(--font-size16);
		font-family: var(--font-family-lato);
		font-weight: var(--font-weight-bold);
		line-height: var(--line-height10);
		border-radius: 0.65%;
		color: var(--color-green);
		cursor: pointer;
	}

	.step .flow_sp dl dd .flow_btn span {
		position: relative;
		padding-inline-end: 7.18%;
	}

	.step .flow_sp dl dd .flow_btn span::after {
		content: '';
		position: absolute;
		inset-block-start: calc(50% - 1vw);
		inset-inline-end: 0;
		display: block;
		block-size: 2.61vw;
		inline-size: 3.5vw;
		background: url(../img/step_arrow.svg) no-repeat right center;
		background-size: 100% auto;
	}
}

/*----------------------------------------
	shop
-----------------------------------------*/
.shop h2 {
	position: relative;
	margin-block-start: min(5%, 80px);
	text-align: center;
}

.shop h2::before {
	content: '';
	position: absolute;
	inset-block-end: 0;
	inset-inline-start: 0;
	display: block;
	inline-size: 100%;
	block-size: min(8.75vw, 140px);
	background: var(--color-nyanza);
	z-index: -1;
}

.shop h2 img {
	inline-size: min(70.63%, 1130px);
	transform: translate(min(3.19%, -36px));
}

.shop .container {
	background: var(--color-honeydew);
	padding-block-end: min(6.06%, 97px);
}

.shop .container h3 {
	inline-size: min(56.88%, 910px);
	padding-block-start: min(57.14%, 52px);
	margin-inline: auto;
}

.shop .container p {
	inline-size: min(77.13%, 1234px);
	margin-block-start: min(38.9%, 48px);
	margin-inline: auto;
	transform: translate(min(-2.43%, -30px));
}

@media (width <=800px) {
	.shop h2 {
		position: relative;
		margin-block-start: 15%;
		padding-block-end: 46.5%;
	}

	.shop h2::before {
		block-size: 33.75vw;
	}

	.shop h2::after {
		content: '';
		position: absolute;
		inset-block-end: 0;
		inset-inline-start: 0;
		display: block;
		inline-size: 88%;
		block-size: 42.5vw;
		aspect-ratio: 352 / 36;
		background: url(../img/shop_title_pic_sp.webp) no-repeat left bottom;
		background-size: 100% auto;
		transform: translate(24px);
	}

	.shop h2 img {
		inline-size: 88%;
		transform: unset;
	}

	.shop .container {
		padding-block-end: 14.5%;
	}

	.shop .container h3 {
		inline-size: 88%;
		padding-block-start: 7.5%;
	}

	.shop .container p {
		inline-size: 88%;
		margin-block-start: 4.75%;
		transform: unset;
	}
}

/*----------------------------------------
	faq
-----------------------------------------*/
.faq {
	margin-block-start: min(7.63%, 122px);
}

.faq h2 {
	inline-size: min(21.38%, 324px);
	margin-block-end: min(18.83%, 61px);
	margin-inline: auto;
}

.faq .faq_accordion {
	inline-size: min(70%, 1120px);
	margin-inline: auto;
	background: url(../img/faq_line.svg) no-repeat left bottom;
	background-size: 100% auto;
}

_::-webkit-full-page-media, _:future, :root .faq .faq_accordion {
	background-size: 1120px auto;
}

.faq .faq_accordion:first-of-type {
	background-image: url(../img/faq_line.svg), url(../img/faq_line.svg);
	background-repeat: no-repeat, no-repeat;
	background-position: left top, left bottom;
	background-size: 100% auto, 100% auto;
}

_::-webkit-full-page-media, _:future, :root .faq .faq_accordion:first-of-type {
	background-size: 1120px auto, 1120px auto;
}

.faq .faq_accordion dt {
	position: relative;
	inline-size: 100%;
	padding-block: min(3.04%, 34px);
	padding-inline: min(21.43%, 24px);
	cursor: pointer;
}

.faq .faq_accordion dt::after {
	content: '';
	position: absolute;
	inset-block-start: 50%;
	inset-inline-end: min(1.96%, 22px);
	transform: translateY(-50%);
	display: block;
	inline-size: min(1.875vw, 30px);
	block-size: min(1.875vw, 30px);
	background: url(../img/faq_icon_open.svg) no-repeat left top;
	background-size: 100% auto;
}

.faq .faq_accordion.active dt::after {
	background: url(../img/faq_icon_close.svg) no-repeat left top;
	background-size: 100% auto;
	transition: all 0.3s cubic-bezier(0.45, 0, 0.55, 1);
}

.faq .faq_accordion dt img {
	inline-size: auto;
	block-size: min(6.61vw, 74px);
}

.faq .faq_accordion dd div {
	margin-block-end: min(2.86%, 32px);
	margin-inline: min(2.14%, 24px);
	padding-block: min(1.96%, 22px);
	padding-inline: min(1.96%, 30px);
	background: var(--color-honeydew);
	font-weight: var(--font-weight-medium);
	border-radius: min(2.68%, 18px);
}

.faq .faq_accordion dd {
	max-height: 0;
	overflow: hidden;
	transition: all 0.3s cubic-bezier(0.45, 0, 0.55, 1);
}

.faq .faq_accordion.active dd {
	max-height: auto;
}

.faq .faq_accordion dd p+p {
	margin-block-start: min(1.96%, 28px);
}

@media (width <=800px) {
	.faq {
		margin-block-start: 20.25%;
	}

	.faq h2 {
		inline-size: 50%;
		margin-block-end: 12%;
	}

	.faq .faq_accordion {
		inline-size: 88%;
		background: url(../img/faq_line_sp.svg) no-repeat left bottom;
		background-size: 100% auto;
	}

	_::-webkit-full-page-media, _:future, :root .faq .faq_accordion {
		background-size: 100% auto;
	}

	.faq .faq_accordion:first-of-type {
		background-image: url(../img/faq_line_sp.svg), url(../img/faq_line_sp.svg);
		background-repeat: no-repeat, no-repeat;
		background-position: left top, left bottom;
		background-size: 100% auto, 100% auto;
	}

	_::-webkit-full-page-media, _:future, :root .faq .faq_accordion:first-of-type {
		background-size: 100% auto, 100% auto;
	}

	.faq .faq_accordion dt {
		padding-block: 4.75vw;
		padding-inline: 0;
	}

	.faq .faq_accordion dt::after {
		inset-inline-end: 0.25%;
		inline-size: 4.5vw;
		block-size: 4.5vw;
	}

	.faq .faq_accordion dt img {
		block-size: 11vw;
	}

	.faq .faq_accordion dd div {
		margin-block-end: 1.8vw;
		margin-inline: 0;
		padding-block: 3.5vw;
		padding-inline: 5%;
		border-radius: 3%;
	}

	.faq .faq_accordion dd p+p {
		margin-block-start: 7vw;
	}
}

/*----------------------------------------
	footer
-----------------------------------------*/
footer {
	margin-block-start: min(4.5%, 72px);
	padding-block-end: min(3.75%, 60px);
}

footer .footer_txt {
	padding-block-start: 4.5vw;
	block-size: 31.5vw;
	background: url(../img/footer_bg.svg) no-repeat left top;
	background-size: cover;
	text-align: center;
}

footer .footer_txt img {
	inline-size: 58.5%;
	block-size: 27vw;
	aspect-ratio: 936 / 432;
	transform: translate(1.19vw);
}

footer .footer_link {
	padding-block: min(2.44%, 39px) min(3.75%, 60px);
	background: var(--color-nyanza);
}

footer .footer_link p {
	inline-size: min(71.75%, 1148px);
	margin-inline: auto;
}

footer .footer_link p:not(.btn) img {
	transform: translate(min(-2.88vw, -46px));
}

footer .footer_link .btn {
	margin-block-start: min(1.69%, 27px);
	inline-size: min(50%, 600px);
	margin-inline: auto;
	filter: drop-shadow(0 10px 5px rgba(0, 0, 0, 0.1));
}

@media (hover: hover) and (width >=800px) {
	footer .footer_link .btn:hover {
		background: url(../img/ctaButtn02_hover.webp) no-repeat left top;
		background-size: 100% auto;
	}

	footer .footer_link .btn:hover a {
		opacity: 0;
		transition: opacity 0.2s cubic-bezier(0.45, 0, 0.55, 1);
	}
}

footer .footer_copy {
	margin-block-start: 42px;
}

footer .footer_copy p {
	inline-size: min(15.38%, 246px);
	margin-inline: auto;
}

footer .footer_copy p.copyright {
	inline-size: auto;
	margin-block-start: 20px;
	margin-inline: 0;
	font-size: var(--font-size12);
	line-height: var(--line-height10);
	color: var(--color-darklava);
	font-weight: var(--font-weight-medium);
	text-align: center;
}

@media (width <=800px) {
	footer {
		margin-block-start: 15%;
		padding-block-end: 15%;
	}

	footer .footer_txt {
		padding-block-start: 0;
		block-size: unset;
		background: url(../img/footer_bg_sp.svg) no-repeat center bottom;
		background-size: 100% auto;
	}

	footer .footer_txt img {
		inline-size: 88%;
		block-size: auto;
		aspect-ratio: 0;
		transform: translate(0);
	}

	footer .footer_link {
		padding-block: 6% 10%;
	}

	footer .footer_link p {
		inline-size: 88%;
	}

	footer .footer_link p:not(.btn) img {
		transform: translate(0);
	}

	footer .footer_link .btn {
		margin-block-start: 7.5%;
		inline-size: 88%;
	}

	footer .footer_copy {
		margin-block-start: 7.75%;
	}

	footer .footer_copy p {
		inline-size: 46.5%;
	}

	footer .footer_copy p.copyright {
		margin-block-start: 5%;
	}
}

/*----------------------------------------
		floating
-----------------------------------------*/
.floating {
	position: fixed;
	inset-block-start: min(6.25%, 100px);
	inset-inline-end: 0;
	inline-size: min(10.38%, 166px);
	z-index: 100;
	opacity: 0;
	visibility: hidden;
	transform: translateX(100%);
	transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
	pointer-events: none;
}

.floating.show {
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
}

.floating.unfixed {
	opacity: 0;
	visibility: hidden;
	transform: translateX(100%);
}

.floating img {
	display: block;
	pointer-events: auto;
}

.floating a {
	display: block;
}

@media (width <=800px) {
	.floating {
		inset-block-start: unset;
		inset-block-end: 0;
		inset-inline-end: unset;
		inline-size: 100%;
		transform: translateY(100%);
	}

	.floating.show {
		transform: translateY(0);
	}

	.floating.unfixed {
		opacity: 0;
		visibility: hidden;
		transform: translateY(100%);
	}
}