/* ============================================
   Footer Styles
   (Extracted from style.css for all-page use)
   ============================================ */

/* ============================================
   FOOTER (PC)
   ============================================ */
.footer {
  background-image: url(../images/footer-bg.webp);
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
  padding: calc(91 / 1920 * 100vw) calc(194/ 1920 * 100vw) calc(14 / 1920 * 100vw) calc(149 / 1920 * 100vw);
}

.footer__inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: calc(70 / 1920 * 100vw);
}

.footer__logo {
  font-size: calc(30 / 1920 * 100vw);
  font-weight: bold;
  margin-bottom: calc(30 / 1920 * 100vw);
  letter-spacing: 0.05em;
}

.footer__address,
.footer__tel,
.footer__note {
  font-size: calc(20 / 1920 * 100vw);
  line-height: 2;
  letter-spacing: 0.05em;
}

.footer__note {
  font-size: calc(15 / 1920 * 100vw);
  letter-spacing: 0.1em;
}

.footer__nav ul {
  display: flex;
  gap: calc(70 / 1920 * 100vw);
  width: calc(960 / 1920 * 100vw);
  justify-content: space-between;
}

.footer__nav a {
  font-size: calc(22 / 1920 * 100vw);
  opacity: 0.8;
  font-weight: 700;
  font-family: "Heebo", sans-serif;
  transition: opacity 0.3s;
  letter-spacing: 0.2em;
}

.footer__nav a:hover {
  opacity: 1;
}

.footer__copy {
  text-align: center;
  font-size: calc(16 / 1920 * 100vw);
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  letter-spacing: 0.05em;
}

/* ============================================
   FOOTER (SP: max-width 768px)
   ============================================ */
@media (max-width: 768px) {

  .footer {
    background-image: url(../images/footer-bg-sp.png);
    background-size: cover;
    background-position: center;
    padding: calc(39 / 390 * 100vw) calc(15 / 390 * 100vw) calc(7 / 390 * 100vw);
    text-align: center;
  }

  .footer__inner {
    flex-direction: column;
    align-items: center;
    gap: 0;
    margin-bottom: 0;
  }

  .footer__left {
    text-align: center;
  }

  .footer__logo {
    font-size: calc(21 / 390 * 100vw);
    letter-spacing: 0.05em;
    line-height: 200%;
    font-weight: 500;
    margin-bottom: calc(11 / 390 * 100vw);
  }

  .footer__address {
    font-size: calc(13 / 390 * 100vw);
    letter-spacing: 0.05em;
    line-height: 200%;
    font-weight: 500;
    margin-bottom: calc(11 / 390 * 100vw);
  }

  .footer__tel {
    font-size: calc(19 / 390 * 100vw);
    letter-spacing: 0.08em;
    line-height: 200%;
    font-weight: 500;
  }

  .footer__note {
    font-size: calc(13 / 390 * 100vw);
    letter-spacing: 0.05em;
    font-weight: 700;
    margin-bottom: calc(11 / 390 * 100vw);
  }

  .footer__nav {
    width: calc(250 / 390 * 100vw);
    margin-bottom: calc(31 / 390 * 100vw);
  }

  .footer__nav ul {
    flex-direction: column;
    gap: 0;
    width: 100%;
  }

  .footer__nav li {
    border-bottom: 1px solid rgba(255, 255, 255);
  }
  .footer__nav li:last-child {
    border-bottom: none;
  }

  .footer__nav a {
    display: block;
    font-size: calc(17 / 390 * 100vw);
    letter-spacing: 0.1em;
    font-weight: 500;
    padding: calc(12 / 390 * 100vw) 0;
    text-align: center;
    opacity: 1;
  }

  .footer__copy {
    font-size: calc(13 / 390 * 100vw);
    letter-spacing: 0.05em;
    font-weight: 600;
    border-top: none;
  }
}
