:root {
	--red: #C61340;
	--gray: #f0f0f0;
	--black: #3b3b3b;
}
html {
	scroll-behavior: smooth;
}
body {
	font-family: 'Zen Kaku Gothic New', sans-serif;
	line-height: 1.6;
	font-weight: 400;
	font-size: 14px;
	color: var(--black);
}
img {
	max-width: 100%;
}
.font24{
	font-size: 24px;
 }
.font20{
	font-size: 20px;
}
.font16{
	font-size: 16px;
}

.container {
	display: flex;
	justify-content: center;
	background-color: #FFFDF9;
}

.main {
	max-width: 480px;
	width: 100%;
	position: relative;
	background: #fff;
	box-shadow: 0px 0px 30px 0px #00000026;
}
.fv_img{
	width: 100%;
	height: auto;
}
.mv-box {
	position: relative;
}
.sub-copy, .sub-copy2{
	position: absolute;
	height: 120px;
	width: 120px;
	bottom: 18px;
}
.sub-copy{
	z-index: 0;
	right: 4%;
}
.sub-copy2{
	right: 27%;
	z-index: 1;
}

@keyframes rotate-batch {
	0% {transform: rotate(0);}
	100% {transform: rotate(360deg);}
}


.sub-copy::before, .sub-copy2::before {
	content: "";
	background: url(/images/lifedesign/fv_star.svg) no-repeat center center;
	background-size: 93%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	overflow: hidden;
	animation: rotate-batch 20s linear infinite;
}

.spin_txt1, .spin_txt2{
	position: relative;
	left: 25%;
	top: 25%;
	width: 64px;
	height: 64px;
}

.spin_txt2{
	position: relative;
	left: 22%;
	top: 20%;
	width: 70px;
	height: 70px;
}

.main-copy {
	position: absolute;
	top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
	font-size: 36px;
	font-weight: bold;
	width: 100%;
	text-align: center;
}

/* Button-------------------- */

.btn_ctn{
	position: relative;
	margin: 20px 44px 16px 44px;
	text-align: center;
}
.line_btn {
	display: block;
	border-radius: 30px;
	background-color: #06C755;
	padding: 10px 17px;
	margin: 0 auto;
	box-shadow: 0px 0px 10px 0px #39393933;
	transition: .3s;
	position: relative;
	overflow: hidden;
}
.line_btn::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.3); 
    opacity: 0;
    transition: opacity 0.3s;
}

.line_btn:hover::after {
    opacity: 1;
}

  .line_btn_inner {
	display: flex;
	gap: 12px;
	justify-content: center;
  }

  .line_btn_inner p {
	color: #fff;
	font-family: 'Zen Kaku Gothic New', sans-serif;
	font-size: 20px;
	line-height: 40px;
	font-weight: 700;
  }
  .txt_abv_btn{
	font-family: 'Zen Kaku Gothic New', sans-serif;
	color: #06C755;
	font-weight: 500;
	padding: 4px;
	font-size: 16px;
	padding-top: 12px;
  }
/* Button ends */


/* problem-------------------- */

.problem{
	padding: 0 20px 20px;
	padding-bottom: 65px;
	background: #416586;
	margin-top: 36px;
}

.problem::before {
	content: "";
	background-image: url("/images/lifedesign/wave-2.svg");
	left: 0;
	width: 100%;
	padding-top: 40px;
	mask-size: auto;
	position: absolute;
	margin: -15px 0px;
	}

.problem_inner {
	background: #416586;
	display: flex;
	flex-direction: column;
	gap: 10px;
	justify-content: center;
	padding: 26px 0 0 0;
	border-radius: 20px;
  }

.section-title::before,
.section-title::after {
    content: "";
    display: inline-block;
    width: 20px;
    height: 20px; 
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.section-title{
	color: #ffffff;
	font-weight: 700;
	text-align: center;
	position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
	font-size: 20px;
	padding: 0px 0px 16px;
  }

.section-title::before {
    background-image: url("/images/lifedesign/waterdrop.svg"); 
    margin-right: 2px;
}

.section-title::after {
    background-image: url("/images/lifedesign/waterdrop.svg"); 
    margin-left: 2px; 
	transform: scaleX(-1);
}

.section-title-1 {
	color: #F17D6D;
	text-align: center;
	line-height: 28.96px;
	font-weight: 700;
	font-size: 20px;
	margin-top: 16px;
}


/* solution1-------------------- */

.solution-inner {
	padding-bottom: 70px;
}
.flex-items{
	flex-direction: column;
	text-align: -webkit-center;
}

  .wave{
	width: 100%;
	margin-top: -4px;
  }

  .text-box{
	background-color: #FFE4CA;
	border-radius: 16px;
	padding: 10px 5px 10px 5px;
	width: 46%;
	margin-top: -22%;
	position: relative;
  }
  .text-box p{
	color: #F17D6D;
	font-weight: 700;
	text-align: center;
	font-size: 18px;
	line-height: 26.06px;
  }
  .text-box-2{
	background-image:url("/images/lifedesign/Red_banner_bg.svg") ;
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	font-family: 'Zen Kaku Gothic New', sans-serif;
	color: white;
	text-align: center;
	padding: 6px;
  }

  .text-box-2{
	font-size: 20px;
	font-weight: 600;
	width: 60%;
	margin-top: 17px;
  }

  .hiragana{
	font-family: 'Zen Kaku Gothic New', sans-serif;
	font-weight:700;
	font-size:16px;
	line-height:23.17px;
  }

  .section-title-2{
	color: #554B3B;
	font-weight: 700;
	text-align: center;
	position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
	font-size: 24px;
	padding: 36px 0px 24px;
  }

.section-title-2::before,
.section-title-2::after {
    content: "";
    display: inline-block;
    width: 30px;
    height: 30px; 
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.section-title-2::before {
    background-image: url("/images/lifedesign/Vector.svg"); 
    margin-right: 10px;
}

.section-title-2::after {
    background-image: url("/images/lifedesign/Vector.svg"); 
    margin-left: 10px; 
	transform: rotate(90deg);
}

.section3_img{
	width: 80%;
	margin-top: 40px;
}


/* Support-------------------- */

.support::before{
	content: "";
	background-image: url("/images/lifedesign/wave.svg");
	content: "";
	width: 100%;
	padding-top: 40px;
	mask-size: auto;
	position: absolute;
	margin: -25px 0px;
}

.support {
	background-color: #FFF2DD;
	position: relative;
	padding-bottom: 45px;
  }
.support .solution-inner {
	padding-bottom: 24px;
}
  .support1, 
  .support2, 
  .support3, 
  .support4,
  .solution2 {
	display: flex;
	flex-direction: column;
	text-align: center;
  }

  .content_title{
	background-color: #FFAE64;
	border-radius: 100px;
	text-align: center;
	color: #ffffff;
	margin-bottom: -14px;
	padding: 4px 12px 4px 12px;
	font-weight: 700;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 16px;
  }

  .content{
	display: flex;
	align-items: center;
	padding: 10px 0px 0px;
	gap: 12px;
  }

  .content_text{
	font-weight: 500;
	position: relative;
	padding-left: 20px;
  }

  .content_text::before{
	content: '';
    position: absolute;
    top: 10px;
    left: 8px;
    width: 4px;
    height: 4px;
    background-color: #222;
    border-radius: 50%;
  }

  .content_description{
	text-align: left;
  }

  .content_description h2{
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 20px;
	font-weight: 700;
	line-height: 28.96px;
	text-align: left;
	color: #F17D6D;
	padding-bottom: 8ox;
  }

  .content_description{
	color: #554B3B;
	width: 100%;
	display: grid;
	gap: 4px;
  }
  
  .support_inner {
	background-color: #ffffff;
	position: relative;
	padding: 20px 16px;
  }
  
  .support1 .support_inner, .support3 .support_inner {
	border-left: none;
	border-radius: 0px 12px 12px 0px;
  }

  .support1, .support3 {
	padding-right: 16px;
	margin-bottom: 20px;
  }
 
  .support2, .support4 {
	padding-left: 16px;
	margin-bottom: 20px;
  }
  
  .support2 .support_inner, .support4 .support_inner {
	border-right: none;
	border-radius: 12px 0px 0px 12px;
  }

 .support_txt{
	font-family: 'Zen Kaku Gothic New', sans-serif;
	font-size: 20px;
	font-weight: 700;
	line-height: 28.96px;
	text-align: center;
	color: #F17D6D;
	padding: 34px 0px 0px;
 }

.support .section-title-2{
	padding: 36px 0px 0px;
  }


/* add friend-------------------- */

.solution2{
	background-color: #FFAE64;
}
.solution2 .line_btn{
	box-shadow: 0px 0px 10px 0px #FFFFFF80;
}
.add_friend{
	font-family: 'Zen Kaku Gothic New', sans-serif;
	background-image: url("/images/lifedesign/cream_bg.svg");
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	color: #554B3B;
	font-size: 16px;
	font-weight: 500;
	padding: 10px 0px 20px;
	z-index: 2;
}

.section-title-3 {
	font-family: 'Zen Kaku Gothic New', sans-serif;
	font-size: 26px;
	font-weight: 700;
	text-align: center;
	color: #ffffff;
	margin: 0px auto 16px;
	background-image: url("/images/lifedesign/Rectangle\ 60.svg");
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	padding: 10px;
	margin: 15px;
}

.note{
	font-size: 24px;
	color: #fff;
	font-weight: 700;
	line-height: 28.96px;
}

.underline{
	text-decoration-line: underline;
	text-underline-offset: 5px;
	text-decoration-skip-ink: none;
	text-decoration-thickness:2px;
	text-decoration-color:#FFF8D3;

}

.offers{
	background-color: #fff;
	border-radius: 100px;
	padding: 20px 0px;
	margin: 45px;
	position: relative;
	margin-top: 50px;
	padding-top: 40px;
}

.sub-copy3, .sub-copy4{
	position: absolute;
	height: 120px;
	width: 120px;
	right: 33%;
}
.sub-copy3{
	z-index: 0;
}
.sub-copy4{
	z-index: 1;
}

@keyframes rotate-batch {
	0% {transform: rotate(0);}
	100% {transform: rotate(360deg);}
}


.sub-copy3::before, .sub-copy4::before {
	content: "";
	background: url(/images/lifedesign/section6_star.svg) no-repeat center center;
	background-size: 52%;
	position: absolute;
	top: -100px;
	left: 2px;
	z-index: -1;
	width: 96%;
	height: 96%;
	overflow: hidden;
	animation: rotate-batch 20s linear infinite;
}
.spin_txt3, .spin_txt4{
	position: relative;
	left: -1%;
	top: -46%;
	width: 20px;
	height: 20px;
}
.spin_txt4{
	left: 0%;
}
.gift1,
.gift2{
	font-size: 20px;
	font-weight: 700;
	color: #F17D6D;
	line-height: 19.36px;
}
.gift1 p,
.gift2 p{
	padding-bottom: 12px;
}
.bl_txt{
	color: #554B3B;
}
.pk_txt{
	color: #F17D6D;
}


/* testimony-------------------- */

.testimony::before{
	content: "";
	background-image: url("/images/lifedesign/wave.svg");
	content: "";
	width: 100%;
	padding-top: 40px;
	mask-size: auto;
	position: absolute;
	margin: -25px 0px;
}

.testimony {
	background-color: #FFF2DD;
	position: relative;
	padding-bottom: 60px;
  }

.testimony::after{
	content: "";
	background-image: url("/images/lifedesign/wave_white.svg");
	display: block;
	mask-size: auto 100%;
	position: absolute;
	left: 0;
	width: 100%;
	padding-bottom: 40px;
	margin: 30px 0px;
}.testimony .solution-inner {
	padding-bottom: 0px;
}

.testimony-wrap{
  display: flex;
  flex-direction: column;
  text-align: center;
  padding: 0 16px;
  gap: 20px;
}

.testimony-content {
	background-color: #ffffff;
	position: relative;
	padding: 20px 16px;
	border-radius: 12px;
  }

  .testimony_description{
	text-align: left;
	margin-bottom: 10px;
	color: #554B3B;
	font-size: 14px;
  }

  .testimony_head{
	font-size: 20px;
	font-weight: 700;
	line-height: 28.96px;
	text-align: left;
	color: #F17D6D;
	display: flex;
	align-items: center;
	gap: 12px;
  }

  .testimony_head::after{
	content: "";
	flex-grow: 1;
	height: 1px;
	display: block;
	background: #F17D6D;
  }

  .testimony_img {
	margin: 15px 0px;
  }

  .person{
	font-size: 12px;
	text-align: Right;
	color: #BCB1A0;
  }


/* footer-------------------- */

.sp-footer {
	font-size: 10px;
	text-align: center;
	overflow: hidden;
}

.footer_txt {
	color: #F17D6D;
	text-align: center;
	line-height: 28.96px;
	font-weight: 700;
	font-size: 20px;
	margin-top: 40px;
	margin-bottom: 32px;
}

.footer_grass{
	width: 100%;
	position: relative;
	margin-bottom: -14%;
	margin-top: -6%;
}

.copyright{
	font-size: 12px;
	font-weight: 400;
}
.left-content,
.right-content {
	display: none;
}

/* 要素フェイドイン用 (from top to bottom) */
.fade-in {
    opacity: 0;
    transform: translateY(-20px); 
    transition: opacity 1.5s, transform 1s;
}
.fade-in.active {
    opacity: 1;
    transform: translateY(0px); 
}

.fade {
    opacity: 0;
    transition: opacity 1.5s ease-in; 
}

.fade.active {
    opacity: 1;
}

/* 要素フェイドアウト用 */
/* .fade {
    opacity: 0;
    transform: translateY(20px); 
    transition: opacity 1.5s, transform 1s;
}
.fade.active {
    opacity: 1;
    transform: translateY(0px); 
} */

@media screen and (min-width: 740px){
	.main {
		max-width: 424px;
		margin: 0 auto;
	}
	
	.fuwafuwa {
		animation: fuwafuwa 3s ease-in-out infinite alternate;
		display: inline-block;
		transition: 1.5s ease-in-out;
		margin-top: 15px;
	  }

	.img1 {
		animation: fuwafuwa 2.5s ease-in-out infinite alternate;
	}
	.img2 {
		animation: fuwafuwa 2.8s ease-in-out infinite alternate;
	}
	.img3 {
		animation: fuwafuwa 2.9s ease-in-out infinite alternate;
	}
	.img4 {
		animation: fuwafuwa 2.6s ease-in-out infinite alternate;
	}
	
	  @keyframes fuwafuwa {
		0% {
		  transform:translate(0, 0) rotate(-7deg);
		}
		50% {
		  transform:translate(0, -7px) rotate(0deg);
		}
		100% {
		  transform:translate(0, 0) rotate(7deg);
		}
	  }

	.left-content {
		display: flex;
		flex-direction: column;
		flex: 1;
		padding: 40px;
		height: 100vh;
		position: sticky;
		top: 0;
		overflow: hidden;
		/* background-color: transparent; */
	}

	.grass{
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		margin-top: -16%;
        margin-left: -65%;
        margin-right: -12%;
        height: 40%;
		background-image: url('/images/lifedesign/leaf_pc.svg'); 
		background-repeat: repeat-x;
		background-size: contain; 
	}
	.menu {
		margin-top: auto;
		margin-bottom: auto;
		text-align: center;
	}
	.pc_txt h1{
		font-size: 37px;
	}

	.img1, 
	.img2, 
	.img3, 
	.img4{
		width: 13%;
		height: 13%;
		position: absolute;
	}

	.left-content .img1{
		top: 24%;
		left: 28%;
		transform: rotate(-15deg);
	}
	.left-content .img2{
		bottom: 26%;
		left: 12%;
		transform: rotate(-15deg);
	}
	.left-content .img3{
		top: 30%;
		right: 26%;
	}
	.left-content .img4{
		top: 66%;
		right: 12%;
		transform: rotate(15deg);
	}

	.btn_pc{
		text-align: center;
	}
	.btn_pc .line_btn {
		display: block;
		border-radius: 30px;
		background-color: #06C755;
		padding: 8px 17px 7px; 
		margin: 0 auto;
		box-shadow: 0px 0px 10px 0px #39393933;
		width: 56%;
	  }
	.btn_pc .line_btn_inner {
		display: flex;
		gap: 12px;
		justify-content: center;
	}
	
	.btn_pc .line_btn_inner p {
		color: #fff;
		font-size: 20px;
		line-height: 40px;
	}

	  .pc_txt{        
		position: relative;
        margin: auto;
        margin-top: 18%;
        gap: 50px;
        display: flex;
        flex-direction: column;
	}

	  .pc_txt h1 {
		font-weight: 700;
		font-size: 37px;
		line-height: 53.58px;
		text-align: center;
		color: #554B3B;
	}
	
	.pc_txt h1 span.highlight {
		font-size: 46px; /* ライフデザイン */
		line-height: 66.61px;
		color: #F17D6D;
		text-decoration-line: underline;
		text-underline-offset: -7px;
		text-decoration-skip-ink: none;
		text-decoration-thickness:15px;
		text-decoration-color:#FFE4CA;

	}
	.pc_txt h1 span.highlight-ibj {
		font-size: 41px; /* IBJ */
		line-height: 59.37px;
		letter-spacing: 0.06em; 
	}

	.pc_txt h1 span {
		font-size: 33px; /* Default for の and が */
		line-height: 47.78px;
		letter-spacing: 0.06em;
	}
	
	.pc_txt h1 span.sup {
		font-size: 39px; /* サポート */
		line-height: 56.47px;
		letter-spacing: 0.06em; 
	}
	
}

@media screen and (min-width: 1080px){
	.right-content {
		display: flex;
		justify-content: flex-end;
		flex-direction: column;
		padding: 4%;
		height: 100vh;
		position: sticky;
		top: 0;
		overflow: hidden;
	}
	.right-content::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		margin-top: -116%;
        margin-left: -65%;
        height: 36%;
		background-image: url('/images/lifedesign/leaf_pc.svg'); 
		background-repeat: no-repeat;
		background-size: cover; 
	}
}

@media screen and (max-height: 700px) {
	.left-content .img1 {
        top: 18%;
	}
	.left-content .img3 {
        top: 20%;
	}
}

@media screen and (max-width: 1006px){
	.img3{
		top: 40%;
	}
	  .pc_txt h1 {
		font-size: 30px;
	}
	
	.pc_txt h1 span.highlight {
		font-size: 37px; 
	}
	
	.pc_txt h1 span.highlight-ibj {
		font-size: 35px; 
	}

	.pc_txt h1 span {
		font-size: 24px;
	}
	
	.pc_txt h1 span.sup {
		font-size: 30px;
	}
}

@media screen and (max-width: 904px){
	.img1, .img2, .img3, .img4{
		display: none;
	}
	.pc_txt {
        margin-top: -50%;
	}
	.pc_txt h1 {
		font-size: 27px;
	}
	.pc_txt h1 span.sup {
		font-size: 27px;
	}
	.pc_txt h1 span.highlight {
        font-size: 34px;
    }
	.btn_pc .line_btn {
		width: 88%;
	}
}

@media screen and (max-width: 404px) {
	.section-title {
		font-size: 18px;
	}
	.sub-copy, .sub-copy2 {
		height: 106px;
		width: 106px;
		bottom: 15px;
	}
	.spin_txt1{
		width: 56px;
		height: 56px;
	}
	.spin_txt2{
		width: 64px;
		height: 64px;
	}
	.sub-copy3, .sub-copy4{
		right: 28%;
	}
	.testimony::after{
		margin: 34px 0px;
	}
	.testimony_head1 h2::after{
		width: 138px;
	}
	.testimony_head2 h2::after {
		width: 198px;
	}
	.testimony_head3 h2::after {
		width: 218px;
	}
    
}
	@media screen and (max-width: 355px) {
	.add_friend{
		font-size: 14px;
	}
	.section-title {
		font-size: 16px;
	}
	.section-title-3{
		font-size: 24px;
	}
	.sub-copy3, .sub-copy4 {
		right: 25%;
	}
	.testimony_head1 h2::after{
		width: 120px;
	}
	.testimony_head2 h2::after {
		width: 178px;
	}
	.testimony_head3 h2::after {
		width: 200px;
	}
}
@media screen and (max-width: 365px) {
   .testimony_head1 h2::after{
	   width: 130px;
   }
   .testimony_head2 h2::after {
	   width: 188px;
   }
   .testimony_head3 h2::after {
	   width: 210px;
   }
    .sub-copy, .sub-copy2 {
        height: 102px;
        width: 102px;
        bottom: 12px;
    }
	.spin_txt1 {
        width: 52px;
        height: 52px;
    }
	.spin_txt2 {
        width: 60px;
        height: 60px;
    }
}