@charset "utf8";

/*---------------------------
共通フッター
---------------------------*/
footer {
  width: 100%;
  background-color: #3B3B3B;  
  color: #ffffff;
}

/*---------------------------
ロゴ
---------------------------*/
.footer-logo {
  width: 60%;
  margin: auto;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .footer-logo {
    width: 60%;
    margin: auto;
  }
}

/*---------------------------
アドレス
---------------------------*/
.footer-address {
  width: 90%;
  margin: calc(50vw / 19.2) auto 0;
  text-align: center;
  line-height: 1.8;
  letter-spacing: 0.1em;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .footer-address {
    margin: calc(15vw / 3.6) auto 0px;
    text-align: center;
    border-bottom: 0px solid #D4D4D4;
  }
}

.footer-company-emphasis {
  font-size: calc(28vw / 19.2);
  font-weight: normal;
}
@media screen and (max-width: 767px) {
  .footer-company-emphasis {
    font-size: calc(12vw / 3.6);
  }
}

.footer-address-emphasis {
  display: block;
  width: 100%;
  text-align: left;
  font-size: calc(14vw / 19.2);
  color: #ffffff;
  line-height: 1.4;
  /* background-color: #CD0000; */
  border-radius: 5px;
}
@media screen and (max-width: 767px) {
  .footer-address-emphasis {
    display: inline-block;
    width: 70%;
    margin-bottom: calc(20vw / 3.6);
    font-size: calc(10vw / 3.6);
  }
}

/*---------------------------
メニュー
---------------------------*/
.footer-menu {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  width: 95%;
  height: auto;
  margin: auto;
  padding: calc(50vw / 19.2) 0px;
  font-size: calc(18vw / 19.2);
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .footer-menu {
    flex-direction: column;
    width: 100%;
    font-size: calc(16vw / 3.6);
    transition: right 0.3s ease;
    overflow-y: auto;
  }
}

.menu--sp {
  flex-wrap: nowrap;
}
@media screen and (max-width: 767px) {
  .menu--sp {
    flex-direction: row;
    flex-wrap: wrap;
  }
}

.footer-menu__unit--no-border {
  flex: 1;
  padding: calc(10vw / 19.2);
  border: 0px solid #D4D4D4;
}
@media screen and (max-width: 767px) {
  .footer-menu__unit--no-border {
    padding: 0;
  }  
}

.footer-menu__unit {
  flex: 1;
  padding: calc(10vw / 19.2);
  border-right: 1px solid #D4D4D4;
}
@media screen and (max-width: 767px) {
  .footer-menu__unit {
    padding: 0;
    border-right: 0px solid #D4D4D4;
  }  
}

.unit--logo {
  width: 20%;
}
@media screen and (max-width: 767px) {
  .unit--logo {
    width: 45%;
  }
}

.unit--others {
  display: flex;
  flex-direction: row;
  width: 80%;
}
@media screen and (max-width: 767px) {
  .unit--others {
    flex-direction: column;
    width: 55%;
  }
}

.footer-menu__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 767px) {
  .footer-menu__list {
    display: block;
    width: 90%;
    margin: 0 auto;
  }
}

.footer-menu__item {
  text-wrap: nowrap;
  overflow: hidden;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .footer-menu__item {
    border-bottom: 0px solid #D4D4D4;
  }
}

.footer-menu__label {
  display: inline-block;
  width: 100%;
  padding: 10px;
  text-decoration: none;
  font-size: calc(24vw / 19.2);
  font-weight: bold;
  color: #ffffff;
  letter-spacing: 0.1em;
  transition: background-color 0.1s ease;
}
@media screen and (max-width: 767px) {
  .footer-menu__label {
    position: relative;
    width: 96.8%;
    margin: 0 auto;
    padding: calc(10vw / 3.6) 0 calc(10vw / 3.6) calc(10vw / 3.6);
    font-size: calc(16vw / 3.6);
  }
}

.footer-menu__label:hover {
  background: #CD0000;
  color: #ffffff;
}

/*---------------------------
サブメニュー
---------------------------*/
.footer-submenu {
  max-height: 0;
  list-style: none;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.footer-submenu.hidden {
  display: none;
  max-height: 0;
}

.footer-submenu:not(.hidden) {
  display: flex;
  max-height: 1000px;
}
@media screen and (max-width: 767px) {
  .footer-submenu:not(.hidden) {
    display: block;
    /* margin-left: calc(20vw / 3.6); */
  }
}

.footer-submenu__list {
  display: block;
  width: 94%;
  margin: 0 0 0 auto;
  padding: 0;
  list-style: none;
}

.footer-submenu__item {
  text-wrap: nowrap;
  border: 0px solid;
}

.footer-submenu__label {
  display: inline-block;
  min-width: calc(180vw / 19.2);
  width: 100%;
  padding: 10px;
  text-decoration: none;
  font-weight: normal;
  color: #ffffff;
  letter-spacing: 0.1em;
  transition: background-color 0.1s ease;
}
@media screen and (max-width: 767px) {
  .footer-submenu__label {
    width: 96%;
    margin: 0 auto;
    /* padding: calc(10vw / 3.6) 0 calc(10vw / 3.6) calc(10vw / 3.6); */
    padding: calc(2vw / 3.6) 0 calc(2vw / 3.6) calc(0vw / 3.6);
    font-size: calc(12vw / 3.6);
  }
}

.footer-submenu__label:hover {
  background: #CD0000;
  color: #ffffff;
}

/*---------------------------
「＋」と「−」
---------------------------*/
.footer-submenu-toggle {
  display: none;
}
@media screen and (max-width: 767px) {
  .footer-submenu-toggle {
    display: block;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    font-size: 18px;
    font-weight: bold;
  }
}

/*---------------------------
コピーライト
---------------------------*/
.copyright {
  padding: calc(10vw / 19.2);
  text-align: center;
  font-size: calc(28vw / 19.2);
  background-color: #CD0000;
  color: #ffffff;
}
@media screen and (max-width: 767px) {
  .copyright {
    padding: calc(10vw / 3.6);
    font-size: calc(14vw / 3.6);
  }  
}