@charset "UTF-8";
#footer {
  background-color: #f2f2f2;
}

#footer-container,
#footer-container02 {
  width: 100%;
  max-width: 1088px;
  margin-left: auto;
  margin-right: auto;
}

#footer .sitemap-item .youtube {
  display: flex;
  color: #f00;
  align-items: center;
  font-family: 'Barlow', sans-serif;
  font-weight: 700;
}
#footer .sitemap-item .megamenu-sttl {
  font-weight: bold;
}

#sitemap_sub ul {
  display: flex;
}
#sitemap_sub ul li + li::before {
  content: "｜";
  padding-left: 0.5em;
  padding-right: 0.5em;
}
#sitemap_sub a:link,
#sitemap_sub a:visited {
  color: #333;
}
#sitemap_sub a:hover,
#sitemap_sub a:active {
  color: #666;
}

#footer-container02 {
  display: flex;
  position: relative;
}
#footer-container02::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  height: 0;
  border-top: #ccc 1px solid;
  width: calc(100% - 2rem);
  left: 1rem;
}

#address a {
  color: #333;
}

#copyright {
  font-family: 'Barlow', sans-serif;
}

#pagetop {
  position: fixed;
  z-index: 10;
  display: flex;
  opacity: 1;
  transition: 0.3s opacity;
}
#pagetop a {
  height: 100%;
}
#pagetop .pagetop {
  background-color: #187fc4;
  font-family: 'Barlow', sans-serif;
  text-align: center;
  display: block;
  position: relative;
  color: #fff;
  text-decoration: none;
}
#pagetop .pagetop:hover, #pagetop .pagetop:active {
  background-color: rgba(24, 127, 196, 0.8);
  transition: .3s background-color;
}
#pagetop .pagetop::before {
  content: "";
  display: block;
  position: absolute;
  left: 50%;
  border-left: #fff 1px solid;
  border-top: #fff 1px solid;
  transform: translateX(-50%) rotate(45deg);
}
#pagetop .consult_banner {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  background-color: #093;
  text-decoration: none;
  text-align: center;
  font-weight: bold;
}
#pagetop .consult_banner:hover, #pagetop .consult_banner:active {
  transition: .3s background-color;
  background-color: rgba(0, 153, 51, 0.8);
}
#pagetop .consult_banner::before {
  content: "";
  display: block;
  background: url("../images/consult_banner_img.png") center center/contain no-repeat;
}
#content.fin #pagetop {
  opacity: 0;
}

@media print {
  #pagetop {
    display: none !important;
  }
}
@media screen and (min-width: 768px), print {
  #footer {
    min-width: 768px;
  }
  #footer #footer-container {
    padding: 60px 1rem 26px;
  }

  .sitemap-item {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .sitemap-item > li > a, .sitemap-item > li > .navtoggle {
    font-size: 18px;
    line-height: 26px;
    color: #004098;
    font-weight: bold;
  }
  .sitemap-item > li + li {
    margin-top: 32px;
  }
  .sitemap-item .megamenu-sttl {
    margin-top: 8px;
  }
  .sitemap-item .megamenu-ul {
    margin-top: 4px;
  }
  .sitemap-item .megamenu-ul > li {
    padding-top: 8px;
    font-size: 14px;
    line-height: 22px;
  }
  .sitemap-item .megamenu-ul a:link,
  .sitemap-item .megamenu-ul a:visited {
    color: #333;
  }
  .sitemap-item .megamenu-ul a:hover,
  .sitemap-item .megamenu-ul a:active {
    color: #666;
  }
  .sitemap-item .external::after {
    content: "";
    display: inline-block;
    width: 20px;
    height: 20px;
    background: url("../images/sitmap_external.png") left -14px bottom -14px/48px 96px no-repeat;
    margin-left: 6px;
    position: relative;
    top: 2px;
  }
  .sitemap-item .youtube .icon {
    margin-right: 0.5rem;
    width: 24px;
  }

  #sitemap_prod .megamenu-wrapper_multicolumn {
    display: flex;
    justify-content: space-between;
  }
  #sitemap_prod .megamenu-wrapper_multicolumn div {
    flex-grow: 1;
  }
  #sitemap_prod .megamenu-wrapper_multicolumn div:not(:nth-child(2)) {
    flex-shrink: 0;
  }
  #sitemap_prod .megamenu-wrapper_multicolumn div + div {
    margin-left: 3rem;
  }
  #sitemap_prod .megamenu-wrapper_multicolumn div:nth-child(2) {
    flex-grow: 2;
  }
  #sitemap_prod .megamenu-wrapper_multicolumn div:last-child {
    flex-grow: 0;
  }
  #sitemap_prod .megamenu-ul_flex {
    display: flex;
  }
  #sitemap_prod .megamenu-ul_flex .megamenu-ul {
    flex-grow: 1;
  }
  #sitemap_prod .megamenu-ul_flex .megamenu-ul + .megamenu-ul {
    margin-left: 3rem;
  }

  #sitemap_other {
    display: flex;
    justify-content: space-between;
    margin-top: 48px;
  }

  #sitemap_sub {
    margin-top: 54px;
  }
  #sitemap_sub ul {
    justify-content: flex-end;
    font-size: 12px;
    line-height: 24px;
  }

  #footer-container02 {
    padding: 2rem 1rem calc(2rem - 6px);
    align-items: flex-end;
    justify-content: space-between;
  }

  #address {
    padding-right: 2rem;
  }
  #address .footer_logo {
    width: 442px;
    margin-left: -12px;
  }
  #address address {
    font-size: 14px;
    line-height: 26px;
    margin-top: 2px;
  }

  #copyright {
    font-size: 12px;
    line-height: 26px;
    flex-shrink: 0;
  }

  #pagetop {
    right: 12px;
    bottom: 12px;
  }
  #pagetop .pagetop {
    width: 80px;
    height: 80px;
    font-size: 11px;
    padding-top: 46px;
  }
  #pagetop .pagetop::before {
    width: 20px;
    height: 20px;
    top: 26px;
  }
  #pagetop .consult_banner {
    font-size: 18px;
    line-height: 30px;
    padding: 0 2rem;
  }
  #pagetop .consult_banner::before {
    width: 40px;
    height: 30px;
    margin-right: 16px;
  }
  #pagetop li:not(:first-child) {
    margin-left: 12px;
  }
}
@media screen and (max-width: 767px) {
  #footer .megamenu .megamenu-wrapper {
    background-color: #e6e6e6;
  }

  .sitemap-item .youtube .icon {
    margin-right: 0.5rem;
    width: 24px;
  }
  .sitemap-item .youtube .text {
    font-size: 18px;
  }

  #header_navigation .megamenu a, #header_navigation .megamenu .navtoggle, #footer .megamenu a, #footer .megamenu .navtoggle {
    line-height: 1.5em;
    padding: 1em 14px;
    font-size: 16px;
  }

  #header_navigation .megamenu a, #header_navigation .megamenu .navtoggle, #footer .megamenu a, #footer .megamenu .navtoggle {
    display: flex;
    color: #333;
    text-decoration: none;
  }
  #header_navigation .megamenu a:not(.navtoggle), #footer .megamenu a:not(.navtoggle) {
    background: url("../images/sitmap_arrow.png") right center/48px auto no-repeat;
  }
  #header_navigation .megamenu a.external, #footer .megamenu a.external {
    background: url("../images/sitmap_external.png") right 4px/48px auto no-repeat;
  }
  #header_navigation .megamenu a.youtube, #footer .megamenu a.youtube {
    background: none;
  }
  #header_navigation .megamenu .menu-dropdown-icon::before, #footer .megamenu .menu-dropdown-icon::before {
    background-image: url(../images/sitmap_toggle.png);
  }
  #header_navigation .megamenu .megamenu-sttl, #footer .megamenu .megamenu-sttl {
    padding: 0.75em 14px;
  }
  #header_navigation .megamenu .megamenu-ul li a, #footer .megamenu .megamenu-ul li a {
    font-size: 14px;
    padding: 0.75em 14px;
  }
  #header_navigation .menu > ul > li, #footer .menu > ul > li {
    display: block;
  }
  #header_navigation .menu > ul > li > div, #footer .menu > ul > li > div {
    display: none;
    z-index: 99;
    left: 0;
    position: relative;
  }
  #header_navigation .menu > ul:before, #header_navigation .menu > ul:after, #footer .menu > ul:before, #footer .menu > ul:after {
    content: "";
    display: table;
  }
  #header_navigation .menu > ul:after, #footer .menu > ul:after {
    clear: both;
  }
  #header_navigation .menu > ul > li ul.megamenu-ul:after, #footer .menu > ul > li ul.megamenu-ul:after {
    clear: both;
  }
  #header_navigation .menu .show-on-mobile, #footer .menu .show-on-mobile {
    display: block;
  }
  #header_navigation .menu-mobile, #footer .menu-mobile {
    display: block;
  }
  #header_navigation .menu-dropdown-icon, #footer .menu-dropdown-icon {
    position: relative;
  }
  #header_navigation .menu-dropdown-icon::before, #footer .menu-dropdown-icon::before {
    content: "";
    width: 48px;
    height: 48px;
    cursor: pointer;
    background: url(../images/sitmap_toggle.png) right 0px/48px auto no-repeat;
    margin-top: 4px;
    display: block;
    position: absolute;
    right: 0;
    top: 0;
  }
  #header_navigation .menu-dropdown-icon.clicked::before, #footer .menu-dropdown-icon.clicked::before {
    background-position: right -48px;
  }

  #sitemap_sub {
    padding-top: 10px;
    padding-bottom: 10px;
  }
  #sitemap_sub ul {
    justify-content: center;
    font-size: 12px;
    line-height: 20px;
  }

  #footer-container02 {
    padding: 2rem 1rem calc(2rem - 4px);
    flex-direction: column;
    align-items: center;
  }

  #address {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  #address .footer_logo {
    width: min(312px, 100%);
  }
  #address address {
    text-align: center;
    margin-top: 4px;
  }

  #copyright {
    font-size: 12px;
    line-height: 20px;
    margin-top: 12px;
  }

  #pagetop {
    right: 10px;
    bottom: 10px;
  }
  #pagetop .pagetop {
    width: 48px;
    height: 48px;
    font-size: 10px;
    padding-top: 24px;
  }
  #pagetop .pagetop::before {
    width: 12px;
    height: 12px;
    top: 16px;
  }
  #pagetop .pagetop .pagetop_txt {
    display: inline-block;
    transform: scale(0.8);
  }
  #pagetop .consult_banner {
    font-size: 14px;
    line-height: 22px;
    padding: 0 20px;
  }
  #pagetop .consult_banner::before {
    width: 24px;
    height: 18px;
    margin-right: 10px;
  }
  #pagetop li:not(:first-child) {
    margin-left: 10px;
  }
}
