/* CSS Global OPP – Configurador Paso 0/1 + Rama Sin Prescripción + Disclaimer Con Prescripción
   + Paso 1.3 Examen Visual (Filtros) + Paso 1.2 Tipos de Lente + Paso 4 PD
*/

/* Base */
.opp-configurator{display:none !important;}
.opp-configurator.opp-open{display:block !important;}
.opp-hidden{display:none !important;}

/* Flash rojo validación */
.opp-flash-red{
  border:2px solid #d40000 !important;
  box-shadow:0 0 0 6px rgba(212,0,0,.28) !important;
  border-radius:18px !important;
}

/* Cards opciones compra (Paso 1 / Paso 0) */
#modoppprescripcion,#modoppsinprescripcion,#modoppsoloaro{cursor:pointer;}
#modoppprescripcion.et_pb_blurb,#modoppsinprescripcion.et_pb_blurb,#modoppsoloaro.et_pb_blurb{
  border:1px solid rgba(0,0,0,.10) !important;
  border-radius:18px !important;
  background:#fff !important;
  padding:18px 20px !important;
  transition:border-color .2s,box-shadow .2s,transform .15s !important;
}
#modoppprescripcion.et_pb_blurb:hover,#modoppsinprescripcion.et_pb_blurb:hover,#modoppsoloaro.et_pb_blurb:hover{
  box-shadow:0 10px 24px rgba(0,0,0,.06) !important;
  transform:translateY(-1px) !important;
}
#modoppprescripcion.opp-selected,#modoppsinprescripcion.opp-selected,#modoppsoloaro.opp-selected{
  outline:2px solid rgba(212,0,0,.85) !important;
  outline-offset:5px !important;
  box-shadow:0 14px 30px rgba(212,0,0,.28) !important;
}

/* Rama: Sin Prescripción */
#oppsinprescripcion-flow{display:none !important;}
#oppsinprescripcion-flow.opp-open-flow{display:block !important;}

/* Acciones Sin Prescripción ocultas por defecto */
.opp-flow-actions-hidden{display:none !important;}
#oppsinprescripcion-flow.opp-open-flow .opp-flow-actions-hidden{display:block !important;}

/* Cards filtros sin prescripción */
.opp-sinprescripcion-option{cursor:pointer;}
.opp-sinprescripcion-option.et_pb_blurb{
  border:1px solid rgba(0,0,0,.10) !important;
  border-radius:18px !important;
  background:#fff !important;
  padding:18px 20px !important;
  transition:border-color .2s,box-shadow .2s,transform .15s !important;
}
.opp-sinprescripcion-option.et_pb_blurb:hover{
  box-shadow:0 10px 24px rgba(0,0,0,.06) !important;
  transform:translateY(-1px) !important;
}
.opp-sinprescripcion-option.opp-selected{
  outline:2px solid rgba(212,0,0,.85) !important;
  outline-offset:5px !important;
  box-shadow:0 14px 30px rgba(212,0,0,.28) !important;
}

/* ----------------------------- */
/* Con Prescripción – Disclaimer */
/* ----------------------------- */

/* Oculto por defecto */
#oppConPresDisclaimer{display:none !important;}
#oppConPresDisclaimer.opp-open-disclaimer{display:block !important;}

/* Acciones del disclaimer (row separado) */
#oppConPresActions{display:none !important;}
#oppConPresActions.opp-open-actions{display:block !important;}

/* Opciones Sí/No como cards seleccionables */
#oppConPresYes,#oppConPresNo{cursor:pointer;}
#oppConPresYes.et_pb_blurb,#oppConPresNo.et_pb_blurb{
  border:1px solid rgba(0,0,0,.10) !important;
  border-radius:18px !important;
  background:#fff !important;
  padding:18px 20px !important;
  transition:border-color .2s,box-shadow .2s,transform .15s !important;
}
#oppConPresYes.et_pb_blurb:hover,#oppConPresNo.et_pb_blurb:hover{
  box-shadow:0 10px 24px rgba(0,0,0,.06) !important;
  transform:translateY(-1px) !important;
}
#oppConPresYes.opp-selected,#oppConPresNo.opp-selected{
  outline:2px solid rgba(212,0,0,.85) !important;
  outline-offset:5px !important;
  box-shadow:0 14px 30px rgba(212,0,0,.28) !important;
}

/* -------------------------------------- */
/* Paso 1.2 – Tipos de Lente (Con Examen) */
/* -------------------------------------- */

/* Oculto por defecto */
#opp-step-1-2-lens-type{display:none !important;}
#opp-step-1-2-lens-type.opp-open-lens-type{display:block !important;}

/* Acciones del paso 1.2 */
#opp-step-1-2-lens-type-actions{display:none !important;}
#opp-step-1-2-lens-type-actions.opp-open-actions{display:block !important;}

/* Cards de tipos de lente (Paso 1.2) */
.opp-lens-option{cursor:pointer;}
.opp-lens-option.et_pb_blurb{
  border:1px solid rgba(0,0,0,.10) !important;
  border-radius:18px !important;
  background:#fff !important;
  padding:18px 20px !important;
  transition:border-color .2s,box-shadow .2s,transform .15s !important;
}
.opp-lens-option.et_pb_blurb:hover{
  box-shadow:0 10px 24px rgba(0,0,0,.06) !important;
  transform:translateY(-1px) !important;
}
.opp-lens-option.opp-selected{
  outline:2px solid rgba(212,0,0,.85) !important;
  outline-offset:5px !important;
  box-shadow:0 14px 30px rgba(212,0,0,.28) !important;
}

/* --------------------------------------------- */
/* Paso 1.3 – Con Examen Visual (Selección Filtro) */
/* --------------------------------------------- */

/* Oculto por defecto */
#opp-step-1-3-exam-filters{display:none !important;}
#opp-step-1-3-exam-filters.opp-open-exam-filters{display:block !important;}

/* Acciones del paso 1.3 */
#opp-step-1-3-actions{display:none !important;}
#opp-step-1-3-actions.opp-open-actions{display:block !important;}

/* Cards filtros (Examen Visual) */
.opp-filter-exam{cursor:pointer;}
.opp-filter-exam.et_pb_blurb{
  border:1px solid rgba(0,0,0,.10) !important;
  border-radius:18px !important;
  background:#fff !important;
  padding:18px 20px !important;
  transition:border-color .2s,box-shadow .2s,transform .15s !important;
}
.opp-filter-exam.et_pb_blurb:hover{
  box-shadow:0 10px 24px rgba(0,0,0,.06) !important;
  transform:translateY(-1px) !important;
}
.opp-filter-exam.opp-selected{
  outline:2px solid rgba(212,0,0,.85) !important;
  outline-offset:5px !important;
  box-shadow:0 14px 30px rgba(212,0,0,.28) !important;
}

/* --------------------------------------------- */
/* Subgrupos 1.3.x – Filtros por tipo de lente    */
/* (Monofocal / Bifocal Flap-Top / Bifocal Invisible / Progresivo) */
/* --------------------------------------------- */

.opp-option-filter,
.opp-mf-option,
.opp-bf-option,
.opp-bi-option,
.opp-pr-option{
  cursor:pointer;
}

.opp-option-filter.et_pb_blurb,
.opp-mf-option.et_pb_blurb,
.opp-bf-option.et_pb_blurb,
.opp-bi-option.et_pb_blurb,
.opp-pr-option.et_pb_blurb{
  border:1px solid rgba(0,0,0,.10) !important;
  border-radius:18px !important;
  background:#fff !important;
  padding:18px 20px !important;
  transition:border-color .2s,box-shadow .2s,transform .15s !important;
}

.opp-option-filter.et_pb_blurb:hover,
.opp-mf-option.et_pb_blurb:hover,
.opp-bf-option.et_pb_blurb:hover,
.opp-bi-option.et_pb_blurb:hover,
.opp-pr-option.et_pb_blurb:hover{
  box-shadow:0 10px 24px rgba(0,0,0,.06) !important;
  transform:translateY(-1px) !important;
}

.opp-option-filter.opp-selected,
.opp-mf-option.opp-selected,
.opp-bf-option.opp-selected,
.opp-bi-option.opp-selected,
.opp-pr-option.opp-selected{
  outline:2px solid rgba(212,0,0,.85) !important;
  outline-offset:5px !important;
  box-shadow:0 14px 30px rgba(212,0,0,.28) !important;
}

/* ----------------------------- */
/* Precio minimalista bajo opción */
/* ----------------------------- */
.opp-option-price{
  margin-top:8px !important;
  font-size:14px !important;
  line-height:1.2 !important;
  opacity:.72 !important;
}

/* Botones base OPP */
.opp-next,.opp-back,.opp-cancel,.oppBtnVto .button{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:160px !important;
  padding:12px 22px !important;
  font-size:16px !important;
  font-weight:600 !important;
  border-radius:16px !important;
  cursor:pointer !important;
  text-decoration:none !important;
  transition:background-color .2s,border-color .2s,box-shadow .2s,transform .15s !important;
}

/* Botón continuar */
.opp-next{
  background:#ffffff !important;
  color:#d40000 !important;
  border:1px solid rgba(212,0,0,.35) !important;
  box-shadow:0 6px 14px rgba(212,0,0,.18) !important;
}
.opp-next:hover{
  background:#d40000 !important;
  color:#ffffff !important;
  border-color:#d40000 !important;
  box-shadow:0 14px 28px rgba(212,0,0,.38) !important;
  transform:translateY(-1px) !important;
}

/* ✅ Estado visual cuando es "Enviar/Carrito" */
.opp-next.opp-send-cart{
  background:#d40000 !important;
  color:#ffffff !important;
  border-color:#d40000 !important;
  box-shadow:0 14px 28px rgba(212,0,0,.38) !important;
}
.opp-next.opp-send-cart:hover{
  transform:translateY(-1px) !important;
}

/* Botón Atrás (institucional, igual a Continuar) */
.opp-back{
  background:#ffffff !important;
  color:#d40000 !important;
  border:1px solid rgba(212,0,0,.35) !important;
  box-shadow:0 6px 14px rgba(212,0,0,.18) !important;
}
.opp-back:hover{
  background:#d40000 !important;
  color:#ffffff !important;
  border-color:#d40000 !important;
  box-shadow:0 14px 28px rgba(212,0,0,.38) !important;
  transform:translateY(-1px) !important;
}

/* Botón cancelar */
.opp-cancel{
  background:#ffffff !important;
  color:rgba(0,0,0,.65) !important;
  border:1px solid rgba(0,0,0,.25) !important;
  box-shadow:0 6px 14px rgba(0,0,0,.12) !important;
}
.opp-cancel:hover{
  background:#d40000 !important;
  color:#ffffff !important;
  border-color:#d40000 !important;
  box-shadow:0 14px 28px rgba(212,0,0,.38) !important;
  transform:translateY(-1px) !important;
}

/* Quitar flecha Divi en botones OPP */
.opp-next::after,.opp-back::after,.opp-cancel::after,
a.et_pb_button.opp-next::after,a.et_pb_button.opp-back::after,a.et_pb_button.opp-cancel::after{
  content:none !important;
  display:none !important;
}

/* Botón Prueba Virtual (VTO) */
.oppBtnVto .button{
  background:#ffffff !important;
  color:#d40000 !important;
  border:1px solid rgba(212,0,0,.35) !important;
  box-shadow:0 6px 14px rgba(212,0,0,.18) !important;
}
.oppBtnVto .button:hover{
  background:#d40000 !important;
  color:#ffffff !important;
  border-color:#d40000 !important;
  box-shadow:0 14px 28px rgba(212,0,0,.38) !important;
  transform:translateY(-1px) !important;
}
.oppBtnVto svg,.oppBtnVto i,.oppBtnVto .button::after,.oppBtnVto .et_pb_button::after{
  content:none !important;
  display:none !important;
}

/* Layout actions – OPP102: contenedor real = .et_pb_button_module_wrapper (Divi) */
.opp-step-1-actions{margin-top:10px !important;}
/* OPP102 Desktop: todos los pasos de acciones en fila horizontal */
.opp-step-1-actions .et_pb_button_module_wrapper,
#opp-step-1-2-lens-type-actions .et_pb_button_module_wrapper,
#opp-step-1-3-1-monofocal-actions .et_pb_button_module_wrapper,
#opp-step-1-3-2-bifocal-flap-actions .et_pb_button_module_wrapper,
#opp-step-1-3-3-bifocal-invisible-actions .et_pb_button_module_wrapper,
#opp-step-1-3-4-progresivo-actions .et_pb_button_module_wrapper,
#opp-step-4-pd-actions .et_pb_button_module_wrapper{
  display:flex !important;
  gap:12px !important;
  justify-content:center !important;
  align-items:center !important;
  flex-wrap:wrap !important;
}
.opp-step-1-actions .et_pb_button_module_wrapper a,
.opp-step-1-actions .et_pb_button_module_wrapper button,
#opp-step-1-2-lens-type-actions .et_pb_button_module_wrapper a,
#opp-step-1-2-lens-type-actions .et_pb_button_module_wrapper button,
#opp-step-1-3-1-monofocal-actions .et_pb_button_module_wrapper a,
#opp-step-1-3-1-monofocal-actions .et_pb_button_module_wrapper button,
#opp-step-1-3-2-bifocal-flap-actions .et_pb_button_module_wrapper a,
#opp-step-1-3-2-bifocal-flap-actions .et_pb_button_module_wrapper button,
#opp-step-1-3-3-bifocal-invisible-actions .et_pb_button_module_wrapper a,
#opp-step-1-3-3-bifocal-invisible-actions .et_pb_button_module_wrapper button,
#opp-step-1-3-4-progresivo-actions .et_pb_button_module_wrapper a,
#opp-step-1-3-4-progresivo-actions .et_pb_button_module_wrapper button,
#opp-step-4-pd-actions .et_pb_button_module_wrapper a,
#opp-step-4-pd-actions .et_pb_button_module_wrapper button{
  margin:0 !important;
  min-width:160px !important;
}

/* ✅ Estado disabled para "Enviar/Carrito" en PD */
.opp-disabled{
  opacity:.55 !important;
  pointer-events:none !important;
  filter:saturate(.85) !important;
}

/* --------------------------------------------- */
/* Paso 4 – PD (UI tipo VTO / widget limpio)     */
/* --------------------------------------------- */

/* Si tu layout tiene row + actions en Divi, estos IDs deben existir */
#opp-step-4-pd{display:none !important;}
#opp-step-4-pd.opp-open-pd{display:block !important;}

#opp-step-4-pd-actions{display:none !important;}
#opp-step-4-pd-actions.opp-open-actions{display:block !important;}

/* ✅ NEW: normalizar actions PD para que usen clases OPP aunque Divi tenga wrappers */
#opp-step-4-pd-actions .et_pb_button,
#opp-step-4-pd-actions a.et_pb_button,
#opp-step-4-pd-actions button,
#opp-step-4-pd-actions input[type="button"],
#opp-step-4-pd-actions input[type="submit"]{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:160px !important;
  padding:12px 22px !important;
  font-size:16px !important;
  font-weight:600 !important;
  border-radius:16px !important;
  cursor:pointer !important;
  text-decoration:none !important;
  line-height:1.2 !important;
  transition:background-color .2s,border-color .2s,box-shadow .2s,transform .15s !important;
  box-sizing:border-box !important;
}

/* ✅ Quitar flecha/after en botones dentro de actions PD (Divi mete ::after) */
#opp-step-4-pd-actions .et_pb_button::after,
#opp-step-4-pd-actions a.et_pb_button::after{
  content:none !important;
  display:none !important;
}

/* ✅ Layout y centrado en PD actions (flex aplicado en bloque OPP102 arriba) */
#opp-step-4-pd-actions .et_pb_row,
#opp-step-4-pd-actions .et_pb_column,
#opp-step-4-pd-actions .et_pb_button_module_wrapper{
  width:100% !important;
}

/* ✅ Estilos institucionales por ID (si existen) */
#opp-btn-back-pd,
#opp-btn-back-pd.et_pb_button,
#opp-step-4-pd-actions #opp-btn-back-pd{
  background:#ffffff !important;
  color:#d40000 !important;
  border:1px solid rgba(212,0,0,.35) !important;
  box-shadow:0 6px 14px rgba(212,0,0,.18) !important;
}
#opp-btn-back-pd:hover{
  background:#d40000 !important;
  color:#ffffff !important;
  border-color:#d40000 !important;
  box-shadow:0 14px 28px rgba(212,0,0,.38) !important;
  transform:translateY(-1px) !important;
}

#opp-btn-cancel-pd,
#opp-btn-cancel-pd.et_pb_button,
#opp-step-4-pd-actions #opp-btn-cancel-pd{
  background:#ffffff !important;
  color:rgba(0,0,0,.65) !important;
  border:1px solid rgba(0,0,0,.25) !important;
  box-shadow:0 6px 14px rgba(0,0,0,.12) !important;
}
#opp-btn-cancel-pd:hover{
  background:#d40000 !important;
  color:#ffffff !important;
  border-color:#d40000 !important;
  box-shadow:0 14px 28px rgba(212,0,0,.38) !important;
  transform:translateY(-1px) !important;
}

/* "Enviar/Carrito" (primario) */
#opp-btn-next-pd,
#opp-btn-next-pd.et_pb_button,
#opp-step-4-pd-actions #opp-btn-next-pd{
  background:#ffffff !important;
  color:#d40000 !important;
  border:1px solid rgba(212,0,0,.35) !important;
  box-shadow:0 6px 14px rgba(212,0,0,.18) !important;
}
#opp-btn-next-pd:hover{
  background:#d40000 !important;
  color:#ffffff !important;
  border-color:#d40000 !important;
  box-shadow:0 14px 28px rgba(212,0,0,.38) !important;
  transform:translateY(-1px) !important;
}

/* ✅ Si el JS marca "send/cart", se vuelve rojo sólido */
#opp-btn-next-pd.opp-send-cart{
  background:#d40000 !important;
  color:#ffffff !important;
  border-color:#d40000 !important;
  box-shadow:0 14px 28px rgba(212,0,0,.38) !important;
}
#opp-btn-next-pd.opp-send-cart:hover{
  transform:translateY(-1px) !important;
}

/* ✅ Disabled (aplicar también si se marca en el botón como clase) */
#opp-step-4-pd-actions .opp-disabled,
#opp-step-4-pd-actions .opp-disabled:hover{
  opacity:.55 !important;
  pointer-events:none !important;
  filter:saturate(.85) !important;
  transform:none !important;
}

/* OPP101: shortcode y botón PD institucional */
#opp-pd-shortcode{
  text-align:center !important;
  margin:12px 0 18px !important;
  border-radius:18px !important;
  overflow:hidden !important;
}
#opp-pd-launcher-btn{
  border:2px solid #d10000 !important;
  background:#ffffff !important;
  color:#d10000 !important;
  font-weight:700 !important;
  border-radius:10px !important;
  padding:12px 18px !important;
  cursor:pointer !important;
  transition:.15s ease !important;
}
#opp-pd-launcher-btn:hover{
  background:#d10000 !important;
  color:#ffffff !important;
}

/* OPP2026061216-C: cuando ya hay PD guardada, "Volver a medir PD" pasa a acción secundaria. */
#opp-pd-launcher-btn.opp-pd-remeasure{
  border-color:#6b7280 !important;
  background:#f3f4f6 !important;
  color:#374151 !important;
}
#opp-pd-launcher-btn.opp-pd-remeasure:hover{
  background:#e5e7eb !important;
  color:#111827 !important;
}

/* Si el shortcode usa modal + iframe como en el informe */
#opp-pd-modal .opp-pd-dialog{
  border-radius:18px !important;
  overflow:hidden !important;
}
#opp-pd-iframe{
  width:100% !important;
  height:100% !important;
  border:0 !important;
  border-radius:14px !important;
  overflow:hidden !important;
}

/* OPP102: Tablet / pequeño laptop – mantener fila si cabe, sino wrap */
@media (max-width:980px){
  .opp-step-1-actions .et_pb_button_module_wrapper,
  #opp-step-1-2-lens-type-actions .et_pb_button_module_wrapper,
  #opp-step-1-3-1-monofocal-actions .et_pb_button_module_wrapper,
  #opp-step-1-3-2-bifocal-flap-actions .et_pb_button_module_wrapper,
  #opp-step-1-3-3-bifocal-invisible-actions .et_pb_button_module_wrapper,
  #opp-step-1-3-4-progresivo-actions .et_pb_button_module_wrapper,
  #opp-step-4-pd-actions .et_pb_button_module_wrapper{
    flex-wrap:wrap !important;
    gap:10px !important;
  }
  .opp-next,.opp-back,.opp-cancel,.oppBtnVto .button{
    min-width:140px !important;
    max-width:320px !important;
    margin:0 !important;
  }
  #opp-step-4-pd-actions .et_pb_button_module_wrapper a,
  #opp-step-4-pd-actions .et_pb_button_module_wrapper button{
    min-width:140px !important;
    max-width:320px !important;
  }
}

/* OPP102: Móvil – compactar padding y márgenes, sin reordenar acciones */
@media (max-width:767px){
  .opp-next,.opp-back,.opp-cancel,.oppBtnVto .button{
    padding:10px 16px !important;
    font-size:15px !important;
    min-width:120px !important;
    max-width:100% !important;
    width:100% !important;
  }
  #opp-step-4-pd-actions .et_pb_button,
  #opp-step-4-pd-actions a.et_pb_button,
  #opp-step-4-pd-actions button{
    padding:10px 16px !important;
    font-size:15px !important;
  }
  .opp-step-1-actions .et_pb_button_module_wrapper,
  #opp-step-1-2-lens-type-actions .et_pb_button_module_wrapper,
  #opp-step-1-3-1-monofocal-actions .et_pb_button_module_wrapper,
  #opp-step-1-3-2-bifocal-flap-actions .et_pb_button_module_wrapper,
  #opp-step-1-3-3-bifocal-invisible-actions .et_pb_button_module_wrapper,
  #opp-step-1-3-4-progresivo-actions .et_pb_button_module_wrapper,
  #opp-step-4-pd-actions .et_pb_button_module_wrapper{
    flex-direction:column !important;
    gap:8px !important;
    align-items:stretch !important;
  }
  .opp-step-1-actions .et_pb_button_module_wrapper a,
  .opp-step-1-actions .et_pb_button_module_wrapper button,
  #opp-step-1-2-lens-type-actions .et_pb_button_module_wrapper a,
  #opp-step-1-2-lens-type-actions .et_pb_button_module_wrapper button,
  #opp-step-1-3-1-monofocal-actions .et_pb_button_module_wrapper a,
  #opp-step-1-3-1-monofocal-actions .et_pb_button_module_wrapper button,
  #opp-step-1-3-2-bifocal-flap-actions .et_pb_button_module_wrapper a,
  #opp-step-1-3-2-bifocal-flap-actions .et_pb_button_module_wrapper button,
  #opp-step-1-3-3-bifocal-invisible-actions .et_pb_button_module_wrapper a,
  #opp-step-1-3-3-bifocal-invisible-actions .et_pb_button_module_wrapper button,
  #opp-step-1-3-4-progresivo-actions .et_pb_button_module_wrapper a,
  #opp-step-1-3-4-progresivo-actions .et_pb_button_module_wrapper button,
  #opp-step-4-pd-actions .et_pb_button_module_wrapper a,
  #opp-step-4-pd-actions .et_pb_button_module_wrapper button{
    width:100% !important;
    max-width:320px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  /* Compactar separación paso 4 (título + botón PD + acciones) */
  #opp-pd-shortcode{
    margin:8px 0 12px !important;
  }
  #opp-step-4-pd{
    margin-bottom:4px !important;
  }
  #opp-step-4-pd-actions{
    margin-top:8px !important;
  }
  /* Cards: reducir padding vertical en móvil */
  #modoppprescripcion.et_pb_blurb,#modoppsinprescripcion.et_pb_blurb,#modoppsoloaro.et_pb_blurb,
  .opp-sinprescripcion-option.et_pb_blurb,
  #oppConPresYes.et_pb_blurb,#oppConPresNo.et_pb_blurb,
  .opp-lens-option.et_pb_blurb,
  .opp-option-filter.et_pb_blurb,.opp-mf-option.et_pb_blurb,.opp-bf-option.et_pb_blurb,.opp-bi-option.et_pb_blurb,.opp-pr-option.et_pb_blurb{
    padding:14px 16px !important;
  }
  .opp-step-1-actions{
    margin-top:8px !important;
  }
}

/* OPP102: iPhone / viewport muy estrecho – aún más compacto */
@media (max-width:390px){
  #opp-pd-shortcode{
    margin:6px 0 10px !important;
  }
  #opp-pd-launcher-btn{
    padding:10px 14px !important;
    font-size:15px !important;
  }
}

/* =============================================================================
   OPP0829 — Filas .opp-hidden deben ocultarse (gana sobre OPP0826 display:flex)
   ============================================================================= */
body.single-product .opp-configurator .opp-step-1-actions.et_pb_row.opp-hidden,
body.single-product .opp-configurator #oppConPresActions.et_pb_row.opp-hidden,
body.single-product .opp-configurator #opp-step-1-2-lens-type-actions.et_pb_row.opp-hidden,
body.single-product .opp-configurator #opp-step-1-3-1-monofocal-actions.et_pb_row.opp-hidden,
body.single-product .opp-configurator #opp-step-1-3-2-bifocal-flap-actions.et_pb_row.opp-hidden,
body.single-product .opp-configurator #opp-step-1-3-3-bifocal-invisible-actions.et_pb_row.opp-hidden,
body.single-product .opp-configurator #opp-step-1-3-4-progresivo-actions.et_pb_row.opp-hidden,
body.single-product .opp-configurator #opp-step-4-pd-actions.et_pb_row.opp-hidden {
  display: none !important;
}

/* =============================================================================
   OPP0830 — Orden botones faltantes, pulso Continuar, compactación móvil/tablet
   ============================================================================= */

@keyframes opp-continue-ready-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(212, 0, 0, 0);
    outline: 2px solid transparent;
    outline-offset: 2px;
  }
  30%, 70% {
    box-shadow: 0 0 0 5px rgba(212, 0, 0, 0.42), 0 6px 18px rgba(212, 0, 0, 0.22);
    outline: 2px solid rgba(212, 0, 0, 0.55);
    outline-offset: 3px;
  }
  50% {
    box-shadow: 0 0 0 7px rgba(212, 0, 0, 0.32);
    outline: 2px solid rgba(212, 0, 0, 0.7);
    outline-offset: 4px;
  }
}

body.single-product .opp-configurator a.opp-continue-ready-pulse,
body.single-product .opp-configurator .et_pb_button.opp-continue-ready-pulse {
  animation: opp-continue-ready-pulse 1s ease-in-out 2;
  position: relative;
  z-index: 1;
}

@media (max-width: 980px) {
  /* Con prescripción + sin prescripción: Continuar / Atrás / Cancelar */
  body.single-product .opp-configurator #oppConPresActions.et_pb_row,
  body.single-product .opp-configurator #oppsinprescripcion-flow.opp-open-flow + .et_pb_row {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
    margin-top: 10px !important;
  }

  body.single-product .opp-configurator #oppConPresActions.et_pb_row > .et_pb_column:nth-child(1),
  body.single-product .opp-configurator #oppsinprescripcion-flow.opp-open-flow + .et_pb_row > .et_pb_column:nth-child(1) {
    order: 2 !important;
  }

  body.single-product .opp-configurator #oppConPresActions.et_pb_row > .et_pb_column:nth-child(2),
  body.single-product .opp-configurator #oppsinprescripcion-flow.opp-open-flow + .et_pb_row > .et_pb_column:nth-child(2) {
    order: 3 !important;
    margin-top: 4px !important;
  }

  body.single-product .opp-configurator #oppConPresActions.et_pb_row > .et_pb_column:nth-child(3),
  body.single-product .opp-configurator #oppsinprescripcion-flow.opp-open-flow + .et_pb_row > .et_pb_column:nth-child(3) {
    order: 1 !important;
  }

  body.single-product .opp-configurator #oppConPresActions .et_pb_button_module_wrapper,
  body.single-product .opp-configurator #oppsinprescripcion-flow.opp-open-flow + .et_pb_row .et_pb_button_module_wrapper {
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
  }

  /* Compactación cards filtros y descripciones */
  .opp-lens-option.et_pb_blurb,
  .opp-option-filter.et_pb_blurb,
  .opp-mf-option.et_pb_blurb,
  .opp-bf-option.et_pb_blurb,
  .opp-bi-option.et_pb_blurb,
  .opp-pr-option.et_pb_blurb,
  .opp-sinprescripcion-option.et_pb_blurb,
  #oppConPresYes.et_pb_blurb,
  #oppConPresNo.et_pb_blurb {
    padding: 14px 16px !important;
  }

  body.single-product .opp-configurator .opp-lens-option .et_pb_blurb_description,
  body.single-product .opp-configurator .opp-mf-option .et_pb_blurb_description,
  body.single-product .opp-configurator .opp-bf-option .et_pb_blurb_description,
  body.single-product .opp-configurator .opp-bi-option .et_pb_blurb_description,
  body.single-product .opp-configurator .opp-pr-option .et_pb_blurb_description,
  body.single-product .opp-configurator .opp-sinprescripcion-option .et_pb_blurb_description,
  body.single-product .opp-configurator #oppConPresYes .et_pb_blurb_description,
  body.single-product .opp-configurator #oppConPresNo .et_pb_blurb_description {
    font-size: 13px !important;
    line-height: 1.35 !important;
    margin-top: 4px !important;
    font-weight: 400 !important;
    opacity: 0.88 !important;
  }

  body.single-product .opp-configurator .opp-option-price {
    font-size: 12px !important;
    margin-top: 4px !important;
    opacity: 0.65 !important;
  }

  /* Cancelar: separación moderada en filas ya reordenadas por OPP0826 */
  body.single-product .opp-configurator #opp-step-1-2-lens-type-actions.et_pb_row > .et_pb_column:nth-child(2),
  body.single-product .opp-configurator #opp-step-1-3-1-monofocal-actions.et_pb_row > .et_pb_column:nth-child(2),
  body.single-product .opp-configurator #opp-step-1-3-2-bifocal-flap-actions.et_pb_row > .et_pb_column:nth-child(2),
  body.single-product .opp-configurator #opp-step-1-3-3-bifocal-invisible-actions.et_pb_row > .et_pb_column:nth-child(2),
  body.single-product .opp-configurator #opp-step-1-3-4-progresivo-actions.et_pb_row > .et_pb_column:nth-child(2),
  body.single-product .opp-configurator #opp-step-4-pd-actions.et_pb_row > .et_pb_column:nth-child(2) {
    margin-top: 4px !important;
  }
}

body.single-product .opp-configurator #oppsinprescripcion-flow.opp-open-flow + .et_pb_row.opp-flow-actions-hidden,
body.single-product .opp-configurator #oppsinprescripcion-flow.opp-open-flow + .et_pb_row.opp-hidden {
  display: none !important;
}

/* =============================================================================
   OPP0831 — Orden botones y layout táctil en tablet landscape (wizard-capable)
   Replica reglas OPP0826/0830 cuando viewport >980px pero wizard táctil activo.
   ============================================================================= */

body.opp-config-wizard-capable.single-product .opp-configurator .opp-step-1-actions.et_pb_row,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-2-lens-type-actions.et_pb_row,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-1-monofocal-actions.et_pb_row,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-2-bifocal-flap-actions.et_pb_row,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-3-bifocal-invisible-actions.et_pb_row,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-4-progresivo-actions.et_pb_row,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-4-pd-actions.et_pb_row,
body.opp-config-wizard-capable.single-product .opp-configurator #oppConPresActions.et_pb_row,
body.opp-config-wizard-capable.single-product .opp-configurator #oppsinprescripcion-flow.opp-open-flow + .et_pb_row {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  padding-top: 12px !important;
  padding-bottom: 12px !important;
  margin-top: 10px !important;
}

body.opp-config-wizard-capable.single-product .opp-configurator .opp-step-1-actions.et_pb_row > .et_pb_column:nth-child(1) {
  order: 2 !important;
}
body.opp-config-wizard-capable.single-product .opp-configurator .opp-step-1-actions.et_pb_row > .et_pb_column:nth-child(2) {
  order: 1 !important;
}

body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-2-lens-type-actions.et_pb_row > .et_pb_column:nth-child(1),
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-1-monofocal-actions.et_pb_row > .et_pb_column:nth-child(1),
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-2-bifocal-flap-actions.et_pb_row > .et_pb_column:nth-child(1),
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-3-bifocal-invisible-actions.et_pb_row > .et_pb_column:nth-child(1),
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-4-progresivo-actions.et_pb_row > .et_pb_column:nth-child(1),
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-4-pd-actions.et_pb_row > .et_pb_column:nth-child(1),
body.opp-config-wizard-capable.single-product .opp-configurator #oppConPresActions.et_pb_row > .et_pb_column:nth-child(1),
body.opp-config-wizard-capable.single-product .opp-configurator #oppsinprescripcion-flow.opp-open-flow + .et_pb_row > .et_pb_column:nth-child(1) {
  order: 2 !important;
}

body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-2-lens-type-actions.et_pb_row > .et_pb_column:nth-child(2),
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-1-monofocal-actions.et_pb_row > .et_pb_column:nth-child(2),
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-2-bifocal-flap-actions.et_pb_row > .et_pb_column:nth-child(2),
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-3-bifocal-invisible-actions.et_pb_row > .et_pb_column:nth-child(2),
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-4-progresivo-actions.et_pb_row > .et_pb_column:nth-child(2),
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-4-pd-actions.et_pb_row > .et_pb_column:nth-child(2),
body.opp-config-wizard-capable.single-product .opp-configurator #oppConPresActions.et_pb_row > .et_pb_column:nth-child(2),
body.opp-config-wizard-capable.single-product .opp-configurator #oppsinprescripcion-flow.opp-open-flow + .et_pb_row > .et_pb_column:nth-child(2) {
  order: 3 !important;
  margin-top: 4px !important;
}

body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-2-lens-type-actions.et_pb_row > .et_pb_column:nth-child(3),
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-1-monofocal-actions.et_pb_row > .et_pb_column:nth-child(3),
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-2-bifocal-flap-actions.et_pb_row > .et_pb_column:nth-child(3),
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-3-bifocal-invisible-actions.et_pb_row > .et_pb_column:nth-child(3),
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-4-progresivo-actions.et_pb_row > .et_pb_column:nth-child(3),
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-4-pd-actions.et_pb_row > .et_pb_column:nth-child(3),
body.opp-config-wizard-capable.single-product .opp-configurator #oppConPresActions.et_pb_row > .et_pb_column:nth-child(3),
body.opp-config-wizard-capable.single-product .opp-configurator #oppsinprescripcion-flow.opp-open-flow + .et_pb_row > .et_pb_column:nth-child(3) {
  order: 1 !important;
}

body.opp-config-wizard-capable.single-product .opp-configurator .opp-step-1-actions .et_pb_button_module_wrapper,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-2-lens-type-actions .et_pb_button_module_wrapper,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-1-monofocal-actions .et_pb_button_module_wrapper,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-2-bifocal-flap-actions .et_pb_button_module_wrapper,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-3-bifocal-invisible-actions .et_pb_button_module_wrapper,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-4-progresivo-actions .et_pb_button_module_wrapper,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-4-pd-actions .et_pb_button_module_wrapper,
body.opp-config-wizard-capable.single-product .opp-configurator #oppConPresActions .et_pb_button_module_wrapper,
body.opp-config-wizard-capable.single-product .opp-configurator #oppsinprescripcion-flow.opp-open-flow + .et_pb_row .et_pb_button_module_wrapper {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
}

body.opp-config-wizard-capable.single-product .opp-configurator .opp-next,
body.opp-config-wizard-capable.single-product .opp-configurator .opp-back,
body.opp-config-wizard-capable.single-product .opp-configurator .opp-cancel {
  width: 100% !important;
  max-width: 320px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* =============================================================================
   OPP0835 — Filas .opp-hidden bajo wizard-capable (gana sobre OPP0831 flex)
   ============================================================================= */
body.opp-config-wizard-capable.single-product .opp-configurator .opp-step-1-actions.et_pb_row.opp-hidden,
body.opp-config-wizard-capable.single-product .opp-configurator #oppConPresActions.et_pb_row.opp-hidden,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-2-lens-type-actions.et_pb_row.opp-hidden,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-1-monofocal-actions.et_pb_row.opp-hidden,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-2-bifocal-flap-actions.et_pb_row.opp-hidden,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-3-bifocal-invisible-actions.et_pb_row.opp-hidden,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-1-3-4-progresivo-actions.et_pb_row.opp-hidden,
body.opp-config-wizard-capable.single-product .opp-configurator #opp-step-4-pd-actions.et_pb_row.opp-hidden {
  display: none !important;
}

/* OPP2026062407 — Aviso inline producto agotado (PDP URL directa) */
body.single-product .opp-unavailable-product-notice {
  margin: 18px 0 24px;
  padding: 20px 22px;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 18px;
  background: #fafafa;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.04);
  max-width: 100%;
}

body.single-product .opp-unavailable-product-title {
  margin: 0 0 8px;
  font-size: 1.125rem;
  font-weight: 700;
  color: #111;
  line-height: 1.35;
}

body.single-product .opp-unavailable-product-message,
body.single-product .opp-unavailable-product-submessage {
  margin: 0 0 8px;
  font-size: 0.98rem;
  color: #333;
  line-height: 1.5;
}

body.single-product .opp-unavailable-product-submessage {
  margin-bottom: 16px;
  color: #555;
}

body.single-product a.opp-unavailable-product-button {
  display: inline-block;
  padding: 12px 22px;
  border-radius: 999px;
  background: #111 !important;
  color: #fff !important;
  border: 1px solid #111 !important;
  text-decoration: none !important;
  font-weight: 600;
  line-height: 1.2;
  transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s;
}

body.single-product a.opp-unavailable-product-button:hover,
body.single-product a.opp-unavailable-product-button:focus {
  background: #d40000 !important;
  border-color: #d40000 !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(212, 0, 0, 0.28);
}

@media (max-width: 767px) {
  body.single-product .opp-unavailable-product-notice {
    padding: 16px 18px;
    margin: 14px 0 20px;
  }

  body.single-product a.opp-unavailable-product-button {
    width: 100%;
    text-align: center;
    box-sizing: border-box;
  }
}

/* OPP2026062408 — Ocultar Prueba Virtual en producto agotado (PDP URL directa) */
body.single-product.opp-product-unavailable-state #opp-vto-open-btn,
body.single-product.opp-product-unavailable-state .opp-vto-open-btn,
body.single-product.opp-product-unavailable-state .oppBtnVto,
body.single-product.opp-product-unavailable-state .oppBtnVto .button,
body.single-product.opp-product-unavailable-state .oppBtnVto .et_pb_button,
body.single-product.opp-product-unavailable-state .oppBtnVto a.et_pb_button {
  display: none !important;
}
