@charset "utf-8";
/* 共通スタイル */
html, body {
  overflow-x: hidden;
  background: #fffdf5;
  margin: 0;
  box-sizing: border-box;
  font-family: ryo-text-plusn, serif;
  font-weight: 400;
  font-style: normal;
  color: #4a4234;
  font-size: 14px;
}
header, nav, section, article, footer, div, span, p{
  box-sizing: border-box;
}
ul{
  list-style-type: none;
}
a{
  text-decoration: none;
  color: #4a4234;
}
/* アイコンフォント */
@font-face {
  font-family: 'icomoon';
  src:  url('fonts/icomoon.eot?cvdqer');
  src:  url('fonts/icomoon.eot?cvdqer#iefix') format('embedded-opentype'),
    url('fonts/icomoon.ttf?cvdqer') format('truetype'),
    url('fonts/icomoon.woff?cvdqer') format('woff'),
    url('fonts/icomoon.svg?cvdqer#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

[class^="icon-"], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icomoon' !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-facebook2:before {
  content: "\ea91";
}
.icon-instagram:before {
  content: "\ea92";
}
.icon-twitter:before {
  content: "\ea96";
}
/* ローディング画面 */
.loading {
  width: 100%;
	height: 100%;
	background: #fff;;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 20000;
}
.loadingTxt{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 200px;
  height: 50px;
	position: absolute;
	top: calc(50% - 25px);
	left: calc(50% - 100px);
  font-size: 16px;
}
.loading span{
  display: inline-block;
  margin: 2px;
}
.loading span:nth-of-type(1){
  animation: hopL 2.5s ease-out infinite ;
}
.loading span:nth-of-type(2){
  animation: hopO 2.5s ease-out infinite ;
}
.loading span:nth-of-type(3){
  animation: hopA 2.5s ease-out infinite ;
}
.loading span:nth-of-type(4){
  animation: hopD 2.5s ease-out infinite ;
}
.loading span:nth-of-type(5){
  animation: hopI 2.5s ease-out infinite ;
}
.loading span:nth-of-type(6){
  animation: hopN 2.5s ease-out infinite ;
}
.loading span:nth-of-type(7){
  animation: hopG 2.5s ease-out infinite ;
}
.loading span:nth-of-type(8){
  animation: hopPoint1 2.5s ease-out infinite ;
}
.loading span:nth-of-type(9){
  animation: hopPoint2 2.5s ease-out infinite ;
}
.loading span:nth-of-type(10){
  animation: hopPoint3 2.5s ease-out infinite ;
}
@keyframes hopL{
  0% {transform: translateY(0px);}
  5% {transform: translateY(-10px);}
  15% {transform: translateY(0px);}
}
@keyframes hopO{
  10% {transform: translateY(0px);}
  15% {transform: translateY(-10px);}
  25% {transform: translateY(0px);}
}
@keyframes hopA{
  20% {transform: translateY(0px);}
  25% {transform: translateY(-10px);}
  35% {transform: translateY(0px);}
}
@keyframes hopD{
  30% {transform: translateY(0px);}
  35% {transform: translateY(-10px);}
  45% {transform: translateY(0px);}
}
@keyframes hopI{
  40% {transform: translateY(0px);}
  45% {transform: translateY(-10px);}
  55% {transform: translateY(0px);}
}
@keyframes hopN{
  50% {transform: translateY(0px);}
  55% {transform: translateY(-10px);}
  65% {transform: translateY(0px);}
}
@keyframes hopG{
  60% {transform: translateY(0px);}
  65% {transform: translateY(-10px);}
  75% {transform: translateY(0px);}
}
@keyframes hopPoint1{
  70% {transform: translateY(0px);}
  75% {transform: translateY(-10px);}
  85% {transform: translateY(0px);}
}
@keyframes hopPoint2{
  80% {transform: translateY(0px);}
  85% {transform: translateY(-10px);}
  95% {transform: translateY(0px);}
}
@keyframes hopPoint3{
  90% {transform: translateY(0px);}
  95% {transform: translateY(-10px);}
  100% {transform: translateY(0px);}
}
/* スクロールで要素のフェードイン */
.fadeIn {
  opacity: 0;
  transform: translate(0, 100px);
  transition: all 2000ms;
}
.scrollIn {
  opacity: 1;
  transform: translate(0, 0);
}

/* ヘッダー領域 */
header {
  width: 100%;
  height: calc(200 / 750 *100vw);
  padding: 5px;
  position: relative;
  visibility: visible;
}
header > a{
  display: block;
  width: calc(180 / 750 *100vw);
  height: calc(180 / 750 *100vw);
  margin: auto;
}
.headerLogo {
  width: calc(180 / 750 *100vw);
  height: calc(180 / 750 *100vw);
  overflow: hidden;
}
.headerLogo img {
  display: block;
  width: auto;
  height: 100%;
  margin: auto;
}
.wrap {
  width: calc(200 / 750 *100vw);
  height: calc(200 / 750 *100vw);
  position: fixed;
  z-index: 910;
  top: calc(-80 / 750 *100vw);
  right: calc(-80 / 750 *100vw);
}
.closeRound {
  background: rgba(167,162,169,0.8);
  width: calc(200 / 750 *100vw);
  height: calc(200 / 750 *100vw);
  border-radius: 100%;
  position: absolute;
  top: 0;
  right: 0;
  cursor: pointer;
}
.closeRound .flex{
  height: calc(60 / 750 *100vw);
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  bottom: calc(36 / 750 * 100vw);
  left: calc(35 / 750 * 100vw);
  color: #fffdf5;
  border-top: 3px double #fffdf5;
  border-bottom: 3px double #fffdf5;
  transition: 1s ease-in-out;
  font-size: calc(28 / 750 *100vw);
}
.menuTxt{
  display: block;
  position: absolute;
  visibility: visible;
  opacity: 1;
  transition: 1s ease-in-out;
}
.closeTxt{
  display: block;
  visibility: hidden;
  opacity: 0;
  transition: 1s ease-in-out;
  color: #4a4234;
}
@media screen and (min-width:520px) {
  header{
    width: 0;
    height: 0;
    padding: 0;
    margin: 0;
  }
  header > a{
  display: none;
  }
  .wrap{
    display: none;
  }
}
/* ナビゲーション領域 */
.nav {
  width: calc(1000 / 750 *100vw);
  height: calc(1000 / 750 *100vw);
  visibility: hidden;
  opacity: 0.5;
  transition: 0.5s ease;
  position: fixed;
  z-index: 900;
  top: 0;
  right: 0;
}
.nav::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  transform: scale(0);
  visibility: hidden;
  opacity: 0;
  transform-origin: 51% 51%;
  transition: 3s ease;
  border-radius: 100%;
  top: calc(-100 / 750 *100vw);
  right: calc(-300/ 750 *100vw);
  background: rgba(167,162,169,0.8);
}
.openRound {
  width: calc(1000 / 750 *100vw);
  height: calc(1000 / 750 *100vw);
  border-radius: 100%;
  transform: scale(0.001);
  transform-origin: 69% 16%;
  visibility: hidden;
  opacity: 1;
  transition: 1s ease-in-out;
  background: rgba(255, 253, 245, 0.8);
  position: absolute;
  top: calc(-100 / 750 *100vw);
  right: calc(-300/ 750 *100vw);
  overflow: hidden;
}
.open .nav{
  visibility: visible;
  transform: scale(1);
  opacity: 1;
}
.open .closeRound{
  background: transparent;
}
.open .flex{
  border: none;
}
.open .menuTxt{
  visibility: hidden;
  opacity: 0;
}
.open .closeTxt{
  visibility: visible;
  opacity: 1;
}
.open .openRound{
  visibility: visible;
  opacity: 1;
  transform: scale(1);
}
.open .nav::before{
  visibility: visible;
  opacity: 1;
  transform: scale(1);
  animation: spin 12s linear infinite;
}
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.openRound > a{
  display: block;
  width: calc(180 / 750 * 100vw);
  height: calc(180 / 750 * 100vw);
  margin: auto;
}
.menuLogo {
  width: calc(180 / 750 * 100vw);
  height: calc(180 / 750 * 100vw);
  position: absolute;
  z-index: 910;
  bottom: calc(410 / 750 * 100vw);
  left: calc(70 / 750 * 100vw);
  overflow: hidden;
}
.menuLogo img {
  width: auto;
  height: calc(180 / 750 *100vw);
  margin: auto;
}
.menu {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  width: 30%;
  height: calc(500 / 750 *100vw);
  position: absolute;
  z-index: 920;
  top: calc(200 / 750 *100vw);
  left: calc(350 / 750 *100vw);
}
.menu li {
  font-size: calc(44 / 750 *100vw);
}
.menu a{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 10px;
  box-sizing: border-box;
  transition: 0.5s ease-in-out;
}
.menu a:hover{
  opacity: 0.2;
}
.sns {
  width: calc(394 / 750 *100vw);
  display: flex;
  justify-content: space-between;
  position: absolute;
  z-index: 910;
  bottom: calc(150 / 750 *100vw);
  left: calc(302.5 / 750 *100vw);
}
.sns li {
  font-size: calc(78 / 750 *100vw);
  width: calc(78 / 750 *100vw);
  height: calc(78 / 750 *100vw);
  padding: 10px;
  transition: 0.5s ease-in-out;
}
.sns li:hover{
  opacity: 0.4;
}
.sns a{
  display: inline-block;
  width: 100%;
  height: 100%;
}
.bkFlo {
  position: absolute;
  z-index: 910;
  top: -50px;
  width: 20px;
  height: 20px;
}
.bkFlo:nth-of-type(1) {
  content: "";
  background: url("../img/ajisai.png") center center no-repeat;
  background-size: contain;
  top: -60px;
  left: 10%;
  animation: fall 10s linear infinite, spin 3s linear infinite;
  animation-delay: 6s;
}
.bkFlo:nth-of-type(2) {
  content: "";
  width: 30px;
  height: 30px;
  background: url("../img/lavende.png") center center no-repeat;
  background-size: contain;
  top: -20px;
  left: 30%;
  animation: fall 9s linear infinite, sway2 6s ease-in-out infinite alternate;
  animation-delay: 2s;
}
.bkFlo:nth-of-type(3) {
  content: "";
  background: url("../img/mimosa.png") center center no-repeat;
  background-size: contain;
  top: -100px;
  left: 20%;
  animation: fall 12s linear infinite, sway1 5s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.bkFlo:nth-of-type(4) {
  content: "";
  background: url("../img/kasumisou.png") center center no-repeat;
  background-size: contain;
  left: 5%;
  animation: fall 10s linear infinite, sway1 3s ease-in-out infinite alternate;
  animation-delay: 5s;
}
.bkFlo:nth-of-type(5) {
  content: "";
  background: url("../img/statice.png") center center no-repeat;
  background-size: contain;
  top: -200px;
  left: 50%;
  animation: fall 13s linear infinite, sway2 4s ease-in-out infinite alternate;
  animation-delay: 4s;
}
@keyframes fall {
  0% {
    opacity: 0.5;
  }
  75% {
    opacity: 0.5;
  }
  90% {
    opacity: 0;
  }
  100% {
    top: 100%;
    opacity: 0;
  }
}
@keyframes sway1 {
  0% {
    transform: translateX(0px) rotate(0deg);
  }
  100% {
    transform: translateX(200px) rotate(-45deg);
  }
}
@keyframes sway2 {
  0% {
    transform: translateX(200px) rotate(-45deg);
  }
  100% {
    transform: translateX(0px) rotate(0deg);
  }
}
@media screen and (min-width:520px) {
  .nav{
    top: 0;
    left: 0;
    visibility: visible;
    opacity: 1;
    width: 20%;
  }
  .nav::before{
    display: none;
  }
  .openRound{
    visibility: visible;
    opacity: 1;
    transform: scale(1);
    top: 0;
    left: 0;
    width: calc(240 / 1200 *100vw);
    height: 100vh;
    margin: 0;
    border-radius: 0;
    background: #4a4234;
    overflow: visible;
  }
  .openRound a{
    color: #fffdf5;
  }
  .bkFlo{
    display: none;
  }
  .openRound > a{
    width: calc(115 / 1200 *100vw);
    height: 20%;
  }
  .menuLogo{
    position: static;
    width: calc(115 / 1200 *100vw);
    height: 100%;
    margin: auto;
  }
  .menuLogo::before{
    content: "";
    display: block;
    width: calc(115 / 1200 *100vw);
    height: 100%;
    background: url("../img/logo-white.svg") no-repeat;
    background-size: contain;
    background-position: 100%;
  }
  .menuLogo img{
    display: none;
  }
  .menu{
    position: static;
    width: 100%;
    height: 60%;
    justify-content: space-around;
  }
  .menu li{
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    font-size: calc(20 / 1200 *100vw);
  }
  .menu a{
    background: #4a4234;
  }
  .menu a:hover{
    opacity: 1;
    width: 120%;
    color: #4a4234;
    background: #CAC2B4;
  }
  .sns{
    position: static;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 20%;
  }
  .sns li{
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: calc(40 / 1200 *100vw);
    width: calc(40 / 1200 *100vw);
    height: calc(40 / 1200 *100vw);
    padding: 6px;
    margin: 6px;
  }
}
/* メイン領域 */
.pageTop{
  font-size: calc(24 / 750 *100vw);
  width: calc(120 / 750 *100vw);
  height: calc(80 / 750 *100vw);
  margin: 10px;
  position: fixed;
  bottom: calc(20 / 750 *100vw);
  right: calc(20 / 750 *100vw);
  z-index: 510;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}
.pageTop:hover{
  opacity: 0.4;
}
.pageTop p{
  padding: 0 3px 3px 0;
}
.pageTop p::before,
.pageTop::after{
  content: "";
  position: absolute;
  z-index: 510;
  background: #4a4234;
  width: 0;
  height: 1px;
}
.pageTop p::before{
  left: 0;
  bottom: 0;
  animation: pathmove1 5s linear infinite;
}
.pageTop p::after{
  content:"";
  position: absolute;
  z-index: 510;
  background: #4a4234;
  width: 1px;
  height: 0;
  right: 0;
  bottom: 0;
  animation: pathmove2 5s linear infinite;
}
.pageTop::after{
  right: 0;
  top: 0;
  transform: rotate(-45deg);
  transform-origin: top right;
  animation: pathmove3 5s linear infinite;
}
@keyframes pathmove1{
  0%{
    width:0;
  }
  10%{
    width:100%;
  }
  80%{
    width:100%;
  }
  90%{
    width:0;
  }
}
@keyframes pathmove2{
  10%{
    height:0;
  }
  20%{
    height:100%;
  }
  70%{
    height:100%;
  }
  80%{
    height: 0;
  }
}
@keyframes pathmove3{
  0%{
    width:0;
    top: 0;
    right: 0;
  }
  20%{
    width:0;
    top: 0;
    right: 0;
  }
  30%{
    width:20%;
    top: 0;
    right: 0;
  }
  60%{
    width:20%;
    top: 0;
    right: 0;
  }
  70%{
    width:0;
    top: 0;
    right: 0;
  }
}
@media screen and (min-width:768px) {
  .pageTop{
  font-size: calc(14 / 1200 *100vw);
  width: calc(70 / 1200 *100vw);
  height: calc(60 / 1200 *100vw);
  bottom: calc(20 / 1200 *100vw);
  right: calc(40 / 1200 *100vw);
  z-index: 510;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}
}
/* 共通セクション領域 */
.contentsWrap{
  padding: 25px 0;
}
.contents{
  width: 100%;
  color: #4a4234;
  padding-bottom: 20px;
}
.contents:nth-of-type(even){
  background: #e6eae1;
}
.contents img{
  display: block;
  width: 60%;
  margin: 10px auto;
}
.contents .pcRow > p{
  width: 80%;
  padding: 25px 0;
  margin: 0 auto;
  line-height: 2;
}
h1{
  display: table;
  margin: 20px auto 10px;
  font-size: calc(44 / 750 *100vw);
  font-weight: normal;
  color: #4a4234;
}
h2{
  display: table;
  padding: 15px;
  margin: 0 auto;
  font-size: calc(44 / 750 *100vw);
  font-weight: normal;
  color: #4a4234;
  text-decoration: underline;
  text-decoration-thickness: 1px;
}
.more{
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc(187.5 / 750 *100vw);
  height: calc(50 / 750 *100vw);
  margin: 0 calc(80 / 750 *100vw) 0 auto;
  background: #6c8475;
  color: #fffdf5;
  transition: 0.5s ease-in-out;
}
.more:hover{
  opacity: 0.4;
}
.more p{
  display: table;
}
@media screen and (min-width:520px) {
  main{
    width: 79%;
    margin: 0 0 0 calc(240 / 1200 *100vw);
  }
  h1{
    font-size: 24px;
  }
  h2{
    font-size: 24px;
  }
}
@media screen and (min-width:768px) {
  h2{
    padding-top: 0;
  }
  .contentsWrap{
    padding: 50px 0;
  }
  .contents{
    width: 80%;
    padding: 40px 0 50px;
    margin: auto;
  }
  .contents:nth-of-type(even):not(.news){
    background: transparent;
  }
  .pcRow{
    display: flex;
    justify-content: space-around;
    align-items: center;
  }
  .contents img{
    width: calc(250 / 1200 *100vw);
    height: calc(250 / 1200 *100vw);
    margin: 0;
  }
  .contents .pcRow > p{
    width: calc(350 / 1200 *100vw);
    padding: 0;
    font-size: 16px;
    line-height: 3.5;
    margin: 0;
  }
  .more{
    width: 150px;
    height: 40px;
    background: #a7a2a9;
    font-size: 18px;
  }
}
/* INFO領域 */
.hero {
  position: relative;
  z-index: 500;
  width: calc(750 / 750 *100vw);
  height: calc(500 / 750 *100vw);
}
.hero img{
  width: 100%;
  height: 100%;
}
.scroll {
  display: inline-block;
  width: calc(200 / 750 *100vw);
  padding-top: 70px;
  position: absolute;
  z-index: 500;
  bottom: 5%;
  left: calc(275 / 750 *100vw);
  text-align: center;
  color: #fffdf5;
}
.scroll::before {
  animation: scroll 3.5s infinite;
  border: solid #fff;
  border-width: 0 0 1px 1px;
  content: "";
  display: inline-block;
  margin: auto;
  position: absolute;
  z-index: 500;
  top: 0;
  right: 0;
  left: 0;
  transform: rotate(-45deg);
  width: 20px;
  height: 20px;
}
.scrollTxt{
  font-size: calc(24 / 750 *100vw);
}
@keyframes scroll {
  0% {
    transform: rotate(-45deg) translate(0, 0);
  }
  80% {
    transform: rotate(-45deg) translate(-30px, 30px);
  }
  0%, 80%, 100% {
    opacity: 0;
  }
  40% {
    opacity: 1;
  }
}
.info > p{
  width: 80%;
  padding: 25px 0;
  margin: 0 auto;
  text-align: center;
  line-height: 2;
}
@media screen and (min-width:520px) {
  .info{
    padding: 10px 0 50px;
  }
  .hero {
  width: calc(960 / 1200 *100vw);
  height: calc(640 / 675 *100vh);
  }
  .hero img{
    width: 100%;
    object-fit: cover;
  }
  .scroll{
    width: calc(100 / 1200 *100vw);
  }
  .scrollTxt{
    font-size: calc(16 / 1200 *100vw);
  }
  .info h1{
    margin: 0 auto;
  }
  .info > p{
    display: block;
    width: 75%;
    line-height: 4;
    padding: 50px 0 10px 0;
  }
}
@media screen and (min-width:768px) {
  .info > p{
    font-size: 16px;
  }
}
/* ABOUT領域 */
.about img{
  box-shadow: 0 0 10px 5px #fffdf5;
}
@media screen and (min-width:768px) {
  .about img{
    box-shadow: 0 0 10px 5px #4a4234;
  }
  .about .more{
    margin-left: auto;
    margin-right: 50px;
  }
}

/* PRODUCTS領域 */
.products img{
  box-shadow: 0 0 10px 5px #4a4234;
}
@media screen and (min-width:768px) {
  .contents:nth-of-type(3) .pcRow{
    flex-direction: row-reverse;
  }
  .products .more{
    margin-left: 50px;
    margin-right: auto;
  }
}

/* SERVICE領域 */
.service img{
  box-shadow: 0 0 10px 5px #fffdf5;
}
@media screen and (min-width:768px) {
  .service img{
    box-shadow: 0 0 10px 5px #4a4234;
  }
  .service .more{
    margin-left: auto;
    margin-right: 50px;
  }
}

/* ONLINE領域 */
.online img{
  box-shadow: 0 0 10px 5px #4a4234;
}
@media screen and (min-width:768px) {
  .contents:nth-of-type(5) .pcRow{
    flex-direction: row-reverse;
  }
  .online .more{
    margin-left: 50px;
    margin-right: auto;
  }
}

/* NEWS領域 */
.news{
  padding-bottom: 30px;
}
dl {
  width: 80%;
  margin: 0 auto;
}
.flexRow {
  display: flex;
  margin-top: 20px;
  border-bottom: 1px dotted #6c8475;
  transition: 0.5s;
}
.flexRow:first-of-type{
  margin-top: 10px;
}
.flexRow:hover{
  opacity: 0.5;
}
dt{
  margin: 0 20px;
}
dd{
  line-height: 1.5;
}
@media screen and (min-width:768px) {
  .news{
    padding: 0 calc(80 / 1200 *100vw) calc(60 / 1200 *100vw);
    font-size: 16px;
  }
  .news h2{
    padding: 60px;
  }
  dl{
    width: 100%;
  }
  dt{
    margin: 0 30px;
  }
  dd{
    margin-left: 80px;
  }
  .flexRow:not(:last-of-type){
    margin-bottom: 60px;
  }
}

/* フッター領域 */
footer{
  padding: 30px 25px;
  background: #6c8475;
  color: #fffdf5;
}
footer ul{
  margin: 0 0 35px 0;
}
footer li{
  padding-bottom: 15px;
}
footer li:nth-of-type(2),
footer li:last-of-type{
  padding-bottom: 0;
}
footer li:nth-of-type(3){
  padding-top: 5px;
}
footer a{
  color: #fffdf5;
  text-decoration: underline;
  transition: 0.5s ease;
}
footer a:hover{
  opacity: 0.4;
}
small{
  display: table;
  margin: 0 auto;
  font-size: 12px;
}
@media screen and (min-width:520px) {
  footer{
    width: 80%;
    padding: calc(70 / 1200 *100vw) calc(100 / 1200 *100vw);
    margin: 0 0 0 auto;
    font-size: 16px;
  }
  footer ul{
    margin-bottom: 70px
  }
  footer li{
    padding-bottom: 40px;
  }
  footer li:nth-of-type(2),
  footer li:last-of-type{
    padding-bottom: 0;
  }
  footer li:nth-of-type(3){
    padding-top: 25px;
  }
  small{
    font-size: 14px;
  }
}