/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Dec 26 2025 | 08:40:19 */
/* ==============================
   フルワイド帯（フルブリード）
   ============================== */
.kv-quick-nav-wrap{
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}
@media (min-width:1025px){
  .kv-quick-nav-wrap{
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    overflow-x: clip;
  }
}

/* ==============================
   変数・共通
   ============================== */
.kv-quick-nav{
  --bg:    #fff;
  --btn-h: 56px;
  --gap:    14px;
  --padx:   14px;
}

.kv-quick-nav__list{
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: var(--gap);
  margin: 0;
  padding: 16px 20px !important;
  list-style: none;
  overflow-x: visible;
  white-space: normal;
  font-size: 1rem;
}
.kv-quick-nav__list > li{
  flex: 0 0 auto;
}

.kv-quick-nav__btn{
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--btn-h);
  padding: 0 var(--padx);
  background: var(--bg);
  color: var(--color_main);
  border: 2px solid var(--color_main);
  border-radius: 5px;
  text-decoration: none;
  line-height: 1;
  white-space: nowrap;
  transition: opacity .2s ease;
  opacity: .85;
}
.kv-quick-nav__btn:hover,
.kv-quick-nav__btn.is-primary{
  background: var(--color_main);
  color: #fff;
}

/* ==============================
   SP：横スクロール
   ============================== */
@media (max-width:1024px){
  .kv-quick-nav__list{
    justify-content: flex-start;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
    padding-left: var(--gap);
    padding-right: var(--gap);
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--gap);
    scroll-padding-right: var(--gap);
  }
  .kv-quick-nav__list::-webkit-scrollbar{
    height: 6px;
  }
  .kv-quick-nav__list{
    scrollbar-width: thin;
  }
}

/* ==============================
   PC：横スクロール無効
   ============================== */
@media (min-width:1025px){
  .kv-quick-nav__list{
    overflow-x: visible;
    white-space: normal;
    scrollbar-width: none;
  }
  .kv-quick-nav__list::-webkit-scrollbar{
    display: none;
  }
}

/* ==============================
   固定位置・定数
   ============================== */
:root{
  --pc-header-h: 114px;
  --sp-header-h: 39px;
  --subnav-z: 99998;
  --anchor-offset: 0px;
}

/* ブラウザ標準スクロールにも反映 */
html{
  scroll-padding-top: var(--anchor-offset);
}

/* アンカー用ユーティリティ */
.js-anchor{
  scroll-margin-top: var(--anchor-offset);
}

/* ==============================
   プレースホルダー
   （transitionなし・即時確保）
   ============================== */
#js-subnav-placeholder{
  height: 0;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  display: block;
}

/* ==============================
   追従中（fixed）
   ★ width: 100% と left: 0 を追加し、強制的に全幅にする
   ============================== */
#js-subnav.is-stuck{
  position: fixed;
  top: 0;
  left: 0 !important;    /* 左端に固定 */
  width: 100% !important; /* 横幅いっぱいに強制 */
  right: auto;
  z-index: var(--subnav-z) !important;
  margin: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box;
  background: inherit;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

/* 追従中の余白ブレ防止 */
#js-subnav.is-stuck .kv-quick-nav,
#js-subnav.is-stuck .kv-quick-nav__list{
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* ==============================
   アクティブ表示
   ============================== */
.kv-quick-nav__list li.is-active > a,
.kv-quick-nav__list a.is-active{
  background: var(--color_main);
  color: #fff;
  position: relative;
}

/* ==============================
   描画安定化
   ============================== */
#js-subnav,
#js-subnav.is-stuck{
  will-change: transform, top;
  backface-visibility: hidden;
  transform: translateZ(0);
  contain: layout paint style;
  -webkit-font-smoothing: antialiased;
}

/* 慣性スクロールの戻り抑制 */
html,
body{
  overscroll-behavior: contain;
}

/* 追従中の余白停止 */
#js-subnav.is-stuck,
#js-subnav.is-stuck .kv-quick-nav,
#js-subnav.is-stuck .kv-quick-nav-wrap{
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
#js-subnav.is-stuck .kv-quick-nav__list{
  margin-bottom: 0 !important;
  padding-bottom: 20px !important;
}

/* 文字サイズ自動調整を抑止 */
#js-subnav,
#js-subnav *{
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}