/* ========================================================================
 * FILE: hm-wizard.css
 * REEMPLAZAR COMPLETO (LIMPIO)
 * Objetivo:
 *  - Control +/- sin input visible (span)
 *  - Número SIEMPRE visible, base 0
 *  - Overrides ultra específicos para evitar estilos agresivos del theme
 *
 * Limpieza aplicada:
 *  - Eliminé duplicados de .hm-btn (estaba definido 3 veces).
 *  - Eliminé duplicados de .hm-mode-landing__actions (estaba 2 veces).
 *  - Eliminé bloques repetidos/contradictorios de Layout 0 (varios sets de presets y overrides).
 *  - Dejé UN SOLO mecanismo para Layout 0:
 *      - JS setea vars inline: --hm-l0-card-w, --hm-l0-card-h, --hm-l0-img-h, --hm-l0-img-fit
 *      - CSS SOLO consume esas vars en .hm-layout0 .hm-opt y .hm-layout0 .hm-opt__img
 * ====================================================================== */

/* Variables de marca (no tocar el bordó: es el MISMO de siempre) */
.hm-wizard {
  width: 100%;
  --hm-bordo: #6d0e17;
  --hm-negro: #000000;
  --hm-blanco: #ffffff;
  --hm-amarillo: #fdd100;
}

/* Contener el plugin dentro del ancho del tema — evita desbordamientos en mobile */
#hm-wizard-root {
  max-width: 100%;
  box-sizing: border-box;
}

.hm-wizard__grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 18px;
  align-items: start;
}

/* min-width:0 en items del grid: evita que contenido largo (ej: Info útil) desborde el viewport en mobile */
.hm-wizard__grid > * {
  min-width: 0;
}

@media (max-width: 980px) {
  .hm-wizard__grid { grid-template-columns: 1fr; }
}

.hm-card {
  background: #fff;
  border: 1px solid #e7e7e7;
  border-radius: 10px;
  padding: 14px;
}

.hm-card--flat { padding: 12px; }

.hm-card__title { font-weight: 900; font-size: 16px; margin-bottom: 10px; }
.hm-muted { color: #666; white-space: pre-line; }

.hm-step__title { font-weight: 900; font-size: 20px; }
.hm-step__sub { color: #666; margin-top: 6px; font-weight: 700; font-size: 14px; }
.hm-step__body { margin-top: 12px; }
.hm-step__nav { margin-top: 14px; display: flex; gap: 10px; justify-content: space-between; }

/* Botones (UN SOLO bloque) */
.hm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.15);
  background: #fff;
  cursor: pointer;
  font-weight: 700;
  color: #111;
}

.hm-btn:disabled { opacity: 0.45; cursor: not-allowed; }

.hm-btn--primary {
  border-color: #6d0e17;
  background: #6d0e17;
  color: #fff;
}

.hm-btn--ghost { background: #fafafa; }

.hm-btn--underline-red {
  background: transparent;
  border: none;
  padding: 0;
  color: #b40000;
  text-decoration: underline;
  font-weight: 800;
}

.hm-btn-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

/* Steps: botón Siguiente acompaña el filete (color + texto legible). */
.hm-step__nav [data-nav="next"]{
  border-color: var(--hm-next-accent, var(--hm-select-accent, var(--hm-accent, #6d0e17)));
  background: var(--hm-next-accent, var(--hm-select-accent, var(--hm-accent, #6d0e17)));
  color: var(--hm-next-text, #ffffff);
  opacity: 1;
  text-shadow:
    0  1px 0 var(--hm-next-text-stroke, #000),
    0 -1px 0 var(--hm-next-text-stroke, #000),
    1px 0  0 var(--hm-next-text-stroke, #000),
   -1px 0  0 var(--hm-next-text-stroke, #000);
}

.hm-step__nav [data-nav="next"][disabled]{
  border-color: var(--hm-next-accent, var(--hm-select-accent, var(--hm-accent, #6d0e17)));
  background: var(--hm-next-accent, var(--hm-select-accent, var(--hm-accent, #6d0e17)));
  color: var(--hm-next-text, #ffffff);
  opacity: 0.35;
  text-shadow:
    0  1px 0 var(--hm-next-text-stroke, #000),
    0 -1px 0 var(--hm-next-text-stroke, #000),
    1px 0  0 var(--hm-next-text-stroke, #000),
   -1px 0  0 var(--hm-next-text-stroke, #000);
}

/* Grid opciones */
.hm-grid-opts {
  display: grid;
  grid-template-columns: repeat(var(--hm-cols, 2), minmax(0, 1fr));
  gap: 12px;
  max-width: 100%;
  box-sizing: border-box;
}

@media (max-width: 980px) {
  .hm-grid-opts { grid-template-columns: repeat(min(var(--hm-cols, 2), 2), minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .hm-grid-opts { grid-template-columns: 1fr; }
}
/* Mobile estrecho: 1 columna siempre, sin importar data-cols configurado */
@media (max-width: 480px) {
  .hm-grid-opts { grid-template-columns: 1fr !important; }
  /* En 1 columna forzada, imagen de cards col-3/4 vuelve a layout horizontal */
  #hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="3"] .hm-opt,
  #hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt {
    flex-direction: row !important;
    align-items: center !important;
  }
  #hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="3"] .hm-opt__img,
  #hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt__img {
    width: 64px !important;
    height: 64px !important;
    aspect-ratio: unset !important;
    max-height: none !important;
    flex-shrink: 0;
    margin: 0 !important;
    object-fit: contain !important;
  }
}

/* Card opción base (Steps + Layout 0) */
.hm-opt {
  display: flex;
  gap: var(--hm-card-gap, 12px);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  text-align: left;
  border: 2px solid #eaeaea;
  border-radius: var(--hm-card-radius, 12px);
  padding: var(--hm-card-pad, 12px);
  background: #fff;
  cursor: pointer;
}

.hm-opt.is-selected{
  border-style: solid;
  border-width: 2px;
  border-color: var(--hm-select-accent, var(--hm-accent, #6d0e17)) !important;
  box-shadow: 0 0 0 2px var(--hm-select-accent, var(--hm-accent, #6d0e17));
}

/* Steps: si el filete global está OFF, no resaltamos la selección */
.hm-steps-select-border-off .hm-opt.is-selected{
  border-width: 1px !important;
  border-color: rgba(0,0,0,.08) !important;
  box-shadow: none;
}

.hm-opt__img { 
  width: var(--hm-img-size, 72px); 
  height: var(--hm-img-size, 72px); 
  border-radius: 10px; 
  object-fit: cover; 
  border: 1px solid #eee; 
}
.hm-opt__title { font-weight: 900; }
.hm-opt__sub { margin-top: 4px; color: #666; white-space: pre-line; }

/* Quote panel */
.hm-quote__panel { font-size: 14px; }

.hm-quote__row {
  display: grid;
  grid-template-columns: 34px 46px 1fr auto auto;
  gap: 10px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid #eee;
}

.hm-quote__qty {
  font-weight: 900;
  font-size: 14px;
  color: #444;
  text-align: right;
}

.hm-quote__thumb { width: 46px; height: 46px; border-radius: 10px; object-fit: cover; border: 1px solid #eee; }
.hm-quote__name { font-weight: 900; }
.hm-quote__sub { color: #666; font-size: 12px; margin-top: 4px; line-height: 1.3; display: grid; gap: 2px; }
.hm-quote__mini { color: #777; font-size: 11px; line-height: 1.25; }

.hm-quote__price { text-align: right; font-weight: 900; display: grid; gap: 2px; }
.hm-link { background: transparent; border: none; color: #b40000; cursor: pointer; text-decoration: underline; font-weight: 800; }

.hm-quote__totals { margin-top: 12px; border-top: 1px solid #eee; padding-top: 10px; display: grid; gap: 8px; }
.hm-quote__tot { display: flex; justify-content: space-between; gap: 10px; }
.hm-quote__actions { margin-top: 12px; display: grid; gap: 8px; }

.hm-pill {
  display: inline-block;
  font-weight: 900;
  font-size: 14px;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid #e2b9bd;
  color: #6d0e17;
  background: rgba(109,14,23,0.06);
}

/* Modal */
.hm-modal { position: fixed; inset: 0; display: none; z-index: 9999; }
.hm-modal.is-open { display: block; }
.hm-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.45); }
.hm-modal__dialog {
  position: relative;
  max-width: 860px;
  margin: 5vh auto;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid #eee;
}
.hm-modal__head { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-bottom: 1px solid #eee; }
.hm-modal__title { font-weight: 900; font-size: 16px; }
.hm-modal__close { border: none; background: transparent; font-size: 20px; cursor: pointer; padding: 4px 10px; }
.hm-modal__body { padding: 14px; max-height: 75vh; overflow: auto; }

.hm-fin__block { border: 1px solid #eee; border-radius: 12px; padding: 12px; }
.hm-fin__title { font-weight: 900; margin-bottom: 10px; }
.hm-fin__list { display: grid; gap: 10px; }
.hm-fin__row { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: start; padding: 10px; border: 1px solid #eee; border-radius: 12px; }
.hm-fin__name { font-weight: 900; }
.hm-fin__desc { color: #666; font-size: 12px; margin-top: 4px; }
.hm-fin__right { text-align: right; display: grid; gap: 4px; justify-items: end; }

.hm-share-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 540px) { .hm-share-grid { grid-template-columns: 1fr; } }

.hm-check { display: flex; align-items: flex-start; gap: 10px; width: 100%; margin: 10px 0; }
.hm-check input[type="checkbox"] { margin-top: 2px; }
.hm-check span { display: block; width: 100%; }
.hm-check__sub { display: block; font-size: 12px; color: #666; margin-top: 4px; }

/* Extras layout */
.hm-extras { display: grid; gap: 12px; }

/* Sprint 2: Extras en pantalla final (UI) */
.hm-extras__top { margin-bottom: 6px; }
.hm-extras__topTitle { font-weight: 900; font-size: 16px; }
.hm-extras__topSub { color: #666; font-size: 12px; margin-top: 4px; }

.hm-extras__section { border: 1px solid #eee; border-radius: 12px; padding: 12px; }
.hm-extras__head { margin-bottom: 10px; }
.hm-extras__h { font-weight: 900; }
.hm-extras__s { color: #666; font-size: 12px; margin-top: 4px; }
.hm-extras__list { display: grid; gap: 10px; }

.hm-extras__row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 10px;
  border: 1px solid #eee;
  border-radius: 12px;
}

.hm-extras__row--qty { grid-template-columns: 1fr auto; }

.hm-extras__chk { width: 16px; height: 16px; margin: 0; }
.hm-extras__txt { display: grid; gap: 4px; }
.hm-extras__title { font-weight: 900; }
.hm-extras__sub { color: #666; font-size: 12px; }

/* ===== CONTROL +/- (SPAN) ===== */
.hm-qty {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  border: 1px solid #ddd;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  max-width: 92px;
}

.hm-qty__btn {
  width: 22px;
  height: 24px;
  border: none;
  background: #fafafa;
  cursor: pointer;
  font-weight: 900;
  font-size: 14px;
  color: #111;
  line-height: 1;
}

.hm-qty__btn:active { transform: scale(0.98); }

.hm-qty__val {
  width: 34px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 13px;
  line-height: 24px;
  background: #fff !important;
  user-select: none;
}

/* ===== Overrides ultra específicos (theme proof) ===== */
#hm-wizard-root .hm-qty .hm-qty__val,
#hm-wizard-root .hm-qty .hm-qty__val:focus,
#hm-wizard-root .hm-qty .hm-qty__val:active,
#hm-wizard-wrap #hm-wizard-root .hm-qty__val {
  color: #111 !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: #fff !important;
  background-color: #fff !important;
  text-shadow: none !important;
  filter: none !important;
}

/* Email apps grid */
.hm-app-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

@media (max-width: 540px) { .hm-app-grid { grid-template-columns: 1fr; } }

.hm-app-btn {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 10px;
  align-items: center;
  text-decoration: none;
  border: 1px solid #e7e7e7;
  border-radius: 12px;
  padding: 10px 12px;
  background: #fff;
  color: #111;
  font-weight: 800;
}

.hm-app-ico {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fafafa;
  border: 1px solid #eee;
}

.hm-app-ico svg { width: 22px; height: 22px; fill: currentColor; opacity: 0.9; }
.hm-app-name { font-size: 14px; }
.hm-modal-actions { margin-top: 12px; display: flex; justify-content: flex-end; }

/* Landing modo (UN SOLO bloque) */
.hm-mode-landing__actions{
  display:flex;
  flex-direction:column;
  gap: 10px;
  margin-top: 12px;
}

.hm-btn--new{ color: #b00020; text-decoration: underline; }
.hm-btn--choose{ color: #111; text-decoration: none; }

/* Entrega (monto) en presupuesto */
.hm-quote__deposit input{
  width:140px;
  max-width:100%;
  padding:6px 8px;
  border:1px solid #d0d0d0;
  border-radius:8px;
}

/* =========================
   Botones finales (presupuesto) - estilos data-driven
   ========================= */
.hm-btn[data-hm-text="bordo"] { color: var(--hm-bordo) !important; }
.hm-btn[data-hm-text="negro"] { color: var(--hm-negro) !important; }
.hm-btn[data-hm-text="blanco"] { color: var(--hm-blanco) !important; }
.hm-btn[data-hm-text="amarillo"] { color: var(--hm-amarillo) !important; }

.hm-btn[data-hm-text="blanco"]{
  text-shadow: 0 1px 0 var(--hm-negro), 0 -1px 0 var(--hm-negro), 1px 0 0 var(--hm-negro), -1px 0 0 var(--hm-negro);
}
.hm-btn[data-hm-text="negro"]{
  text-shadow: 0 1px 0 var(--hm-blanco), 0 -1px 0 var(--hm-blanco), 1px 0 0 var(--hm-blanco), -1px 0 0 var(--hm-blanco);
}

.hm-btn[data-hm-bg="bordo"] { background: var(--hm-bordo) !important; }
.hm-btn[data-hm-bg="negro"] { background: var(--hm-negro) !important; }
.hm-btn[data-hm-bg="blanco"] { background: var(--hm-blanco) !important; }
.hm-btn[data-hm-bg="transparent"] { background: transparent !important; }
.hm-btn[data-hm-bg="amarillo"] { background: var(--hm-amarillo) !important; }

.hm-btn[data-hm-border="bordo"] { border-color: var(--hm-bordo) !important; border-style: solid !important; border-width: 1px !important; }
.hm-btn[data-hm-border="negro"] { border-color: var(--hm-negro) !important; border-style: solid !important; border-width: 1px !important; }
.hm-btn[data-hm-border="blanco"] { border-color: var(--hm-blanco) !important; border-style: solid !important; border-width: 1px !important; }
.hm-btn[data-hm-border="amarillo"] { border-color: var(--hm-amarillo) !important; border-style: solid !important; border-width: 1px !important; }
.hm-btn[data-hm-border="none"] { border-color: transparent !important; border-style: solid !important; border-width: 0px !important; }

.hm-btn[data-hm-underline="1"] { text-decoration: underline !important; }

/* ------------------- Apariencia (Steps) ------------------- */
#hm-wizard-root .hm-opt{ --hm-accent: #6b0f1a; } /* bordo default */
#hm-wizard-root .hm-color-bordo{ --hm-accent: #6b0f1a; }
#hm-wizard-root .hm-color-negro{ --hm-accent: #111; }
#hm-wizard-root .hm-color-rojo{ --hm-accent: #c30000; }
#hm-wizard-root .hm-color-amarillo{ --hm-accent: #fdd100; }

#hm-wizard-root .hm-opt.hm-has-shadow{ box-shadow: 0 10px 22px rgba(0,0,0,.10) !important; }
#hm-wizard-root .hm-opt.hm-has-border{ border: 1px solid rgba(0,0,0,.12) !important; }
#hm-wizard-root .hm-opt.is-selected.hm-has-border{
  border: 2px solid var(--hm-select-accent, var(--hm-accent, #6d0e17)) !important;
}

/* Conflicto shadow vs glow: cuando glow está activo, cede la shadow estática */
#hm-wizard-root .hm-opt.hm-has-shadow.hm-hover-glow:hover,
#hm-wizard-root .hm-layout0 .hm-opt.hm-has-shadow.hm-hover-glow:hover{ box-shadow: 0 0 0 4px color-mix(in srgb, var(--hm-accent, #6b0c1a) 14%, transparent), 0 14px 28px rgba(17,24,39,.18) !important; }
#hm-wizard-root .hm-opt.hm-has-shadow.hm-tap-glow:active,
#hm-wizard-root .hm-layout0 .hm-opt.hm-has-shadow.hm-tap-glow:active{ box-shadow: 0 0 0 4px color-mix(in srgb, var(--hm-accent, #6b0c1a) 20%, transparent), 0 8px 16px rgba(17,24,39,.14) !important; }
/* lift y zoom_lift también deben poder aplicar su box-shadow dinámico */
#hm-wizard-root .hm-opt.hm-has-shadow.hm-hover-lift:hover,
#hm-wizard-root .hm-opt.hm-has-shadow.hm-hover-zoom_lift:hover{ box-shadow: 0 14px 28px rgba(17,24,39,.16) !important; }

@media (prefers-reduced-motion: no-preference){
  #hm-wizard-root .hm-opt{ transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, filter .18s ease; }
  #hm-wizard-root .hm-opt.hm-hover-lift:hover{ transform: translateY(-3px); }
  #hm-wizard-root .hm-opt.hm-hover-zoom:hover{ transform: scale(1.02); }
  #hm-wizard-root .hm-opt.hm-hover-zoom_lift:hover{ transform: translateY(-3px) scale(1.02); }

  #hm-wizard-root .hm-opt.hm-tap-lift:active{ transform: translateY(-2px); }
  #hm-wizard-root .hm-opt.hm-tap-zoom:active{ transform: scale(1.01); }
  #hm-wizard-root .hm-opt.hm-tap-zoom_lift:active{ transform: translateY(-2px) scale(1.01); }
}

/* Checkmark base (si se usa en Steps) */
#hm-wizard-root .hm-opt{ position: relative; }
#hm-wizard-root .hm-opt__check{
  position: absolute;
  top: 10px;
  right: 10px;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  display: none;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  background: var(--hm-accent);
  color: #fff;
}
#hm-wizard-root .hm-opt.hm-has-checkmark.is-selected .hm-opt__check{ display: inline-flex; }

/* =============================================================================
   STEPS - TAMAÑOS CONFIGURABLES (AGREGADO)
   Sistema de 2 controles independientes: card + imagen
   ============================================================================= */

/* Steps: tamaño global de card completa (imagen acompaña) */
#hm-wizard-root.hm-steps-card-sm .hm-opt{ --hm-card-pad: 10px; --hm-img-size: 56px; }
#hm-wizard-root.hm-steps-card-md .hm-opt{ --hm-card-pad: 12px; --hm-img-size: 72px; }
#hm-wizard-root.hm-steps-card-lg .hm-opt{ --hm-card-pad: 14px; --hm-img-size: 92px; }

/* Imagen interna si existe */
#hm-wizard-root .hm-opt .hm-opt__img,
#hm-wizard-root .hm-opt img{
  max-width: 100%;
}
#hm-wizard-root .hm-opt .hm-opt__img{
  width: var(--hm-img-size, 72px);
  height: var(--hm-img-size, 72px);
  object-fit: contain;
}

/* Sizes presets (Steps) - controles adicionales para card y imagen */
#hm-wizard-root.hm-steps-card-sm{ --hm-card-pad: 10px; --hm-card-gap: 10px; --hm-card-radius: 12px; }
#hm-wizard-root.hm-steps-card-md{ --hm-card-pad: 12px; --hm-card-gap: 11px; --hm-card-radius: 14px; }
#hm-wizard-root.hm-steps-card-lg{ --hm-card-pad: 14px; --hm-card-gap: 12px; --hm-card-radius: 16px; }

#hm-wizard-root.hm-steps-img-sm{ --hm-opt-img: 56px; --hm-opt-img-fit: cover; }
#hm-wizard-root.hm-steps-img-md{ --hm-opt-img: 72px; --hm-opt-img-fit: contain; }
#hm-wizard-root.hm-steps-img-lg{ --hm-opt-img: 96px; --hm-opt-img-fit: cover; }

/* =========================
   LAYOUT 0 (ÚNICO BLOQUE)
   - Imagen sin filetes
   - Tamaños consumen SOLO vars seteadas por JS
   ========================= */
.hm-layout0 .hm-grid-opts{
  gap: 16px;
  justify-items: center;
}

.hm-layout0 .hm-opt{
  width: 100%;
  max-width: var(--hm-l0-card-w, 9999px);
  min-height: var(--hm-l0-card-h, 230px);
  border-radius: 14px;
  overflow: hidden;
  display: block;        /* Layout 0: imagen arriba + meta abajo */
  padding: 0 !important; /* quita filetes por padding */
}

.hm-layout0 .hm-opt__img{
  width: 100% !important;
  max-width: none !important;
  height: var(--hm-l0-img-h, 125px) !important;
  display: block;
  margin: 0 !important;
  object-fit: var(--hm-l0-img-fit, contain) !important;
  object-position: center;
  background: transparent !important;
  border: 0 !important;        /* quita filete */
  border-radius: 0 !important; /* al ras; redondeo por overflow hidden */
  box-shadow: none !important;
}

.hm-layout0 .hm-opt__meta{
  padding: 12px 14px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  min-height: 56px;
}

.hm-layout0 .hm-opt__title{
  font-size: 22px;
  letter-spacing: .08em;
  font-weight: 800;
}

.hm-layout0 .hm-opt.hm-color-bordo .hm-opt__title{ color:#6b0f1a; }
.hm-layout0 .hm-opt.hm-color-negro .hm-opt__title{ color:#111; }
.hm-layout0 .hm-opt.hm-color-rojo .hm-opt__title{ color:#c30000; }
.hm-layout0 .hm-opt.hm-color-amarillo .hm-opt__title{ color:var(--hm-amarillo); }

/* Layout 0: no mostrar checkmark */
.hm-layout0 .hm-opt__check{ display: none !important; }


/* Presupuesto final: alineación de botones */
.hm-quote__actions.hm-actions--left{justify-content:flex-start;}
.hm-quote__actions.hm-actions--center{justify-content:center;}
.hm-quote__actions.hm-actions--right{justify-content:flex-end;}


/* =========================
 * INFO MODAL (overlight)
 * ========================= */
.hm-info-modal-overlay{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:16px;
  background:rgba(0,0,0,.55);
  z-index:999999;
}
.hm-info-modal{
  position:relative;
  width:min(720px, 92vw);
  max-height:80vh;
  overflow:auto;
  background:#fff;
  border-radius:16px;
  padding:18px 18px 16px;
  box-shadow:0 12px 40px rgba(0,0,0,.25);
}
.hm-info-modal__close{
  position:absolute;
  top:10px;
  right:10px;
  width:36px;
  height:36px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.15);
  background:#fff;
  cursor:pointer;
  font-size:22px;
  line-height:1;
}
.hm-info-modal__title{
  font-weight:700;
  font-size:20px;
  margin:0 44px 6px 0;
}
.hm-info-modal__subtitle{
  font-weight:700;
  margin-bottom:12px;
}
.hm-info-modal__body{
  line-height:1.45;
}
.hm-info-modal__title[data-hm-color="bordo"]{ color:#7b0f1b; }
.hm-info-modal__title[data-hm-color="negro"]{ color:#111; }
.hm-info-modal__title[data-hm-color="blanco"]{ color:#fff; background:#111; padding:2px 6px; border-radius:6px; display:inline-block; }
.hm-info-modal__title[data-hm-color="amarillo"]{ color:#111; background:#f6c343; padding:2px 6px; border-radius:6px; display:inline-block; }

.hm-info-text{ white-space:pre-line; line-height:1.55; }

.hm-info-modal-btnwrap{
  margin-top:10px;
  display:flex;
}
.hm-info-modal-btnwrap--left{ justify-content:flex-start; }
.hm-info-modal-btnwrap--center{ justify-content:center; }
.hm-info-modal-btnwrap--right{ justify-content:flex-end; }

.hm-info-modal-btnwrap--full .hm-btn{ width:100%; }
.hm-info-modal-btnwrap--md .hm-btn{ min-width:220px; }
.hm-info-modal-btnwrap--sm .hm-btn{ min-width:160px; }

html.hm-modal-open, body.hm-modal-open{
  overflow:hidden !important;
}

/* =====================================================
   multi_toggle: checkbox badge en card
   ===================================================== */
.hm-opt--multi_toggle {
  position: relative;
}
.hm-opt__chk-badge {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 20px;
  height: 20px;
  border-radius: 4px;
  border: 2px solid var(--hm-select-accent, var(--hm-accent, #6b0f1a));
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--hm-select-accent, var(--hm-accent, #6b0f1a));
  transition: background 0.15s, color 0.15s;
  pointer-events: none;
  flex-shrink: 0;
}
.hm-opt__chk-badge svg { display: none; }
.hm-opt__chk-badge.is-checked {
  background: var(--hm-select-accent, var(--hm-accent, #6b0f1a));
  color: #fff;
}
.hm-opt__chk-badge.is-checked svg { display: block; }

/* Steps con filete OFF: el badge usa color neutro */
.hm-steps-select-border-off .hm-opt__chk-badge {
  border-color: rgba(0,0,0,.25);
  color: rgba(0,0,0,.25);
}
.hm-steps-select-border-off .hm-opt__chk-badge.is-checked {
  background: #555;
  border-color: #555;
  color: #fff;
}

/* =====================================================
   qty_items: control +/- dentro de la card (siempre visible)
   ===================================================== */
.hm-qty--card {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  justify-content: center;
  pointer-events: all;
}
.hm-qty--card .hm-qty__btn {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid var(--hm-select-accent, var(--hm-accent, #6b0f1a));
  background: #fff;
  color: var(--hm-select-accent, var(--hm-accent, #6b0f1a));
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s, color 0.15s;
}
.hm-qty--card .hm-qty__btn:hover {
  background: var(--hm-select-accent, var(--hm-accent, #6b0f1a));
  color: #fff;
}
.hm-qty--card .hm-qty__val {
  min-width: 24px;
  text-align: center;
  font-weight: 700;
  font-size: 15px;
}

/* =====================================================
   Fix #5: filete de selección — máxima especificidad
   para sobrevivir cualquier override del tema WP
   ===================================================== */
#hm-wizard-root .hm-opt.is-selected,
#hm-wizard-root .hm-opt.is-selected.hm-has-border,
#hm-wizard-root .hm-opt.is-selected.hm-has-shadow {
  border-style: solid !important;
  border-width: 2px !important;
  border-color: var(--hm-select-accent, var(--hm-accent, #6b0f1a)) !important;
  box-shadow: 0 0 0 3px var(--hm-select-accent, var(--hm-accent, #6b0f1a)) !important;
  outline: none !important;
}
/* Cuando filete global está OFF: revertir a neutro */
#hm-wizard-root.hm-steps-select-border-off .hm-opt.is-selected,
#hm-wizard-root.hm-steps-select-border-off .hm-opt.is-selected.hm-has-border {
  border-width: 1px !important;
  border-color: rgba(0,0,0,.12) !important;
  box-shadow: none !important;
}


/* Final renderer v2 */
.hm-final__grid{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
  gap:18px;
  align-items:start;
}
@media (max-width:980px){
  .hm-final__grid{grid-template-columns:1fr;}
}
.hm-final-lines{display:grid;gap:10px;margin-top:14px;}
.hm-final-line{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  padding:10px 0;
  border-bottom:1px solid #eee;
}
.hm-final-line__name{font-weight:900;}
.hm-final-line__meta{color:#666;font-size:12px;margin-top:2px;}
.hm-final-line__price{font-weight:900;white-space:nowrap;}
.hm-final-totals{display:grid;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid #eee;}
.hm-final-total{display:flex;justify-content:space-between;gap:10px;}
.hm-final-total--main strong{font-size:20px;color:var(--hm-bordo);}
.hm-final__actions{display:grid;gap:14px;}
.hm-final-buttons{display:flex;flex-wrap:wrap;gap:10px;}
.hm-final-block{display:grid;gap:8px;}
.hm-final-block__label{font-weight:900;}
.hm-final-coupon{display:flex;gap:8px;flex-wrap:wrap;}
.hm-final-coupon input,.hm-final-deposit,.hm-baseqty input{
  width:100%;
  border:1px solid #ddd;
  border-radius:999px;
  min-height:40px;
  padding:0 14px;
}
.hm-baseqty{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.hm-final-info-btnwrap{display:flex;}
.hm-final-info-btn{background:var(--hm-bordo);color:#fff;border:1px solid var(--hm-bordo);}
.hm-opt__chk-badge{width:24px;height:24px;border-radius:50%;top:10px;right:10px;}
.hm-opt__chk-badge svg{display:block;opacity:0;}
.hm-opt__chk-badge.is-checked svg{opacity:1;}
.hm-opt--qty_items{align-items:flex-start;}
.hm-opt--qty_items .hm-opt__meta{width:100%;}
.hm-qty--card{justify-content:flex-start;margin-top:12px;}

.hm-card__sub, .hm-stepcard__sub{opacity:.78;}

/* v12 budget layout */
.hm-budgetscreen__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:18px;align-items:start}
@media (max-width:980px){.hm-budgetscreen__grid{grid-template-columns:1fr}}
.hm-budgetscreen__left,.hm-budgetscreen__right{padding:12px;border:1px solid #e8e8e8;border-radius:12px;background:#fff}
.hm-budget-left{display:grid;gap:12px;margin-top:12px}
.hm-budget-left__group{border:1px solid #ececec;border-radius:10px;padding:10px;background:#fff}
.hm-budget-left__title{font-weight:900;margin-bottom:10px}
.hm-budget-left__items{display:grid;gap:8px}
.hm-budget-extra{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-top:1px solid #f1f1f1}
.hm-budget-extra:first-child{border-top:0;padding-top:0}
.hm-budget-extra input{margin-top:2px}
.hm-budget-extra__text{display:grid;gap:2px}
.hm-budget-extra__name{font-weight:700;line-height:1.25}
.hm-budget-extra__sub,.hm-budget-extra__price{font-size:12px;color:#666;line-height:1.25}
.hm-budget-left__actions{display:flex;justify-content:space-between;gap:10px;margin-top:14px}
.hm-budget-cards{display:grid;gap:12px;margin-top:12px}
.hm-budget-card{display:grid;grid-template-columns:72px 1fr auto;gap:12px;padding:10px;border:1px solid #ececec;border-radius:12px;background:#fff}
.hm-budget-card__media img,.hm-budget-card__ph{width:72px;height:72px;border-radius:10px;object-fit:cover;background:#f3f3f3;border:1px solid #ececec}
.hm-budget-card__name{font-weight:900;line-height:1.25;margin-bottom:6px}
.hm-budget-card__prices,.hm-budget-card__totals{display:grid;gap:2px;font-size:12px;color:#555}
.hm-budget-card__qtyrow{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:10px 0}
.hm-budget-card__qty{display:flex;align-items:center;gap:8px}
.hm-budget-card__qtyval{min-width:24px;text-align:center;font-weight:900}
.hm-budget-card__side{display:grid;align-content:start;justify-items:end;gap:8px}
.hm-budget-card__badge{font-size:12px;font-weight:900;color:var(--hm-bordo)}
.hm-budgetscreen__info{margin-bottom:14px;padding:10px;border:1px solid #ececec;border-radius:10px}
.hm-budget-totals{margin-top:16px}

/* v13 budget polish */
.hm-budget-card{grid-template-columns:72px 1fr auto;align-items:start;}
.hm-budget-card__body{min-width:0;}
.hm-budget-card__name{margin-bottom:4px;}
.hm-budget-card__prices--inline{display:block;white-space:normal;font-size:12px;line-height:1.3;margin-bottom:8px;}
.hm-budget-card__qtyrow{margin:0;}
.hm-budget-card__qtylabel{display:none;}
.hm-budget-card__side{min-width:82px;display:flex;flex-direction:column;align-items:flex-end;gap:10px;}
.hm-budget-card__rm{padding:4px 8px !important;font-size:12px !important;border-color:#9b1c1c !important;color:#9b1c1c !important;background:#fff !important;}
.hm-budget-card.is-base .hm-budget-card__side{justify-content:flex-start;}
.hm-budget-left__group{padding:10px 12px;}
.hm-budget-left__title{font-size:14px;}
.hm-budget-extra__price{display:none;}


/* Step cards compact fix */
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts{align-items:start;}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step{justify-items:stretch;align-items:stretch;}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step .hm-opt{
  max-width:none;
  min-width:0;
  min-height:0;
  height:100%;
  align-self:stretch;
  box-sizing:border-box;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step .hm-opt__meta{min-width:0;flex:1 1 auto;}
#hm-wizard-root:not(.hm-layout0) .hm-opt__title{line-height:1.25;}
#hm-wizard-root:not(.hm-layout0) .hm-opt__sub{font-size:12px;line-height:1.35;}
#hm-wizard-root:not(.hm-layout0) #hm-info-panel .hm-info-text{white-space:pre-line;line-height:1.65;}

/* Densidad adaptable por cantidad de cards en step */
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt,
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="2"] .hm-opt{
  --hm-card-gap: 12px;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="3"] .hm-opt{
  --hm-card-gap: 10px;
  --hm-card-pad: 11px;
  --hm-img-size: 64px;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="3"] .hm-opt__title{
  font-size: 15px;
  line-height: 1.2;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="3"] .hm-opt__sub{
  font-size: 11px;
  line-height: 1.3;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt{
  --hm-card-gap: 8px;
  --hm-card-pad: 10px;
  --hm-img-size: 52px;
  border-radius: 10px;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt__title{
  font-size: 14px;
  line-height: 1.15;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt__sub{
  font-size: 10.5px;
  line-height: 1.25;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt__chk-badge{
  width: 20px;
  height: 20px;
  top: 8px;
  right: 8px;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt--multi_toggle{padding-bottom:38px !important;}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt--multi_toggle .hm-opt__chk-badge,
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt--qty_items .hm-qty--card{
  right: 8px !important;
  bottom: 8px !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt--qty_items{padding-bottom:40px !important;}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt--qty_items .hm-qty__btn{
  min-width: 24px;
  height: 24px;
  border-radius: 6px !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt--qty_items .hm-qty__val{
  min-width: 14px;
  font-size: 12px;
}


/* v17 final layout compact */
.hm-budgetscreen__grid{grid-template-columns:minmax(280px,.95fr) minmax(0,1.25fr) !important;gap:16px;}
@media (max-width:980px){.hm-budgetscreen__grid{grid-template-columns:1fr !important;}}
.hm-budgetscreen__right{display:block;}
.hm-budgetscreen__info{margin-bottom:12px;padding:10px 12px;border:1px solid #ececec;border-radius:10px;background:#fff;white-space:pre-line;line-height:1.55;}
.hm-budget-left__actions{justify-content:flex-start;flex-wrap:wrap;}
.hm-budget-cards{gap:10px;}
.hm-budget-card{grid-template-columns:56px 1fr auto !important;gap:10px;padding:8px 10px;align-items:center;}
.hm-budget-card__media img,.hm-budget-card__ph{width:56px;height:56px;border-radius:8px;}
.hm-budget-card__name{margin-bottom:2px;font-size:14px;line-height:1.25;}
.hm-budget-card__totals,.hm-budget-card__totals--compact{display:grid;gap:2px;font-size:12px;line-height:1.25;color:#444;}
.hm-budget-card__side{min-width:112px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.hm-budget-card__qtyrow{margin:0;}
.hm-budget-card__qty .hm-btn{min-width:28px;height:28px;padding:0 8px;}
.hm-budget-card__qtyval{min-width:18px;}
.hm-budget-card__rm{padding:3px 8px !important;font-size:11px !important;border-color:#a61b1b !important;color:#a61b1b !important;background:#fff !important;}
.hm-final-info-btnwrap{margin:10px 0 12px;}
.hm-final-info-btn.is-sm{padding:6px 10px;font-size:12px;}
.hm-final-info-btn.is-md{padding:8px 14px;font-size:14px;}
.hm-final-info-btn.is-full{padding:9px 14px;font-size:14px;width:100%;}
.hm-final-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;justify-content:flex-start !important;}
.hm-final-buttons--row1 .hm-final-btn{flex:1 1 180px;}
.hm-final-buttons--row2 .hm-final-btn{flex:1 1 100%;}
.hm-final-buttons--row3 .hm-final-btn{flex:1 1 220px;}
.hm-budget-extra__sub,.hm-budget-extra__name,.hm-budgetscreen__info,.hm-info-text,.hm-info-modal__body{white-space:pre-line;}
#hm-wizard-root:not(.hm-layout0) .hm-step__sub,
#hm-wizard-root:not(.hm-layout0) .hm-opt__sub,
#hm-wizard-root:not(.hm-layout0) #hm-info-panel .hm-info-text{white-space:pre-line;line-height:1.55;}

/* v27 focused fixes: preserve v17 layout/step sizing, keep budget/checklist/qty improvements */
#hm-step-info-modal-btn,.hm-final-info-btn,#hm-wizard-root .hm-info-btn{display:flex !important;align-items:center !important;justify-content:center !important;text-align:center !important;line-height:1 !important;min-height:42px !important;padding-top:0 !important;padding-bottom:0 !important;white-space:nowrap !important;}
#hm-wizard-root .hm-info-modal-btnwrap .hm-btn{display:flex !important;align-items:center !important;justify-content:center !important;line-height:1 !important;}
/* Mobile: el botón de info puede tener texto largo — permitir wrap para que no desborde */
@media (max-width: 680px) {
  #hm-step-info-modal-btn, #hm-wizard-root .hm-info-btn {
    white-space: normal !important;
    word-break: break-word !important;
    line-height: 1.3 !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
    height: auto !important;
    min-height: 42px !important;
  }
}

/* keep original step card sizing from v17; only place controls inside cards */
#hm-wizard-root:not(.hm-layout0) .hm-opt--multi_toggle{position:relative;padding-bottom:42px !important;}
#hm-wizard-root:not(.hm-layout0) .hm-opt--multi_toggle .hm-opt__chk-badge{position:absolute !important;right:12px !important;bottom:12px !important;top:auto !important;left:auto !important;margin:0 !important;width:22px !important;height:22px !important;border-radius:4px !important;border:1px solid var(--hm-accent, var(--hm-bordo)) !important;background:#fff !important;color:transparent !important;font-size:0 !important;display:flex !important;align-items:center !important;justify-content:center !important;box-sizing:border-box !important;}
#hm-wizard-root:not(.hm-layout0) .hm-opt--multi_toggle .hm-opt__chk-badge::after{content:'✓';font-size:14px;line-height:1;color:#fff;opacity:0;transform:translateY(-1px);}
#hm-wizard-root:not(.hm-layout0) .hm-opt--multi_toggle .hm-opt__chk-badge.is-checked{background:var(--hm-accent, var(--hm-bordo)) !important;border-color:var(--hm-accent, var(--hm-bordo)) !important;}
#hm-wizard-root:not(.hm-layout0) .hm-opt--multi_toggle .hm-opt__chk-badge.is-checked::after{opacity:1;}
#hm-wizard-root:not(.hm-layout0) .hm-opt--qty_items{position:relative;padding-bottom:46px !important;}
#hm-wizard-root:not(.hm-layout0) .hm-opt--qty_items .hm-qty--card{position:absolute !important;right:12px !important;bottom:10px !important;left:auto !important;display:flex !important;align-items:center !important;justify-content:flex-end !important;gap:8px !important;margin:0 !important;z-index:2 !important;}
#hm-wizard-root:not(.hm-layout0) .hm-opt--qty_items .hm-qty__btn{display:flex !important;align-items:center !important;justify-content:center !important;min-width:28px;height:28px;padding:0 8px !important;border-radius:8px !important;}
#hm-wizard-root:not(.hm-layout0) .hm-opt--qty_items .hm-qty__val{min-width:18px;text-align:center;font-weight:900;}
#hm-wizard-root:not(.hm-layout0) .hm-opt--qty_items .hm-opt__meta{padding-bottom:0 !important;}
#hm-wizard-root .hm-opt--single_select .hm-opt__chk-badge,
#hm-wizard-root .hm-opt--single_select .hm-opt__check{display:none !important;}

/* Budget final 45/55 with stronger right column */
#hm-wizard-root .hm-budgetscreen__grid{display:grid !important;grid-template-columns:minmax(360px,45%) minmax(520px,55%) !important;gap:18px !important;justify-content:center !important;align-items:start !important;}
@media (max-width:1200px){#hm-wizard-root .hm-budgetscreen__grid{grid-template-columns:minmax(340px,42%) minmax(0,58%) !important;}}
@media (max-width:980px){#hm-wizard-root .hm-budgetscreen__grid{grid-template-columns:1fr !important;}}
#hm-wizard-root .hm-budgetscreen__left{max-width:none !important;width:100% !important;min-width:0 !important;}
#hm-wizard-root .hm-budgetscreen__right{max-width:none !important;width:100% !important;min-width:0 !important;}
#hm-budget-right > .hm-step__title{font-size:30px !important;line-height:1.1 !important;text-align:center !important;font-weight:800 !important;margin:4px 0 14px !important;}

/* left extras cards contained */
#hm-wizard-root .hm-budget-left__group{padding:10px 12px !important;overflow:hidden !important;}
#hm-wizard-root .hm-budget-left__items{display:grid !important;gap:10px !important;min-width:0 !important;}
#hm-wizard-root .hm-budget-extra{width:100% !important;min-width:0 !important;box-sizing:border-box !important;display:grid !important;grid-template-columns:18px 44px minmax(0,1fr) !important;align-items:center !important;gap:10px !important;padding:10px !important;border:1px solid #ececec !important;border-radius:10px !important;background:#fff !important;overflow:hidden !important;}
#hm-wizard-root .hm-budget-extra::before{content:none !important;display:none !important;}
#hm-wizard-root .hm-budget-extra input{grid-column:1 !important;grid-row:1 !important;margin:0 !important;align-self:center !important;}
#hm-wizard-root .hm-budget-extra__media{grid-column:2 !important;grid-row:1 !important;display:block !important;width:44px !important;min-width:44px !important;}
#hm-wizard-root .hm-budget-extra__media img,#hm-wizard-root .hm-budget-extra__ph{width:44px !important;height:44px !important;display:block !important;border-radius:8px !important;object-fit:cover !important;background:#f4f4f4 !important;border:1px solid #ececec !important;}
#hm-wizard-root .hm-budget-extra__text{grid-column:3 !important;grid-row:1 !important;min-width:0 !important;display:block !important;}
#hm-wizard-root .hm-budget-extra__name{display:block !important;font-size:14px !important;line-height:1.2 !important;white-space:normal !important;overflow-wrap:anywhere !important;}
#hm-wizard-root .hm-budget-extra__sub{display:block !important;font-size:12px !important;line-height:1.25 !important;white-space:pre-line !important;color:#666 !important;overflow-wrap:anywhere !important;}

/* keep budget cards readable */
#hm-wizard-root .hm-budget-card{grid-template-columns:56px minmax(0,1fr) auto !important;gap:10px !important;align-items:center !important;}
#hm-wizard-root .hm-budget-card__name{font-size:15px !important;line-height:1.2 !important;margin-bottom:4px !important;}
#hm-wizard-root .hm-budget-card__totals,#hm-wizard-root .hm-budget-card__totals--compact{font-size:12px !important;line-height:1.25 !important;white-space:normal !important;}
#hm-wizard-root .hm-budget-card__side{min-width:96px !important;display:flex !important;flex-direction:column !important;align-items:flex-end !important;gap:8px !important;}
#hm-wizard-root .hm-budget-card__qtyrow{display:flex !important;justify-content:flex-end !important;width:100% !important;margin:0 !important;}
#hm-wizard-root .hm-budget-card__qty{display:flex !important;align-items:center !important;gap:8px !important;}

/* preserve line breaks */
#hm-wizard-root .hm-budgetscreen__info,.hm-info-text,.hm-info-modal__body,#hm-wizard-root .hm-opt__sub{white-space:pre-line !important;line-height:1.55 !important;}


/* v29 final budget visual + mobile */
#hm-wizard-root .hm-budgetscreen__grid{
  grid-template-columns:minmax(380px,45%) minmax(560px,55%) !important;
  gap:22px !important;
}
@media (max-width:1200px){
  #hm-wizard-root .hm-budgetscreen__grid{grid-template-columns:minmax(340px,42%) minmax(0,58%) !important;}
}
@media (max-width:980px){
  #hm-wizard-root .hm-budgetscreen__grid{grid-template-columns:1fr !important;}
}
#hm-wizard-root .hm-budgetscreen__left,
#hm-wizard-root .hm-budgetscreen__right{
  padding:18px !important;
  border-radius:18px !important;
  box-shadow:0 8px 24px rgba(0,0,0,.05) !important;
}
#hm-wizard-root .hm-budgetscreen__left .hm-step__title{
  font-size:20px !important;
  line-height:1.2 !important;
  font-weight:900 !important;
  margin-bottom:10px !important;
}
#hm-budget-right > .hm-step__title{
  font-size:24px !important;
  text-align:center !important;
  margin:6px 0 14px !important;
}
#hm-wizard-root .hm-budgetscreen__info--final{
  display:block !important;
  margin-bottom:18px !important;
  padding:14px 16px !important;
  border:1px solid #f0c24d !important;
  border-radius:16px !important;
  background:#fffdf7 !important;
}
#hm-wizard-root .hm-budgetscreen__infoTitle{
  font-weight:900 !important;
  font-size:18px !important;
  color:#222 !important;
  margin-bottom:10px !important;
}
#hm-wizard-root .hm-budgetscreen__infoBody{white-space:normal !important;}
#hm-wizard-root .hm-budgetscreen__bullets{
  margin:0 !important;
  padding-left:22px !important;
  display:grid !important;
  gap:10px !important;
}
#hm-wizard-root .hm-budgetscreen__bullets li,
#hm-wizard-root .hm-budgetscreen__infoBody li{
  font-size:15px !important;
  line-height:1.45 !important;
  color:#333 !important;
}
#hm-wizard-root .hm-budget-cards{margin-top:6px !important;gap:14px !important;}
#hm-wizard-root .hm-budget-card{
  border-radius:16px !important;
  padding:14px !important;
  grid-template-columns:72px minmax(0,1fr) auto !important;
  gap:14px !important;
  align-items:center !important;
}
#hm-wizard-root .hm-budget-card__media img,
#hm-wizard-root .hm-budget-card__ph{
  width:72px !important;height:72px !important;border-radius:12px !important;
}
#hm-wizard-root .hm-budget-card__name{font-size:18px !important;font-weight:900 !important;line-height:1.2 !important;}
#hm-wizard-root .hm-budget-card__totals{gap:6px !important;}
#hm-wizard-root .hm-budget-card__totals > div{font-size:16px !important;line-height:1.35 !important;}
#hm-wizard-root .hm-budget-card__totals strong{font-size:18px !important;}
#hm-wizard-root .hm-budget-card__side{min-width:170px !important;gap:10px !important;align-items:flex-end !important;}
#hm-wizard-root .hm-budget-card__qty .hm-btn{min-width:42px !important;height:42px !important;border-radius:12px !important;font-size:20px !important;}
#hm-wizard-root .hm-budget-card__qtyval{min-width:24px !important;font-size:22px !important;}
#hm-wizard-root .hm-budget-card__rm{padding:10px 18px !important;font-size:14px !important;border-radius:14px !important;}
#hm-wizard-root .hm-final-totals{display:grid !important;gap:10px !important;margin:18px 0 10px !important;}
#hm-wizard-root .hm-final-total{display:flex !important;justify-content:space-between !important;align-items:center !important;gap:12px !important;font-size:18px !important;}
#hm-wizard-root .hm-final-total strong{font-size:20px !important;}
#hm-wizard-root .hm-final-total--main strong{font-size:22px !important;}
#hm-wizard-root .hm-final-info-btn{width:100% !important;border-radius:14px !important;min-height:50px !important;font-size:18px !important;font-weight:800 !important;}
#hm-wizard-root .hm-final-buttons{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:10px !important;margin-top:12px !important;}
#hm-wizard-root .hm-final-buttons--row2,
#hm-wizard-root .hm-final-buttons--row3{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
#hm-wizard-root .hm-final-buttons .hm-btn{min-height:54px !important;border-radius:14px !important;font-size:16px !important;font-weight:800 !important;}
#hm-wizard-root .hm-final-buttons--row2 .hm-final-btn--share{grid-column:1 / -1 !important;}
#hm-wizard-root .hm-budget-left__group{border-radius:14px !important;padding:14px !important;}
#hm-wizard-root .hm-budget-left__title{font-size:16px !important;font-weight:900 !important;margin-bottom:12px !important;}
#hm-wizard-root .hm-budget-extra{grid-template-columns:20px 46px minmax(0,1fr) !important;padding:12px !important;border-radius:12px !important;}
#hm-wizard-root .hm-budget-extra__media img,
#hm-wizard-root .hm-budget-extra__ph{width:46px !important;height:46px !important;border-radius:10px !important;}
#hm-wizard-root .hm-budget-extra__name{font-size:15px !important;font-weight:800 !important;}
#hm-wizard-root .hm-budget-left__actions{display:grid !important;grid-template-columns:1fr 1.4fr !important;gap:14px !important;}
#hm-wizard-root .hm-budget-left__actions .hm-btn{min-height:54px !important;border-radius:16px !important;font-size:18px !important;font-weight:800 !important;}
#hm-wizard-root .hm-budget-left__actions [data-final="scroll-budget"]{background:#b30b16 !important;color:#fff !important;border-color:#b30b16 !important;}
#hm-wizard-root .hm-budgetscreen__left input[type="checkbox"]{width:18px !important;height:18px !important;}
#hm-wizard-root .hm-budgetscreen__right > .hm-budgetscreen__info:empty{display:none !important;}

@media (max-width:760px){
  #hm-wizard-root .hm-budgetscreen__left,
  #hm-wizard-root .hm-budgetscreen__right{padding:14px !important;}
  #hm-budget-right > .hm-step__title{font-size:20px !important;}
  #hm-wizard-root .hm-budget-card{
    grid-template-columns:60px 1fr !important;
    align-items:start !important;
  }
  #hm-wizard-root .hm-budget-card__side{
    grid-column:1 / -1 !important;
    min-width:0 !important;
    width:100% !important;
    display:flex !important;
    flex-direction:row !important;
    justify-content:space-between !important;
    align-items:center !important;
    margin-top:10px !important;
  }
  #hm-wizard-root .hm-budget-card__qtyrow{width:auto !important;}
  #hm-wizard-root .hm-budget-card__totals > div{font-size:15px !important;}
  #hm-wizard-root .hm-final-buttons,
  #hm-wizard-root .hm-final-buttons--row2,
  #hm-wizard-root .hm-final-buttons--row3{grid-template-columns:1fr !important;}
  #hm-wizard-root .hm-budget-left__actions{grid-template-columns:1fr 1fr !important;}
}


/* v30 final visual polish */
#hm-wizard-wrap.is-budget #hm-wizard-side{display:none !important;}
#hm-wizard-wrap.is-budget .hm-wizard__grid{grid-template-columns:1fr !important;}
#hm-wizard-wrap.is-budget #hm-wizard-main{max-width:1320px !important;width:100% !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budgetscreen{max-width:1320px !important;margin:0 auto !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budgetscreen__grid{grid-template-columns:minmax(360px,38%) minmax(0,62%) !important;gap:22px !important;align-items:start !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budgetscreen__left,
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budgetscreen__right{padding:16px !important;border-radius:18px !important;box-shadow:0 10px 28px rgba(0,0,0,.05) !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budgetscreen__left{align-self:start !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budgetscreen__right{align-self:start !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budgetscreen__info--final{display:block !important;margin:0 0 18px !important;padding:16px 18px !important;border:1.5px solid #efc24e !important;border-radius:18px !important;background:#fffdf7 !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budgetscreen__infoTitle{font-size:20px !important;font-weight:900 !important;display:flex !important;align-items:center !important;gap:10px !important;margin-bottom:10px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budgetscreen__infoTitle::before{content:"⌕";display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#f5c74e;color:#fff;font-size:18px;line-height:1;}
#hm-wizard-wrap.is-budget #hm-budget-right > .hm-step__title{font-size:24px !important;font-weight:900 !important;text-align:left !important;margin:0 0 14px !important;display:flex !important;align-items:center !important;gap:12px !important;}
#hm-wizard-wrap.is-budget #hm-budget-right > .hm-step__title::after{content:"";flex:1;height:1px;background:#ddd;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-cards{gap:12px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card{padding:14px 16px !important;border-radius:18px !important;background:#fff !important;border:1px solid #e6e6e6 !important;grid-template-columns:128px minmax(0,1fr) auto !important;gap:14px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__media img,
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__ph{width:128px !important;height:78px !important;border-radius:12px !important;object-fit:cover !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__name{font-size:20px !important;font-weight:900 !important;line-height:1.15 !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__totals > div{font-size:18px !important;line-height:1.4 !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__totals strong{font-size:18px !important;white-space:nowrap !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__side{min-width:150px !important;gap:10px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__qty .hm-btn{min-width:40px !important;height:40px !important;font-size:24px !important;border-radius:12px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__qtyval{font-size:18px !important;font-weight:800 !important;min-width:20px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__rm{border-radius:14px !important;padding:10px 18px !important;font-size:15px !important;font-weight:800 !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-totals{display:grid !important;grid-template-columns:1fr 1fr !important;gap:10px 28px !important;margin:18px 0 14px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-total{font-size:18px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-total--main{grid-column:2 !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-total--main strong{color:#b30b16 !important;font-size:24px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-block__label{font-size:18px !important;font-weight:800 !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-coupon{display:grid !important;grid-template-columns:minmax(0,1fr) auto !important;gap:10px !important;align-items:center !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-coupon input,
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-deposit{min-height:54px !important;border-radius:18px !important;font-size:18px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-info-btn{min-height:52px !important;border-radius:14px !important;font-size:18px !important;font-weight:900 !important;display:flex !important;align-items:center !important;justify-content:center !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons{display:grid !important;gap:12px !important;margin-top:12px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--row1{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--row2{grid-template-columns:1fr !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--row3{grid-template-columns:1fr 1fr !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons .hm-btn{min-height:54px !important;border-radius:16px !important;font-size:18px !important;font-weight:900 !important;display:flex !important;align-items:center !important;justify-content:center !important;}
/* Solo layout — los colores los controla el admin via inline style del JS */
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-left__actions{display:grid !important;grid-template-columns:160px minmax(0,1fr) !important;gap:14px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-left__actions .hm-btn{min-height:68px !important;border-radius:18px !important;font-size:18px !important;font-weight:900 !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-left__actions [data-final="scroll-budget"]{background:#b30b16 !important;color:#fff !important;border-color:#b30b16 !important;}

@media (max-width: 980px){
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budgetscreen__grid{grid-template-columns:1fr !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-totals{grid-template-columns:1fr !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-total--main{grid-column:auto !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card{grid-template-columns:86px minmax(0,1fr) !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__media img,
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__ph{width:86px !important;height:86px !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__name{font-size:18px !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__side{grid-column:1 / -1 !important;display:flex !important;flex-direction:row !important;justify-content:space-between !important;align-items:center !important;min-width:0 !important;width:100% !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__totals > div{font-size:16px !important;}
}
@media (max-width: 640px){
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budgetscreen__left,
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budgetscreen__right{padding:12px !important;}
  #hm-wizard-wrap.is-budget #hm-budget-right > .hm-step__title{font-size:20px !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card{grid-template-columns:72px minmax(0,1fr) !important;padding:12px !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__media img,
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__ph{width:72px !important;height:72px !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__name{font-size:16px !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__totals > div{font-size:14px !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-card__totals strong{font-size:15px !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-coupon{grid-template-columns:1fr !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--row1,
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--row3,
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-left__actions{grid-template-columns:1fr !important;}
}


.hm-btn__icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:0 0 18px;margin-right:8px;vertical-align:middle}
.hm-btn__icon svg{width:18px;height:18px;display:block}
.hm-btn__label{display:inline-block;vertical-align:middle}
.hm-final-btn,.hm-final-info-btn{display:inline-flex !important;align-items:center !important;justify-content:center !important;gap:8px !important}


/* v33 final polish */
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-totals{display:grid !important;grid-template-columns:1fr !important;gap:10px !important;margin:18px 0 14px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-total{display:flex !important;justify-content:space-between !important;align-items:center !important;gap:12px !important;font-size:18px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-total--main{grid-column:auto !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-total--main strong{font-size:22px !important;color:#b30b16 !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-focusback{display:flex !important;justify-content:center !important;margin:10px 0 12px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-focusback .hm-btn{min-width:280px !important;max-width:360px !important;width:100% !important;min-height:54px !important;border-radius:14px !important;font-size:16px !important;font-weight:800 !important;display:flex !important;align-items:center !important;justify-content:center !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--row1{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons .hm-btn{min-height:54px !important;border-radius:14px !important;font-size:15px !important;font-weight:800 !important;display:flex !important;align-items:center !important;justify-content:center !important;gap:8px !important;white-space:nowrap !important;padding:0 12px !important;overflow:hidden !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons .hm-btn .hm-btn__label{white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons .hm-btn .hm-btn__icon{display:inline-flex !important;align-items:center !important;justify-content:center !important;flex:0 0 auto !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons .hm-btn .hm-btn__icon svg{width:16px !important;height:16px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--row2 .hm-final-btn--share{grid-column:1 / -1 !important;}
@media (max-width:980px){
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-budget-focusback .hm-btn{max-width:none !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--row1,
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--row2,
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--row3{grid-template-columns:1fr !important;}
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons .hm-btn{font-size:15px !important;}
}


/* v35 polish */
#hm-wizard-root .hm-budgetscreen__grid{grid-template-columns:minmax(340px,38%) minmax(620px,62%) !important;}
@media (max-width:1200px){#hm-wizard-root .hm-budgetscreen__grid{grid-template-columns:minmax(320px,40%) minmax(0,60%) !important;}}
@media (max-width:980px){#hm-wizard-root .hm-budgetscreen__grid{grid-template-columns:1fr !important;}}
#hm-wizard-root #hm-budget-right .hm-step__title{font-size:20px !important;text-align:center !important;margin:6px 0 12px !important;}
#hm-wizard-root #hm-budget-right .hm-final-totals{display:flex !important;flex-direction:column !important;gap:12px !important;margin:18px 0 14px !important;}
#hm-wizard-root #hm-budget-right .hm-final-total{display:flex !important;justify-content:space-between !important;align-items:center !important;gap:16px !important;width:100% !important;font-size:17px !important;}
#hm-wizard-root #hm-budget-right .hm-final-total span{white-space:nowrap !important;}
#hm-wizard-root #hm-budget-right .hm-final-total strong{white-space:nowrap !important;}
#hm-wizard-root #hm-budget-right .hm-final-total--main strong{font-size:20px !important;color:#b30b16 !important;}
#hm-wizard-root .hm-budget-focusback{display:flex !important;justify-content:center !important;margin:8px 0 12px !important;}
#hm-wizard-root .hm-final-btn--backextras{display:flex !important;align-items:center !important;justify-content:center !important;width:100% !important;max-width:420px !important;min-height:52px !important;border-radius:14px !important;font-size:16px !important;font-weight:800 !important;}
#hm-wizard-root .hm-final-info-btnwrap{margin:0 0 12px !important;}
#hm-wizard-root .hm-final-buttons--row1{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:10px !important;}
#hm-wizard-root .hm-final-buttons--row1 .hm-final-btn{min-width:0 !important;min-height:54px !important;font-size:15px !important;padding:0 12px !important;}
#hm-wizard-root .hm-final-buttons--row1 .hm-btn__label{white-space:nowrap !important;overflow:visible !important;text-overflow:clip !important;font-size:15px !important;}
#hm-wizard-root .hm-final-buttons--row1 .hm-btn__icon{margin-right:6px !important;}
#hm-wizard-root .hm-final-buttons--row1 .hm-final-btn--advisor .hm-btn__label{font-size:14px !important;}
#hm-wizard-root .hm-budget-card{grid-template-columns:72px minmax(0,1fr) auto !important;gap:14px !important;}
#hm-wizard-root .hm-budget-card__body{min-width:0 !important;}
#hm-wizard-root .hm-budget-card__name{font-size:16px !important;line-height:1.2 !important;overflow-wrap:anywhere !important;}
#hm-wizard-root .hm-budget-card__totals{font-size:13px !important;line-height:1.3 !important;}
#hm-wizard-root .hm-budget-card__side{min-width:116px !important;}
#hm-wizard-root .hm-budgetscreen__infoBody, #hm-wizard-root .hm-info-text{white-space:pre-line !important;line-height:1.65 !important;}
@media (max-width:980px){
  #hm-wizard-root .hm-final-buttons--row1{grid-template-columns:1fr !important;}
  #hm-wizard-root .hm-final-btn--backextras{max-width:none !important;}
  #hm-wizard-root #hm-budget-right .hm-final-total span, #hm-wizard-root #hm-budget-right .hm-final-total strong{white-space:normal !important;}
}

/* ── Share modal buttons ─────────────────────────────────── */
.hm-share-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px;}
@media(max-width:480px){.hm-share-grid{grid-template-columns:1fr;}}
.hm-btn--wa{background:#25d366!important;color:#fff!important;border-color:#25d366!important;}
.hm-btn--wa:hover{background:#1ebe5d!important;}
.hm-btn--tg{background:#229ed9!important;color:#fff!important;border-color:#229ed9!important;}
.hm-btn--tg:hover{background:#1a8fc0!important;}

/* ── Cupón de descuento ─────────────────────────────────── */
.hm-coupon-status { font-size: 13px; margin-top: 5px; min-height: 18px; }
.hm-coupon-status--ok    { color: #1a7a3a; font-weight: 600; }
.hm-coupon-status--error { color: #c0392b; }
.hm-final-total--coupon  { color: #1a7a3a; }
.hm-final-total--coupon strong { color: #1a7a3a; }

/* ── Entrega / Depósito ────────────────────────────────────── */
.hm-final-total--deposit      { color: #1a5fa8; }
.hm-final-total--deposit strong { color: #1a5fa8; }
/* ── Recuadro de saldos (reemplaza separadores ---) ─────────── */
.hm-final-saldo-box {
  background: #f4f6f9;
  border: 1px solid #dde3ed;
  border-radius: 8px;
  padding: 10px 14px;
  margin-top: 6px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
/* Estado error: cuando la entrega supera el total contado, los saldos se marcan como inválidos */
.hm-final-saldo-box--error {
  background: #fff4f3;
  border-color: #f1b7b2;
  opacity: 0.6;
}
.hm-final-saldo-box .hm-final-total { margin: 0; padding: 0; border: none; }
.hm-final-total--saldo        { font-weight: 700; color: #1a1a1a; }
.hm-final-total--saldo strong { color: #6b0f1a; }
.hm-final-total--saldo-tarjeta{ font-size: 13px; color: #555; }
.hm-deposit-modal             { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; }
.hm-deposit-row               { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid #f0f0f0; }
.hm-deposit-row--amount       { font-weight: 700; font-size: 16px; color: #1a5fa8; }
.hm-deposit-instrucciones     { background: #f8f9fa; border-radius: 8px; padding: 12px 14px; font-size: 15px; font-weight: 700; color: #222; margin-top: 8px; line-height: 1.4; }
.hm-final-deposit-row         { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.hm-final-deposit-row .hm-final-deposit { flex: 1; min-width: 80px; }

/* ── Cuotas modal (FASE 7) ──────────────────────────────── */
.hm-fin__right--highlight strong { color: #1a7a3a; font-size: 15px; }
.hm-fin__block + .hm-fin__block  { border-top: 1px solid #f0f0f0; margin-top: 4px; padding-top: 4px; }
.hm-fin__row { align-items: flex-start; }
.hm-fin__row:hover { background: #f8f9fa; border-radius: 6px; }


/* Ajustes finales HM: compartir + texto info util */
#hm-wizard-root .hm-budgetscreen__infoBody,
#hm-wizard-root .hm-info-text,
#hm-info-modal-overlay .hm-info-modal__body,
#hm-info-modal-overlay .hm-info-modal__subtitle{
  white-space: pre-wrap !important;
  line-height: 1.4 !important;
  margin: 0 !important;
}
#hm-wizard-root .hm-budgetscreen__infoBody ul,
#hm-wizard-root .hm-budgetscreen__infoBody ol,
#hm-wizard-root .hm-info-text ul,
#hm-wizard-root .hm-info-text ol,
#hm-info-modal-overlay .hm-info-modal__body ul,
#hm-info-modal-overlay .hm-info-modal__body ol{
  margin:0 !important;
  padding-left:20px !important;
}
#hm-wizard-root .hm-budgetscreen__infoBody li,
#hm-wizard-root .hm-info-text li,
#hm-info-modal-overlay .hm-info-modal__body li{
  margin:0 0 4px 0 !important;
}

/* Fase cálculo + modales + compartir */
.hm-share-grid--email{margin-top:10px;}
.hm-final-total--coupon,
.hm-deposit-row--coupon{align-items:flex-start;}
.hm-final-total__meta,
.hm-deposit-row__meta{display:flex;flex-direction:column;min-width:0;gap:2px;}
.hm-final-total__label{font-weight:700;}
.hm-final-total__sub,
.hm-deposit-row__meta small{font-size:12px;line-height:1.25;color:#1a7a3a;}
#hm-wizard-root #hm-budget-right .hm-final-total--coupon{align-items:flex-start !important;}
#hm-wizard-root #hm-budget-right .hm-final-total--coupon .hm-final-total__meta{white-space:normal !important;}
#hm-wizard-root #hm-budget-right .hm-final-total--coupon strong{white-space:nowrap !important;}
@media (max-width: 640px){
  #hm-wizard-root #hm-budget-right .hm-final-total--coupon{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:start !important;
  }
  #hm-wizard-root #hm-budget-right .hm-final-total--coupon .hm-final-total__meta{padding-right:8px;}
  .hm-deposit-row--coupon{display:grid !important;grid-template-columns:minmax(0,1fr) auto !important;gap:10px;align-items:start !important;}
}


/* v66 UX final pass */
#hm-wizard-root .hm-final-info-btnwrap{display:flex !important;margin:0 0 12px !important;}
#hm-wizard-root .hm-final-info-btn{width:auto !important;max-width:100% !important;min-height:44px !important;border-radius:12px !important;white-space:normal !important;line-height:1.15 !important;padding:10px 16px !important;}
#hm-wizard-root .hm-final-info-btn.is-sm{width:auto !important;min-width:140px !important;max-width:220px !important;font-size:13px !important;}
#hm-wizard-root .hm-final-info-btn.is-md{width:auto !important;min-width:220px !important;max-width:340px !important;font-size:14px !important;}
#hm-wizard-root .hm-final-info-btn.is-full{width:100% !important;max-width:none !important;font-size:14px !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons{display:grid !important;gap:12px !important;margin-top:12px !important;justify-content:stretch !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--sm{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--md{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--lg{grid-template-columns:minmax(240px,420px) !important;justify-content:center !important;}
#hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--lg .hm-final-btn{justify-self:center !important;width:100% !important;max-width:420px !important;}
@media (max-width: 860px){
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--sm,
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--md,
  #hm-wizard-wrap.is-budget #hm-wizard-root .hm-final-buttons--lg{grid-template-columns:1fr !important;}
}


/* v28 steps adaptive layouts by columns */
/* 1 columna: evitar cards excesivamente largas */
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"]{
  max-width: 760px;
  margin-left: 0;
  margin-right: auto;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt{
  display:grid !important;
  grid-template-columns: 88px minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  min-height: 118px;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt__img{
  width:88px !important;
  height:88px !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt__meta{
  width:100%;
  min-width:0;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt__title{
  font-size:18px;
  line-height:1.2;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt__sub{
  font-size:13px;
  line-height:1.45;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt--multi_toggle{
  padding-bottom:18px !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt--multi_toggle .hm-opt__chk-badge{
  position:static !important;
  justify-self:end;
  align-self:center;
  margin-left:8px !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt--qty_items{
  grid-template-columns:88px minmax(0,1fr) !important;
  align-items:start;
  padding-bottom:58px !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt--qty_items .hm-qty--card{
  position:absolute !important;
  left:118px !important;
  right:auto !important;
  bottom:14px !important;
  justify-content:flex-start !important;
}

/* 3 y 4 columnas: imagen arriba, texto debajo, lectura optimizada */
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="3"] .hm-opt,
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  text-align:left !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="3"] .hm-opt__img,
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt__img{
  width:100% !important;
  height:auto !important;
  aspect-ratio: 1.08 / 1;
  max-height: 150px;
  display:block;
  margin:0 0 10px 0;
  object-fit:cover !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt__img{
  aspect-ratio: 1 / 1;
  max-height: 120px;
  margin-bottom:8px;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="3"] .hm-opt__meta,
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt__meta{
  width:100%;
  min-width:0;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="3"] .hm-opt__title,
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt__title{
  width:100%;
  margin:0;
  word-break:break-word;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="3"] .hm-opt__sub,
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt__sub{
  width:100%;
  margin-top:4px;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="3"] .hm-opt--multi_toggle,
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt--multi_toggle{
  padding-bottom:16px !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="3"] .hm-opt--multi_toggle .hm-opt__chk-badge,
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt--multi_toggle .hm-opt__chk-badge{
  position:absolute !important;
  top:10px !important;
  right:10px !important;
  left:auto !important;
  bottom:auto !important;
  z-index:3 !important;
  margin:0 !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="3"] .hm-opt--qty_items,
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt--qty_items{
  padding-bottom:58px !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="3"] .hm-opt--qty_items .hm-qty--card,
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt--qty_items .hm-qty--card{
  position:absolute !important;
  left:12px !important;
  right:12px !important;
  bottom:12px !important;
  justify-content:flex-start !important;
  width:auto !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt--qty_items .hm-qty--card{
  left:10px !important;
  right:10px !important;
  bottom:10px !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="3"] .hm-opt--qty_items .hm-qty__btn,
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="4"] .hm-opt--qty_items .hm-qty__btn{
  min-width:26px;
}


/* v29 refinements: 1-column cards narrower and tighter by type */
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"]{
  max-width: 620px;
  margin-left: 0;
  margin-right: auto;
}

/* selección única: card más angosta y compacta */
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt--single_select,
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt:not(.hm-opt--multi_toggle):not(.hm-opt--qty_items){
  display:grid !important;
  grid-template-columns: 82px minmax(0,1fr) !important;
  align-items:center !important;
  gap:12px !important;
  min-height: 94px !important;
  max-width: 590px;
  padding:14px !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt--single_select .hm-opt__img,
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt:not(.hm-opt--multi_toggle):not(.hm-opt--qty_items) .hm-opt__img{
  width:70px !important;
  height:70px !important;
}

/* checklist: menos vacío al inicio, texto pegado a la imagen, contenedor más corto */
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt--multi_toggle{
  display:grid !important;
  grid-template-columns: 22px 82px minmax(0,1fr) !important;
  align-items:center !important;
  gap:10px !important;
  min-height: 94px !important;
  max-width: 590px;
  padding:14px !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt--multi_toggle .hm-opt__chk-badge{
  position:static !important;
  grid-column:1 !important;
  grid-row:1 !important;
  justify-self:start !important;
  align-self:center !important;
  margin:0 !important;
  width:18px !important;
  height:18px !important;
  border-radius:4px !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt--multi_toggle .hm-opt__img{
  grid-column:2 !important;
  grid-row:1 !important;
  width:70px !important;
  height:70px !important;
  margin:0 !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt--multi_toggle .hm-opt__meta{
  grid-column:3 !important;
  grid-row:1 !important;
}

/* input/cantidad: mantener look, pero hacer la card más angosta y ubicar el control debajo de la imagen */
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt--qty_items{
  display:grid !important;
  grid-template-columns: 82px minmax(0,1fr) !important;
  grid-template-rows: auto auto !important;
  align-items:start !important;
  gap:10px 12px !important;
  min-height: 110px !important;
  max-width: 590px;
  padding:14px !important;
  padding-bottom:14px !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt--qty_items .hm-opt__img{
  grid-column:1 !important;
  grid-row:1 !important;
  width:70px !important;
  height:70px !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt--qty_items .hm-opt__meta{
  grid-column:2 !important;
  grid-row:1 !important;
  min-width:0 !important;
}
#hm-wizard-root:not(.hm-layout0) .hm-grid-opts--step[data-cols="1"] .hm-opt--qty_items .hm-qty--card{
  position:static !important;
  grid-column:1 !important;
  grid-row:2 !important;
  justify-content:flex-start !important;
  align-self:start !important;
  margin:2px 0 0 0 !important;
}


/* Layout 0: posición adaptativa del bloque lateral según cards por renglón */
#hm-wizard-wrap.hm-layout0-side-right .hm-wizard__grid{
  grid-template-columns: minmax(0, 1fr) 400px;
  gap: 24px;
  align-items: start;
}
#hm-wizard-wrap.hm-layout0-side-right #hm-wizard-side{
  width:100%;
  max-width:400px;
}
#hm-wizard-wrap.hm-layout0-side-right #hm-info-card{
  width:100%;
  max-width:400px;
}
#hm-wizard-wrap.hm-layout0-side-right #hm-wizard-main{order:1;}
#hm-wizard-wrap.hm-layout0-side-right #hm-wizard-side{order:2;}

#hm-wizard-wrap.hm-layout0-side-bottom .hm-wizard__grid{
  grid-template-columns: 1fr;
  align-items: start;
}
#hm-wizard-wrap.hm-layout0-side-bottom #hm-wizard-main{order:1;}
#hm-wizard-wrap.hm-layout0-side-bottom #hm-wizard-side{
  order:2;
  width:100%;
}
#hm-wizard-wrap.hm-layout0-side-bottom #hm-info-card{
  width:100%;
  max-width:none;
}

@media (max-width: 980px) {
  #hm-wizard-wrap.hm-layout0-side-right .hm-wizard__grid,
  #hm-wizard-wrap.hm-layout0-side-bottom .hm-wizard__grid{
    grid-template-columns: 1fr;
  }
  #hm-wizard-wrap.hm-layout0-side-right #hm-wizard-side,
  #hm-wizard-wrap.hm-layout0-side-bottom #hm-wizard-side{
    order: 2;
    width:100%;
  }
}


/* Efectos hover/tap — reglas canónicas más abajo (pulse/tilt/glow con layout0 override) */


/* Final closeout fixes */
@media (max-width: 767px){
  #hm-wizard-root .hm-final-deposit-row{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    align-items:stretch !important;
  }
  #hm-wizard-root .hm-final-deposit-row .hm-final-deposit,
  #hm-wizard-root .hm-final-deposit-row [data-final="deposit-modal"]{
    width:100% !important;
    min-width:0 !important;
  }
  #hm-wizard-root .hm-budgetscreen__info,
  #hm-wizard-root .hm-budgetscreen__info--final,
  #hm-wizard-root .hm-budgetscreen__infoBody{
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    overflow-wrap:anywhere !important;
    word-break:break-word !important;
  }
}
/* Ensure side/info blocks never overflow */
#hm-wizard-root .hm-budgetscreen__info,
#hm-wizard-root .hm-budgetscreen__info--final{
  max-width:100%;
  box-sizing:border-box;
}

/* Efectos hover/tap: tilt, glow */
#hm-wizard-root .hm-opt.hm-hover-tilt:hover,
#hm-wizard-root .hm-layout0 .hm-opt.hm-hover-tilt:hover{ transform: rotate(-1.25deg) translateY(-3px); }
#hm-wizard-root .hm-opt.hm-hover-glow:hover,
#hm-wizard-root .hm-layout0 .hm-opt.hm-hover-glow:hover{ box-shadow: 0 0 0 4px color-mix(in srgb, var(--hm-accent, #6b0c1a) 12%, transparent), 0 14px 28px rgba(17,24,39,.16); }
#hm-wizard-root .hm-opt.hm-tap-tilt:active,
#hm-wizard-root .hm-layout0 .hm-opt.hm-tap-tilt:active{ transform: rotate(-1.4deg) scale(.985); }
#hm-wizard-root .hm-opt.hm-tap-glow:active,
#hm-wizard-root .hm-layout0 .hm-opt.hm-tap-glow:active{ box-shadow: 0 0 0 4px color-mix(in srgb, var(--hm-accent, #6b0c1a) 18%, transparent), 0 10px 20px rgba(17,24,39,.12); }

.hm-final-deposit.is-error { border-color: #c0392b !important; box-shadow: 0 0 0 1px rgba(192,57,43,.12); }
.hm-deposit-status { font-size: 13px; margin-top: 6px; min-height: 18px; }
.hm-deposit-status--error { color: #c0392b; font-weight: 700; }
.hm-deposit-instrucciones--error { background: #fff4f3; border: 1px solid #f1b7b2; color: #b42318; }

/* ── Botones Info / Precio en cards ──────────────────────────────────────── */
.hm-opt { position: relative; }
.hm-card-btn {
  cursor: pointer;
  font-family: inherit;
  font-weight: 700;
  line-height: 1;
  transition: opacity .15s ease, transform .12s ease;
  padding: 0;
}
.hm-card-btn:hover { opacity: .78; transform: scale(1.08); }
.hm-card-btn:active { opacity: .6; transform: scale(.95); }

.hm-card-btn--icon {
  position: absolute;
  z-index: 2;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  backdrop-filter: blur(2px);
}
.hm-card-btn--info-icon  { top: 8px; right: 8px; }
.hm-card-btn--price-icon { top: 8px; left: 8px; }

.hm-card-btn--text {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  padding: 4px 11px;
  border-radius: 20px;
  font-size: 12px;
}

/* ── Modal de precios ──────────────────────────────────────────────────────── */
.hm-pm-prices { margin-bottom: 0; }
.hm-pm-row { display:flex; justify-content:space-between; align-items:baseline; padding:5px 0; border-bottom:1px solid #f0f0f0; }
.hm-pm-label { font-size:14px; color:#555; }
.hm-pm-label em { font-style:normal; font-size:12px; color:#999; margin-left:4px; }
.hm-pm-val { font-size:17px; font-weight:700; color:#222; white-space:nowrap; margin-left:12px; }
.hm-pm-val--cash { color:#1a7a3a; }
.hm-pm-sep { height:1px; background:#e0e0e0; margin:8px 0; }
.hm-pm-group { margin-bottom:8px; }
.hm-pm-group-name { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#aaa; margin-bottom:2px; padding-bottom:2px; border-bottom:1px solid #f0f0f0; }
.hm-pm-plan { display:flex; justify-content:space-between; align-items:baseline; padding:2px 0 2px 8px; }
.hm-pm-plan-lbl { font-size:13px; color:#444; }
.hm-pm-plan-lbl em { font-style:normal; font-size:11px; color:#bbb; margin-left:3px; }
.hm-pm-plan-val { font-size:14px; font-weight:700; color:#222; white-space:nowrap; margin-left:12px; }
.hm-pm-note { font-size:11px; color:#bbb; font-style:italic; margin-top:4px; }

.hm-info-modal { max-width:480px; padding:20px 22px 18px; font-size:14px; }
.hm-info-modal__title { font-size:15px; margin-bottom:10px; }
.hm-info-modal__body { font-size:14px; }
