@charset "UTF-8";


/* # =================================================================
   # 共通タイトル
   # ================================================================= */

.main-title{
	width:100%;
	font-family: 'Barlow', 'Noto Sans JP' ,system-ui;
	font-size:80px;
	font-weight:800;
	line-height:1;
	text-align:center;
	background: linear-gradient(90deg, #e461fa 0%, #fd3c91 80%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	text-transform: capitalize;
	margin-bottom:80px;
}

.main-title span{
	display:block;
	font-size:16px;
	font-weight:800;
	color:var(--color-base);
	margin-top:15px;
}



@media screen and (max-width:768px){
	.main-title{font-size:65px;line-height:1.2;}
}


.txt-box{
	width:100%;
	line-height:2rem;
	text-align:left;
}





/* # =================================================================
   # ファーストビュー
   # ================================================================= */
 
.fv-area {
	width:100%;
	overflow:hidden;
	background-image: url(../img/fv_bg.webp);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: right top;
}

.fv-img-box {
	text-align:left;
	z-index:1;
	width: 100%;
	margin-top:80px;
}

.fv-main-txt-box img{width:75%;}

.fv-cont-box{
	width: 80%;
	margin-left:auto;
	margin-right:auto;
	text-align:left;
}

.fv-cont-box img{width:450px;}


/* 画像loop */
.fv_loop_wrap{
	display: flex;
	width: 100%;
	height: 15vw;
	overflow: hidden;
}


.fv_loop_wrap img {
	width: auto;
	height: 100%;
	will-change: transform;
}


@keyframes fvloop {
  0% {
    transform: translate3d(100%, 0, 0);
  }
  to {
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes fvloop2 {
  0% {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-200%, 0, 0);
  }
}

.fv_loop_wrap img:first-child {
	-webkit-animation: fvloop 100s -50s linear infinite;
	animation: fvloop 100s -50s linear infinite;
}

.fv_loop_wrap img:last-child {
	-webkit-animation: fvloop 100s -50s linear infinite;
	animation: fvloop 100s -50s linear infinite;
}




@media screen and (max-width: 900px) {
	.fv-area {
		width:100%;
		overflow:hidden;
		background-image: url(../img/fv_bg_sp.webp);
		background-repeat: no-repeat;
		background-size: cover;
		background-position: center top;
	}
	.fv-img-box {
		text-align:left;
		width: 100%;
		margin-top:200px;
	}
	.fv-main-txt-box img{width:95%;}
	.fv-cont-box{width: 60%;text-align:center;}
	.fv-cont-box img{width:100%;}
	.fv_loop_wrap{height: 25vw;}
}

@media screen and (max-width: 599px) {
.fv-cont-box{width: 90%;text-align:center;}
}


/* # =================================================================
   # fv-bottom
   # ================================================================= */
.fv-bottom-bg{
	background-image: url(../img/bg_pink.webp);
	background-repeat: repeat-y;
	background-size: cover;
}
.fv-bottom-img{text-align:center;padding:80px 0;}
.fv-bottom-img img{width:80%;}



/* # =================================================================
   # nayami
   # ================================================================= */

.nayami-bg{background-color:#e7eaf4;}


#nayami .title{
	font-size:30px;
	line-height:2rem;
	font-weight:800;
	letter-spacing:3px;
	color:var(--color-base);
}
#nayami .title span{
	font-size:50px;
}


#nayami .flex {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content:space-between;
    flex-wrap:wrap;
	row-gap:20px;
	list-style-type: none;
	padding-top:50px;
  
}
#nayami .flex li {
  position: relative;
  font-size:18px;
  font-weight:800;
  color:var(--color-bk);
  text-align:left;
  line-height: 1.8;
  width:49%;
  background-color:var(--color-white);
  padding:10px 20px 10px 50px;
}


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



@media screen and (max-width:900px){
	#nayami .flex li {width:100%;}
}

@media screen and (max-width:768px){
	#nayami .title{
		font-size:20px;
		line-height:2rem;
		font-weight:800;
		letter-spacing:3px;
		color:var(--color-base);
	}
	#nayami .title span{
		font-size:30px;
	}
}


/* # =================================================================
   # about
   # ================================================================= */
.about-bg{
	background-image: url(../img/bg_orange.webp);
	background-repeat: repeat-y;
	background-size: cover;
}

#about .title img{width:100%;}

#about .title-sub{margin:60px 0 40px 0;}
#about .title-sub img{width:500px;}


#about .flex{
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content:space-between;
    flex-wrap:wrap;
}

#about .gap50{row-gap:50px;}
#about .gap10{row-gap:10px;}

#about .flex-item{width:31%;color:var(--color-white);}
#about .flex-item img{width:100%;}
#about .flex-item-title{
	font-size:25px;
	font-weight:800;
	line-height:2rem;
	text-align:left;
	margin:30px 0 20px 0;
}
#about .flex-item-txt{
	font-size:14px;
	font-weight:800;
	text-align:left;
	line-height:2rem;
}

#about .subtitle{
	font-size:35px;
	font-weight:800;
	line-height:2rem;
	text-align:cenrer;
	color:var(--color-white);
	letter-spacing:2px;
	margin-bottom:30px;
}
#about .sub-flex-item{width:32.5%;}
#about .sub-flex-item img{width:100%;}

@media screen and (max-width:768px){
	#about .title-sub img{width:85%;}
	#about .flex-item{width:100%;}
	#about .subtitle{font-size:25px;}
	#about .sub-flex-item{width:100%;}
}

/* # =================================================================
   # price
   # ================================================================= */
.price-bg{
	background-image: url(../img/bg_pink.webp);
	background-repeat: repeat-y;
	background-size: cover;
}

#price .ptitle-txt{
	font-size:25px;
	font-weight:700;
	margin-bottom:30px;
	color:var(--color-base);
}

#price .ptitle-img{margin-bottom:30px;}
#price .ptitle-img img{width:80%;}

#price .title img{width:100%;}
#price .title-sub img{width:80%;}

#price .txt-box{margin:40px 0;font-size:20px;font-weight:800;color:var(--color-white);text-align:center;}
#price .txt-box span{color:var(--color-yellow);}


.price-box{
	padding:40px;
	background-color:var(--color-white);
	width:100%;
	margin-left:auto;
	margin-right:auto;
	border-radius:10px;
}

.price-flex{
	display:flex;
	flex-wrap:wrap;
	justify-content:flex-end;
	margin-left:auto;
	margin-right:auto;
	border:solid 3px var(--color-base);
	margin-bottom:30px;
}

.price-flex-item1{
	font-size:25px;
	font-weight:700;
	width:50%;
	background:var(--color-base);
	color:var(--color-yellow);
	padding:15px;
}

.price-flex-item2{
	font-size:25px;
	font-weight:700;
	width:50%;
	background:var(--color-yellow);
	color:var(--color-base);
	padding:15px;
}

.price-txt-title{
	font-size:18px;
	font-weight:700;
	line-height:1.5rem;
	margin:30px 0 15px 0;
	display: flex;
    align-items: center;
}
.price-txt-title:before,
.price-txt-title:after {
    content: "";
    height: 1px;
    flex-grow: 1;
    background-color: #666;
}

.price-txt-title:before {
    margin-right: 1rem;
}

.price-txt-title:after {
    margin-left: 1rem;
}


table.price-tbl {
	border-collapse: collapse;
	width: 100%;
	margin-bottom:15px;
}
table.price-tbl th,
table.price-tbl td {
	padding: 15px;
	text-align: center;
	vertical-align:middle;
	border:solid 1px var(--color-gray4);
}
table.price-tbl th {
	width: 50%;
	background:var(--color-gray2);
	color:var(--color-white);
}

table.price-tbl td {
	background:var(--color-white);
}

table.price-tbl td a{color:var(--color-bk);}

table.price-tbl td span{font-size:25px;font-weight:700;}

.price-s{font-size:12px;}



/*-------スマホ表示-------------*/

@media screen and (max-width:768px){
	#price .txt-box{font-size:18px;text-align:left;}
	#price .title-sub img{width:100%;}
	.price-flex-item1, .price-flex-item2{width:100%;}
	#price .ptitle-img img{width:100%;}
}

@media screen and (max-width:599px){
	.price-box{padding:30px 15px 15px 15px;}
	table.price-tbl td {
		display: block;
		text-align: center;
	}
	table.price-tbl th {
		display: block;
		border-top: none;
		border-bottom: none;
		width: 100%;
	}
}


/* # =================================================================
   # voice
   # ================================================================= */

.voice-waku{
	position: relative;
}

.voice-box{
	height: calc(100% - 150px);
	background-color:var(--color-base);
	padding:50px;
	border-radius: 15px;
	margin-top:50px;
}

.voice-img{
	position: absolute;
	top:0;
	left: 50%;
	transform: translateX(-50%);
	-webkit-transform: translateX(-50%);
	-ms-transform: translateX(-50%);
}


.voice-img img{
	width:150px;
}


.voice-name{
	font-size:18px;
	font-weight:800;
	color:var(--color-white);
	padding:85px 0 30px 0;
	text-align:center;
}

.voice-title-box{text-align:left;margin-bottom:20px;}
.voice-title{
	display: inline;
	font-size:25px;
	font-weight:800;
	line-height:2.5rem;
	color:var(--color-base);
	background-color:var(--color-white);
	padding-left: 10px;
	padding-right: 10px;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

.voice-txt{
	font-size:16px;
	line-height:2rem;
	font-weight:800;
	text-align:left;
	color:var(--color-white);
}

@media screen and (max-width:900px){
	.voice-box{height: calc(100% - 100px);padding:30px;}
	.voice-name{padding:95px 0 30px 0;}
}

@media screen and (max-width:900px){
	.voice-title{
		display: inline;
		font-size:20px;
		font-weight:800;
		line-height:2rem;
		color:var(--color-base);
		background-color:var(--color-white);
		padding-left: 10px;
		padding-right: 10px;
		-webkit-box-decoration-break: clone;
		box-decoration-break: clone;
	}
}
