.mobile-menu-toggle {
  display: none;
  width: 38px;
  height: 38px;
  padding: 7px;
  color: var(--ink);
  background: var(--cream);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--orange);
  cursor: pointer;
}

.mobile-menu-toggle span {
  display: block;
  height: 3px;
  margin: 4px 0;
  background: currentColor;
  transition: transform .2s steps(2, end), opacity .2s;
}

@media (max-width: 800px) {
  .mobile-menu-toggle {
    display: block;
    grid-area: menu;
  }

  .topbar {
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    grid-template-areas:
      'brand language theme menu'
      'nav nav nav nav';
  }

  .topbar .nav-links {
    display: none;
    align-items: stretch;
    flex-direction: column;
    gap: 8px;
    padding: 12px 0 4px;
    overflow: visible;
  }

  .topbar.mobile-nav-open .nav-links {
    display: flex;
    max-height: calc(100dvh - 110px);
    overflow-y: auto;
    overflow-x: hidden;
  }

  .topbar .nav-links > a,
  .topbar .resources-menu,
  .topbar .nav-links > .language-menu {
    width: 100%;
  }

  .topbar .nav-links > .language-menu {
    display: block;
    margin: 0;
  }

  .topbar .nav-links > .language-menu .language-toggle {
    justify-content: space-between;
    width: 100%;
  }

  .topbar .nav-links > .language-menu .language-toggle .language-flag {
    display: none;
  }

  .topbar .nav-links > .language-menu .language-toggle [data-current-language] {
    flex: 1;
    font-size: 0;
    text-align: left;
  }

  .topbar .nav-links > .language-menu .language-toggle [data-current-language]::after {
    content: 'Idioma';
    font-size: 15px;
  }

  html[lang='en'] .topbar .nav-links > .language-menu .language-toggle [data-current-language]::after {
    content: 'Language';
  }

  .topbar.mobile-nav-open .nav-links > .language-menu.open .language-dropdown {
    position: static;
    display: block;
    width: 100%;
    max-height: none;
    margin-top: 8px;
    overflow: visible;
    box-shadow: 4px 4px 0 var(--brown);
  }

  .topbar.mobile-nav-open .nav-links > .language-menu.open .language-dropdown .language-option {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    min-height: 44px;
  }

  .topbar .nav-links > a {
    justify-content: flex-start;
  }

  /* El panel móvil debe mostrar las tres opciones completas, incluido Estado. */
  .topbar.mobile-nav-open .resources-menu.open .resources-dropdown {
    position: fixed;
    top: 90px;
    right: 14px;
    left: 14px;
    display: grid;
    grid-template-columns: 1fr;
    width: auto;
    height: auto;
    max-height: calc(100dvh - 110px);
    overflow-y: auto;
    overflow-x: hidden;
    z-index: 60;
  }

  .topbar .resources-dropdown .resource-link {
    display: block !important;
    min-height: 76px;
    visibility: visible;
    opacity: 1;
  }

  .topbar.mobile-nav-open .mobile-menu-toggle span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .topbar.mobile-nav-open .mobile-menu-toggle span:nth-child(2) {
    opacity: 0;
  }

  .topbar.mobile-nav-open .mobile-menu-toggle span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }
}
