/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.site-footer {
  background-color: var(--color-background-footer);
  color: var(--color-text-footer);
  padding: var(--spacing-2xl) 0 var(--spacing-lg);
}

.footer-grid-wrapper {
  align-items: flex-start;
  gap: var(--spacing-lg);
}

.footer-column {
  margin-bottom: var(--spacing-lg);
}
.footer-column:last-child {
  margin-bottom: 0;
}

/* Logo */
.footer-logo-image {
  display: block;
  max-width: 100%;
  height: auto;
  max-height: 120px;
}
.footer-logo-placeholder span {
  font-size: 1.75rem;
  font-weight: var(--font-weight-bold);
  line-height: 1.2;
  display: block;
  color: var(--color-text-footer); /* Explicit for clarity */
}

/* Headings */
.footer-heading {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-footer); /* Explicit for clarity */
  margin-top: 0;
  margin-bottom: var(--spacing-md);
}

/* Common Link Styles in Footer Sections */
.footer-navigation ul.footer-nav-list a,
.footer-address a,
.footer-bottom a {
  color: var(--color-text-footer);
  transition: var(--transition-base);
}

/* Navigation Menu */
.footer-navigation ul.footer-nav-list {
  list-style: none;
  padding-left: 0;
  margin: 0;
}
.footer-navigation ul.footer-nav-list li {
  margin-bottom: var(--spacing-sm);
}
.footer-navigation ul.footer-nav-list li:last-child {
  margin-bottom: 0;
}
.footer-navigation ul.footer-nav-list a {
  text-decoration: none;
  font-weight: var(--font-weight-normal);
}
.footer-navigation ul.footer-nav-list a:hover,
.footer-navigation ul.footer-nav-list a:focus {
  text-decoration: underline;
}

.footer-navigation ul.footer-nav-list a[aria-current="page"] {
  font-weight: var(--font-weight-bold);
}

/* Address/Contact Section */
.footer-address {
  font-style: normal; /* Reset browser default for address tag */
}
.footer-address p {
  margin-bottom: var(--spacing-xs);
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
  font-weight: var(--font-weight-normal);
}
.footer-address p:last-child {
  margin-bottom: 0;
}
.footer-address a {
  text-decoration: underline;
}
.footer-address a:hover,
.footer-address a:focus {
  text-decoration: none;
}

/* Footer Bottom (Copyright, etc.) */
.footer-bottom {
  padding-top: var(--spacing-lg);
  margin-top: var(--spacing-xl);
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  font-size: var(--font-size-sm);
  /* color is inherited from .site-footer */
}
.footer-bottom p {
  margin-bottom: var(--spacing-xs);
}
.footer-bottom p:last-child {
  margin-bottom: 0;
}
.footer-bottom a {
  text-decoration: underline;
}
.footer-bottom a:hover,
.footer-bottom a:focus {
  text-decoration: none;
}

/* Responsive Adjustments */
@media (max-width: calc(var(--breakpoint-lg) - 1px)) {
  /* Potential styles for pre-large screens if footer-column.footer-contact needs specific adjustments */
}

@media (max-width: calc(var(--breakpoint-md) - 1px)) { /* Mobile screens */
  /* Example: Center content in columns when stacked */
  /* .footer-column { text-align: center; } */
  /* Example: Center logo when stacked */
  /* .footer-logo-image, .footer-logo-placeholder { margin-left: auto; margin-right: auto; } */

  .footer-grid-wrapper {
    gap: 0; /* Remove column gap when stacked, rely on .footer-column margin-bottom */
  }
}