/* FOOTER — ported from reference/css/components.css.
   DOM differences: lists are core/navigation (Tienda) or button groups (social, contact), the address is a
   group with a lalita/icon and lalita/studio-info, and the logo is core/site-logo. */
.lm-footer {
  border-top: var(--wp--custom--border--hairline) solid var(--wp--preset--color--line);
  padding-top: var(--wp--preset--spacing--120); padding-bottom: var(--wp--preset--spacing--80);
}
.lm-footer__grid { display: grid; grid-template-columns: 1.7fr 1fr 1.3fr 1.2fr; gap: var(--wp--preset--spacing--90); }
/* site-logo sets .is-default-size img to 120px wide: match its specificity to keep the reference's 48px height */
.wp-block-site-logo.is-default-size.lm-footer__logo img { width: auto; height: 48px; margin-bottom: var(--wp--preset--spacing--60); }
.lm-footer__tagline { max-width: 300px; margin-bottom: var(--wp--preset--spacing--60); color: var(--wp--preset--color--secondary); }
/* core: .wp-block-navigation-item { display: flex } and __content { display: block }; the reference has li > inline a */
.lm-footer__links.wp-block-navigation .wp-block-navigation-item { display: list-item; }
.lm-footer__links.wp-block-navigation .wp-block-navigation-item__content { display: inline; }
/* core positions the navigation, its list and items (relative) for submenus, which the footer has none of. Positioned
   after a sticky element (the product gallery), Chromium moves them to their own layer and paints their text with
   greyscale antialiasing; the reference's footer links are not positioned. */
.lm-footer__links.wp-block-navigation, .lm-footer__links.wp-block-navigation .wp-block-navigation__container, .lm-footer__links.wp-block-navigation .wp-block-navigation-item { position: static; }
.lm-footer__social { display: flex; gap: var(--wp--preset--spacing--30); }
.lm-footer__heading {
  margin-bottom: var(--wp--preset--spacing--50);
  font-family: var(--wp--preset--font-family--body);
  font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--bold);
  line-height: var(--wp--custom--line-height--snug);
  letter-spacing: var(--wp--custom--letter-spacing--eyebrow); text-transform: uppercase;
  color: var(--wp--preset--color--muted);
}
.lm-footer__links .wp-block-navigation__container, .lm-footer__contact { display: flex; flex-direction: column; align-items: stretch; /* core flex layouts center their items */ gap: var(--wp--preset--spacing--30); color: var(--wp--preset--color--contrast-soft); }
.lm-footer__links a:hover, .lm-footer__links .wp-block-navigation-item__content:hover, .lm-footer__contact a:hover, .lm-footer__legal-links a:hover { color: var(--wp--preset--color--accent); }
.lm-footer__contact a { display: inline-flex; align-items: center; gap: var(--wp--preset--spacing--20); color: var(--wp--preset--color--contrast); }
.lm-footer__icon--whatsapp { color: var(--wp--custom--brand--whatsapp); }
.lm-footer__icon--accent { color: var(--wp--preset--color--accent); }
.lm-footer__address { display: flex; align-items: flex-start; gap: var(--wp--preset--spacing--20); color: var(--wp--preset--color--contrast-soft); }
.lm-footer__address .lm-icon { margin-top: var(--wp--preset--spacing--10); color: var(--wp--preset--color--accent); }
.lm-footer__hours { margin-top: var(--wp--preset--spacing--40); font-size: var(--wp--preset--font-size--ui); color: var(--wp--preset--color--secondary); }
.lm-footer__note { margin-top: var(--wp--preset--spacing--40); font-size: var(--wp--preset--font-size--ui); color: var(--wp--preset--color--secondary); }
.lm-footer__legal {
  display: flex; align-items: center; justify-content: space-between; gap: var(--wp--preset--spacing--40); flex-wrap: wrap;
  margin-top: var(--wp--preset--spacing--100); padding-top: var(--wp--preset--spacing--60);
  border-top: var(--wp--custom--border--hairline) solid var(--wp--preset--color--line);
  font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted);
}
.lm-footer__legal-links { display: flex; gap: var(--wp--preset--spacing--50); }
/* two classes: the minimal footer keeps its own padding at every breakpoint */
.lm-footer.lm-footer--minimal { padding-block: var(--wp--preset--spacing--60); }
.lm-footer--minimal .lm-footer__legal { margin-top: 0; padding-top: 0; border-top: 0; }

@media (max-width: 1023px) {
  .lm-footer { padding-top: var(--wp--preset--spacing--110); }
  .lm-footer__grid { grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--90) var(--wp--preset--spacing--70); }
}
@media (max-width: 639px) {
  .lm-footer { padding-top: var(--wp--preset--spacing--100); padding-bottom: var(--wp--preset--spacing--70); }
  .lm-footer__grid { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--80); }
  .lm-footer__legal { flex-direction: column; align-items: flex-start; margin-top: var(--wp--preset--spacing--90); }
}
