@charset "UTF-8";

/* # =================================================================
   # フォント設定
   # ================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Kosugi+Maru&family=Zen+Maru+Gothic&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: #666464;
	--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-base1: #49bcbd;
	--color-base2: #7c6854;
	--color-red: #f19ca6;
	--color-red2: #fc7760;
	--color-yellow: #fff100;
	--color-blue: #49b9ba;
	--color-bg: #ebf6f6;
	
	--global-space: 20px;/*主に余白の一括管理用*/
}

/* # =================================================================
   # 共通設定
   # ================================================================= */
body {
	font-family: 'Inter', 'Kosugi Maru' ,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: #fff;
	z-index: -1;
}



/* # =================================================================
   # gsap
   # ================================================================= */
.trigger-area-load-head{opacity: 0;}
.trigger-area-load{opacity: 0;}
.trigger-area-feed{opacity: 0;}
.trigger-area-fvcheck-load{opacity: 0;}
.trigger-area-check-load{opacity: 0;}
.trigger-area-change-load{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;text-align:center;}
	#pc-left .left-img img{width:100%;}
	
	#pc-left .main-img img{width:80%;}
	
	#pc-left .leftlogo-img{text-align:center;padding-top:25px;}
	#pc-left .leftlogo-img img{width:250px;}
	
}


/* # =================================================================
   # 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{font-family: 'Inter', "Kosugi Maru", sans-serif;width:100%;margin-left:auto;margin-right:auto;position: relative;overflow: hidden;}
.btn-box img{width:100%;}

.btn-box a{color:var(--color-blue);}


.cta-tel-box{
	 display:flex;
	width:fit-content;
	margin:0 auto;
	margin-top:5px;
	padding:5px 8px;
	font-size:14px;
}


#cta .cta-tel-box{
	 background-color:var(--color-white);
	 display:flex;
	width:fit-content;
	margin:0 auto;
	margin-top:5px;
	padding:5px 8px;
	border-radius:30px;
	border:solid 1px var(--color-base1);
	font-size:14px;
}


.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: 25px;
}

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


#fv{text-align:center;}

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

#fv h1{
	display:inline-block;
	font-size:18px;
	font-weight:700;
	line-height:150%;
	padding:20px 0 5px 0;
	color:var(--color-base1);
	border-bottom:dashed 1px var(--color-base1);
	margin-bottom:10px;
}

#fv .txt-box{
	font-size:16px;
	font-weight:700;
	color:var(--color-base1);
	margin-bottom:20px;
}


#fv .contents {
	background: url("../img/fv_bg_bottom.webp") no-repeat center bottom / 100%;
	background-color:var(--color-bg);
}


#fv .nayami{
	padding:30px 0 80px 0;
}

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

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

#fv .flex{
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content:space-between;
    flex-wrap:wrap;
	row-gap:15px;
}

#fv .flex-item{width:48.5%;}
#fv .flex-item img{width:100%;}

#fv .txt-box{
	font-size:14px;
	line-height:1.5;
	font-weight:500;
	color:var(--color-base1);
}

@media screen and (min-width:599px) {
	#fv h1{font-size:20px;}
}


/* # =================================================================
   # point0
   # ================================================================= */

#point0 .contents {
	background-color:var(--color-white);
	padding:40px 0;
}

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

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

#point1 .contents {
	background-color:var(--color-bg);
	padding:40px 0;
}

#point1 .title1 img{width:85%;}

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



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

#point2 .contents {
	background-color:var(--color-white);
	padding:40px 0;
}

#point2 .title1{padding-bottom:20px;}
#point2 .title1 img{width:180px;}

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

#point2 .flex{
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content:space-between;
    flex-wrap:nowrap;
	align-items:center;
	column-gap:15px;
}

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

#point2 .flex-item-txt{
	flex:1;
	font-size:14px;
	line-height:1.5;
	text-align:left;
}

#point2 .flex-item-txt span{
	display:block;
	font-size:18px;
	font-weight:700;
	padding-top:10px;
}

#point2 .txt-box{
	font-size:14px;
	line-height:1.5;
	text-align:left;
	padding:20px 0;
}

/* # =================================================================
   # point3
   # ================================================================= */
   
#point3 .contents{
	background-color:#ebf6f6;
	padding:40px 0;
}

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

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


#point3 .flex{
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content:space-between;
    flex-wrap:nowrap;
	align-items:center;
	column-gap:20px;
}

#point3 .flex-item{width:32%;position:relative;}

#point3 .flex-item:not(:last-child)::after{
    content: "";
	width: 10px;
	height: 25px;
	background: url("../img/point3_flow_arrow.svg") no-repeat center / 100%;
	position: absolute;
	top: 50%;
	right: -11%;
	margin-top: -11.5px;
}

/*-----------movie--------------------------*/

.mv-wrap {
  width: 100%;
  position:relative;
}

.mv-wrap video {
  width: 100%;
  height: auto;
  display: block;
}

.sound-btn {
  position: absolute;
  bottom: 20px;
  z-index: 5;
  background: rgba(0,0,0,0.5);
  border: none;
  color: #fff;
  font-size: 14px;
  padding: 10px 15px;
  border-radius: 1em;
  cursor: pointer;
}

#playBtn {
  right: 20px; /* 音声ボタンより左 */
}




/* # =================================================================
   # point4
   # ================================================================= */
   
#point4 .contents{
	background-color:var(--color-white);
	padding:40px 0;
}

#point4 .title1{padding-bottom:40px;}
#point4 .title1 img{width:80%;}

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


/* # =================================================================
   # point5
   # ================================================================= */
   
#point5 .contents{
	background-color:#49bcbd;
	background: linear-gradient(0deg, rgba(73, 188, 189, 0.2) 0%, rgba(73, 188, 189, 1) 90%);
	padding:0px 0 40px 0;
}


#point5 .img-box img{width:100%;}
#point5 .img-box2 img{width:90%;}

#point5 .txt-box{
	font-size:18px;
	line-height:1.8;
	font-weight:500;
	color:var(--color-white);
}

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

footer .contents{background-color:var(--color-bg);padding-bottom:200px;}
footer small {font-size: 100%;}
footer {
	font-size: 0.8rem;
	text-align: center;
}

footer .logo{margin:30px 0 20px 0;}
footer .logo img{
	width:180px;
}


footer .img-box img{
	width:100%;
}

footer .text-box{
	font-size:14px;
	line-height:1.8;
	text-align:center;
}

footer .text-box a{color:var(--color-base2);}

.shop-ul{
	list-style: none;
	margin:30px 0;
}

.shop-ul li{
	text-align:left;
	padding:10px 0;
	border-top:solid 1px var(--color-gray5);
	position: relative;
}

.shop-ul li:first-child{
	border: none;
	padding-top:0;
}

.shop-content{
	display:block;
	line-height:180%;
	text-align:left;
	margin-left:100px;
}

.shop-name{float:left;font-weight:Bold;}

.shop-content ul{list-style-type: disc;padding-left:1.2rem;}
.shop-content ul li{
	border-top:none;
	padding:5px 0;
}

.shop-sns{
	display:flex;
	justify-content:center;
	align-items:center;
	column-gap:20px;
	margin:30px 0;
}
.shop-sns img{width:50px;}

