
/* ============================================
   SITE FOOTER
   ============================================ */

.site-footer {
  position: relative;
  overflow: visible;
  clear: both;
  margin-top: 200px;
  background-color: var(--navy);
  color: var(--white);
}

/* ============================================
   FOOTER ILLUSTRATION
   ============================================ */

.footer-illustration {
  position: relative;
  width: 100%;
  height: 120px;
  margin-top: -175px;
  background-color: transparent;
  overflow: visible;
  pointer-events: none;
  z-index: -1 !important;
}

.footer-illustration img {
  position: absolute;
  bottom: 0;
}

.footer-illus-torii {
  left: 8%;
  height: 150px;
  width: auto;
}

.footer-illus-sun {
  right: 12%;
  bottom: -60px !important;
  height: 150px;
  width: auto;
}

/* Flowers */
.fl-1 { left: 1%; height: 75px; }
.fl-2 { left: 6%; height: 60px; }
.fl-3 { left: 19%; height: 80px; }
.fl-4 { left: 25%; height: 60px; }
.fl-5 { left: 34%; height: 85px; }
.fl-6 { left: 40%; height: 65px; }
.fl-7 { left: 48%; height: 80px; }
.fl-8 { left: 56%; height: 60px; }
.fl-10 { right: 2%; height: 55px; }
.fl-11 { right: 7%; height: 65px; }
.fl-12 { right: 38%; height: 70px; }
.fl-13 { left: 22%; height: 50px; }
.fl-14 { left: 28%; height: 80px; }
.fl-15 { left: 36%; height: 60px; }
.fl-16 { left: 44%; height: 75px; }
.fl-17 { right: 32%; height: 81px; }
.fl-18 { right: 28%; height: 70px; }
.fl-20 { right: 23%; height: 75px; }

/* ============================================
   FOOTER CONTENT
   ============================================ */

.footer-inner {
  position: relative;
  z-index: 2;
  padding: 4rem 0 3rem;
  background: var(--navy);
  box-shadow: 0 0 0 100vmax var(--navy);
  clip-path: inset(0 -100vmax);
}

.footer-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) max-content max-content;
  column-gap: 7rem;
  align-items: start;
}

.footer-col {
  text-align: left;
}

.footer-col:nth-child(2),
.footer-col:nth-child(3) {
  justify-self: end;
}

.footer-col:nth-child(2) {
  min-width: 190px;
}

.footer-col:nth-child(3) {
  min-width: 260px;
}

.footer-logo-img {
  display: block !important;
  height: 180px !important;
  width: auto !important;
  max-width: 220px !important;
}

.footer-col-title,
.footer-col h4 {
  margin-top: 0;
  margin-bottom: 1.5rem;
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--white);
}

.footer-nav ul,
.footer-col ul {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-nav li a,
.footer-col ul li a {
  font-family: var(--font-body);
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  transition: color 0.2s ease;
}

.footer-nav li a:hover,
.footer-col ul li a:hover {
  color: var(--white);
}

.footer-address {
  margin-bottom: 1.5rem;
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-style: normal;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.7);
}

.footer-address a {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
}

.footer-social {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 1.5rem;
}

.footer-social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: transparent;
  color: var(--white);
  opacity: 0.85;
  transition: background 0.2s ease, opacity 0.2s ease, transform 0.2s ease, color 0.2s ease;
}

.footer-social-link:hover {
  background: var(--coral) !important;
  color: var(--white) !important;
  opacity: 1;
  transform: translateY(-2px);
}

.footer-social-link svg {
  width: 22px;
  height: 22px;
  fill: currentColor;
}

/* ============================================
   TABLET
   ============================================ */

@media (min-width: 769px) and (max-width: 1100px) {
  .site-footer {
    margin-top: 150px !important;
  }

  .footer-illustration {
    height: 125px !important;
    margin-top: -165px !important;
    z-index: -1 !important;
  }

  .footer-illustration img {
    bottom: 8px !important;
  }

  .footer-illus-torii {
    display: block !important;
    left: 6% !important;
    height: 95px !important;
  }

  .footer-illus-sun {
    display: block !important;
    right: 8% !important;
    height: 95px !important;
    bottom: -22px !important;
  }

  .footer-illustration img.footer-illus-flower,
  .footer-illustration img[class^="fl-"],
  .footer-illustration img[class*=" fl-"] {
    display: none !important;
  }

  .footer-inner {
    padding: 54px 28px 44px !important;
  }

  .footer-grid {
    grid-template-columns: 160px 1fr 1fr !important;
    column-gap: 42px !important;
    row-gap: 0 !important;
  }

  .footer-col,
  .footer-col:first-child,
  .footer-col:nth-child(2),
  .footer-col:nth-child(3) {
    grid-column: auto !important;
    justify-self: start !important;
    text-align: left !important;
    min-width: 0 !important;
  }

  .footer-logo-img {
    height: 105px !important;
    max-width: 150px !important;
  }

  .footer-col-title,
  .footer-col h4 {
    font-size: 0.7rem !important;
    margin-bottom: 0.8rem !important;
  }

  .footer-nav ul,
  .footer-col ul {
    gap: 0.42rem !important;
  }

  .footer-nav li a,
  .footer-col ul li a,
  .footer-address {
    font-size: 0.74rem !important;
    line-height: 1.5 !important;
  }

  .footer-social {
    gap: 0.7rem !important;
    margin-top: 0.9rem !important;
  }

  .footer-social-link {
    width: 32px !important;
    height: 32px !important;
  }

  .footer-social-link svg {
    width: 18px !important;
    height: 18px !important;
  }
}

/* ============================================
   MOBILE
   ============================================ */

@media (max-width: 768px) {
  .site-footer {
    margin-top: 48px !important;
    text-align: center !important;
  }

  .footer-illustration,
  .footer-illustration img,
  .footer-illus-torii,
  .footer-illus-sun,
  .footer-illus-flower,
  img[class*="fl-"] {
    display: none !important;
  }

  .footer-inner {
    padding: 38px 24px 32px !important;
  }

  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    align-items: center !important;
    justify-items: center !important;
  }

  .footer-col,
  .footer-col:first-child,
  .footer-col:nth-child(2),
  .footer-col:nth-child(3) {
    grid-column: auto !important;
    justify-self: center !important;
    text-align: center !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  .footer-logo {
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
  }

  .footer-logo-img {
    height: 105px !important;
    max-width: 150px !important;
    margin: 0 auto !important;
  }

  .footer-col-title,
  .footer-col h4 {
    font-size: 0.72rem !important;
    margin-bottom: 0.9rem !important;
    text-align: center !important;
  }

  .footer-nav ul,
  .footer-col ul {
    align-items: center !important;
    gap: 0.5rem !important;
  }

  .footer-nav li a,
  .footer-col ul li a {
    font-size: 0.82rem !important;
    line-height: 1.5 !important;
  }

  .footer-address {
    max-width: 280px !important;
    margin: 0 auto 1.1rem !important;
    font-size: 0.82rem !important;
    line-height: 1.65 !important;
    text-align: center !important;
  }

  .footer-social {
    justify-content: center !important;
    gap: 0.9rem !important;
    margin-top: 1.1rem !important;
  }

  .footer-social-link {
    width: 38px !important;
    height: 38px !important;
  }

  .footer-social-link svg {
    width: 20px !important;
    height: 20px !important;
  }
}

/* ============================================
   SMALL MOBILE
   ============================================ */

@media (max-width: 480px) {
  .site-footer {
    margin-top: 36px !important;
  }

  .footer-inner {
    padding: 34px 20px 30px !important;
  }

  .footer-grid {
    gap: 1.7rem !important;
  }

  .footer-logo-img {
    height: 96px !important;
    max-width: 138px !important;
  }

  .footer-col-title,
  .footer-col h4 {
    font-size: 0.68rem !important;
    margin-bottom: 0.75rem !important;
  }

  .footer-nav li a,
  .footer-col ul li a,
  .footer-address {
    font-size: 0.78rem !important;
  }

  .footer-social-link {
    width: 36px !important;
    height: 36px !important;
  }
}
```