@charset "UTF-8";
/* common */
html {
	font-size: 100%;
}

body {
	font-family: "Zen Kaku Gothic New", sans-serif;
	overflow-x: hidden;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	text-decoration: none;
	display: block;
}

a:hover {
	opacity: 0.8;
}

ul {
	list-style: none;
}

:root {
	--font-shippori-mincho: "Shippori Mincho", serif;
	--font-shippori-mincho2: "Shippori Mincho B1", serif;
	--font-zen-kakugo: "Zen Kaku Gothic New", sans-serif;
	--font-petit-formal-Script: "Petit Formal Script", cursive;
	--font-main-color: #404040;
	--color-style4: #2a2825;
}

.red-letter {
	color: #eb586e;
}

.title-font {
	font-size: min(12.8vw, 50px);
	text-align: center;
	font-weight: 400;
	font-family: "Castoro Titling", serif;
}

.title-ja {
	font-size: min(8.97vw, 35px);
	font-weight: 500;
	text-align: center;
}

/* layOut */
.bg_wrapper {
	display: flex;
	width: 100%;
	min-height: 100vh;
	position: relative;
	overflow-x: hidden;
	background-color: #fcf3f3;
}

.bg_wrapper::before {
	content: "";
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center;
	z-index: -1;
}

.side-area {
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	/* add */
	position: fixed;
	top: 0;
	width: calc(50vw - 215px);
	height: 100vh;
}

.side-area.left-area {
	left: 0;
}

.side-area.right-area {
	right: 0;
}

.bg_logo,
.bg_cta {
	z-index: 10;
	display: block;
}

.bg_cta {
	width: min(80%, 600px);
}

.bg_logo {
	width: 56.1%;
}

.main-content {
	width: 100%;
	max-width: 430px;
	overflow-y: visible;
	overflow-x: hidden;
	background: #ffffff;
	z-index: 1;
	-ms-overflow-style: none;
	scrollbar-width: none;
	margin-inline: auto;
}

.fixed-cta {
	position: fixed;
	bottom: 3%;
	left: 50%;
	transform: translateX(-50%);
	width: 93%;
	max-width: 364px;
	z-index: 100;
	overflow: visible;
	transition: opacity 0.3s ease;
}

.fixed-cta-button {
	text-align: center;
	transition: opacity 0.3s ease;
}

.fixed-cta-button:hover {
	opacity: 0.9;
}

.fixed-cta img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	-webkit-animation:
		moderate-pulse 3s ease-in-out infinite,
		moderate-glow 3s ease-in-out infinite;
	animation:
		moderate-pulse 3s ease-in-out infinite,
		moderate-glow 3s ease-in-out infinite;
}

@-webkit-keyframes moderate-pulse {
	0%,
	100% {
		transform: scale(1);
	}
	50% {
		transform: scale(1.03);
	}
}

@keyframes moderate-pulse {
	0%,
	100% {
		transform: scale(1);
	}
	50% {
		transform: scale(1.03);
	}
}
@-webkit-keyframes moderate-glow {
	0% {
		filter: drop-shadow(0 0 0 rgba(255, 245, 250, 0));
	}
	50% {
		filter: drop-shadow(0 0 10px rgba(255, 245, 250, 0.6));
	}
	100% {
		filter: drop-shadow(0 0 0 rgba(255, 245, 250, 0));
	}
}
@keyframes moderate-glow {
	0% {
		filter: drop-shadow(0 0 0 rgba(255, 245, 250, 0));
	}
	50% {
		filter: drop-shadow(0 0 10px rgba(255, 245, 250, 0.6));
	}
	100% {
		filter: drop-shadow(0 0 0 rgba(255, 245, 250, 0));
	}
}
/* アニメーション */
.zoom-in {
	opacity: 0;
	transform: scale(0.8);
	transition:
		opacity 1.5s ease-out,
		transform 1.5s ease-out;
}

.zoom-in.active {
	opacity: 1;
	transform: scale(1);
}

.fade-left,
.fade-right,
.fade-down {
	opacity: 0;
	transition:
		opacity 1s ease-out,
		transform 1s ease-out;
}

.fade-left {
	transform: translateX(-20px);
}

.fade-right {
	transform: translateX(20px);
}

.fade-left.active,
.fade-right.active,
.fade-down.active {
	opacity: 1;
	transform: translateX(0);
}

.fade-down {
	transform: translateY(-20px);
}

.fade-down.active {
	transform: translateY(0);
}

.shine {
	position: relative;
	overflow: hidden;
	display: block;
}

.shine::before {
	content: "";
	position: absolute;
	top: 0;
	left: -75%;
	width: 60%;
	height: 100%;
	background: linear-gradient(
		to right,
		rgba(255, 255, 255, 0) 0%,
		rgba(255, 255, 255, 0.6) 100%
	);
	transform: skewX(-20deg);
	z-index: 2;
	-webkit-animation: shineEffect 1.5s infinite;
	animation: shineEffect 1.5s infinite;
}

@-webkit-keyframes shineEffect {
	0% {
		left: -75%;
	}
	100% {
		left: 125%;
	}
}

@keyframes shineEffect {
	0% {
		left: -75%;
	}
	100% {
		left: 125%;
	}
}
.fv {
	aspect-ratio: 390/725;
}
.fv__container {
	position: relative;
}
.fv__cta {
	position: absolute;
	bottom: 18.5%;
	left: 50%;
	transform: translateX(-50%);
	max-width: 400px;
	width: 95%;
}

@-webkit-keyframes beat {
	0% {
		transform: scale(1);
	}
	15% {
		transform: scale(1.05);
	}
	30% {
		transform: scale(1);
	}
	45% {
		transform: scale(1.05);
	}
	70% {
		transform: scale(1);
	}
}

@keyframes beat {
	0% {
		transform: scale(1);
	}
	15% {
		transform: scale(1.05);
	}
	30% {
		transform: scale(1);
	}
	45% {
		transform: scale(1.05);
	}
	70% {
		transform: scale(1);
	}
}
.beat {
	-webkit-animation: beat 2s infinite ease-in-out;
	animation: beat 2s infinite ease-in-out;
	transform-origin: center;
}

.lead {
	background-image: url(../img/bg_lead.webp?v=0112);
	padding-block: 40px;
}
.lead__text {
	font-size: 15px;
	color: #621938;
	font-weight: 400;
	line-height: 1.86;
	font-family: var(--font-shippori-mincho2);
	text-align: center;
	margin-bottom: 20px;
}
.lead__strong {
	background-color: #ffffff;
	box-shadow: 2px 2px 3.4px rgba(0, 0, 0, 0.12);
	font-size: 18px;
	line-height: 1.5;
	font-weight: bold;
	padding-inline: 9px;
}
.lead__gray {
	background-color: #888888;
	box-shadow: 2px 2px 3.4px rgba(0, 0, 0, 0.12);
	color: #fff;
	padding-inline: 5px;
	font-size: 18px;
	line-height: 1.55;
}
.lead__text:nth-of-type(1) .lead__strong.zoom-in {
	transition-delay: 0s;
}
.lead__text:nth-of-type(2) .lead__strong.zoom-in {
	transition-delay: 0.2s;
}
.lead__text:nth-of-type(3) .lead__strong.zoom-in {
	transition-delay: 0.4s;
}

.setplan {
	padding-top: 17px;
}
.setplan__about {
	position: relative;
	width: calc(100% - 32px);
	margin-inline: auto;
	padding-bottom: 20px;
}
.setplan__about--copy {
	position: absolute;
	top: 17%;
	left: 50%;
	transform: translateX(-50%);
	width: 75.38%;
}
.setplan__about--copy.zoom-in {
	left: 50%;
	transform: translateX(-50%);
}
.setplan__about--copy.zoom-in.active {
	left: 50%;
	transform: translateX(-50%);
}

/* ==============
campaign
===============*/
.chance {
	background-color: #f0788d;
	position: relative;
}
.chance__title {
	max-width: 274px;
	padding-top: 21px;
	margin-inline: auto;
}
.chance__link {
	position: absolute;
	width: 83.8%;
	bottom: 6%;
	left: 50%;
	transform: translateX(-50%);
}

.present {
	padding-top: 20px;
}

.know-how__top {
	background-image: url(../img/bg_know-how.webp);
	background-position: center top;
	background-repeat: no-repeat;
	background-size: cover;
}
.know-how__title {
	max-width: 318px;
	margin: 54px auto 0;
	-o-object-fit: contain;
	object-fit: contain;
	aspect-ratio: 318/50;
	position: relative;
}
.know-how__title::before {
	content: "";
	position: absolute;
	width: 1px;
	height: 37px;
	background-color: #621938;
	top: -65%;
	left: 50%;
	transform: translateX(-50%);
}
.know-how__text01 {
	max-width: 315px;
	margin: 0 auto 12px;
	padding-top: 24px;
}
.know-how__text02 {
	max-width: 350px;
	margin-inline: auto;
}
.know-how__text02 img {
	width: 100%;
	height: auto;
	display: block;
}
.know-how__comments {
	position: relative;
	height: 350px;
	width: 96.5%;
	max-width: 362px;
	left: 50%;
	transform: translateX(-50%);
}
.know-how__comments--wrapper {
	padding-bottom: 25px;
}
.know-how__comments li {
	position: absolute;
}
.know-how__comments li:nth-child(1) img {
	transition-delay: 0s;
}
.know-how__comments li:nth-child(2) img {
	transition-delay: 0.3s;
}
.know-how__comments li:nth-child(3) img {
	transition-delay: 0.6s;
}
.know-how__comment01 {
	top: 0;
	z-index: 100;
}
.know-how__comment02 {
	top: 21%;
	z-index: 50;
}
.know-how__comment03 {
	bottom: 0;
	z-index: 10;
}
.know-how__member {
	position: relative;
}
.know-how__heading {
	position: absolute;
	top: 8%;
	left: 50%;
	transform: translateX(-50%);
	max-width: 358px;
	aspect-ratio: 358/75;
}
.know-how__heading.zoom-in {
	transform: translateX(-50%) scale(0.8);
}
.know-how__heading.zoom-in.active {
	transform: translateX(-50%) scale(1);
}

/* ============
こんなお悩みはありませんか？
===============*/
.concern {
	background-image: url(../img/bg_concern.webp);
	background-position: center bottom;
	background-repeat: no-repeat;
	background-size: cover;
	padding-block: 16px 55px;
	position: relative;
	z-index: 2;
}
.concern__title {
	max-width: 328px;
	width: 87.5%;
	margin: 0 auto 34px;
	position: relative;
}
.concern__title::before {
	content: "";
	position: absolute;
	width: 1px;
	height: 37px;
	background-color: #621938;
	top: -48%;
	left: 50%;
	transform: translateX(-50%);
}
.concern__list {
	max-width: 267px;
	width: 71.2%;
	margin: 0 auto;
}
.concern__list li {
	margin-bottom: 15px;
}
.concern__arrow {
	width: 29px;
	-o-object-fit: contain;
	object-fit: contain;
	margin: 15px auto 30px;
}
.concern__arrow img {
	display: block;
	width: 100%;
	height: auto;
	-webkit-animation: arrow-float 1.8s ease-in-out infinite;
	animation: arrow-float 1.8s ease-in-out infinite;
}
.concern05 {
	max-width: 312px;
	width: 83.2%;
	margin: 0 auto 27px;
}
.concern06 {
	max-width: 153px;
	-o-object-fit: contain;
	object-fit: contain;
	margin: 0 auto 7px;
	transition-delay: 0.8s;
}
.concern07 {
	max-width: 358px;
	margin-inline: auto;
}
.concern__bottom {
	position: absolute;
	bottom: -2%;
	left: 50%;
	transform: translateX(-50%);
	z-index: 100;
	width: 98px;
	height: 47.07px;
	-o-object-fit: contain;
	object-fit: contain;
}

@-webkit-keyframes arrow-float {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(8px);
	}
}

@keyframes arrow-float {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(8px);
	}
}
.solution {
	position: relative;
	z-index: 1;
	margin-top: -18%;
}
.solution__title {
	width: 240px;
	position: absolute;
	top: 15%;
	left: 50%;
	transform: translateX(-50%);
}
.solution__title img {
	width: 100%;
	max-width: none;
}
.solution__title.zoom-in {
	transform: translateX(-50%) scale(0.8);
}
.solution__title.zoom-in.active {
	transform: translateX(-50%) scale(1);
}
.solution__text {
	position: absolute;
	top: 30%;
	left: min(6.4vw, 25px);
	width: 19%;
	aspect-ratio: 273/77;
	margin-left: auto;
	-o-object-fit: contain;
	object-fit: contain;
}

.so {
	position: absolute;
	top: -5%;
	left: 50%;
	transform: translateX(-50%);
	z-index: 100;
}

/* ============
講師紹介
===============*/
.lecturer__pic {
	width: 73.87%;
	max-width: 277px;
	margin: 0 auto 16px;
}
.lecturer__name {
	font-family: var(--font-shippori-mincho);
	font-size: min(6.15vw, 24px);
	font-weight: 500;
	line-height: 1.39;
	text-align: center;
	color: #000000;
	margin-bottom: 19px;
}
.lecturer__role {
	font-size: min(4.3vw, 17px);
	display: block;
	line-height: 1.96;
}
.lecturer__about {
	max-width: 326px;
	width: 86.93%;
	margin: 0 auto 25px;
}
.lecturer__message {
	width: calc(100% - 32px);
	margin: 25px auto 35px;
}
.lecturer01 {
	margin-bottom: 36px;
}
.lecturer05 {
	margin-bottom: 20px;
}
.lecturer02 {
	background-image: url(../img/bg_lecturer.webp?v=2603);
	background-position: center top;
	background-repeat: no-repeat;
	background-size: cover;
	padding-block: 30px 60px;
}
.lecturer__content {
	max-width: 326px;
	width: 86.93%;
	margin-inline: auto;
}
.lecturer__content--text {
	font-size: 15px;
	font-weight: 400;
}

.question {
	margin-top: -5%;
	position: relative;
}
.question__title {
	position: absolute;
	top: -3.5%;
	left: 50%;
	transform: translateX(-50%);
	max-width: 150px;
	width: 38vw;
	z-index: 1000;
}
.question__glass {
	position: absolute;
	bottom: -5%;
	right: 1%;
	width: 61.14px;
	height: 136.57px;
	-o-object-fit: contain;
	object-fit: contain;
}
.question__pearl {
	position: absolute;
	top: 0;
	left: 1%;
	width: 40px;
	-o-object-fit: contain;
	object-fit: contain;
}

/* ============
New meだから変われる3つの理由
===============*/
.change {
	background-image: url(../img/bg_change.webp);
	background-position: center top;
	background-size: cover;
	background-repeat: no-repeat;
	padding-block: 33px 40px;
	margin-top: -6%;
}
.change__title {
	max-width: 263px;
	width: 70%;
	margin: 20px auto;
}
.change__list {
	max-width: 374px;
	width: 87.6%;
	margin-inline: auto;
}
.change__list li + li {
	margin-top: 40px;
}
.change__movie {
	position: relative;
}
.change__movie--video {
	position: absolute;
	bottom: 8%;
	left: 50%;
	transform: translateX(-50%);
	width: 84%;
}
.change__movie--video.zoom-in {
	transform: translateX(-50%) scale(0.8);
}
.change__movie--video.zoom-in.active {
	transform: translateX(-50%) scale(1);
}
.change__movie--video iframe {
	height: auto;
	aspect-ratio: 326/184;
}

.support_lead {
	position: relative;
}
.support_lead::before {
	content: "";
	position: absolute;
	width: 1px;
	height: 37px;
	background-color: #621938;
	top: -3%;
	left: 50%;
	transform: translateX(-50%);
}
.support_lead01 {
	position: absolute;
	top: 11%;
	left: 50%;
	transform: translateX(-50%);
	width: 312px;
}
.support_lead01 img {
	width: 100%;
}
.support_lead02 {
	position: absolute;
	bottom: 23%;
	left: 50%;
	transform: translateX(-50%);
	width: 283px;
}
.support_lead02 img {
	width: 100%;
}
.support_lead-bubble {
	position: absolute;
	top: 30%;
	left: 50%;
	transform: translateX(-50%);
	width: 257px;
}
.support_lead-bubble img {
	width: 100%;
}
.support_lead0102 {
	position: absolute;
	bottom: 42%;
	left: 50%;
	transform: translateX(-50%);
	width: 85.3%;
	max-width: 374px;
}

.support {
	position: relative;
	margin-top: -38%;
	z-index: -10;
}
.support__title {
	position: absolute;
	top: 9%;
	left: 50%;
	transform: translateX(-50%);
	max-width: 341.18px;
	width: 100%;
}
.support__title img {
	width: 100%;
	max-width: none;
}
.supports {
	position: absolute;
}
.support-top {
	margin-bottom: 5px;
}
.support__copy {
	height: 38px;
	width: auto;
}
.support01 {
	top: 16%;
	left: 15%;
}
.support02 {
	top: 31%;
	left: 8%;
}
.support03 {
	top: 45.7%;
	left: 8%;
}
.support04 {
	top: 61.1%;
	left: 8%;
}
.support05 {
	top: 76.2%;
	left: 8%;
}
.support06 {
	top: 91.25%;
	left: 8%;
}

.join__title {
	position: relative;
}
.join__limited {
	max-width: 215px;
	width: 53%;
	position: absolute;
	top: 15%;
	left: 50%;
	transform: translateX(-50%);
}
.join__list {
	list-style: none;
	margin: 50px auto 32px;
	max-width: 375px;
	width: 88%;
	position: relative;
	left: -5px;
}
.join__list li + li {
	margin-top: 32px;
}

.comparison {
	background-color: #fffaf0;
}
.comparison__title {
	background-image: url(../img/comparison_title_bg.webp?v=0112);
	background-position: center top;
	background-size: cover;
	padding-block: 32px 65px;
	margin-bottom: 40px;
}
.comparison__title img {
	width: 254px;
	margin-inline: auto;
}
.comparison__figure {
	width: 358px;
	margin: 13px auto 40px;
}
.comparison__copy {
	width: 358px;
	margin: 0 auto 17px;
}
.comparison__contents {
	width: calc(100% - 32px);
	max-width: 358px;
	margin-inline: auto;
}
.comparison__support {
	position: relative;
}
.comparison__support--title {
	width: 334.24px;
	position: absolute;
	top: 10%;
	left: 50%;
	transform: translateX(-50%);
}
.comparison__support--title.zoom-in {
	transform: translateX(-50%) scale(0.8);
}
.comparison__support--title.zoom-in.active {
	transform: translateX(-50%) scale(1);
}

/* =======
FAQ
========= */
.faq {
	background-color: #fffbfe;
	padding-block: 0 30px;
}
.faq__title {
	background-image: url(../img/faq_title_bg.webp?v=0113);
	background-position: center top;
	background-size: 100%;
}
.faq__title img {
	width: 127px;
	margin-inline: auto;
	padding-block: 37px 70px;
}
.faq__title-bottom {
	margin-block: -10px 37px;
}

.q7 {
	letter-spacing: -0.03em;
}

.item_container {
	margin: 0 auto 18px;
	width: calc(100% - 32px);
	background-color: #fff6fa;
	padding: 20px 4%;
	border-radius: 5px;
	box-shadow: 0 3px 4px rgba(65, 7, 33, 0.21);
}

.item_container:last-of-type {
	margin-bottom: 0;
}

.item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: clamp(10px, 3.8vw, 15px);
	font-weight: 400;
	line-height: 2.6;
	letter-spacing: 0.07em;
	cursor: pointer;
	margin-bottom: 10px;
}

.q_area {
	width: 100%;
	display: flex;
	justify-content: space-between;
	font-family: var(--font-shippori-mincho);
	font-weight: 500;
	color: #621938;
	border-bottom: 1px solid rgba(98, 25, 56, 0.6);
	padding-bottom: 7px;
}

.q_text {
	display: flex;
	gap: 7px;
}

.faq_icon {
	width: 13px;
	position: relative;
	transition: transform 0.3s ease;
	flex-shrink: 0;
}

.faq_icon::before,
.faq_icon::after {
	content: "";
	position: absolute;
	background-color: rgba(98, 25, 56, 0.6);
	width: 13px;
	height: 1px;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
}

.faq_icon::after {
	width: 1px;
	height: 13px;
}

.item.open .faq_icon {
	background-image: none;
}

.item.open .faq_icon::after {
	opacity: 0;
}

.item_open {
	display: none;
	font-weight: 400;
	line-height: 1.94;
	letter-spacing: 0.07em;
}

.item_open.open {
	width: 100%;
	display: flex;
	gap: 7px;
	font-size: clamp(10px, 3.5vw, 15px);
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0.07em;
	font-family: var(--font-zen-kakugo);
}

.faq_q,
.faq_a {
	color: #621938;
	font-family: "shippori-mincho", serif;
	font-size: 15px;
	font-weight: 500;
}

.faq_a {
	display: none;
}

.cta_bottom__container {
	position: relative;
}
.cta_bottom__link {
	position: absolute;
	bottom: 3%;
	left: 50%;
	transform: translateX(-50%);
	width: 94%;
	max-width: 404px;
}

.bottom-cta {
	margin-bottom: 30%;
}

.footer {
	background-color: #fff;
	font-size: 11px;
	font-family: var(--font-zen-kakugo);
	text-align: center;
	padding-bottom: 1px;
}
.footer__logo {
	width: 93%;
	margin-top: 17px;
	padding-bottom: 5px;
	margin-inline: auto;
	border-bottom: 0.68px solid #e2e2e2;
}
.footer__logo img {
	width: 122.0692825317px;
	aspect-ratio: 122.0692825317/63.9849815369;
	-o-object-fit: contain;
	object-fit: contain;
	margin-inline: auto;
}
.footer__copy {
	display: block;
	width: 138px;
	height: auto;
	margin: 15px auto;
}
.footer__links {
	display: flex;
	justify-content: center;
	margin: 10px auto 6px;
	font-weight: 500;
}
.footer__links li {
	display: flex;
	align-items: center;
	color: #916963;
}
.footer__links li + li::before {
	content: "｜";
	color: #916963;
	margin: 0 8px;
}
.footer__links li a {
	color: #916963;
}
.footer__text {
	display: block;
	width: 135px;
	margin: 20px auto;
}

@media screen and (max-width: 1039px) {
	.bg_logo,
	.bg_cta {
		display: none;
	}
}
@media (min-width: 1040px) {
	.bg_logo,
	.bg_cta {
		display: block;
		text-align: center;
	}
	.bg_logo img {
		max-width: 250px;
		width: 100%;
	}
	.main-content::before,
	.main-content::after {
		content: "";
		position: absolute;
		top: 0;
		height: 100%;
		width: calc(50vw - 215px);
		z-index: -1;
		pointer-events: none;
	}
	.main-content::before {
		left: calc(-50vw + 215px);
	}
	.main-content::after {
		right: calc(-50vw + 215px);
	}
}
/*# sourceMappingURL=style.css.map */
