@charset "utf-8";

:root {
  --white: #fff;
  --black: #1a1817;
  --white-gray: #f8f8f8;
  --red: #b71515;
}

/*========= 
Loading
=========*/
#splash {
  position: fixed;
  z-index: 9999;
  width: 100%;
  height: 100%;
  background: var(--white);
  color: var(--black);
}

.loading__read {
  position: absolute;
  top: 42%;
  left: 50%;
  transform: translateX(-50%);
  font-family: "Zen Old Mincho", serif;
  font-size: 24px;
  letter-spacing: 0.16em;
  line-height: 1.854em;
  white-space: nowrap;
}

#splash_bar {
  position: absolute;
  top: 64%;
  z-index: 999;
  width: 100%;
  color: var(--red);
}
/*========max-width:800px}============*/

@media screen and (max-width: 800px) {
  .loading__read {
    position: absolute;
    top: 44%;
    left: 50%;
    transform: translateX(-50%);
    font-family: "Zen Old Mincho", serif;
    font-size: 14px;
    letter-spacing: 0.16em;
    line-height: 1.854em;
    white-space: nowrap;
  }
  #splash_bar {
    top: 58%;
  }
}

/*========= 
mv
=========*/
.mv__base{
  position: fixed;
  z-index: -1000;
  width: 100%;
  height: 100vh;
}
.mv__relative{
  position: relative;
  width: 100%;
  height: 100%;
}
.mv__black{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--black);
  animation: mvBlackFadeOut 3s both;
  animation-delay:3.2s;
}

@keyframes mvBlackFadeOut{
  from{
    opacity: 1;
  }
  to{
    opacity: 0;
  }
}

.mv__title-box{
  writing-mode: vertical-rl;
  position: absolute;
  top: 118px;
  left: 65%;
  /* background-color: red; */
}
.mv__title-box__text{
  font-size: 31px;
  color: var(--white);
  letter-spacing: 0.3em;
  animation: mvTitleFadeIn 1s ease-in-out 3s both;
}
@keyframes mvTitleFadeIn{
  from{
    transform: translateY(-4px);
    opacity:0;
  }
  to{
    transform: translateY(0);
    opacity: 1;
  }
}
.mv__title-box__line-01,
.mv__title-box__line-02{
  display: block;
  width: 1px;
  background-color: var(--white);
  margin-right: 8px;
}
.mv__title-box__line-01{
  animation: mvTitleLine01 1s ease-in-out 2s both;
  margin-left: 32px;
}

.mv__title-box__line-02{
  animation: mvTitleLine02 1.4s ease-in-out 2s both;
}

@keyframes mvTitleLine01{
  from{
    opacity: 0;
    height: 0;
  }
  to{
    opacity: 1;
    height: 190px;
  }
}
@keyframes mvTitleLine02{
  from{
    opacity: 0;
    height: 0;
  }
  to{
    opacity: 1;
    height: 110px;
  }
}
.mv__img{
  z-index: -1;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: no-repeat;
  background-image: url(../img/mv-img.jpg);
  background-position: center center;
  background-size: cover;
}
.mv__mission-box{
  position: absolute;
  bottom:150px;
  left: 5%;
}
.mv__mission-box__en{
  margin-bottom: 20px;
  color: var(--white);
  font-size: 11px;
  letter-spacing: 0.16em;
  line-height: 1.85em;
  animation: mvTitleFadeIn 1s ease-in-out 3s both;
}
.mv__mission-box__ja{
  color: var(--white);
  font-size: 24px;
  letter-spacing: 0.16em;
  line-height: 1.85em;
  animation: mvTitleFadeIn 1s ease-in-out 3s both;
}
/*========max-width:800px}============*/
 
@media screen and (max-width:800px){
  
  .mv__title-box{
    top: 74px;
    left: 55%
  }
  .mv__title-box__line-01,
  .mv__title-box__line-02{
    margin-right: 8px;
  }

  .mv__mission-box{
    bottom:160px;
    left: 5.8%;
  }
  .mv__mission-box__ja{
    color: var(--white);
    font-size: 14px;
}
}

/*========= 
Greetimgs
=========*/
.greetings{
  position: relative;
  margin-top: 97vh;
  background-color: var(--black);
  width: 100%;
}
.greetings::before{
  content: '';
  display: block;
  position: absolute;
  left:0;
  bottom: 99%;
  border-top: 70px solid transparent;
  border-left: 100% solid transparent;
  border-right: 84.4vw solid var(--black);
  border-bottom: 70px solid var(--black);
}

.greetings__container{
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 137px 8.7% 103px;
}
.greetings__img{
  width: 48%;
  margin-right: 10.1%;
}
.greetings__right-contents-container{
  display: flex;
  flex-direction: column;
  align-items: center;
}
.greetings__ja{
  display: flex;
  flex-direction: row-reverse;
  margin-bottom: 134px;
}
.greetings__title-base-ja{
  display: flex;
  flex-direction: row-reverse;
}
.greetings__title-text-ja{
  writing-mode: vertical-rl;
  font-size: 24px;
  letter-spacing: 0.4em;
  line-height: 1.85em;
  color: var(--white);
}
.greetings__title-line{
  height: 100px;
  background-color: var(--white);
  width: 1px;
  margin-right: 8px;
  margin-left: 40px;
}
.greetings__text-ja{
  writing-mode: vertical-rl;
  letter-spacing: 0.3em;
  line-height: 2.5em;
  color: var(--white);
  font-size: 14px;
}
.greetings__title__text-en{
  margin-bottom: 19px;
  color: var(--white);
  font-family: "Noto Serif", serif;
  font-size: 18px;
  font-weight: regular;
  letter-spacing: 0.18em;
}
.greetings__text-en{
  color: var(--white);
  font-family: "Noto Serif", serif;
  font-weight: 250;
  letter-spacing: 0.15em;
  line-height: 1.85;
  font-size: 16px;
}
/*========max-width:800px}============*/
 
@media screen and (max-width:800px){
  
  .greetings::before{
    bottom: 99.9%;
    border-left: 100vw solid transparent;
    border-right: 100% solid var(--black);
  }
}
/*========max-width:1200px}============*/
 
@media screen and (max-width:1200px){
  
  .greetings{
    position: relative;
    margin-top: 97vh;
    background-color: var(--black);
    width: 100%;
  }
  .greetings__container{
    flex-direction: column;
    padding: 165px 6.4% 164px;
  }
  .greetings__img{
    width: 100%;
    margin-right: 0;
    margin-bottom: 81px;
  }
  .greetings__right-contents-container{
    flex-direction: column;
    align-items: center;
  }
  .greetings__ja{
    margin-bottom: 102px;
  }
  .greetings__title-line{
    margin-left: 33px;
  }
  .greetings__text-ja{
    line-height: 2.3em;
    font-size: 14px;
  }
}

/* ==========
shops
========== */ 
.shops{
  width: 100%;
}
.shops__shop-container{
  position: relative;
  width: 100%;
}
.shops__shop-bg{
  width: 100%;
  background-image: url(../img/ihachi-right-img.jpg);
  background-repeat: no-repeat;
  background-position: center -1px;
  background-size: cover;
  background-color: var(--black);
}

.shops__shop-main-flex__base__ihachi,
.shops__shop-main-flex__base__ohako,
.shops__shop-main-flex__base__event{
  display: flex;
  width: 100%;
  /* background-color: lightblue; */
  transition: 0.4s ease-in-out;
}
.shops__shop-main-flex__base__ohako{
  flex-direction: row-reverse;
}
.shops__shop-main-flex__base__ihachi.hovered,
.shops__shop-main-flex__base__ohako.hovered,
.shops__shop-main-flex__base__event.hovered{
  background-color: rgba(0, 0, 0,0.3);
  transition: 0.4s ease-in-out;

}
.shops__shop-main-img{
  background-image: url(../img/ihachi-main-img.jpg);
  background-size: cover;
  background-position: center -2px;
  width: 75%;
  clip-path: polygon(0 0, 100% 0, 88% 100%, 0 100%);
  background-repeat: no-repeat;
}
.ohako .shops__shop-main-img{
  clip-path: polygon(0 0, 100% 0, 100% 100%, 18% 100%);
}
.event .shops__shop-main-img{
  background-position: center 2px;
}
.shops__shop-contents__base{
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  padding-right: 5.3vw;
  padding-left: 5%;
}

.shops__shop-title,
.shops__shop-title span{
  line-height: 1.85;
  color: white;
  letter-spacing: 0.16em;
}
.shops__shop-title{
  margin-top: 79px;
  margin-bottom: 20px;
}
.shops__shop-title span{
  font-size: 18px;
}
.shops__shop-lead{
  color: var(--white);
  font-size: 18px;
  letter-spacing: 0.16em;
}
.shops__shop-description{
  margin-top: 133px;
  margin-bottom: 186px;
  color: var(--white);
  letter-spacing: 0.16em;
  font-size: 16px;
  text-align: right;
}
.shops__shop-linkbase__ihachi,
.shops__shop-linkbase__ohako,
.shops__shop-linkbase__event{
  transition: 0.4s ease-in-out;
  display: block;
  position: absolute;
  top: 0;
  z-index: 999;
  background-color: rgba(26, 24, 23 , 0);
  width: 100%;
  height: 100%;
}
.shops__shop-linkbase__ihachi.hovered,
.shops__shop-linkbase__ohako.hovered,
.shops__shop-linkbase__event.hovered{
  transition: 0.4s ease-in-out;
  background-color: rgba(26, 24, 23 , 0.5);
}
.arrow-btn{
  position: absolute;
  right: 5.2vw;
  bottom: 82px;
  display: flex;
  align-items: center;
}
.ohako .arrow-btn{
  right: 39vw;
}
.arrow-btn p{
  color: var(--white);
  font-size: 24px;
  letter-spacing: 0.16em;
}
.arrow-btn__arrow-base__ihachi,
.arrow-btn__arrow-base__ohako,
.arrow-btn__arrow-base__event,
.arrow-btn__arrow-base__recruit{
  transition: 0.4s ease-in-out;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-left: 33px;
  border-radius: 50%;
  width: 68px;
  height: 68px;
  background-color: rgba(255, 255, 255, 0.1);
}

.arrow-btn__arrow-base__ihachi.hovered,
.arrow-btn__arrow-base__ohako.hovered,
.arrow-btn__arrow-base__event.hovered,
.arrow-btn__arrow-base__recruit.hovered{
  transition: 0.4s ease-in-out;
  transform: translateX(8px);
  background-color: var(--red);
}
/* ohako */
.ohako .shops__shop-bg{
  background-image: url(../img/ohako-bg-img.jpg);
}
.ohako .shops__shop-main-img{
  background-image: url(../img/ohako-main.jpg);
}

/* event */
.event .shops__shop-bg{
  background-image: url(../img/event-bg.jpg);
}
.event .shops__shop-main-img{
  background-image: url(../img/event-img.jpg);
}
/*========max-width:800px}============*/

@media screen and (max-width:800px){
  
  .shops__shop-main-flex__base__ihachi,
  .shops__shop-main-flex__base__ohako,
  .shops__shop-main-flex__base__event{
    flex-direction: column;
    width: 100%;
  }
.shops__shop-main-img{
  clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%);
  height: 344px;
  width: 100%;
}
.shops__shop-contents__base{
  padding-right: 7vw;
  padding-left: 7vw;
}

.shops__shop-title,
.shops__shop-title span{
  line-height: 1.85;
  color: white;
  letter-spacing: 0.16em;
}
.shops__shop-title{
  margin-top: 53px;
}
.shops__shop-lead{
  font-size: 16px;
}
.shops__shop-description{
  margin-top: 94px;
  margin-bottom: 252px;
  font-size: 14px;
  text-align: left;
 }
 .shops__shop-linkbase__ihachi,
 .shops__shop-linkbase__ohako,
 .shops__shop-linkbase__event{
  pointer-events: none;
 }
.shops__shop-linkbase.hovered{
  transition: none;
  background-color:none;
}
.arrow-btn{
  right: 7vw;
  bottom: 155px;
}
.arrow-btn p{
  font-size: 16px;
}
.arrow-btn__arrow-base__ihachi,
.arrow-btn__arrow-base__ohako,
.arrow-btn__arrow-base__event,
.arrow-btn__arrow-base__recruit{
  margin-left: 17px;
  width: 52px;
  height: 52px;
  background-color:var(--red);
}
.shops__shop-main-flex__base__ohako{
  flex-direction: column;
}
.ohako .shops__shop-main-img{
  clip-path: polygon(0 0, 100% 0%, 100% 100%, 0 88%);;
}
.ohako .arrow-btn{
  right: 39vw;
}
}

/* ==========
company
========== */ 
.company{
  background-color: var(--white);
  padding:147px 0 319px 6.1vw ;
}
.company__flex-container{
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.company__contents{
  width: 50%;
}

.company__lead{
  margin-top: 24px;
  margin-bottom: 58px;
  font-size: 24px;
  letter-spacing: 0.16em;
  line-height: 1.85em;
  white-space: nowrap;
}
.company__list__row{
  display: flex;
  margin-bottom: 24px;
}
.company__list__title{
  width: 141px;
  margin-right: 35px;
  font-size: 16px;
  letter-spacing: 0.16em;
  line-height: 1.85;
  white-space: nowrap;
}
.company__list__description{
  font-size: 16px;
  letter-spacing: 0.16em;
  line-height: 1.85;
}
.company__img{
  width: 50%;
  height: 100%;
}
.company__img__SP{
  display: none;
}
/*========max-width:1400px}============*/
 
@media screen and (max-width:1400px){
  .company__list__row{
    display: block;
  }
  .company__list__title{
    margin-bottom: 7px;
  }
}
/*========max-width:800px}============*/
 
@media screen and (max-width:800px){
  .company{
    padding:85px 0 102px ;
  }
  .company__flex-container{
    display: block;
  }
  .company__contents{
    width: 100%;
  }
  .company .section-title{
    padding: 0 5.2vw;
  }
  .company__lead{
    margin-bottom: 54px;
    font-size: 14px;
    padding: 0 5.2vw;
  }
  .company__list{
    padding: 0 5.2vw;
  }
  .company__list__row{
    margin-bottom: 40px;
  }
  .company__list__title{
    width: auto;
    margin-right: auto;
    font-size: 14px;
  }
  .company__img{
display: none;
  }
  .company__img__SP{
    display: block;
  }
}
/*========= 
contact
=========*/
.contact{
  width: 100%;
  position: relative;
  background-color: var(--white-gray);
  width: 100%;
  padding: 66px 0 85px;;
}
.contact::before{
  content: '';
  display: block;
  position: absolute;
  left:0;
  bottom: 99%;
  border-top: 70px solid transparent;
  border-left: 100% solid transparent;
  border-right: 84.4vw solid var(--white-gray);
  border-bottom: 70px solid var(--white-gray);
}
.contact .section-title{
  display: flex;
  flex-direction: column;
  align-items: center;
}
.contact__lead{
  text-align: center;
  padding: 24px 0 35px;
  font-size: 16px;
  letter-spacing: 0.16em;
  line-height: 1.85;
}
.contact__form{
  background-color: var(--white);
  margin: 0 auto;
  padding: 73px 11%;
  width: 67%;
}
.contact__form__lead{
  margin-bottom: 59px;
  text-align: center;
  font-size: 16px;
  letter-spacing: 0.16em;
  line-height: 1.85;
}
.contact__form__item{
  display: flex;
}
.contact__form__item span{
  color: var(--red);
}
.contact__form__item:nth-of-type(1),
.contact__form__item:nth-of-type(2){
  margin-bottom: 39px;
}
.contact__form__item label{
  width: 40%;
  font-size: 16px;
  letter-spacing: 0.16em;
  line-height: 1.85;
  margin-top: 17px;
}
.contact__form__item input,
textarea{
  height: 64px;
  background-color: #D9D9D9;
  border: none;
  padding: 20px 20px;
}
.contact__form__item input,
textarea{
  width: 60%;
}
textarea{
  resize: none;
  height: 200px;
  width: 60%;
}
.contact__form__item:nth-of-type(3){
margin-bottom: 46px;
}
.contact__form__privacy{
  margin: 0 auto 25px;
  text-align: center;
}
label.privacy{
  margin-left: 5px;
}
input[type=submit]{
  display: block;
  margin: 0 auto;
  color: var(--white);
  padding: 17px 28px;
  background-color: var(--black);
  border: none;
  transition: 0.2s ease-in-out;
  font-size: 16px;
}
input[type=submit]:hover{
  background-color: var(--red);
  transition: 0.2s ease-in-out;
}
/*========max-width:800px}============*/
 
@media screen and (max-width:800px){
  .contact{
    /* width: 100%; */
    padding: 59px 5.2vw 112px;;
  }
  .contact::before{
    bottom: 99.9%;
    border-left: 100vw solid transparent;
    border-right: 100% solid var(--white-gray);
  }
  .contact .section-title{
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .contact__lead{
    padding: 24px 0 49px;
    font-size: 14px;
  }
  .contact__form{
    padding: 29px 10% 47px;
    width: 87%;
  }
  .contact__form__lead{
    margin-bottom: 27px;
    font-size: 14px;
  }
  .contact__form__item{
    display: flex;
    flex-direction: column;
  }
  .contact__form__item:nth-of-type(1),
  .contact__form__item:nth-of-type(2){
    margin-bottom: 24px;
  }
  .contact__form__item label{
    width: auto;
    font-size: 14px;
    margin-bottom: 12px;
  }
  .contact__form__item input,
  textarea{
    height: 48px;
    padding: 8px 8px;
  }
  .contact__form__item input,
  textarea{
    width: 100%;
  }
  textarea{
    resize: none;
    height: 200px;
    width: 100%;
  }
  .contact__form__item:nth-of-type(3){
  margin-bottom: 25px;
  }
  .contact__form__privacy{
    margin: 0 auto 27px;
  }
  label.privacy{
    margin-left: 5px;
  }
  input[type=submit]{
    padding: 17px 28px;
    background-color: var(--black);
    border: none;
    font-size: 16px;
    transition: 0.2s ease-in-out;
  }
  input[type=submit]:hover{
    background-color: var(--red);
    transition: 0.2s ease-in-out;
  }
}
/*========= 
recruit
=========*/
.recruit{
  position: relative;
  width: 100%;
  height: 522px;
  background-image: url(../img/recruit-bg.jpg);
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}
.recruit .section-title{
  margin-bottom: 25px;
}
.recruit .section-title__en,
.recruit .section-title__ja{
  color: var(--white);
}
.recruit__linkbase{
  padding: 106px 6% 247px;
  position: absolute;
  top: 0;
  bottom:0;
  width: 100%;
  height: 100%;
  background-color: rgba(26, 24, 23, 0.8);
  transition: 0.2s ease-in-out;
}
.recruit__linkbase:hover{
  background-color: rgba(26, 24, 23, 0.9);
  transition: 0.2s ease-in-out;
}
.recruit__lead{
  color: var(--white);
  font-size: 16px;
}
/*========max-width:800px}============*/
 
@media screen and (max-width:800px){
  .recruit__linkbase{
    pointer-events: none;
    padding: 72px 5.2vw 237px;
    background-color: rgba(26, 24, 23, 0.8);
  }
  .recruit__lead{
    font-size: 14px;
  }
  .recruit .arrow-btn{
    bottom: 155px;
    bottom: 61px;
  }
}
