@charset "UTF-8";
/* Original bone.css owns the appearance. Only eight-column sizing and access helpers live here. */
.inner { max-width: 100%; }
#navigation[hidden], .site-submenu[hidden] { display: none !important; }
#navigation { height: auto; }
#navigation ul.menu > li { border: 0; }
#navigation ul.menu > li > button {
  display: block; width: 100%; height: 60px; padding: 0; border: 0;
  background: transparent; color: #fff; font: inherit; font-weight: 900;
  line-height: 60px; text-align: center; cursor: pointer;
}
#navigation ul.menu > li > button span { display: none; }
#navigation ul.menu > li > a + button {
  position: absolute; right: 0; top: 0; width: 32px;
}
#navigation ul.menu > li > a + button span { display: inline; }
#navigation ul.menu > li > a:has(+ button) { padding-right: 32px; box-sizing: border-box; }
#navigation ul.menu li ul.nest1 { box-sizing: border-box; }
#navigation ul.menu li ul.nest1 li { float: none; }
#navigation ul.menu li ul.nest1 a { white-space: normal; }
.site-menu-toggle { display: block; width: 40px; height: 40px; margin: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
#header .login_status button.logout { padding: 0; border: 0; font-family: inherit; }
.site-menu a:focus-visible, .site-menu button:focus-visible, .site-menu-toggle:focus-visible, #header .login_status a:focus-visible, #header .login_status button:focus-visible { outline: 2px solid #666; outline-offset: -2px; }
#footer ul.menu li a { border-right: 0; }
#footer .site-group-label { display: block; color: #fff; font-weight: 900; height: 30px; text-align: center; }
#footer ul.menu li .nest1 li a { height: auto; min-height: 15px; text-indent: 0; padding: 0 8px; box-sizing: border-box; overflow-wrap: anywhere; }
@media (min-width: 1200px) {
  #navigation { height: 60px; }
  #navigation ul.site-menu--primary > li, #footer ul.site-menu--footer > li { width: 12.5%; }
  #navigation ul.menu li ul.nest1 { width: 300px; max-width: calc(100vw - 24px); }
  #navigation ul.menu > li:nth-child(n+6) > ul.nest1 { right: 0; }
}
@media (min-width: 1200px) and (hover: hover) and (pointer: fine) {
  #navigation ul.site-menu--primary > li > a:has(+ button) { padding-right: 0; }
  #navigation ul.site-menu--primary > li > a + button { opacity: 0; }
  #navigation ul.site-menu--primary > li > a + button:focus-visible { opacity: 1; }
}
@media (max-width: 1199px) {
  #header { height: 125px; }
  #header h1 { width: 100%; font-size: 12px; }
  #header .logo { width: 200px; }
  #header .address, #header .contacts li.pc { display: none !important; }
  #header .contacts { position: static; width: auto; margin-top: -10px; }
  #header .contacts li.sp { display: block !important; width: 40px; }
  #header .login_status { position: static; float: none; width: 100%; }
  #navigation { display: block; }
  #navigation ul.menu li { float: none; width: 100%; }
  #navigation ul.menu li ul.nest1 { position: static; width: 100%; }
}
@media (min-width: 640px) and (max-width: 1199px) {
  #footer ul.site-menu--footer > li { width: 25%; }
  #footer ul.site-menu--footer > li:nth-child(4n+1) { clear: left; }
}
@media (min-width: 640px) {
  #footer ul.site-menu--footer .nest1 li a {
    white-space: nowrap;
    padding-right: 4px;
    padding-left: 4px;
  }
}
@media print {
  #navigation[hidden], .site-submenu[hidden] { display: block !important; }
}

/* Keep the existing footer typography and separators; wrap added links on small screens. */
#footer ul.footer_links { clear: both; display: flex; flex-wrap: wrap; row-gap: 6px; align-items: baseline; }
#footer ul.footer_links li { max-width: 100%; }
#footer ul.footer_links a:focus-visible, .toybox-banner a:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

/* Supplied Wakaba PNG uses the existing responsive banner styles. */
#sub .wakaba-banner a:focus-visible { outline: 3px solid #14643f; outline-offset: 3px; }
