/*
 * Zoom 90% visual - jwenvivo.com
 * Objetivo: que el sitio se vea más compacto, parecido a usar el navegador al 90%,
 * sin aplicar transform: scale() para no romper scroll, mapas, modales ni posiciones fijas.
 */

:root{
  --jw-zoom90-font: 90%;
  --jw-zoom90-space: .9;
}

@media (min-width: 768px){
  html{
    font-size: var(--jw-zoom90-font) !important;
  }

  body{
    font-size: .94rem;
  }

  /* Tipografía general */
  h1{ font-size: clamp(1.65rem, 2.4vw, 2.35rem); }
  h2{ font-size: clamp(1.45rem, 2vw, 2rem); }
  h3{ font-size: clamp(1.25rem, 1.7vw, 1.65rem); }
  h4{ font-size: clamp(1.08rem, 1.4vw, 1.35rem); }
  p, li, label, input, select, textarea, button, .btn, .form-control, .form-select{
    line-height: 1.35;
  }

  /* Contenedores: más aire útil en pantalla, como zoom del navegador */
  .container,
  .container-sm,
  .container-md,
  .container-lg,
  .container-xl,
  .container-xxl{
    max-width: min(96vw, 1260px) !important;
  }

  .container-fluid{
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  /* Cards, paneles y bloques */
  .card,
  .panel,
  .box,
  .well,
  .modal-content,
  .dropdown-menu,
  .list-group-item{
    font-size: .94rem;
  }

  .card-body,
  .panel-body,
  .modal-body{
    padding: .9rem !important;
  }

  .card-header,
  .card-footer,
  .modal-header,
  .modal-footer,
  .panel-heading,
  .panel-footer{
    padding: .75rem .9rem !important;
  }

  /* Formularios y botones */
  .btn,
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"]{
    font-size: .9rem !important;
  }

  .btn:not(.btn-lg),
  button:not(.btn-lg),
  input[type="button"],
  input[type="submit"],
  input[type="reset"]{
    padding: .42rem .7rem !important;
  }

  .btn-lg{
    font-size: 1rem !important;
    padding: .55rem .9rem !important;
  }

  .form-control,
  .form-select,
  input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  select,
  textarea,
  .select2-container .select2-selection--single{
    font-size: .92rem !important;
    min-height: 2.15rem;
  }

  .form-control:not(textarea),
  .form-select,
  input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  select,
  .select2-container .select2-selection--single{
    padding-top: .38rem !important;
    padding-bottom: .38rem !important;
  }

  .form-group,
  .mb-3,
  .mb-4{
    margin-bottom: .8rem !important;
  }

  /* Tablas más compactas */
  table,
  .table,
  .dataTable{
    font-size: .88rem !important;
  }

  .table > :not(caption) > * > *,
  table.dataTable tbody th,
  table.dataTable tbody td,
  table.dataTable thead th,
  table.dataTable thead td,
  table th,
  table td{
    padding: .42rem .5rem !important;
    vertical-align: middle !important;
  }

  .dataTables_wrapper .dataTables_length,
  .dataTables_wrapper .dataTables_filter,
  .dataTables_wrapper .dataTables_info,
  .dataTables_wrapper .dataTables_paginate{
    font-size: .88rem !important;
  }

  /* Menús y navegación */
  .navbar,
  .nav,
  .admin-menu,
  .admin-menu-uniforme-v3,
  .sidebar,
  .menu,
  header{
    font-size: .92rem;
  }

  .navbar-brand,
  .brand-title,
  .logo,
  .titulo,
  .title{
    letter-spacing: -.01em;
  }

  .nav-link,
  .navbar a,
  .menu a,
  .admin-menu a,
  .admin-menu-uniforme-v3 a{
    padding-top: .45rem !important;
    padding-bottom: .45rem !important;
  }

  /* Modales: que no se vean enormes */
  .modal-dialog{
    max-width: min(92vw, 760px);
  }

  .modal-title{
    font-size: 1.1rem !important;
  }

  /* Alertas, badges y mensajes */
  .alert{
    padding: .65rem .85rem !important;
    font-size: .9rem;
  }

  .badge,
  .label,
  .pill{
    font-size: .72rem !important;
  }

  /* Espaciados comunes heredados de Bootstrap y estilos inline frecuentes */
  .py-5{ padding-top: 2.2rem !important; padding-bottom: 2.2rem !important; }
  .py-4{ padding-top: 1.6rem !important; padding-bottom: 1.6rem !important; }
  .py-3{ padding-top: .85rem !important; padding-bottom: .85rem !important; }
  .px-5{ padding-left: 2.2rem !important; padding-right: 2.2rem !important; }
  .px-4{ padding-left: 1.6rem !important; padding-right: 1.6rem !important; }
  .px-3{ padding-left: .85rem !important; padding-right: .85rem !important; }

  .mt-5{ margin-top: 2.2rem !important; }
  .mb-5{ margin-bottom: 2.2rem !important; }
  .mt-4{ margin-top: 1.6rem !important; }
  .mb-4{ margin-bottom: 1.6rem !important; }
  .mt-3{ margin-top: .85rem !important; }
  .mb-3{ margin-bottom: .85rem !important; }

  /* Mapas, videos y elementos interactivos: no aplicar transform ni escalado real */
  #map,
  .map,
  .google-map,
  iframe,
  video,
  canvas{
    transform: none !important;
  }
}

@media (max-width: 767.98px){
  /* En móvil no se fuerza 90% para no hacer ilegibles formularios y botones. */
  html{ font-size: 100%; }

  .container,
  .container-fluid{
    padding-left: .85rem !important;
    padding-right: .85rem !important;
  }

  .table-responsive{
    font-size: .92rem;
  }
}
