/* 

フッター

*/
#footer h3 {
  font-size:var(--font-size-md);
  line-height: var(--line-height-low);
  margin-bottom: 10px;
  text-wrap: balance;
}

#footer .wrapper .link-box {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 32px;
  padding: 40px 0px;
}

#footer .wrapper .link-box a.link-item {
  padding: 1rem 1.2rem;
  height: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  background: linear-gradient(
    117deg,
    rgba(244, 244, 244, 0.8) 15.02%,
    rgba(245, 245, 245, 0.8) 47.53%,
    rgba(221, 221, 221, 0.8) 85.07%
  );
    text-decoration: none;
  color: inherit;
  transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}

#footer .wrapper .link-box a.link-item:hover {
  background: linear-gradient(
    117deg,
    rgba(235, 235, 235, 0.95) 15.02%,
    rgba(240, 240, 240, 0.95) 47.53%,
    rgba(210, 210, 210, 0.95) 85.07%
  );
}

#footer .wrapper .link-box a.link-item:hover .btn-arrow {
  transform: translateX(4px);
}

#footer .bg {
  background-color: #7d7d7d;
  border-radius: 140px 140px 0 0;
}
#footer .bg p{
  font-size: var(--font-size-xs);
  line-height: var(--line-height-default);
  margin-bottom: 10px;
}

#footer .footer-box {
  display: flex;
  gap: 5%;
  justify-content: center;
  padding: 32px 64px;
}

#footer .footer-box .logo {
  width: 210px;
  margin-bottom: 27px;
}

#footer .footer-box .menu-item-01 {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 40px;
}

#footer .footer-box .menu-item-02 {
  display: flex;
  justify-content: flex-end;
  gap: 16px;
}

/* Footer inline links hover glow */
#footer .text-item a {
  transition: color 0.2s ease, text-shadow 0.2s ease;
}

#footer .text-item a:hover {
  color: #c9c9c9;
}

#footer .copyright {
  text-align: center;
  margin-bottom: 10px;
  font-size: 12px;
}

.bg .link-box {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 32px;
  align-items: center;
  justify-content: space-between;
  padding: 40px 0px;
}
#footer .btn {
  padding: 0 1rem 0 0;
}
.logo-item {
  width: 42.5%;
}
.text-item {
  width: 52.5%;
}
@media (max-width: 1200px) {
  #footer .wrapper .link-box {
    padding: 40px 16px;
  }
}

@media (max-width: 990px) {
  #footer .wrapper .link-box {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  #footer .footer-box {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 2rem;
  }

  #footer .footer-box .menu-item-01 {
    gap: 15px;
    flex-direction: column;
  }

  #footer .footer-box .menu-item-02 {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 8px;
    font-size: var(--font-size-xs);
  }

  #footer .wrapper .link-box {
    grid-template-columns: 1fr;
  }
  #footer .wrapper .link-box p{
    font-size: var(--font-size-xs);
  }
  #footer .wrapper .link-box a.link-item {
    padding: 10px 12px;
    grid-column: auto;
    justify-content: space-between;
  }
  #footer .bg {
    border-radius: 60px 60px 0 0;
    padding: 40px 0;
  }

  #footer h3 {
    font-size: 18px;
  }

  #footer .footer-box .logo {
    width: 160px;
  }

  #footer .wrapper .link-box {
    padding: 40px 16px;
  }
  .logo-item {
    width: 100%;
  }
  .logo-item p {
    font-size: var(--font-size-xs);
  }
  .text-item {
    width: 100%;
  }
}

/* 1440:341 ≒ 0.237 → 23.7vw */
.bg {
  position: relative;
  width: 100%;
  /*min-height: clamp(
    220px,
    23.7vw,
    420px
  ); /* 基本比率の最低高さ。中身が多ければ伸びる */
  border-radius: 9999px;
  overflow: hidden; /* 角丸を効かせるために維持 */
  background: linear-gradient(
    60deg,
    #b4b4b5 5%,
    #b4b4b5 18%,
    #dbdcdc 18%,
    #dbdcdc 28%,
    #c2c3c3 28%,
    #c2c3c3 38%,
    #a3a3a4 38%,
    #a3a3a4 48%,
    #7d7d7d 48%,
    #7d7d7d 105%
  );
}
