/* =====================================================================
   gig.mx Fase 1 · Estilos por página (ERS §6–§9)
   Este archivo crece por secciones: Layout común · Inicio · Nosotros ·
   Desarrollos · Contacto. Cada bloque está delimitado con su comentario.
   ===================================================================== */

/* ---------- Layout común ---------- */
.gx-page .gx-sr-only:focus { position: fixed !important; top: 12px; left: 12px; width: auto; height: auto; clip: auto; margin: 0; padding: 10px 16px;
  z-index: 2000; background: var(--gx-purple); color: var(--gx-surface); border-radius: 8px; }
.gx-ico { display: inline-block; width: 1em; height: 1em; vertical-align: middle; }

/* Modales de documento (acceso, avisos, cookies) */
.gx-modal__card--doc { min-height: 0; max-height: 88vh; overflow: auto; text-align: left; align-items: stretch; padding: calc(var(--gx-u) * 70) calc(var(--gx-u) * 70) calc(var(--gx-u) * 50); }
.gx-modal__card--doc .gx-modal__title { margin-bottom: calc(var(--gx-u) * 30); }
.gx-login-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.gx-login-item { background: var(--gx-white); border-radius: var(--gx-r-card); padding: 24px; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.gx-login-item .gx-body { color: var(--gx-t-60); flex: 1; }
.gx-doc-list { columns: 2 280px; column-gap: 32px; }
.gx-doc-list li { break-inside: avoid; margin-bottom: 12px; }
.gx-doc-list a { font-size: var(--gx-fs-body); color: var(--gx-purple); text-decoration: underline; text-underline-offset: 3px; }
.gx-doc-frame { width: 100%; height: 65vh; border-radius: var(--gx-r-img); overflow: hidden; background: var(--gx-white); }
.gx-doc-frame iframe { width: 100%; height: 100%; border: 0; }

/* ===== Inicio ===== */

/* ===== Nosotros ===== */

/* ===== Desarrollos ===== */

/* ===== Contacto ===== */

.gx-contact-page { position: relative; isolation: isolate; display: grid; grid-template-columns: 671fr 1143fr; gap: calc(var(--gx-u) * 26);
  align-items: end; padding: calc(var(--gx-u) * 174) calc(var(--gx-u) * 40) 0; min-height: calc(var(--gx-u) * 942); }
.gx-contact-page__bg { position: fixed; inset: 0; z-index: -1; }
.gx-contact-page__bg img { width: 100%; height: 100%; object-fit: cover; }
.gx-contact-page__bg::after { content: ""; position: absolute; inset: 0; background: rgba(250, 250, 250, .85); }
.gx-contact-page .gx-contact-card--info { align-self: start; }
.gx-contact-page__form { padding: calc(var(--gx-u) * 39); }
.gx-form--wide { gap: calc(var(--gx-u) * 14); }
.gx-form--wide .gx-check { white-space: normal; }
.gx-is-contact .gx-footer { position: relative; }
