@layer reset, base, components, utilities, tenpos, custom;

@layer custom {
  /* ========================================
     テンポスカスタムスタイル - ヘッダー・フッター
     ======================================== */

  /* CSS変数定義（元サイト準拠） */
  :root {
    --tenpos-main-color: #C1272D;
    --tenpos-text-color: #4D4D4D;
    --tenpos-base-text-color: #252525;
    --tenpos-font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    --tenpos-base-font-size: 12.8px;
    --tenpos-line-height: 1.5;
  }

  /* モバイル表示時のbody調整（固定ヘッダー対応） */
  body {
    /* グリッドレイアウトを拡張してcopyright用の行を追加 */
    grid-template-rows: 60px 1fr max-content max-content;
    grid-template-areas:
      "header"
      "main"
      "footer"
      "copyright";
    
    @media (max-width: 768px) {
      padding-top: 110px;
  }

  @media (min-width: 890px) {
      grid-template-rows: max-content 1fr max-content max-content;
    }
  }

  /* ========================================
     ヘッダースタイル
     ======================================== */

        /* コンテンツ幅 */
        .contents {
          max-width: 1367px;
          width: 100%;
          margin: 0 auto;
        }

        .header {
          position: relative;
          z-index: 100;
          height: auto;
          background-color: #fff;
          font-family: var(--tenpos-font-family);
          font-size: var(--tenpos-base-font-size);
          color: var(--tenpos-base-text-color);
          line-height: var(--tenpos-line-height);
          margin: 0;
          padding: 0;
          border-bottom: none;

          /* モバイル表示時のヘッダー固定（元サイト仕様） */
          @media (max-width: 768px) {
            position: fixed;
            top: 0px;
            left: 0px;
            right: 0px;
            z-index: 100;
            width: 100%;
            height: 110px;
            background-color: rgb(255, 255, 255);
            padding: 0px;
            margin: 0px;
            border: none;
          }

          .header__inner {
    width: 100%;

            /* モバイル表示時のレイアウト（元サイト仕様） */
            @media (max-width: 768px) {
      display: flex;
              flex-direction: row;
      justify-content: space-between;
              align-items: center;
              width: 100%;
              height: 90px;
              padding: 10px 0px;
              margin: 0px;
            }
          }

    .contents {
      /* コンテンツ部分 */
      width: 100%;
    }

          .header__box {
            display: flex;
            justify-content: space-between;
            max-width: 1140px;
            margin: 0 auto;
            padding: 10px 0;

          @media (max-width: 768px) {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            width: 100%;
            height: auto;
            padding: 10px 0 0 10px;
            margin: 0px;
          }

            .header__boxInner {
              @media (min-width: 769px) {
                width: 51%;
                width: 635.2px;
                display: flex;
                align-items: center;
                justify-content: space-between;
                flex-wrap: wrap;
              }

              @media (max-width: 768px) {
                display: flex;
                flex-direction: column;
                justify-content: center;
                align-items: flex-start;
                flex: 1;
                padding: 0px;
                margin: 0px;
                max-width: 100%;
                min-width: 280px; /* 最小幅を保証 */
              }
            }
          }

          .header__box .heading a {
            display: flex;
            align-items: center;
            color: #000;
          text-decoration: none;

            @media (max-width: 768px) {
          display: flex;
          align-items: center;
              text-decoration: none;
          }


          }

          .header__box .heading img {
            width: 64.7px;
            height: auto;
            aspect-ratio: 195/102;

            @media (max-width: 768px) {
              width: 53px;
              height: 28px;
              margin-right: 10px;
            }
          }

          .header__box .heading a>span {
            font-size: 13.6px;
            font-weight: 700;
            line-height: 1.2654411765;
            font-feature-settings: "palt";
            -webkit-font-feature-settings: "palt";
            margin-left: 10px;
            padding-top: 5px;

            @media (max-width: 768px) {
              font-size: 13.6px;
              font-weight: 700;
              line-height: 1.3;
              padding-top: 0;
            }
          }

          .header__box .heading a>span>span {
            font-size: 11.9px;
            line-height: 1.0714285714;
          }

          .header__boxText {
            background-color: var(--main-color);
            padding: 2.5px 18px;
            border-radius: 50px;

            @media (max-width: 768px) {
              margin: 5px 0 0 0;
            }
          }


          .header__boxInner2 {
            width: 48%;
    display: flex;
    align-items: center;
            justify-content: flex-end;
          }
          
          /* PCナビゲーション */
          .header__boxText {
            background-color: var(--tenpos-main-color);
            border-radius: 50px;
            margin: 0;

            /* PCサイズでの厳密なスタイル（元サイト準拠） */
            @media (min-width: 769px) {
              display: block;
              position: static;
              width: 259.172px;
              height: 21px;
              padding: 2.5px 18px;
              box-sizing: content-box;
            }
            
            /* スマホサイズ（変更なし） */
            @media (max-width: 768px) {
              margin: 5px 0 0 0;
              padding: 2.5px 0;
            }
            
            @media (max-width: 767px) {
              width: auto;
              padding: 1px 12vw;
            }
            
            .header__boxTextContent {
              color: rgb(255, 255, 255);
              font-weight: 700;
              margin: 0;
          padding: 0;

              /* PCサイズでの厳密なスタイル（元サイト準拠） */
              @media (min-width: 769px) {
                display: block;
                position: static;
                width: 259.172px;
                height: 21px;
                font-size: 15px;
                line-height: 21px;
                text-align: start;
                box-sizing: content-box;
                font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
                letter-spacing: normal;
                word-spacing: 0px;
                white-space: normal;
                overflow: visible;
                vertical-align: baseline;
              }
              
              /* スマホサイズ（文字サイズを小さく調整） */
              @media (max-width: 768px) {
                font-size: 11px;
                line-height: 1.3;
                text-align: center;
              }
            }
          }
    
    /* PC表示時のheader__box2（ナビゲーション部分）スタイル（元サイト準拠） */
    @media (min-width: 769px) {
      .header__box2 {
        display: block;
        position: static;
        width: 1200px;
        height: 73px;
        padding: 0px;
        margin: 0px;
        background-color: rgb(255, 255, 255);
      }
      
      .header__box2Inner {
        display: block;
        position: static;
        width: 1140px;
        height: 73px;
        padding: 0px;
        margin: 0px 30px;
        max-width: 1140px;
      }
    }
    
    /* PC表示時のナビゲーションメニュー（元サイト準拠） */
    .header__menu {
      @media (min-width: 769px) {
      display: block;
        position: static;
        width: 1140px;
        height: 73px;
        padding: 0px;
        margin: 0px;
      }
      
      .header__menuList {
        @media (min-width: 769px) {
          display: flex;
          flex-direction: row;
          justify-content: flex-start;
          align-items: stretch;
          width: 1140px;
          height: 73px;
          padding: 0px;
          margin: 0px;
          list-style: none;
        }
        
        .menu-item {
          @media (min-width: 769px) {
        position: relative;
        display: flex;
        align-items: center;
            height: 73px;
            padding: 0px;
            margin: 0px;
            border-right: 2px solid rgb(255, 255, 255);
            background-color: rgb(193, 39, 45);
            
            &:first-child {
              border-left: 2px solid rgb(255, 255, 255);
            }
            
            a, > span {
          display: flex;
          align-items: center;
          justify-content: center;
              height: 100%;
              padding: 0px 20px;
              color: rgb(255, 255, 255);
              font-size: 16px;
              font-weight: 400;
        text-decoration: none;
              cursor: pointer;

        &:hover {
                background-color: rgb(173, 33, 39);
              }
            }
          }
          
          /* サブメニュー */
          .sub-menu {
            @media (min-width: 769px) {
              display: none;
          position: absolute;
              top: 73px;
              left: 0px;
              width: 239.812px;
              background-color: rgb(255, 255, 255);
              border: 2px solid rgb(255, 255, 255);
              z-index: 1000;
              list-style: none;
              padding: 0;
              margin: 0;
              
              li {
                border-bottom: 2px solid rgb(255, 255, 255);
                
                a {
            display: inline-block;
                  padding: 20px 0px 16px 55px;
                  color: rgb(193, 39, 45);
                  font-size: 16px;
                  font-weight: 400;
                  text-decoration: none;
            width: 100%;
                  box-sizing: border-box;

          &:hover {
                    background-color: rgb(245, 245, 245);
            }
          }
        }
        }
      }

          /* ホバー時にサブメニュー表示 */
          &:hover .sub-menu {
            @media (min-width: 769px) {
        display: block;
              }
          }
        }
      }
    }
    
    /* スマホ表示時に非表示にする要素（元サイト準拠） */
    @media (max-width: 768px) {
      /* 電話番号・営業時間・お問い合わせボタンを非表示 */
      .header__boxInner2,
      .header__boxInner2Cover,
      .header__boxInner2Tel,
      .header__boxInner2Time,
      .header__boxInner2Button {
        display: none !important;
      }
      
      .header__box2Inner {
        display: none !important;
      }
      
      /* PCナビゲーションメニューを非表示 */
      .header nav:not(.drawerMenu__menu) {
        display: none !important;
      }
    }

    /* ヘッダーナビゲーション */
    nav {
      font-family: var(--tenpos-font-family);

      ul {
        list-style: none;
        margin: 0;
        padding: 0;

        li {
          /* メニューアイテム */
        }
      }

      a {
        color: var(--tenpos-base-text-color);
        text-decoration: none;
        font-family: var(--tenpos-font-family);

        &:hover {
          color: var(--tenpos-main-color);
        }
      }
    }

    /* 電話番号・お問い合わせ部分 */
    .header__contact {
      font-family: var(--tenpos-font-family);

      .header__tel {
        color: var(--tenpos-main-color);
        font-weight: 500;

        a {
          color: var(--tenpos-main-color);
        text-decoration: none;
        }
      }

      .header__inquiry {
        a {
          color: var(--tenpos-base-text-color);
        text-decoration: none;

          &:hover {
            color: var(--tenpos-main-color);
              }
            }
          }
        }
      }

  /* ========================================
     フッタースタイル（元サイト準拠）
     ======================================== */

  .footer {
    font-family: var(--tenpos-font-family);
    font-size: var(--tenpos-base-font-size);
    color: var(--tenpos-base-text-color);
    line-height: var(--tenpos-line-height);
    background-color: rgb(77, 77, 77);
      display: block;
    padding: 10px 15px 0px;
    margin: 0px;
    text-align: start;

    .footer__inner {
        display: flex;
      flex-direction: row;
      justify-content: space-between;
      align-items: flex-start;
      padding: 21px 0px 12px;
      margin: 0px 15px;
      max-width: 1140px;
    }

           .footer__content {
        display: block;
        text-align: left;
             border-left: 1px solid #ffffff;
      padding-left: 24px;

      .footer__contentSiteName {
        color: rgb(255, 255, 255);
        font-size: 23.31px;
        font-weight: 700;
        line-height: 23.31px;
        margin: 2px 0px 0px;
        display: block;
        padding: 0px;
        background-color: rgba(0, 0, 0, 0);
        font-family: var(--tenpos-font-family);
      }

      .footer__contentText {
        color: rgb(255, 255, 255);
        font-size: 14px;
        font-weight: 500;
        line-height: 18px;
        margin: 14px 0px 0px;
        display: block;
        padding: 0px;
        background-color: rgba(0, 0, 0, 0);
        font-family: var(--tenpos-font-family);
      }
    }

    .footer__menu {
        display: block;
      border-left: 1px solid #ffffff;
      padding: 0px 0px 0px 24px;
      margin: 0px;
      width: 513px;
      font-family: var(--tenpos-font-family);

      .footer__menuList {
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        padding: 0px;
        margin: 0px;
        list-style: none;
        width: 513px;
        height: 110px;
        align-items: normal;
        justify-content: normal;
        text-align: start;

        li {
      display: block;
          margin: 0px;
          padding: 0px;
          width: auto;
          height: 32px;

          a {
            display: block;
            color: rgb(255, 255, 255);
        text-decoration: none;
            padding: 4px 0px;
            margin: 0px;
            background-color: rgba(0, 0, 0, 0);
            font-family: var(--tenpos-font-family);
            font-size: 16px;
            font-weight: 400;
            line-height: 24px;
            text-align: left;

            span {
              display: inline;
              color: rgb(255, 255, 255);
              font-size: 14.2875px;
              font-weight: 500;
              line-height: 20.5383px;
              margin: 0px 10px 0px 0px;
              padding: 0px;
              background-color: rgba(0, 0, 0, 0);
              font-family: var(--tenpos-font-family);
              text-align: left;
        }

        &:hover {
              color: rgb(255, 255, 255);
              text-decoration: underline;

              span {
                color: rgb(255, 255, 255);
              }
          }
        }
      }
    }
  }

    /* ========================================
       レスポンシブスタイル
       ======================================== */

    /* 中間サイズ調整 (1170px以下) */
    @media screen and (max-width: 1170px) {
      .footer__menu {
        width: 41%;
      }
    }

     /* モバイル表示 (767px以下) */
    @media (max-width: 767px) {
      padding: 0px 20px;
      margin-top: 109px;

      .footer__inner {
      flex-direction: column;
        padding-top: 23px;
        padding-bottom: 9px;
      }

      .footer__content {
          width: 100%;
        border-left: none;
        padding-left: 0px;
          text-align: center;

        .footer__contentText {
          margin-top: 14px;
        }

        .footer__contentSiteName {
          font-size: 17px;
          line-height: 1.35294;
        }
      }

      .footer__menu {
        border-left: none;
        padding-left: 0px;
        width: 390px;
        margin: 42px auto 0px;
        max-width: 400px;
    width: 100%;

        .footer__menuList {
          height: auto;

          li {
          width: 100%;

            a {
              span {
                font-size: 16px;
                line-height: 1.4375;
                margin-left: 8px;
              }
          }
        }
      }
    }
  }

    /* 小さいモバイル表示 (420px以下) */
    @media screen and (max-width: 420px) {
      .footer__menu {
        .footer__menuList {
          li {
            a {
        &::before {
                width: 2.104vw;
                height: 3.514vw;
              }

              span {
                font-size: 3.81vw;
                margin-left: 1.905vw;
              }
            }
          }
        }
      }
    }
  }

  /* ========================================
     コピーライト（元サイト厳密準拠）
     ======================================== */
  
  #copyright {
    grid-area: copyright;
    background-color: var(--tenpos-main-color);
    color: rgb(255, 255, 255);
    text-align: center;
    font-family: var(--tenpos-font-family);
    font-size: 14.19px;
    font-weight: 500;
    line-height: 21.285px;
    padding: 13.4px 10px 12.4px;
    margin: 0;

    .br767on {
      display: none;
    }

    /* レスポンシブ対応 */
    @media (max-width: 767px) {
      font-size: 14px;
      line-height: 1.5;
      padding-top: 14px;
      padding-bottom: 16px;

      .br767on {
        display: block;
      }
    }
  }

  /* ========================================
     レスポンシブ対応
     ======================================== */
  
  @media (max-width: 767px) {
    .header {
      /* モバイル用ヘッダー調整 */

          .heading {
        /* モバイル用ロゴ調整 */
      }

      nav {
        /* モバイルナビゲーション */
      }
    }

    .footer {
      /* モバイル用フッター調整 */

      .footer__content {
        /* モバイル用コンテンツ調整 */
      }

      .footer__menu {
        .footer__menuList {
          /* モバイル用メニューリスト */
        }
      }
    }

    #copyright {
      font-size: 14.19px; /* 元サイト準拠でモバイルも同じサイズ */
      padding: 13.4px 10px 12.4px;
      line-height: 21.285px;
      
      .br767on {
        display: block;
      }
    }
  }

  /* #hamburger-menuを非表示 */
  #hamburger-menu {
    display: none !important;
  }

  /* ========================================
     ハンバーガーメニュー is-open状態のスタイル（元サイト完全再現）
     ======================================== */

  /* スクロール制御 */
  html.is-fixed {
    overflow: hidden;
  }

  /* メニューの基本状態（画面外に隠す） */
  .js-drawerMenu {
    position: fixed;
    top: 0px;
    right: -100%;
    width: 100%;
    height: 100vh;
    transform: translateX(100%);
    transition: all 0.3s ease-out;
    z-index: 101;
    opacity: 0;
    visibility: hidden;
  }
  .js-drawerMenu:not(.is-open) {
    transition: all 0.5s ease-out;
  }

  /* メニューの表示状態（元サイト完全準拠） - より具体的なセレクター */
  body .js-drawerMenu.is-open {
    right: 0;
    transform: translateX(0);
    opacity: 1;
    visibility: visible;
    background-color: rgb(230, 230, 230); /* 元サイト準拠：グレー背景 */
    overflow-y: auto;
    font-family: var(--tenpos-font-family);
    font-size: 16px;
    color: rgb(37, 37, 37);
    line-height: 24px;
    padding: 0px;
    margin: 0px;
  }

  /* メニュー内部構造 */
  body .js-drawerMenu .drawerMenu__inner {
    width: 100%;
    height: auto;
  }

  body .js-drawerMenu .drawerMenu__innerInner {
    width: 100%; /* ビューポート全体の幅 */
    padding: 0px 23px 0px 27px; /* 左右の余白 */
    box-sizing: border-box; /* パディングを含む幅計算 */
  }

  /* メニューリスト */
  body .js-drawerMenu .drawerMenu__menuList {
    width: 100%; /* innerInnerの幅に合わせる */
    margin: 34px 0px 0px; /* 上部マージン */
    padding: 0px;
    list-style: none;
  }

  /* メニュー項目 */
  body .js-drawerMenu .drawerMenu__menuList .menu-item {
    border-bottom: 1px solid rgb(0, 0, 0); /* 黒い境界線 */
    font-size: 16px;
    color: rgb(37, 37, 37);
    line-height: 24px;
    padding: 0px;
    margin: 0px;
  }

  /* メニューリンク */
  body .js-drawerMenu .drawerMenu__menuList .menu-item a {
    display: block;
    padding: 14px 0px; /* 上下のパディング */
    color: rgb(0, 0, 0); /* 黒いテキスト */
    font-size: 16px;
    font-weight: 400;
    text-decoration: none;
    line-height: 24px;
    text-align: left;
  }

  /* メニューリンク内のspan要素（元サイト準拠） */
  body .js-drawerMenu .drawerMenu__menuList .menu-item a span {
    font-size: 20px;
    font-weight: 500;
    line-height: 1.25;
    margin-left: 15px;
  }

  /* 連絡先セクション */
  body .js-drawerMenu .drawerMenu__box {
    margin: 45px 0px 0px; /* メニューリストの下に配置 */
    width: 100%; /* 全幅 */
  }

  /* 電話番号 */
  body .js-drawerMenu .drawerMenu__boxTel a {
    display: block;
    text-align: center;
    color: rgb(0, 0, 0);
    font-size: 16px;
    font-weight: 400;
      text-decoration: none;
    padding: 0px;
    margin: 0px;
    line-height: 24px;
  }

  /* 電話番号内のspan要素（元サイト準拠） */
  body .js-drawerMenu .drawerMenu__boxTel a span {
    font-size: 38.03px;
    font-weight: 700;
    line-height: 38.03px;
  }

  /* 電話番号内の「tel.」部分（元サイト準拠） */
  body .js-drawerMenu .drawerMenu__boxTel a span span {
    font-size: 24.34px;
    font-weight: 700;
      line-height: 1;
    }

  /* 営業時間 */
  body .js-drawerMenu .drawerMenu__boxTime {
    margin: 11px 0px 0px;
    text-align: center; /* 中央寄せ */
    color: rgb(37, 37, 37);
    font-size: 16px;
    line-height: 24px;
  }

  /* お問い合わせボタン */
  body .js-drawerMenu .drawerMenu__boxButton {
    margin: 31px 0px 0px;
    width: 100%; /* 全幅 */
  }

  body .js-drawerMenu .drawerMenu__boxButton a {
        display: flex;
    padding: 11.8px 0px;
    margin: 0px 0px 10px;
    color: rgb(255, 255, 255); /* 白いテキスト */
    text-align: center;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    font-weight: 400;
    text-decoration: none;
    line-height: 24px;
    background-color: var(--tenpos-main-color); /* ボタンのみ赤背景 */
    width: 100%; /* 全幅 */
    box-sizing: border-box;
  }

  /* お問い合わせボタン内のspan要素（元サイト準拠） */
  body .js-drawerMenu .drawerMenu__boxButton a span {
    font-size: 25px;
    font-weight: 700;
    margin-left: 17px;
  }

  /* お問い合わせボタン内の画像（元サイト準拠） */
  body .js-drawerMenu .drawerMenu__boxButton a img {
    width: 30px;
    height: 23.2188px;
  }


        /* 元サイト完全再現ハンバーガーメニュー */
        .drawerButton.js-drawerButton {
          /* PC表示時は非表示 */
          @media (min-width: 769px) {
            display: none !important;
          }

          @media (max-width: 768px) {
    display: flex;
             position: relative;
             width: 85px;
             height: 85px;
             background-color: rgb(193, 39, 45);
    flex-direction: column;
             justify-content: center;
    align-items: center;
             z-index: 105;
             transition: background-color 0.3s 0.2s;
      padding: 0;
             margin: 0;
      border: none;
             border-radius: 0;
      cursor: pointer;
             
             .drawerButton__inner {
        display: block;
      position: relative;
               width: 40px;
               height: 24px;
               padding: 0;
               margin: 0;
               
               span {
                 display: block;
        position: absolute;
        left: 0;
                 width: 40px;
                 height: 3px;
                 background-color: rgb(255, 255, 255);
            border-radius: 50px;
                 margin: 0;
                 
                 &:nth-child(1) {
                   top: 0px;
                   transition: transform 0.3s ease-out, background-color 0.3s;
                 }
                 
                 &:nth-child(2) {
                   top: 12px;
                   transform: translateY(-1.5px);
                   transition: opacity 0.3s;
                 }
                 
                 &:nth-child(3) {
                   top: 21px;
                   transition: transform 0.3s ease-out, background-color 0.3s;
                 }
               }
             }
             
             .js-drawerButtonText {
        display: block;
               color: rgb(255, 255, 255);
               font-size: 12px;
               font-weight: 700;
               font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
               line-height: 12px;
               margin: 8px 0px 0px;
               padding: 0;
             }
           }
         }

         /* ハンバーガーボタンが開いた状態（is-open）のスタイル（元サイト準拠） */
         .drawerButton.js-drawerButton.is-open {
           @media (max-width: 768px) {
             background-color: transparent; /* 背景を透明に */
             
             /* "menu"テキストを透明にして非表示 */
             .js-drawerButtonText {
               color: rgba(0, 0, 0, 0); /* 透明 */
             }
             
             /* ×アイコンの各線のスタイル（元サイト準拠） */
             .drawerButton__inner span {
               &:nth-child(1) {
                 background-color: rgb(193, 39, 45); /* 赤色 */
                 transform: matrix(0.707107, 0.707107, -0.707107, 0.707107, 0, 10.5); /* 45度回転 */
               }
               
               &:nth-child(2) {
                 opacity: 0; /* 中央線を完全に非表示 */
                 transform: matrix(1, 0, 0, 1, 0, -1.5);
               }
               
               &:nth-child(3) {
                 background-color: rgb(193, 39, 45); /* 赤色 */
                 transform: matrix(0.707107, -0.707107, 0.707107, 0.707107, 0, -10.5); /* -45度回転 */
               }
             }
           }
         }

         /* ========================================
            フッターメニューの矢印アイコン
            ======================================== */

         .footer {
           .footer__menu {
             .footer__menuList {
               li {
                 a {
                   &::before {
                     content: "";
                     display: inline-block;
                     background-image: url('../image/tenpos/ico_arrow_white.png');
                     background-size: contain;
                     background-repeat: no-repeat;
                     width: 7.875px;
                     height: 13.1719px;
                     margin-right: 8px;
                     vertical-align: baseline;
                   }
                 }
               }
             }
           }
         }

         /* ========================================
            スクロールバーの色付けを無効化
            ======================================== */

         /* Webkit系ブラウザ（Chrome, Safari, Edge）のスクロールバー */
         ::-webkit-scrollbar {
           width: auto;
           height: auto;
         }

         ::-webkit-scrollbar-track {
           background: transparent;
         }

         ::-webkit-scrollbar-thumb {
           background: #c1c1c1;
           border-radius: 0;
         }

         ::-webkit-scrollbar-thumb:hover {
           background: #a8a8a8;
         }

         /* Firefox のスクロールバー */
         html {
           scrollbar-width: auto;
           scrollbar-color: #c1c1c1 transparent;
         }

         /* IE/Edge のスクロールバー */
         body {
           -ms-overflow-style: auto;
  }
}

/* ========================================
   PCナビゲーション（元サイト準拠）
   ======================================== */

.header__box2 {
  background-color: #F2F2F2;
  width: 100%;
}

.header__box2Inner {
  max-width: 1140px;
  margin: 0 auto;
}

.header__menu {
  max-width: 100%;
  width: 100%;
}

.header__menuList {
    display: flex;
  width: 100%;
}

.header__menu .menu-item {
  width: calc(100% / 6);
  border-right: 1px solid #fff;
}

.header__menu .menu-item:first-of-type {
  box-sizing: border-box;
  border-left: 1px solid #fff;
}

.header__menu .menu-item:last-of-type {
  border-right: 1px solid #fff;
}

.header__menu .menu-item a {
  display: block;
  text-align: center;
  background-color: #E6E6E6;
  color: #000;
  padding: 26.5px 15px;
  transition: background-color .25s ease, color .2s ease;
      text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
}

.header__menu .menu-item a:hover {
  background-color: var(--tenpos-main-color);
  color: #fff;
}

.header__menu .menu-item a span {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
}

/* サブメニュー */
.header__menu .menu-item a {
  display: block;
  text-align: center;
  background-color: #E6E6E6;
  color: #000;
  padding: 26.5px 15px;
  transition: background-color .25s ease, color .2s ease;
  text-decoration: none;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.25;
      white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.header__menu .sub-menu .menu-item a {
  display: inline-block;
  width: 100%;
  text-align: left;
  padding: 1em 0px 1rem 35px;
  color: #c1272d;
  font-size: 20px;
    font-weight: bold;
  cursor: pointer;
    text-decoration: none;
  box-sizing: border-box;
  background-color: #fff;
  position: relative;
}

.header__menu .sub-menu .menu-item a::before {
  content: '';
  position: absolute;
  top: 47%;
  right: 20px;
  transform: translateY(-50%);
  width: 9px;
  height: 16px;
  background: url('https://tenpos-ft.com/wp/wp-content/themes/responsive_037/images/icon_triangle.png') center center /contain no-repeat;
}

.header__menu .menu-item {
  position: relative;
  box-sizing: border-box;
}

.header__menu .menu-item:not(:first-of-type) {
  border-left: 2px solid #fff;
}

.header__menu .sub-menu .menu-item {
  width: 100%;
  border-bottom: 2px solid #fff;
}

.header__menu .sub-menu .menu-item:not(:last-child) a {
  border-bottom: 2px dashed #e6e6e6;
}

.header__menu .menu-item.menu-item-has-children:last-child .sub-menu {
  right: 0;
}

.header__menu .sub-menu {
  position: absolute;
  width: 150%;
  display: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: all 0.3s ease;
  z-index: 1000;
  list-style: none;
  margin: 0;
  padding: 0;
  top: 100%;
  left: 0;
}

.header__menu .menu-item:hover .sub-menu {
  display: block;
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.header__menu .sub-menu .menu-item a:hover {
  background: #f6dfe0;
  color: #c1272d;
}

/* ========================================
   連絡先エリア（元サイト準拠）
   ======================================== */

.header__boxInner2Cover {
    display: flex;
    align-items: center;
  flex-direction: column;
  margin-right: 15px;
}

.header__boxInner2Tel {
  margin-right: 0px;
}

.header__boxInner2Tel a {
      display: block;
  color: #000;
  opacity: 1;
  transition: opacity .25s ease;
      text-decoration: none;
}

.header__boxInner2Tel a:hover {
  opacity: .6;
}

.header__boxInner2Tel a>span {
  font-size: 25px;
  font-weight: 700;
  line-height: 1;
}

.header__boxInner2Tel a>span>span {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5625;
}

.header__boxInner2Time p {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5625;
}

.header__boxInner2Button {
  max-width: 295px;
  width: 100%;
      display: flex;
  justify-content: flex-end;
  gap: 6px;
}

.header__boxInner2Button a {
        display: flex;
        justify-content: center;
        align-items: center;
  background-color: #000;
  color: #fff;
  padding: 12px 0px;
  opacity: 1;
  width: 50%;
  transition: opacity .25s ease;
        text-decoration: none;
}

.header__boxInner2Button a:hover {
  opacity: .6;
}

.header__boxInner2Button a img {
  width: 30px;
}

.header__boxInner2Button a span {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5625;
  margin-left: 10px;
}

/* ========================================
   PCサイズでの連絡先エリア（元サイト準拠）
   ======================================== */

@media (min-width: 769px) {
  .header__boxInner2 {
    width: 48%;
          display: flex;
          align-items: center;
    justify-content: flex-end;
  }

  .header__boxInner2Cover {
    display: flex;
    align-items: center;
    flex-direction: column;
    margin-right: 15px;
  }

  .header__boxInner2Tel {
    margin-right: 0px;
  }

  .header__boxInner2Tel a {
    display: block;
    color: #000;
    opacity: 1;
    transition: opacity .25s ease;
  }

  .header__boxInner2Tel a:hover {
    opacity: .6;
  }

  .header__boxInner2Tel a > span {
    font-size: 25px;
    font-weight: 700;
    line-height: 1;
  }

  .header__boxInner2Tel a > span > span {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5625;
  }

  .header__boxInner2Time p {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5625;
  }

  .header__boxInner2Button {
    max-width: 295px;
    width: 295px;
    display: flex;
    justify-content: flex-end;
    gap: 6px;
  }

  .header__boxInner2Button a {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #000;
    color: #fff;
    padding: 12px 0px;
    opacity: 1;
    width: 144.5px;
    transition: opacity .25s ease;
  }

  .header__boxInner2Button a:hover {
    opacity: .6;
  }

  .header__boxInner2Button a img {
    width: 30px;
    height: 23px;
  }

  .header__boxInner2Button a span {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5625;
    margin-left: 10px;
  }

/* ========================================
   パンくずリスト（Breadcrumb）
   ======================================== */

   .breadcrumb {
    width: 1120px;
    margin: auto;
  }

}

.breadcrumb-wrapper {
  overflow-x: hidden;
}

/* スマホ表示時のフッターメニュー横スクロール修正 */
@media screen and (max-width: 768px) {
  .footer__menuList {
    justify-content: flex-start !important;
    align-items: flex-start !important;
    height: auto !important; /* 高さ制限を解除 */
    flex-wrap: wrap !important; /* 改行を強制 */
    max-width: 100% !important;
  }
}
@media (max-width: 768px) {
  .footer {
    max-width: 100%;
    overflow-x: hidden;
  }
  
  .footer__inner {
    width: 100%;
    max-width: 100%;
    margin: 0;
  }

  .header__boxInner {
    width: calc(100vw - 30px); /* 親のパディング分を引く */
    max-width: 100%;
  }
  .matched {
    grid-template-columns: 80px 1fr;
  }
}
.main {
  max-width: 100%;
  overflow: hidden;
}
