/* V10 - formularios más compactos + scroll limpio + botón volver arriba robusto */

/* Lienzo limpio en toda la web: sin pista/franja gris lateral al desplazarse. */
html,
body {
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  background: #fff !important;
  scrollbar-gutter: auto !important;
  -ms-overflow-style: none !important;
  scrollbar-width: none !important;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
  background: transparent !important;
}

/* Evita halos laterales de contenedores de páginas internas. */
body.pagina-legal,
body.pagina-legal main,
body.pagina-legal .legal-contenido,
body.pagina-legal .miga-global,
body.pagina-legal .footer-gael {
  max-width: 100% !important;
  filter: none !important;
}

/* Botón volver arriba: siempre clicable cuando es visible. */
.volver-arriba {
  position: fixed !important;
  z-index: 1800 !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
}
.volver-arriba.visible {
  pointer-events: auto !important;
}

/* =========================================================
   FORMULARIOS MODALES: compactación vertical adicional
   ========================================================= */
.modal-informacion {
  width: min(570px, calc(100% - 34px)) !important;
  max-height: calc(100dvh - 24px) !important;
}
.modal-reunion {
  width: min(535px, calc(100% - 34px)) !important;
  max-height: calc(100dvh - 24px) !important;
}
.modal-asesoria .formulario-cabecera {
  padding: 11px 20px 9px !important;
  gap: 8px !important;
}
.modal-asesoria .formulario-icono {
  width: 31px !important;
  height: 31px !important;
  flex-basis: 31px !important;
}
.modal-asesoria .formulario-icono svg {
  width: 16px !important;
  height: 16px !important;
}
.modal-asesoria .formulario-etiqueta {
  font-size: 8.5px !important;
  line-height: 1 !important;
}
.modal-asesoria .formulario-cabecera h2 {
  margin: 1px 0 1px !important;
  font-size: 18px !important;
  line-height: 1.12 !important;
}
.modal-asesoria .formulario-cabecera p {
  margin: 0 !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
}
.modal-asesoria form {
  padding: 9px 20px 12px !important;
}
.modal-asesoria .bloque-formulario {
  padding-bottom: 6px !important;
}
.modal-asesoria .bloque-formulario + .bloque-formulario {
  padding-top: 6px !important;
}
.modal-asesoria .bloque-formulario legend {
  margin-bottom: 4px !important;
  font-size: 10.5px !important;
  line-height: 1.15 !important;
}
.modal-asesoria .tipo-solicitante {
  gap: 5px !important;
}
.modal-asesoria .tipo-solicitante label span {
  min-height: 30px !important;
  padding: 4px 7px !important;
  gap: 5px !important;
  font-size: 10.5px !important;
}
.modal-asesoria .tipo-solicitante label svg {
  width: 13px !important;
  height: 13px !important;
}
.modal-asesoria .campos-formulario {
  gap: 5px 8px !important;
}
.modal-asesoria .campos-formulario label {
  gap: 2px !important;
  font-size: 10px !important;
  line-height: 1.15 !important;
}
.modal-asesoria .campos-formulario input,
.modal-asesoria .campos-formulario select {
  min-height: 30px !important;
  height: 30px !important;
  padding: 4px 8px !important;
  font-size: 11.5px !important;
}
.modal-asesoria .campos-formulario textarea {
  min-height: 42px !important;
  height: 42px !important;
  padding: 5px 8px !important;
  font-size: 11.5px !important;
  line-height: 1.25 !important;
  resize: vertical !important;
}
.modal-asesoria .campo-error {
  min-height: 0 !important;
  font-size: 9px !important;
  line-height: 1.1 !important;
}
.modal-asesoria .aceptacion {
  margin-top: 0 !important;
  gap: 5px !important;
  font-size: 10px !important;
  line-height: 1.2 !important;
}
.modal-asesoria .aceptacion input {
  width: 14px !important;
  height: 14px !important;
  min-height: 14px !important;
}
.modal-asesoria .error-aceptacion {
  margin-left: 18px !important;
}
.modal-asesoria .aviso-reunion {
  margin: 6px 0 !important;
  padding: 6px 8px !important;
  gap: 6px !important;
}
.modal-asesoria .aviso-reunion svg {
  width: 17px !important;
  height: 17px !important;
}
.modal-asesoria .aviso-reunion p,
.modal-asesoria .aviso-reunion span {
  font-size: 10px !important;
  line-height: 1.2 !important;
}
.modal-asesoria .boton-envio {
  min-height: 35px !important;
  height: 35px !important;
  margin-top: 6px !important;
  font-size: 11.5px !important;
}
.modal-asesoria .seguridad-formulario {
  margin-top: 4px !important;
  font-size: 9.5px !important;
  line-height: 1.1 !important;
}
.modal-asesoria .formulario-resultado {
  margin-top: 5px !important;
}
.modal-asesoria .cerrar-modal {
  top: 7px !important;
  right: 7px !important;
  width: 30px !important;
  height: 30px !important;
}

/* Tablets */
@media (max-width: 960px) {
  .modal-informacion { width: min(535px, calc(100% - 24px)) !important; }
  .modal-reunion { width: min(510px, calc(100% - 24px)) !important; }
  .modal-asesoria .formulario-cabecera { padding: 10px 17px 8px !important; }
  .modal-asesoria form { padding: 8px 17px 11px !important; }
}

/* Móviles: dos columnas útiles para reducir longitud sin eliminar campos. */
@media (max-width: 620px) {
  .modal-informacion,
  .modal-reunion {
    width: calc(100% - 14px) !important;
    max-height: calc(100dvh - 12px) !important;
    border-radius: 8px !important;
  }
  .modal-asesoria .formulario-cabecera {
    padding: 9px 12px 7px !important;
    gap: 7px !important;
  }
  .modal-asesoria .formulario-icono {
    width: 29px !important;
    height: 29px !important;
    flex-basis: 29px !important;
  }
  .modal-asesoria .formulario-cabecera h2 {
    padding-right: 22px !important;
    font-size: 16px !important;
  }
  .modal-asesoria .formulario-cabecera p {
    font-size: 10px !important;
  }
  .modal-asesoria form {
    padding: 7px 11px 10px !important;
  }
  .modal-asesoria .campos-formulario {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 5px 7px !important;
  }
  .modal-asesoria .campos-formulario .campo-ancho {
    grid-column: 1 / -1 !important;
  }
  .modal-asesoria .campos-formulario label {
    min-width: 0 !important;
    font-size: 9.5px !important;
  }
  .modal-asesoria .campos-formulario input,
  .modal-asesoria .campos-formulario select {
    min-width: 0 !important;
    min-height: 34px !important;
    height: 34px !important;
    padding: 5px 6px !important;
    font-size: 11px !important;
  }
  .modal-asesoria .campos-formulario textarea {
    min-height: 44px !important;
    height: 44px !important;
    padding: 5px 7px !important;
    font-size: 11px !important;
  }
  .modal-asesoria .tipo-solicitante label span {
    min-height: 34px !important;
    padding: 4px 5px !important;
    font-size: 10px !important;
  }
  .modal-asesoria .boton-envio {
    min-height: 38px !important;
    height: 38px !important;
  }
  .modal-asesoria .aceptacion {
    font-size: 9.5px !important;
  }
}

/* Pantallas móviles muy estrechas: conservar legibilidad. */
@media (max-width: 360px) {
  .modal-asesoria .campos-formulario {
    grid-template-columns: 1fr !important;
  }
  .modal-asesoria .campos-formulario .campo-ancho {
    grid-column: auto !important;
  }
}
.footer-logo-enlace {
  display: inline-block;
  line-height: 0;
  border-radius: 50%;
  cursor: pointer;
}
.footer-logo-enlace:focus-visible {
  outline: 3px solid #ffc323;
  outline-offset: 4px;
}
