@charset "utf-8";
/*
font-family: "Noto Serif JP";
font-weight: 700;
sans:400=Regular,700=Bold
*/
.btn{
  position: relative;
  background-color:#4A800F;
  width: 256px;
  height: 60px;
}
.btn a{
  display: block;
  color:#FFF;
  width: 256px;
  font-size:18px;
  font-weight: 400;
  line-height: 60px;
  text-align: center;
  text-decoration: none;
}
.btn:hover{
  background-color:#AE7E3A;
}
.btn02{
  position: relative;
  background-color:#AE7E3A;
  width: 256px;
  height: 60px;
}
.btn02 a{
  display: block;
  color:#FFF;
  width: 256px;
  font-size:18px;
  font-weight: 400;
  line-height: 60px;
  text-align: center;
  text-decoration: none;
}
.btn02:hover{
  background-color:#4A800F;
}
.none_br{
  display: none;
}
a[href^="tel:"] {
  pointer-events: none;
}

.br_sp{
  display: none;
}

/* keyview */
#keyview{
  position: relative;
  width: 100%;
  height: 100vh;  /* 固定値(768px)ではなく画面の高さに合わせる */
  overflow: hidden; /* 下にはみ出さないようにする */
}
.key_img{
  width: 100%;
  height: 100svh;
  object-fit: cover; /* 画像をアスペクト比を保ったまま全面にフィット */
}
.swiper{
  width: 100%;
  height: 100%;
}
.swiper img{
  width: 100%;
  height: 100%;
  object-fit: cover; /* アスペクト比を維持しつつトリミング */
  display: block;

}
.catch_copy{
  position: absolute;
  top:50%;
  left:50%;
  z-index: 50;
  transform:translateX(-50%) translateY(-50%);
  -webkit- transform:translateX(-50%) translateY(-50%);
}
.catch_copy h2{
  margin:0px 0 0;
  width: 574px;
}
.catch_copy h2 img{
  width: 100%;
}
/*top_service*/
#top_service{
  width: 100%;
  margin: 180px 0 200px;
}
.top_service_wrap{
  width: 1200px;
  margin: 0 auto;
}
.top_service_img{
  width: 590px;
  margin: 0 auto 60px;
}
.top_service_img img{
  width: 100%;
}
.top_service_cont{
  position: relative;
  width: 100%;
  height: 205px;
}
.top_service_cont h3{
  position: absolute;
  top: 0;
  left: 0;
  width: 384px;
  font-family: "Noto Serif JP";
  font-weight: 700;
  font-size: 48px;
  line-height: 57px;
  color: ##333333;
}
.top_service_cont p{
  position: absolute;
  top: 0;
  right: 0;
  width: 786px;
  font-size: 24px;
  line-height: 36px;
  color: ##333333;
}
#btn{
  position: absolute;
  top: 165px;
}
.top_bg_01{
  width: 100%;
  height: 768px;
  overflow: hidden;
}
.top_bg_01 img{
  width: 100%;
  min-width: 1366px;
}

/*top_list*/
#top_list{
  width: 100%;
  background-color: #F5F5F5;
  overflow: hidden;
}
.top_list_cont{
  width: 1326px;
  margin: 100px auto 0;
}
.top_list_cont h3{
  margin-bottom: 65px;
  font-size: 48px;
  line-height: 57px;
  color: #4A800F;
  text-align: center;
  font-family: "Noto Serif JP";
  font-weight: 700;
}
.top_list_cont ul {
  width: 100%;
  margin: 0 auto;
}
.top_list_cont li{
  width: 653px;
  float: left;
  background-color: #FFF;
  margin: 0 0 20px 20px;
}
.top_list_cont li:nth-child(1),
.top_list_cont li:nth-child(3){
  margin: 0 0 20px 0px;
}
.top_list_cont li a{
  display: block;
  text-decoration: none;
  overflow: auto;
}
.list_furniture{
  width: 593px;
  margin: 0 auto;
  padding-bottom: 40px;
}
.list_furniture_img{
  position: relative;
  width: 100%;
  height: 593px;
  margin: 30px 0 30px;
}
.list_furniture_img:hover {
  background-color: rgba(0, 0, 0, 1); /* ホバー時に黒の半透明を表示 */
  width: 100%;
  height: 593px;
}
.list_furniture_img:hover::after {
  content: "Custom Storage Solutions";
  position: absolute;
  top: 50%;
  left: 50%;
  transform:translateX(-50%) translateY(-50%);
  -webkit- transform:translateX(-50%) translateY(-50%);
  color: #FFF;
  font-size: 24px;
  line-height: 38px;
  font-family: "Noto Serif JP";
  font-weight: 700;
  white-space: nowrap;
}
li:nth-of-type(2) .list_furniture_img:hover::after{
  content: "Custom Cabinets & Sideboards";
  position: absolute;
  top: 50%;
  left: 50%;
  transform:translateX(-50%) translateY(-50%);
  -webkit- transform:translateX(-50%) translateY(-50%);
  color: #FFF;
  font-size: 24px;
  line-height: 38px;
  font-family: "Noto Serif JP";
  font-weight: 700;
  white-space: nowrap;
}
li:nth-of-type(3) .list_furniture_img:hover::after{
  content: "Freestanding Storage";
  position: absolute;
  top: 50%;
  left: 50%;
  transform:translateX(-50%) translateY(-50%);
  -webkit- transform:translateX(-50%) translateY(-50%);
  color: #FFF;
  font-size: 24px;
  line-height: 38px;
  font-family: "Noto Serif JP";
  font-weight: 700;
  white-space: nowrap;
}
li:nth-of-type(4) .list_furniture_img:hover::after{
  content: "Wooden Accessories & Decor";
  position: absolute;
  top: 50%;
  left: 50%;
  transform:translateX(-50%) translateY(-50%);
  -webkit- transform:translateX(-50%) translateY(-50%);
  color: #FFF;
  font-size: 24px;
  line-height: 38px;
  font-family: "Noto Serif JP";
  font-weight: 700;
  white-space: nowrap;
}
.list_furniture_img:hover::before {
  content: "";
  position: absolute;
  background: url(../images/top_arrow.png) no-repeat;
  background-size: cover;
  bottom: 30px;
  right: 30px;
  width: 40px;
  height: 40px;
}
.list_furniture_img:hover img{
  width: 100%;
  opacity: 0.3; /* 画像を半透明に */
}
.list_furniture_img img{
  width: 100%;
  transition: ease-in-out;
}
.list_furniture p{
  font-size: 24px;
  line-height: 1.5em;
  color: #2B2B2B;
  text-align: center;
}

/*top_product*/
#top_product{
  position: relative;
  width: 100%;
  height: 768px;
  overflow: hidden;
}
.product_cont_img{
  position: absolute;
  bottom: 0;
  left:0;
  width: 100%;
  height: 768px;
}
.product_cont_img img{
  position: absolute;
  top: 50%;
  left:0;
  transform:translateY(-50%);
  width: 100%;
  min-width: 1366px;
}
.product_cont_transparent{
  position: absolute;
  top: 0;
  left: 0;
  width: 50%;
  height: 768px;
  overflow: hidden;
  background-color: rgba(0, 0, 0, 0.4);
}
.top_product_cont{
  width: 540px;
  margin: 145px auto 0;
}
.top_product_cont h3{
  margin: 0 0 35px;
  font-size: 48px;
  line-height: 54px;
  color: #FFF;
  font-family: "Noto Serif JP";
  font-weight: 700;
}
.top_product_cont p{
  margin: 0 0 70px;
  font-size: 24px;
  line-height: 38px;
  color: #FFF;
  font-family: "Noto Sans JP";
  font-weight: 400;
}
.top_bg_02{
  width: 100%;
  height: 768px;
  overflow: hidden;
}
.top_bg_02 img{
  width: 100%;
  min-width: 1366px;
}

/* news */
#news{
  background-color: #F0EDE5;
  width: 100%;
}
.cont_news{
  overflow: auto;
  width: 1020px;
  height: auto;
  margin: 0 auto;
  padding:0px 0 180px;
  position: relative;
}
.news_head{
  margin:0;
}
.news_btn{
  margin:60px auto 0;
}
.news_btn .btn{
  margin:0 auto;
  background-color:#4A800F;
}
.news_btn .btn a{
  color:#FFF;
}
.news_btn .btn:hover{
  background-color:#AE7E3A;
}
.news_btn .btn:hover a{
  color:#FFF;
}
#news h3{
  margin: 100px 0 0;
  padding:0 0 19px;
  font-size: 54px;
  line-height: 54px;
  font-weight: 700;
  color: #4A800F;
  text-align: center;
}
#news ol{
  margin:60px auto 0;
  width: 100%;
}
#news ol li{
  position: relative;
  border-bottom:1px solid #AE7E3A;
  height: 50px;
}
#news ol li:first-child{
  border-top:1px solid #AE7E3A;
}
#news ol li::after{
  position: absolute;
  top:21.5px;
  right:5px;
  content: "";
  background:url(../images/top_arrow02.png) no-repeat;
  background-size: cover;
  width: 6px;
  height: 7px;
}
#news ol li a{
  display: flex;
  align-items: center;
  text-decoration: none;
}
#news ol li a:hover{
  background-color: #FFF;;
}
#news ol li time{
  margin: 0 0 0 10px;
  width:80px;
  height: 30px;
  line-height: 30px;
}
#news ol li .category{
  margin:10px 30px;
  padding:0 10px;
  background-color:#4A800F;
  color:#FFF;
  min-width: 100px;
  height:30px;
  line-height:30px;
  text-align: center;
}

/*スマホ*/
@media (max-width: 767px){
  .btn{
    position: relative;
    width: 252px;
    height: 60px;
    background-color:#4A800F;
  }
  .btn a{
    display: block;
    color:#FFF;
    width: 252px;
    font-size:18px;
    font-weight: 400;
    line-height: 60px;
    text-align: center;
    text-decoration: none;
  }
  .btn:hover{
    background-color:#AE7E3A;
  }
  .btn02{
    position: relative;
    width: 252px;
    height: 60px;
    margin: 0 auto;
    background-color:#AE7E3A;
  }
  .btn02 a{
    display: block;
    color:#FFF;
    width: 256px;
    font-size:18px;
    font-weight: 400;
    line-height: 60px;
    text-align: center;
    text-decoration: none;
  }
  .btn02:hover{
    background-color:#4A800F;
  }
  .none_br{
    display: block;
  }
  a[href^="tel:"] {
    pointer-events:auto;
  }

  .br_sp{
    display: block;
  }

  /* keyview */
  #keyview{
    position: relative;
    width: 100%;
    height: 100svh;
  }
  .key_img{
    width: 100%;
    height: 100svh;
    min-height: 100svh;
  }
  .swiper{
    width: 100%;
    height: 100svh;
  }
  .swiper img{
    position: absolute;
    top: 0;
    left: 50%;
    transform:translateX(-50%);
    -webkit- transform:translateX(-50%);
    width: auto;
    height: 100svh;
    overflow: hidden;
  }
  .catch_copy{
    position: absolute;
    top:50%;
    left:50%;
    z-index: 50;
    transform:translateX(-50%) translateY(-50%);
    -webkit- transform:translateX(-50%) translateY(-50%);
  }
  .catch_copy h2{
    margin:0px 0 0;
    width: 350px;
  }
  .catch_copy h2 img{
    width: 100%;
  }
  /*top_service*/
  #top_service{
    width: 100%;
    margin: 50px 0 40px;
  }
  .top_service_wrap{
    width: calc(100% - 10px);
    margin: 0 auto;
  }
  .top_service_img{
    width: 290px;
    margin: 0 auto 100px;
  }
  .top_service_img img{
    width: 100%;
  }
  .top_service_cont{
    position: static;
    width: 100%;
    height: auto;
  }
  .top_service_cont h3{
    position: static;
    top: 0;
    left: 0;
    width: calc(100% - 30px);
    margin: 0 auto;
    text-align: center;
    font-family: "Noto Serif JP";
    font-weight: 700;
    font-size: 24px;
    line-height: 29px;
    color: #333333;
  }
  .top_service_cont p{
    position: static;
    top: 0;
    right: 0;
    width: 100%;
    font-size: 16px;
    line-height: 1.5em;
    color: ##333333;
    margin: 30px 0 0 0;
  }
  #btn{
    position: static;
    bottom: 0;
    margin: 40px auto 0;
  }
  .top_bg_01{
    position: relative;
    width: 100%;
    height: 400px;
    overflow: hidden;
  }
  .top_bg_01 img{
    position: absolute;
    top:50%;
    left: 50%;
    transform:translateX(-50%) translateY(-50%);
    -webkit- transform:translateX(-50%) translateY(-50%);
    width: 100%;
    height: auto;
    min-width: 768px;
  }
  /*top_list*/
  #top_list{
    width: 100%;
    background-color: #F5F5F5;
    overflow: hidden;
  }
  .top_list_cont{
    width: calc(100% - 10px);
    margin: 60px auto 40px;
  }
  .top_list_cont h3{
    margin-bottom: 30px;
    font-size: 24px;
    line-height: 29px;
    color: #4A800F;
    text-align: center;
    font-family: "Noto Serif JP";
    font-weight: 700;
  }
  .top_list_cont ul {
    max-width: 100%;
    width: 100%; /* 1366pxまでは可変 */
    margin: 0 auto;
  }
  @media screen and (max-width: 1200px) {
    .top_list_cont ul {
      overflow-x: visible;; /* 横スクロールなし */
      white-space: nowrap; /* 折り返し防止 */
      display: block; /* 横並び解除 */
      flex-wrap: nowrap;
    }

    .top_list_cont li {
      flex: 0 0 auto;
      min-width: calc(100% - 10px); /* 最小幅を確保して縮みすぎを防ぐ */
    }
  }
  .top_list_cont li{
    width: 100%;
    float: none;
    background-color: #FFF;
    margin: 0 0 10px;
  }
  .top_list_cont li a{
    display: block;
    text-decoration: none;
    overflow: hidden;
  }
  .list_furniture{
    width: calc(100% - 20px);
    margin: 0 auto;
    padding-bottom: 16px;
  }
  .list_furniture_img{
    position: relative;
    width: 100%;
    height: auto;
    margin: 10px auto 0px;
  }
  .list_furniture_img:hover {
    background-color: rgba(0, 0, 0, 1); /* ホバー時に黒の半透明を表示 */
    width: 100%;
    height: auto;
  }
  .list_furniture_img:hover::after {
    content: "Custom Storage Solutions";
    position: absolute;
    top: 50%;
    left: 50%;
    transform:translateX(-50%) translateY(-50%);
    -webkit- transform:translateX(-50%) translateY(-50%);
    color: #FFF;
    font-size: 18px;
    line-height: 38px;
    font-family: "Noto Serif JP";
    font-weight: 700;
    white-space: nowrap;
  }
  li:nth-of-type(2) .list_furniture_img:hover::after{
    content: "Custom Cabinets & Sideboards";
    position: absolute;
    top: 50%;
    left: 50%;
    transform:translateX(-50%) translateY(-50%);
    -webkit- transform:translateX(-50%) translateY(-50%);
    color: #FFF;
    font-size: 18px;
    line-height: 38px;
    font-family: "Noto Serif JP";
    font-weight: 700;
    white-space: nowrap;
  }
  li:nth-of-type(3) .list_furniture_img:hover::after{
    content: "Freestanding Storage";
    position: absolute;
    top: 50%;
    left: 50%;
    transform:translateX(-50%) translateY(-50%);
    -webkit- transform:translateX(-50%) translateY(-50%);
    color: #FFF;
    font-size: 18px;
    line-height: 38px;
    font-family: "Noto Serif JP";
    font-weight: 700;
    white-space: nowrap;
  }
  li:nth-of-type(4) .list_furniture_img:hover::after{
    content: "Wooden Accessories & Decor";
    position: absolute;
    top: 50%;
    left: 50%;
    transform:translateX(-50%) translateY(-50%);
    -webkit- transform:translateX(-50%) translateY(-50%);
    color: #FFF;
    font-size: 18px;
    line-height: 38px;
    font-family: "Noto Serif JP";
    font-weight: 700;
    white-space: nowrap;
  }
  .list_furniture_img:hover::before {
    content: "";
    position: absolute;
    background: url(../images/top_arrow.png) no-repeat;
    background-size: cover;
    bottom: 15px;
    right: 15px;
    width: 20px;
    height: 20px;
  }
  .list_furniture_img:hover img{
    width: 100%;
    opacity: 0.3; /* 画像を半透明に */
  }
  .list_furniture_img img{
    width: 100%;
    transition: ease-in-out;
  }
  .list_furniture p{
    margin-top: 15px;
    font-size: 15px;
    line-height: 17px;
    color: #2B2B2B;
    text-align: left;
  }
  /*top_product*/
  #top_product{
    position: static;
    width: 100%;
    height: auto;
    margin: 0px 0 0;
    overflow: hidden;
  }
  .product_cont_img{
    position: static;
    top: 0;
    left:0;
    width: 100%;
    height: auto;
  }
  .product_cont_img img{
    position: static;
    transform: translateY(0%);
    width: 100%;
    min-width: auto;
  }
  .product_cont_transparent{
    position: static;
    top: 0;
    left: 0;
    margin-top: -5px;
    padding-bottom: 50px;
    width: 100%;
    height: auto;
    overflow: hidden;
    background-color: rgba(0, 0, 0, 0.4);
  }
  .top_product_cont{
    width: calc(100% - 20px);
    margin: 36px auto 0;
  }
  .top_product_cont h3{
    margin: 0 0 35px;
    font-size: 24px;
    line-height: 29px;
    color: #FFF;
    font-family: "Noto Serif JP";
    font-weight: 700;
    text-align: center;
  }
  .top_product_cont p{
    margin: 0 0 35px;
    font-size: 16px;
    line-height: 1.5em;
    color: #FFF;
    font-family: "Noto Sans JP";
    font-weight: 400;
  }
  .top_bg_02{
    position: relative;
    width: 100%;
    height: 400px;
    overflow: hidden;
  }
  .top_bg_02 img{
    position: absolute;
    top:50%;
    left: 50%;
    transform:translateX(-50%) translateY(-50%);
    -webkit- transform:translateX(-50%) translateY(-50%);
    width: 100%;
    height: auto;
    min-width: 768px;
  }

  /* news */
  #news{
    background-color: #F0EDE5;
    width: 100%;
  }
  .cont_news{
    position: relative;
    margin: 0 auto;
    padding:0 0 80px;
    width: 100%;
    height: auto;
  }
  .news_head{
    margin:0;
  }
  .news_btn{
    margin:30px auto 0;
  }
  .news_btn .btn{
    margin:0 auto;
    background-color:#4A800F;
  }
  .news_btn .btn a{
    color:#FFF;
  }
  .news_btn .btn:hover{
    background-color:#AE7E3A;
  }
  .news_btn .btn:hover a{
    color:#FFF;
  }
  #news h3{
    margin: 50px 10px 0;
    padding:0 0 15px;
    font-size: 28px;
    line-height: 28px;
    font-weight: 700;
    color: #4A800F;
    position: relative;
  }
  #news ol{
    margin:20px 10px 0;
    width:calc(100% - 20px);
  }
  #news ol li{
    position: relative;
    padding:10px 0;
    border-bottom:1px solid #AE7E3A;
    height: auto;
  }
  #news ol li:first-child{
    border-top:1px solid #AE7E3A;
  }
  #news ol li::after{
    position:static;
    top:21.5px;
    right:0;
    content: "";
    background:none;
    background-size: cover;
    width: auto;
    height: auto;
  }
  #news ol li a{
    display: block;
    align-items: center;
    text-decoration: none;
  }
  #news ol li a:hover{
    background-color: #FFF;;
  }
  #news ol li time{
    margin:0;
    width:80px;
    height: 30px;
    line-height: 30px;
  }
  #news ol li .category{
    display: inline-block;
    margin: 0 10px 10px;
    padding:0 10px;
    background-color:#4A800F;
    color:#FFF;
    min-width: 100px;
    height:30px;
    line-height:30px;
    text-align: center;
  }
}

@media (max-width: 767px) and (orientation:landscape){
  /* keyview */
  #keyview{
    position: relative;
    width: 100%;
    height: 100svh;
    overflow: hidden;
  }
  .key_img{
    width: 100%;
    height: 100svh;
    min-height: 100svh;
  }
  .swiper{
    width: 100%;
    height: 100svh;
  }
  .swiper img{
    position: absolute;
    top: 0;
    left: 0;
    transform:translateX(0%);
    -webkit- transform:translateX(0%);
    width: 100%;
    height: 100svh;
  }
  .catch_copy{
    position: absolute;
    top:50%;
    left:50%;
    z-index: 50;
    transform:translateX(-50%) translateY(-50%);
    -webkit- transform:translateX(-50%) translateY(-50%);
  }
  .catch_copy h2{
    margin:0px 0 0;
    width: 350px;
  }
  .catch_copy h2 img{
    width: 100%;
  }
}
