@charset "UTF-8";


footer {
  position: relative;
  z-index: 1;
}
footer .containers {
  width: 90%;
  max-width: 1400px;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  padding: 150px 0 80px;
  position: relative;
}
footer .icon_back {
  width: 8px;
  height: 8px;
  background-image: url('../img/icon_back_top.svg');
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  margin: 0 auto;
}
footer .back {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background-color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: absolute;
  bottom: 80px;
  left: 0;
}
footer .text_back {
  font-size: 12px;
  margin: 20px 0 0 0;
}
footer .logo_container {
  width: 330px;
  margin: 12px auto 0 0;
}
footer .logo {
  width: 200px;
}
footer .logo img {
  width: 100%;
}
footer .official_name {
  font-size: 18px;
  margin: 36px 0 0 0;
}
footer .address {
  font-size: 16px;
  line-height: 22px;
  margin: 16px 0 0 0;
}
footer .map {
  font-size: 17px;
  width: fit-content;
  margin: 24px 0 0 0;
  background-image: url(../img/icon_external_link.svg);
  background-repeat: no-repeat;
  background-size: 17px;
  padding: 0 22px 0 0;
  background-position: right 1.5px;
}
footer .main_info {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
}
footer .each_menu {
  margin: 40px 0 0 0;
}
footer .each_menu:first-child {
  margin: 0;
}
footer .each_menu a {
  font-size: 22px;
  display: flex;
  align-items: flex-end;
}
footer .each_menu:last-child a {
  background-image: url(../img/icon_external_link.svg);
  background-repeat: no-repeat;
  background-size: 19px;
  padding: 0 28px 0 0;
  background-position: right 4px;
}
footer .categories_mag {
  border-left: solid 1px #ddd;
  margin: 16px 0 0 0;
  padding: 0 0 0 16px;
}
footer .each_category_mag {
  margin: 16px 0 0 0;
}
footer .each_category_mag:first-child {
  margin: 0;
}
footer .each_category_mag a {
  font-size: 15px;
}
footer .menu_container {
  margin: 0 auto 0 0;
}
footer .mag_container {
  margin: 0 auto 0 0;
}
footer .submenu_container {
  display: flex;
  justify-content: space-between;
  border-top: solid 1px #2f2f2f;
  padding: 32px 0 0 0;
}
footer .submenu {
  display: flex;
}
footer .each_submenu {
  font-size: 13px;
  margin: 0 24px 0 0;
}
footer .submenu li:nth-of-type(2) a {
  background-image: url(../img/icon_external_link.svg);
  background-repeat: no-repeat;
  background-size: 14px;
  padding: 0 20px 0 0;
  background-position: right 2px;
}
footer .copyright {
  font-size: 13px;
}
footer .copyright_sp {
  display: none;
}
footer .info_containers {
  display: grid;
  gap: 56px;
  width: calc(96% - 330px);
}
footer .sns_container {
  display: flex;
  align-items: center;
  gap: 10px;
}
footer .wrap_sns_icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
footer .external_link {
  width: 16px;
  height: 16px;
  background-image: url('../img/icon_external_link.svg');
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  margin: 4px 0 0 6px;
}
footer .break_on {
  display: none;
}
footer .banner {
  border-radius: 20px;
  overflow: hidden;
}



footer .logo {
  width: 180px;
}
footer .break_on {
  display: block;
}
footer .logo_container {
  width: 180px;
}
footer .info_containers {
  width: calc(95% - 180px);
}
footer .back {
  width: 180px;
  height: 180px;
}



  footer .break_on {
    display: none;
  }
  footer .logo_container {
    width: 100%;
    margin: 0;
  }
  footer .containers {
    width: 86%;
    padding: 160px 0 64px;
    flex-direction: column;
    gap: 40px;
  }
  footer .back {
    right: 0;
    left: inherit;
    width: 110px;
    height: 110px;
    bottom: 140px;
    font-size: 10px;
  }
  footer .text_back {
    margin: 4px 0 0 0;
    scale: .8;
  }
  footer .info_containers {
    width: 100%;
  }



  footer {
    margin-left: 0;
  }
  footer .main_info {
    flex-wrap: wrap;
    margin: 0 0 0 4px;
  }
  footer .mag_container {
    width: calc((100% - 56px)/2);
  }
  footer .sns_container {
    width: 100%;
    display: flex;
    justify-content: flex-end;
    margin: 24px 0 0 0;
  }
  footer .each_menu {
    margin: 32px 0 0 0;
  }
  footer .each_menu a {
    font-size: 20px;
  }
  footer .back {
    display: none;
  }
  footer .banner {
    border-radius: 10px;
  }
  footer .each_menu:last-child a {
    background-size: 17px;
  }



  footer .containers {
    width: calc(100% - 56px);
    padding: 100px 0 60px;
  }
  footer .info_containers {
    gap: 32px;
  }
  footer .logo {
    width: 130px;
  }
  footer .official_name {
    font-size: 16px;
    margin: 24px 0 0 0;
  }
  footer .menu_container {
    width: fit-content;
  }
  footer .mag_container {
    width: fit-content;
  }
  footer .each_menu {
    margin: 24px 0 0 0;
  }
  footer .each_menu a {
    font-size: 16px;
  }
  footer .map {
    font-size: 15px;
    background-size: 15px;
    background-position: right 1.5px;
  }
  footer .each_category_mag a {
    font-size: 12px;
  }
  footer .copyright {
    display: none;
  }
  footer .copyright_sp {
    display: block;
    font-size: 10px;
  }
  footer .address {
    font-size: 12px;
    line-height: 20px;
    margin: 8px 0 0 0;
  }
  footer .wrap_sns_icon {
    width: 40px;
    height: 40px;
  }
  footer .each_category_mag {
    margin: 10px 0 0 0;
  }
  footer .sns_container {
    margin: 32px 0 0 0;
  }
  footer .sns_container > span {
    font-size: 12px;
  }
  footer .each_submenu {
    font-size: 12px;
  }
  footer .back {
    display: flex;
    width: 80px;
    height: 80px;
    bottom: 50px;
  }
  footer .each_menu:last-child a {
    background-size: 15px;
    padding: 0 24px 0 0;
    background-position: right 2px;
  }
  footer .submenu li:nth-of-type(2) a {
    background-size: 14px;
    background-position: right 1px;
  }