/* Scss Document */
@keyframes openfade1 {
  0% {
    opacity: 0;
    top: 52%;
  }
  30% {
    top: 52%;
    opacity: 1;
  }
  100% {
    top: 50%;
  }
}
@keyframes openfade2 {
  0% {
    bottom: 0;
  }
  30% {
    bottom: 46%;
  }
  40% {
    bottom: 46%;
  }
  60% {
    bottom: 60%;
  }
  100% {
    bottom: 110%;
  }
}
#overlay {
  position: fixed;
 overflow: hidden;

  z-index: 9999999;
  top: 0;
  left: 5px;
  right: 5px;
  bottom: -10vh;
}
#overlay:after 
{
  
   background: #0e0e0e;
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 4vw;
}
#overlay:before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0vw;
  height: 10vw;
  background: url("../img/index/open_bg.png") repeat-x center bottom/100%;
  z-index: 3;
}
#overlay dl {
  position: relative;
  height: 100vh;
  width: 100%;
  text-align: center;z-index: 9;
}
#overlay dl dt, #overlay dl dd {
  width: 50%;
  margin: 0 auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
}
#overlay dl dd {
  transition: opacity .3s ease 1.5s;
  -moz-transition: opacity .3s ease 1.5s;
  -webkit-transition: opacity .3s ease 1.5s;
}
#overlay[style*="visible"] {
  animation-name: openfade2;
  animation-duration: 3s;
  animation-delay: 2.5s;
  animation-fill-mode: forwards;
}
#overlay[style*="visible"] dt {
  animation-name: openfade1;
  animation-duration: 1.5s;
  animation-timing-function: linear;
}
#overlay[style*="visible"] dd {
  opacity: 1;
}
@media screen and (min-width: 1000px) {
  #overlay:after   {
    bottom: 110px;
  }
  #overlay:before {
    height: 114px;
    background: url("../img/index/open_bg_pc.png") repeat-x center bottom;
  }
  #overlay dt img {
    width: 155px;
    height: auto;
  }
  #overlay dd img {
    width: 180px;
    height: auto;
  }
}
#key {
  position: relative;
  padding: 6vw 0 3vw;
}
#key .js {
  position: relative;
  z-index: 2;
  padding: 0 5%;
}
#key .tit {
  position: absolute;
  top: 0vw;
  left: 0;
  z-index: 1;
  height: 16vw;
  width: 100%;
  overflow: hidden;
}
#key .tit span {
  background-image: url("../img/index/key_t2.png");
  background-repeat: repeat-x;
  background-position: 0 0;
  background-size: auto 100%;
  width: 100%;
  height: 100%;
  display: block;
  width: 500vw;
  animation-name: infiniteScroll;
  animation-duration: 20s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}
#key .tit.tit2 {
  top: auto;
  bottom: 0;
  z-index: 10;
}
#key .tit.tit2 span {
  position: absolute;
  right: 0;
  background-image: url("../img/index/key_t1.png");
  background-position: right 0;
  animation-name: infiniteScroll2;
  z-index: 10;

}
@media screen and (min-width: 1000px) {
  #key {
    padding: 0;
  }
  #key .js {
    margin: 0 auto;
    padding: 211px 0 48px;
    width: 494px;
  }
  #key .tit {
    top: 462px;
    height: 119px;
  }
  #key .tit span {
    width: 100000px;
    animation-duration: 1000s;
  }
  #key .tit.tit2 {
    top: 433px;
    bottom: auto;
  }
}
#about {
  padding: 20vw 0;
}
#about h2 {
  width: 72%;
  margin: 0 auto 15vw;
}
#about .info dt, #about .info h3 {
  letter-spacing: 0.03em;
  font-size: 5.5vw;
  line-height: 2;
  padding-bottom: 10vw;
}
#about .info dt {
  position: relative;
  padding: 7vw 0;
  margin-bottom: 15vw;
}
#about .info dt:before, #about .info dt:after {
  content: '';
  position: absolute;
  width: 25px;
  height: 25px;
  border-top: 1px solid;
  border-left: 1px solid;
  left: 10%;
  top: 0;
}
#about .info dt:after {
  top: auto;
  left: auto;
  bottom: 0;
  right: 10%;
  transform: rotate(180deg);
}
#about .info dd p {
  padding-bottom: 20px;
}
.lead-shared {
  position: relative;
  position: relative;
  margin: 0 auto 15vw;
}
.lead-shared h2 {
  position: absolute;
  top: 36vw;
  left: 4%;
  right: 4%;
  z-index: 1;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  flex-wrap: wrap;
}
.lead-shared h2  img {
  
  position: relative;
}
.lead-shared h2  span  {
  display: block;
  width: 100%;
  overflow: hidden;
  position: relative;
}
#dinner {
  padding: 20vw 0;
}
#dinner .wrap {
  padding: 0;
}
#dinner .info {
  padding: 0 5%;
}
#dinner .info .photo {
  margin: 0 0 15vw 54%;
}
#dinner .info .item h3 {
  letter-spacing: 0.13em;
  font-size: 5.5vw;
  line-height: 2;
  padding-bottom: 10vw;
}
#dinner .info .item .txt p {
  padding-bottom: 20px;
}
#dessert {
  padding: 20vw 0;
}
#dessert .lead-shared h2 {
  top: 31vw;
}
#dessert .js {
  position: relative;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  padding-bottom: 15vw;
}
#dessert .js .js-fade1 {
  width: 55%;
}
#dessert .js .js-fade2 {
  margin-top: 45vw;
  width: 42%;
}
#dessert .wrap {
  padding: 0;
}
#dessert .info {
  padding: 0 5%;
}
#dessert .info .item h3 {
  letter-spacing: 0.13em;
  font-size: 5.5vw;
  line-height: 2;
  padding-bottom: 10vw;
}
#dessert .info .item .txt p {
  padding-bottom: 20px;
}
#midnight {
  padding: 20vw 0;
}
#midnight .lead-shared h2 {
  top: 28vw;
  left: 5%;
  right: 5%;
}
#midnight .wrap {
  padding: 0;
}
#midnight .info {
  padding: 0 5%;
}
#midnight .info .photo {
  position: relative;
  padding-bottom: 15vw;
}
#midnight .info .photo li:nth-child(1) {
  padding-left: 45%;
  margin-bottom: 5vw;
}
#midnight .info .photo li:nth-child(2) {
  padding-right: 45%;
}
#midnight .info .item h3 {
  letter-spacing: 0.13em;
  font-size: 5.5vw;
  line-height: 2;
  padding-bottom: 10vw;
}
#midnight .info .item .txt p {
  padding-bottom: 20px;
}
#recruit {
  padding: 20vw 0;
}
#recruit h2 {
  margin-bottom: 2vw;
}
#recruit .txt {
  border-top: 1px solid;
  padding: 5vw 3% 10vw;
}
#recruit .photo {
  position: relative;
  padding: 0 5% 10vw;
  justify-content: flex-start;
}
#recruit .photo li {
  width: 42%;
}
#recruit .photo li:nth-child(2) {
  margin: 32vw 0 0 11%;
  width: 44%;
}
#recruit .tbl-info dl {
  padding-bottom: 20px;
}
@media screen and (min-width: 1000px) {
  #about {
    padding: 388px 0 150px;
  }
  #about .wrap {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content: space-between;
    text-align: justify;
  }
}
@media screen and (min-width: 1000px) and (max-width: 1100px) {
  #about .wrap {
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media screen and (min-width: 1000px) {
  #about h2 {
    width: auto;
    margin: 0;
    position: sticky;
    top: 155px;
    padding: 12px 0 0;
  }
  #about .sticky {
    width: 453px;
  }
  #about .info {
    width: 454px;
  }
  #about .info dt, #about .info h3 {
    font-size: 24px;
    line-height: 42px;
    padding-bottom: 71px;
  }
  #about .info dt {
    padding: 23px 0px 18px 33px;
    margin-bottom: 55px;
    line-height: 52px;
  }
  #about .info dt:before, #about .info dt:after {
    left: 0;
  }
  #about .info dt:after {
    left: auto;
    right: 0;
  }
  #about .info dd {
    padding-bottom: 16px;
  }
  #about .info dd p {
    line-height: 42px;
    padding-bottom: 42px;
  }
  #about .info dd p.pb0 {
    padding-bottom: 0;
  }
  .lead-shared {
    width: 494px;
    margin: 0 auto 62px;
  }
  .lead-shared h2 {
    top: 193px;
    left: 0 !important;
    right: 0 !important;
  }
  #dinner {
    padding: 138px 0px 150px;
  }
  #dinner .wrap {
    max-width: 1500px;
  }
  #dinner .info {
    padding: 0 0;
    position: relative;
  }
  #dinner .info:before {
    content: 'Friend';
    cursor: vertical-text;
    writing-mode: vertical-rl;
    -o-writing-mode: vertical-rl;
    -ms-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -moz-writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: upright;
    word-wrap: break-word;
    direction: rtl;
    writing-mode: vertical-rl;
    -o-writing-mode: vertical-rl;
    -ms-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -moz-writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: sideways-right;
    -o-text-orientation: sideways-right;
    -ms-text-orientation: upright;
    -ms-text-orientation: sideways-right;
    -moz-text-orientation: sideways-right;
    -webkit-text-orientation: sideways-right;
    position: absolute;
    top: 15px;
    left: 41px;
    font-size: 14px;
    letter-spacing: 0.075em;
    font-family: "Lato";
    font-weight: normal;
  }
}
@media screen and (min-width: 1000px) and (max-width: 1200px) {
  #dinner .info:before {
    left: 18px;
  }
}
@media screen and (min-width: 1000px) {
  #dinner .info .photo {
    margin: 0 0;
    position: absolute;
    top: 15px;
    left: 50%;
  }
  #dinner .info .bnr-shared {
    width: 383px;
  }
  #dinner .info .bnr-shared img {
    height: 79px;
  }
  #dinner .info .item {
    max-width: 1000px;
    margin: 0 auto;
  }
  #dinner .info .item h3 {
    text-align: left;
    font-size: 24px;
    line-height: 52px;
    padding-bottom: 45px;
  }
  #dinner .info .item .txt {
    width: 381px;
    padding-bottom: 26px;
  }
  #dinner .info .item .txt p {
    padding-bottom: 34px;
  }
}
@media screen and (min-width: 1000px) and (max-width: 1140px) {
  #dinner .info {
    padding-left: 50px;
    padding-right: 30px;
  }
}
@media screen and (min-width: 1000px) {
  #dessert {
    padding: 140px 0 100px;
  }
  #dessert .lead-shared h2 {
    top: 178px;
  }
  #dessert .wrap {
    max-width: 1500px;
  }
  #dessert .js {
    position: static;
    display: block;
    padding-bottom: 0;
  }
  #dessert .js .js-fade1 {
    width: 407px;
    position: absolute;
    right: calc(50% + 280px);
    top: 331px;
  }
}
@media screen and (min-width: 1000px) and (max-width: 1400px) {
  #dessert .js .js-fade1 {
    right: calc(50% + 220px);
  }
}
@media screen and (min-width: 1000px) {
  #dessert .js .js-fade2 {
    margin-top: 0;
    width: 252px;
    position: absolute;
    top: 20px;
    left: calc(50% + 275px);
  }
}
@media screen and (min-width: 1000px) and (max-width: 1120px) {
  #dessert .js .js-fade2 {
    left: auto;
    right: 20px;
  }
}
@media screen and (min-width: 1000px) {
  #dessert .wrap {
    padding: 0;
  }
  #dessert .info {
    padding: 0;
    position: relative;
  }
  #dessert .info:before {
    content: 'Lover Date';
    cursor: vertical-text;
    writing-mode: vertical-rl;
    -o-writing-mode: vertical-rl;
    -ms-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -moz-writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: upright;
    word-wrap: break-word;
    direction: rtl;
    writing-mode: vertical-rl;
    -o-writing-mode: vertical-rl;
    -ms-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -moz-writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: sideways-right;
    -o-text-orientation: sideways-right;
    -ms-text-orientation: upright;
    -ms-text-orientation: sideways-right;
    -moz-text-orientation: sideways-right;
    -webkit-text-orientation: sideways-right;
    position: absolute;
    top: 17px;
    left: 36px;
    font-size: 14px;
    letter-spacing: 0.075em;
    font-family: "Lato";
    font-weight: normal;
    white-space: nowrap;
  }
  #dessert .info .item {
    width: 383px;
    margin: 0 auto;
  }
  #dessert .info .item h3 {
    text-align: left;
    font-size: 24px;
    line-height: 52px;
    padding-bottom: 50px;
  }
  #dessert .info .item .txt {
    padding-bottom: 30px;
  }
  #dessert .info .item .txt p {
    padding-bottom: 34px;
  }
  #midnight {
    padding: 182px 0 150px;
  }
  #midnight .lead-shared h2 {
    top: 178px;
  }
  #midnight .wrap {
    padding: 0;
    max-width: 1500px;
  }
  #midnight .info {
    padding: 0;
    position: relative;
  }
  #midnight .info .photo {
    position: absolute;
    padding-bottom: 0;
    top: 15px;
    right: 50%;
    width: 500px;
  }
  #midnight .info .photo li:nth-child(1) {
    text-align: right;
    padding: 0;
    margin-bottom: 12px;
  }
  #midnight .info .photo li:nth-child(2) {
    padding-right: 0;
  }
  #midnight .info .item {
    width: 382px;
    margin-left: calc(50% + 118px);
  }
  #midnight .info .item h3 {
    text-align: left;
    font-size: 24px;
    line-height: 52px;
    padding-bottom: 45px;
  }
  #midnight .info .item .txt {
    padding-bottom: 30px;
  }
  #midnight .info .item .txt p {
    padding-bottom: 34px;
  }
  #recruit {
    padding: 134px 0;
  }
  #recruit h2 {
    margin-bottom: 3px;
    text-align: center;
    padding: 0 24px 0 0;
  }
  #recruit .txt {
    border-bottom: 1px solid;
    padding: 12px 138px 18px;
    line-height: 26px;
  }
  #recruit .wrap {
    position: relative;
    box-sizing: border-box;
    padding: 0 0 0 425px;
  }
  #recruit .photo {
    position: absolute;
    top: 14px;
    left: 45px;
    padding: 0;
    display: block;
  }
  #recruit .photo li {
    width: auto;
  }
  #recruit .photo li:nth-child(2) {
    margin: 11px 0 0 116px;
    width: auto;
  }
  #recruit .tbl-info {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content: space-between;
    padding-top: 39px;
  }
  #recruit .tbl-info .item {
    width: 310px;
  }
  #recruit .tbl-info .item:nth-child(2) {
    width: 240px;
  }
  #recruit .tbl-info dl {
    padding-bottom: 26px;
    line-height: 26px;
  }
}