hr{
  border: 0;

}
/**********************************************************************/
/* フッター
/**********************************************************************/
footer{
  padding-top: 4em;
}
footer .upper{
  padding: 0 4vw;
}
@media screen and (max-width: 940px){
  footer .upper .wrapper{
    flex-direction: column;
    align-items: stretch;
    gap: 1em;
  }
}

/**********************************************************************/
/* ロゴ
/**********************************************************************/
footer .info{
  padding: 0 2em;
}
@media screen and (max-width: 940px){
  footer .info .logo{
    max-width: 60vw;
    margin: auto;
  }
  footer .info .description{
    font-size: 15px;
  }
}

/**********************************************************************/
/* セパレーター
/**********************************************************************/
footer .sep{
  width: 4em;
  display: flex;
  flex: 1;
  align-self: stretch;
}
footer .sep::before{
  width: 1px;
  height: 90%;
  background-color: var(--c_border);
  top: 5%;
  left: 50%;
}

/**********************************************************************/
/* ナビゲーション
/**********************************************************************/
footer .navigation{
  gap: 4em;
  padding: 2em;
  padding-bottom: 4em;
}
footer .navigation .block .box{
  width: 16.25em;
  max-width: 18vw;
}
footer .navigation .block .box .index{
  padding: .25em 0;
  font-weight: 700;
  border-bottom: 1px dotted var(--c_border);
}
footer .navigation .block .box .links{
  gap: 1.5em;
  white-space: nowrap;
}
footer .navigation .block .box .links li{
  padding-left: 1em;
  position: relative;
  font-size: 90%;
  margin: .25em 0;
}
footer .navigation .block .box .links li::before{
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: .7em;
  width: .5em;
  height: .5em;
  border: 1px solid var(--c_primary);
  transform: rotate(45deg);
}
@media screen and (max-width: 940px){
  footer .navigation .block{
    flex: 1;
  }
  footer .navigation .block .box{
    width: 100%;
    max-width: none;
  }
  footer .navigation .block .box a{

  }
}
@media screen and (max-width: 520px){
  footer .navigation{
    padding: 0 4vw 3em 4vw;
    flex-direction: column;
    gap: 1.5em;
  }
  footer .navigation hr{
    margin: .5em;
  }
  footer .navigation .block .box .index{
    font-size: clamp(13px, 3.9vw, 16px);
  }
  footer .navigation .block .box .links{
    padding: .25em 0;
  }
  footer .navigation .block .box .links a{
    font-size: clamp(12px, 3.4vw, 15px);
  }
}

/**********************************************************************/
/* CTA
/**********************************************************************/
footer .navigation .action{
  margin-top: 1em;
}
footer .navigation .action a{
  padding-block: 1.25em;
  font-weight: 700;
  margin-top: 1em;
}
footer .navigation .action a{
  padding-block: 1.25em;
  font-weight: 700;
}
footer .navigation .action a .promote{
  bottom: -2em;
  transform: translate(-50%, -50%);
}

/**********************************************************************/
/* 最下部
/**********************************************************************/
footer .bottom{
  padding: 0 4vw;
  background-color: #fff;
}
footer .bottom .wrapper{
  padding: 1.5em 0;
}
footer .bottom .links{
  display: flex;
  gap: 3em;
}
footer .bottom .copyright{
  margin-left: auto;
}
@media screen and (max-width: 520px){
  footer .bottom .wrapper{
    flex-direction: column;
  }
  footer .bottom .links{
    gap: 1em;
    justify-content: center;
  }
  footer .bottom .copyright{
    margin-right: auto;
    margin-top: 1em;
  }
}