@charset "UTF-8";

/* ベーススタイル */
:root { --header-h: 82px; }  /* ヘッダーの実高さに合わせる */
html {
    scroll-behavior: smooth;
    overflow-x: hidden; /* これが無いと.menuがはみでちゃう */}
html, body { height: 100%; }

body {
    width: 100%;
    max-width: 100%;
    min-height: 100dvh;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    font-size: 18px;
    color: #707070;
    background-color: #FFFFFF;
    font-family: "Times New Roman", Times, serif, "游明朝", "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", "IPAMincho", serif;
    line-height:1.6;
}
img { max-width:100%; height:auto; border:0; vertical-align:middle; }
main{
    width: 100%;
    max-width: 100%;
    flex: 1 0 auto;
}
.sans-serif{font-family: "Yu Gothic", "游ゴシック体", sans-serif;}
h1, h2, h3, h4, h5, h6 {
    font-family:"Times New Roman", Times, serif, "游明朝", "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", "IPAMincho", serif;
    font-weight: 500;
    color: #1C5E96;
}
h3{font-size: 32px;}
p{ margin: 0;}
a{
    text-decoration: none;
    color: #707070;
    line-height: 1;
}
.link{
    padding: 5px 0;
    border-bottom: #707070 solid 1px;
    width: fit-content;
}
.icon_link{
    width: 11px;
    height: auto;
    margin-left: 10px;
}
section{margin-top: 160px;}
.section-title {
    padding-top: 100px;
    font-size: 48px;
    letter-spacing: 0.1em;
    margin:0 auto 10px;
}
.sub-title{
    font-size: 24px;
    margin-top: 0;
    color: #707070;
    letter-spacing: 0.1em;
}
.lead-text{
    font-size: 26px;
    letter-spacing: 0.1em;
    line-height: 2;
    }
.middle-text{font-size:28px;}
.small-text{font-size: 0.7em;}

.container {
    max-width: 1520px;
    margin: 0 auto;
    padding: 0 20px;
}
.container_sub{
    max-width: 1240px;
    margin: 0 auto;
}
.center {text-align: center;}
.left {text-align: left;}
.right{
    text-align: right;
    margin: 0 0 0 auto;}

.two-column {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
}

.two-column .image,.two-column .text {flex: 1;}

.three-column {
    display: grid;
    gap: 80px;
    padding: 40px 0 100px;
    max-width: 1240px;      /* 最大幅だけ制限 */
    margin: 0 auto;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    /* 300px は各カードの最小幅。入るだけ列が増える */
    }

.navy{color: #1C5E96;}
.gray{color: #707070;}
.white{color: #FFF;}
.bg-gray{background-color: #ececec;}
/* .bg-gray{background-color: #bebebe;} */

.sp{display: none;}

@media (max-width: 1023px){
    section{margin-top: 80px;} 
}
@media (max-width: 767px){main{ width: 100%; padding-bottom: 200px;}
.sp{display: block;}
.pc{display: none;}
.two-column {display: block;}
.two-column > div{max-width: 100%;}
.section-title {font-size: 34px; padding-top: 120px;}
h3{font-size: 28px;}
.middle-text{font-size:22px;}
.lead-text{
    font-size: 24px;
    line-height: 1.8;
    text-align: justify;
    }
section{margin-top: 0;}
.container {
    max-width: 90%;
    padding: 0 16px;
}

}



/* ヘッダー */
/* ====== 基本レイアウト ====== */
.site-header {
   background-color: #fff;
    color: #707070;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    max-width: 100%;
    z-index: 1000;
    box-shadow: 0 2px 2px rgba(98, 24, 150, 0.05);
    font-size: 1.2em
}
.header-inner {
  display: flex; 
  align-items: center; 
  justify-content: space-between;
  padding: 40px; 
  max-width: 1520px; 
  margin: 0 auto;
}
.logo a { 
    font-size: 1.2em;
    letter-spacing: 0.1em;}

/* PCナビ */
.nav-desktop ul { 
    display: flex; 
    gap: 40px; 
    list-style: none; 
    margin: 0; padding: 0;
    align-items: center; }
.nav-desktop a { 
    text-decoration: none; 
    color: #333; 
    padding: 6px 8px; }
.header-consult a{
    display: inline-block;
    background-color: #1C5E96;
    color: #fff;
    padding: 10px 20px;
    margin: 0 auto; }

/* ハンバーガー（初期は非表示：SP/Tabletで出す） */
.hamburger { 
    display: none; 
    position: relative; 
    width: 30px; 
    height: 24px; 
    border: none;
    background-color: #fff;
    cursor: pointer; 
    -webkit-tap-highlight-color: transparent; }
.hamburger span {
  position: absolute; left: 0; right: 0; height: 3px; background: #333; border-radius: 2px;
  transition: transform .25s ease, opacity .2s ease, top .25s ease, bottom .25s ease;
}
.hamburger span:nth-child(1){ top: 0; }
.hamburger span:nth-child(2){ top: 50%; transform: translateY(-50%); }
.hamburger span:nth-child(3){ bottom: 0; }
.hamburger.is-open span:nth-child(1){ top: 50%; transform: translateY(-50%) rotate(45deg); }
.hamburger.is-open span:nth-child(2){ opacity: 0; }
.hamburger.is-open span:nth-child(3){ bottom: auto; top: 50%; transform: translateY(-50%) rotate(-45deg); }
.nav-drawer{display: none;}

/* ====== オフキャンバス（SP/Tablet） ====== */
@media (max-width: 1023px) {
#about, #consult { scroll-margin-top: 0; }
    
/* ヘッダーレイアウト */
  .header-inner { display:flex; align-items:center; justify-content:space-between; gap:16px;
    padding: 24px 16px;}
   .logo a {font-size:1.1em; letter-spacing: .05em;}

  .nav-desktop { display: none; }
  .hamburger { display: block; z-index: 1201;}

  /* 背景の黒幕（10%側） */
  .nav-backdrop {
    position: fixed; inset: 0; background: rgba(0,0,0,.4);
    opacity: 0; pointer-events: none; transition: opacity .25s ease;
    z-index: 999;
  }

  /* ドロワー本体：右90%幅・高さ100vh */
  .nav-drawer {
    position: fixed; top: 0; right: 0;
    width: fit-content; height: 100vh;
    /* 新しい端末でのアドレスバー揺れ対策 */
    height: 100dvh;
    background: #fff; z-index: 1000;
    transform: translateX(100%); transition: transform .25s ease;
    display: flex; flex-direction: column; padding: 20px 16px;
    box-shadow: -2px 0 12px rgba(0,0,0,.12);
  }
  .nav-drawer ul { list-style: none; padding: 0; border-top: solid 1px #ccc;}
  .nav-drawer li { margin: 20px 0; }
  .nav-drawer a { display: block; padding: 12px; text-decoration: none;margin-right: 40px; }
  .navi-consult a{
    display: inline-block;
    background-color: #1C5E96;
    color: #fff;
    padding: 10px 20px;
    margin-right: 40px;}

  /* 開いたときの状態 */
  body.nav-open .nav-backdrop { opacity: 1; pointer-events: auto; }
  body.nav-open .nav-drawer   { transform: translateX(0); }

  /* 背面スクロール停止 */
  body.nav-open { overflow: hidden; }
}

/* 固定ヘッダーでのページ内リンクズレ対策（必要に応じて値調整） */
#consult,#about { scroll-margin-top: var(--header-h); }

/* 低速環境のためのアニメ軽減 */
@media (prefers-reduced-motion: reduce) {
  .hamburger span,
  .nav-backdrop,
  .nav-drawer { transition: none; }
}



/* フッター */
    .site-footer {
      background-color: #1C5E96;
      color: #fff;
    }
    .site-footer .container{
      padding: 80px 0;
    } 
    .site-footer .footer-inner {
      display: flex;
      justify-content: space-between;
      align-items:flex-start;
      gap:100px;
    }
    .site-footer .footer-inner .logo{
        font-size: 28px;
        margin-bottom: 16px;
        letter-spacing: 0.1em;
        width: max-content;
    }
    .site-footer .footer-right{
        margin-right: 140px;
    }
    .site-footer .footer-nav ul {
      display: flex;
      flex-wrap: wrap;
      gap: 40px;
      list-style: none;
      margin: 0;
      padding: 0;
    }
    .site-footer .footer-nav ul li {
        margin: 8px 0;     /* 行間 */
        font-size: 24px;
        }   
    .site-footer .footer-nav .products_list{
        display: block;
        margin-top: 8px;
    }
    .site-footer .footer-nav .products_list li{
        display: block;
        font-size: 18px;
        padding-left:1em ;
        margin: 10px 0;
    }
    .site-footer a{
        color: #FFF;
    }

    .copyright {
      text-align: center;
      font-size: 14px;
      margin: 80px auto 0;
    }

    @media (max-width: 1279.98px){
    .site-footer .footer-right{
        margin-right: 0;
    }
    }
    @media (min-width: 767.98px)and (max-width: 949.98px){
    .site-footer .footer-inner {gap:64px;}

    }

    @media (max-width: 767px){
    .site-footer .container{
        padding: 40px 20px;
    }
    .site-footer .footer-inner{
            flex-direction: column;
            margin: 0 auto;
            gap:0px;
        }
    .footer-left{
        width: fit-content;
        order: 2;
    margin: 10px auto 0;}
    .site-footer .footer-inner .logo{
        font-size: 24px;
    }
    .site-footer .access{
        font-size: 16px;
    }
    .site-footer .footer-right{
        width: 88%;
        margin:20px auto 0;
        order: 1;
        text-align: center;
    }
    .site-footer .footer-nav ul {
      display: block;
    }
    .site-footer .footer-nav .f-layer{
        margin-bottom: 2em;
        font-size: 28px;
    }
    .site-footer .footer-nav .f-layer li{
        margin-bottom: 1em;
    }
    }

/* スライドショー */

    .main-visual {
    margin-top: 0;
      overflow: hidden;
      position: relative;
    }

    /* トラック（既存） */
.main-visual .slider {
  display: flex;
  transition: transform 1s ease;
  will-change: transform;
  touch-action: pan-y; /* 縦スクロールは残しつつ横スワイプ */
  user-select: none;
  cursor: grab;
}
.main-visual .slide { 
    flex: 0 0 100%;
    width: 100vw;
    height: auto;
    flex-shrink: 0; 
}
.slide img{width: 100%;}

/* ボタン配置 */
.main-visual .slider-btn {
  position: absolute; 
  top: 50%; transform: 
  translateY(-50%);
  z-index: 2; 
  border: none; 
  background: rgba(0, 0, 0, 0.5);
  color: #fff; 
  width: 48px; 
  height: 48px; 
  border-radius: 50%;
  font-size: 24px; 
  /* line-height: 48px;  */
  text-align: center; 
  cursor: pointer;
  padding: 0;
  margin: 0;
}
.main-visual .slider-btn.prev { left: 8px; }
.main-visual .slider-btn.next { right: 8px; }
.main-visual .slider:active { cursor: grabbing; }


@media (max-width: 767px) {
    .main-visual{margin-top: 82px;}
    /* SPでボタン少し小さめ（任意） */
    .main-visual .slider-btn { 
        width: 36px; 
        height: 36px; 
        font-size: 20px; }
    }

/* 会社概要-はじめに- */
    .section-about div{align-items: center; }
    .section-about .two-column{
        /* margin-top: 100px; */
        position: relative;   /* 子要素を絶対配置するため */
        display: block;       /* flexではなくblockに戻す */
    }
    .section-about .two-column .image{width:60%;}
    .section-about .two-column .image img{width: 100%; display: block;}
    .section-about .text{
          position: absolute;
        top: 50%;             /* 縦位置：画像の中央あたり（調整可） */
        right: 10%;            /* 横位置：画面の中央基準 */
        transform: translateY(-50%); /* 縦位置を中央揃え */
        text-align: left;     /* 左揃え */
        background: rgba(255,255,255,0.44);
        backdrop-filter: blur(1px);
    }
    .section-about .highlight-text{
        border: 1px solid #ccc;
        width: fit-content;
        padding: 30px 100px;
        text-align: justify;
        margin:100px auto 0 ;
    }
    .section-about .highlight-text ul{
        padding-inline-start: 1em;
    }
    .section-about .highlight-text li{
        line-height: 2;
        letter-spacing: 0.1em;
    }

    @media (max-width: 1023px){
       .section-about .two-column{
    display: flex;
    flex-direction: column;
    align-items: center;   /* 中央寄せ */
  }
  .section-about .two-column .image{
    width: 100%;          /* 画像は全幅 */
    max-width: 100%;
  }
  .section-about .two-column .text{
    position: static;     /* 重ね解除して通常フローへ */
    transform: none;
    /* width: min(90%, 720px); 画面に合わせて読みやすい幅に */
    margin-top: 48px;
    text-align: justify;   /* 中央揃え */
    }
    }
    
    @media (max-width: 767px){
         .section-about{
            width: 88%;
            margin: 0 auto;
         }
         .section-about .text {
            width: 100%;
            padding: 0;
            font-size: 24px;
        }
    .section-about .highlight-text{
        padding: 20px 40px 20px;
        margin-top: 40px;
    }

    .section-about .highlight-text ul{
        padding-inline-start: 1em;
    }
     .aboutimage{
        width: 100%;
        margin-top: 40px;
     }
     .aboutimage img{
        width: 100%;
     }
    }


/* 商品ラインナップ */

    .section-lineup .product-item {text-align: left;}
    .section-lineup .product-item .title {
        font-size: 32px;
        margin-bottom: 20px;
        letter-spacing: 0.1em;
    }
    .section-lineup .product-item .image {width: fit-content}
    .section-lineup .product-item .image img {width:100%}
    .section-lineup .product-item .text {
        text-align: justify;
        margin-bottom: 20px;
    }
    .section-lineup .three-column{
        padding-bottom: 160px;
    }


/* 商品相談セクション */
   .section-consult {
   background-image: 
    linear-gradient(rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0.75)), 
    url('../img/index_img02.jpeg');
    background-size: cover;        /* 全体にフィット */
    background-position: center;   /* 中央寄せ */
    background-repeat: no-repeat;  /* 繰り返し防止 */
    background-attachment: fixed;
    padding: 40px 0 80px;
    margin-top: 0;
    }
    .section-consult .section-title{margin-bottom: 80px;}
    .section-consult .lead-text{margin-bottom: 80px;
    }
    .section-consult .two-column {
        margin: 40px auto 80px;
        align-items: end;
        justify-content: space-around;
    }
    .section-consult .two-column .link{
        border-bottom: #1C5E96 solid 1px;
        padding-bottom: 16px;
    }
    .section-consult .two-column .link p{
        margin-bottom: 0;
    }
    .section-consult .two-column .tel{
        font-size: 48px;
        letter-spacing:0.05em;
        }
    .section-consult .two-column .icon_tel{
        width: 40px;
        height: auto;
        margin: 0 20px 0 8px;
    }
    .section-consult .two-column .mail{
        font-size: 40px;
    }
     .section-consult .two-column .mail p{
        display: block;
        font-size: 24px;
    }
     .section-consult .two-column .mail .jp{
        padding-left: 2em;
     }
    .section-consult .two-column .mail-en{
        align-items: center;
        letter-spacing: 0em;
    }
      .section-consult .two-column .icon_mail{
        width: 42px;
        height: auto;
        margin-right:0.5em;
    }

    @media (min-width: 1024px)and (max-width: 1279.98px){
    .section-consult .two-column .mail p{font-size: 24px;}
    }
    @media (max-width: 1023.98px){
        .section-consult {
            background-attachment: scroll;
        }
        .section-consult .container_sub{
            width: fit-content;
        }
        .section-consult .two-column{display: block;}
        .section-consult .two-column > div{
            margin: 40px auto 0;
            width: 80%;
            text-align: center;
            
        }

    }
    @media (max-width: 767px){
        .section-consult { padding: 0 0 60px;}
        .section-consult .container{
            width: 88%;
            margin: 0 auto;
        }
        .section-consult .two-column {margin: 40px auto 0;}
         .section-consult .two-column .tel{font-size: 30px;}
         .section-consult .two-column .mail p{
            font-size: 20px;
            margin-bottom: 8px;
        }
         .section-consult .two-column .icon_tel{
            width: 25px;
            margin: 0 10px 0 0;
        }
        .section-consult .two-column .link{
            padding-bottom: 8px;
            margin-bottom: 40px;
            width: 95%;
            text-align: center;
        }
      .section-consult .two-column .icon_mail{
        width: 24px;
        margin: 0 10px 0 0;
    }
     .section-consult .two-column .mail .jp{
        padding-left:0;
     }
    }


/* 製造販売業者/製造業者 */
    .section-info-a .two-column{
        margin-top: 100px;
    }
    .section-info-a .two-column image{
        width: fit-content;
    }
    .section-info-a .two-column img{
        width: 50%;
        margin-left: 0;
    }
     @media (max-width: 767px){
    .section-info-a .two-column .image{
        margin: 0 auto;
        text-align: center;
        margin-bottom: 40px;
    }
    .section-info-a .two-column .image img{
        width: 70%;
    }
    .section-info-a .right{
        margin-top: 40px;
        text-align: left;
        line-height: 1.5;
    }
     }

/* 会社概要 */
.section-info-b .section-title{
    padding-top: 40px;
}
.section-info-b .two-column{
    align-items: flex-start;
    justify-content: space-between;
    /* gap: 240px; */
    margin-bottom:200px;
}
.section-info-b .two-column .info-area{
    padding-top: 40px;
    float: right;
} 
.section-info-b .two-column .info-area .corp-def{
  border-top: 1px solid #D2D2D7;
}
.section-info-b .two-column .info-area .corp-def > div{
  display:grid;
  grid-template-columns: 6em 1fr;  /* ラベル幅固定＋内容が伸びる */
  padding: 1.5em 1em;
  border-bottom: 1px solid #D2D2D7;
  font-size: 20px;
  letter-spacing: 0.1em;
  line-height: 1.8;
}
.section-info-b .two-column .info-area .corp-def dt{
  font-weight: 600;
  color:#222;
}
.section-info-b .two-column .info-area .corp-def dd{
  margin:0;
  overflow-wrap: anywhere;            /* 長い語に対応 */
}



@media screen and (max-width: 767px){
    .corp-def > div{ grid-template-columns: 1fr; gap: 4px; }
    .section-info-b .two-column .info-area .corp-def > div{
        display: block;
        padding: 20px;
    }
    .section-info-b .section-title {
    padding-top: 160px;
    }
    .section-info-b .two-column .info-area{width: 100%;}
}

@media screen and (max-width: 767px){
@supports (display:flex) {
  body { min-height:100dvh; display:flex; flex-direction:column; }
  main { flex: 1 0 auto; }
  .site-footer { margin-top:auto; }



  /* ナビ横並び（狭い幅では縦積み） */
  .nav-menu ul { display:flex; gap:16px; flex-wrap:wrap; }
  .nav-menu li { margin:0; }
  
  /* 2カラム/3カラム */
  /* .two-column { display:flex; flex-wrap:wrap; gap:24px; }
  .two-column > * { flex:1 1 300px; } */
  .three-column { display:grid; grid-template-columns: 1fr; gap:20px; }
  .product-item { border-radius:12px; }

  /* スライダートラック前提 */
  .main-visual .slider { display:flex; transition:transform .6s ease; will-change:transform; }
  .main-visual .slide { flex: 0 0 100%; }
}
/* --- 強化2: Grid が使えるなら3カラム最適化 --- */
/* @supports (display:grid) {
  .three-column { grid-template-columns: repeat(3, 1fr); }
} */
}

/* --- ブレークポイント: モバイルファースト --- */


/* タブレット基準（横幅768px以上） */
@media (min-width: 768px)and (max-width: 1023.98px) {
  .container { width: 92%; }
  .section-info-a .two-column img{width: 70%;}

  @supports (display:grid) {
    .three-column { grid-template-columns: repeat(2, 1fr); }
  }
}

/* 大きめタブレット/小型ノート（横1024px以上） */
@media (min-width: 1024px)and (max-width: 1279.98px) {
  .container { width: 90%; }
  .section-info-a .two-column img{width: 70%;}
  @supports (display:grid) {
    .three-column { grid-template-columns: repeat(3, 1fr); }
  }
  .two-column { gap:32px; }
}



/* タブレット“らしさ”の微調整（任意だが効く） */
@media (min-width: 768px) and (max-width: 1023.98px) {
  /* 触りやすいタップ領域 */
  /* a, button { min-height: 44px; } */
  .nav-menu ul { gap:20px; }
  .product-item { padding:20px; }
}