
body{
  background-color: #ece6da;
  max-width: 1280px;
  margin: 0 auto 0 auto;
}
/* ヘッダー */
.l-header{
  display: flex;
  justify-content: space-between;
  padding: 10px;
  margin-bottom:50px ;
  width: 100%;
}
.openbtn1{
  display: none;
}
.nav-sp {
  display: none;
}
.logo{
  font-size: 15px;
  font-family: "Jost", serif;
  font-optical-sizing: auto;
  font-weight: weight;
  font-style: normal;
}
.l-nav_list{
  font-size: 15px;
  display: flex;
  column-gap: 50px;
  font-family: "Jost", serif;
  font-optical-sizing: auto;
  font-weight: weight;
  font-style: normal;
}
.menu-sp{
  display: none;
}
/* メインビジュアル */
.l-mv{
  position: relative;
  height: 700px;
}
.l-mv_catchcopy p{
  font-size: 200px;
  font-family: "Oranienbaum", serif;
  font-weight: 400;
  font-style: normal;
}
.l-mv_catchcopy{
  position: absolute;
  left: 100px;
  top: 50px;
  letter-spacing: 0.05em;
  line-height: 0.75;
}
.black{
  color: #1d1d1d;
}
.gray{
  color: rgba(0, 0, 0, 0.5);
}
.l-mv_text{
  font-size: 20px;
  font-family: "Jost", serif;
  font-optical-sizing: auto;
  font-weight: weight;
  font-style: normal;
  position: absolute;
  left: 120px;
  bottom: 100px;
  width: 28vw;
}
.l-mv_img{
  position: absolute;
  width: 650px;
  height: 500px;
  right: 100px;
  top: 100px;
}

/* ワークス */
.l-works{
  margin: 50px auto 50px auto;
  position: relative;
}
.l-works_title{
  font-size: 50px;
  letter-spacing: -3%;
  font-family: "Oranienbaum", serif;
  font-weight: 400;
  font-style: normal;
  text-align: right;
  margin: 10px;
}
.l-works_title span{
  font-size: 100px;
  position: relative;
  right: -13px;
}
.l-works_flex{
  display: flex;
  justify-content: center;
  column-gap: 10px;
  margin: 20px;
}
.left{
  max-width: 550px;
}


.left-top_img{
  display: block;
  width: 100%;
  height: 530px;
  margin-bottom: 10px;
  position: relative;
}

/* hoverしてない時のtext */
.left-top_img .text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;

  background-color: rgba(0, 0, 0, 0.5);

  line-height: 1.6;
  color: white;
  padding: 15px;
}

/* hoverした時のtext */
.left-top_img:hover .text {
  opacity: 1;
  visibility: visible;
  transition: all 0.2s ease-in-out;
}

.left-top_img img{
  width: 100%;
  height: 100%;
}
/* ここまで */

.left-middle_img{
  display: block;
  width: 100%;
  height: 350px;
  margin-bottom:10px ;
  position: relative;
}
.left-middle_img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.left-middle_img .text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;

  background-color: rgba(0, 0, 0, 0.5);

  line-height: 1.6;
  color: white;
  padding: 15px;
}
/* hoverした時のtext */
.left-middle_img:hover .text {
  opacity: 1;
  visibility: visible;
  transition: all 0.2s ease-in-out;
}
.left-bottom_img{
  display: block;
  width: 100%;
  object-position: inherit;
  height: 200px;
  position: relative;
}
.left-bottom_img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.left-bottom_img .text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;

  background-color: rgba(0, 0, 0, 0.5);

  line-height: 1.6;
  color: white;
  padding: 15px;
}
/* hoverした時のtext */
.left-bottom_img:hover .text {
  opacity: 1;
  visibility: visible;
  transition: all 0.2s ease-in-out;
}
.right{
  max-width: 800px;
}
.right_top{
  display: flex;
}
.right_top_first{
  display: block;
  width: 100%;
  height: 350px;
  margin: 0 10px 10px 0;
  position: relative;
}
.right_top_first img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.right_top_first .text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;

  background-color: rgba(0, 0, 0, 0.5);

  line-height: 1.6;
  color: white;
  padding: 15px;
}

/* hoverした時のtext */
.right_top_first:hover .text {
  opacity: 1;
  visibility: visible;
  transition: all 0.2s ease-in-out;
}
.right_top_second{
  display: block;
  width: 440px;
  height: 350px;
  margin-bottom: 10px;
  position: relative;
}
.right_top_second img{
  width: 100%;
  height: 100%;
}
.right_top_second .text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;

  background-color: rgba(0, 0, 0, 0.5);

  line-height: 1.6;
  color: white;
  padding: 15px;
}

/* hoverした時のtext */
.right_top_second:hover .text {
  opacity: 1;
  visibility: visible;
  transition: all 0.2s ease-in-out;
}
.right_middle{
  display: flex;
}
.right_middle_first{
  display: block;
  width: 270px;
  height: 360px;
  margin: 0 10px 10px 0;
  position: relative;
}
.right_middle_first img{
  width: 100%;
  height: 100%;
}
.right_middle_first .text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;

  background-color: rgba(0, 0, 0, 0.5);

  line-height: 1.6;
  color: white;
  padding: 15px;
}

/* hoverした時のtext */
.right_middle_first:hover .text {
  opacity: 1;
  visibility: visible;
  transition: all 0.2s ease-in-out;
}
.right_middle_second{
  display: block;
  width: 540px;
  height: 360px;
  margin-bottom: 10px;
  position: relative;
}
.right_middle_second img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.right_middle_second .text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;

  background-color: rgba(0, 0, 0, 0.5);

  line-height: 1.6;
  color: white;
  padding: 15px;
}

/* hoverした時のtext */
.right_middle_second:hover .text {
  opacity: 1;
  visibility: visible;
  transition: all 0.2s ease-in-out;
}
.right_bottom {
  display: block;
  width: 100%;
  height: 365px;
  position: relative;
}

.right_bottom img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.right_bottom .text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;

  background-color: rgba(0, 0, 0, 0.5);

  line-height: 1.6;
  color: white;
  padding: 15px;
}

/* hoverした時のtext */
.right_bottom:hover .text {
  opacity: 1;
  visibility: visible;
  transition: all 0.2s ease-in-out;
}
/* アバウト */
.l-about{
  margin: 50px auto 50px auto;
  position: relative;
}
.l-about_title{
  font-size: 50px;
  font-family: "Oranienbaum", serif;
  font-weight: 400;
  font-style: normal;
  text-align: left;
  margin-top: 50px;
 
}
.l-about_title span{
  font-size: 100px;
}
.l-about_flex{
  display: flex;
  justify-content: center;
}
.l-about_flex img{
  width: 550px;
  height: 600px;
  margin-top:50px ;
}
.l-about_left{
  width: 550px;
  height: 700px;
  background-color: #f3f2ee;
}
.right_black{
   position: relative;
   width: 550px;
  height: 700px;
  background-color: #2e2e2e;
}
.right_name{
  position: absolute;
  left: 30px;
  top: 300px;
  font-size: 50px;
  color: #FFFF;
  font-family: "Oranienbaum", serif;
  font-weight: 400;
  font-style: normal;
  position: absolute;
}
.right_text{
  position: absolute;
  left: 30px;
  bottom: 150px;
  padding-right:30px ;
  color: #FFFF;
  font-family: "Zen Kaku Gothic Antique", serif;
  font-weight: 400;
  font-style: normal;
}
/* フッター */
.l-footer{
  text-align: center;
}


/* 画面幅が767px以下のとき */
@media screen and (max-width: 767px) {
  /* スマートフォン用のスタイルを指定する */
  /* PC用ナビゲーション非表示 */

  .l-header{
    margin-bottom: 20px;
  }
  .l-nav {
    display: none;
  }
  .menu-sp{
    display: block;
     background-color: transparent;
     float: right;
     padding: 0;
     border: none;
   }
  .menu-sp img{
    width: 80%;
    height: 80%;

  }
  .nav-sp{
    background-color:#f3f2ee;
    position: fixed;
    left: 0;
    top: 0;
    height: 100%;
    width: 100%;
    z-index: 100;
    padding: 100px 50px;
  }
  .nav-sp ul {
    display: flex;
    flex-direction: column;
    row-gap: 20px;
  }

  .nav-sp li a {
    font-size: 20px;
  }
  .nav-sp.open {
    display: block;
  }
  .close{
     position: absolute;
     top: 20px;
     right: 20px;
     background-color: transparent;
     border: none;
  }
   #nav-sp nav ul {
     padding-left: 0;
   }
 
   #nav-sp nav li {
     list-style: none;
   }
 
  /* メインビジュアル */
  .l-mv{
    position: relative;
    height: 500px;
  }
  .l-mv_img{
    width: 100%;
    height:60%;
    right: auto;
    top: 100px;
  }
  .l-mv_catchcopy p{
    font-size: 70px;
  }
  .l-mv_catchcopy{
    position: absolute;
    left: 20px;
    top: 20px;
  }
  .l-mv_text{
    font-size: 15px;
    position: absolute;
    left: auto;
    right: 20px;
    bottom: 20px;
  }
/* ワークス */
.l-works{
  margin: 20px;
}
.l-works_title{
  font-size: 40px;
  letter-spacing: -3%;
  font-family: "Oranienbaum", serif;
  font-weight: 400;
  font-style: normal;
  text-align: center;
  margin: 50px 10px 10px 10px;
}
.l-works_title span{
  font-size: 80px;
  position: relative;
  right: -13px;
}
 .l-works_flex{
  display: block;
 }
 .left-top_img{
  margin-bottom: 30px;
 }

 .right_middle{
  display: block;
 }
 .right_middle img{
  width: 100%;
  margin-bottom:30px ;
 }
 .right_middle_second{
  width: 100%;
 }
 /* アバウト */
 .l-about_title{
  font-size: 40px;
  font-family: "Oranienbaum", serif;
  font-weight: 400;
  font-style: normal;
  text-align: center;
 }
 .l-about_title span{
  font-size: 80px;
 }
 .l-about_flex{
  flex-direction: column-reverse;
  padding: 20px;

 }
 .l-about_flex img{
  width: 100%;
  height: 350px;
  margin-top: 0px;
  object-fit: cover;
 }
.l-about_left{
  width: 100%;
  height: 350px;
  background-color: #f3f2ee;
  padding-left: 50px;
}
.l-about_right{
  width: 100%;
  height: 350px;
  background-color: #f3f2ee;
  padding-right: 50px;
}
.right_black{
  width: 100%;
  height: 350px;
  background-color: #1d1d1d;
}
.right_name{
  position: absolute;
  left: 30px;
  top: 150px;
  font-size: 30px;
  color: #FFFF;
  font-family: "Oranienbaum", serif;
  font-weight: 400;
  font-style: normal;
}
.right_text{
  position: absolute;
  left: 30px;
  bottom: 40px;
  padding-right:30px;
  color: #FFFF;
  font-family: "Zen Kaku Gothic Antique", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 10px;
  overflow-wrap: anywhere;
}

.left-top_img {
  width: 100%;
}

.left-middle_img {
  width: 100%;
  margin-bottom: 30px;
  padding: 0;
}

.left-bottom_img {
  width: 100%;
  margin-bottom: 30px;
}

.right_top_first{
  width: 100%;
  margin-bottom: 30px;
}

.right_middle_first {
  padding: 0;
  width: 100%;
  margin-bottom: 30px;
}
.right_middle_second{
  margin-bottom:30px ;
}
}

@media screen and (max-width: 767px) {
  .openbtn1 {
    display: block;
    position: relative; /*ボタン内側の基点となるためrelativeを指定*/
    cursor: pointer;
    width: 10.6666666667vw;
    height: 10.6666666667vw;
    border-radius: 5px;
  }
  .openbtn1 span {
    display: inline-block;
    transition: all 0.4s; /*アニメーションの設定*/
    position: absolute;
    right: 10px;
    height: 2px;
    border-radius: 0px;
    width: 5vw;
    z-index: 120;
    background-color: black;
  }
  .openbtn1 span:nth-of-type(1) {
    top: 0.6666666667vw;
  }
  .openbtn1 span:nth-of-type(2) {
    top: 2.3333333333vw;
  }
  .openbtn1 span:nth-of-type(3) {
    top: 4vw;
  }
  .openbtn1 p {
    position: absolute;
    font-size: 4.2666666667vw;
    bottom: 3.4666666667vw;
    left: 0;
    right: auto;
    width: 100%;
    text-align: center;
  }
  .openbtn1.active {
    top: 0;
    z-index: 120;
  }
  .openbtn1.active span {
    background-color: black;
  }
  .openbtn1.active span:nth-of-type(1) {
    top: 3vw;
    right: 10px;
    left: auto;
    transform: translateY(10px) rotate(-45deg);
    width: 5.6666666667vw;
  }
  .openbtn1.active span:nth-of-type(2) {
    opacity: 0; /*真ん中の線は透過*/
  }
  .openbtn1.active span:nth-of-type(3) {
    top: 3vw;
    left: auto;
    right: 10px;
    transform: translateY(10px) rotate(45deg);
    width: 5.6666666667vw;
  }
  .openbtn1.active p {
    display: none;
  }
}