@charset "utf-8";

/* =========================================
   【重要】アンカーリンクのズレ（潜り込み）とフリーズ防止策
   ========================================= */
html {
    scroll-behavior: auto !important; /* スクロール競合によるフリーズ・一番上に戻るバグを強制解除 */
}
#concept, #product, #flow, #movie, #pop, #faq {
    scroll-margin-top: 130px !important; /* スマホ時の固定ヘッダー潜り込みをCSSの標準機能で防ぐ */
}

/* =========================================
   メインコンテンツ・各セクション
   ========================================= */
.next .enzyme { width: 100%; height: auto; }
.content_box .top-img .inner { width: 100%; height: auto; margin: auto; padding-top: 15px; }
.top-img-pc, .top-img-sp { width: 100%; height: auto; margin: auto; display: block; }

.concept_box { width: 100%; height: auto; padding-top: 30px; margin-bottom: 30px; background-color: white; }
.concept-inner { width: 100%; max-width: 340px; height: auto; margin: 0 auto; }
.concept-title, .tech-title, .flow-title, .qa-title, .menu-enzyme-title, .movie-title, .pop-title { 
    font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 20px; color: #231815; 
    text-align: right; padding-right: 10vw; margin-top: 60px; margin-bottom: 60px; letter-spacing: 1px; 
}
.concept-caption { font-family: "Noto Sans JP", sans-serif; font-weight: 500; font-size: 25px; text-align: center; letter-spacing: 10px; padding-top: 20px; }
.concept-catch { font-family: "Noto Sans JP", sans-serif; font-weight: 400; font-size: 18px; color: #231815; text-align: center; letter-spacing: 3px; line-height: 30px; margin-top: 0; }
.concept-logo { width: 60%; height: auto; margin: 50px auto 30px auto; }
.line-2 { width: 100px; padding: 10px; border-bottom: 1px solid black; margin: auto; }
.concept-text { font-family: "Noto Sans JP", sans-serif; font-weight: 200; font-size: 15px; text-align: center; letter-spacing: 3px; line-height: 35px; padding-top: 20px; }
.concept-illust { height: auto; margin: 30px auto 0 auto; padding-bottom: 20px; }
.concept-detail { width: 100%; max-width: 340px; height: auto; margin: 0 auto; padding-bottom: 40px; }
.detail-title { width: 90%; height: auto; margin: auto; }
.detail-text-1, .detail-text-2, .detail-text-3 { font-family: "Noto Sans JP", sans-serif; text-align: center; margin: 15px auto 0 auto; letter-spacing: 2px; line-height: 15px; }
.detail-text-1 { font-weight: 500; font-size: 16px; }
.detail-text-2 { font-weight: 300; font-size: 13px; }
.detail-text-3 { font-weight: 300; font-size: 10px; }
.concept-target { width: 90%; height: auto; margin: 0 auto 40px auto; padding: 15px 0; border-left: 1px solid grey; border-right: 1px solid grey; }
.target-text-1, .target-text-2, .target-text-3 { font-weight: 300; margin: 3px auto 0 auto; letter-spacing: 4px; line-height: 20px; margin-left: 20px; }
.target-text-1 { font-family: "Montserrat", sans-serif; font-weight: 600; font-size: 16px; text-align: center; margin-bottom: 20px; }
.target-text-2 { font-family: "Noto Sans JP", sans-serif; font-weight: 400; font-size: 14px; text-align: left; padding-left: 20px; }
.target-text-3 { font-family: "Noto Sans JP", sans-serif; font-weight: 300; font-size: 10px; text-align: left; padding-left: 20px; }

/* プロダクト */
.lineup_box { width: 100%; height: auto; background-color: white; padding-top: 30px; }
.lineup_box .inner { width: 100%; max-width: 300px; height: auto; margin: auto; padding-bottom: 30px; }
.product-box { width: 100%; max-width: 300px; height: auto; margin: auto; padding-top: 60px; padding-bottom: 30px; }
.product-name { font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 20px; text-align: left; }
.product-features { width: 100%; height: 35px; margin: auto; margin-top: 10px; border: 1px solid lightgrey; border-radius: 10px; display: flex; align-items: center; justify-content: center; }
.product-features p { font-family: "Noto Sans JP", sans-serif; font-weight: 400; font-size: 13px; text-align: center; letter-spacing: 2px; }
.product-photo { width: 100%; margin: 30px auto 0 auto; text-align: center; }
.product-photo img { height: 200px; width: auto; }
.product-text { font-family: "Noto Sans JP", sans-serif; font-weight: 300; font-size: 14px; text-align: left; line-height: 30px; margin-top: 20px; }

/* テクノロジー */
.technology { width: 100%; height: auto; background-color: white; }
.technology-inner { width: 100%; max-width: 370px; height: auto; margin: auto; }
.tech-contents { height: auto; margin: 60px auto; }

/* フロー */
.flow { width: 100%; height: auto; margin: 0 auto; padding: 60px 0; background-color: #e5e5e6; }
.flow-inner { position: relative; width: 100%; max-width: 340px; height: auto; margin: auto; }
.flow-contents { width: 100%; height: auto; margin: 30px auto 0 auto; }
.flow-inner a { display: block; }
.howto-button-1, .howto-button-2, .howto-button-3, .howto-button-4, .howto-button-5 { position: absolute; width: 235px; height: 30px; background-color: black; left: 28%; transform: translateX(-50%); cursor: pointer; }
.howto-button-1 { top: 450px; }
.howto-button-2 { top: 970px; }
.howto-button-3 { top: 1660px; }
.howto-button-4 { top: 2235px; }
.howto-button-5 { top: 3070px; }
.howto-text { font-family: "Noto Sans JP", sans-serif; font-weight: 400; font-size: 10px; color: white; letter-spacing: 3px; text-align: center; line-height: 30px; pointer-events: none; }
.howto-button-1.is-visible, .howto-button-2.is-visible, .howto-button-3.is-visible, .howto-button-4.is-visible, .howto-button-5.is-visible { transition: opacity 0.3s ease, transform 0.8s ease-out; }
.howto-button-1:hover, .howto-button-2:hover, .howto-button-3:hover, .howto-button-4:hover, .howto-button-5:hover { opacity: 0.7; }

/* ムービー & POPダウンロード */
.movie_box, .pop_box { width: 100%; height: auto; margin: auto; }
.sejutsu-movie { width: 100%; max-width: 340px; height: auto; margin: auto; }
.movie-caption { width: 340px; font-family: Noto Sans JP; font-weight: 400; font-size: 14px; margin: auto; text-align: center; }
.movie iframe { max-width: 100%; }

/* Q&A */
.qa { width: 100%; height: auto; margin: auto; padding: 20px 0; }
.qa-inner { width: 100%; max-width: 340px; height: auto; margin: auto; padding: 0 10px; }
.qa-1 { font-family: "Noto Sans JP", sans-serif; font-weight: 500; font-size: 18px; text-align: left; letter-spacing: 2px; line-height: 1.6; margin-bottom: 10px; }
.qa-2 { font-family: "Noto Sans JP", sans-serif; font-weight: 300; font-size: 14px; text-align: left; line-height: 1.8; letter-spacing: 1px; margin: 0; }
.qa-line { width: 100%; margin: 30px auto; border: none; border-top: 1px solid lightgrey; }

/* POPダウンロード */
.download { width: 100%; max-width: 340px; height: auto; margin: 60px auto; border: 1px solid #605f5e; padding: 15px; }
.download p { font-family: "Noto Sans JP", sans-serif; font-weight: 500; font-size: 12px; text-align: center; letter-spacing: 1px; }
.download a { color: #000000; }

/* パララックス基本設定 */
.parallax-box { width: 100%; height: 170px; position: relative; overflow: hidden; background-color: transparent; }
.parallax_content { width: 100%; height: 100%; background-position: center; background-repeat: no-repeat; background-size: cover; display: flex; justify-content: flex-end; align-items: center; padding-right: 10vw; }
.parallax_content p { font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 15px; color: white; text-align: right; margin: 0; letter-spacing: 3px; position: relative; z-index: 1; }

/* =========================================
   PC向け設定 (画面幅 769px 以上)
   ========================================= */
@media screen and (min-width: 769px) {
  body { padding-bottom: 0 !important; }
  .top-img-sp, .contact-sp, .humberger-icon { display: none !important; }
  .parallax-box { height: 400px; }
  .parallax_content { background-attachment: fixed; }
  .parallax_content p { font-size: 22px; }
  .parallax_content.img-pc-01 { background-image: url("../image/enzyme-lx/images/img-pc-01.png"); }
  .parallax_content.img-pc-02 { background-image: url("../image/enzyme-lx/images/img-pc-02.png"); }
  .parallax_content.img-pc-03 { background-image: url("../image/enzyme-lx/images/img-pc-03.png"); }
  .parallax_content.img-pc-04 { background-image: url("../image/enzyme-lx/images/img-pc-04.png"); }
  .parallax_content.img-pc-05 { background-image: url("../image/enzyme-lx/images/img-pc-05.png"); }
}

/* =========================================
   モバイル向け設定 (画面幅 768px 以下)
   ========================================= */
@media screen and (max-width: 768px) {
  .parallax-box { position: relative; height: 170px; margin-top: 0; }
  .parallax_content.img-sp-01 { background-image: url("../image/enzyme-lx/images/img-sp-01.png"); }
  .parallax_content.img-sp-02 { background-image: url("../image/enzyme-lx/images/img-sp-02.png"); }
  .parallax_content.img-sp-03 { background-image: url("../image/enzyme-lx/images/img-sp-03.png"); }
  .parallax_content.img-sp-04 { background-image: url("../image/enzyme-lx/images/img-sp-04.png"); }
  .parallax_content.img-sp-05 { background-image: url("../image/enzyme-lx/images/img-sp-05.png"); }
  
  /* スマホ版 酵素メニュー */
  .enzyme_header {
      position: sticky;
      top: 50px;
      z-index: 9900;
      background-color: #ffffff;
      margin: 0;
      padding: 15px 0 10px 0;
      border-bottom: 1px solid #eee;
  }
  .enzyme_header h2 {
      text-align: center;
      font-size: 14px;
      margin: 0 0 5px 0;
      color: #000;
      font-weight: bold;
  }
  .enzyme_header ul {
      display: flex;
      justify-content: center;
      flex-wrap: nowrap;
      overflow-x: auto;
      gap: 10px;
      margin: 0;
      padding: 0 10px;
      list-style: none;
  }
  .enzyme_header ul li { margin: 0; padding: 0; }
  .enzyme_header a {
      display: block;
      padding: 8px 5px;
      font-size: 11px;
      color: #222;
      text-decoration: none;
      white-space: nowrap;
  }
}