/* Flowy Checkout: estilos aislados con prefijo .flowy- (no tocan el tema). */
:root {
  --flowy-color: #5cb85c; --flowy-color-texto: #fff;
  --flowy-no-fondo: #fff; --flowy-no-texto: #b3362a; --flowy-no-borde: #e3b3ad;
  --flowy-mod-fondo: #fff; --flowy-mod-texto: #161616; --flowy-mod-borde: #dcdcdc;
  --flowy-ventana-fondo: #fff; --flowy-ventana-texto: #161616; --flowy-icono: #5cb85c;
  --flowy-radio: 12px; --flowy-alinear: center; --flowy-alinear-self: center;
  --flowy-cta-tamano: 16px; --flowy-cta-peso: 800; --flowy-cta-estilo: normal; --flowy-cta-borde: #000; --flowy-cta-borde-ancho: 0px;
  --flowy-cta-radio: 12px; --flowy-cta-sombra: 10px;
  --flowy-form-texto: #161616; --flowy-form-tamano: 15px; --flowy-form-peso: 700; --flowy-form-estilo: normal; --flowy-form-alinear: left;
  --flowy-form-fondo: #fff; --flowy-form-borde: #000; --flowy-form-borde-ancho: 0px; --flowy-form-radio: 20px; --flowy-form-sombra: 0px;
  --flowy-campo-texto: #212529; --flowy-campo-fondo: #fff; --flowy-campo-icono: #212529; --flowy-campo-icono-fondo: #eef0f2;
  --flowy-campo-borde: #c9ccd1; --flowy-campo-radio: 10px;
  --flowy-rojo: #c0392b;
}
.flowy-oculto { display: none !important; }
.flowy-sin-scroll { overflow: hidden; }
.flowy-sr { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }

/* ---------- Boton de la pagina ---------- */
.flowy-cta {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  width: 100%; margin: 12px 0; padding: 14px 16px; cursor: pointer; font: inherit; line-height: 1.2;
  background: var(--flowy-cta-imagen, var(--flowy-cta-fondo)); color: var(--flowy-cta-texto);
  border: var(--flowy-cta-borde-ancho) solid var(--flowy-cta-borde); border-radius: var(--flowy-cta-radio);
  box-shadow: 0 calc(var(--flowy-cta-sombra) * .6) calc(var(--flowy-cta-sombra) * 1.6) calc(var(--flowy-cta-sombra) * -.8) rgba(0, 0, 0, .45);
  transition: transform .12s ease, filter .12s ease;
}
.flowy-cta:hover { filter: brightness(1.05); }
.flowy-cta:active { transform: scale(.99); }
.flowy-cta:disabled { opacity: .55; cursor: not-allowed; animation: none; }
.flowy-cta:focus-visible { outline: 3px solid #111; outline-offset: 2px; }
.flowy-cta__fila { display: inline-flex; align-items: center; gap: 8px; }
.flowy-cta__ico svg { width: 1.15em; height: 1.15em; display: block; }
.flowy-cta__t { font-weight: var(--flowy-cta-peso); font-style: var(--flowy-cta-estilo); font-size: var(--flowy-cta-tamano); letter-spacing: .02em; }
.flowy-cta__s { font-weight: 600; font-size: calc(var(--flowy-cta-tamano) * .75); opacity: .92; font-style: var(--flowy-cta-estilo); }
.flowy-cta--fijo { position: fixed; left: 12px; right: 12px; width: auto; margin: 0; z-index: 2147482000; }
.flowy-cta--abajo { bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
.flowy-cta--arriba { top: calc(10px + env(safe-area-inset-top, 0px)); }
.flowy-cta[hidden] { display: none; }
@keyframes flowy-pulso { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.035); } }
@keyframes flowy-sacudida { 0%, 86%, 100% { transform: translateX(0); } 88%, 92%, 96% { transform: translateX(-4px); } 90%, 94%, 98% { transform: translateX(4px); } }
@keyframes flowy-rebote { 0%, 80%, 100% { transform: translateY(0); } 86% { transform: translateY(-7px); } 92% { transform: translateY(0); } 96% { transform: translateY(-3px); } }
@keyframes flowy-brillo { 0% { background-position: -150% 0, 0 0; } 60%, 100% { background-position: 250% 0, 0 0; } }
.flowy-anim-pulso { animation: flowy-pulso 1.6s ease-in-out infinite; }
.flowy-anim-sacudida { animation: flowy-sacudida 3.5s ease-in-out infinite; }
.flowy-anim-rebote { animation: flowy-rebote 2.8s ease-in-out infinite; }
.flowy-anim-brillo {
  background-image: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .45) 50%, transparent 70%), var(--flowy-cta-imagen, linear-gradient(var(--flowy-cta-fondo), var(--flowy-cta-fondo)));
  background-size: 200% 100%, 100% 100%; background-repeat: no-repeat; animation: flowy-brillo 2.6s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) { .flowy-cta { animation: none !important; } }

/* ---------- Ventana ---------- */
.flowy-capa { position: fixed; inset: 0; z-index: 2147483000; background: rgba(0, 0, 0, .5); display: flex; align-items: flex-end; justify-content: center; }
@media (min-width: 750px) { .flowy-capa { align-items: center; } }
.flowy-hoja {
  position: relative; width: 100%; max-width: 460px; max-height: 92vh; overflow: auto;
  background: var(--flowy-form-fondo); color: var(--flowy-form-texto); border-radius: var(--flowy-form-radio) var(--flowy-form-radio) 0 0;
  border: var(--flowy-form-borde-ancho) solid var(--flowy-form-borde);
  box-shadow: 0 0 calc(var(--flowy-form-sombra) * 2) rgba(0, 0, 0, calc(var(--flowy-form-sombra) / 40));
  padding: 20px 18px calc(20px + env(safe-area-inset-bottom, 0px));
  display: flex; flex-direction: column; gap: 12px; font-size: 15px; line-height: 1.4; animation: flowy-sube .25s ease-out;
}
@media (min-width: 750px) { .flowy-hoja { border-radius: var(--flowy-form-radio); } }
@media (max-width: 749px) { .flowy-capa--completa .flowy-hoja { max-height: 100%; height: 100%; max-width: none; border-radius: 0; } }
@keyframes flowy-sube { from { transform: translateY(24px); opacity: .5; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .flowy-hoja { animation: none; } }
.flowy-x { position: absolute; top: 8px; right: 10px; border: 0; background: none; font-size: 26px; line-height: 1; padding: 6px 10px; cursor: pointer; color: inherit; opacity: .7; z-index: 1; }
.flowy-rtl .flowy-x { right: auto; left: 10px; }

.flowy-h { margin: 0; font-size: var(--flowy-titulo-tamano, 1rem); font-weight: 800; text-align: center; letter-spacing: .02em; color: inherit; }
.flowy-h--grande { font-size: 1.15rem; letter-spacing: 0; line-height: 1.3; text-wrap: balance; text-align: var(--flowy-alinear); }
.flowy-p { margin: 0; color: inherit; opacity: .75; text-align: var(--flowy-alinear); }
.flowy-nota { margin: 0; color: inherit; opacity: .55; font-size: .78rem; text-align: var(--flowy-alinear); }

/* ---------- Formulario ---------- */
.flowy-embebido { margin: 12px 0; padding: 16px; background: var(--flowy-form-fondo); color: var(--flowy-form-texto);
  border: var(--flowy-form-borde-ancho) solid var(--flowy-form-borde); border-radius: var(--flowy-form-radio);
  box-shadow: 0 0 calc(var(--flowy-form-sombra) * 2) rgba(0, 0, 0, calc(var(--flowy-form-sombra) / 40)); }
.flowy-form { display: flex; flex-direction: column; gap: 12px; font-size: var(--flowy-form-tamano); }
.flowy-campo { display: flex; flex-direction: column; gap: 5px; text-align: var(--flowy-form-alinear); }
.flowy-campo__etq { font-weight: var(--flowy-form-peso); font-style: var(--flowy-form-estilo); font-size: .92em; }
.flowy-sin-etiquetas .flowy-campo__etq { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.flowy-campo em { color: #d33; font-style: normal; }
.flowy-campo__caja { display: flex; align-items: stretch; border: 1px solid var(--flowy-campo-borde); border-radius: var(--flowy-campo-radio); overflow: hidden; background: var(--flowy-campo-fondo); }
.flowy-campo__caja:focus-within { outline: 2px solid var(--flowy-color); outline-offset: 0; border-color: transparent; }
.flowy-campo__ico { display: grid; place-items: center; width: 46px; flex: none; background: var(--flowy-campo-icono-fondo); color: var(--flowy-campo-icono); border-inline-end: 1px solid var(--flowy-campo-borde); }
.flowy-campo__ico svg { width: 20px; height: 20px; }
.flowy-campo input, .flowy-campo select, .flowy-campo textarea {
  width: 100%; min-width: 0; box-sizing: border-box; border: 0; padding: 12px; font: inherit; font-size: 16px; font-weight: 400;
  color: var(--flowy-campo-texto); background: var(--flowy-campo-fondo); outline: none;
}
.flowy-campo > textarea { border: 1px solid var(--flowy-campo-borde); border-radius: var(--flowy-campo-radio); }
.flowy-casilla { display: grid; grid-template-columns: auto 1fr; gap: 4px 8px; align-items: start; font-size: .9em; text-align: start; }
.flowy-casilla input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--flowy-color); }
.flowy-casilla .flowy-error { grid-column: 2; }
.flowy-texto-libre { margin: 0; font-size: .9em; opacity: .85; text-align: var(--flowy-form-alinear); }
.flowy-imagen-libre { width: 100%; height: auto; border-radius: 12px; display: block; }
.flowy-error { color: var(--flowy-rojo); font-size: .78rem; font-weight: 600; margin: 0; }
.flowy-error:empty { display: none; }

/* Resumen */
.flowy-resumen { display: flex; flex-direction: column; gap: 10px; }
.flowy-resumen__prod { display: flex; align-items: center; gap: 10px; }
.flowy-resumen__prod img { width: 52px; height: 52px; object-fit: cover; border-radius: 10px; flex: none; }
.flowy-resumen__nombre { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.flowy-resumen__nombre b { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; line-height: 1.3; }
.flowy-resumen__nombre small { opacity: .65; }
.flowy-resumen__tabla { border: 1px solid rgba(0, 0, 0, .08); background: rgba(0, 0, 0, .025); border-radius: 12px; padding: 8px 12px; display: flex; flex-direction: column; gap: 4px; }
.flowy-resumen__fila { display: flex; justify-content: space-between; gap: 8px; font-size: .92em; }
.flowy-resumen__fila.flowy-rojo b { color: var(--flowy-rojo); }
.flowy-resumen__total { border-top: 1px solid rgba(0, 0, 0, .1); padding-top: 6px; margin-top: 2px; font-size: 1.05em; }
.flowy-resumen__total b { font-size: 1.12em; }

/* Ofertas, combos y envios */
.flowy-ofertas { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.flowy-ofertas:empty { display: none; }
.flowy-ofertas__t { font-size: .86em; font-weight: 800; padding: 0; margin-bottom: 6px; }
.flowy-oferta { font-size: var(--flowy-ofertas-tamano, inherit); display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 12px; border: 1.5px solid var(--flowy-campo-borde);
  border-radius: var(--flowy-campo-radio); cursor: pointer; position: relative; text-align: start; background: var(--flowy-campo-fondo); color: var(--flowy-campo-texto); }
.flowy-oferta:has(input:checked) { border-color: var(--flowy-color); background: color-mix(in srgb, var(--flowy-color) 8%, var(--flowy-campo-fondo)); box-shadow: 0 0 0 1px var(--flowy-color); }
.flowy-oferta:has(input:focus-visible) { outline: 3px solid #111; outline-offset: 2px; }
.flowy-oferta__txt { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.flowy-oferta__txt small { opacity: .65; font-size: .8em; }
.flowy-oferta__precio { display: flex; flex-direction: column; align-items: flex-end; white-space: nowrap; }
.flowy-oferta__precio s { opacity: .5; font-size: .8em; }
.flowy-oferta__badge { position: absolute; top: -9px; right: 10px; background: var(--flowy-color); color: var(--flowy-color-texto); font-size: 10px; font-weight: 800;
  letter-spacing: .04em; line-height: 1; padding: 4px 7px; border-radius: 999px; }
.flowy-rtl .flowy-oferta__badge { right: auto; left: 10px; }
.flowy-bump { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border: 1.5px dashed var(--flowy-color); border-radius: var(--flowy-campo-radio);
  background: color-mix(in srgb, var(--flowy-color) 6%, var(--flowy-campo-fondo)); cursor: pointer; color: var(--flowy-campo-texto); text-align: start; }
.flowy-bump input { width: 20px; height: 20px; accent-color: var(--flowy-color); flex: none; }

/* Botones de la ventana */
.flowy-opciones { display: flex; flex-direction: column; gap: 8px; margin-top: 2px; }
.flowy-btn { width: 100%; border-radius: var(--flowy-radio); padding: 13px 12px; font: inherit; font-weight: 700; font-size: .95rem; line-height: 1.25; cursor: pointer; text-align: center; }
.flowy-btn:disabled { opacity: .6; cursor: progress; }
.flowy-btn:focus-visible { outline: 3px solid #111; outline-offset: 2px; }
.flowy-btn--si { background: var(--flowy-color); color: var(--flowy-color-texto); border: 1.5px solid var(--flowy-color); }
.flowy-btn--no { background: var(--flowy-no-fondo); color: var(--flowy-no-texto); border: 1.5px solid var(--flowy-no-borde); }
.flowy-btn--mod { background: var(--flowy-mod-fondo); color: var(--flowy-mod-texto); border: 1.5px solid var(--flowy-mod-borde); }
.flowy-enviar { padding: .95em 12px; font-size: var(--flowy-enviar-tamano, 1rem); font-weight: 800; }

/* Iconos y sellos */
.flowy-icono { width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; color: var(--flowy-icono);
  background: color-mix(in srgb, var(--flowy-icono) 14%, transparent); margin: 4px 0 0; align-self: var(--flowy-alinear-self, center); }
.flowy-icono svg { width: 30px; height: 30px; }
.flowy-sello { width: 60px; height: 60px; margin: 6px auto 0; border-radius: 50%; display: grid; place-items: center; font-size: 28px; font-weight: 800; }
.flowy-sello--ok { background: #e3f3e4; color: #2f8a3a; }
.flowy-sello--mod { background: #e3eefa; color: #2c6aa6; }
.flowy-sello--no { background: #fbe5e2; color: var(--flowy-rojo); }

/* Upsells */
.flowy-upsell__tag { margin: 0; align-self: center; background: var(--flowy-color); color: var(--flowy-color-texto); font-size: .72rem; font-weight: 800;
  letter-spacing: .06em; text-transform: uppercase; padding: 5px 10px; border-radius: 999px; }
.flowy-upsell__img { width: 140px; height: 140px; object-fit: cover; border-radius: 16px; align-self: center; }
.flowy-upsell__precio { margin: 0; display: flex; gap: 8px; justify-content: center; align-items: baseline; font-size: 1.2rem; }
.flowy-upsell__precio s { opacity: .5; font-size: .9rem; }

/* WhatsApp */
.flowy-wa { display: flex; flex-direction: column; gap: 8px; padding: 12px; border-radius: 14px; background: color-mix(in srgb, #25d366 9%, transparent); }
.flowy-btn--wa { display: flex; align-items: center; justify-content: center; gap: 8px; background: #25d366; color: #fff; border: 0; text-decoration: none; }
.flowy-wa__ico { width: 18px; height: 18px; background: currentColor; flex: none;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm5.4 14.1c-.2.6-1.3 1.2-1.8 1.2-.5.1-1 .2-3.3-.7-2.8-1.1-4.6-4-4.7-4.2-.1-.2-1.1-1.5-1.1-2.9 0-1.4.7-2 1-2.3.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.4 0 .5l-.3.5-.4.4c-.1.1-.3.3-.1.6.2.3.8 1.3 1.7 2.1 1.2 1 2.1 1.3 2.4 1.5.3.1.5.1.6-.1l.9-1.1c.2-.3.4-.2.6-.1l1.9.9c.3.1.5.2.5.3.1.2.1.8-.1 1.4Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm5.4 14.1c-.2.6-1.3 1.2-1.8 1.2-.5.1-1 .2-3.3-.7-2.8-1.1-4.6-4-4.7-4.2-.1-.2-1.1-1.5-1.1-2.9 0-1.4.7-2 1-2.3.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.4 0 .5l-.3.5-.4.4c-.1.1-.3.3-.1.6.2.3.8 1.3 1.7 2.1 1.2 1 2.1 1.3 2.4 1.5.3.1.5.1.6-.1l.9-1.1c.2-.3.4-.2.6-.1l1.9.9c.3.1.5.2.5.3.1.2.1.8-.1 1.4Z'/%3E%3C/svg%3E") center/contain no-repeat; }

/* ---------- otro día y horario / hablar con alguien ---------- */
.flowy-btn--hablar { background: var(--flowy-hablar-fondo, transparent); color: var(--flowy-hablar-texto, #128c4a); border: 1.5px solid var(--flowy-hablar-borde, #25d366); }
.flowy-btn--hablar:hover { filter: brightness(.97); }
.flowy-etq-paso { margin: 14px 0 8px; font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; opacity: .7; text-align: left; }
.flowy-chips { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 8px; }
.flowy-chips--franjas { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
.flowy-chip { border: 1.5px solid #dcdcdc; background: #fff; color: inherit; border-radius: var(--flowy-radio, 12px); padding: 10px 6px; font: inherit; font-size: .9rem; font-weight: 600; cursor: pointer; text-align: center; }
.flowy-chip:hover { border-color: var(--flowy-color); }
.flowy-chip[aria-pressed="true"] { background: var(--flowy-color); border-color: var(--flowy-color); color: var(--flowy-color-texto); }

/* Foto del producto en las opciones de cantidad */
.flowy-oferta__foto { width: 52px; height: 52px; border-radius: 10px; object-fit: cover; flex: none; background: #f2f2f2; }

/* Boton en las listas de productos (inicio, colecciones) */
.flowy-cta--listado { margin: 8px 0 0; padding: 10px 10px; position: relative; z-index: 2; }
.flowy-cta--listado .flowy-cta__t { font-size: calc(var(--flowy-cta-tamano, 16px) * .82); }
.flowy-cta--cargando { opacity: .7; cursor: progress; }

/* Elegir el horario: desde / hasta */
.flowy-rango { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.flowy-rango__campo { display: flex; flex-direction: column; gap: 4px; font-size: .85em; font-weight: 700; }
.flowy-rango__nota { grid-column: 1 / -1; margin-top: -2px; }
.flowy-select { appearance: none; -webkit-appearance: none; width: 100%; font: inherit; font-size: 1rem; font-weight: 700; padding: 11px 34px 11px 12px; border: 1.5px solid #dcdcdc; border-radius: var(--flowy-radio, 12px); color: inherit;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center; cursor: pointer; }
.flowy-select:focus { outline: none; border-color: var(--flowy-color); box-shadow: 0 0 0 3px color-mix(in srgb, var(--flowy-color) 20%, transparent); }
