.site-footer {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 var(--site-chrome-edge) !important;
  box-sizing: border-box !important;
  color: rgba(255,255,255,.68) !important;
  background: #080808 !important;
}

.site-footer a { text-decoration: none !important; }

.site-footer .footer-inner {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 92px 0 36px !important;
  box-sizing: border-box !important;
}

.site-footer .footer-main {
  display: grid !important;
  grid-template-columns: minmax(260px, .78fr) minmax(720px, 1.62fr) !important;
  align-items: start !important;
  gap: clamp(52px, 6vw, 108px) !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.site-footer .footer-brand {
  display: block !important;
  justify-self: start !important;
  width: min(100%, 340px) !important;
  max-width: 340px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  text-align: left !important;
}

.site-footer .footer-logo-img {
  display: block !important;
  width: 170px !important;
  height: auto !important;
  margin: 0 0 28px !important;
}

.site-footer .footer-tagline {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  letter-spacing: .12em !important;
  line-height: 1.9 !important;
  margin: 0 !important;
  max-width: 330px !important;
  text-align: left !important;
  color: #fff !important;
}

.site-footer .footer-tagline strong { display: block !important; margin-bottom: 12px !important; color: rgba(255,255,255,.9) !important; font-family: 'Noto Serif JP', serif !important; font-size: 14px !important; font-weight: 400 !important; letter-spacing: .1em !important; }

.site-footer .footer-right-group {
  display: grid !important;
  grid-template-columns: minmax(260px, 1.1fr) minmax(170px, .72fr) minmax(290px, 1fr) !important;
  align-items: start !important;
  justify-self: end !important;
  gap: clamp(36px, 3.3vw, 64px) !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.site-footer .footer-nav-col,
.site-footer .footer-info-col {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  text-align: left !important;
}

.site-footer .footer-nav-col {
  padding: 0 !important;
  border: 0 !important;
}

.site-footer .footer-nav-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 9px !important;
  letter-spacing: .35em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,.38) !important;
  margin: 0 0 28px !important;
  padding: 0 0 16px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.09) !important;
}

.site-footer .footer-nav-list {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.site-footer .footer-nav-list li { width: 100% !important; margin: 0 !important; }
.site-footer .footer-nav-list a { display: flex !important; align-items: center !important; justify-content: flex-start !important; gap: 9px !important; padding: 12px 0 !important; color: rgba(255,255,255,.66) !important; font-size: 12px !important; letter-spacing: .08em !important; }
.site-footer .footer-nav-list a::before { content: '' !important; display: block !important; flex: 0 0 12px !important; width: 12px !important; height: 1px !important; background: rgba(255,255,255,.28) !important; }
.site-footer .footer-nav-list a:hover { color: #fff !important; }

.site-footer .footer-info-col {
  padding: 36px !important;
  border: 0 !important;
  background: #121212 !important;
}

.site-footer .footer-info-item { margin: 0 0 26px !important; }
.site-footer .footer-info-details { display: block !important; }
.site-footer .footer-info-label { margin: 0 0 10px !important; color: rgba(255,255,255,.38) !important; font-family: 'Cormorant Garamond', serif !important; font-size: 9px !important; letter-spacing: .3em !important; text-transform: uppercase !important; }
.site-footer .footer-info-val { color: rgba(255,255,255,.68) !important; font-size: 11px !important; letter-spacing: .07em !important; line-height: 1.8 !important; }

.site-footer .footer-contact-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 220px !important;
  max-width: 100% !important;
  min-height: 58px !important;
  margin: 30px 0 0 !important;
  padding: 0 20px !important;
  border: 0 !important;
  box-sizing: border-box !important;
  color: #222 !important;
  background: #fff !important;
  transition: color .2s ease, background-color .2s ease !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 10px !important;
  letter-spacing: .28em !important;
  text-transform: uppercase !important;
}

.site-footer .footer-contact-btn:hover,
.site-footer .footer-contact-btn:focus-visible {
  color: #222 !important;
  background: #bdbdbd !important;
}

.site-footer .footer-projects {
  width: 100% !important;
  margin: 68px 0 0 !important;
  padding: 42px 0 0 !important;
  border: 0 !important;
  border-top: 1px solid rgba(255,255,255,.10) !important;
}

.site-footer .footer-projects-inner {
  display: grid !important;
  grid-template-columns: 210px auto !important;
  align-items: center !important;
  gap: 0 !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}

.site-footer .footer-projects-label {
  width: auto !important;
  margin: 0 !important;
  padding: 0 36px 0 0 !important;
  border: 0 !important;
  text-align: left !important;
  color: rgba(255,255,255,.42) !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 9px !important;
  letter-spacing: .35em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

.site-footer .footer-projects-logos {
  display: grid !important;
  grid-template-columns: repeat(4, 165px) !important;
  align-items: stretch !important;
  justify-content: start !important;
  gap: 0 !important;
  width: max-content !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.site-footer .footer-project-link,
.site-footer .footer-project-link:first-child {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 0 !important;
  min-height: 108px !important;
  margin: 0 !important;
  padding: 18px 24px !important;
  border: 0 !important;
  border-left: 1px solid rgba(255,255,255,.09) !important;
  box-sizing: border-box !important;
}

.site-footer .footer-project-link img,
.site-footer .footer-project-link:last-child img {
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: min(78%, 180px) !important;
  height: auto !important;
  max-height: 62px !important;
  margin: 0 auto !important;
  opacity: .74 !important;
  filter: brightness(0) invert(1) !important;
}

.site-footer .footer-project-link:nth-child(1) img { max-width: min(66%, 150px) !important; }
.site-footer .footer-project-link:nth-child(2) img { max-width: min(56%, 120px) !important; }
.site-footer .footer-project-link:nth-child(3) img { max-width: min(70%, 150px) !important; }
.site-footer .footer-project-link:nth-child(4) img {
  width: 58px !important;
  max-width: 58px !important;
  max-height: 58px !important;
  opacity: .74 !important;
}

.site-footer .footer-bottom {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 18px !important;
  width: 100% !important;
  margin: 44px 0 0 !important;
  padding: 30px 0 0 !important;
  border: 0 !important;
  text-align: center !important;
}

.site-footer .footer-copy { margin: 0 !important; color: rgba(255,255,255,.48) !important; font-size: 10px !important; letter-spacing: .12em !important; }
.site-footer .footer-bottom-links { display: flex !important; justify-content: center !important; gap: 34px !important; margin: 0 !important; }
.site-footer .footer-bottom-links a { color: rgba(255,255,255,.48) !important; font-size: 10px !important; letter-spacing: .08em !important; }

@media (max-width: 1280px) {
  .site-footer .footer-main { grid-template-columns: 1fr !important; gap: 58px !important; }
  .site-footer .footer-brand { max-width: 400px !important; }
  .site-footer .footer-right-group { grid-template-columns: repeat(2, minmax(0, 300px)) !important; justify-content: end !important; gap: 48px !important; justify-self: end !important; width: min(100%, 760px) !important; }
  .site-footer .footer-info-col {
    grid-column: 1 / -1 !important;
    display: grid !important;
    grid-template-columns: minmax(0, max-content) 220px !important;
    align-items: start !important;
    justify-content: space-between !important;
    gap: clamp(24px, 4vw, 56px) !important;
  }
  .site-footer .footer-info-details { display: grid !important; grid-template-columns: minmax(190px, 240px) 130px !important; align-items: start !important; justify-content: start !important; gap: 24px !important; }
  .site-footer .footer-info-item { margin: 0 !important; }
  .site-footer .footer-info-item:last-child .footer-info-val { white-space: nowrap !important; }
  .site-footer .footer-contact-btn { width: 220px !important; max-width: 100% !important; margin: 0 !important; }
  .site-footer .footer-projects-inner { grid-template-columns: auto !important; width: max-content !important; max-width: 100% !important; margin-right: auto !important; margin-left: auto !important; }
  .site-footer .footer-projects-label { padding: 0 0 28px !important; text-align: center !important; }
  .site-footer .footer-projects-logos { justify-content: center !important; margin-right: auto !important; margin-left: auto !important; }
}

@media (max-width: 800px) {
  .site-footer .footer-info-col {
    grid-template-columns: 1fr !important;
    justify-content: start !important;
    gap: 24px !important;
  }
  .site-footer .footer-info-details { grid-template-columns: minmax(190px, 240px) 130px !important; }
}

@media (max-width: 640px) {
  .site-footer .footer-inner { padding-top: 62px !important; }
  .site-footer .footer-main { gap: 48px !important; }
  .site-footer .footer-logo-img { width: min(155px, 72vw) !important; }
  .site-footer .footer-right-group { grid-template-columns: repeat(2, minmax(0, 240px)) !important; justify-content: end !important; gap: 28px !important; }
  .site-footer .footer-info-col { padding: 28px 24px !important; }
  .site-footer .footer-projects { margin-top: 48px !important; padding-top: 34px !important; }
  .site-footer .footer-projects-logos { grid-template-columns: 220px !important; width: 220px !important; max-width: 100% !important; justify-content: center !important; margin-right: auto !important; margin-left: auto !important; }
  .site-footer .footer-project-link,
  .site-footer .footer-project-link:first-child { min-height: 96px !important; padding: 16px !important; border: 0 !important; }
  .site-footer .footer-bottom { margin-top: 28px !important; padding-top: 24px !important; }
  .site-footer .footer-copy { white-space: nowrap !important; font-size: 11px !important; }
}

@media (max-width: 520px) {
  .site-footer .footer-right-group { grid-template-columns: 1fr !important; gap: 38px !important; justify-self: end !important; width: min(100%, 360px) !important; }
  .site-footer .footer-info-col {
    grid-column: 1 !important;
    grid-template-columns: 1fr !important;
    align-items: start !important;
    gap: 24px !important;
    padding: 24px 18px !important;
  }
  .site-footer .footer-info-details { display: grid !important; grid-template-columns: 1fr !important; gap: 24px !important; }
  .site-footer .footer-info-label { font-size: 9px !important; letter-spacing: .3em !important; }
  .site-footer .footer-info-val { font-size: 11px !important; letter-spacing: .07em !important; overflow-wrap: normal !important; }
  .site-footer .footer-contact-btn { width: 220px !important; min-height: 58px !important; padding: 0 20px !important; font-size: 10px !important; letter-spacing: .28em !important; }
  .site-footer .footer-bottom-links { flex-wrap: wrap !important; gap: 12px 24px !important; }
}

.footer-contact-btn, .back-to-top { border-radius:2px!important; }
