@charset "UTF-8";
/****************************** base */

.pcOnly{
	display: block;
}
.spOnly{
	display: none;
}
img,hr{
	transition: all 0.8s;
}
img{
	width: 100%;
	border-style: none;
	vertical-align: bottom;
	display:block;
}
p {
	font-size: 1.4rem;
	line-height: 1.7;
	text-align: justify;
  font-family: "Source Serif 4", serif;
  font-optical-sizing: auto;
  font-weight: 300!important;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
}

_::-webkit-full-page-media, _:future, :root p {
  font-weight: 600;
}
.fade,
.fadeIn,
.fadeIn-L,
.fadeIn-R {
    opacity : 0;
}
.fade.active,
.fadeIn.active,
.fadeIn-L.active,
.fadeIn-R.active {
    opacity : 1;
}
.fade {
    transform : translate(0, 0);
	  transition: all 1.2s ease-out;
}
.fade.active {
    transform : translate(0, 0);
}
.fadeIn {
    transform : translate(0, 100px);
	transition: all 0.8s;
}
.fadeIn.active {
    transform : translate(0, 0);
}
.fadeIn-L {
	transform : translate(20px, 0);
	transition: all 0.8s;
}
.fadeIn-L.active {
    transform : translate(0, 0);
}
.fadeIn-R {
	transform : translate(-20px, 0);
	transition: all 0.8s;
}
.fadeIn-R.active {
    transform : translate(0, 0);
}
.scale {
    transform : scale(0);
		transition: all 1.0s;
		opacity: 0;
}
.scale.active {
    transform : scale(1);
		opacity: 1;
}
.blur{
	  -ms-filter: blur(0);
	  filter: blur(0);
		opacity : 1;
		transition: all 2s;
}
.blur.active{
	  -ms-filter: blur(3px);
	  filter: blur(3px);
		opacity : 0.2;
}
.opacity{
		opacity : 1;
		transition: all 2s;
}
.opacity.active{
		opacity : 0;
}
/****************************** header */
/************bg */
.fv_pc{
  position: relative;
  width: 100%;
  overflow: hidden;
}
.bg{
  position: absolute;
  inset: 0;
  background: linear-gradient(#f3dac8 0%, #ebbfa5 100%);
  transform: scaleX(0);             /* 横幅ゼロから開始 */
  transform-origin: left right;     /* 両端から中央へ */
  animation: expand-bg 1.5s ease forwards;
  height: 70vh;
}
/* bgアニメーション本体 */
@keyframes expand-bg {
  0% {
    transform: scaleX(0);
  }
  100% {
    transform: scaleX(1);
  }
}

/************fv_ttl */
.fv_ttl{
	width: 100%;
  max-width: 1550px;
	height: 74vh;
	display:flex;
	justify-content:flex-start;
	align-items:flex-start;
  position: relative;
}
.fv_img{
  width: 100%;
  max-width: 800px;
  margin: 0 0 0 auto;
  animation: fIfv 1s ease 0s 1 alternate none running;
	-webkit-animation-name: fIfv;
	-webkit-animation-duration: 1s;
	-webkit-animation-timing-function: ease;
	-webkit-animation-delay: 0s;
	-webkit-animation-iteration-count: 1;
	-webkit-animation-direction: alternate;
	-webkit-animation-fill-mode: none;
	-webkit-animation-play-state: running;
}
@keyframes fIfv {
	0% {
		opacity: 0;
		transform: translate3d(0, -30px, 0);
		-webkit-transform: translate3d(0, -30px, 0);
	}
	100% {
		opacity: 1;
		 transform: translate3d(0, 0, 0);
		-webkit-transform: translate3d(0, 0, 0);
	}
}

h1 {
  width: 100%;
  max-width: 700px;
	margin: 4% 0 0 6%;
  position: absolute;
}
h1 div:first-child{
  width: 82%;
  margin: 0 0 3% 0;
}
h1 div{
  position: sticky;
  width: 90%;
  margin: 0;
  z-index: 100;
}
h1 div:last-child{
  width: 90%;
  margin: 0;
  top: 78%;
}
h1 img{
	padding: 0;
	animation: fI 2.0s ease 0s 1 alternate none running;
	-webkit-animation-name: fI;
	-webkit-animation-duration: 2.0s;
	-webkit-animation-timing-function: ease;
	-webkit-animation-delay: 0s;
	-webkit-animation-iteration-count: 1;
	-webkit-animation-direction: alternate;
	-webkit-animation-fill-mode: none;
	-webkit-animation-play-state: running;
}
@keyframes fI {
	0% {
		opacity: 0;
		transform: translate3d(-30px, 0, 0);
		-webkit-transform: translate3d(-30px, 0, 0);
	}
	100% {
		opacity: 1;
		 transform: translate3d(0, 0, 0);
		-webkit-transform: translate3d(0, 0, 0);
	}
}

.fv_txt01{
  width: 100%;
  position: absolute;
}
.fv_txt01 img{
  width: 62%;
  margin: 5% 0 0 0;
  animation: fI2 2.2s ease 0s 1 alternate none running;
	-webkit-animation-name: fI2;
	-webkit-animation-duration: 3.1s;
	-webkit-animation-timing-function: ease;
	-webkit-animation-delay: 0s;
	-webkit-animation-iteration-count: 1;
	-webkit-animation-direction: alternate;
	-webkit-animation-fill-mode: none;
	-webkit-animation-play-state: running;
}
@keyframes fI2 {
	0% {
		opacity: 0;
		transform: translate3d(-30px, 0, 0);
		-webkit-transform: translate3d(-30px, 0, 0);
	}
	100% {
		opacity: 1;
		 transform: translate3d(0, 0, 0);
		-webkit-transform: translate3d(0, 0, 0);
	}
}

.fv_txt02{
  width: 100%;
  position: absolute;
}
.fv_txt02 img{
  width: 100%;
  z-index: 1;
  animation: fI3 2.4s ease 0s 1 alternate none running;
	-webkit-animation-name: fI3;
	-webkit-animation-duration: 4.1s;
	-webkit-animation-timing-function: ease;
	-webkit-animation-delay: 0s;
	-webkit-animation-iteration-count: 1;
	-webkit-animation-direction: alternate;
	-webkit-animation-fill-mode: none;
	-webkit-animation-play-state: running;
}
@keyframes fI3 {
	0% {
		opacity: 0;
		transform: translate3d(0, 30px, 0);
		-webkit-transform: translate3d(0, 30px, 0);
	}
	100% {
		opacity: 1;
		 transform: translate3d(0, 0, 0);
		-webkit-transform: translate3d(0, 0, 0);
	}
}

.fv_ttl_hr {
	width: 100%;
	max-width: 400px;
	margin: 4.5% auto 5.5%;
	border: none;
	border-top: 1px solid #555;
	animation: rotation 1.5s ease 0s 1 alternate none running;
	-webkit-animation-name: rotation;
	-webkit-animation-duration: 1.5s;
	-webkit-animation-timing-function: ease;
	-webkit-animation-delay: 0s;
	-webkit-animation-iteration-count: 1;
	-webkit-animation-direction: alternate;
	-webkit-animation-fill-mode: none;
	-webkit-animation-play-state: running;
}
@keyframes rotation {
  0% {
		opacity: 0;
    transform: scale(0);
		border-top: 1px solid #555;
  }
  40% {
		opacity: 0;
    transform: scale(0);
		border-top: 1px solid #555;
  }
  100% {
		opacity: 1;
    transform: scale(1);
		border-top: 1px solid #555;
  }
}


/************box01 */
.box01{
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  padding: 5% 3% 0;
}
/*dropcap */
:root {
  --base-font-size: clamp(1.1rem, 2vw, 1.4rem); /* 画面幅に応じて可変 */ /* 本文フォントサイズ */
  --base-line-height: 1.7;  /* 本文行間 */
}
.dropcap{
  font-size: var(--base-font-size);
  line-height: var(--base-line-height);
}
.dropcap::first-letter {
  float: left;
  font-size: calc(var(--base-font-size) * var(--base-line-height) * 1.75);
  line-height: 1;
  margin: 0 0.25em 0 0;
  font-weight: bold;
}
/*dropcap */

/*animation_fv */
.box01_f_t{
  opacity: 0;
  transform: translateY(30px);
  transition: all 1s ease-out;
}
.box01_f_t.active {
  opacity: 1;
  transform: translateY(0);
}
/*animation_fv */

.box01 img{
  width: 100%;
  max-width: 1000px;
  margin: 4% auto 2%;
}
/*animation_img */
.image-reveal, .image-reveal2 {
  overflow: hidden;
}
/* 横方向（左右から中央へ） */
.image-reveal .v_img {
  width: 100%;
  max-width: 1000px;
  height: auto;
  display: block;
  clip-path: inset(0 50% 0 50%);  /* 初期状態：両端50%カット */
  transition: clip-path 1.0s ease;
}
.image-reveal2 .v_img {
  width: 100%;
  max-width: 1000px;
  height: auto;
  display: block;
  clip-path: inset(0 50% 0 50%);  /* 初期状態：両端50%カット */
  transition: clip-path 1.0s ease;
  transition-delay: 1.8s;
}
/* showクラスで全体を表示 */
.image-reveal.show img, .image-reveal2.show img {
  clip-path: inset(0 0 0 0);
}
/* 縦方向（上下から中央へ展開） */
.image-reveal.vertical img, .image-reveal2.vertical img {
  clip-path: inset(50% 0 50% 0); /* 上50% 下50% カット */
}
.image-reveal.vertical.show img, .image-reveal2.vertical.show img {
  clip-path: inset(0 0 0 0);
}
/*animation_img */

.txt_s{
  font-size: 1.1rem;
  line-height: 1.6;
}
.box01 .box01_ttlimg{
  width: 100%;
  max-width: 400px;
  margin: 4% auto;
}
.box01 .ttl{
  font-size: 1.8rem;
  font-weight: 500!important;
  line-height: 1.6;
  margin: 0 auto 3%;
  text-align: center;
}
.box01 .ttl_l{
  font-size: 1.8rem;
  font-weight: 700!important;
  line-height: 1.6;
  margin: 0 auto 2%;
  text-align: left;
}
.box01 .box01_p_m{
  margin: 1.8% auto 3.4%;
}
/************box02 */
.box02{
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  padding: 5% 3%;
}
.box02_bg{
  background: #e8f3e8;
  padding: 4% 5% 6%;
}
.box02 p{
  color: #3e9c3c!important;
}
.box02 .ttl{
  font-size: 1.8rem;
  font-weight: 700!important;
  margin: 0 0 1%;
}
.box02_a{
  margin: 4% 0;
}
.box02 a{
  text-decoration: underline;
  color: #3e9c3c;
  font-size: 1.4rem;
	line-height: 2;
	text-align: justify;
	font-family: "Source Serif 4", serif;
  font-optical-sizing: auto;
  font-weight: 300!important;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
}
.box02 a:last-child{
  margin: 0 0 0 3%;
}

/************offer01 */
.offer01_bg{
  background: linear-gradient(#ede7d6 0%, #f9f6f0 100%);
}
.offer01{
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 3%;
}
.offer01_p{
  padding: 9% 7%;
}
.offer01 img{
  width: 100%;
}
.offer01 a{
  width: 100%;
  display: inline-block;
  padding: 12px 24px;
  background: linear-gradient(to right, #fff 50%, #f76f3c 50%);
  background-size: 200% 100%;
  background-position: right bottom;
  border: 2px solid #f76f3c;
  cursor: pointer;
  transition: all 0.4s ease;
  margin: 3% auto 0;
  text-align: center;
  font-size: 1.6rem;
  font-weight: 700!important;
  color: #fff;
  text-decoration: none;
  border-radius: 100vw;
}
.offer01 a:hover{
  background-position: left bottom; /* 左からオレンジが出てくる */
  color: #f76f3c;
}


/************cat2 */
#cat2{
  width: 100%;
}
.cat2_bg{
	width: 100%;
	height: 100vh;
	position: sticky;
	position: -webkit-sticky;
	top: 0;
	left: 0;
	background: linear-gradient(#ede7d6 0%, #f9f6f0 100%);
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	background-size: cover;
	z-index: -1;
}
.cat2_main{
	position: static;
	top: 0;
	left: 0;
	z-index: 1;
	padding-bottom: 10%;
}

/************offer */
.offer_inner{
	background: url("../img/offer_pc.jpg") no-repeat center top;
	background-size: 100% 100%;
	width: 900px;
	height: 700px;
	position: relative;
	margin-bottom: 8%;
	padding-top: 0;
}

.offer_btn{
	position: absolute;
	top: 524px;
	left: 140px;
	width: 620px;
	transition: all 0.4s;
}
.offer_btn:hover{
	transform : scale(1.03);
	transition: all 0.4s;
	opacity: 0.8;
}

/****************************** footer */
footer{
	background: #4d4d4d;
	width: 100%;
	margin: 8% auto 0;
	color: #fff;
	padding: 20px 0;
	position: relative;
}
footer a{
	text-decoration: none;
}
small{
	font-size: 10px;
	display: block;
	text-align: center;
	letter-spacing: 0.08em;
}
#pageTop{
	width: 120px;
	padding: 10px 0 15px 0;
	text-align: center;
	color: #fff;
	background: #4d4d4d;
	border-radius: 6px 0 0 0;
	position: absolute;
	top: -35px;
	right: 0;
	font-size: 13px;
	display: block;
	font-weight: bold;
	transition: all 0.3s;
}
#pageTop:hover{
	top: -40px;
	transition: all 0.4s;
}
#pageTop i{
	font-size: 130%;
}


@media screen and (max-width:1400px) {
  .fv_ttl{
    height: 100%;
  }
  .fv_img{
    width: 50%;
  }
  h1{
    width: 50%;
    margin: 4% 0 0 6%;
  }
  h1 div:last-child{
    top: 72%;
  }
}


@media screen and (max-width:950px) {
	/************offer */
	.offer_inner{
		width: 90%;
		padding-top: 70%;
		height: auto;
		margin: 0 5%;
	}
	.offer_btn{
		position: absolute;
		top: 75%;
		left: 15%;
		width: 70%;
	}
}


@media screen and (max-width:750px) {
	/****************************** base */
	.pcOnly{
		display: none;
	}
	.spOnly{
		display: block;
	}
  /************bg */
  .bg{
    height: 85vh;
  }
/************fv_ttl */
  .fv_ttl{
    width: 100%;
    max-width: 750px;
  	height: auto;
  }
  .fv_img{
    width: 100%;
    max-width: 750px;
    margin: 0 auto;
  }
	h1{
		margin: 5% auto 0 5%;
    max-width: 750px;
    width: 90%;
	}
  h1 div:first-child{
    width: 80%;
    margin: 0 0 6% 0;
  }
  h1 div{
    width: 78%;
    margin: 0;
  }
  h1 div:last-child{
    width: 60%;
    margin: 0;
  }
	h1 img{
    width: 100%;
		padding: 0;
	}
  .fv_txt01{
    bottom: 17%;
  }
  .fv_txt01 img{
    width: 56%;
    margin: 0 0 0 5%;
  }

  .fv_txt02{
    bottom: 0;
  }
  .fv_txt02 img{
    width: 100%;
  }
	.fv_ttl_hr {
		width: 80%;
		padding: 0 10%;
	}
/************fv_item */
	.fv_item_img{
		width: 90%;
		padding: 0 5%;
	}
	.w1{
		top: 100px;
		left: 0;
		width: 70px;
	}
	.w2{
		top: 120px;
		left: 0;
		width: 120px;
	}
	.w3{
		top:0;
		right: 0;
		width: 90px;
	}
	.w4{
		top: 200px;
		right: 0;
		width: 25px;
	}
	.w5{
		top: 260px;
		right: 0;
		width: 15px;
		opacity: 0.6!important;
		-ms-filter: blur(1px);
		filter: blur(1px);
	}
	.fv_sttl {
		max-width: 500px;
	}
  
/************box01 */
  .box01{
    padding: 6% 6% 0;
  }

/************box02 */
  .box02{
    padding: 8% 3% 10%;
  }
  .box02_bg{
    padding: 5% 5% 7%;
  }
  .box02_a{
    margin: 5% 0;
  }
  .box02 a{
    display: block;
    font-size: 1.1rem;
    line-height: 180%;
  }
  .box02 a:last-child{
    margin: 0;
  }

/************cat2 */
	.cat2_main{
		padding-bottom: 30%;
	}
	.cat2_ttl{
		width: 80%;
		margin-top: -65vh;
	}
	.cat2_power{
		width: 92%;
		margin: 6% 4% 0;
		padding: 4% 8% 6%;
	}
	.cat2_sttl{
		max-width: 380px;
		margin-bottom: 4%;
	}
	.cat2_power img{
		margin-top: 5%;
	}

	/************offer */
  .offer01 a{
    padding: 14px 0;
    background-size: 210% 100%;
    font-size: 1.1rem;
    margin: 5% auto 0;
  }
/************footer */
	footer{
		margin: 20% auto 0;
	}
}



@media screen and (max-width:640px) {
	/****************************** base */
	.fadeIn {
	    transform : translate(0, 40px);
	    transition: all 0.6s;
	}
	p {
		font-size: 1.1rem;
		line-height: 1.6;
		letter-spacing: -0.05em;
	}
  .txt_s{
    font-size: 0.9rem;
  }
	.fadeIn-L {
		transform : translate(20px, 0);
		transition: all 0.5s;
	}
	.fadeIn-R {
		transform : translate(-20px, 0);
		transition: all 0.5s;
	}
/************fv_ttl */
	h1{
		margin: 5% auto 0 5%;
/*    max-width: 450px;*/
	}
	h1 img{
		padding: 0;
	}
	.fv_ttl_hr {
		width: 80%;
		padding: 0 10%;
	}

/************fv_item */
	.water {
	    opacity : 0;
	    transform : translate(0, 50px);
	}
	.w1{
		top: 40px;
		width: 17%;
	}
	.w2{
		top: 60px;
		left: 10px;
		width: 28%;
	}
	.w3{
		top:-50px;
		width: 22%;
	}
	.w4{
		top: 150px;
		width: 8%;
	}
	.w5{
		top: 210px;
		width: 4%;
	}
  
/************box01 */
  .box01{
    padding: 8% 7% 0;
  }
  .box01 img{
    margin: 7% auto 5%;
  }
  .box01 .ttl{
    font-size: 1.6rem;
    line-height: 150%;
    margin: 0 auto 8%;
  }
  .box01 .box01_p_m{
    margin: 5% auto 10%;
  }
  .box01 .ttl_l{
    font-size: 1.6rem;
  }
  .box01 .box01_ttlimg{
    width: 66%;
  }
  
/************box02 */
  .box02 .ttl{
    font-size: 1.6rem;
    margin: 0 0 3%;
  }
  
/************cat2 */
	.cat2_ttl{
		width: 100%;
		margin-top: -70vh;
	}
	.cat2_power{
		width: 92%;
		margin: 15% 4% 0;
		padding: 8% 7.5% 10%;
	}
	.cat2_sttl{
		max-width: 380px;
		margin-bottom: 8%;
	}

/************footer */
	footer{
		padding: 10px 0;
		margin: 13% auto 0;
	}
	small{
		font-size: 8px;
		display: block;
		text-align: center;
		letter-spacing: 0.08em;
	}
	#pageTop{
		width: 80px;
		padding: 8px 0;
		transition: all 0s;
		font-size: 9px;
		top: -20px;
	}
	#pageTop:hover{
		top: -20px;
		transition: all 0s;
	}
}

@media screen and (max-width:480px) {
  .box01 .box01_ttlimg{
    width: 78%;
    margin: 6% auto;
  }
}


@media screen and (max-width:320px) {
/************fv_item */
	.w1{
		top: 20px;
	}
	.w2{
		top: 40px;
		-ms-filter: blur(2px);
		filter: blur(2px);
	}
	.w3{
		top:-20px;
	}
	.w4{
		top: 80px;
	}
	.w5{
		top: 130px;
	}

/************footer */
	small{
		letter-spacing: 0em;
	}

}
