/* meigi-faithful 新デザイン（ヘッダー・全画面メニュー・フッター・サイドバー）2026-11-07
   読み込むのは mh_design_is_new() が真のときだけ（functions.php）。旧デザインの CSS は変えない。
   root は 14px のまま（akibare-parts.css の rem 657規則のため）。新部品の文字は px で明示する。
   色＝紺 #0d3b66／濃紺 #0a2540／橙(文字) #c2560b／LINE(新設) #0a7f36／Web #1565c0。白抜き文字は 4.5:1 以上。 */

/* ---------- 共通 ---------- */
html.mh2-on{scroll-padding-top:64px;scroll-padding-bottom:84px}
.mh2-area-header{border-bottom:0;background:#fff}
.mh2-hd,.mh2-sticky,.mh2-menu,.mh2-ft,.mh2-side-consult{font-family:"游ゴシック",YuGothic,"Hiragino Kaku Gothic ProN","Hiragino Kaku Gothic Pro",Meiryo,"メイリオ",sans-serif;font-size:16px;line-height:1.5;color:#1f2933}
.mh2-hd *,.mh2-sticky *,.mh2-menu *,.mh2-ft *,.mh2-side-consult *{box-sizing:border-box}
.mh2-hd a,.mh2-sticky a,.mh2-menu a,.mh2-ft a,.mh2-side-consult a{text-decoration:none}
.mh2-hd a:hover,.mh2-sticky a:hover,.mh2-menu a:hover,.mh2-ft a:hover{text-decoration:underline}
.mh2-vh{position:absolute !important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.mh2-nb{display:inline-block;max-width:100%}
.mh2-hd :focus-visible,.mh2-sticky :focus-visible,.mh2-menu :focus-visible,.mh2-ft :focus-visible,.mh2-side-consult :focus-visible{outline:3px solid #ffb703;outline-offset:2px}
.mh2-hd ul,.mh2-sticky ul,.mh2-menu ul,.mh2-ft ul{list-style:none;margin:0;padding:0}
.mh2-hd p,.mh2-sticky p,.mh2-menu p,.mh2-ft p,.mh2-side-consult p{margin:0}
.mh2-logo{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;background:#fff;border-radius:8px}
.mh2-logo img{display:block;width:100%;height:auto}

.mh2-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 16px;border-radius:8px;font-size:16px;font-weight:700;line-height:1.3;color:#fff !important;text-align:center}
.mh2-btn:hover{text-decoration:none !important;filter:brightness(1.08)}
.mh2-btn-line{background:#0a7f36}
.mh2-btn-web{background:#1565c0}

.mh2-iconbtn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:48px;height:48px;padding:0;border:0;border-radius:8px;cursor:pointer;font:inherit;color:#fff !important;background:transparent}
.mh2-iconbtn-label{font-size:10px;font-weight:700;line-height:1.1;letter-spacing:.02em}
.mh2-iconbtn-tel{background:#c2560b}
.mh2-iconbtn:hover{text-decoration:none !important;filter:brightness(1.12)}

/* ---------- ヘッダー：スマホ（〜768px） ---------- */
.mh2-hd-row{display:flex;align-items:center;gap:6px;min-height:56px;padding:2px 8px 2px 10px;background:#0d3b66}
.mh2-brand{display:flex;align-items:center;gap:8px;min-width:0;min-height:44px;flex:1 1 auto;color:#fff !important}
.mh2-brand:hover{text-decoration:none !important}
.mh2-hd-row .mh2-logo{width:32px;height:32px;padding:2px}
.mh2-brand-text{display:flex;flex-direction:column;min-width:0}
.mh2-brand-kind{font-size:11px;font-weight:700;line-height:1.15;letter-spacing:.06em;color:#dbe7f3}
.mh2-brand-name{font-size:16px;font-weight:800;line-height:1.15;letter-spacing:.02em;color:#fff}
.mh2-brand-lead{display:none}
.mh2-hd-row .mh2-nb,.mh2-sticky .mh2-nb{display:block}
.mh2-hd-row .mh2-brand-name,.mh2-sticky .mh2-brand-name{letter-spacing:0}
.mh2-sp-actions{display:flex;gap:6px;flex:0 0 auto}
.mh2-menu-btn{background:#0a2540;border:1px solid rgba(255,255,255,.35)}
.mh2-pc-contact{display:none}
.mh2-band{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;column-gap:10px;row-gap:0;min-height:44px;padding:4px 10px;background:#fff;color:#0a2540 !important}
.mh2-band:hover{text-decoration:none !important;background:#fdf6ef}
.mh2-band-num{display:inline-flex;align-items:center;gap:4px;font-size:20px;font-weight:800;color:#c2560b;letter-spacing:.02em;white-space:nowrap}
.mh2-band-note{font-size:13px;font-weight:700;color:#0a2540;white-space:nowrap}
/* 営業時間の補足（2026-11-09 A2・競合10サイト比較 最終案）: 電話帯の下・リンクの外 */
.mh2-band-sub{margin:0 !important;padding:0 10px 6px;background:#fff;border-bottom:1px solid #d9e2ec;text-align:center;font-size:12px;font-weight:700;line-height:1.4;color:#3e4c59}
.mh2-gnav{display:none}

/* 追従バー（共通の土台・表示は JS が .mh2-sticky-on を付けたとき） */
.mh2-sticky{position:fixed;top:0;left:0;right:0;z-index:1000;transform:translateY(-110%);transition:transform .18s ease;visibility:hidden;background:#0d3b66;box-shadow:0 2px 8px rgba(10,37,64,.25)}
.mh2-sticky.mh2-sticky-on{transform:none;visibility:visible}
html.mh2-menu-open .mh2-sticky{visibility:hidden}
.mh2-sticky-in{display:flex;align-items:center;gap:8px;min-height:56px;padding:2px 8px 2px 10px}
.mh2-sticky .mh2-logo{width:30px;height:30px;padding:2px}
.mh2-sticky .mh2-brand-name{font-size:15px}
.mh2-sticky .mh2-iconbtn{width:44px;height:44px}
.mh2-sticky-nav{display:none}

/* 全画面メニュー（スマホ） */
.mh2-menu[hidden]{display:none !important}
.mh2-menu{position:fixed;inset:0;z-index:999;display:flex;flex-direction:column;background:#fff}
.mh2-menu-top{flex:0 0 56px;display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 16px;background:#0d3b66;color:#fff}
.mh2-menu-ttl{font-size:17px;font-weight:800;color:#fff}
.mh2-menu-close{background:#0a2540;border:1px solid rgba(255,255,255,.35)}
.mh2-menu-body{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:12px 16px calc(96px + env(safe-area-inset-bottom,0px))}
.mh2-menu-sec{margin:16px 0 8px !important;font-size:14px;font-weight:800;color:#0d3b66;letter-spacing:.04em}
.mh2-menu-sec:first-child{margin-top:4px !important}
.mh2-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mh2-tiles a{display:flex;flex-direction:column;justify-content:center;min-height:72px;height:100%;padding:10px 12px;border:1px solid #c9d6e3;border-left:4px solid #0d3b66;border-radius:8px;background:#f3f6f9;color:#0a2540 !important}
.mh2-tile-wide{grid-column:1 / -1}
.mh2-tile-t{font-size:16px;font-weight:800;line-height:1.35}
.mh2-tile-d{margin-top:2px;font-size:13px;font-weight:500;color:#3e4c59;line-height:1.4}
.mh2-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px !important}
.mh2-chips a{display:inline-flex;align-items:center;min-height:44px;padding:6px 14px;border:1px solid #9fb3c8;border-radius:22px;background:#fff;font-size:15px;font-weight:700;color:#0d3b66 !important}
.mh2-menu-list li{border-bottom:1px solid #d9e2ec}
.mh2-menu-list a{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:10px 4px;font-size:16px;font-weight:700;color:#0a2540 !important}
.mh2-menu-list a::after{content:"";flex:0 0 auto;width:8px;height:8px;margin-left:12px;border-top:2px solid #52606d;border-right:2px solid #52606d;transform:rotate(45deg)}

/* ---------- ヘッダー：PC（769px〜） ---------- */
@media (min-width:769px){
  html.mh2-on{scroll-padding-top:68px;scroll-padding-bottom:16px}
  .mh2-sp-actions,.mh2-band,.mh2-band-sub{display:none !important}
  .mh2-hd-row{max-width:1060px;margin:0 auto;min-height:84px;padding:8px 10px;background:#fff;gap:16px}
  .mh2-hd{background:#fff;border-bottom:1px solid #d9e2ec}
  .mh2-brand{color:#0a2540 !important;gap:12px}
  .mh2-hd-row .mh2-logo{width:48px;height:48px;padding:0}
  .mh2-brand-kind{font-size:13px;color:#3e4c59}
  .mh2-brand-name{font-size:24px;color:#0a2540}
  .mh2-hd-row .mh2-brand-name,.mh2-sticky .mh2-brand-name{letter-spacing:.02em}
  .mh2-hd-row .mh2-nb,.mh2-sticky .mh2-nb{display:inline-block}
  .mh2-brand-lead{display:block;margin-top:2px;font-size:13px;font-weight:500;color:#3e4c59;line-height:1.4}
  .mh2-pc-contact{display:flex;align-items:center;gap:10px;flex:0 0 auto}
  .mh2-pc-tel-block{padding-right:6px}
  .mh2-pc-tel{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:26px;font-weight:800;line-height:1.1;color:#c2560b !important;white-space:nowrap}
  .mh2-pc-hours{margin-top:2px !important;font-size:13px;color:#3e4c59;white-space:nowrap}
  .mh2-pc-hours-sub{display:block;margin-top:1px}
  .mh2-pc-contact .mh2-btn{white-space:nowrap}

  .mh2-gnav{display:block;background:#0d3b66}
  .mh2-gnav-list{max-width:1060px;margin:0 auto !important;display:flex}
  .mh2-gnav-item{position:relative;flex:1 1 auto;display:flex;align-items:stretch;border-left:1px solid rgba(255,255,255,.18)}
  .mh2-gnav-item:last-child{border-right:1px solid rgba(255,255,255,.18)}
  .mh2-gnav-link{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:52px;padding:6px 8px;font-size:15px;font-weight:700;color:#fff !important;text-align:center;line-height:1.3}
  .mh2-gnav-link:hover,.mh2-gnav-item:focus-within{background:#0a2540;text-decoration:none !important}
  .mh2-mega-toggle{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:44px;min-height:52px;margin-left:-12px;padding:0;border:0;background:transparent;color:#fff;cursor:pointer}
  .mh2-mega{display:none;position:absolute;top:100%;left:0;z-index:1001;width:min(1040px,96vw);padding:20px 24px;background:#fff;border:1px solid #c9d6e3;border-top:3px solid #0d3b66;border-radius:0 0 8px 8px;box-shadow:0 10px 24px rgba(10,37,64,.18);grid-template-columns:repeat(4,1fr);gap:20px}
  .mh2-has-mega.mh2-open .mh2-mega{display:grid}
  .mh2-mega-ttl{margin:0 0 8px !important;font-size:14px;font-weight:800;color:#0d3b66;border-bottom:2px solid #d9e2ec;padding-bottom:4px}
  .mh2-mega li a{display:flex;align-items:center;min-height:36px;padding:4px 0;font-size:15px;color:#1565c0 !important;line-height:1.4}
  .mh2-mega-card{background:#f3f6f9;border-radius:8px;padding:12px}
  .mh2-mega-cardlink{display:flex;align-items:center;min-height:44px;margin-top:8px;padding:8px 12px;border-radius:8px;background:#1565c0;color:#fff !important;font-size:15px;font-weight:700}

  .mh2-sticky{background:#fff;border-bottom:1px solid #d9e2ec}
  .mh2-sticky-in{max-width:1060px;margin:0 auto;min-height:60px;padding:6px 10px;gap:16px}
  .mh2-sticky .mh2-brand{flex:0 0 auto;color:#0a2540 !important}
  .mh2-sticky .mh2-brand-name{font-size:17px;color:#0a2540}
  .mh2-sticky .mh2-logo{width:36px;height:36px}
  .mh2-sticky-nav{display:none;flex:1 1 auto;justify-content:center;gap:4px}
  .mh2-sticky-nav a{display:flex;align-items:center;min-height:44px;padding:4px 10px;font-size:15px;font-weight:700;color:#0a2540 !important;white-space:nowrap}
  .mh2-pc-contact-sm{margin-left:auto}
  .mh2-pc-contact-sm .mh2-pc-tel{font-size:22px}
  .mh2-menu{display:none !important}
}
@media (min-width:769px) and (max-width:1079px){
  .mh2-brand-lead{display:none}
  .mh2-brand-name{font-size:20px}
  .mh2-pc-tel{font-size:22px}
  .mh2-pc-hours{font-size:12px}
  .mh2-pc-contact .mh2-btn{font-size:14px;padding:6px 10px}
  .mh2-gnav-link{font-size:14px;padding:6px 4px}
  .mh2-mega{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:769px) and (max-width:899px){
  .mh2-hd-row{flex-wrap:wrap;row-gap:4px}
  .mh2-pc-contact{margin-left:auto}
}
@media (min-width:1280px){
  .mh2-sticky-nav{display:flex}
}

/* ---------- フッター ---------- */
.mh2-ft{margin-top:44px;background:#fff}
.mh2-ft-wrap{max-width:1060px;margin:0 auto;padding:0 16px}
.mh2-ft-consult{background:#0d3b66;padding:24px 0}
.mh2-ft-consult-ttl{color:#fff;font-size:20px;font-weight:800;text-align:center;margin-bottom:12px !important}
.mh2-ft-consult-card{max-width:720px;margin:0 auto;background:#fff;border-radius:10px;padding:16px;text-align:center}
.mh2-ft-tel-lead{font-size:14px;font-weight:700;color:#3e4c59}
.mh2-ft-tel{display:inline-flex;align-items:center;min-height:44px;font-size:28px;font-weight:800;line-height:1.2;color:#c2560b !important;letter-spacing:.02em}
.mh2-ft-hours{font-size:14px;color:#3e4c59}
.mh2-ft-btns{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px}
.mh2-ft-btns .mh2-btn{min-height:48px}
.mh2-ft-note{margin-top:10px !important;font-size:13px;color:#3e4c59}
.mh2-pc-only{display:none !important}
.mh2-ft-links{padding:16px 0;border-bottom:1px solid #d9e2ec}
.mh2-ft-sec{border-bottom:1px solid #d9e2ec}
.mh2-ft-sec > summary{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:8px 4px;font-size:16px;font-weight:800;color:#0d3b66;cursor:pointer;list-style:none}
.mh2-ft-sec > summary::-webkit-details-marker{display:none}
.mh2-ft-sec > summary::after{content:"";width:9px;height:9px;margin-right:6px;border-right:2px solid #52606d;border-bottom:2px solid #52606d;transform:rotate(45deg);transition:transform .15s}
.mh2-ft-sec[open] > summary::after{transform:rotate(-135deg)}
.mh2-ft-sec ul{padding:0 0 12px !important}
.mh2-ft-sec li a{display:flex;align-items:center;min-height:44px;padding:6px 4px;font-size:16px;color:#1565c0 !important;line-height:1.4}
.mh2-ft-office{background:#f3f6f9;padding:20px 0}
.mh2-ft-office-in{display:flex;flex-direction:column;gap:8px}
.mh2-ft-office-name{display:flex;align-items:center;gap:10px}
.mh2-ft-office-name .mh2-logo{width:44px;height:44px}
.mh2-ft-kind{display:block;font-size:12px;font-weight:700;color:#3e4c59}
.mh2-ft-name{display:block;font-size:18px;font-weight:800;color:#0a2540}
.mh2-ft-addr,.mh2-ft-area{font-size:14px;line-height:1.7;color:#3e4c59}
.mh2-ft-maplink{display:inline-flex;align-items:center;min-height:44px;font-size:16px;font-weight:700;color:#1565c0 !important}
.mh2-ft-legal{background:#0a2540;padding:12px 0 calc(84px + env(safe-area-inset-bottom,0px))}
.mh2-ft-legal ul{display:flex;flex-wrap:wrap;column-gap:20px}
.mh2-ft-legal a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:#fff !important}
.mh2-ft-copy{font-size:12px;color:#dbe7f3;margin-top:4px !important}

@media (min-width:769px){
  .mh2-sp-only{display:none !important}
  .mh2-pc-only{display:block !important}
  .mh2-ft-consult-card{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:center;text-align:left;padding:20px 24px}
  .mh2-ft-note{grid-column:1 / -1}
  .mh2-ft-tel{font-size:30px}
  .mh2-ft-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .mh2-ft-sec{border-bottom:0}
  .mh2-ft-sec > summary{pointer-events:none;min-height:40px;border-bottom:2px solid #d9e2ec;margin-bottom:6px}
  .mh2-ft-sec > summary::after{display:none}
  .mh2-ft-sec li a{min-height:32px;font-size:15px}
  .mh2-ft-office-in{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:32px}
  .mh2-ft-legal{padding-bottom:16px}
}
@media (min-width:769px) and (max-width:1439px){
  .mh2-ft-legal{padding-bottom:88px}
}
@media (min-width:769px) and (max-width:1024px){
  .mh2-ft-sec li a{min-height:44px}
  .mh2-ft-sec > summary{min-height:44px}
}

/* ---------- サイドバー（PC のみ表示） ---------- */
.mh2-side-consult{display:block;margin:0 0 16px;padding:16px 14px;border:2px solid #0d3b66;border-radius:8px;background:#fff;text-align:center}
.mh2-side-consult-ttl{font-size:16px;font-weight:800;color:#0d3b66}
.mh2-side-tel{display:inline-flex;align-items:center;min-height:44px;margin-top:2px;font-size:24px;font-weight:800;color:#c2560b !important;letter-spacing:.02em}
.mh2-side-hours{font-size:12px;color:#3e4c59;margin-bottom:8px !important}
.mh2-side-consult .mh2-btn{display:flex;width:100%;margin-top:8px;font-size:15px}

/* ---------- PC 右側の縦3ボタン（.ufb-pc）：左の無料相談カードが追従バーの下へ隠れてから出す（2026-11-10 板垣さんの依頼・切替は design.js の 5） ---------- */
.ufb-pc{transition:opacity .25s ease,visibility .25s ease}
body:has(.mh2-side-consult) .ufb-pc:not(.mh2-ufbpc-on){opacity:0;visibility:hidden;pointer-events:none}
