
/* Shared header appearance and mobile contact bar for all templates. */
body[data-common-header] header{background:#fff;border:0;color:#061f2b}body[data-common-header] header .logo-img{filter:none;mix-blend-mode:multiply}body[data-common-header] header nav a,body[data-common-header] header .nav-dd-toggle,body[data-common-header] .tel-number{color:#061f2b;font-weight:600}body[data-common-header] .btn-inquiry-header{background:#fff32b;color:#061f2b;border-color:#fff32b;border-radius:100px}body[data-common-header] .btn-line-header{background:#06c755;color:#fff;border-radius:100px}body[data-common-header] .btn-contact-header{background:#061f2b;color:#fff;border-radius:100px}body[data-common-header] .hamburger-btn span{background:#061f2b}
.mobile-cta-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:1000}.mobile-cta-bar>a{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.mobile-cta-bar svg{display:block}.mobile-cta-bar img{display:block}.mobile-cta-bar span{font-size:10px;font-weight:800}
@media(max-width:768px){body:not(:has(#wx-deck)){padding-bottom:calc(76px + env(safe-area-inset-bottom))!important}
 .mobile-cta-bar{display:grid;grid-template-columns:.82fr 1.18fr 1.18fr 1fr;gap:6px;box-sizing:border-box;padding:9px 10px calc(9px + env(safe-area-inset-bottom));background:#f8ffff;border:1px solid #ffffffc9;border-bottom:0;border-radius:22px 22px 0 0;box-shadow:0 -5px 24px #061f2b12;isolation:isolate}
 .mobile-cta-bar>a{min-width:0;min-height:56px;box-sizing:border-box;padding:8px 3px;gap:5px;border:0;border-radius:15px;font-size:10px;font-weight:800;line-height:1.2;letter-spacing:0;text-decoration:none;transition:transform .18s,filter .18s;-webkit-tap-highlight-color:transparent}
 .mobile-cta-bar .mobile-cta-tel{background:#e6f7f7;color:#061f2b}
 .mobile-cta-bar .mobile-cta-inquiry{background:#fff32b;color:#061f2b}
 .mobile-cta-bar .mobile-cta-line{background:#06c755;color:#fff}
 .mobile-cta-bar .mobile-cta-contact{background:#061f2b;color:#fff}
 .mobile-cta-bar .icon{width:19px;height:19px;fill:currentColor;flex-shrink:0}
 .mobile-cta-bar .mobile-cta-lineimg{width:20px;height:20px;object-fit:contain}
 .mobile-cta-bar>a:active{transform:scale(.95);filter:brightness(.96)}
 .mobile-cta-bar>a:focus-visible{outline:2px solid #061f2b;outline-offset:2px}

}
/* Menus stay above the shared contact dock. */
.mobile-cta-bar{z-index:90}

/* The header tel-block is hidden under 1340px, leaving the phone number visible
   in only one place on mobile. Surface the real NAP string in the menu too. */
.mobile-menu-btns .mobile-menu-tel{display:flex;flex-direction:column;gap:2px;align-items:center;
  margin:0 0 10px;padding:10px 12px;min-height:48px;justify-content:center;box-sizing:border-box;
  width:100%;border-radius:8px;background:#f2fbfa;color:#061f2b;text-decoration:none;text-align:center}
.mobile-menu-btns .mobile-menu-tel strong{font-size:18px;font-weight:800;letter-spacing:.01em;white-space:nowrap}
.mobile-menu-btns .mobile-menu-tel span{font-size:11px;color:#49616a;white-space:nowrap}

/* 🔴 Mobile menu: .mobile-nav (full height) and .mobile-menu-btns
   (position:absolute; bottom:0) overlapped, so the last nav item ("会社概要")
   sat underneath the button block and was unreachable. Stack them in one
   scrollable column instead, so every item is always reachable. */
.mobile-menu{align-items:stretch}
.mobile-menu-panel-fix{display:none}
.mobile-menu .mobile-nav{
  height:auto;
  flex:1 1 auto;
  min-height:0;
  padding-bottom:12px;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.mobile-menu .mobile-menu-btns{
  position:static;
  width:260px;
  margin-left:auto;
  flex:0 0 auto;
  padding-bottom:max(24px, env(safe-area-inset-bottom));
}
/* wrap nav + buttons so they share one 260px column and scroll together */
.mobile-menu{flex-direction:row}
.mobile-menu>.mobile-nav{order:1}
.mobile-menu>.mobile-menu-btns{order:2}
@supports(display:grid){
  .mobile-menu.open{
    display:grid;
    grid-template-columns:1fr 260px;
    grid-template-rows:1fr auto;
    align-items:stretch;
  }
  .mobile-menu.open>.mobile-menu-close{grid-column:2;grid-row:1;align-self:start;justify-self:end}
  .mobile-menu.open>.mobile-nav{grid-column:2;grid-row:1;width:100%;padding-top:60px}
  .mobile-menu.open>.mobile-menu-btns{grid-column:2;grid-row:2;width:100%;margin-left:0}
}

/* Short viewports (iOS with the Safari toolbar visible, ~663px) leave the nav
   ~49px short of its 7 items, so "会社概要" is clipped with no scroll affordance.
   Compress the row rhythm enough to fit all seven without scrolling. */
@media (max-height: 720px) {
  .mobile-menu.open > .mobile-nav{padding-top:34px;padding-bottom:6px;gap:0}
  .mobile-menu.open > .mobile-nav a{min-height:0;padding-top:7px;padding-bottom:7px;font-size:14px}
  .mobile-menu.open > .mobile-menu-btns{padding-top:10px;padding-bottom:max(12px,env(safe-area-inset-bottom));gap:6px}
  .mobile-menu-btns .mobile-menu-tel{margin-bottom:6px;padding:6px 12px;min-height:40px}
  .mobile-menu-btns .mobile-menu-tel strong{font-size:16px}
  .mobile-menu-btns .btn-line-free,
  .mobile-menu-btns .btn-inquiry-hero,
  .mobile-menu-btns .btn-contact-hero{padding:8px 14px;font-size:12px}
  .mobile-menu-close{top:10px;right:12px}
}
