@charset "UTF-8";

/* # =================================================================
   # フォント設定
   # ================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');



/* # =================================================================
   # Global selectors
   # ================================================================= */
html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%; /* Prevent adjustments of font size after orientation changes in iOS */
  word-break: normal;
  -moz-tab-size: 4;
  tab-size: 4;
  min-width: 320px
}

*,
::before,
::after {
  background-repeat: no-repeat; /* Set `background-repeat: no-repeat` to all elements and pseudo elements */
  box-sizing: inherit;
}

::before,
::after {
  text-decoration: inherit; /* Inherit text-decoration and vertical align to ::before and ::after pseudo elements */
  vertical-align: inherit;
}

* {
  padding: 0; /* Reset `padding` and `margin` of all elements */
  margin: 0;
}



/* # =================================================================
   # 共通カラー / font-size
   # ================================================================= */

:root {
	--color-base: #4d4d4d;
	--color-bk: #000000;
	--color-white: #ffffff;
	--color-gray1: #424242;
	--color-gray2: #757575;
	--color-gray3: #DBDBDB;
	--color-gray4: #eeeeee;
	--color-gray5: #f7f7f7;
	--color-gray6: #F8F5F0;
	--color-green1: #5391a8;
	--color-green2: #5cbcb9;
	--color-green3: #234c6a;
	--color-red: #f19ca6;
	--color-red2: #fc7760;
	--color-yellow: #fff100;
	--color-blue: #7ab8e5;
	--color-blue2: #5391a8;
	--color-bg: #ffffff;
	
	--global-space: 20px;/*主に余白の一括管理用*/
}

/* # =================================================================
   # 共通設定
   # ================================================================= */
body {
	font-family: 'Inter', 'Noto Sans JP' ,serif;
	font-optical-sizing: auto;
	font-display: swap;
	font-size: 16px;
	-webkit-font-feature-settings: "palt" 1;
	font-feature-settings: "palt" 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	-webkit-overflow-scrolling: touch;
	color:var(--color-base);
	overflow-x: hidden;
	margin: 0;padding: 0;
}

body * {box-sizing: border-box;}


html,body {height: 100%;}

img, svg {
  vertical-align: middle
}

ol, ul {
  list-style: none
}

body>img {
  display: block;
  height: 0!important;
  font-size: 0
}

main {
	text-align:center;
	width:100%;
	margin-left:auto;
	margin-right:auto;
}

section{margin:0;padding:0;}

/*-----セクション幅----*/
.sec-content{background-color: transparent;width:90%;margin-left:auto;margin-right:auto;vertical-align: middle;}


.page-space-top{padding-top:50px;}
.page-space-btm{padding-bottom:50px;}

.space-block-top30{margin-top:30px;}
.space-block-btm30{margin-bottom:30px;}

.space-block-top50{margin-top:50px;}
.space-block-btm50{margin-bottom:50px;}

.space-block-top80{margin-top:80px;}
.space-block-btm80{margin-bottom:80px;}


/* # =================================================================
   # background
   # ================================================================= */

.body-bg {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: url("../img/pc_bg.webp") no-repeat center center / cover;
	z-index: -1;
}



/* # =================================================================
   # gsap
   # ================================================================= */
.trigger-area-load-head{opacity: 0;}
.trigger-area-load{opacity: 0;}
.trigger-area-feed{opacity: 0;}
.trigger-area-nayami-load{opacity: 0;}
.trigger-area-nayami-scale{opacity: 0;}
.trigger-area-scale{opacity: 0;}


/* # =================================================================
   # div link
   # ================================================================= */

.linkbox {
    position: relative;
	cursor: pointer;
}

.linkbox .divlink{
	display: block;
    position: absolute;
    top: 0;
    left: 0;
    height:100%;
    width: 100%;
	z-index:1;
}


/* # =================================================================
   #共通txt
   # ================================================================= */
   
.txt-l{text-align:left;}
.txt-r{text-align:right;}
.txt-c{text-align:center;}


/* # =================================================================
   # PC左
   # ================================================================= */

#pc-left {
	display: none;
}

@media screen and (max-width:1100px) {
	#pc-left .left-img{display: none;}
}

@media screen and (min-width:769px) {

	#pc-left {
		display: flex;
		position: fixed;
		top: 0;
		left: 0;
		width: calc(100vw - 515px - 20vw);
		height: 100vh;
		z-index: 1;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		background: linear-gradient(90deg, rgba(255, 255, 255, 0) 98%, rgba(0, 0, 0, 0.2) 100%);
	}
	
	#pc-left .left-img{width:55%;max-width:530px;min-width:400px;}
	#pc-left .left-img img{width:100%;}
	
	#pc-left .leftlogo-img{text-align:center;padding-top:25px;}
	#pc-left .leftlogo-img img{width:180px;}
	
}


/* # =================================================================
   # PC右
   # ================================================================= */

#pc-right {
	display: none;
}


@media screen and (min-width:769px) {

	#pc-right {
			display: flex;
			position: fixed;
			top: 0;
			right: 0;
			width: 20vw;
			height: 100vh;
			z-index: 1;
			flex-direction: column;
			justify-content: center;
			align-items: center;
			background: linear-gradient(270deg, rgba(255, 255, 255, 0) 95%, rgba(0, 0, 0, 0.2) 100%);
		}
}

/* # =================================================================
   # contents
   # ================================================================= */
.contents {
	color: var(--color-base);
	position: relative;
	overflow-x: hidden;
}

@media screen and (min-width:769px) {
	.contents {
		width: 500px;
		margin: 0 20vw 0 auto;
	}
}


/* # =================================================================
   # cta button
   # ================================================================= */
.btn-box{width:100%;margin-left:auto;margin-right:auto;position: relative;overflow: hidden;}
.btn-box img{width:100%;}


.shine-btn::after {
	animation: 3s 0s shine linear infinite;
	background: linear-gradient(to right, rgba(255,255,255,0) 25%, rgba(255,255,255,.6) 50%, rgba(255, 255, 255, 0) 75%);
	content: '';
	height: 100%;
	left: -100%;
	position: absolute;
	top: 0;
	transform: skewX(-15deg);
	width: 100%;
}

@keyframes shine {
	20% {
		left: 100%;
	}
	100% {
		left: 100%;
	}
}

/* # =================================================================
   # 固定CTA
   # ================================================================= */

#cta {
	width: 100%;
	position: fixed;
	bottom: -200px;
	left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
	z-index: 10;
	transition: 0.3s;
	-webkit-transition: 0.3s;
}

#cta.show {
	bottom: 20px;
}

/* # =================================================================
   # fv
   # ================================================================= */


.fv-img{width:100%;}
.fv-main-img img{width:100%;}

#fv h1{
	font-size:18px;
	font-weight:700;
	line-height:150%;
	letter-spacing:2px;
	text-align:center;
	padding:0 0 20px 0;
	color:var(--color-white);
}

#fv h1 span{
	background-color:var(--color-yellow);
	color:var(--color-red);
	padding:0 10px;
}

#fv .contents {background-color:var(--color-bg);}

#fv .cont-bg{
background-color:var(--color-red);
}

#fv .nayami{
	background: #F19CA6;
	background: linear-gradient(180deg, rgba(241, 156, 166, 1) 0%, rgba(255, 255, 255, 1) 20%);
	padding-bottom:60px;
}

#fv .img-box img{width:100%;}

#fv .nayami-box{text-align:center;padding:20px 0;}
#fv .nayami-box img{width:90%;}


#fv .flex{
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content:space-between;
	flex-direction: row;
    flex-wrap:wrap;
	align-items:center;
}

#fv .flex.reverse{
	flex-direction: row-reverse;
}

#fv .flex-item-illust{width:70px;}
#fv .flex-item-illust img{width:100%;}

#fv .flex-item-txt{
	flex:1;
	text-align:center;
	color:var(--color-white);
	background:var(--color-blue);
	font-size:18px;
	font-weight:700;
	padding:10px 5px;
	border-radius:10px;
	letter-spacing:2px;
}


@media screen and (min-width:599px) {
	#fv h1{font-size:23px;}
	#fv .flex-item-illust{width:80px;}
	#fv .flex-item-txt{font-size:20px;}
}



/* # =================================================================
   # point1
   # ================================================================= */


#point1 .img-box img{width:100%;}
#point1 .img-box2 img{width:70%;}

#point1 .point0_bg{
	background-color:#fef3f2;
}

#point1 .point1_bg{
	background-color:var(--color-red);
	padding-top:40px;
	padding-bottom:30px;
	border-radius:1em 1em 0 0;
}

#point1 .point1_bg2{
	background: url("../img/point1_img5.svg") no-repeat center top / 100%;
	background-color:#fbe1e4;
	padding-top:20px;
	padding-bottom:20px;
}

#point1 .title2 img{width:100%;}

#point1 .txt-box{
	font-size:28px;
	font-weight:700;
	line-height:150%;
	letter-spacing:2px;
	text-align:center;
	padding:0 0 20px 0;
	color:var(--color-white);
}

#point1 .txt-box span{
	font-size:38px;
	background-color:var(--color-yellow);
	color:var(--color-red);
	padding:0 10px;
}

#point1 .txt-box2{
	font-size:24px;
	font-weight:700;
	line-height:150%;
	letter-spacing:2px;
	text-align:center;
	padding:0 0 20px 0;
	color:var(--color-red2);
}

#point1 .txt-box2 span{
	background-color:var(--color-yellow);
	color:var(--color-red2);
	padding:0 10px;
}


@media screen and (min-width:599px) {
	#point1 .txt-box2{font-size:28px;}
}

/* # =================================================================
   # point2
   # ================================================================= */

#point2 .contents{
	background: url("../img/point2_bg.webp") no-repeat center center / cover;
	padding-top:40px;
	padding-bottom:40px;
	overflow: hidden;
}

#point2 .title1 img{width:70%;}

#point2 .txt-box1{
	color:var(--color-blue2);
	font-size:20px;
	font-weight:700;
	line-height:150%;
	letter-spacing:2px;
}

#point2 .check {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content:space-between;
    flex-wrap:wrap;
	row-gap:10px;
	list-style-type: none;
  
}
#point2 .check li {
  position: relative;
  font-size:18px;
  font-weight:700;
  letter-spacing:1px;
  color:var(--color-bk);
  text-align:left;
  line-height: 1.5;
  width:100%;
  background-color:var(--color-white);
  padding:10px 20px 10px 50px;
  border-radius:10px;
}


#point2 .check li::before,
#point2 .check li::after {
    position: absolute;
    top: 50%;
    height: 1em;
    content: '';
}
#point2 .check li::before {
    left: 15px;
    transform: translateY(-50%);
    width: 1em;
    border: 1px solid var(--color-blue2);
}
#point2 .check li::after {
    left: 1.2em;
    transform: translateY(-75%) rotate(45deg);
    width: 0.5em;
    border-bottom: 3px solid var(--color-blue2);
    border-right: 3px solid var(--color-blue2);
}


#point2 .flex{
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content:space-between;
	flex-direction: row;
    flex-wrap:nowrap;
	align-items:center;
	margin:30px 0;
	column-gap:10px;
}

#point2 .flex-item-illust{width:100px;}
#point2 .flex-item-illust img{width:100%;}

#point2 .flex-item-txt{
	flex:1;
	text-align:left;
	color:var(--color-white);
	background:var(--color-blue);
	font-size:16px;
	font-weight:700;
	padding:10px 15px;
	border-radius:10px;
	letter-spacing:2px;
}

#point2 .other-box{
	background-color:#ebf4fb;
	padding:20px;
	border-radius:10px;
}

#point2 .title-border {
    display: flex;
    align-items: center;
	color: var(--color-blue2);
	font-weight:700;
	font-size:18px;
	margin-bottom:20px;
}

#point2 .title-border:before,
#point2 .title-border:after {
    content: "";
    height: 1px;
    flex-grow: 1;
    background-color: var(--color-blue2);
}

#point2 .title-border:before {
    margin-right: 1rem;
}

#point2 .title-border:after {
    margin-left: 1rem;
}

#point2 .other-ul{
	display: flex;
	flex-direction:column;
	row-gap:5px;
}

#point2 .other-ul li{
	background-color: var(--color-white);
	padding:5px 0;
	letter-spacing:1px;
}





/* # =================================================================
   # point3
   # ================================================================= */
   
#point3 .contents{
	background-image:
		/* 上に重ねる斜線パターン */
		repeating-linear-gradient(
			45deg,
			rgba(244,176,184,0.2),
			rgba(244,176,184,0.2) 1px,
			transparent 1px,
			transparent 7px
		),
		/* 下地のグラデーション */
		linear-gradient(
			to bottom,
			#fcebed 0%,
			#ffffff 100%
		);

	padding-top:40px;
	overflow: hidden;
}

#point3 .title1{padding-bottom:40px;}
#point3 .title1 img{width:100%;}

#point3 .title2{margin-top:10px;}
#point3 .title2 img{
  width: 100%;
}

#point3 .img-box{margin-bottom:10px;}
#point3 .img-box img{width:100%;}

#point3 .img-box2{margin-top:30px;}
#point3 .img-box2 img{width:70%;}

#point3 .point3-bg{
		background:
		linear-gradient(
			to right,
			#fcebed 0%,
			#ffffcc 100%
		);
		margin-top:40px;
		padding-bottom:40px;
}

#point3 .check {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content:space-between;
    flex-wrap:wrap;
	row-gap:10px;
	list-style-type: none;
  
}
#point3 .check li {
  position: relative;
  font-size:18px;
  font-weight:700;
  text-align:left;
  letter-spacing:1px;
  color:var(--color-red2);
  line-height: 1.5;
  width:100%;
  background-color:var(--color-white);
  padding:10px 20px 10px 60px;
  border-radius:10px;
}

/* 赤い丸 */
#point3 .check li::before {
  content: "";
  position: absolute;
  left: 15px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  background: #ff3b30; /* 赤 */
  border-radius: 50%;
}

/* チェックマーク */
#point3 .check li::after {
  content: "";
  position: absolute;
  left: 24px;
  top: 50%;
  width: 10px;
  height: 6px;
  border-left: 3px solid #fff;
  border-bottom: 3px solid #fff;
  transform: translateY(-50%) rotate(-45deg);
}


@media screen and (min-width:599px) {
	#point3 .check li {font-size:22px;}
}


/* # =================================================================
   # point4
   # ================================================================= */
   
#point4 .contents{
	background-color:#e5f8f3;
	padding-top:40px;
	overflow: hidden;
}

#point4 .title1 img{width:100%;}

#point4 .title2{padding-bottom:20px;}
#point4 .title2 img{width:100%;}

#point4 .title3 img{width: 100%;}

#point4 .img-box{margin-bottom:5px;}
#point4 .img-box img{width:100%;}

#point4 .img-box2 img{width:80%;}

#point4 .point4-bg{
background: #ffffcc;
background:
		linear-gradient(
			to right,
			#fcebed 0%,
			#ffffcc 100%
		);
}


#point4 .point3-bg2{
	background: #5CBCB9;
	background:
		linear-gradient(
			to right,
			#ff3333 0%,
			#ff9999 100%
		);
	padding-bottom:20px;
}

/* # =================================================================
   # 画像loop
   # ================================================================= */

/* CSS: 無限ループアニメーション */
.loop_wrap {
  display: flex;
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  position: relative;
}

.loop_wrap_h1{height: 30vw;}

.loop {
  display: flex;
  width: auto; /* クローン後の幅を自動調整 */
}

.loop img {
  width: auto;
  height: 100%;
}

@keyframes loop {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%); /* 画像の半分を移動 */
  }
}

@media screen and (min-width:769px) {
	.loop_wrap_h1{height: 10vw;}
}


/* # =================================================================
   # footer
   # ================================================================= */

footer .contents{
	padding:50px 0;
	text-align:center;
	background-color:var(--color-white);
}

footer .flex{
	display:flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items:center;
	row-gap:10px;
}

footer .flex li{
	font-size:12px;
	color:var(--color-gray4);
	position: relative;
	padding: 0 20px;
}

footer .flex li:not(:last-child)::after{
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 14px;
	background-color: var(--color-gray2);
	margin-left: 20px;
}

footer .flex li a{
	color: var(--color-gray2);
	text-decoration:none;
}

footer .copyright{font-size:12px;padding-top:20px;}

