/* ---------------------------------------------------------------------------
//  footer01
--------------------------------------------------------------------------- */
.footer01 {
  background: #004EA2;
  border-bottom: 1px solid #fff;
  position: relative;
}

.footer01 .wrap .cards {
  display: flex;
}

.footer01 .wrap .cards .card {
  width: 50%;
  padding: 5.5rem 0 7rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.footer01 .wrap .cards .card + .card {
  border-left: 1px solid #fff;
}

.footer01 .wrap .cards .card .ttlC {
  font-size: 3.2rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.footer01 .wrap .cards .card .p01 {
  font-size: 1.8rem;
  line-height: 1.8;
  color: #fff;
  margin-bottom: 2.5rem;
}

@media screen and (max-width:768px) {
  .footer01 .wrap .cards {
    display: block;
  }

  .footer01 .wrap .cards .card {
    width: 100%;
    padding: 3rem 2rem 4rem;
  }

  .footer01 .wrap .cards .card + .card {
    border-left: none;
    border-top: 1px solid #fff;
  }

  .footer01 .wrap .cards .card .ttlC {
    margin-bottom: 1.6rem;
  }

  .footer01 .wrap .cards .card .p01 {
    font-size: 1.6rem;
    margin-bottom: 1.6rem;
  }
}

/* ---------------------------------------------------------------------------
//  footer02
--------------------------------------------------------------------------- */
.footer02 {
  background: #004EA2;
  position: relative;
}

.footer02 .wrap {
  padding: 10rem 0 6rem;
}

.footer02 .wrap .raw {
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem 10rem;
  color: #fff;
}

.footer02 .wrap .raw .head {
  width: 100%;
}

.footer02 .wrap .raw .head .logo {
  width: 37.3rem;
  display: block;
}

.footer02 .wrap .raw .head .logo:hover {
  opacity: .7;
}

.footer02 .wrap .raw .left {
  width: calc((100% - 10rem) / 2);
}

.footer02 .wrap .raw .left .dl + .dl {
  margin-top: 1.6rem;
}

.footer02 .wrap .raw .left .dl .dt {
  font-weight: 500;
}

.footer02 .wrap .raw .left .dl .dd {
  line-height: 2;
  margin-top: 1rem;
}

.footer02 .wrap .raw .right {
  width: calc((100% - 10rem) / 2);
}

.footer02 .wrap .raw .right .lists {
  display: flex;
  gap: 5rem;
  line-height: 2;
}

.footer02 .wrap .raw .right .lists .list .item {
  display: block;
}

.footer02 .wrap .raw .right .lists .list .item:hover {
  opacity: .7;
}

.footer02 .wrap .raw .right .lists .list .item + item {
  margin-top: 1.6rem;
}

@media screen and (max-width:768px) {
  .footer02 .wrap {
    padding: 5rem 3rem 4rem;
  }

  .footer02 .wrap .raw {
    display: block;
  }

  .footer02 .wrap .raw .head .logo {
    width: 100%;
  }

  .footer02 .wrap .raw .left {
    width: 100%;
    margin-top: 2rem;
  }

  .footer02 .wrap .raw .right {
    display: none;
  }
}

/* ---------------------------------------------------------------------------
//  footer03
--------------------------------------------------------------------------- */
.footer03 {
  position: relative;
}

.footer03 .wrap {
  padding: 1.6rem 0 2.8rem;
}

.footer03 .wrap .raw {
  display: flex;
  justify-content: space-between;
}

.footer03 .wrap .raw .left .list {
  display: flex;
  gap: 0 3.3rem;
  color: #1F4093;
}

.footer03 .wrap .raw .left .list .item {
  position: relative;
}

.footer03 .wrap .raw .left .list .item + .item::before {
  content: "";
  width: 1px;
  height: 100%;
  background: #1F4093;
  position: absolute;
  left: -1.6rem;
  top: 0;
}

.footer03 .wrap .raw .right .logo {
  width: 5rem;
  display: block;
}

@media screen and (max-width:768px) {
  .footer03 .wrap {
    padding: 1.6rem 3rem 2.6rem;
  }

  .footer03 .wrap .raw {
    align-items: center;
  }

  .footer03 .wrap .raw .left .list {
    flex-direction: column;
    line-height: 1.8;
    gap: 0;
    font-size: 1.2rem;
  }

  .footer03 .wrap .raw .left .list .item {
    position: relative;
  }

  .footer03 .wrap .raw .left .list .item + .item::before {
    display: none;
  }

  .footer03 .wrap .raw .right .logo {
    width: 4rem;
  }
}

/* ---------------------------------------------------------------------------
//  fix_menu
--------------------------------------------------------------------------- */
.fix_menu {
  position: fixed;
  right: 0;
  height: 100vh;
  display: flex;
  align-items: center;
  z-index: 100;
  top: 0;
  display: none;
}

.fix_menu a {
  display: none;
}

.fix_menu a:hover {
  opacity: .7;
}

@media screen and (min-width:768.1px) {

  body:has(.entry01) .fix_menu,
  body:has(.entry_thanks01) .fix_menu {
    opacity: 0;
    pointer-events: all;
  }

  .fix_menu .entry {
    display: flex;
    border-radius: .8rem 0 0 .8rem;
    background: linear-gradient(180deg, #1AA5F0 0%, #99DBFF 100%);
    box-shadow: 0 .4rem .4rem 0 rgba(4, 55, 111, 0.25);
    width: 6.3rem;
    height: 19.2rem;
    display: flex;
    justify-content: center;
    align-items: center;
    writing-mode: vertical-rl;
    text-orientation: mixed;
  }

  .fix_menu .entry span {
    font-weight: 700;
    color: #fff;
    border-left: solid 1px;
    border-right: solid 1px;
    padding: .3rem;
  }
}

@media screen and (max-width:768px) {
  .fix_menu {
    padding: 0 1.5rem 1.5rem;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    top: auto;
    bottom: 0;
    width: 100%;
    display: none;
  }

  .fix_menu a {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 5rem;
    border-radius: .6rem;
    color: #fff;
    box-shadow: 0 .4rem .8rem 0 rgba(4, 55, 111, 0.40);
    padding: 1.5rem;
    background: #1A73F0;
    gap: .4rem;
    font-size: 1.4rem;
    font-weight: 700;
    white-space: nowrap;
  }

  .fix_menu a.entry {
    background: linear-gradient(67deg, #99DBFF 8.14%, #1AA5F0 57.59%);
  }

  .fix_menu a::before {
    background-image: url();
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: '';
    position: relative;
    top: .1rem;
  }

  .fix_menu a.tel::before {
    background-image: url(../img/common/icon_tel_w.svg);
    width: 1.2rem;
    height: 1.6rem;
    top: .15rem;
  }

  .fix_menu a.mail::before {
    background-image: url(../img/common/icon_mail_w.svg);
    width: 1.9rem;
    height: 1.4rem;
  }

  .fix_menu a.entry::before {
    background-image: url(../img/common/arrow02_w.svg);
    width: 1.7rem;
    height: 1.7rem;
  }

  .fix_menu a:hover {
    opacity: .7;
  }
}

/* ---------------------------------------------------------------------------
//  go_top
--------------------------------------------------------------------------- */
.go_top {
  bottom: 2rem;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  right: 2rem;
  transition: .3s;
  width: 10rem;
  height: 10rem;
  z-index: 99;
  background: #fff;
  border-radius: 100%;
  font-weight: 400;
  font-family: Figtree;
  line-height: 1.375;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #04376F;
  transition: .3s;
}

.go_top:hover {
  opacity: .7 !important;
}

.go_top.is_show {
  opacity: 1;
  pointer-events: auto;
}

@media screen and (max-width:768px) {
  .go_top {
    bottom: 7.5rem;
    right: 1rem;
    width: 5rem;
    height: 5rem;
    font-size: 1rem;
  }
}