/* =========================================================
   ✅ GRID “tipo app” (6 cards visibles en 1 pantalla móvil)
   - 2 columnas
   - 3 filas visibles (ajustando altura/padding/imagen)
   - cards compactas (sin botón +)
   ========================================================= */

/* Wrapper opcional (si existe en la vista) */
.wx-grid-wrap{
  margin-top: 6px;
}

/* ===== Grid cards ===== */
.wx-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:10px;
  /* ✅ aire lateral SIN depender del layout */
  padding: 6px 14px 16px;
}

/* Desktop: 3 columnas (sin padding lateral extra) */
@media(min-width:768px){
  .wx-grid{
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap:12px;
    padding: 0;
  }
}

/* ===== Card base ===== */
.wx-card{
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 12px 26px rgba(15,23,42,.08);
  cursor:pointer;
  border:1px solid rgba(15,23,42,.06);
  transition: transform .12s ease, box-shadow .12s ease, filter .12s ease;
  position:relative;
}

.wx-card:hover{
  transform: translateY(-1px);
  filter: brightness(1.01);
  box-shadow:0 16px 34px rgba(15,23,42,.12);
}

/* ✅ un poquito más alta para “llenar” la pantalla y que no se vea flaco */
.wx-card img{
  width:100%;
  height:108px;              /* antes 96px */
  object-fit:cover;
  display:block;
}

/* Contenedor de texto */
.wx-card .p{
  padding:9px 11px;          /* antes 8px 10px */
}

/* Título compacto */
.wx-title{
  font-weight:900;
  line-height:1.1;
  font-size:.96rem;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:2.2em;
}

/* Descripción: se mantiene pero en móvil la ocultamos */
.wx-desc{
  margin-top:6px;
  color:#6b7280;
  font-size:.84rem;
  line-height:1.25;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:2.1em;
}

/* Precio */
.wx-price{
  font-weight:900;
  margin-top:4px;
  color:#0f172a;
  font-size:.98rem;
}

/* Hint */
.wx-hint{
  color:#6b7280;
  font-size:.82rem;
  margin-top:4px;
}

/* =========================================================
   ✅ MODO “COMPACTO MOBILE”
   - mantiene 6 visibles
   - pero con mejor aire lateral y cards menos “flacas”
   ========================================================= */
@media (max-width: 430px){
  .wx-grid{
    gap:10px;                 /* antes 8px */
    padding: 8px 16px 18px;   /* ✅ más aire a los lados */
  }

  .wx-card{
    border-radius:14px;
    box-shadow:0 10px 22px rgba(15,23,42,.08);
  }

  .wx-card img{
    height:110px;              /* antes 88px (sube un poco) */
  }

  .wx-card .p{
    padding:8px 10px;
  }

  .wx-title{
    font-size:.93rem;
    min-height:2.2em;
  }

  .wx-price{
    font-size:.95rem;
    margin-top:6px;
  }
  
  
  /* ✅ FIX: que el precio no quede pegado al borde */
.wx-price{
  font-weight:900;
  margin-top:4px;
  color:#0f172a;
  font-size:.98rem;

  /* NUEVO */
  display:block;
  padding-left: 2px;   /* empuja sutilmente hacia adentro */
  padding-right: 6px;  /* por si algún layout lo “recorta” */
}

/* En mobile, un pelito más (se nota más) */
@media (max-width: 430px){
  .wx-price{
    padding-left: 3px;
    padding-right: 8px;
  }
}



  /* Para que quepan 6: fuera desc + hint */
  .wx-desc{ display:none; }
  .wx-hint{ display:none; }
}

/* =========================================================
   ✅ Accesibilidad (texto “solo lectores” si lo usas)
   ========================================================= */
.wx-sr-status{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* =========================================================
   Wizard bits (tu CSS original, intacto)
   ========================================================= */
.wxw-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.wxw-name{ font-weight:900; font-size:1.05rem; line-height:1.15; }
.wxw-sub{ color:#6b7280; font-size:.85rem; margin-top:2px; }
.wxw-pill{
  display:inline-flex; align-items:center; gap:8px;
  padding:6px 10px; border-radius:999px;
  background: rgba(37,99,235,.08);
  border:1px solid rgba(37,99,235,.18);
  color:#1e40af; font-weight:900; font-size:.78rem;
  white-space: nowrap;
}
.wxw-progress{ height:8px; background:#e5e7eb; border-radius:999px; overflow:hidden; box-shadow: inset 0 1px 2px rgba(0,0,0,.06); }
.wxw-progress > div{ height:100%; width:0%; background:#2563eb; border-radius:999px; transition: width .15s ease; }

.wxw-hero{
  display:flex; gap:12px; align-items:flex-start;
  padding:10px 12px; border-radius:16px;
  border:1px solid rgba(15,23,42,.08);
  background:#fff; margin-bottom:12px;
}
.wxw-hero img{
  width:92px; height:72px; border-radius:14px; object-fit:cover; flex:0 0 auto;
  border:1px solid rgba(15,23,42,.08);
}
.wxw-hero .tx{ min-width:0; }
.wxw-hero .nm{ font-weight:900; line-height:1.15; }
.wxw-hero .ds{
  margin-top:4px; color:#6b7280; font-size:.86rem; line-height:1.25;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}

.wxw-step{
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  padding:12px;
  background:#fff;

  display:flex;
  flex-direction:column;
  min-height:0;
}
.wxw-step-title{ font-weight:900; font-size:1.02rem; }
.wxw-step-meta{ color:#6b7280; font-size:.82rem; margin-top:2px; }

.wxw-step-help{
  margin-top:10px; display:flex; align-items:flex-start; gap:10px;
  padding:10px 12px; border-radius:14px;
  background: rgba(250, 204, 21, .15);
  border: 1px solid rgba(250, 204, 21, .35);
  color:#5a4300;
}
.wxw-step-help i{ margin-top:2px; color:#b45309; }

.wxw-option{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:10px 12px; border-radius:14px;
  border:1px solid rgba(15,23,42,.08);
  background:#fff; cursor:pointer;
  transition: transform .08s ease, box-shadow .12s ease, border-color .12s ease;
}
.wxw-option:hover{ border-color: rgba(37,99,235,.28); box-shadow: 0 10px 18px rgba(15,23,42,.08); }
.wxw-option.is-selected{ border-color: rgba(37,99,235,.55); box-shadow: 0 12px 22px rgba(37,99,235,.12); }
.wxw-option .left{ display:flex; align-items:center; gap:10px; min-width:0; }
.wxw-option .nm{ font-weight:800; color:#0f172a; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.wxw-option .pr{ font-weight:900; color:#16a34a; white-space:nowrap; }

.wxw-options{ margin-top:10px; display:grid; gap:8px; padding-right:2px; }

.wxw-textarea{
  width:100%; margin-top:10px;
  border-radius:14px; border:1px solid rgba(15,23,42,.12);
  padding:10px 12px; outline:none;
}
.wxw-textarea:focus{ border-color: rgba(37,99,235,.35); box-shadow: 0 0 0 3px rgba(37,99,235,.12); }

.wxw-error{
  display:none; margin-top:10px;
  padding:10px 12px; border-radius:14px;
  background: rgba(239,68,68,.10);
  border: 1px solid rgba(239,68,68,.24);
  color:#7f1d1d; font-weight:700; font-size:.88rem;
}

.wxw-footer{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.wxw-total{ display:flex; flex-direction:column; gap:2px; }
.wxw-total .lbl{ color:#6b7280; font-size:.78rem; }
.wxw-total .val{ font-weight:900; font-size:1.08rem; color:#0f172a; }
.wxw-btn{ border-radius:999px !important; font-weight:900 !important; padding:.7rem 1.05rem !important; }
.wxw-btn:disabled{ opacity:.6; }

/* =========================================================
   ✅ MODAL DESDE CERO (la parte importante)
   ========================================================= */
.wxm .modal-dialog{
  margin: .75rem auto;
  height: calc(100dvh - 1.5rem);
  max-height: calc(100dvh - 1.5rem);
}
@media (min-width: 992px){
  .wxm .modal-dialog{
    margin: 1rem auto;
    height: calc(100dvh - 2rem);
    max-height: calc(100dvh - 2rem);
  }
}

.wxm__content{
  height: 100%;
  max-height: 100%;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius: 18px;
}

.wxm__header{ flex: 0 0 auto; }
.wxm__footer{
  flex: 0 0 auto;
  margin-top: auto;
  background:#fff;
  box-shadow: 0 -10px 24px rgba(15,23,42,.10);
}

.wxm__body{
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
  padding-bottom: 14px;
}

.wxw-scroll{
  margin-top: 6px;
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding-right: 2px;
}

.wxm__body::after{
  content:"";
  display:block;
  height: 6px;
}
