/* =========================================================
   v1.3 Legacy footer conflict guard
   旧サイトの空クライアント帯・旧コピーライト帯を非表示にして、
   新フッターだけを表示するための保険。
   ========================================================= */
.clients.color-bg-g,
.copyright.color-bg-b,
.footer + .clearfix + .copyright,
footer.footer ~ .copyright {
  display: none !important;
}

/* 旧CSSの footer/copyright 系指定に引っ張られないための最低限リセット */
footer.footer,
.footer.footer {
  clear: both;
}

/* =========================================================
   K v1.4 旧Bootstrap clearfix干渉対策
   旧CSSの .container::before / ::after がCSS Grid/Flexの子要素扱いになり、
   新フッターの4カラム配置を崩すため、リマスター部品内だけ無効化する。
   ========================================================= */
.topbar .container::before,
.topbar .container::after,
.header__inner::before,
.header__inner::after,
.footer__grid::before,
.footer__grid::after,
.footer .copy::before,
.footer .copy::after{
  content:none !important;
  display:none !important;
}

.footer .container,
.footer__grid{
  float:none !important;
  clear:none !important;
}

.footer__grid{
  display:grid !important;
  grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.05fr) !important;
  gap:64px !important;
  align-items:flex-start !important;
}

@media (max-width:1024px){
  .footer__grid{
    grid-template-columns:1fr 1fr !important;
    gap:36px 48px !important;
  }
}

@media (max-width:640px){
  .footer__grid{
    grid-template-columns:1fr !important;
    gap:28px !important;
  }
}


/* =========================================================
   K v1.5 Legacy text color / font conflict guard
   旧CSSの h3/a/p/li などの色指定が新ヘッダー・新フッターに混ざるため、
   リマスター部品内だけ色・文字指定を明示的に固定する。
   ========================================================= */
.footer,
.footer *{
  font-family: inherit !important;
  box-sizing: border-box !important;
}

.footer{
  color:#ffffff !important;
}

.footer h1,
.footer h2,
.footer h3,
.footer h4,
.footer h5,
.footer h6{
  color:#ffffff !important;
  font-weight:800 !important;
  line-height:1.45 !important;
}

.footer p,
.footer address,
.footer span,
.footer li,
.footer dt,
.footer dd{
  color:rgba(255,255,255,.72) !important;
  line-height:1.9 !important;
}

.footer a,
.footer a:link,
.footer a:visited{
  color:#ffffff !important;
  text-decoration:none !important;
}

.footer a:hover,
.footer a:focus{
  color:#d4af37 !important;
  text-decoration:none !important;
}

.footer__tel{
  color:#ffffff !important;
  font-size:30px !important;
  font-weight:900 !important;
  letter-spacing:.04em !important;
}

.footer__form{
  color:#ffffff !important;
}

.footer__nav h3{
  color:#d4af37 !important;
  border-bottom:1px solid rgba(255,255,255,.65) !important;
}

.footer__nav li{
  border-bottom:1px dotted rgba(255,255,255,.22) !important;
}

.footer__nav li a{
  color:#ffffff !important;
  font-weight:700 !important;
}

.footer__nav li a::before{
  color:#ffffff !important;
}

.footer .copy,
.footer .copy small{
  color:rgba(255,255,255,.78) !important;
}

/* Header側も旧CSSのa/h系色指定に引っ張られないよう最低限固定 */
.topbar,
.site-header,
.global-nav,
.mobile-panel{
  color:#ffffff !important;
}

.topbar a,
.site-header a,
.global-nav a,
.mobile-panel a{
  text-decoration:none !important;
}

/* =========================================================
   K v1.6 Footer title final guard
   旧CSSの全体 h3 装飾（四角アイコン・黄色/余白）を新フッター内だけ完全無効化。
   トップページ v4.56 の見た目に寄せる。
   ========================================================= */
.footer .footer__nav h3,
.footer h3{
  color:#ffffff !important;
  position:static !important;
  padding:0 0 14px 0 !important;
  margin:0 0 18px 0 !important;
  border-top:0 !important;
  border-left:0 !important;
  border-right:0 !important;
  border-bottom:1px solid rgba(255,255,255,.65) !important;
  background:none !important;
  box-shadow:none !important;
  font-size:20px !important;
  line-height:1.45 !important;
  letter-spacing:.04em !important;
}
.footer h3::before,
.footer h3::after,
.footer .footer__nav h3::before,
.footer .footer__nav h3::after{
  content:none !important;
  display:none !important;
  width:0 !important;
  height:0 !important;
  border:0 !important;
  margin:0 !important;
  padding:0 !important;
  position:static !important;
}

/* =========================================================
   K v1.7 Footer visual reset
   旧サイトCSSの文字太さ・色・折返し・Bootstrap系指定の残りを、
   新フッター内だけトップページ v4.56 の見た目へ再固定する。
   ========================================================= */
.footer{
  background:linear-gradient(180deg,#06214a,#041632) !important;
  color:#fff !important;
  padding:44px 0 18px !important;
  border-top:1px solid rgba(255,255,255,.12) !important;
  font-family:"Yu Gothic","Yu Gothic UI","Meiryo",Arial,sans-serif !important;
}
.footer .container{
  width:1200px !important;
  max-width:calc(100% - 48px) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
.footer__grid{
  display:grid !important;
  grid-template-columns:minmax(300px,1.15fr) minmax(210px,1fr) minmax(210px,1fr) minmax(260px,1.05fr) !important;
  gap:64px !important;
  align-items:flex-start !important;
}
.footer__company,
.footer__nav,
.footer__contact{
  float:none !important;
  clear:none !important;
  width:auto !important;
  min-height:0 !important;
  margin-top:0 !important;
}
.footer__logo{
  width:190px !important;
  max-width:190px !important;
  height:auto !important;
  margin:0 0 18px 0 !important;
  filter:brightness(0) invert(1) !important;
  opacity:.95 !important;
}
.footer__company p{
  margin:0 0 18px 0 !important;
  padding:0 !important;
  color:rgba(255,255,255,.62) !important;
  font-size:14px !important;
  font-weight:400 !important;
  line-height:2.15 !important;
  letter-spacing:.02em !important;
  white-space:nowrap !important;
}
.footer__nav h3{
  margin:0 0 18px 0 !important;
  padding:0 0 14px 0 !important;
  color:#fff !important;
  font-size:20px !important;
  font-weight:800 !important;
  line-height:1.45 !important;
  letter-spacing:.04em !important;
  border:0 !important;
  border-bottom:1px solid rgba(255,255,255,.65) !important;
  background:none !important;
  box-shadow:none !important;
}
.footer__nav h3::before,
.footer__nav h3::after{
  content:none !important;
  display:none !important;
}
.footer__nav ul{
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
}
.footer__nav li{
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-bottom:1px dotted rgba(255,255,255,.22) !important;
  background:none !important;
  color:#fff !important;
  opacity:.95 !important;
  font-size:16px !important;
  font-weight:400 !important;
  line-height:1.7 !important;
}
.footer__nav li a,
.footer__nav li a:link,
.footer__nav li a:visited{
  display:block !important;
  padding:11px 0 !important;
  color:#fff !important;
  font-size:16px !important;
  font-weight:600 !important;
  line-height:1.7 !important;
  text-decoration:none !important;
  background:none !important;
}
.footer__nav li a::before{
  content:"›" !important;
  display:inline-block !important;
  margin-right:10px !important;
  color:#fff !important;
  font-size:22px !important;
  font-weight:900 !important;
  line-height:1 !important;
  transform:translateY(1px) !important;
  width:auto !important;
  height:auto !important;
  border:0 !important;
  background:none !important;
  position:static !important;
}
.footer__contact{
  border:1px solid rgba(255,255,255,.55) !important;
  padding:26px 24px !important;
  text-align:center !important;
  box-sizing:border-box !important;
}
.footer__tel{
  margin:0 0 18px 0 !important;
  padding:0 !important;
  color:rgba(255,255,255,.68) !important;
  font-size:30px !important;
  font-weight:900 !important;
  line-height:1.25 !important;
  letter-spacing:.04em !important;
  white-space:nowrap !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}
.footer__contact p:not(.footer__tel){
  margin:0 !important;
  padding:0 !important;
  color:rgba(255,255,255,.72) !important;
  font-size:14px !important;
  font-weight:400 !important;
  line-height:1.9 !important;
  letter-spacing:0 !important;
}
.footer__form,
.footer__form:link,
.footer__form:visited{
  display:block !important;
  margin-top:22px !important;
  padding-top:22px !important;
  color:#fff !important;
  border-top:1px solid rgba(255,255,255,.55) !important;
  font-size:15px !important;
  font-weight:800 !important;
  line-height:1.7 !important;
  text-decoration:none !important;
  white-space:nowrap !important;
}
.footer .copy{
  text-align:center !important;
  color:rgba(255,255,255,.78) !important;
  border-top:1px solid rgba(255,255,255,.18) !important;
  margin-top:32px !important;
  padding-top:16px !important;
  font-size:13px !important;
  font-weight:400 !important;
  line-height:1.7 !important;
  opacity:1 !important;
}
.footer a:hover,
.footer__nav a:hover{
  color:#B5A067 !important;
  opacity:1 !important;
}
@media (max-width:1024px){
  .footer__grid{
    grid-template-columns:1fr 1fr !important;
    gap:36px 48px !important;
  }
}
@media (max-width:640px){
  .footer .container{
    max-width:calc(100% - 28px) !important;
  }
  .footer__grid{
    grid-template-columns:1fr !important;
    gap:28px !important;
  }
  .footer__contact{
    text-align:left !important;
  }
  .footer__tel{
    font-size:26px !important;
  }
}

/* =========================================================
   K v1.8 Footer old-CSS isolation / text tone final
   旧サイトCSSの影響を受けないよう、フッター内の会社情報・住所・電話を
   リマスター側の指定でさらに強く固定する。
   ========================================================= */
.footer .footer__company,
.footer .footer__company *,
.footer .footer__contact,
.footer .footer__contact *{
  font-family:"Yu Gothic","Yu Gothic UI","Meiryo",Arial,sans-serif !important;
  text-shadow:none !important;
  background:transparent !important;
}

.footer .footer__company p,
.footer .footer__company address,
.footer .footer__company span{
  color:rgba(255,255,255,.86) !important;
  font-size:15px !important;
  font-weight:400 !important;
  line-height:2.05 !important;
  letter-spacing:.02em !important;
  margin:0 0 12px 0 !important;
  padding:0 !important;
  opacity:1 !important;
}

.footer .footer__company p:first-of-type{
  color:#ffffff !important;
  font-size:15px !important;
}

.footer .footer__company p:nth-of-type(2),
.footer .footer__company p:nth-of-type(3){
  color:rgba(255,255,255,.86) !important;
  font-size:15px !important;
}

.footer .footer__company p:nth-of-type(4),
.footer .footer__company p:nth-of-type(5){
  color:#ffffff !important;
  font-size:15px !important;
}

.footer .footer__tel,
.footer p.footer__tel,
.footer__contact .footer__tel{
  color:#ffffff !important;
  font-size:30px !important;
  font-weight:900 !important;
  line-height:1.25 !important;
  letter-spacing:.04em !important;
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  opacity:1 !important;
}

.footer .footer__contact p:not(.footer__tel){
  color:#ffffff !important;
  font-size:14px !important;
  font-weight:400 !important;
  line-height:1.9 !important;
  opacity:1 !important;
}

/* =========================================================
   K v1.9 Header final guard
   旧Bootstrap/旧テーマCSSの .nav / img / header 系指定が
   新ヘッダーのsticky表示を崩さないよう、ヘッダー内だけ固定。
   ========================================================= */
.header{
  position:sticky !important;
  top:0 !important;
  z-index:9999 !important;
  display:block !important;
  height:auto !important;
  min-height:96px !important;
  overflow:visible !important;
  background:#ffffff !important;
  border-bottom:1px solid rgba(14,35,64,.12) !important;
  transform:none !important;
}
.header .container,
.header__inner{
  overflow:visible !important;
}
.header__inner{
  height:96px !important;
  min-height:96px !important;
  display:flex !important;
  align-items:center !important;
  gap:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  line-height:1.5 !important;
  position:relative !important;
}
.header__inner::before,
.header__inner::after,
.header .nav::before,
.header .nav::after{
  display:none !important;
  content:none !important;
}
.header .logo{
  display:flex !important;
  align-items:center !important;
  flex:0 0 auto !important;
  width:232px !important;
  height:auto !important;
  min-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  overflow:visible !important;
  float:none !important;
  position:relative !important;
  top:auto !important;
  left:auto !important;
  transform:none !important;
}
.header .logo img{
  display:block !important;
  width:232px !important;
  max-width:232px !important;
  height:auto !important;
  max-height:none !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  position:static !important;
  transform:none !important;
}
.header .nav{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:0 !important;
  margin:0 0 0 auto !important;
  padding:0 !important;
  height:auto !important;
  min-height:60px !important;
  list-style:none !important;
  overflow:visible !important;
  float:none !important;
  position:static !important;
  transform:none !important;
  background:transparent !important;
}
.header .nav a,
.header .submenu-toggle{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:60px !important;
  height:auto !important;
  padding:0 22px !important;
  margin:0 0 0 4px !important;
  color:#08264d !important;
  background:transparent !important;
  border:0 !important;
  border-radius:4px !important;
  font-size:16px !important;
  font-weight:700 !important;
  line-height:1.4 !important;
  text-decoration:none !important;
  white-space:nowrap !important;
  overflow:visible !important;
  float:none !important;
  position:relative !important;
  transform:none !important;
}
.header .nav .home{
  margin-left:0 !important;
}
.header .nav a:hover,
.header .submenu-toggle:hover{
  color:#ffffff !important;
  background:#08264d !important;
}
.header .contact-btn{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:56px !important;
  margin-left:16px !important;
  white-space:nowrap !important;
  position:relative !important;
  z-index:2 !important;
  transform:none !important;
}
.header .has-dropdown{
  position:relative !important;
  display:block !important;
  overflow:visible !important;
  float:none !important;
}
.header .dropdown-menu{
  z-index:10000 !important;
}
body{
  overflow-x:hidden !important;
}

@media (max-width: 900px){
  .header{
    position:relative !important;
    min-height:72px !important;
  }
  .header__inner{
    height:72px !important;
    min-height:72px !important;
  }
  .header .logo,
  .header .logo img{
    width:190px !important;
    max-width:190px !important;
  }
}

/* =========================================================
   K v2.0 Header fixed-on-scroll guard
   旧サイト本文や旧CSSの重なりでstickyヘッダーが途中で隠れるため、
   スクロール後は新ヘッダーを固定化して最前面に出す。
   ========================================================= */
body.jf-header-fixed{
  padding-top:96px !important;
}
body.jf-header-fixed .header{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  z-index:2147483000 !important;
  background:#fff !important;
  box-shadow:0 2px 16px rgba(8,38,77,.10) !important;
  transform:none !important;
  opacity:1 !important;
  visibility:visible !important;
}
body.jf-header-fixed .header__inner{
  height:96px !important;
  min-height:96px !important;
}
body.jf-header-fixed .header .logo,
body.jf-header-fixed .header .logo img,
body.jf-header-fixed .header .nav,
body.jf-header-fixed .header .nav a,
body.jf-header-fixed .header .submenu-toggle,
body.jf-header-fixed .header .contact-btn{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
  clip:auto !important;
  clip-path:none !important;
}
@media (max-width: 900px){
  body.jf-header-fixed{
    padding-top:74px !important;
  }
  body.jf-header-fixed .header__inner{
    height:74px !important;
    min-height:74px !important;
  }
}

/* =========================================================
   K v2.1 Header dropdown alignment guard
   旧ページ側ではメニューのサブ項目が中央寄せになるため、
   新ヘッダー内のドロップダウンだけ左寄せに固定する。
   ========================================================= */
.header .dropdown-menu,
.header .dropdown-menu ul,
.header .dropdown-menu li{
  text-align:left !important;
}

.header .dropdown-menu a,
.header .dropdown-menu .dropdown-link,
.header .dropdown-menu li a{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  text-align:left !important;
  width:100% !important;
  min-height:58px !important;
  padding:0 28px !important;
  margin:0 !important;
  line-height:1.5 !important;
  white-space:nowrap !important;
}

.header .dropdown-menu a::before,
.header .dropdown-menu a::after{
  text-align:left !important;
}

/* =========================================================
   K v2.7 Legacy content layout rollback
   施工事例一覧・詳細ページ・旧本文カードへの補正は影響範囲が広いため解除。
   ヘッダー・フッター・メニュー互換だけ compatibility.css で維持する。
   ========================================================= */

/* =========================================================
   K v2.5 Header micro-shift / logo size guard
   旧CSSとの共存時に、お問い合わせボタン hover でメニュー全体が
   1〜2px動く現象を抑制。あわせてロゴが大きく見えるため少し抑える。
   旧HTMLページの暫定表示用。新規ページ完成後は削除対象。
   ========================================================= */
.header,
.header *{
  box-sizing:border-box !important;
}

.header .logo{
  width:220px !important;
  max-width:220px !important;
  flex:0 0 220px !important;
}

.header .logo img{
  width:220px !important;
  max-width:220px !important;
  height:auto !important;
  max-height:64px !important;
  object-fit:contain !important;
}

.header .nav{
  flex:1 1 auto !important;
  min-width:0 !important;
}

.header .nav a,
.header .submenu-toggle,
.header .contact-btn{
  box-sizing:border-box !important;
  transform:none !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  line-height:1.4 !important;
  vertical-align:middle !important;
}

.header .contact-btn,
.header .contact-btn:link,
.header .contact-btn:visited,
.header .contact-btn:hover,
.header .contact-btn:focus,
.header .contact-btn:active{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  width:164px !important;
  min-width:164px !important;
  max-width:164px !important;
  height:58px !important;
  min-height:58px !important;
  padding:0 18px !important;
  margin:0 0 0 16px !important;
  border:1px solid #08264d !important;
  border-radius:3px !important;
  box-shadow:0 4px 12px rgba(6,33,74,.18) !important;
  font-size:15px !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  position:relative !important;
  transform:none !important;
}

.header .contact-btn{
  background:#ffffff !important;
  color:#111827 !important;
}

.header .contact-btn:hover,
.header .contact-btn:focus,
.header .contact-btn:active{
  background:#08264d !important;
  color:#ffffff !important;
}

.header .contact-btn span,
.header .contact-btn svg,
.header .contact-mail-icon{
  flex:0 0 auto !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
}

.header .contact-btn span:not(.contact-mail-icon){
  display:inline-block !important;
  font-size:15px !important;
  line-height:1.4 !important;
  white-space:nowrap !important;
}

.header .nav a:hover,
.header .submenu-toggle:hover{
  transform:none !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

body.jf-header-fixed .header .logo,
body.jf-header-fixed .header .logo img{
  width:220px !important;
  max-width:220px !important;
}

body.jf-header-fixed .header .contact-btn,
body.jf-header-fixed .header .contact-btn:hover{
  width:164px !important;
  min-width:164px !important;
  max-width:164px !important;
  height:58px !important;
  min-height:58px !important;
  padding:0 18px !important;
  margin:0 0 0 16px !important;
  border-width:1px !important;
}

@media (max-width: 900px){
  .header .logo,
  .header .logo img,
  body.jf-header-fixed .header .logo,
  body.jf-header-fixed .header .logo img{
    width:188px !important;
    max-width:188px !important;
  }
  .header .logo{
    flex-basis:188px !important;
  }
}

/* =========================================================
   K v2.8 Legacy shitaji detail feature image guard
   下地処理の詳細ページ（例：/shitaji/kensaku.html）の「特徴」欄で、
   旧Bootstrapの入れ子と新CSSの共存により画像が小さく見えるため、
   .tokucyou 内だけ画像幅と2カラム配置を補正する。
   施工事例一覧には影響させない。
   ========================================================= */
.single-blog-page-content .tokucyou{
  clear:both !important;
  overflow:hidden !important;
  width:100% !important;
}

.single-blog-page-content .tokucyou > .container,
.single-blog-page-content .tokucyou > .container > .row,
.single-blog-page-content .tokucyou > .container > .row > .col-md-8{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box !important;
}

.single-blog-page-content .tokucyou .col-md-5{
  float:left !important;
  width:250px !important;
  max-width:250px !important;
  min-width:250px !important;
  padding-left:0 !important;
  padding-right:25px !important;
  box-sizing:border-box !important;
}

.single-blog-page-content .tokucyou .col-md-7{
  float:left !important;
  width:calc(100% - 250px) !important;
  max-width:calc(100% - 250px) !important;
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box !important;
}

.single-blog-page-content .tokucyou img.img-responsive,
.single-blog-page-content .tokucyou .col-md-5 img{
  display:block !important;
  width:225px !important;
  max-width:225px !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  float:none !important;
  position:static !important;
  transform:none !important;
}

@media (max-width: 767px){
  .single-blog-page-content .tokucyou .col-md-5,
  .single-blog-page-content .tokucyou .col-md-7{
    float:none !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    padding-right:0 !important;
  }
  .single-blog-page-content .tokucyou img.img-responsive,
  .single-blog-page-content .tokucyou .col-md-5 img{
    width:100% !important;
    max-width:360px !important;
    margin-bottom:16px !important;
  }
}

/* =========================================================
   K v3.1 Legacy page mobile menu final guard
   ---------------------------------------------------------
   旧HTML移行ページでは、過去の互換指定で .header .nav が
   display:flex !important になり、スマホ時にメニュー項目が
   ヒーロー画像上へ常時表示されることがあった。
   新スマホメニューだけを正として、閉じている時は必ず非表示、
   MENU押下時だけ白いドロワーとして表示する。
   旧ページ完了後は compatibility.css ごと削除対象。
   ========================================================= */
@media (max-width: 900px){
  /* 旧slicknav/旧メニューの残骸があっても表示させない */
  .slicknav_menu,
  .mobile-nav:not(.mobile-nav-extra),
  .navbar-nav,
  .header-top-area,
  .mainmenu-area{
    display:none !important;
    visibility:hidden !important;
    height:0 !important;
    overflow:hidden !important;
  }

  .header{
    position:relative !important;
    z-index:2147483000 !important;
    overflow:visible !important;
    background:#fff !important;
  }

  .header__inner{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    flex-wrap:nowrap !important;
    min-height:74px !important;
    height:auto !important;
    padding:12px 0 !important;
    overflow:visible !important;
  }

  .header .logo,
  .header .logo img,
  body.jf-header-fixed .header .logo,
  body.jf-header-fixed .header .logo img{
    width:188px !important;
    max-width:188px !important;
    flex:0 0 188px !important;
  }

  .header .mobile-menu-btn{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 auto !important;
    margin-left:auto !important;
    position:relative !important;
    z-index:2147483002 !important;
  }

  .header__inner > .contact-btn{
    display:none !important;
  }

  .header .nav,
  body.jf-header-fixed .header .nav{
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    top:100% !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    gap:0 !important;
    background:#fff !important;
    border:1px solid #dfe5ee !important;
    box-shadow:0 12px 26px rgba(6,33,74,.16) !important;
    overflow:visible !important;
    z-index:2147483001 !important;
    transform:none !important;
  }

  .header .nav.is-open,
  body.jf-header-fixed .header .nav.is-open{
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  .header .nav a,
  .header .nav .submenu-toggle,
  body.jf-header-fixed .header .nav a,
  body.jf-header-fixed .header .nav .submenu-toggle{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    min-height:auto !important;
    height:auto !important;
    margin:0 !important;
    padding:14px 16px !important;
    border:0 !important;
    border-bottom:1px solid #e2e6ed !important;
    border-radius:0 !important;
    background:#fff !important;
    color:#111827 !important;
    font-size:15px !important;
    font-weight:700 !important;
    line-height:1.45 !important;
    text-align:left !important;
    white-space:normal !important;
    box-shadow:none !important;
    transform:none !important;
  }

  .header .nav .home{
    gap:10px !important;
  }

  .header .nav .nav-item,
  body.jf-header-fixed .header .nav .nav-item{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    position:relative !important;
    overflow:visible !important;
  }

  .header .nav .dropdown-menu,
  body.jf-header-fixed .header .nav .dropdown-menu{
    position:static !important;
    display:none !important;
    visibility:visible !important;
    opacity:1 !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:#f6f7f9 !important;
    box-shadow:none !important;
    transform:none !important;
  }

  .header .nav .has-dropdown:hover .dropdown-menu{
    display:none !important;
  }

  .header .nav .has-dropdown.is-open .dropdown-menu,
  body.jf-header-fixed .header .nav .has-dropdown.is-open .dropdown-menu{
    display:block !important;
  }

  .header .nav .dropdown-menu a,
  body.jf-header-fixed .header .nav .dropdown-menu a{
    padding:12px 30px !important;
    background:#f6f7f9 !important;
    color:#111827 !important;
    font-size:14px !important;
  }

  .header .mobile-nav-extra{
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    border-top:2px solid #08264d !important;
    background:#f6f7f9 !important;
  }

  .header .mobile-nav-extra a,
  .header .mobile-nav-note{
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:13px 16px !important;
    box-sizing:border-box !important;
  }
}


/* =========================================================
   K v3.2: 旧スマホメニュー停止・新スマホメニュー優先
   ---------------------------------------------------------
   旧サイトの slicknav / mobile-nav は新ヘッダーと干渉するため、
   旧ページでも表示させない。スマホメニューは新ヘッダー内の
   .mobile-menu-btn と #global-nav のみを使用する。
========================================================= */
@media (max-width: 900px){
  /* 旧スマホメニューは完全停止 */
  .slicknav_menu,
  .slicknav_nav,
  .slicknav_btn,
  .mobile-nav,
  .header-top-area .slicknav_menu,
  .header-top-area .slicknav_nav,
  .header-top-area .slicknav_btn{
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
    width:0 !important;
    height:0 !important;
    overflow:hidden !important;
    pointer-events:none !important;
  }

  /* 新ヘッダーの枠内にロゴとMENUだけを収める */
  html body .header .container.header__inner,
  html body body.jf-header-fixed .header .container.header__inner{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    flex-wrap:wrap !important;
    width:min(100% - 28px, 1200px) !important;
    max-width:1200px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding:12px 0 !important;
    box-sizing:border-box !important;
    overflow:visible !important;
  }

  /* PC用お問い合わせボタンはスマホでは必ず非表示。メニュー内のリンクだけ使う */
  html body .header .header__inner > a.contact-btn,
  html body .header a.contact-btn:not(.mobile-nav-contact){
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
    width:0 !important;
    height:0 !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    pointer-events:none !important;
  }

  /* 新ナビは閉じている時は隠す、開いた時だけ表示 */
  html body .header #global-nav,
  html body body.jf-header-fixed .header #global-nav{
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    top:100% !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
    border:1px solid #dfe5ee !important;
    box-shadow:0 12px 26px rgba(6,33,74,.16) !important;
    z-index:2147483001 !important;
    overflow:visible !important;
  }

  html body .header #global-nav.is-open,
  html body body.jf-header-fixed .header #global-nav.is-open{
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    flex-direction:column !important;
    align-items:stretch !important;
  }

  html body .header #global-nav a,
  html body .header #global-nav .submenu-toggle{
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }

  html body .header #global-nav .mobile-nav-extra{
    display:none !important;
    position:static !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;
    background:#f6f7f9 !important;
  }

  html body .header #global-nav.is-open .mobile-nav-extra{
    display:block !important;
  }

  html body .header #global-nav .mobile-nav-extra a,
  html body .header #global-nav .mobile-nav-extra .mobile-nav-note{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:13px 16px !important;
    box-sizing:border-box !important;
    position:static !important;
    float:none !important;
    clear:both !important;
  }
}


/* =========================================================
   K v3.3: 旧メニュー停止・新スマホメニュー優先（旧移行ページ）
   ---------------------------------------------------------
   方針：旧メニューは使わない。新共通ヘッダー/新共通メニューのみ使用。
   本文側の旧CSSは暫定で残すが、旧メニュー系JS/CSSの影響は止める。
========================================================= */
@media (max-width: 900px){
  /* 旧メニュー・旧ヘッダー由来の要素は表示させない */
  html body .slicknav_menu,
  html body .slicknav_nav,
  html body .slicknav_btn,
  html body .mobile-nav,
  html body .main-header,
  html body .header-top-area,
  html body .header-top,
  html body .navbar,
  html body .navbar-default,
  html body .navbar-collapse,
  html body .navbar-nav{
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
    width:0 !important;
    height:0 !important;
    max-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    pointer-events:none !important;
  }

  /* 新ヘッダーだけをスマホ表示の基準にする */
  html body .topbar{ display:none !important; }
  html body .header{
    display:block !important;
    position:relative !important;
    z-index:2147483000 !important;
    width:100% !important;
    background:#fff !important;
    overflow:visible !important;
  }
  html body .header .header__inner{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    flex-wrap:wrap !important;
    min-height:72px !important;
    padding:10px 14px !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    overflow:visible !important;
  }
  html body .header .logo{
    display:flex !important;
    align-items:center !important;
    width:auto !important;
    max-width:54% !important;
    margin:0 !important;
    padding:0 !important;
  }
  html body .header .logo img{
    width:auto !important;
    max-width:100% !important;
    height:auto !important;
    max-height:50px !important;
  }
  html body .header .mobile-menu-btn{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 auto !important;
    width:auto !important;
    min-width:108px !important;
    height:50px !important;
    margin:0 !important;
    padding:0 14px !important;
    background:#08264d !important;
    color:#fff !important;
    border:0 !important;
    border-radius:4px !important;
    box-shadow:none !important;
    z-index:2147483002 !important;
  }

  /* PC用お問い合わせボタンはスマホでは使わない。メニュー内の1項目に統一 */
  html body .header > a.contact-btn,
  html body .header .header__inner > a.contact-btn,
  html body .header a.contact-btn:not(.mobile-nav-contact){
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
    width:0 !important;
    height:0 !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    pointer-events:none !important;
  }

  /* スマホメニューは本文を押し下げず、ヘッダー直下に重ねる */
  html body .header #global-nav{
    display:none !important;
    position:absolute !important;
    top:100% !important;
    left:14px !important;
    right:14px !important;
    width:auto !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
    border:1px solid #dfe5ee !important;
    box-shadow:0 12px 26px rgba(6,33,74,.16) !important;
    z-index:2147483001 !important;
    overflow:visible !important;
  }
  html body .header #global-nav.is-open{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    visibility:visible !important;
    opacity:1 !important;
  }
  html body .header #global-nav > a,
  html body .header #global-nav .submenu-toggle,
  html body .header #global-nav .mobile-nav-extra > a{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    width:100% !important;
    min-height:48px !important;
    margin:0 !important;
    padding:13px 16px !important;
    box-sizing:border-box !important;
    background:#fff !important;
    color:#06214a !important;
    border:0 !important;
    border-bottom:1px solid #dfe5ee !important;
    border-radius:0 !important;
    font-size:15px !important;
    font-weight:700 !important;
    line-height:1.4 !important;
    text-align:left !important;
    float:none !important;
    position:relative !important;
  }
  html body .header #global-nav .mobile-nav-extra{
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
    border:0 !important;
  }
  html body .header #global-nav .mobile-nav-extra > a.mobile-nav-contact,
  html body .header #global-nav.is-open .mobile-nav-extra > a.mobile-nav-contact{
    background:#08264d !important;
    color:#fff !important;
    border-bottom:1px solid #08264d !important;
  }
  html body .header #global-nav .mobile-nav-note{
    display:block !important;
    margin:0 !important;
    padding:12px 16px !important;
    color:#64748b !important;
    background:#fff !important;
    font-size:12px !important;
    line-height:1.6 !important;
    border-bottom:0 !important;
  }
  html body .header #global-nav .dropdown-menu{
    position:static !important;
    display:none !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:#f6f7f9 !important;
    box-shadow:none !important;
  }
  html body .header #global-nav .has-dropdown.is-open .dropdown-menu{
    display:block !important;
  }
  html body .header #global-nav .dropdown-menu a{
    display:block !important;
    width:100% !important;
    min-height:44px !important;
    padding:12px 28px !important;
    box-sizing:border-box !important;
    background:#f6f7f9 !important;
    color:#06214a !important;
    border-bottom:1px solid #dfe5ee !important;
    text-align:left !important;
  }
}
