/* Homepage shell refinement only. The shared desktop shell and all other
   routes retain their existing navigation and three-panel footer geometry. */
@media (max-width: 760px) {
  body.page-homepage .mobile-nav > summary {
    display: grid;
    place-items: center;
  }

  body.page-homepage .mobile-nav > summary .menu-icon {
    width: 22px;
    height: 2px;
    border: 0;
    background: currentColor;
    position: relative;
  }

  body.page-homepage .mobile-nav > summary .menu-icon::before,
  body.page-homepage .mobile-nav > summary .menu-icon::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 0;
    background: currentColor;
    transform: translateY(-7px);
    transition: transform 400ms cubic-bezier(.32,.72,0,1);
  }

  body.page-homepage .mobile-nav > summary .menu-icon::after {
    transform: translateY(7px);
  }

  body.page-homepage .mobile-nav[open] > summary .menu-icon {
    background: transparent;
  }

  body.page-homepage .mobile-nav[open] > summary .menu-icon::before {
    transform: rotate(45deg);
  }

  body.page-homepage .mobile-nav[open] > summary .menu-icon::after {
    transform: rotate(-45deg);
  }

  body.page-homepage .mobile-nav .home-mobile-language-switcher {
    margin: 0 0 8px;
    padding: 4px 0 16px;
    border-bottom: 1px solid rgba(255,255,255,.22);
  }

  body.page-homepage .mobile-nav .home-mobile-language-links {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 8px;
  }

  body.page-homepage .mobile-nav .home-mobile-language-links a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 8px 4px;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 11px;
    color: #fff;
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
  }

  body.page-homepage:lang(en) .home-mobile-language-links a[lang="en"],
  body.page-homepage:lang(es) .home-mobile-language-links a[lang="es"],
  body.page-homepage:lang(ca) .home-mobile-language-links a[lang="ca"] {
    background: #fff;
    color: #181518;
  }

  body.page-homepage .site-footer {
    margin-top: 0;
    padding: 0;
    background: #181518;
  }

  body.page-homepage .site-footer .footer-panels {
    display: grid;
    grid-template-columns: minmax(0,1fr);
    gap: 0;
    padding: 32px 24px max(24px,env(safe-area-inset-bottom));
    background: #181518;
  }

  body.page-homepage .site-footer .footer-panels > div {
    min-height: 0 !important;
    padding: 0;
    border-radius: 0;
    background: transparent;
  }

  body.page-homepage .site-footer .footer-panel-content {
    width: auto;
    margin: 0;
  }

  body.page-homepage .site-footer .footer-brand {
    width: auto;
    max-width: 100%;
  }

  body.page-homepage .site-footer .language-menu {
    margin-top: 16px;
  }

  body.page-homepage .site-footer .footer-contact-panel {
    margin-top: 32px;
    font-size: 15px;
  }

  body.page-homepage .site-footer .contact-email {
    min-height: 44px;
    height: auto;
    padding: 8px 0;
    overflow-wrap: anywhere;
  }

  body.page-homepage .site-footer .footer-location {
    margin: 0 0 16px;
  }

  body.page-homepage .site-footer .footer-divider {
    display: block;
    width: 100%;
    height: 1px;
    margin: 0 0 8px;
    border: 0;
    background: rgba(255,255,255,.22);
  }

  body.page-homepage .site-footer .footer-legal {
    display: flex;
    align-items: center;
    min-height: 44px;
    margin: 0;
  }

  body.page-homepage .site-footer .footer-social-panel {
    margin-top: 24px;
  }

  body.page-homepage .site-footer .copyright {
    max-width: 32ch;
    margin: 16px 0 0;
  }
}

@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
  body.page-homepage .mobile-nav > summary .menu-icon::before,
  body.page-homepage .mobile-nav > summary .menu-icon::after {
    transition: none;
  }
}
