/*--------- sp ---------*/
.main_photo{
  height: 460px;
  overflow: hidden;  
  position: relative;
  color: #14141E;
  
  img{
		width: 100%;
    height: 100%;
		object-fit: cover;
		object-position: 50% 50%;
	}
  .cover{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.4);
    /*backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);*/
  }
  .main_tx{
    position: absolute;
    top: 18%;
    left: 0;
    width: 100%;
    text-align: center;
    
    h1{
      font-size: clamp(2.5rem,5vw,5rem);
      position: relative;
      font-weight: var(--SemiBold);
      color: #fff--font-color;
      /*text-shadow: 0px 0px 12px var(--font-color-or);*/
      text-shadow: 2px 2px 5px #ccc;
      
      &:before{
        position: absolute;
        font-family: "Poppins", system-ui;
        font-style: normal;
        font-weight: var(--Regular);
        content: 'Product';
        display: inline-block;
        font-size: 56%;
        inset: 125% auto auto 50%;
        translate: -50% -50%;
        letter-spacing: 0;
      }
    }
    .button-grid {
      width: 80%;  
      margin: 40px auto 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
      grid-auto-rows: 35px;
      grid-gap: 6px;          
    }
    .button-01 {
      list-style: none;
      display: flex;
      justify-content: center;
      align-items: center;
      background: rgba(0, 0, 0, 0.7);
      color: #fff;
      border: none;
      font-size: 16px;
      cursor: pointer;
      transition: background 0.3s ease;
    }
    .button-01:hover {
      background: rgba(0, 0, 0, .9);
      opacity: 1;
    }
  }

  
}  
    

/*=== スクロールを促す↓ ====*/
.scrolldown {
  position: absolute;
  top: 500px;
  right: 50%;
  transition: .9s;
}
.scrolldown_on {
  opacity: 0;
}
/*Scrollテキスト*/
.scrolldown div {
  /*描画位置*/
  position: absolute;
  left: -90px;
  bottom: 72px;
  /*テキストの形状*/
  color: var(--font-color);
  font-size: clamp(1.6rem,1.8vw,2.2rem);
  font-weight: var(--SemiBold);
  width: 180px;
  padding: 12px 0;
  text-align: center;
}
.scrolldown div:before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:calc(100% - 15px); /*左上カギカッコの横の長さ*/
  height:calc(100% - 15px); /*左上カギカッコの縦の長さ*/
  border-left: var(--font-color) 1px solid; /*左上カギカッコの縦*/
  border-top: var(--font-color) 1px solid; /*左上カギカッコの横*/
}
.scrolldown div:after {
  content:"";
  position:absolute;
  bottom:0;
  right:0;
  width:calc(100% - 15px); /*右下カギカッコの横の長さ*/
  height:calc(100% - 15px); /*右下カギカッコの縦の長さ*/
  border-right: var(--font-color) 1px solid; /*右下カギカッコの指定*/
  border-bottom: var(--font-color) 1px solid; /*左上カギカッコの指定*/
}
.scrolldown span{
  font-size: 110%;
}
/* 矢印 */
.scrolldown:before {
  content: "";
  /*描画位置*/
  position: absolute;
  /*丸の動き1.4秒かけて透過し、永遠にループ*/
  animation:
    circlemove 1.6s ease-in-out infinite, cirlemovehide 1.6s ease-out infinite;
  
	right: -6px;
	bottom: 30px;
	/*ボーダー矢印*/
	display: inline-block;
  width: 11px;
  height: 11px;
  border-bottom: 1px solid var(--font-color);
  border-right: 1px solid var(--font-color);
  transform: rotate(45deg);
}
/*下からの距離が変化して丸の全体が上から下に動く*/
@keyframes circlemove {
  0% {
    bottom: 40px;
  }
  100% {
    bottom: -10px;
  }
}
/*上から下にかけて丸が透過→不透明→透過する*/
@keyframes cirlemovehide {
  0% {
    opacity: 0
  }
  30% {
    opacity: 1;
  }
  85% {
    opacity: 0.9;
  }
  100% {
    opacity: 0;
  }
}
/* 線 */
.scrolldown:after {
  content: "";
  /*描画位置*/
  position: absolute;
  bottom: 0;
  left: 0;
  /*線の形状*/
  width: 1px;
  height: 50px;
  background: var(--font-color);
} /*=== スクロールを促す↑ ====*/

/*---------カテゴリ sp ---------*/
.product_categories{
  padding-top: var(--px100);
}
.catego_wrap{
  width: min(90%,1100px);
  margin: 0 auto var(--px100);
  padding: min(5%,45px) ;
  position: relative;
  box-shadow: 4px 4px 0 var(--pink);
  
  &:last-child{
    margin: 0 auto;
  }
  
  &:before{
    position: absolute;
    color: #717071;
    font-size: 10px;
    left: 0;
    top: -.34em;
    font-size: clamp(4.0rem,8vw,12rem);
    font-family: "Poppins", system-ui;
    font-weight: var(--Bold);
    line-height: 0;
    color: #fff;
    text-shadow: 4px -1px 0 var(--pink),-1px -1px 0 var(--pink),4px 1px 0 var(--pink);
    z-index: -1;
  }
  
  .title_box{
    background-color: var(--main-color);
    padding: 20px 20px 15px 20px;
    margin-left: -11%;
    width: min(110%,955px);
    color: #fff;
        
    .catego_ti{
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap;
      
      align-items:baseline;
      
      h2{
        font-weight: var(--Medium);        
        font-size: var(--font-size48);
        border-left: clamp(2px,.5vw,5px) solid #fff;
        line-height: 1.2;
        padding-left: .3em;
      }
      .sub_ti{
        font-size: var(--font-size20);
        font-weight: var(--Regular);
      }
    }
    
    p{
      padding-top: var(--px20);
    }
    
  }
  .catego_layer{
    position: absolute;
    top: -50px;
    right: -5%;
    width: 80px;
    height: 80px;
    transition: .5s;
  }
  /*-----アコーディオン-----*/
  dl{
    width: 100%;
    margin: var(--px70) auto 20px;
    border-top: 1px solid #cccccc;
  }
  dl.stone{
    margin: var(--px80) auto 0;
  }
  dt{
    margin: 0;
    border-bottom: 1px solid #cccccc;
    padding: 20px 1em;
    display: flex;
  }

  .ac_ti{
    width: 74%;
    font-size: var(--font-size20);
    position: relative;
    
    span{
      font-weight: var(--Medium);
      font-size: var(--font-size28);
      display: block;
      padding-bottom: var(--px20);
    }
  }
  
  dd{
    margin: 0 0 1.5em;
    border-bottom: 1px solid var(--main-color);
    border-top: none;
    padding: 10px 1em 20px;
    overflow-x: scroll;
    -ms-overflow-style: none; /* IE, Edge 対応 */
    scrollbar-width: none;    /* Firefox 対応 */
    
    &::-webkit-scrollbar {
      display: none; /* Chrome, Safari 対応 */
    }
    
    /*&:last-child{
      border-bottom:none;
    }*/

    
    table{
      width: 100%;
      min-width: 640px;
      border: 2px solid #000000;
	    border-collapse: collapse;
      border-spacing: 0;
            
       &.table300{
        width: 245px;
        min-width: 245px;
         margin-bottom: 20px;
      }
      /*td幅均等*/
      &.layout_fix{
         table-layout:fixed;
      }
  
      caption{
        text-align: right;
        padding-bottom: 5px;
      }
      
      th{
        border: 1px solid #000000;
        border-collapse: collapse;
        border-spacing: 0;
        background-color: #B7B7B7;
        font-size: clamp(1.4rem,1.4vw,1.6rem);
        padding: .4em 0;
        
        &.bg_black{
          background-color: #14141E;
          color: #fff;
          font-weight: var(--Regular);    
          border: 1px solid #fff;
        }
        &.vertical{
          -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
          text-orientation: upright;
          letter-spacing: .5em;
        }
      }
      
      td{
        border: 1px solid #ccc;
        border-collapse: collapse;
        border-spacing: 0;
        text-align: center;
        font-size: clamp(1.3rem,1.3vw,1.5rem);
        padding: .4em 0;
        
        &.bg_black{
          background-color: #14141E;
          color: #fff;
          font-weight: var(--Regular);          
        }
        span{
          color: var(--main-color);
          font-weight: var(--Bold);
        }
        
        &.right{
          text-align: right;
          padding-right: min(2.5%,70px);
        }
      }      
    }
    p.table{
      padding: .6em .6em 0;
      font-size: clamp(1.2rem,1.2vw,1.4rem);
      line-height: 1.5;
      min-width: 460px;
      
      span{
        color: var(--main-color);
      }
    }
    p.dd{
      padding-bottom: .8em;
      width: min(100%,740px);
      
      span{
        font-weight: var(--Bold);
      }
    }
    
    &.ac_img{      
      img{
        width: min(100%,450px);
      }      
    }
    &.ac_img700{      
      img{
        width: min(100%,700px);
      }      
    }
    &.ac_img1000{      
      img{
        width: min(100%,1000px);
      }      
    }
    p.right{
      text-align: right;
      padding-top: 5px;
    }
  }

  .catalog_wrap{
    display: flex;
    flex-wrap: wrap;
  }
  .catalog_img{
    width: 32%;
    margin-left: .5%;
    margin-right: .5%;
    
    img{
      border: 1px solid #ccc;
      box-shadow: 1px 1px 8px #ddd;
    }
  }
  .pdf-link{
    font-size: var(--font-size18);
    padding-top: 10px;
    padding-left: 1%;
    color: #5daa68;
    text-decoration: none;
    display: block;
    width: 100%;
  }
  
  
}
.image{
    width: min(99%,978px);
    padding: 10px 0 0 1px;
  }
/*---------製品カテゴリnav sp ---------*/
.category_navigation{
  padding-top: var(--px140);
  
  h3{
    font-weight: var(--Bold);
    font-size: var(--font-size48);
    text-align: center;
  }
}
.catego_nav{
  width: min(90%,280px);
  margin: var(--px60) auto var(--px140);
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  grid-template-rows: repeat(2, auto);
  grid-gap: 20px;
  transition: .5s;

  .g_item{
    width: min(100%,340px);
    text-align: center;
    color: #fff;
    
      /* カテゴリスタイル */
     .category{
        width: 100%;
        font-size: var(--font-size40);
        font-weight: var(--SemiBold);
        aspect-ratio: 35 / 22;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-flow: column;
        font-weight: var(--SemiBold);
        line-height: 1.4;
        background-size: cover;
        padding: 0 15px;
       /*<wbr>で折り返す*/
        word-break: break-word;
        overflow-wrap: break-word;
        background-color: rgba(255, 255, 255, 0.7); 
        background-blend-mode: screen; /* 色をブレンド */
       border: 2px solid #ccc;

        span{
          font-size: var(--font-size14);
          display: block;
          padding-top: var(--px10);
          
        }
      }
    
      .btn_box{
        margin-top: 15px;
      }
      /*金網*/
      .cate_01{
        background-image: url("../images/top/img_05.jpg");
      }
      /*かご*/
      .cate_02{
        background-image: url("../images/top/img_06.jpg");
      }
      /*法面資材*/
      .cate_03{
        background-image: url("../images/top/img_04.jpg");
      }
      /*落石防護*/
      .cate_04{
        background-image: url("../images/top/img_03.jpg");
      }
      /* ボタンの基本スタイル */
      .btn_01 {
        display: inline-block;
        width: min(94%, 220px);
        padding: 0 1em;
        line-height: 40px;
        border-radius: 50px;
        border: 1px solid var(--font-color);
        background-color: #fff;
        color: var(--font-color);
        position: relative;
        overflow: hidden;
        transition: all 0.3s ease;
      }

      /* ボタンの背景アニメーション */
      .btn_01::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: var(--font-color);
        transform: scaleX(0);
        transform-origin: right;
        transition: transform 0.3s ease;
      }

      /* 矢印アイコン */
      .btn_01:after {
        content: "→";
        font-size: 20px;
        position: absolute;
        right: 1em;
      }

      /* ボタンテキストの調整 */
      .btn_text {
        position: relative;
        z-index: 1;
      }

      /* a:hover 時にボタンの変化 */
      a:hover .btn_01 {
        color: #fff;
        border-color: var(--font-color); /* 変化例: ボーダー色の変更 */
      }

      a:hover .btn_01::before {
        transform: scaleX(1);
        transform-origin: left;
      }
      a:hover{
        opacity: 1;
      }
  }
}



@media (min-width:768px){
/*--------- tab ---------*/
  .main_photo{
    height: 500px;
    
    .main_tx{
      top: 24%;
      
      .button-grid {
        width: 680px;  
        margin: 80px auto 0;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        grid-auto-rows: 50px;
        grid-gap: 20px;          
      }      
    }
  } 
 
  /*=== スクロールを促す↓ ====*/
  .scrolldown {
    top: 600px;
  }
  /*---------カテゴリ tab ---------*/
  .catego_wrap{
    box-shadow: 8px 8px 0 var(--pink);
    
    &:before{
      text-shadow: 7px -1px 0 var(--pink),-1px -1px 0 var(--pink),7px 1px 0 var(--pink);
    }
    
    .title_box{
       width: min(95%,955px);
      padding: 40px 90px 15px 50px;
      margin-left: -10%;
      min-height: 170px;

      .catego_ti{

        h2{
          padding-left: .5em;
        }
      }

    }
    .catego_layer{
      position: absolute;
      top: -50px;
      right: -5%;
      width: 230px;
      height: 230px;
    }
  }
  
/*---------製品カテゴリnav sp ---------*/
.catego_nav{
  width: min(90%,1280px);
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(1, auto);
  grid-gap: 10px;

  .g_item{
    
     .btn_box{
      margin-top: 28px;

      .btn_01 {
        line-height: 45px;
      }
    }
  }
}

}
@media (min-width:1024px){
/*--------- pc ---------*/
  .main_photo{
    height: 700px; 
    
    .main_tx{
      top: 35%;
    }
  } 
  /*=== スクロールを促す↓ ====*/
  .scrolldown {
    top: 720px;
    right: calc(50% + 100px);
  }
  /*Scrollテキスト*/
  .scrolldown div {
    left: -110px;
    width: 220px;
  }
  /*---------カテゴリ pc ---------*/
  .catego_wrap{
    width: min(85%,1100px);
    box-shadow: 13px 13px 0 var(--pink);
    
    &:before{
      text-shadow: 9px -1px 0 var(--pink),-1px -1px 0 var(--pink),9px 1px 0 var(--pink);
    }
    
    .title_box{
      padding: 50px 110px 30px 60px;
      margin-left: -10%;
    }
    .catego_layer{
      position: absolute;
      top: -70px;
      right: -5%;
      width: 250px;
      height: 250px;
    }
  }
  
}


@media (min-width:1280px){
 /*---------カテゴリ 1280 ---------*/
  .catego_wrap{
    
    .title_box{
      padding: 70px 130px 30px 90px;
      margin-left: -10%;
    }
    .catego_layer{
      position: absolute;
      top: -70px;
      right: -5%;
      width: 300px;
      height: 300px;
    }
    
    .catalog_img{
      width: 30%;
      margin-left: 1.5%;
      margin-right: 1.5%;

      .pdf-link{
        padding-top: 15px;
      }
    }
  }
  .image{
    width: min(97.5%,978px);
    padding: 20px 0 0 12px;
  }

}
@media (min-width:1480px){
 /*---------カテゴリ 1480 ---------*/
  .catego_wrap{
    
    .title_box{
      padding: 70px 135px 30px 100px;
      margin-left: -10%;
    }
    .catego_layer{
      position: absolute;
      top: -120px;
      right: -5%;
      width: 360px;
      height: 360px;
    }
  }
  .image{
    width: min(100%,984px);
    padding: 20px 0 0 12px;
  }
  
}


