@charset "UTF-8";
/* CSS Document */


/* Google fonts */

.m-plus-rounded-1c-regular {
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.m-plus-rounded-1c-extrabold {
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-weight: 800;
  font-style: normal;
}

.m-plus-rounded-1c-black {
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-weight: 900;
  font-style: normal;
}

.rocknroll-one-regular {
  font-family: "RocknRoll One", sans-serif;
  font-weight: 400;
  font-style: normal;
}


.topBtn {
  margin-top: 15px;
}
.topLineBtn {
  border-width: 3px !important;
  line-height: 31px !important;
  border-color: #009e53 !important;
  color: #FFFFFF !important;
  padding-left: 2rem;
  padding-right: 2rem;
  background-color: #009e53 !important;
}
.topLineBtn:hover {
  color: #009e53 !important;
  background-color: #FFFFFF !important;
}


/* トップメニュー - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
.topMenu {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  
  height: 66px;
  width: 100vw;
  
  background-color: rgba(255, 255, 255, 1);
  
}
.topMenuLogo {
  position: absolute;
  left: 33px;
  top: 17px;
}
.topMenuLogo img {
  width: 169px;
  height: 42px;
}
.topMenuSNS {
  position: absolute;
  width: 234px;
  right: 128px;
  top: 17px;
  display: flex;
  flex-direction: row;
  justify-content: space-around;
}
.topYoutube {
  width: 45px;
  height: 45px;
  background-color: #f03;
  border-radius: 23px;
  color: #FFFFFF;
  font-size: 28px;
  text-align: center;
  padding-top: 2px;
}
.topInstagram {
  width: 45px;
  height: 45px;
  background-color: #D300D5;
  background-image: url("/img/bg_instagram.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 23px;
  color: #FFFFFF;
  font-size: 28px;
  text-align: center;
  padding-top: 2px;
}
.topTwitter {
  width: 45px;
  height: 45px;
  background-color: #000000;
  border-radius: 26px;
  color: #FFFFFF;
  font-size: 24px;
  text-align: center;
  padding-top: 4px;
}
.topContactUs {
  width: 45px;
  height: 45px;
  background-color: #FFF;
  border: #238469 1px solid;
  border-radius: 26px;
  color: #238469;
  font-size: 24px;
  text-align: center;
  padding-top: 4px;
}


/* ハンバーガーメニュー */
.topMenuMenu {
  position: absolute;
  right: 10px;
  top: 10px;
  z-index: 800;
}

nav {
  position: fixed;
  top: 84px;
  right: 25px;
  z-index: 900;
}
nav ul#topMenuNav {
  display: none;
  width: 300px;
  background: #FFFFFF;
  border: #FFF solid 1px;
  border-radius: 21px;
  
  list-style: none;
  
  padding: 33px 30px;
  margin: 0;
}
nav #topMenuNav li a {
  display: block;
  text-decoration: none;
}
nav .topMenuText {
  font-size: 23px;
  color: #238469;
  line-height: 46px;
  font-family: "RocknRoll One", sans-serif;
  font-weight: 400;
  font-style: normal;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all  0.3s ease;
}
nav a.topMenuText:hover {
  color: #7bbd32;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all  0.3s ease;
}
nav .NavSNS {
  display: none;
  flex-direction: row;
  width: 80%;
  margin: 0 auto;
  justify-content: space-around;
  margin-top: 51px;
}

.hamburger {
    position: absolute;
    top: 15px;
    right:56px;
    cursor: pointer;
    width: 32px;
    height: 24px;
    z-index: 10;
}
.hamburger span {
    /*3本の線を作る*/
    transition: all .3s;
    position: absolute;
    height: 3px;
    background-color: #333;
    width:100%;
    z-index: 10;
}
.hamburger span:nth-of-type(1) {
    /*上の線の位置*/
    top: 4px;
}
.hamburger span:nth-of-type(2) {
    /*真ん中の線の位置*/
    top: 12px;
}
.hamburger span:nth-of-type(3) {
    /*下の線の位置*/
    top: 20px;
}
.hamburger.open span:nth-of-type(1) {
    /*openのとき、上の線を右斜めにする*/
    top: 10px;
    transform: translateY(6px) rotate(-45deg);
}
.hamburger.open span:nth-of-type(2) {
    /*真ん中の線を消す*/
    opacity: 0;
}
.hamburger.open span:nth-of-type(3) {
    /*下の線を左斜めにする*/
    top: 22px;
    transform: translateY(-6px) rotate(45deg);
}



/* トップ画面 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
.topFrame {
  height: 80vh;
  width: 100%;
  min-height: 600px;
  
  padding: 15px;
  border-radius: 30px;
  
  background-image: url("/img/top_bg2.png");
  background-image: image-set(url("/img/top_bg2.png") 1x, url("/img/top_bg2@2x.png") 2x);
  background-image: -webkit-image-set(url("/img/top_bg2.png") 1x, url("/img/top_bg2@2x.png") 2x);
  
  background-size: cover;
  background-position: center bottom;  
  
  position: relative;
  top: 70px;
  left: 0;
}

.topPlant {
  width: 630px;
  height: 742px;
  
  position: absolute;
  bottom:15px;
  left:10%;
  z-index: 100;
  
  background-image: url("/img/top_plant.png");
  background-position-x: 186px;
  background-position-y: 311px;
  background-repeat: no-repeat;
  
}
.topPlantleaf {
  animation:6s linear infinite rotation1;
}

@keyframes rotation1 {
  0%{ transform:rotate(0);}
  100%{ transform:rotate(360deg); }
}


.topCloudTop {
  position: absolute;
  top: 50px;
  left: 10%;
  z-index: 20;
  animation: 4s ease-in-out infinite updown;
}

.topCloudBtm {
  position: absolute;
  top: 200px;
  left: 50%;
  z-index: 30;
  animation: 4s ease-in-out infinite updown;
}

@keyframes updown {
  0%, 100% { transform:translateY(0);}
  50%{ transform:translateY(10px) scale(0.98); }
}

.topSun {
  position: absolute;
  top: 50px;
  right: 10%;
  z-index: 10;
}


.topButterfly {
  position: absolute;
  bottom: 7vw;
  left: 50%;
  z-index: 300;
  height: 150px;
  animation: butterflyAniY 3s infinite ease-in-out, butterflyAniX 12s infinite ease-in-out;
}
@keyframes butterflyAniY {
  0%, 20%, 40%, 60%, 80%, 100% {
    height: 150px;
    transform: scaleX(1);
  }
  10%, 30%, 50%, 70%, 90% {
    height: 155px;
    transform: scaleX(0.9)
  }
}
@keyframes butterflyAniX {
  0%, 100% {
    left: 48%;
  }
  50% {
    left: 52%;
  }
}

.topFlower {
  position: absolute;
  bottom: 7vw;
  left: 50%;
  z-index: 200;
  transform-origin: bottom center;
  animation: 4s ease-in-out infinite flowerAni;
}

@keyframes flowerAni {
  0%, 100% { transform:rotate(10deg);}
  50%{ transform:rotate(-1deg); }  
}

.topEnelabo {
  width: 144px;
  height: 302px;
  position: absolute;
  bottom: 60px;
  right: 30%;
  z-index: 500;
  
  animation: 2s ease-in-out infinite waiting;
}
.topEnelaboSun {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 450;
  transform-origin: center bottom;
  animation: 2s ease-in infinite enelaboSun;
}
.topEnelaboArm {
  position: absolute;
  top: 176px;
  left: 82px;
  z-index: 460;
  transform-origin: 8px 8px;
  animation: 3s linear infinite enelaboArm;
}
.topEnelaboBody {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 490;
}

@keyframes waiting {
  0%, 100% { transform: translateY(0);}
  50%{ transform: translateY(3px); }
}

@keyframes enelaboSun {
  0%, 100% { transform:rotate(0);}
  50%{ transform:rotate(3deg); }
}

@keyframes enelaboArm {
  0%, 80%, 100% { transform:rotate(0);}
  90% { transform:rotate(-45deg); }
  85%, 95% { transform:rotate(-90deg); }
}

.topTitleMB {
  display: none;
}



/* topHouse エネラボハウス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

.topHouse {
  width: 80vw;
  height: 680px;
  margin: auto;
  position: relative;
}

.topHouseTitle {
  position: absolute;
  right: 70px;
  bottom: 168px;
  z-index: 100;
}
.topHouseDummy {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 10;
}
.topHouseMon1 {
  position: absolute;
  left: 100px;
  bottom: 0;
  z-index: 20;
  width: 201px;
  height: 165px;
}
.topHouseBongo {
  position: relative;
}
.topBongoBody {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 200;
  animation: 1s ease-in-out infinite bongoTop;
}
.topBongoFoot {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100;
}
.topHouseCloud1 {
  position: absolute;
  top: 230px;
  left: 30px;
  animation: 4s ease-in-out infinite updown;
}


@keyframes bongoTop {
  0%, 100% {transform:rotate(-2deg);}
  50% {transform: rotate(2deg);}
}


/* topLabo パパラボ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

.topLabo {
  width: 80vw; 
  margin: 0 auto;
}
.topLaboPicture {
  position: relative;
  width: 100%;
  height: 680px;
  min-height: 600px;
  
  background-image: url("/img/topLaboTree.png");
  background-image: image-set(url("/img/topLaboTree.png") 1x, url("/img/topLaboTree@2x.png") 2x);
  background-image: -webkit-image-set(url("/img/topLaboTree.png") 1x, url("/img/topLaboTree@2x.png") 2x);
  
  background-size: 813px 482px;
  background-repeat: no-repeat;
  background-position: center bottom; 
  
}
.topLaboTree {
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  z-index: 10;
}

/* ネゴ */
.topLaboMon1 {
  position: absolute;
  width: 81px;
  height: 120px;
  bottom: 440px;
  left: 0%;
  right: 0;
  margin: auto;
  z-index: 20;
}

/* ラボの雲 */
.topLaboCloud1 {
  display: none;
  position: absolute;
  top: 150px;
  left: 50px;
  animation: 4s ease-in-out infinite updown;
}
.topLaboCloud2 {
  display: none;
  position: absolute;
  top: 194px;
  right: 14px;
  animation: 6s ease-in-out infinite updown;
}


.topLastin {
  position: relative;
}
.topLastinHead {
  position: absolute;
  top:0;
  left: 0;
  z-index: 100;
  animation: 1s ease-in-out infinite LastinTop;
}
.topLastinFoot {
  position: absolute;
  top:0;
  left: 0;
  z-index: 50;  
}
@keyframes LastinTop {
  0%, 100% {transform: translateY(0);}
  50% {transform: translateY(3px);}
}


/* topAbout エネラボって - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

.topAbout {
  width: 80vw;
  margin: 0 auto;
}


.topAboutPicture {
  position: relative;
  width: 100%;
  height: 680px;
  min-height: 600px;
}
.topAboutStore {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 100;
}
.topAboutWinpro {
  position: absolute;
  left: 10px;
  bottom: 10px;
  z-index: 200;
}
.topAboutSun {
  position: absolute;
  top: 80px;
  left: 310px;
  animation:24s linear infinite rotation1;
}


/* エッセン */
.topAboutMon1 {
  position: absolute;
  bottom: 11px;
  left: 0;
  right: 40%;
  margin: auto;
  width: 99px;
  height: 163px;
  overflow: visible;
  z-index: 190;
}
.topEssen {
  position: relative;
}
.topEssenUpper {
  position: relative;
  top: 0;
  left: 0;
  animation: 1s ease-in-out infinite EssenTop;
}
.topEssenBody {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 800;
}
.topEssenKid {
  position: absolute;
  top: -5px;
  left: 13px;
  z-index: 750;
  animation: 1s ease-in-out infinite EssenKid;
}
.topEssenFoot {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 700;
}

@keyframes EssenTop {
  0%, 100% {transform: translateY(0);}
  50% {transform: translateY(2px);}
}

@keyframes EssenKid {
  0%, 100% {transform:rotate(-2deg);}
  50% {transform: rotate(2deg);}
}


/* ラスティン */

.topAboutMon2 {
  position: absolute;
  bottom: 9px;
  left: 26%;
  right: 0;
  margin: auto;
  width: 127px;
  height: 197px;
  overflow: visible;
  z-index: 200;
}
.topNego {
  position: relative;
  animation: 3s ease-in-out infinite negoTop;
}
.topNegoBody {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 800;
}
.topNegoHand {
  position: absolute;
  top: 19px;
  left: 0px;
  z-index: 850;
  animation: 0.7s ease-in-out infinite negoTopHand;
}

@keyframes negoTop {
  0%, 100% {transform: translateY(0);}
  50% {transform: translateY(30px);}
}
@keyframes negoTopHand {
  0%, 100% {transform: translateY(0);}
  50% {transform: translateY(3px);}
}





/* フッター - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

.topFooter {
  height: 100px;
}


/* レスポンシブ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

@media screen and (max-width: 1143px) {
	/* 1143px以下に適用されるCSS（中画面用） */
  .topFrame {
    max-height: 668px;
  }
  .topPlant {
    left:-10px;
  }
  .topFlower {
    bottom: 78px;
    left: 40%;
  }
  .topHouseCloud1 {
    display: none;
  }
  
  @keyframes butterflyAniX {
    0%, 100% {
      left: 38%;
    }
    50% {
      left: 42%;
    }
  }
  
}

@media screen and (max-width: 850px) {
	/* 850px以下に適用されるCSS（タブレット用） */
  
  /* Head SNSボタン */
  .topMenuSNS {
    display: none;
  }
  nav .NavSNS {
    display: flex;
  }
  
  .topPlant {
    left:-80px;
  }
  .topCloudBtm {
    display: none;
  }
  .topEnelabo {
    bottom: 50px;
    right: 20%;
    
  }
  .topFlower {
    bottom: 66px;
    left: 35%;
  }
}

@media screen and (max-width: 500px) {
	/* 500px以下に適用されるCSS（スマホ用） */
  
  /* Head SNSボタン */
  .topMenuSNS {
    display: none;
  }
  nav .NavSNS {
    display: flex;
  }
  
  .hamburger {
    right: 24px;
  }
  .topFrame {
    min-height: 540px;
    max-height: 540px;
    height: 540px;
  }
  .topPlant {
    transform-origin: left bottom;
    transform: scale(0.58);
    bottom: 50px;
  }
  .topCloudTop {
    top: 80px;
  }
  .topCloudTop img {
    height: auto;
    width: 180px;
  }
  .topCloudBtm {
    display: none;
  }
  .topSun {
    transform-origin: right top;
    transform: scale(0.5);
    right: 26px;
    top: 25px;
  }
  .topEnelabo {
    animation: 2s ease-in-out infinite topEnelaboWaitMobi;
    transform-origin: left bottom;
    transform: scale(0.85);
    bottom: 40px;
    right: 2px;    
  }
  .topFlower {
    bottom: 70px;
    left: 35%;
  }
  .topButterfly {
    bottom: 52px;
  }
  @keyframes topEnelaboWaitMobi {
    0%, 100% {
      transform: scale(0.85) translateY(0);
    }
    50% {
      transform: scale(0.85) translateY(3px);
    }
  }
  @keyframes flowerAni {
    0%, 100% {
      transform: scale(0.85) rotate(10deg);
    }
    50%{
      transform: scale(0.85) rotate(-1deg);
    }  
  }
  
  
  .topTitleMB {
    display: block;
  }
  .topTitlePC {
    display: none;
  }

  
  /* topHouse for mobile */
  .topHouse {
    width: 100vw;
  }
  .topHouseTitle {
    right: 170px;
    bottom: 115px;
  }
  .topHouseDummy img {
    width: 400px;
    height: auto;
  }
  .topHouseMon1 {
    left: auto;
    right: 16px;
  }
  
  /* topLabo */
  .topLabo {
    width: 100vw;
    margin: -12px;
  }
  .topLaboPicture {
    background-size: 600px;
  }
  .topLaboMon1 {
    bottom: 277px;
  }
  
  /* ラボの雲 */
  .topLaboCloud1, .topLaboCloud2 {
    display: block;
  }
  
  
  /* topAbout for mobile */
  .topAbout {
    width: 100vw;
    margin: 0 auto;
  }
  .topAboutStore {
    right: -20px;
  }
  .topAboutWinpro {
    left: -100px;
  }
  .topAboutSun  {
    left: 122px;
  }
  
  
  
}

