/* ============================================================
   rc_Footer Module — Self-contained styles
   ============================================================ */

.rc-footer-wrap {
  --rc-blue: #2878C8;
  --rc-green: #32A064;
  --rc-green-light: #6BBF96;
  --rc-surface-dark: #1E2C40;
  --rc-surface-dark-fg: #F5F6FA;
  --rc-border-dark: rgba(255,255,255,0.1);

  font-family: 'Noto Sans JP', sans-serif;
}

.rc-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 64px 28px 0;
}

/* ---- Grid ---- */
.rc-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 48px;
  padding-bottom: 48px;
}

/* ---- Brand column ---- */
.rc-footer__logo {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}

.rc-footer__logo-text {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.rc-footer__brand-desc {
  font-size: 13px;
  line-height: 1.8;
  margin-bottom: 20px;
  opacity: 0.7;
}

.rc-footer__phone {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 18px;
  font-weight: 700;
  text-decoration: none;
  margin-bottom: 4px;
  transition: opacity 0.2s;
}

.rc-footer__phone:hover { opacity: 0.8; }

.rc-footer__phone-hours {
  font-size: 12px;
  opacity: 0.55;
  margin: 0 0 16px;
}

.rc-footer__address {
  font-size: 12px;
  line-height: 1.8;
  opacity: 0.55;
}

/* ---- Nav columns ---- */
.rc-footer__nav-title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin: 0 0 16px;
  opacity: 0.5;
}

.rc-footer__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.rc-footer__nav-link {
  font-size: 13px;
  text-decoration: none;
  opacity: 0.7;
  transition: opacity 0.2s;
  display: inline-block;
}

.rc-footer__nav-link:hover { opacity: 1; }

/* ---- Bottom bar ---- */
.rc-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 0;
  flex-wrap: wrap;
  color: color: var(--rc-surface-dark-fg);
}

.rc-footer__copyright {
  font-size: 12px;
  margin: 0;
  opacity: 0.45;
}

.rc-footer__policy {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

.rc-footer__policy-link {
  font-size: 12px;
  text-decoration: none;
  opacity: 0.45;
  transition: opacity 0.2s;
}

.rc-footer__policy-link:hover { opacity: 0.8; }

/* ============================================================
   Background Variants
   ============================================================ */

/* Dark (default) */
.rc-footer--dark {
  background-color: var(--rc-surface-dark);
}

.rc-footer--dark .rc-footer__logo-text,
.rc-footer--dark .rc-footer__brand-desc,
.rc-footer--dark .rc-footer__phone,
.rc-footer--dark .rc-footer__phone-hours,
.rc-footer--dark .rc-footer__address,
.rc-footer--dark .rc-footer__nav-title,
.rc-footer--dark .rc-footer__nav-link,
.rc-footer--dark .rc-footer__copyright,
.rc-footer--dark .rc-footer__policy-link { color: var(--rc-surface-dark-fg); }

.rc-footer--dark .rc-footer__bottom { border-top: 1px solid var(--rc-border-dark); }
.rc-footer--dark .rc-footer__grid { border-bottom: 1px solid var(--rc-border-dark); }

/* Blue */
.rc-footer--blue {
  background-color: #1A4A8C;
}

.rc-footer--blue .rc-footer__logo-text,
.rc-footer--blue .rc-footer__brand-desc,
.rc-footer--blue .rc-footer__phone,
.rc-footer--blue .rc-footer__phone-hours,
.rc-footer--blue .rc-footer__address,
.rc-footer--blue .rc-footer__nav-title,
.rc-footer--blue .rc-footer__nav-link,
.rc-footer--blue .rc-footer__copyright,
.rc-footer--blue .rc-footer__policy-link { color: #F5F6FA; }

.rc-footer--blue .rc-footer__bottom { border-top: 1px solid rgba(255,255,255,0.12); }
.rc-footer--blue .rc-footer__grid { border-bottom: 1px solid rgba(255,255,255,0.12); }

/* Gray */
.rc-footer--gray {
  background-color: #EEF0F5;
}

.rc-footer--gray .rc-footer__logo-text,
.rc-footer--gray .rc-footer__phone { color: #1A2030; }

.rc-footer--gray .rc-footer__brand-desc,
.rc-footer--gray .rc-footer__phone-hours,
.rc-footer--gray .rc-footer__address,
.rc-footer--gray .rc-footer__nav-title,
.rc-footer--gray .rc-footer__nav-link,
.rc-footer--gray .rc-footer__copyright,
.rc-footer--gray .rc-footer__policy-link { color: #4A5568; }

.rc-footer--gray .rc-footer__bottom { border-top: 1px solid #DDE1EC; }
.rc-footer--gray .rc-footer__grid { border-bottom: 1px solid #DDE1EC; }

/* White */
.rc-footer--white {
  background-color: #FFFFFF;
}

.rc-footer--white .rc-footer__logo-text,
.rc-footer--white .rc-footer__phone { color: #1A2030; }

.rc-footer--white .rc-footer__brand-desc,
.rc-footer--white .rc-footer__phone-hours,
.rc-footer--white .rc-footer__address,
.rc-footer--white .rc-footer__nav-title,
.rc-footer--white .rc-footer__nav-link,
.rc-footer--white .rc-footer__copyright,
.rc-footer--white .rc-footer__policy-link { color: #4A5568; }

.rc-footer--white .rc-footer__bottom { border-top: 1px solid #DDE1EC; }
.rc-footer--white .rc-footer__grid { border-bottom: 1px solid #DDE1EC; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 767px) {
  .rc-footer__grid {
    grid-template-columns: 1fr;
    gap: 32px;
    padding-bottom: 32px;
  }

  .rc-footer__inner {
    padding: 48px 20px 0;
  }

  .rc-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
}
