/* ================================
   Footer Layout
   サイトフッターと情報セクションのレイアウト
================================ */

/* ----- Footer Container ----- */
footer {
  /* Border & Background */
  background: var(--color-bg);

  /* Typography */
  font-size: var(--fz-sm);
  color: var(--color-text);
}

.footer__inner {
  /* Display & Box Model */
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-lg);
  padding: var(--space-xl) 0;
}

/* ----- Footer Items ----- */
.footer__item {
  /* Display & Box Model */
  flex: 1 1 0;
  min-width: 220px;
}

.footer__item p {
  /* Display & Box Model */
  margin: 0 0 var(--space-sm);

  /* Typography */
  font-weight: 600;
  color: var(--color-text);
}

.footer__item ul {
  /* Display & Box Model */
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer__item li {
  /* Display & Box Model */
  margin-bottom: var(--space-xs);
}

.footer__item a {
  /* Typography */
  color: var(--color-text);
  text-decoration: none;

  /* Other */
  transition: color 0.2s ease;
}

.footer__item a:hover,
.footer__item a:focus-visible {
  color: var(--color-primary);
  text-decoration: underline;
}

.footer__item img {
  /* Display & Box Model */
  display: block;
  max-width: 140px;
  height: auto;
}

/* ----- Company Info ----- */
.footer__company img {
  /* Display & Box Model */
  display: block;
  max-width: 180px;
  height: auto;
  margin-bottom: var(--space-md);
}

.footer__company p {
  /* Display & Box Model */
  margin: 0 0 var(--space-xs);

  /* Typography */
  font-size: var(--fz-sm);
  font-weight: 400;
  line-height: 1.6;
  color: var(--color-text);
}

/* ----- ISMS Certification ----- */
.footer__isms {
  /* Display & Box Model */
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-md);
}

.footer__isms p {
  /* Display & Box Model */
  margin-bottom: 0;

  /* Typography */
  font-size: var(--fz-xxs);
  font-weight: 400;
}

/* ----- Copyright Section ----- */
.footer__copyright {
  /* Border & Background */
  background: var(--color-bg-alt);
}

.copyright__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: var(--space-md) 0;
  gap: var(--space-md);
}

.footer__policy {
  /* Display & Box Model */
  display: flex;
  gap: var(--space-md);
}

.footer__policy a {
  /* Typography */
  font-size: var(--fz-xs);
  color: var(--color-text-light);
  text-decoration: none;

  /* Other */
  transition: color 0.2s ease;
}

.footer__policy a:hover,
.footer__policy a:focus-visible {
  color: var(--color-primary);
}

.copyright p {
  /* Display & Box Model */
  margin: 0;

  /* Typography */
  font-size: var(--fz-xs);
  color: var(--color-text-light);
}

/* ================================
   Responsive Styles
================================ */

@media (max-width: 767px) {
  .footer__inner {
    flex-direction: column;
    gap: var(--space-lg);
    padding: var(--space-xl) 0;
  }

  .footer__item {
    min-width: auto;
  }

  .footer__item img {
    max-width: 100px;
  }

  .footer__company img {
    max-width: 150px;
  }

  .copyright__item {
    flex-direction: column;
    align-items: flex-start;
    padding: var(--space-xl) 0;
    gap: var(--space-lg);
  }

  .footer__isms {
    flex-direction: row;
  }

  .footer__copyright {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    text-align: center;
  }

  .footer__policy {
    flex-direction: column;
    gap: var(--space-xs);
  }
}