
.decen-flash-ribbon{
  position:fixed; right:0; top:34%; z-index:99990; border:0; border-radius:16px 0 0 16px;
  background:#111; color:#fff; padding:12px 10px; cursor:pointer; box-shadow:0 10px 30px rgba(0,0,0,.22);
  display:flex; flex-direction:column; gap:5px; align-items:center; text-transform:uppercase; letter-spacing:.08em;
}
.decen-flash-ribbon span{font-size:10px;font-weight:700;writing-mode:vertical-rl;transform:rotate(180deg)}
.decen-flash-ribbon strong{font-size:12px;font-weight:800;writing-mode:vertical-rl;transform:rotate(180deg)}
.decen-flash-overlay{position:fixed;inset:0;background:rgba(255,255,255,.68);backdrop-filter:blur(10px);z-index:2147483600;opacity:0;visibility:hidden;pointer-events:none;transition:.22s ease}
body.decen-flash-open{overflow:hidden}
body.decen-flash-open .decen-flash-overlay{opacity:1;visibility:visible;pointer-events:auto}
.decen-flash-popup{
  position:fixed;top:50%;left:50%;z-index:2147483601;width:min(980px,calc(100vw - 48px));max-height:min(88dvh,760px);
  background:#fff;border-radius:30px;box-shadow:0 30px 90px rgba(20,16,12,.22);padding:22px 24px 20px;
  opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,-46%) scale(.96);transition:.26s ease;overflow:visible;
  font-family:inherit;
}
body.decen-flash-open .decen-flash-popup{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.decen-flash-close{
  position:absolute;top:-18px;right:-18px;width:42px;height:42px;border-radius:50%;border:0;background:#111;color:#fff;font-size:24px;line-height:1;
  display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.18)
}
.decen-flash-head{border-bottom:1px solid #eadfce;padding-bottom:14px;margin-bottom:18px}
.decen-flash-label{display:inline-flex;background:#111;color:#fff;border-radius:999px;padding:6px 14px;font-size:10px;line-height:1;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.decen-flash-head h3{margin:10px 0 6px;color:#1d1711;font-size:clamp(24px,2.3vw,34px);line-height:1.08;letter-spacing:-.02em}
.decen-flash-head p{margin:0;color:#83786e;font-size:14px;line-height:1.35;max-width:760px}
.decen-flash-products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 auto}
.decen-flash-card{
  position:relative;background:#fff;border:1px solid #dfdfdf;border-radius:22px;overflow:hidden;box-shadow:0 16px 34px rgba(32,23,12,.10);
  display:flex;flex-direction:column;min-width:0
}
.decen-flash-card-pill{
  position:absolute;top:10px;right:10px;z-index:4;background:rgba(255,248,235,.96);border:1px solid #e7c789;color:#9b6b1e;border-radius:999px;
  padding:5px 9px;font-size:8px;line-height:1;font-weight:800;letter-spacing:.07em;text-transform:uppercase;box-shadow:0 6px 14px rgba(0,0,0,.08)
}
.decen-flash-image{height:178px;background:#f7f5f2;overflow:hidden}
.decen-flash-image img{width:100%;height:100%;object-fit:cover;display:block}
.decen-flash-card-body{display:flex;flex-direction:column;gap:7px;padding:11px 12px 13px}
.decen-flash-card-body h4{margin:0;color:#1d1711;font-size:15px;line-height:1.1;letter-spacing:-.01em}
.decen-flash-prices{display:flex;align-items:baseline;gap:8px;flex-wrap:nowrap;white-space:nowrap;margin:0!important;line-height:1}
.decen-flash-prices del,.decen-flash-prices del *{color:#847b74!important;font-size:12px!important;font-weight:500!important;text-decoration:line-through!important}
.decen-flash-prices strong,.decen-flash-prices strong *{color:#d92323!important;font-size:17px!important;font-weight:800!important;text-decoration:none!important}
.decen-flash-discount{display:inline-flex;width:max-content;max-width:100%;border-radius:999px;background:#effaf2;border:1px solid #9bd1a7;color:#1f5b2b;padding:4px 9px;font-size:10px;font-weight:800;line-height:1;text-transform:uppercase;letter-spacing:.05em}
.decen-flash-attrs{display:grid;grid-template-columns:1fr;gap:5px;margin-top:2px}
.decen-flash-attrs label{font-size:10px;color:#81776f;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.04em}
.decen-flash-attrs select{width:100%;height:34px;border:1px solid #ddd;border-radius:12px;background:#fff;padding:0 10px;font-size:12px;color:#1d1711}
.decen-flash-actions{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:18px;padding-top:14px;border-top:1px solid #eadfce}
.decen-flash-add.button{border-radius:999px!important;background:#111!important;color:#fff!important;padding:12px 22px!important;font-size:13px!important;font-weight:800!important;line-height:1!important;min-width:230px!important}
.decen-flash-add.button:hover,.decen-flash-add.button:focus{background:#2e2e2e!important;color:#fff!important}
.decen-flash-add.button:disabled{opacity:.6;cursor:wait}
.decen-flash-message{font-size:12px;color:#6f665f;line-height:1.25}
.decen-flash-message.is-error{color:#b42318}
.decen-flash-message.is-success{color:#1f5b2b}
.decen-flash-price-pair{display:inline-flex;align-items:baseline;gap:8px;white-space:nowrap;line-height:1}
.decen-flash-price-pair del,.decen-flash-price-pair del *{color:#777!important;text-decoration:line-through!important}
.decen-flash-price-pair ins,.decen-flash-price-pair ins *{color:#d92323!important;text-decoration:none!important;font-weight:800;background:transparent!important}
.decen-flash-widget-quantity{display:inline-flex!important;align-items:baseline;gap:5px;flex-wrap:wrap}
@media(max-width:900px){
  .decen-flash-popup{width:min(555px,calc(100vw - 28px));padding:18px 16px 16px;max-height:90dvh;overflow:auto}
  .decen-flash-head h3{font-size:22px}
  .decen-flash-products{grid-template-columns:1fr;gap:12px}
  .decen-flash-card{display:grid;grid-template-columns:132px 1fr}
  .decen-flash-image{height:100%}
  .decen-flash-card-pill{left:8px;right:auto}
}
@media(max-width:640px){
  .decen-flash-ribbon{top:auto;bottom:92px}
  .decen-flash-popup{width:calc(100vw - 18px);border-radius:22px;padding:15px 12px 13px}
  .decen-flash-close{top:10px;right:10px;width:34px;height:34px;font-size:20px}
  .decen-flash-head{padding-right:42px;margin-bottom:12px}
  .decen-flash-label{font-size:8px;padding:5px 10px}
  .decen-flash-head h3{font-size:18px}
  .decen-flash-head p{font-size:12px}
  .decen-flash-card{grid-template-columns:112px 1fr;border-radius:18px}
  .decen-flash-card-body{padding:9px;gap:5px}
  .decen-flash-card-body h4{font-size:13px}
  .decen-flash-prices del,.decen-flash-prices del *{font-size:10px!important}
  .decen-flash-prices strong,.decen-flash-prices strong *{font-size:14px!important}
  .decen-flash-actions{flex-direction:column;gap:9px}
  .decen-flash-add.button{width:100%;min-width:0!important}
}

/* v1.0.1 - Ajustes producción: cierre circular, swatches, ribbon arriba, no 0% OFF, cards centradas y PayPal backend. */
.decen-flash-ribbon{
  top:30% !important;
  bottom:auto !important;
  transform:none !important;
}
.decen-flash-close{
  appearance:none !important;
  -webkit-appearance:none !important;
  width:44px !important;
  height:44px !important;
  min-width:44px !important;
  min-height:44px !important;
  max-width:44px !important;
  max-height:44px !important;
  flex:0 0 44px !important;
  aspect-ratio:1 / 1 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:50% !important;
  display:inline-grid !important;
  place-items:center !important;
  line-height:1 !important;
  text-align:center !important;
}
.decen-flash-card{
  border-color:#dedede !important;
}
.decen-flash-card-body{
  flex:1 1 auto !important;
  justify-content:center !important;
  min-height:0 !important;
}
.decen-flash-prices.is-regular-only strong,
.decen-flash-prices.is-regular-only strong *,
.decen-flash-prices.is-regular-only strong bdi{
  color:#1d1711 !important;
  font-weight:700 !important;
  text-decoration:none !important;
}
.decen-flash-prices.is-regular-only{
  text-decoration:none !important;
}
.decen-flash-attrs{
  gap:8px !important;
  margin-top:4px !important;
}
.decen-flash-attr-row{
  display:flex !important;
  flex-direction:column !important;
  gap:6px !important;
}
.decen-flash-attr-label{
  display:block !important;
  font-size:10px !important;
  color:#81776f !important;
  font-weight:800 !important;
  line-height:1 !important;
  text-transform:uppercase !important;
  letter-spacing:.05em !important;
}
.decen-flash-swatches{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:6px !important;
  align-items:center !important;
}
.decen-flash-swatch{
  appearance:none !important;
  -webkit-appearance:none !important;
  border:1px solid #ddd !important;
  background:#fff !important;
  color:#2b2621 !important;
  border-radius:999px !important;
  min-height:30px !important;
  max-width:100% !important;
  padding:5px 10px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  font-size:11px !important;
  font-weight:700 !important;
  line-height:1 !important;
  cursor:pointer !important;
  box-shadow:none !important;
  transition:border-color .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease, transform .08s ease !important;
}
.decen-flash-swatch:hover,
.decen-flash-swatch:focus{
  border-color:#111 !important;
  box-shadow:0 0 0 2px rgba(17,17,17,.08) !important;
}
.decen-flash-swatch:active{
  transform:translateY(1px) !important;
}
.decen-flash-swatch.is-active{
  background:#111 !important;
  border-color:#111 !important;
  color:#fff !important;
}
.decen-flash-swatch__visual{
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  border-radius:50% !important;
  border:1px solid rgba(0,0,0,.16) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.42) !important;
}
.decen-flash-swatch.is-active .decen-flash-swatch__visual{
  border-color:rgba(255,255,255,.55) !important;
}
.decen-flash-swatch__label{
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.decen-flash-card .decen-flash-attrs select{
  display:none !important;
}
.decen-flash-add.button:hover,
.decen-flash-add.button:focus{
  background:#2f2f2f!important;
  color:#fff!important;
}
.decen-flash-add.button:active{
  background:#1f1f1f!important;
  color:#fff!important;
  transform:translateY(1px);
}
@media(max-width:900px){
  .decen-flash-ribbon{
    top:30% !important;
    bottom:auto !important;
  }
  .decen-flash-card-body{
    justify-content:center !important;
  }
  .decen-flash-close{
    width:40px !important;
    height:40px !important;
    min-width:40px !important;
    min-height:40px !important;
    max-width:40px !important;
    max-height:40px !important;
    flex-basis:40px !important;
  }
}
@media(max-width:640px){
  .decen-flash-ribbon{
    top:28% !important;
    bottom:auto !important;
  }
  .decen-flash-close{
    top:10px !important;
    right:10px !important;
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    min-height:34px !important;
    max-width:34px !important;
    max-height:34px !important;
    flex-basis:34px !important;
  }
  .decen-flash-swatch{
    min-height:28px !important;
    padding:5px 9px !important;
    font-size:10px !important;
  }
}


/* v1.0.2 - Swatches compactos: color = círculo sin texto; layout estable con distintas cantidades de variaciones. */
.decen-flash-products{
  align-items:stretch !important;
}
.decen-flash-card{
  min-height:0 !important;
  border-color:#dedede !important;
}
.decen-flash-card-body{
  justify-content:flex-start !important;
  gap:6px !important;
  min-height:0 !important;
}
.decen-flash-card.no-attrs .decen-flash-card-body{
  justify-content:flex-start !important;
}
.decen-flash-card-body h4{
  font-size:14px !important;
  line-height:1.08 !important;
}
.decen-flash-image{
  height:170px !important;
  flex:0 0 170px !important;
}
.decen-flash-attrs{
  display:grid !important;
  gap:8px !important;
  margin-top:3px !important;
  max-height:184px !important;
  overflow:auto !important;
  padding-right:2px !important;
  scrollbar-width:thin !important;
}
.decen-flash-swatches{
  gap:7px !important;
}
.decen-flash-swatch.is-color{
  width:26px !important;
  height:26px !important;
  min-width:26px !important;
  min-height:26px !important;
  max-width:26px !important;
  max-height:26px !important;
  padding:0 !important;
  border-radius:999px !important;
  gap:0 !important;
}
.decen-flash-swatch.is-color .decen-flash-swatch__visual{
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  border-radius:50% !important;
}
.decen-flash-swatch.is-color .decen-flash-swatch__label,
.decen-flash-swatch__label--hidden{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}
.decen-flash-swatch.is-text{
  min-height:26px !important;
  padding:5px 9px !important;
  font-size:10.5px !important;
}
.decen-flash-swatch.is-active.is-color{
  background:#111 !important;
  box-shadow:0 0 0 2px rgba(17,17,17,.12) !important;
}
.decen-flash-swatch.is-active.is-color .decen-flash-swatch__visual{
  border-color:rgba(255,255,255,.7) !important;
}

@media(min-width:901px){
  .decen-flash-popup{
    max-height:min(88dvh,740px) !important;
    overflow:visible !important;
  }
  .decen-flash-card{
    height:100% !important;
  }
}

@media(max-width:900px){
  .decen-flash-image{
    height:100% !important;
    flex:initial !important;
  }
  .decen-flash-attrs{
    max-height:150px !important;
  }
}

@media(max-width:640px){
  .decen-flash-swatch.is-color{
    width:24px !important;
    height:24px !important;
    min-width:24px !important;
    min-height:24px !important;
    max-width:24px !important;
    max-height:24px !important;
  }
  .decen-flash-swatch.is-color .decen-flash-swatch__visual{
    width:16px !important;
    height:16px !important;
    min-width:16px !important;
  }
}


/* v1.0.3 - Compatibilidad ampliada con VillaTheme/term meta: color e imagen sin texto cuando existe visual. */
.decen-flash-swatch.is-color,
.decen-flash-swatch.is-image{
  width:28px !important;
  height:28px !important;
  min-width:28px !important;
  min-height:28px !important;
  max-width:28px !important;
  max-height:28px !important;
  padding:0 !important;
  border-radius:999px !important;
  gap:0 !important;
  overflow:hidden !important;
}
.decen-flash-swatch.is-color .decen-flash-swatch__visual,
.decen-flash-swatch.is-image .decen-flash-swatch__visual{
  width:20px !important;
  height:20px !important;
  min-width:20px !important;
  min-height:20px !important;
  border-radius:50% !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}
.decen-flash-swatch.is-image .decen-flash-swatch__visual{
  border-radius:6px !important;
}
.decen-flash-swatch.is-active.is-color,
.decen-flash-swatch.is-active.is-image{
  background:#111 !important;
  border-color:#111 !important;
  box-shadow:0 0 0 2px rgba(17,17,17,.12) !important;
}
.decen-flash-swatch.is-active.is-color .decen-flash-swatch__visual,
.decen-flash-swatch.is-active.is-image .decen-flash-swatch__visual{
  border-color:rgba(255,255,255,.72) !important;
}
.decen-flash-swatch.is-color .decen-flash-swatch__label,
.decen-flash-swatch.is-image .decen-flash-swatch__label,
.decen-flash-swatch__label--hidden{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

@media(max-width:640px){
  .decen-flash-swatch.is-color,
  .decen-flash-swatch.is-image{
    width:26px !important;
    height:26px !important;
    min-width:26px !important;
    min-height:26px !important;
    max-width:26px !important;
    max-height:26px !important;
  }
  .decen-flash-swatch.is-color .decen-flash-swatch__visual,
  .decen-flash-swatch.is-image .decen-flash-swatch__visual{
    width:18px !important;
    height:18px !important;
    min-width:18px !important;
    min-height:18px !important;
  }
}


/* v1.0.5 - El ribbon lateral usa únicamente el texto configurado en backend. */
.decen-flash-ribbon{
  gap:0 !important;
  min-height:118px;
  min-width:42px;
  justify-content:center;
}
.decen-flash-ribbon span,
.decen-flash-ribbon strong,
.decen-flash-ribbon .decen-flash-ribbon__text{
  display:block !important;
  font-size:11px !important;
  font-weight:800 !important;
  writing-mode:vertical-rl !important;
  transform:rotate(180deg) !important;
  line-height:1.05 !important;
  white-space:nowrap !important;
}
.decen-flash-ribbon strong{
  display:none !important;
}


/* v1.0.6 - Optimización móvil del popup y total visible del paquete. */
.decen-flash-name-mobile{display:none}

@media(max-width:640px){
  .decen-flash-popup{
    width:min(430px,calc(100vw - 28px)) !important;
    height:auto !important;
    max-height:95dvh !important;
    padding:11px 10px 10px !important;
    border-radius:22px !important;
    overflow:auto !important;
  }
  .decen-flash-head{
    padding:0 42px 9px 10px !important;
    margin-bottom:9px !important;
  }
  .decen-flash-head h3{
    margin:8px 0 4px !important;
  }
  .decen-flash-products{
    gap:9px !important;
  }
  .decen-flash-card{
    grid-template-columns:104px minmax(0,1fr) !important;
  }
  .decen-flash-card--mecedora{
    grid-template-columns:122px minmax(0,1fr) !important;
  }
  .decen-flash-card--mecedora .decen-flash-image{
    background:#f4f2ef !important;
  }
  .decen-flash-card--mecedora .decen-flash-image img{
    object-fit:cover !important;
    object-position:center center !important;
  }
  .decen-flash-card-body{
    padding:8px !important;
    gap:4px !important;
  }
  .decen-flash-card-body h4{
    font-size:12px !important;
    line-height:1.08 !important;
  }
  .decen-flash-name-full{display:none !important}
  .decen-flash-name-mobile{display:inline !important}
  .decen-flash-actions{
    margin-top:9px !important;
    padding-top:0 !important;
    border-top:0 !important;
    gap:6px !important;
  }
  .decen-flash-add.button{
    padding:11px 16px !important;
  }
}


/* v1.0.8 - Popup compacto, descuento dentro de la imagen y apertura de side cart. */
.decen-flash-image{
  position:relative !important;
}
.decen-flash-image-media{
  width:100%;
  height:100%;
}
.decen-flash-image-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.decen-flash-image .decen-flash-discount{
  position:absolute !important;
  right:10px !important;
  bottom:10px !important;
  left:auto !important;
  top:auto !important;
  z-index:6 !important;
  margin:0 !important;
  padding:6px 10px !important;
  background:#d92323 !important;
  border:1px solid #d92323 !important;
  color:#fff !important;
  box-shadow:0 5px 14px rgba(217,35,35,.28) !important;
}
@media(max-width:640px){
  .decen-flash-popup{
    height:auto !important;
    max-height:95dvh !important;
  }
  .decen-flash-card--mecedora .decen-flash-image-media img{
    object-fit:cover !important;
    object-position:center center !important;
  }
  .decen-flash-image .decen-flash-discount{
    right:8px !important;
    bottom:8px !important;
    padding:5px 8px !important;
  }
}

/* v1.0.10 - Imágenes más anchas en las tres cards móviles y distribución estable de swatches. */
@media(max-width:640px){
  .decen-flash-card,
  .decen-flash-card--mecedora{
    grid-template-columns:155px minmax(0,1fr) !important;
  }
  .decen-flash-card .decen-flash-image,
  .decen-flash-card .decen-flash-image-media,
  .decen-flash-card .decen-flash-image-media img{
    width:100% !important;
    height:100% !important;
  }
  .decen-flash-card .decen-flash-image-media img{
    object-fit:cover !important;
    object-position:center center !important;
  }
  .decen-flash-card-body{
    min-width:0 !important;
  }
  .decen-flash-card-body h4{
    max-width:100% !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
  }
  .decen-flash-card--mecedora .decen-flash-swatches{
    display:flex !important;
    flex-wrap:wrap !important;
    align-content:flex-start !important;
  }
}
