@charset "utf-8";


/*============
HP内共通
=============*/
*{margin:0;padding:0;box-sizing:border-box;}
body{ font-family: "Noto Serif JP", serif;}
.flex{
  display: flex!important;
  justify-content: space-between;
}
.w1280px{
  max-width: 1280px;
  padding: 0 4vw;
}
/* 見出し装飾 */
.h2_BK{
  font-size: 48px;
  color: #111;
  font-weight: 500;
}
.h3_og{
  font-size: 28px;
  color:#b33621;
  line-height:2em;
  margin-bottom: 1em;
}
.line2em{
line-height: 2em;
}

.mb30{
  margin-bottom: 30px;
}

.arrow {
  position: relative;
  display: inline-block;
  width: 8.2px;
  height: 12.5px;
}

.arrow::before,
.arrow::after {
  content: "";
  position: absolute;
  top: calc(50% - 1px);
  right: 0;
  width: 10px;
  height: 1px;
  border-radius: 9999px;
  background-color: #ffffff;
  transform-origin: calc(100% - 0.5px) 50%;
}

.arrow::before {
  transform: rotate(45deg);
   transform-origin: calc(100% - 0.5px) 50%;
}

.arrow::after {
  transform: rotate(-45deg);
   transform-origin: calc(100% - 0.5px) 50%;
}








.btn:hover .arrow {
  transform: translateX(10px); /* 右に10px移動 */
}
/*============
header
=============*/
header{
  position:fixed;
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:60px 40px;
  z-index:1000;
}
header .flex{
  padding: 40px 2vw 40px;
  display: flex;
}

.logo img{width:60px;}

.hamburger{
  width:30px;
  cursor:pointer;
}
.hamburger span{
  display:block;
  height:2px;
  background:#fff;
  margin:8px 0;
  transition:.3s;
}

/* ナビゲーション */
.nav{
  position:fixed;
  top:0;right:-100%;
  width:300px;height:100vh;
  background:#111;
  transition:.5s;
  padding-top:100px;
}
.nav ul{list-style:none;text-align:center;}
.nav li{margin:30px 0;}
.nav a{color:#fff;text-decoration:none;font-size:18px;}

.nav.active{right:0;}

.hamburger.active span:nth-child(1){
  transform:rotate(45deg) translate(5px,5px);
}
.hamburger.active span:nth-child(2){
  transform:rotate(-45deg) translate(5px,-5px);
}

/*============
ファーストビュー
=============*/
.hero {
  position: relative;
  height: 100vh;
  width: 100%;
  overflow: hidden;
  background: #111;
}
.hero-dark {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.60); 
  z-index: 2;
}
.hero h1{
  color: #fff;
  font-size: 2.5em;
  font-weight: 500;
  line-height: 1.5;

}
.video-wrapper {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 177.77vh; /* 16:9比率 */
  height: 100vh;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.video-wrapper iframe {
  width: 100%;
  height: 100%;
}

.hero-overlay {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgba(0,0,0,0.35);
}

.vertical {
  position: absolute;
  right: 40px;
  writing-mode: vertical-rl;
  font-size: 22px;
  opacity: .7;
}


/*============
会社案内
=============*/
.message{
  padding:120px 10%;
  background: #111;
  color: #fff;
  position: relative;
}

.message h2{
  line-height: 1.5;
    font-size: 32px;
    font-weight: 500;
}



.container{display:flex;gap:50px;justify-content: space-evenly;
    line-height: 2em;}
.line{border-bottom:1px solid #aaa;display:inline-block;margin-top:10px;}
.btn{
  display:inline-block;
  background:#b33621;
  margin-top:20px;
  text-decoration:none;color:#fff;
  text-align: center;
  width: 200px;
  padding: 10px auto;
}

/* BAND */
.band{
  height:200px;

}
.band img {
  position: relative;
    bottom: -120%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 9999;
    width: 100%;
}

/* PRODUCTS */
.products{
    background:url(/img/mein/bonsai_bk.jpg) center/cover no-repeat;

  color:#111;
  text-align:center;
  padding:100px 10%;
}
.grid{
  display:flex;
  justify-content:space-between;
  gap:40px;
  margin:50px 0;
}
.red-bar{
  position:absolute;
  left:0;top:0;
  width:40px;height:100%;
  background:#b33621;
}

.red-bar01{
  position:absolute;
  left:0;top:0;
  width:40px;height:100%;
  background:#6e0505;
}

.card {
  position: relative;
  width:250px;height:250px; 
  /* background:#999; */
}

.card01 {
  position: relative;
  width:250px;height:250px; 
  /* background:#999; */
}

.card01::before {
  content: "";      
  position: absolute;
  top: -20px;
  left: 0;
  width: 40px;      
  height: 110%;      
  background-color: #6e0505; 
  z-index: 1;      
}
.card::before {
  content: "";      
  position: absolute;
  top: -20px;
  left: 0;
  width: 40px;      
  height: 110%;      
  background-color: #b93a26; 
  z-index: 1;      
}

.vertical-text {
  position: absolute;
  top: 0px;
  left: 8px;        
  z-index: 2;       
  color: white;
  writing-mode: vertical-rl;           
  letter-spacing: 0.2em;               
  font-size: 24px;
}






.dark-bar{background:#7d150c;}

.more{
  display:inline-block;
  background:#b33621;
  color:#fff;
  padding:8px 20px;
  text-decoration:none;
}
.dark-more{background:#7d150c;}

/* NEWS */
.news{
  display:flex;
  padding:180px 0 80px;
  justify-content: space-between;
  background-color: #111;
  color: #fff;
  position: relative;
}

.news-left{
  
  writing-mode:vertical-rl;
  font-size:32px;
  margin-right:80px;
}

.news img{
  position: absolute;
  left: 0;
  bottom: 0;

}
.news-item{
  display:flex;
  align-items:center;
  border-bottom:1px solid #444;
  padding:20px 0;
}
.thumb{
  width:120px;height:80px;background:#888;margin-right:20px;
}
.arrow{margin-left:auto;color:#b33621;}

/* CONTACT */
.contact{display:flex;}
.box{
  flex:1;
  padding:60px;
  text-align:center;
}
.red{background:#b33621;}
.darkred{background:#7d150c;}
.box a{
  display:inline-block;
  background:#fff;color:#111;
  padding:10px 30px;
  margin-top:20px;
  text-decoration:none;
}

/* FOOTER */
footer{text-align:center;padding:80px 0;background:#111;}
footer img{width:200px;}

@media(max-width:1280px){
.w1280px{
  max-width: 100%;
  padding: 0 2vw;
}
}


/* RESPONSIVE */
@media(max-width:768px){
  
  .container,.grid,.news,.contact{
    flex-direction:column;
  }
  .news-left{writing-mode:horizontal-tb;margin-bottom:40px;}
  .card {
    width: 100%;
    margin-bottom: 50px;
  }
    .card01 {
      width: 100%;
      margin-bottom: 50px;
  }
  .message {
      padding: 120px 10% 0;
  }
}