@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap');

/* ------------------------------------------- base */
:root {
	/* Layout */
	--inner-width: 580px;

	@media (min-width:1025px) {
		--inner-width: 1100px;
	}

	/* Components */
	--text-xl: clamp(1.375rem, 1.15rem + 1.125vw, 2.5rem);
	--text-l: clamp(1rem, 0.9rem + 0.5vw, 1.5rem);
	--radius-base: 10px;
	--border-base: 2px solid #e3e5ee;
	--ls-sm: 0.05rem;
	--ls-md: 0.1rem;
	/* Z-index layers */
	--z-decoration: 5;
	--z-content: 10;
	/* Colors */
	--color-primary: #2fa543;
	--color-secondary: #00a6b4;
	--color-text: #111;
	--color-accent: #e60012;
	--color-footer: #3bab3b;
	--bg-light-green: #f0fbf5;
	--bg-light-gray: #f8f8f8;
}

html {
	scroll-behavior: smooth;
	overflow-x: hidden;
}

body {
	padding: 0;
	margin: 0;
	overflow-x: hidden;
	font-size: 14px;
	color: var(--color-text);
	font-family: "Helvetica Neue",
		Arial,
		"Hiragino Kaku Gothic ProN",
		"Hiragino Sans",
		"Noto Sans JP",
		sans-serif;

	@media (min-width:769px) {
		font-size: 16px;
	}

}

h1,
h2,
h3,
h4,
h5,
h6 {
	letter-spacing: var(--ls-md);
	font-weight: 600;
	line-height: 1.4;
	margin: 0;
	word-break: auto-phrase;
	overflow-wrap: anywhere;
}

p {
	line-height: 1.8;
	margin: 0;

	&:not(:last-child) {
		margin-bottom: 1em;
	}
}

.pc {
	display: none;

	@media (min-width:1025px) {
		display: block;
	}
}

.sp {
	display: block;

	@media (min-width:1025px) {
		display: none;
	}
}

/* ------------------------------------------- section */
.inner {
	width: 90%;
	max-width: var(--inner-width);
	margin-inline: auto;
	padding: 0;

	@media (min-width: 1281px) {
		width: 100%;
	}
}

/* ------------------------------------------- header */
.header {
	width: 100%;
	height: 100px;
	background: #fff;
	z-index: 100;

	.inner {
		height: 100%;
		display: flex;
		justify-content: space-between;
		align-items: center;

		@media (min-width: 1281px) {
			padding: 0 50px;
			margin-inline: 0;
		}
	}

	.logo {
		margin: auto;

		@media (min-width: 1281px) {
			margin: 0;
		}

		img {
			height: 75px;
		}
	}
}

.u-hover-up {
	transition: transform .3s ease, box-shadow .3s ease, opacity .3s ease, background-color .2s, border-color .2s, color .2s;
	will-change: transform;

	&:hover {
		transform: translateY(-3px);
	}
}


/* ------------------------------------------- mainvisual */
.mv {
	--mv-h: clamp(500px, 60vw, 720px);
	--header-h: 0px;
	--draw-h: calc(var(--mv-h) - var(--header-h));
	--line-ratio: 0.55;
	--line-anchor: calc((100% * var(--line-ratio)) + (var(--draw-h) / 2));
	position: relative;
	overflow: visible;
	height: calc(var(--mv-h) + 200px);

	@media (min-width: 1281px) {
		height: var(--mv-h);
	}

	.mv__bg-left {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 60%;
		z-index: 200;
		background: linear-gradient(90deg, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0) 0),
			url('../../images/mv_bg_left.jpg') center/cover no-repeat;
		clip-path: polygon(0 0, 100% 0, 100% 70%, 0% 100%);

		@media (min-width: 1281px) {
			height: var(--draw-h);
			clip-path: polygon(0 0, var(--line-anchor) 0, calc(var(--line-anchor) - var(--draw-h)) 100%, 0 100%);
		}
    @media (max-width: 768px) {
      background: url('../../images/mv_bg_left_sp.jpg') left top no-repeat;
      background-size: cover;
    }
	}

	.mv__bg-right {
		position: relative;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		z-index: 205;
		background: linear-gradient(0deg, rgba(79, 249, 169, 0.6), rgba(79, 249, 169, 0.6)),
			url('../../images/mv_bg_right.jpg') center/cover no-repeat;
		background-blend-mode: multiply;
		clip-path: polygon(0 60%, 100% 30%, 100% 100%, 0 100%);

		@media (min-width: 769px) {
			position: absolute;
		}

		@media (min-width: 1281px) {
			top: -55px;
			left: auto;
			right: 0;
			height: calc(var(--draw-h) + 120px);
			transform: translate(175px, -120px);
			clip-path: polygon(var(--line-anchor) 0, 150% 0, 150% 100%, calc(var(--line-anchor) - (var(--draw-h) + 120px)) 100%);
		}
	}

	.mv__inner {
		z-index: 220;
		display: flex;
		flex-direction: column;
		height: auto;
		padding: 40px 20px 0 20px;
		align-items: flex-start;
		pointer-events: none;
		max-width: var(--inner-width);
		top: 0;
		left: 0;
		right: 0;
		position: absolute;
		margin-inline: auto;

		@media (min-width: 769px) {
			position: relative;
			margin-inline: 0;
		}

		@media (min-width: 1281px) {
			flex-direction: row;
			height: var(--draw-h);
			padding: 0 50px;
			align-items: center;
		}
	}

	.mv__copy {
		width: 100%;
		color: #fff;
		pointer-events: auto;

		@media (min-width: 1281px) {
			width: fit-content;
			margin-top: -120px;
		}
	}

	.mv__catch-main {
		font-size: clamp(1.75rem, 1.4125rem + 1.6875vw, 3.4375rem);
    
		line-height: 1.3;
		margin: 0;
		display: flex;
		flex-direction: column;
		width: fit-content;
    @media (max-width: 768px) {
      font-size: clamp(1.5rem, 1.3rem + 1.3vw, 3rem);
    }

		span {
			display: flex;
			width: fit-content;
			background: rgba(47, 165, 67, 1);
			padding: 15px 35px 0 0;
			border-radius: 0 15px 0 0;
			position: relative;
			box-decoration-break: clone;
			-webkit-box-decoration-break: clone;
			margin: 0 0 -1px 0px;
       @media (max-width: 768px) {
        padding: 10px 20px 0 0;
      }

			&::before {
				content: "";
				position: absolute;
				top: 0;
				right: 100%;
				width: 100vw;
				height: 100%;
				background: rgba(47, 165, 67, 1);
			}

			&:last-child {
				padding: 10px 25px 0 0;
        @media (max-width: 768px) {
          padding: 8px 20px 0 0;
        }
			}
		}
	}

	.mv__lead {
		position: relative;
		background: rgba(47, 165, 67, 1);
		padding: 15px 12px 15px 0;
		border-radius: 0 15px 15px 0;
		font-weight: 600;
		width: fit-content;
    @media (max-width: 768px) {
      padding: 15px 15px 15px 0;
    }

		&::before {
			content: "";
			position: absolute;
			top: 0;
			right: 100%;
			width: 100vw;
			height: 100%;
			background: rgba(47, 165, 67, 1);
		}

		p {
			/*font-size: clamp(0.9375rem, 0.85rem + 0.4375vw, 1.375rem);*/
      font-size: clamp(0.8rem, 0.8rem + 0.3vw, 1.2rem);
			font-weight: 600;
			margin: 0;
			letter-spacing: var(--ls-md);
			line-height: 1.5;

			br {
				&.sp {
					display: block;

					@media (min-width:600px) {
						display: none;
					}
				}
			}
		}
	}

	.mv__cta {
		display: flex;
		flex-direction: column;
		align-items: center;
		position: relative;
		margin-top: 30px;
		margin-bottom: 40px;
		width: 100%;
		max-width: 500px;

		@media (min-width: 1281px) {
			align-items: flex-start;
			margin-top: 40px;
			margin-bottom: 0;
		}
	}

	.mv__badges {
		position: absolute;
		left: auto;
		right: -2em;
		bottom: 40px;
		width: 100%;
		display: flex;
		justify-content: center;
		flex-direction: row;
		height: auto;
		z-index: 210;

		@media (min-width:769px) {
			justify-content: flex-end;
		}

		@media (min-width: 1281px) {
			bottom: 45px;
			left: calc(4vw - 2px);
			right: auto;
			justify-content: center;
			/*	left: var(--line-anchor);
			bottom: 40px;
			margin-left: calc((var(--draw-h) - 40px) * -1 + 213px);
			width: 0;
			height: 0;
			transform: translate(175px, -120px);*/
		}
	}

	.diamond {
		position: relative;
		inset: auto;
		background: var(--color-primary);
		transform: rotate(45deg);
		border: 1px solid rgba(255, 255, 255, 0.5);
		/*flex: 0 0 clamp(100px, 15vw, 280px);*/
		/*width: clamp(100px, 15vw, 280px);
		height: clamp(100px, 15vw, 280px);*/
		width: 120px;
		height: 120px;

		@media (min-width: 769px) {
			width: 160px;
			height: 160px;
		}

		@media (min-width: 1281px) {
			width: 190px;
			height: 190px;
		}


		&::before {
			content: "";
			position: absolute;
			right: 0;
			margin: 0 auto;
			top: 10px;
			background: rgba(255, 255, 255, 0.35);
			width: 1px;
			transform: rotate(-45deg) translate3d(6px, 3px, 0);
			left: calc(-170px / 2);
			height: 30px;
			z-index: -1;

			@media (min-width: 769px) {
				left: calc(-220px / 2);
				height: 50px;
				transform: rotate(-45deg) translate3d(8px, -2px, 0);
			}

			@media (min-width: 1281px) {
				left: calc(-270px / 2);
				height: 60px;
				transform: rotate(-45deg) translate3d(10px, -2px, 0);
			}
		}

		&::after {
			content: "";
			position: absolute;
			inset: 10px;
			border: 2px solid rgba(255, 255, 255, 0.35);
		}

		&.diamond--left {
			/*background: #44aa44;*/
      background: #66bc66;
			order: 1;
      position: relative;

			@media (min-width: 1281px) {}
		}

		&.diamond--top {
			/*background: #309630;*/
      background: #58be58;
			order: 2;
			top: -85px;
			left: -36px;
      position: relative;

			@media (min-width: 769px) {
				top: -113px;
				left: -47px;
			}

			@media (min-width: 1281px) {
				top: -133px;
				left: -57px;
			}
		}

		&.diamond--right {
			/*background: #58be58;*/
      background: #75c675;
			order: 3;
			left: -72px;
      position: relative;

			@media (min-width: 769px) {
				left: -95px;
			}

			@media (min-width: 1281px) {
				left: -113px;
			}

			.diamond__text {
				letter-spacing: normal;

				>span {
					font-size: 0.66em;
				}
			}
		}
    
		.diamond__in {
			transform: rotate(-45deg);
			color: #fff;
			height: 100%;
			width: 100%;
			display: flex;
			flex-direction: column;
			justify-content: center;
			align-items: center;
			text-align: center;
		}

		.diamond__text {
			font-size: clamp(0.875rem, 0.6rem + 0.875vw, 1.75rem);
			font-weight: 500;
			line-height: 1.3;
			display: flex;
			align-items: center;
			justify-content: center;
			flex-direction: column;
			letter-spacing: 0.1rem;
			margin-top: -1em;
			z-index: 1;
			white-space: nowrap;

			@media (min-width: 1281px) {}

			>span {
				font-size: 0.85em;
				display: block;
			}
		}


		.diamond__icon {
			margin-top: auto;
			width: clamp(24px, 3vw + 10px, 40px);
			height: auto;
			flex-shrink: 0;
			position: absolute;
			bottom: 10px;


			@media (min-width: 1281px) {
				margin-top: auto;
				bottom: 20px;
			}
		}
	}


	.promo-note {
		margin: 0 auto -4px auto;
		display: inline-flex;
		background: #fff;
		border-radius: 10em;
		padding: 0.5em 1.5em;
		font-size: clamp(0.75rem, 0.7125rem + 0.1875vw, 0.9375rem);
		font-weight: 600;
		color: #d40000;
		position: relative;
		z-index: 10;
		box-shadow: 0 10px 25px rgba(0, 0, 0, .18);
		animation: floatBubble 2.6s ease-in-out infinite;
		letter-spacing: 0.03rem;

		&::after {
			content: "";
			position: absolute;
			left: 50%;
			bottom: -9px;
			transform: translateX(-50%);
			border-style: solid;
			border-width: 10px 10px 0 10px;
			border-color: #fff transparent transparent transparent;
		}
	}

	.mvbtn {
		width: 100%;
		max-width: 340px;
		border-radius: var(--radius-base);
		display: flex;
		align-items: center;
		padding: 1em;
		text-decoration: none;
		color: #fff;
		font-weight: 600;
		position: relative;
		background: var(--color-accent);
		transition: .2s;


		@media (min-width: 1281px) {
			max-width: 500px;
		}

		.mvbtn__icon {
			width: clamp(40px, 5vw + 20px, 54px);
			height: clamp(40px, 5vw + 20px, 54px);
			background: #fff;
			border-radius: 50%;
			display: flex;
			align-items: center;
			justify-content: center;
			color: var(--color-accent);
			flex-shrink: 0;
			z-index: 2;
			margin-right: 0px;
			padding: 0.5em;

			img {
				width: 32px;
				height: auto;
			}
		}

		.mvbtn__text {
			line-height: 1.4;
			text-align: center;
			z-index: 1;
			letter-spacing: 0.03rem;
			font-weight: 600;
			margin: auto;
			width: 100%;
			font-size: clamp(1rem, 0.925rem + 0.375vw, 1.375rem);
		}

		.mvbtn__arrow {
			margin-left: auto;
			margin-right: -5px;
			display: flex;
			align-items: center;
			z-index: 2;
		}

	}
}

/* -------------------------------------------
   ANIMATIONS
------------------------------------------- */
.mv__bg-left {
	animation: ani-sp-cut-left 1.2s cubic-bezier(0.22, 1, 0.36, 1) forwards;

	@media (min-width: 1281px) {
		animation: ani-cut-left-diag 1.2s cubic-bezier(0.22, 1, 0.36, 1) forwards;
	}
}

.mv__bg-right {
	animation: ani-sp-cut-right 1.2s cubic-bezier(0.22, 1, 0.36, 1) forwards;

	@media (min-width: 1281px) {
		animation: ani-cut-right-pc 1.2s cubic-bezier(0.22, 1, 0.36, 1) forwards;
	}
}

.mv__badges {
	opacity: 0;
	animation: ani-fade-only 0.8s ease-out 0.8s forwards;
}

.mv__copy {
	opacity: 0;
	animation: ani-fade-up 0.8s ease-out 0.6s forwards;
}

.mv__badges {
	opacity: 0;
	animation: ani-fade-up 0.8s ease-out 0.6s forwards;
	/*animation: ani-fade-up-badges 0.8s ease-out 0.6s forwards;*/
}

/* Keyframes Definitions */
@keyframes ani-cut-left-diag {
	0% {
		transform: translate(-100px, 100px);
		opacity: 0;
	}

	100% {
		transform: translate(0, 0);
		opacity: 1;
	}
}

@keyframes ani-cut-right-pc {
	0% {
		transform: translate(350px, -250px);
		opacity: 0;
	}

	100% {
		transform: translate(175px, -120px);
		opacity: 1;
	}
}

@keyframes ani-sp-cut-left {
	0% {
		transform: translateX(-100px);
		opacity: 0;
	}

	100% {
		transform: translateX(0);
		opacity: 1;
	}
}

@keyframes ani-sp-cut-right {
	0% {
		transform: translateX(100px);
		opacity: 0;
	}

	100% {
		transform: translateX(0);
		opacity: 1;
	}
}

@keyframes ani-fade-up {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}

	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes ani-fade-up-badges {
	0% {
		opacity: 0;
		transform: translate(175px, -100px);
	}

	100% {
		opacity: 1;
		transform: translate(175px, -120px);
	}
}

@keyframes ani-fade-only {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

/* =====================================
   Section Title Component
===================================== */
.c-section-title {
	position: relative;
	text-align: center;
	font-size: var(--text-xl);
	margin-bottom: 2em;
	z-index: var(--z-decoration);
	letter-spacing: 0.15rem;
}


/* 背景英語 */
.c-section-title__bg {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-size: clamp(60px, 12vw, 140px);
	font-weight: 600;
	letter-spacing: normal;
	color: rgba(0 190 90 / 0.15);
	white-space: nowrap;
	pointer-events: none;
	z-index: -1;
	font-family: "Oswald", sans-serif;
	line-height: 1;

	@media (min-width: 1281px) {
		top: 30%;
	}
}

.c-section-title__accent {
	color: var(--color-primary);
}

/* =====================================
   Section Button Component
===================================== */
.c-btn-more-container {
	text-align: center;
	margin-top: 40px;
	padding: 0 0px;
}

/* aタグ本体 */
.c-btn-more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 90%;
	max-width: 360px;
	padding: 18px 20px;
	background-color: #1a1a1a;
	color: #ffffff;
	text-decoration: none;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 600;
	transition: background-color 0.3s ease, opacity 0.3s ease;

	/* 右側のV字アイコン */
	&::after {
		content: "";
		position: absolute;
		right: 20px;
		top: 50%;
		width: 8px;
		height: 8px;
		border-right: 2px solid #ffffff;
		border-bottom: 2px solid #ffffff;
		transform: translateY(-70%) rotate(45deg);
		/* V字の向き */
		transition: transform 0.3s ease;
	}

	&:hover {
		background-color: #333333;
		opacity: 0.9;
	}

}

.c-btn-more__text {
	letter-spacing: 0.05em;
}

/* =============================== */
.worries {
	padding: 5em 0 0;
	position: relative;
	z-index: auto;

	@media (min-width:769px) {
		margin-top: 5em;
	}

	@media (min-width:1281px) {
		margin-top: 3em;
	}

	.worries__inner {
		max-width: var(--inner-width);
		margin-inline: auto;
		position: relative;
		z-index: var(--z-content);
	}

	.worries__content {
		display: flex;
		flex-direction: column;
		gap: 3em;

		@media (min-width: 1025px) {
			display: grid;
			align-items: center;
			grid-template-columns: clamp(200px, 40vw, 200px) 1fr;
			gap: 2em;
		}

		@media (min-width: 1281px) {
			grid-template-columns: clamp(300px, 40vw, 380px) 1fr;
			gap: clamp(20px, 4vw, 40px);
		}
	}

	.worries__slider {
		display: contents;
		position: relative;
		width: 100%;
		height: clamp(300px, 50vw, 540px);
		border-radius: 15px;
		overflow: hidden;
		box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
		background: #fff;
		display: block;
	}

	.worries__slides {
		position: relative;
		width: 100%;
		height: 100%;
		background: #fff;
		display: block;
	}

	.worries__slide {
		position: absolute;
		inset: 0;
		opacity: 0;
		visibility: visible;
		height: 100%;
		box-shadow: none;
		border-radius: 0;
		background: #fff;
		transition: opacity 0.8s ease;

		@media (min-width: 1281px) {}

		&:nth-child(1),
		&:nth-child(2),
		&:nth-child(3) {
			order: 0;
		}

		/*	&:nth-child(1) {
			order: 1;
		}

		&:nth-child(2) {
			order: 3;
		}

		&:nth-child(3) {
			order: 5;
		}*/
		&.is-active {
			opacity: 1;
			z-index: 2;
		}

		img {
			object-fit: cover;
			width: 100%;
			height: 100%;
		}
	}

	.worries__steps {
		display: flex;
		flex-direction: column;
		gap: clamp(20px, 2.5vw, 40px);
		margin-bottom: 0;
	}

	.worries__step {
		display: flex;
		gap: 1em;
		padding: 1em 1.3em;
		background: #fff;
		border-radius: var(--radius-base);
		border: var(--border-base);
		transition: all 0.4s ease;
		position: relative;
		z-index: 1;
		font-weight: 500;
		width: 100%;
		cursor: pointer;
		font-size: clamp(1rem, 0.925rem + 0.375vw, 1.375rem);

		@media (min-width: 1281px) {
			align-items: center;
		}

		&::before,
		&::after {
			content: "";
			position: absolute;
			width: 1em;
			height: 1em;
			transition: all 0.4s ease;
			clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
			right: 0;
			left: 0;
			bottom: auto;
			margin: auto;

			@media (min-width: 1025px) {
				height: 1.5em;
				right: auto;
				top: 0;
				bottom: 0;
				clip-path: polygon(0 50%, 100% 100%, 100% 0);
			}
		}

		&::before {
			background: #fff;
			z-index: 0;
			top: calc(-1em + 3px);

			@media (min-width: 1025px) {
				left: calc(-1em + 3px);
				top: 0;
			}
		}

		&::after {
			background: #e3e5ee;
			z-index: -1;
			top: -1em;

			@media (min-width: 1025px) {
				left: -1em;
				top: 0;
			}
		}

		&.is-active {
			background: #f2f9f4;
			position: relative;
			z-index: 2;

			@media (min-width: 1025px) {
				transform: translateX(10px);
			}

			&::before {
				background: #f2f9f4;
			}
		}

		.worries__num {
			font-weight: 600;
			color: var(--color-primary);
			transition: all 0.4s ease;
			display: inline-block;
			font-family: "Oswald", sans-serif;
		}

		p {
			line-height: 1.5;
		}
	}

}

/* ===============================
   Worry Diagonal Band
================================ */
.worry-band-wrap {
	width: 100%;
	padding: 0;
	position: absolute;
	z-index: var(--z-decoration);
	top: 0;
}

.worry-band {
	position: relative;
	width: 100%;
	min-height: 260px;
	margin: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	clip-path: polygon(0 8vw, 100% 0, 100% calc(100% - 8vw), 0 100%);
	color: #fff;
	padding: 3em 0;
	position: relative;
	z-index: 2;
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 0.8s ease, transform 0.8s ease;
	background: url('../../images/bg_polygon_gr.png') center /cover no-repeat;

	@media (min-width: 1025px) {
		min-height: 320px;
	}

	@media (min-width:1281px) {
		min-height: 400px;
		background: url('../../images/bg_polygon_gr.png') center right /cover no-repeat;
	}

	&.is-visible {
		opacity: 1;
		transform: translateY(0);
	}

	/*
	&::before {
		content: "";
		position: absolute;
		inset: 0;
		background: linear-gradient(45deg,
				rgba(30, 156, 74, 1.0) 0%,
				rgba(30, 156, 74, 0.8) 50%,
				rgba(30, 156, 74, 0.9) 100%);
		background-blend-mode: multiply;
		z-index: -1;
	}*/

	.inner {
		z-index: 3;
		text-align: center;
	}

	.worry-band__title {
		display: block;
		font-size: clamp(1.375rem, 1.2rem + 0.875vw, 2.25rem);
		color: #fff;
	}
}

/* ===============================
   Features Section
================================ */
.features {
	background-color: var(--bg-light-green);
	text-align: center;
	position: relative;
	z-index: 1;
	clip-path: polygon(0 8vw, 100% 0, 100% 100%, 0% 100%);
	margin-top: -3em;
	padding: calc(260px + 3em) 0 5em;

	@media (min-width: 1025px) {
		margin-top: -5em;
		padding: calc(320px + 5em) 0 5em;
	}

	@media (min-width: 1281px) {
		margin-top: -8em;
		padding: calc(400px + 7em) 0 7em;
	}

	.features__introduction {
		position: relative;
		z-index: 2;
		margin: 0 auto 5em;
		text-align: left;

		@media (min-width: 1025px) {
			text-align: center;
		}
	}


	.features__content {
		display: grid;
		grid-template-columns: 1fr;
		gap: 30px;
		/*	padding-top: clamp(60px, 10vw, 110px);*/
		align-items: start;
		position: relative;
		z-index: 1;
		padding-top: calc(100px + 3em);

		@media (min-width: 1281px) {
			grid-template-columns: 1fr 1fr;
			gap: 40px;
			padding-top: calc(160px + 5em);
		}
	}

	.features__bg-wrapper {
		position: absolute;
		/*top: -100px;*/
		top: 0;
		left: calc(53% - 50vw);
		right: calc(50% - 50vw);
		height: 380px;
		background-image: url('../../images/feature_bg.jpg');
		background-repeat: no-repeat;
		background-size: cover;
		background-position: left center;
		border-radius: 15px 0 0 15px;
		z-index: -1;
		overflow: hidden;
		will-change: transform;
		transform: translate3d(0, 0, 0);
		transition: transform 0.05s linear;

		@media (min-width: 1281px) {
			/*top: -130px;
			left: -150px;*/
			/*height: 490px;*/
			height: 560px;
		}

		.features__content-title {
			background: #3c6295;
			text-align: center;

			font-size: var(--text-l);
			padding: 1em;
			height: auto;
			display: flex;
			align-items: center;
			justify-content: center;
			font-size: inherit;

			@media (min-width: 1281px) {
				padding: 1.5em;
				height: 160px;
				font-size: 1.3em;
			}

			h2 {
				display: grid;
				color: #fff;
				gap: 0.3em;

				span {
					font-size: 0.5em;
				}
			}
		}
	}

	.features__report,
	.features__cards {
		max-width: 380px;
		margin-inline: auto;

		@media (min-width: 1281px) {
			max-width: 100%;
			margin-inline: 0;
		}
	}

	.features__report {
		background: #fff;
		border-radius: var(--radius-base);
		border: var(--border-base);
		overflow: hidden;
		display: flex;
		flex-direction: column;
		height: clamp(480px, 50vw, 550px);
		position: relative;
		z-index: var(--z-content);

		@media (min-width: 1281px) {
			height: auto;
		}
	}

	.report-header {
		background: var(--color-accent);
		color: #fff;
		padding: 1em;
		font-weight: 600;
		line-height: 1.4;
		letter-spacing: var(--ls-md);
	}
}

.report-body {
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	touch-action: pan-y;
	width: 100%;
	flex-grow: 1;
	min-height: 0;
	position: relative;
	scrollbar-width: thin;
	scrollbar-track: #EDEDED;
	scrollbar-thumb: var(--color-text);

	.report-body-inner {
		padding: 2em;
	}

	img {
		width: 100%;
		height: auto;
		display: block;
		margin: auto;
		object-fit: cover;
	}

	::-webkit-scrollbar {
		width: 8px;
		height: 8px;
	}

	::-webkit-scrollbar-track {
		background-color: #EDEDED;
	}

	::-webkit-scrollbar-thumb {
		border-radius: 0.4em;
		background-color: var(--color-text);
	}

	::-webkit-scrollbar-corner {
		background-color: #EDEDED;
	}
}

.scroll-guide {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 5;
	text-align: center;
	pointer-events: none;
	transition: opacity 0.5s ease;
	background: rgba(0, 0, 0, 0.4);
	padding: 20px;
	border-radius: 50%;
	width: clamp(80px, 8vw, 100px);
	height: clamp(80px, 8vw, 100px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	opacity: 1;

	@media (min-width: 1281px) {
		top: 10%;
	}

	&.is-active:not(.is-hidden) {
		opacity: 1;
	}

	&.is-hidden {
		opacity: 0;
	}

	.scroll-guide__mouse {
		width: 20px;
		height: 32px;
		border: 2px solid #fff;
		border-radius: 12px;
		position: relative;
		display: block;
		margin: 0 auto 8px;

		&::before {
			content: "";
			width: 4px;
			height: 4px;
			background: #fff;
			margin-left: -2px;
			top: 6px;
			left: 50%;
			position: absolute;
			border-radius: 50%;
			animation: scroll-dot 1.5s infinite;
		}
	}

	.scroll-guide__text {
		color: #fff;
		font-size: 10px;
		font-weight: 600;
		letter-spacing: 0.1em;
	}
}

@keyframes scroll-dot {
	0% {
		transform: translateY(0);
		opacity: 1;
	}

	100% {
		transform: translateY(12px);
		opacity: 0;
	}
}

.features__cards {
	display: flex;
	flex-direction: column;
	gap: 30px;
	position: relative;
	z-index: var(--z-content);
}

.report-header,
.feature-card__title {
	font-size: clamp(1.125rem, 1.025rem + 0.5vw, 1.625rem);
}

.feature-card {
	background: #fff;
	overflow: hidden;
	border-radius: var(--radius-base);
	border: var(--border-base);
	text-align: left;

	.feature-card__header {
		background: var(--color-primary);
		color: #fff;
		display: flex;
		align-items: center;
		font-weight: 600;
		gap: 1.5em;
		padding-right: 1.5em;
		font-weight: 600;
		letter-spacing: var(--ls-md);

		&.-height {
			.feature-card__num {}
		}

		.feature-card__num {
			font-family: "Oswald", sans-serif;
			font-size: 2em;
			background: #2f952f;
			padding: 1em 0.5em;
			letter-spacing: var(--ls-md);
			height: 100%;
			display: flex;
			align-items: center;
		}

		.feature-card__title {
			flex: 1;

			br {
				&.pc {
					display: none;

					@media (min-width:769px) {
						display: block;
					}
				}

				&.sp {
					display: block;

					@media (min-width:769px) {
						display: none;
					}
				}
			}
		}
	}

	.feature-card__body {
		padding: 2em;
	}

	.feature-card__img {
		border: 1px solid #ddd;
		border-radius: var(--radius-base);
		margin-bottom: 1em;
		padding: 1em;

		img {
			width: 100%;
			max-height: 190px;
			height: auto;
			margin: auto;
			object-fit: contain;
			aspect-ratio: 2 / 1;
		}
	}
}

/* ======================================
   LINE登録セクション
====================================== */
.line-cta {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 4em 0;
	color: #fff;
	text-align: center;
	overflow: hidden;

	.line-cta__bg {
		position: absolute;
		inset: 0;
		background: url("../../images/line_bg.jpg") center/cover no-repeat;
		z-index: 0;
	}

	.line-cta__overlay {
		display: none;
		position: absolute;
		inset: 0;
		background: linear-gradient(90deg,
				rgba(0, 0, 0, .55) 0%,
				rgba(0, 0, 0, .35) 50%,
				rgba(0, 0, 0, .55) 100%);
		z-index: 1;
	}

	.line-cta__inner {
		position: relative;
		z-index: var(--z-content);
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.line-cta__title {
		margin: auto;
		font-size: var(--text-xl);
	}

	.line-cta__subtitle {
		margin: 1em auto 0;
		letter-spacing: var(--ls-md);
	}

	.line-cta__badge {
		position: relative;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		margin: 3em auto -2.5em;
		padding: 0.5em 1.5em;
		background: #fff;
		color: #06c755;
		font-size: clamp(13px, 0.5vw + 11px, 16px);
		font-weight: 600;
		border-radius: 10em;
		box-shadow: 0 10px 25px rgba(0, 0, 0, .18);
		z-index: 10;
		animation: floatBubble 2.6s ease-in-out infinite;

		&::after {
			content: "";
			position: absolute;
			left: 50%;
			bottom: -9px;
			transform: translateX(-50%);
			border-style: solid;
			border-width: 10px 10px 0 10px;
			border-color: #fff transparent transparent transparent;
		}
	}

	.lp-cta-wrap {
		width: 100%;
		margin-top: 35px;
	}

}

.lpbtn {
	width: 100%;
	max-width: 500px;
	border-radius: var(--radius-base);
	display: flex;
	align-items: center;
	padding: 1em;
	text-decoration: none;
	color: #fff;
	font-weight: 600;
	position: relative;
	background: #05c755;
	transition: .2s;
	margin: auto;

	@media (min-width: 1281px) {
		max-width: 800px;
	}

	&:hover {
		transform: translateY(-2px);
		filter: brightness(1.05);
	}

	.lpbtn__icon {
		width: clamp(40px, 5vw + 20px, 54px);
		height: clamp(40px, 5vw + 20px, 54px);
		background: #fff;
		border-radius: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
		z-index: 2;
		margin-right: 25px;

		img {
			width: 60%;
			height: auto;
		}
	}

	.lpbtn__text {
		font-size: clamp(18px, 1vw + 10px, 28px);
		text-align: center;
		z-index: 1;
		flex-grow: 1;
		letter-spacing: var(--ls-sm);
		font-weight: 600;
	}

	.lpbtn__arrow {
		margin-left: auto;
		margin-right: -5px;
		display: flex;
		align-items: center;
		z-index: 2;
	}
}

.line-cta__mail {
	display: flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	margin: 2em auto 0;
	gap: 0.8em;
	font-weight: 600;
	letter-spacing: var(--ls-md);
	color: #fff;

	&:hover {
		text-decoration: none;
	}

	.line-cta__mailIcon {
		text-decoration: none;

		img {
			width: 25px;
			height: auto;
		}
	}
}

/* ===============================
   Voices Section
================================ */
.voices {
	padding: 5em 0;
	background: #fff;
	text-align: center;

	@media (min-width: 1281px) {
		padding: 8em 0;
	}

	.voice-list {
		display: flex;
		flex-direction: column;
		gap: clamp(30px, 4vw, 40px);
		position: relative;
		overflow: hidden;
		transition: max-height 0.6s cubic-bezier(0.4, 0, 0.2, 1);

		&.is-open {
			.voice-card:nth-child(n+4) {
				opacity: 1;
				transform: translateY(0);
				pointer-events: auto;
			}
		}
	}

}

.voice-card {
	border-radius: var(--radius-base);
	border: var(--border-base);
	background: #fff;
	width: 100%;

	&:nth-child(odd) .voice-head {
		background: var(--color-primary);
	}

	&:nth-child(even) .voice-head {
		background: var(--color-secondary);
	}

	&:nth-child(n+4) {
		opacity: 0;
		transform: translateY(30px);
		transition: opacity 0.8s ease, transform 0.8s ease;
		pointer-events: none;
	}

	&:nth-child(4) {
		transition-delay: 0.1s;
	}

	&:nth-child(5) {
		transition-delay: 0.2s;
	}

	&:nth-child(6) {
		transition-delay: 0.3s;
	}

	.voice-head {
		padding: 2em;
		color: #fff;
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 1.5em;
		text-align: center;
		letter-spacing: var(--ls-sm);
		border-radius: 10px 10px 0 0;

		@media (max-width: 768px) {
			display: grid;
			grid-template-columns: auto 1fr;
			grid-template-areas:
				"title title"
				"icon name";
			gap: 1em 1em;
			text-align: left;
			align-items: center;
			padding: 1.5em;
		}

		@media (min-width: 769px) {
			flex-direction: row;
			text-align: left;
		}

		&::after {
			content: "";
			position: absolute;
			left: 50%;
			bottom: -1px;
			transform: translateX(-50%);
			width: 0;
			height: 0;
			border-left: 15px solid transparent;
			border-right: 15px solid transparent;
			border-bottom: 15px solid #fff;
		}
	}

	.voice-info {
		flex: 1;
		display: flex;
		flex-direction: column;

		@media (max-width: 768px) {
			display: contents;
		}
	}

	.voice-title {
		font-size: var(--text-l);
		font-weight: 600;
		line-height: 1.5;
		margin: 0 0 0.5em;
		padding-bottom: 0.5em;
		border-bottom: 1px solid #fff;

		@media (max-width: 768px) {
			grid-area: title;
			margin-bottom: 0;
		}
	}

	.voice-icon {
		width: 90px;
		height: 90px;
		border-radius: 50%;
		overflow: hidden;
		background: #fff;
		flex-shrink: 0;
		padding: 0.5em 0.5em 0 0.5em;

		@media (max-width: 768px) {
			grid-area: icon;
			width: 50px;
			height: 50px;
		}

		img {
			width: 100%;
			height: 100%;
			object-fit: cover;
		}
	}

	.voice-name {
		font-size: 14px;
		font-weight: 600;
		margin: 0;
		text-align: center;

		@media (max-width: 768px) {
			grid-area: name;
			text-align: left;
		}

		@media (min-width: 769px) {
			text-align: left;
		}

		span {
			display: block;
			font-weight: normal;
			font-size: 13px;
			margin-top: 4px;
		}
	}

	.voice-body {
		padding: 2em;
		text-align: left;
	}

	@media (max-width: 768px) {
		.voice-body {
			position: relative;
			cursor: pointer;
		}

		.voice-body:not(.is-expanded) p {
			display: -webkit-box;
			-webkit-box-orient: vertical;
			-webkit-line-clamp: 4;
			line-clamp: 4;
			overflow: hidden;
		}

		.voice-body:not(.is-expanded)::after {
			content: "続きを読む ▼";
			position: absolute;
			bottom: 0;
			left: 0;
			right: 0;
			height: 5em;
			background: linear-gradient(transparent, #fff 60%);
			display: flex;
			align-items: flex-end;
			justify-content: center;
			padding-bottom: 1em;
			color: var(--color-primary);
			font-weight: bold;
			font-size: 13px;
			border-radius: 0 0 var(--radius-base) var(--radius-base);
		}

		.voice-body.is-expanded {
			padding-bottom: 3.5em;
		}

		.voice-body.is-expanded::after {
			content: "閉じる ▲";
			position: absolute;
			bottom: 0;
			left: 0;
			right: 0;
			display: flex;
			align-items: flex-end;
			justify-content: center;
			padding-bottom: 1em;
			color: var(--color-primary);
			font-weight: bold;
			font-size: 13px;
		}
	}

	.voice-head::before,
	.voice-title::after {
		display: none !important;
	}
}

/* ===============================
   FAQ Section
================================ */
.faq {
	padding: 5em 0;
	background-color: var(--bg-light-green);
	text-align: center;

	@media (min-width: 1281px) {
		padding: 8em 0;
	}

	.faq-container {
		display: flex;
		flex-direction: column;
		gap: 2em;
	}
}

.faq-item {
	border-radius: var(--radius-base);
	border: var(--border-base);
	overflow: hidden;
	background: #fff;

	.faq-question {
		background-color: #81b381;
		color: #fff;
		text-align: left;
		padding: 0.8em 3em 0.8em 1.5em;
		font-size: var(--text-l);
		font-weight: 500;
		display: flex;
		align-items: center;
		gap: 1em;
		cursor: pointer;
		position: relative;
		user-select: none;
		letter-spacing: var(--ls-sm);
	}

	.faq-icon-q {
		font-size: 1.5em;
		font-weight: 400;
		margin-bottom: auto;
	}

	.faq-toggle {
		position: absolute;
		right: 1em;
		width: 20px;
		height: 20px;

		&::before,
		&::after {
			content: "";
			position: absolute;
			background-color: #fff;
			transition: transform 0.3s ease, opacity 0.3s ease;
		}

		&::before {
			top: 50%;
			left: 0;
			width: 100%;
			height: 2px;
			transform: translateY(-50%);
		}

		&::after {
			top: 0;
			left: 50%;
			width: 2px;
			height: 100%;
			transform: translateX(-50%);
		}
	}

	&.is-open {
		.faq-toggle::after {
			transform: translateX(-50%) rotate(90deg);
			opacity: 0;
		}
	}

	.faq-answer {
		height: 0;
		overflow: hidden;
		background-color: #fff;
		transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
		margin-left: 0;

		.faq-answer__inner {
			padding: 2em;
			text-align: left;
		}
	}
}

/* ===============================
   Security Section
================================ */
.security {
	padding: 5em 0 4em;
	background-color: #fff;
	text-align: center;

	@media (min-width: 1281px) {
		padding: 8em 0 6em;
	}

	.security-container {
		margin-top: 3em;
		text-align: left;
		line-height: 1.8;
		position: relative;
		max-height: 200px;
		overflow: hidden;
		transition: max-height 0.6s cubic-bezier(0.4, 0, 0.2, 1);

		@media (min-width: 1281px) {
			margin-top: 6em;
		}

		&.is-open {
			max-height: 2000px;

			.security-gradient {
				opacity: 0;
			}
		}
	}

	.security-gradient {
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 100px;
		background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff);
		transition: opacity 0.4s ease;
		pointer-events: none;
	}
}

.c-btn-more-container .c-btn-more.is-open::after {
	transform: translateY(-30%) rotate(-135deg);
}

/* ------------------------------------------- wordpress customize */
/* ------------------------------------------- footer */
/* ===============================
   ふわっと
================================ */
.js-fade-up {
	opacity: 0 !important;
	transform: translateY(30px) !important;
	transition: opacity 0.8s ease, transform 0.8s ease;
	pointer-events: none;
	visibility: hidden;

	&.is-visible {
		opacity: 1 !important;
		transform: translateY(0) !important;
		pointer-events: auto;
		visibility: visible;
	}
}

/* ===============================
   Back To Top Button
================================ */
.back-to-top {
	position: fixed;
	right: 16px;
	bottom: 90px;
	z-index: 1000;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--color-footer);
	color: #fff;
	font-size: 18px;
	font-weight: 600;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transform: translateY(20px);
	pointer-events: none;
	transition: opacity .25s ease, transform .25s ease;

	&.is-visible {
		opacity: 1;
		transform: translateY(0);
		pointer-events: auto;
	}

	&:hover {
		transform: translateY(-3px);
	}

	svg {
		transform: rotate(-90deg) translate(2px, 0px);
		width: 40px;
		height: 40px;
	}
}

/* ===============================
   Footer Breadcrumb
================================ */
.footer-breadcrumb {
	background: var(--bg-light-green);
	padding: 1.5em 0;
	font-size: 0.8em;

	a {
		color: #50af50;
		text-decoration: underline;

		&:hover {
			text-decoration: none;
		}
	}


	.footer-breadcrumb__arrow {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		color: var(--color-text);

		svg {
			width: 1em;
			height: 1em;
		}
	}
}

/* ===============================
   Footer
================================ */
.site-footer {
	background: var(--color-footer);
	padding: 2em 0;

	.site-footer__copy {
		text-align: center;
		font-size: 0.8em;
		display: block;
		color: #fff;
	}
}