/**
 * Módulos del hub en ordenador — 9 oct 2026.
 * A partir de 1.024 px: app-shell a 1.200 px y columnas/rejillas por módulo.
 * En móvil no pinta nada. Referencia: css/escritorio.css (portada, 8 oct).
 * No toca hub.css / tokens.css / reglas de móvil de cada módulo.
 */

@media (min-width: 1024px) {
  /* —— Ancho común —— */
  .app-shell,
  .pie .app-shell,
  body[data-page="ayudas"] .app-shell {
    width: min(100%, 1200px);
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 32px;
    padding-right: 32px;
  }

  /* Ayudas fija el shell y la card a ancho de móvil; en escritorio se suelta */
  body[data-page="ayudas"] .ayu-card {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }

  body[data-page="ayudas"] main {
    padding-left: 0;
    padding-right: 0;
  }

  /* Textos largos: no más de ~70 caracteres por línea */
  .gaceta-preg__salida,
  .gaceta-preg__nota,
  .gaceta-disclaimer,
  .bec-hero__sub,
  .bec-tarjeta__meta,
  .emb-hero__sub,
  .emb-item__dir,
  .pas-hero__subtitle,
  .pas-como,
  .veredicto,
  .legal-cajon__form,
  .legal-card__desc,
  .aduana-preg__nota,
  .aduana-porque__texto,
  .hub-nota__p,
  .div-entradilla,
  .ayu-ent__t p,
  .ayu-it__o,
  .com-card p {
    max-width: 70ch;
  }

  /* ══════════════════════════════════════════════════════════════════════
     GACETA · pregunta | novedades; mosaicos 3–4 debajo
     ══════════════════════════════════════════════════════════════════════ */
  body:has(#gaceta-preg) main {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    column-gap: 28px;
    row-gap: 20px;
    align-items: start;
  }

  body:has(#gaceta-preg) .gaceta-masthead {
    grid-column: 1 / -1;
  }

  body:has(#gaceta-preg) .gaceta-preg,
  body:has(#gaceta-preg) .gaceta-preg__eco,
  body:has(#gaceta-preg) .gaceta-preg__salida,
  body:has(#gaceta-preg) .gaceta-buscador,
  body:has(#gaceta-preg) .gaceta-resultados,
  body:has(#gaceta-preg) .gaceta-sin-resultado {
    grid-column: 1;
    min-width: 0;
  }

  body:has(#gaceta-preg) .gaceta-vivo {
    grid-column: 2;
    grid-row: 2 / span 6;
    align-self: start;
    margin-top: 0;
    min-width: 0;
  }

  body:has(#gaceta-preg) .gaceta-preg__temas {
    grid-column: 1 / -1;
  }

  body:has(#gaceta-preg) .category-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }

  body:has(#gaceta-preg) .gaceta-disclaimer {
    grid-column: 1 / -1;
  }

  /* ══════════════════════════════════════════════════════════════════════
     AYUDAS · filtros izq · lista/mosaico der
     ══════════════════════════════════════════════════════════════════════ */
  body[data-page="ayudas"] .ayu-cols {
    display: grid;
    grid-template-columns: minmax(240px, 300px) 1fr;
    column-gap: 28px;
    row-gap: 16px;
    align-items: start;
  }

  body[data-page="ayudas"] .ayu-cols__filtros,
  body[data-page="ayudas"] .ayu-cols__main {
    min-width: 0;
  }

  body[data-page="ayudas"] .ayu-g {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }

  body[data-page="ayudas"] #ayu-lista {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
  }

  body[data-page="ayudas"] #ayu-lista > .ayu-vacio {
    grid-column: 1 / -1;
  }

  body[data-page="ayudas"] .ayu-chips--filtro {
    flex-wrap: wrap;
  }

  /* ══════════════════════════════════════════════════════════════════════
     BECAS · filtros izq · tarjetas 2–3 der
     ══════════════════════════════════════════════════════════════════════ */
  body:has(.card-moment--becas) .card-moment--becas {
    display: grid;
    grid-template-columns: minmax(240px, 300px) 1fr;
    column-gap: 28px;
    row-gap: 14px;
    align-items: start;
  }

  body:has(.card-moment--becas) .module-info-trigger,
  body:has(.card-moment--becas) .bec-hero,
  body:has(.card-moment--becas) .bec-buscador {
    grid-column: 1 / -1;
  }

  body:has(.card-moment--becas) .bec-donde,
  body:has(.card-moment--becas) .bec-cubanos-nota,
  body:has(.card-moment--becas) .bec-chips,
  body:has(.card-moment--becas) .bec-paises,
  body:has(.card-moment--becas) .bec-cuenta {
    grid-column: 1;
    min-width: 0;
  }

  body:has(.card-moment--becas) .bec-lista,
  body:has(.card-moment--becas) .bec-vacio {
    grid-column: 2;
    grid-row: 3 / span 8;
    align-self: start;
    min-width: 0;
  }

  body:has(.card-moment--becas) .bec-lista {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  body:has(.card-moment--becas) .bec-cob {
    grid-column: 1 / -1;
  }

  /* ══════════════════════════════════════════════════════════════════════
     ADUANA · pregunta/artículos izq · cuenta der (sticky)
     ══════════════════════════════════════════════════════════════════════ */
  body:has(#aduana-herramienta) #aduana-herramienta:not([hidden]) {
    display: grid;
    grid-template-columns: 1fr minmax(280px, 360px);
    column-gap: 28px;
    row-gap: 16px;
    align-items: start;
  }

  body:has(#aduana-herramienta) #aduana-herramienta:not([hidden]) > *:not(#dash-summary) {
    grid-column: 1;
    min-width: 0;
  }

  body:has(#aduana-herramienta) #aduana-herramienta:not([hidden]) > #dash-summary {
    grid-column: 2;
    grid-row: 1 / -1;
    align-self: start;
    position: sticky;
    top: 1rem;
    min-width: 0;
  }

  /* Portada del módulo (antes de la herramienta): opciones en 2 cols */
  body:has(.aduana-paso1) .aduana-paso1__lista {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  body:has(.aduana-paso1) .aduana-paso1__lista > li {
    list-style: none;
  }

  /* ══════════════════════════════════════════════════════════════════════
     DIVISAS · tasas | calculadora; histórico ancho completo
     ══════════════════════════════════════════════════════════════════════ */
  body:has(.card-moment--divisas) main {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    column-gap: 28px;
    row-gap: 24px;
    align-items: start;
  }

  body:has(.card-moment--divisas) .card-moment--divisas:not(.div-calc-card) {
    grid-column: 1;
    min-width: 0;
  }

  body:has(.card-moment--divisas) .div-calc-card {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    min-width: 0;
    margin-top: 0;
  }

  body:has(.card-moment--divisas) .div-historico,
  body:has(.card-moment--divisas) #div-historico,
  body:has(.card-moment--divisas) .div-hist {
    grid-column: 1 / -1;
  }

  /* ══════════════════════════════════════════════════════════════════════
     EMBAJADAS · portada: puertas lado a lado
     listas: buscador izq · fichas 2 cols
     ══════════════════════════════════════════════════════════════════════ */
  body:has(.emb-puertas) .emb-puertas {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }

  body:has(#emb-lista-root) .card-moment--embajadas {
    display: grid;
    grid-template-columns: minmax(240px, 300px) 1fr;
    column-gap: 28px;
    row-gap: 16px;
    align-items: start;
  }

  body:has(#emb-lista-root) .module-info-trigger,
  body:has(#emb-lista-root) .emb-hero {
    grid-column: 1 / -1;
  }

  body:has(#emb-lista-root) .emb-buscador,
  body:has(#emb-lista-root) .emb-cruce {
    grid-column: 1;
    position: sticky;
    top: 1rem;
    align-self: start;
    min-width: 0;
  }

  body:has(#emb-lista-root) #emb-lista-root,
  body:has(#emb-lista-root) .emb-vacio {
    grid-column: 2;
    grid-row: 2 / span 4;
    min-width: 0;
  }

  body:has(#emb-lista-root) .emb-lista {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  /* ══════════════════════════════════════════════════════════════════════
     LEGAL · trámites 2–3 cols · formulario 70ch
     ══════════════════════════════════════════════════════════════════════ */
  body:has(.legal-catalogo) .legal-catalogo {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }

  body:has(.legal-cajon__form) .legal-cajon__form,
  body:has(#legal-contacto) #legal-contacto,
  body:has(.legal-contacto) .legal-contacto {
    max-width: 70ch;
  }

  /* ══════════════════════════════════════════════════════════════════════
     PASAPORTE · formulario izq · veredicto der
     ══════════════════════════════════════════════════════════════════════ */
  body:has(.card-moment--pasaporte) .card-moment--pasaporte {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 28px;
    row-gap: 16px;
    align-items: start;
  }

  body:has(.card-moment--pasaporte) .module-info-trigger,
  body:has(.card-moment--pasaporte) .pas-hero,
  body:has(.card-moment--pasaporte) .pas-como-links,
  body:has(.card-moment--pasaporte) .pas-como {
    grid-column: 1 / -1;
  }

  body:has(.card-moment--pasaporte) .pas-block {
    grid-column: 1;
    min-width: 0;
  }

  body:has(.card-moment--pasaporte) .pas-veredicto-slot {
    grid-column: 2;
    grid-row: 4 / span 3;
    align-self: start;
    min-width: 0;
  }

  /* ══════════════════════════════════════════════════════════════════════
     ENVÍOS · ancho + rejilla de opciones
     ══════════════════════════════════════════════════════════════════════ */
  body:has(.env-option-grid) .env-option-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  /* ══════════════════════════════════════════════════════════════════════
     COMUNIDAD · ancho + tarjetas en rejilla
     ══════════════════════════════════════════════════════════════════════ */
  body:has(.com-lista) main {
    display: grid;
    grid-template-columns: minmax(240px, 300px) 1fr;
    column-gap: 28px;
    row-gap: 16px;
    align-items: start;
  }

  body:has(.com-lista) .com-kicker,
  body:has(.com-lista) .com-titulo,
  body:has(.com-lista) .com-sub {
    grid-column: 1 / -1;
  }

  body:has(.com-lista) .com-buscar,
  body:has(.com-lista) .com-formas,
  body:has(.com-lista) .com-filtros {
    grid-column: 1;
    min-width: 0;
  }

  body:has(.com-lista) .com-vacio,
  body:has(.com-lista) .com-lista,
  body:has(.com-lista) .com-cargando,
  body:has(.com-lista) .com-error {
    grid-column: 2;
    grid-row: 4 / span 4;
    min-width: 0;
  }

  body:has(.com-lista) .com-lista {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
}
