.ycb{--ycb-border:#dedede;--ycb-bg:#fff;--ycb-soft:#f6f6f6;--ycb-text:#222;--ycb-muted:#6c6c6c;max-width:1280px;margin:0 auto;color:var(--ycb-text)}
.ycb *{box-sizing:border-box}.ycb button,.ycb input{font:inherit}.ycb-builder{margin:0 0 14px}.ycb-filters,.ycb-catalog-section{margin:0 0 34px}.ycb-heading-row,.ycb-filter-head,.ycb-summary{display:flex;align-items:center;justify-content:space-between;gap:20px}.ycb h2,.ycb h3{margin-top:0}.ycb-intro,.ycb-filter-head p{margin-bottom:0;color:var(--ycb-muted)}
.ycb-edit-warning{margin-bottom:24px}.ycb-floating-placeholder{height:0}.ycb-sticky-panel{--ycb-border:#dedede;--ycb-bg:#fff;--ycb-soft:#f6f6f6;--ycb-text:#222;--ycb-muted:#6c6c6c;position:relative;z-index:20;background:rgba(255,255,255,.97);padding:10px 12px 12px;margin:0 -12px 34px;border:1px solid rgba(222,222,222,.92);box-shadow:0 7px 24px rgba(0,0,0,.08);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.ycb-sticky-panel.ycb-is-floating{position:fixed!important;z-index:99990!important;margin:0!important;padding:7px 9px!important;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;box-shadow:0 8px 28px rgba(0,0,0,.16)}.ycb-sticky-panel.ycb-is-floating .ycb-selection{min-height:70px;padding:0;gap:7px;overflow-x:auto}.ycb-sticky-panel.ycb-is-floating .ycb-selected-card{flex-basis:68px;min-width:68px}.ycb-sticky-panel.ycb-is-floating .ycb-selected-image-wrap{aspect-ratio:1/1}.ycb-sticky-panel.ycb-is-floating .ycb-selected-info{display:none}.ycb-sticky-panel.ycb-is-floating .ycb-drag-handle,.ycb-sticky-panel.ycb-is-floating .ycb-remove{width:22px;height:22px;top:3px;font-size:15px}.ycb-sticky-panel.ycb-is-floating .ycb-drag-handle{left:3px}.ycb-sticky-panel.ycb-is-floating .ycb-remove{right:3px}.ycb-sticky-panel.ycb-is-floating .ycb-summary{border-top:0;padding-top:0;flex-direction:column;align-items:stretch;justify-content:center;gap:5px;min-width:180px}.ycb-sticky-panel.ycb-is-floating .ycb-summary>div{white-space:nowrap;text-align:center;font-size:.9em}.ycb-sticky-panel.ycb-is-floating .ycb-add-cart{white-space:nowrap;padding:8px 12px!important}.ycb-sticky-panel.ycb-is-floating .ycb-message{grid-column:1/-1;margin-top:0}.ycb-sticky-panel.ycb-is-floating.ycb-reorder-expanded{display:block;padding:10px 12px 12px!important}.ycb-sticky-panel.ycb-is-floating.ycb-reorder-expanded .ycb-selection{min-height:176px;padding:6px 2px 12px;gap:12px}.ycb-sticky-panel.ycb-is-floating.ycb-reorder-expanded .ycb-selected-card{flex-basis:150px;min-width:150px}.ycb-sticky-panel.ycb-is-floating.ycb-reorder-expanded .ycb-selected-info{display:block}.ycb-sticky-panel.ycb-is-floating.ycb-reorder-expanded .ycb-drag-handle,.ycb-sticky-panel.ycb-is-floating.ycb-reorder-expanded .ycb-remove{width:30px;height:30px;top:7px;font-size:22px}.ycb-sticky-panel.ycb-is-floating.ycb-reorder-expanded .ycb-drag-handle{left:7px}.ycb-sticky-panel.ycb-is-floating.ycb-reorder-expanded .ycb-remove{right:7px}.ycb-sticky-panel.ycb-is-floating.ycb-reorder-expanded .ycb-summary{border-top:1px solid var(--ycb-border);padding-top:10px;flex-direction:row;align-items:center;min-width:0}
.ycb-selection{display:flex;gap:12px;overflow-x:auto;padding:6px 2px 12px;min-height:176px;scrollbar-width:thin;overscroll-behavior-x:contain}.ycb-empty{display:flex;align-items:center;justify-content:center;width:100%;min-height:140px;border:1px dashed var(--ycb-border);color:var(--ycb-muted);background:var(--ycb-soft)}
.ycb-selected-card{position:relative;flex:0 0 150px;border:1px solid var(--ycb-border);background:var(--ycb-bg);border-radius:3px;overflow:hidden;transition:transform .12s ease,box-shadow .12s ease}.ycb-selected-card.is-dragging{box-shadow:0 8px 28px rgba(0,0,0,.18);transform:scale(.98)}.ycb-drag-handle{position:absolute;top:7px;left:7px;z-index:2;border:0;background:rgba(255,255,255,.9);width:30px;height:30px;cursor:grab;touch-action:none;line-height:1;border-radius:99px}.ycb-drag-handle:active{cursor:grabbing}.ycb-remove{position:absolute;top:7px;right:7px;z-index:2;border:0;background:rgba(255,255,255,.92);width:30px;height:30px;border-radius:99px;font-size:22px;line-height:1;cursor:pointer}.ycb-selected-image-wrap{aspect-ratio:1/1;background:#f5f5f5}.ycb-selected-image-wrap img{width:100%;height:100%;object-fit:cover;display:block}.ycb-selected-info{padding:9px 9px 10px}.ycb-selected-info strong,.ycb-selected-info span{display:block}.ycb-selected-info span{margin-top:3px;color:var(--ycb-muted);font-size:.82em;line-height:1.25}
.ycb-summary{padding-top:10px;border-top:1px solid var(--ycb-border)}.ycb-summary-sep{padding:0 5px;color:var(--ycb-muted)}.ycb-add-cart:disabled{opacity:.45;cursor:not-allowed}.ycb-clear,.ycb-reset-bases,.ycb-modal-back{border:0;background:none;text-decoration:underline;cursor:pointer;padding:4px 0}.ycb-message{margin-top:8px}.ycb-message:empty{display:none}.ycb-message.is-error{color:#a51d1d}.ycb-message.is-info{color:var(--ycb-muted)}
.ycb-base-chips{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0}.ycb-chip{border:1px solid var(--ycb-border);background:var(--ycb-bg);padding:9px 14px;border-radius:999px;cursor:pointer}.ycb-chip[aria-pressed="true"]{background:#222;color:#fff;border-color:#222}.ycb-search-wrap{display:block;max-width:420px}.ycb-search-wrap span{display:block;font-size:.88em;margin-bottom:6px}.ycb-search-wrap input{width:100%;padding:10px 12px;border:1px solid var(--ycb-border)}
.ycb-catalog{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:11px}.ycb-color-card{display:block;width:100%;padding:0;border:1px solid var(--ycb-border);background:#fff;text-align:left;cursor:pointer;overflow:hidden;min-width:0}.ycb-color-card:hover{box-shadow:0 4px 18px rgba(0,0,0,.08)}.ycb-color-image-wrap{display:block;aspect-ratio:1/1;background:#f4f4f4;overflow:hidden}.ycb-color-image-wrap img{width:100%;height:100%;display:block;object-fit:cover}.ycb-color-name,.ycb-color-bases{display:block;padding-left:7px;padding-right:7px;overflow-wrap:anywhere}.ycb-color-name{padding-top:7px;font-weight:600;font-size:.86em;line-height:1.2}.ycb-color-bases{padding-top:3px;padding-bottom:8px;color:var(--ycb-muted);font-size:.70em;line-height:1.25}.ycb-no-results{padding:20px;border:1px dashed var(--ycb-border);color:var(--ycb-muted)}
.ycb-modal[hidden]{display:none!important}.ycb-modal{position:fixed;z-index:999999;inset:0;display:flex;align-items:center;justify-content:center;padding:20px}.ycb-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55)}.ycb-modal-card{position:relative;z-index:2;width:min(460px,100%);max-height:90vh;overflow:auto;background:#fff;padding:24px;box-shadow:0 14px 50px rgba(0,0,0,.28)}.ycb-modal-card>img{width:118px;height:118px;object-fit:cover;display:block;margin:0 auto 14px}.ycb-modal-card h3{text-align:center;margin-bottom:8px}.ycb-modal-prompt{text-align:center;color:var(--ycb-muted);margin:0 0 16px}.ycb-modal-close{position:absolute;right:9px;top:7px;width:34px;height:34px;border:0;background:none;font-size:28px;cursor:pointer}.ycb-modal-options{display:grid;gap:9px}.ycb-option-button{border:1px solid var(--ycb-border);background:#fff;padding:12px 14px;cursor:pointer;text-align:left}.ycb-option-button:hover,.ycb-option-button:focus{border-color:#222}.ycb-size-button{display:flex;align-items:center;justify-content:space-between;gap:18px}.ycb-size-button small{color:var(--ycb-muted)}.ycb-modal-back{display:block;margin:16px auto 0}.ycb-modal-open{overflow:hidden}
@media(max-width:1180px){.ycb-catalog{grid-template-columns:repeat(7,minmax(0,1fr))}}
@media(max-width:1020px){.ycb-catalog{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:860px){.ycb-catalog{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:720px){.ycb-heading-row,.ycb-filter-head{align-items:flex-start;flex-direction:column}.ycb-selection{min-height:158px}.ycb-selected-card{flex-basis:125px}.ycb-sticky-panel:not(.ycb-is-floating){padding:8px 9px 10px;margin-left:-9px;margin-right:-9px}.ycb-catalog{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.ycb-color-name,.ycb-color-bases{padding-left:6px;padding-right:6px}.ycb-color-name{font-size:.80em}.ycb-color-bases{font-size:.66em}}
@media(max-width:520px){.ycb-summary{gap:9px;align-items:stretch;flex-direction:column}.ycb-summary .ycb-add-cart{width:100%}.ycb-selection{min-height:148px}.ycb-selected-card{flex-basis:116px}.ycb-catalog{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.ycb-base-chips{gap:7px}.ycb-chip{padding:8px 11px}}
@media(max-width:350px){.ycb-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ycb-cart-edit{margin-top:5px;font-size:.86em}.ycb-cart-edit a{text-decoration:underline}

/* v0.4: el atributo hidden debe prevalecer sobre el display del botón de retroceso. */
.ycb-modal-back[hidden]{display:none!important}

/* v0.4: presentación compacta del combo en el carrito. */
.ycb-cart-combo-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 9px;padding:0 0 8px;border-bottom:1px solid var(--ycb-border,#dedede)}
.ycb-cart-combo-heading strong{font-size:.9em;letter-spacing:.045em}
.ycb-cart-edit-link{white-space:nowrap;text-decoration:underline;font-size:.88em}
.ycb-cart-combo-line{display:block;line-height:1.35}
tr.ycb-combo-row td.product-name{vertical-align:middle}
tr.ycb-combo-first td.product-name{padding-top:16px}

/* v0.5: WooCommerce Cart Block. */
.ycb-block-combo-heading-row>td{padding-top:18px!important;padding-bottom:7px!important;border-bottom:0!important}
.ycb-block-combo-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 0 9px;border-bottom:1px solid var(--ycb-border,#dedede)}
.ycb-block-combo-heading strong{font-size:.92em;letter-spacing:.045em}
.ycb-block-combo-row .wc-block-components-product-name{font-weight:600}
.ycb-block-combo-row.ycb-block-combo-first>td{border-top:0!important}
@media(max-width:520px){.ycb-block-combo-heading{align-items:flex-start}.ycb-block-combo-heading strong{font-size:.86em}.ycb-block-combo-heading .ycb-cart-edit-link{font-size:.82em}}


/* v0.6: en los combos el nombre ya contiene Base · Tamaño · Color.
   Ocultamos descripción corta/composición y metadatos de variación duplicados. */
.ycb-block-combo-row .wc-block-components-product-metadata,
.ycb-block-combo-row .wc-block-components-product-metadata__description,
.ycb-block-combo-row .wc-block-components-product-details,
tr.ycb-combo-row .product-description,
tr.ycb-combo-row .woocommerce-product-details__short-description,
tr.ycb-combo-row .variation,
tr.ycb-combo-row .product_meta{display:none!important}

/* La cabecera del combo pertenece solo al carrito completo; nunca debe ocupar
   espacio dentro de un mini-carrito lateral. */
.widget_shopping_cart .ycb-cart-combo-heading,
.woocommerce-mini-cart .ycb-cart-combo-heading,
.wc-block-mini-cart .ycb-block-combo-heading{display:none!important}


/* v0.7: nomenclatura y compactación coherentes para todas las madejas de bases configuradas. */
.ycb-block-yarn-row .wc-block-components-product-metadata,
.ycb-block-yarn-row .wc-block-components-product-metadata__description,
.ycb-block-yarn-row .wc-block-components-product-details,
tr.ycb-yarn-row .product-description,
tr.ycb-yarn-row .woocommerce-product-details__short-description,
tr.ycb-yarn-row .variation,
tr.ycb-yarn-row .product_meta{display:none!important}

/* Carrito completo: filas más densas para poder comparar muchas madejas de un vistazo. */
.wc-block-cart .ycb-block-yarn-row td{padding-top:9px!important;padding-bottom:9px!important}
.wc-block-cart .ycb-block-yarn-row .wc-block-cart-item__image{width:72px!important;padding-right:10px!important}
.wc-block-cart .ycb-block-yarn-row .wc-block-cart-item__image img{width:64px!important;height:64px!important;object-fit:cover!important}
.wc-block-cart .ycb-block-yarn-row .wc-block-components-product-name{font-size:13px!important;line-height:1.25!important;margin-bottom:2px!important}
.wc-block-cart .ycb-block-yarn-row .wc-block-components-product-price,
.wc-block-cart .ycb-block-yarn-row .wc-block-cart-item__total-price-and-sale-badge-wrapper{font-size:12px!important;line-height:1.2!important}
.wc-block-cart .ycb-block-yarn-row .wc-block-components-quantity-selector{min-height:32px!important;height:32px!important;margin-top:5px!important}
.wc-block-cart .ycb-block-yarn-row .wc-block-components-quantity-selector input{min-height:30px!important;height:30px!important;padding-top:0!important;padding-bottom:0!important}
.wc-block-cart .ycb-block-yarn-row .wc-block-components-quantity-selector button{min-height:30px!important;height:30px!important}
.wc-block-cart .ycb-block-combo-heading-row>td{padding-top:13px!important;padding-bottom:4px!important}
.wc-block-cart .ycb-block-combo-heading{padding-bottom:6px!important;margin-bottom:0!important}

/* Carrito clásico, si alguna página futura lo utiliza. */
.woocommerce-cart-form tr.ycb-yarn-row td{padding-top:9px!important;padding-bottom:9px!important}
.woocommerce-cart-form tr.ycb-yarn-row img{width:64px!important;height:64px!important;object-fit:cover!important}

@media(max-width:720px){
  .ycb-sticky-panel.ycb-is-floating{left:6px!important;right:6px!important;width:auto!important;grid-template-columns:minmax(0,1fr) 132px;gap:6px;padding:6px!important}
  .ycb-sticky-panel.ycb-is-floating .ycb-selected-card{flex-basis:58px;min-width:58px}
  .ycb-sticky-panel.ycb-is-floating .ycb-selection{min-height:60px}
  .ycb-sticky-panel.ycb-is-floating .ycb-summary{min-width:132px;font-size:.84em}
  .ycb-sticky-panel.ycb-is-floating .ycb-add-cart{font-size:.82em;padding:7px 8px!important}
  .ycb-sticky-panel.ycb-is-floating.ycb-reorder-expanded{left:6px!important;right:6px!important;width:auto!important}
  .ycb-sticky-panel.ycb-is-floating.ycb-reorder-expanded .ycb-selected-card{flex-basis:116px;min-width:116px}
  .ycb-sticky-panel.ycb-is-floating.ycb-reorder-expanded .ycb-selection{min-height:148px}
  .wc-block-cart .ycb-block-yarn-row .wc-block-cart-item__image{width:62px!important}
  .wc-block-cart .ycb-block-yarn-row .wc-block-cart-item__image img{width:54px!important;height:54px!important}
}


/* v0.8 ------------------------------------------------------------------
   1) El panel flotante conserva exactamente el mismo tamaño y estructura
      que el panel en su posición natural: solo cambia position -> fixed.
   2) En carrito de escritorio cantidad + eliminar aprovechan el espacio a
      la derecha del producto y vuelven debajo cuando falta anchura.
   3) Checkout / "Tu pedido" mucho más compacto.
------------------------------------------------------------------------- */
.ycb-sticky-panel.ycb-is-floating{
  position:fixed!important;
  z-index:99990!important;
  margin:0!important;
  padding:10px 12px 12px!important;
  display:block!important;
  align-items:initial!important;
  gap:initial!important;
  background:rgba(255,255,255,.97)!important;
  box-shadow:0 8px 28px rgba(0,0,0,.16)!important;
}
.ycb-sticky-panel.ycb-is-floating .ycb-selection{
  min-height:176px!important;
  padding:6px 2px 12px!important;
  gap:12px!important;
  overflow-x:auto!important;
}
.ycb-sticky-panel.ycb-is-floating .ycb-selected-card{
  flex:0 0 150px!important;
  min-width:150px!important;
}
.ycb-sticky-panel.ycb-is-floating .ycb-selected-info{display:block!important;padding:9px 9px 10px!important}
.ycb-sticky-panel.ycb-is-floating .ycb-drag-handle,
.ycb-sticky-panel.ycb-is-floating .ycb-remove{width:30px!important;height:30px!important;top:7px!important;font-size:22px!important}
.ycb-sticky-panel.ycb-is-floating .ycb-drag-handle{left:7px!important}
.ycb-sticky-panel.ycb-is-floating .ycb-remove{right:7px!important}
.ycb-sticky-panel.ycb-is-floating .ycb-summary{
  border-top:1px solid var(--ycb-border)!important;
  padding-top:10px!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:20px!important;
  min-width:0!important;
}
.ycb-sticky-panel.ycb-is-floating .ycb-summary>div{white-space:normal!important;text-align:left!important;font-size:inherit!important}
.ycb-sticky-panel.ycb-is-floating .ycb-add-cart{white-space:normal!important;padding:inherit!important}
.ycb-sticky-panel.ycb-is-floating .ycb-message{margin-top:8px!important}

/* Carrito completo: controles a la derecha del producto cuando hay sitio. */
@media(min-width:900px){
  .wc-block-cart .ycb-block-yarn-row .wc-block-cart-item__wrap{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-auto-rows:auto!important;
    column-gap:18px!important;
    align-items:center!important;
  }
  .wc-block-cart .ycb-block-yarn-row .wc-block-cart-item__wrap>.wc-block-components-product-name,
  .wc-block-cart .ycb-block-yarn-row .wc-block-cart-item__wrap>.wc-block-components-product-price,
  .wc-block-cart .ycb-block-yarn-row .wc-block-cart-item__wrap>.wc-block-components-product-metadata,
  .wc-block-cart .ycb-block-yarn-row .wc-block-cart-item__wrap>.wc-block-components-product-details{
    grid-column:1!important;
  }
  .wc-block-cart .ycb-block-yarn-row .wc-block-cart-item__quantity{
    grid-column:2!important;
    grid-row:1 / span 5!important;
    align-self:center!important;
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
    margin:0!important;
    white-space:nowrap!important;
  }
  .wc-block-cart .ycb-block-yarn-row .wc-block-components-quantity-selector{margin:0!important}
  .wc-block-cart .ycb-block-yarn-row .wc-block-cart-item__remove-link{margin:0!important}
}

/* Checkout Block: resumen de pedido más denso. */
.wc-block-checkout .wc-block-components-order-summary-item{
  padding-top:6px!important;
  padding-bottom:6px!important;
  min-height:0!important;
}
.wc-block-checkout .wc-block-components-order-summary-item__image{
  width:56px!important;
  min-width:56px!important;
  flex-basis:56px!important;
  margin-right:9px!important;
}
.wc-block-checkout .wc-block-components-order-summary-item__image img{
  width:52px!important;
  height:52px!important;
  object-fit:cover!important;
}
.wc-block-checkout .wc-block-components-order-summary-item__description,
.wc-block-checkout .wc-block-components-order-summary-item__total-price{
  font-size:12px!important;
  line-height:1.22!important;
}
.wc-block-checkout .wc-block-components-order-summary-item__quantity{
  font-size:10.5px!important;
  line-height:1.1!important;
}

/* Checkout clásico / Salient: misma compactación para "Tu pedido". */
.woocommerce-checkout-review-order-table tr.cart_item td{
  padding-top:6px!important;
  padding-bottom:6px!important;
  vertical-align:middle!important;
}
.woocommerce-checkout-review-order-table tr.cart_item img,
.woocommerce-checkout-review-order-table tr.cart_item .product-image img,
.woocommerce-checkout-review-order-table tr.cart_item .product-thumbnail img{
  width:52px!important;
  height:52px!important;
  max-width:52px!important;
  object-fit:cover!important;
}
.woocommerce-checkout-review-order-table tr.cart_item .product-name,
.woocommerce-checkout-review-order-table tr.cart_item .product-total{
  font-size:12px!important;
  line-height:1.22!important;
}
.woocommerce-checkout-review-order-table tr.cart_item .product-quantity,
.woocommerce-checkout-review-order-table tr.cart_item .quantity{
  font-size:10.5px!important;
  line-height:1.1!important;
}

@media(max-width:899px){
  .wc-block-cart .ycb-block-yarn-row .wc-block-cart-item__wrap{display:block!important}
  .wc-block-cart .ycb-block-yarn-row .wc-block-cart-item__quantity{
    position:static!important;
    transform:none!important;
    margin-top:5px!important;
  }
}
@media(max-width:720px){
  .ycb-sticky-panel.ycb-is-floating{left:6px!important;right:6px!important;width:auto!important;padding:8px 9px 10px!important}
  .ycb-sticky-panel.ycb-is-floating .ycb-selection{min-height:158px!important;gap:12px!important}
  .ycb-sticky-panel.ycb-is-floating .ycb-selected-card{flex-basis:125px!important;min-width:125px!important}
  .ycb-sticky-panel.ycb-is-floating .ycb-summary{align-items:flex-start!important;flex-direction:column!important;gap:9px!important}
}
@media(max-width:520px){
  .ycb-sticky-panel.ycb-is-floating .ycb-selection{min-height:148px!important}
  .ycb-sticky-panel.ycb-is-floating .ycb-selected-card{flex-basis:116px!important;min-width:116px!important}
  .ycb-sticky-panel.ycb-is-floating .ycb-summary .ycb-add-cart{width:100%!important}
  .wc-block-checkout .wc-block-components-order-summary-item__image{width:48px!important;min-width:48px!important;flex-basis:48px!important}
  .wc-block-checkout .wc-block-components-order-summary-item__image img{width:44px!important;height:44px!important}
}

/* v0.9 ------------------------------------------------------------------
   - El panel flotante conserva posición/ancho exactos y queda por debajo de
     overlays como el carrito lateral.
   - Cantidades de combos vuelven a ser editables (controlado por Store API).
   - Checkout: más líneas visibles en "Tu pedido".
------------------------------------------------------------------------- */
.ycb-sticky-panel.ycb-is-floating{
  z-index:900!important;
}

/* El botón no debe cambiar de geometría al salir del contexto de WPBakery.
   JS conserva los estilos computados; estas reglas evitan transformaciones del tema. */
.ycb-sticky-panel.ycb-is-floating .ycb-add-cart{
  transform:none!important;
  -webkit-transform:none!important;
}

/* Devolvemos el selector +/- normal dentro de combos en el carrito completo. */
.wc-block-cart .ycb-block-combo-row .wc-block-components-quantity-selector{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
}

/* "Tu pedido": el límite de altura del Order Summary era el motivo de seguir
   viendo solo unas tres líneas aunque las filas se hubieran reducido. */
.wc-block-checkout .wc-block-components-order-summary__content,
.wc-block-checkout .wc-block-components-order-summary .wc-block-components-order-summary__content,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-order-summary__content{
  max-height:430px!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
}
.wc-block-checkout .wc-block-components-order-summary-item{
  padding-top:3px!important;
  padding-bottom:3px!important;
  margin-top:0!important;
  margin-bottom:0!important;
  min-height:46px!important;
}
.wc-block-checkout .wc-block-components-order-summary-item__image{
  width:46px!important;
  min-width:46px!important;
  flex-basis:46px!important;
  margin-right:8px!important;
}
.wc-block-checkout .wc-block-components-order-summary-item__image img{
  width:42px!important;
  height:42px!important;
  object-fit:cover!important;
}
.wc-block-checkout .wc-block-components-order-summary-item__description,
.wc-block-checkout .wc-block-components-order-summary-item__total-price{
  font-size:11.5px!important;
  line-height:1.16!important;
}
.wc-block-checkout .wc-block-components-order-summary-item__quantity{
  font-size:9.5px!important;
  line-height:1!important;
  margin-top:1px!important;
}

@media(max-width:720px){
  .ycb-sticky-panel.ycb-is-floating{z-index:900!important}
  .wc-block-checkout .wc-block-components-order-summary__content,
  .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-order-summary__content{
    max-height:340px!important;
  }
}

/* v0.10 -----------------------------------------------------------------
   Checkout Blocks / Salient: compactación aplicada directamente a los
   componentes de Order Summary, sin depender del wrapper .wc-block-checkout.
   La versión anterior quedaba fuera del DOM real usado por esta plantilla.
------------------------------------------------------------------------- */

/* No recortar el listado: deben poder verse todas las líneas del pedido. */
.wc-block-components-order-summary,
.wc-block-components-order-summary__content,
.wp-block-woocommerce-checkout-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-order-summary,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-order-summary__content{
  max-height:none!important;
  height:auto!important;
  overflow:visible!important;
  overflow-y:visible!important;
}

/* Filas realmente compactas, independientemente del contenedor del tema. */
.wc-block-components-order-summary-item{
  padding-top:3px!important;
  padding-bottom:3px!important;
  margin-top:0!important;
  margin-bottom:0!important;
  min-height:46px!important;
  gap:7px!important;
}
.wc-block-components-order-summary-item__image{
  width:46px!important;
  min-width:46px!important;
  max-width:46px!important;
  flex:0 0 46px!important;
  margin-right:7px!important;
}
.wc-block-components-order-summary-item__image img{
  width:42px!important;
  height:42px!important;
  max-width:42px!important;
  max-height:42px!important;
  object-fit:cover!important;
  margin:0!important;
}
.wc-block-components-order-summary-item__description,
.wc-block-components-order-summary-item__description p,
.wc-block-components-order-summary-item__total-price{
  font-size:11.5px!important;
  line-height:1.16!important;
  margin-top:0!important;
  margin-bottom:0!important;
}
.wc-block-components-order-summary-item__quantity{
  font-size:9.5px!important;
  line-height:1!important;
  margin-top:2px!important;
}

/* Algunos builds de Checkout Blocks meten un wrapper intermedio con altura
   fija/overflow. Si forma parte del resumen, tampoco debe cortar las filas. */
.ycb-checkout-order-summary,
.ycb-checkout-order-summary .wc-block-components-order-summary__content{
  max-height:none!important;
  height:auto!important;
  overflow:visible!important;
  overflow-y:visible!important;
}

@media(max-width:720px){
  .wc-block-components-order-summary-item__image{
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    flex-basis:42px!important;
  }
  .wc-block-components-order-summary-item__image img{
    width:38px!important;
    height:38px!important;
    max-width:38px!important;
    max-height:38px!important;
  }
}


/* v0.11 -----------------------------------------------------------------
   Checkout: si el Order Summary nativo de WooCommerce/tema solo pinta parte
   del carrito, JS sustituye únicamente la lista de productos por una lista
   completa alimentada por wc/store/cart. Totales y pagos siguen siendo nativos.
------------------------------------------------------------------------- */
.ycb-checkout-full-items{
  display:block!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
}
.ycb-checkout-full-item{
  display:grid!important;
  grid-template-columns:58px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  padding:5px 0!important;
  margin:0!important;
  min-height:58px!important;
  border-bottom:1px solid rgba(0,0,0,.055)!important;
}
.ycb-checkout-full-item:last-child{border-bottom:0!important}
.ycb-checkout-full-item__image{
  width:54px!important;
  height:54px!important;
  margin:0!important;
  overflow:hidden!important;
  background:#f5f5f5!important;
}
.ycb-checkout-full-item__image img{
  display:block!important;
  width:54px!important;
  height:54px!important;
  max-width:none!important;
  object-fit:cover!important;
  margin:0!important;
}
.ycb-checkout-full-item__body{min-width:0!important}
.ycb-checkout-full-item__name{
  display:block!important;
  margin:0!important;
  font-size:12px!important;
  line-height:1.22!important;
  font-weight:600!important;
  overflow-wrap:anywhere!important;
}
.ycb-checkout-full-item__qty{
  display:block!important;
  margin-top:4px!important;
  font-size:10.5px!important;
  line-height:1.15!important;
  font-weight:400!important;
}
.ycb-checkout-full-item__price{
  align-self:center!important;
  white-space:nowrap!important;
  font-size:12px!important;
  line-height:1.2!important;
  padding-left:8px!important;
}
.ycb-native-checkout-items-hidden{display:none!important}
@media(max-width:520px){
  .ycb-checkout-full-item{grid-template-columns:46px minmax(0,1fr) auto!important;gap:8px!important;min-height:50px!important}
  .ycb-checkout-full-item__image,.ycb-checkout-full-item__image img{width:44px!important;height:44px!important}
  .ycb-checkout-full-item__name,.ycb-checkout-full-item__price{font-size:11px!important}
  .ycb-checkout-full-item__qty{font-size:9.5px!important}
}

/* v0.13 -----------------------------------------------------------------
   - El panel flotante se suspende mientras hay un modal del constructor o
     un overlay externo (carrito lateral) abierto, para evitar solapes.
   - Tarjetas del catálogo homogéneas en móvil.
   - Checkout clásico de Salient: lista completa compacta construida por JS.
------------------------------------------------------------------------- */
.ycb-sticky-panel.ycb-is-floating.ycb-overlay-suspended{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* La tarjeta completa mantiene geometría estable; en móvil reservamos el
   mismo espacio para nombre y bases aunque alguna etiqueta salte de línea. */
.ycb-color-card{
  display:flex!important;
  flex-direction:column!important;
  height:100%!important;
  color:var(--ycb-text)!important;
}
.ycb-color-image-wrap{flex:0 0 auto!important}
.ycb-color-name{color:var(--ycb-text)!important}
.ycb-color-bases{color:var(--ycb-muted)!important}

@media(max-width:720px){
  .ycb-catalog{align-items:stretch!important}
  .ycb-color-name{
    line-height:1.16!important;
    height:2.32em!important;
    min-height:2.32em!important;
    max-height:2.32em!important;
    overflow:hidden!important;
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
  }
  .ycb-color-bases{
    line-height:1.16!important;
    height:2.32em!important;
    min-height:2.32em!important;
    max-height:2.32em!important;
    overflow:hidden!important;
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
  }
}

/* Checkout clásico: el tema de Yarnity usa el checkout clásico aunque el
   carrito sea Blocks. La lista nativa queda oculta y JS pinta todas las filas
   reales del tbody fuera de cualquier altura/overflow impuesto por Salient. */
.ycb-classic-checkout-full-items{
  display:block!important;
  width:100%!important;
  margin:0 0 8px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
.ycb-classic-checkout-full-item{
  display:grid!important;
  grid-template-columns:58px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  min-height:58px!important;
  margin:0!important;
  padding:5px 0!important;
  border-bottom:1px solid rgba(0,0,0,.055)!important;
}
.ycb-classic-checkout-full-item:last-child{border-bottom:0!important}
.ycb-classic-checkout-full-item__image{
  width:54px!important;
  height:54px!important;
  overflow:hidden!important;
  background:#f5f5f5!important;
}
.ycb-classic-checkout-full-item__image img{
  display:block!important;
  width:54px!important;
  height:54px!important;
  max-width:none!important;
  object-fit:cover!important;
  margin:0!important;
}
.ycb-classic-checkout-full-item__body{min-width:0!important}
.ycb-classic-checkout-full-item__name{
  display:block!important;
  font-size:12px!important;
  line-height:1.22!important;
  font-weight:600!important;
  overflow-wrap:anywhere!important;
}
.ycb-classic-checkout-full-item__qty{
  display:block!important;
  margin-top:4px!important;
  font-size:10.5px!important;
  line-height:1.15!important;
  font-weight:400!important;
}
.ycb-classic-checkout-full-item__price{
  white-space:nowrap!important;
  padding-left:8px!important;
  font-size:12px!important;
  line-height:1.2!important;
}
.woocommerce-checkout-review-order-table tbody.ycb-native-classic-checkout-items-hidden tr.cart_item{
  display:none!important;
}
/* Defensa adicional por si Salient impone altura al propio review. */
#order_review,
#order_review .woocommerce-checkout-review-order-table,
#order_review .shop_table,
.checkout-order-review,
.woocommerce-checkout-review-order{
  max-height:none!important;
  height:auto!important;
  overflow:visible!important;
  overflow-y:visible!important;
}
@media(max-width:520px){
  .ycb-classic-checkout-full-item{
    grid-template-columns:46px minmax(0,1fr) auto!important;
    gap:8px!important;
    min-height:50px!important;
  }
  .ycb-classic-checkout-full-item__image,
  .ycb-classic-checkout-full-item__image img{width:44px!important;height:44px!important}
  .ycb-classic-checkout-full-item__name,
  .ycb-classic-checkout-full-item__price{font-size:11px!important}
  .ycb-classic-checkout-full-item__qty{font-size:9.5px!important}
}


/* v0.14 -----------------------------------------------------------------
   - Checkout clásico: resumen completo renderizado por PHP desde WC()->cart.
   - Barra flotante estable: JS congela left/width/top durante scroll.
   - Catálogo móvil: todas las tarjetas tienen exactamente la misma geometría.
------------------------------------------------------------------------- */

/* El resumen de servidor precede a la tabla nativa. Ocultamos SOLO
   tr.cart_item y nunca el tbody entero: Salient puede colocar las filas de
   subtotal/envío/impuestos/total dentro del propio tbody (no en tfoot). */
.ycb-server-checkout-summary{
  display:block!important;
  width:100%!important;
  margin:0 0 8px!important;
  padding:0!important;
}
.ycb-server-checkout-summary ~ .woocommerce-checkout-review-order-table tbody tr.cart_item,
#order_review .ycb-server-checkout-summary ~ table tbody tr.cart_item{
  display:none!important;
}
.ycb-server-checkout-item{
  display:grid!important;
  grid-template-columns:58px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  min-height:58px!important;
  padding:5px 0!important;
  margin:0!important;
  border-bottom:1px solid rgba(0,0,0,.055)!important;
}
.ycb-server-checkout-item:last-child{border-bottom:0!important}
.ycb-server-checkout-item__image{width:54px!important;height:54px!important;overflow:hidden!important;background:#f5f5f5!important}
.ycb-server-checkout-item__image img{display:block!important;width:54px!important;height:54px!important;max-width:none!important;object-fit:cover!important;margin:0!important}
.ycb-server-checkout-item__body{min-width:0!important}
.ycb-server-checkout-item__name{display:block!important;font-size:12px!important;line-height:1.22!important;font-weight:600!important;overflow-wrap:anywhere!important}
.ycb-server-checkout-item__qty{display:block!important;margin-top:4px!important;font-size:10.5px!important;line-height:1.15!important}
.ycb-server-checkout-item__price{white-space:nowrap!important;font-size:12px!important;line-height:1.2!important;padding-left:8px!important}

/* Mientras el modal propio está abierto, una barra flotante nunca debe quedar
   visible por detrás aunque la detección JS de overlays se retrase un frame. */
body.ycb-modal-open .ycb-sticky-panel.ycb-is-floating{opacity:0!important;visibility:hidden!important;pointer-events:none!important}

/* Igualamos las cajas por geometría, no por el elemento más alto de cada fila. */
@media(max-width:720px){
  .ycb-catalog{align-items:stretch!important;grid-auto-rows:auto!important}
  .ycb-color-card{
    display:grid!important;
    grid-template-rows:auto 48px 46px!important;
    align-content:start!important;
    height:auto!important;
    min-height:0!important;
  }
  .ycb-color-image-wrap{width:100%!important;aspect-ratio:1/1!important}
  .ycb-color-name{
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
    height:48px!important;min-height:48px!important;max-height:48px!important;
    padding:7px 7px 2px!important;
    line-height:1.16!important;
    overflow:hidden!important;
  }
  .ycb-color-bases{
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
    height:46px!important;min-height:46px!important;max-height:46px!important;
    padding:3px 7px 8px!important;
    line-height:1.16!important;
    overflow:hidden!important;
  }
}
@media(max-width:520px){
  .ycb-server-checkout-item{grid-template-columns:46px minmax(0,1fr) auto!important;gap:8px!important;min-height:50px!important}
  .ycb-server-checkout-item__image,.ycb-server-checkout-item__image img{width:44px!important;height:44px!important}
  .ycb-server-checkout-item__name,.ycb-server-checkout-item__price{font-size:11px!important}
  .ycb-server-checkout-item__qty{font-size:9.5px!important}
  .ycb-color-card{grid-template-rows:auto 50px 48px!important}
  .ycb-color-name{height:50px!important;min-height:50px!important;max-height:50px!important;font-size:.80em!important}
  .ycb-color-bases{height:48px!important;min-height:48px!important;max-height:48px!important;font-size:.66em!important}
}

/* v0.15 -----------------------------------------------------------------
   - Sin filtros: misma selección, orden y fotografía representativa que la
     parrilla pública «Por color». No se listan bases bajo la tarjeta.
   - Con filtros: entran todos los colores comprables de las bases elegidas y
     la fotografía corresponde a la base/producto real.
   - Sticky estable también en móvil, sin compactar ni recalcular en scroll.
   - Checkout clásico: oculta solamente las filas de artículos nativas.
   - Modal móvil por encima del selector flotante de GTranslate.
------------------------------------------------------------------------- */

/* El resumen de servidor sustituye filas de artículos, pero conserva
   siempre las filas de importes, estén en tbody o en tfoot. */
body.ycb-server-checkout-active #order_review .woocommerce-checkout-review-order-table tbody tr.cart_item,
body.ycb-server-checkout-active .woocommerce-checkout-review-order-table tbody tr.cart_item{
  display:none!important;
}

/* El panel fijo debe conservar EXACTAMENTE la geometría visual del panel normal. */
.ycb-sticky-panel.ycb-is-floating{
  position:fixed!important;
  right:auto!important;
  margin:0!important;
  padding:10px 12px 12px!important;
  display:block!important;
  z-index:900!important;
  background:rgba(255,255,255,.97)!important;
  box-shadow:0 8px 28px rgba(0,0,0,.16)!important;
}
.ycb-sticky-panel.ycb-is-floating .ycb-selection{
  min-height:176px!important;
  padding:6px 2px 12px!important;
  gap:12px!important;
  overflow-x:auto!important;
}
.ycb-sticky-panel.ycb-is-floating .ycb-selected-card{
  flex:0 0 150px!important;
  min-width:150px!important;
}
.ycb-sticky-panel.ycb-is-floating .ycb-selected-info{display:block!important;padding:9px 9px 10px!important}
.ycb-sticky-panel.ycb-is-floating .ycb-drag-handle,
.ycb-sticky-panel.ycb-is-floating .ycb-remove{width:30px!important;height:30px!important;top:7px!important;font-size:22px!important}
.ycb-sticky-panel.ycb-is-floating .ycb-drag-handle{left:7px!important}
.ycb-sticky-panel.ycb-is-floating .ycb-remove{right:7px!important}
.ycb-sticky-panel.ycb-is-floating .ycb-summary{
  padding-top:10px!important;
  border-top:1px solid var(--ycb-border)!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:20px!important;
  min-width:0!important;
}
.ycb-sticky-panel.ycb-is-floating .ycb-summary>div{white-space:normal!important;text-align:left!important;font-size:inherit!important}
.ycb-sticky-panel.ycb-is-floating .ycb-add-cart{white-space:normal!important;transform:none!important;-webkit-transform:none!important}
.ycb-sticky-panel.ycb-is-floating .ycb-message{margin-top:8px!important}

/* Tarjetas: la vista general solo necesita nombre. La vista filtrada usa una
   segunda línea compacta: una base concreta o «N bases disponibles». */
.ycb-color-card--general .ycb-color-bases{display:none!important}
.ycb-color-card--general,
.ycb-color-card--filtered{height:100%!important}

@media(max-width:720px){
  .ycb-sticky-panel.ycb-is-floating{
    margin:0!important;
    padding:8px 9px 10px!important;
    display:block!important;
  }
  .ycb-sticky-panel.ycb-is-floating .ycb-selection{
    min-height:158px!important;
    padding:6px 2px 12px!important;
    gap:12px!important;
  }
  .ycb-sticky-panel.ycb-is-floating .ycb-selected-card{
    flex:0 0 125px!important;
    min-width:125px!important;
  }
  .ycb-sticky-panel.ycb-is-floating .ycb-summary{
    align-items:stretch!important;
    flex-direction:column!important;
    gap:9px!important;
  }

  .ycb-color-card--general{
    display:grid!important;
    grid-template-rows:auto 62px!important;
    align-content:start!important;
    min-height:0!important;
  }
  .ycb-color-card--filtered{
    display:grid!important;
    grid-template-rows:auto 62px 30px!important;
    align-content:start!important;
    min-height:0!important;
  }
  .ycb-color-card .ycb-color-image-wrap{width:100%!important;aspect-ratio:1/1!important}
  .ycb-color-card .ycb-color-name{
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:3!important;
    height:62px!important;
    min-height:62px!important;
    max-height:62px!important;
    padding:7px 7px 4px!important;
    line-height:1.14!important;
    overflow:hidden!important;
  }
  .ycb-color-card--filtered .ycb-color-bases{
    display:block!important;
    height:30px!important;
    min-height:30px!important;
    max-height:30px!important;
    padding:2px 7px 7px!important;
    line-height:1.2!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  /* En la elección de base/tamaño, el selector flotante de GTranslate no
     puede quedar por encima del modal. */
  .ycb-modal{z-index:2147483000!important}
  body.ycb-modal-open .gt_float_switcher,
  body.ycb-modal-open .gt_switcher_wrapper,
  body.ycb-modal-open .gtranslate_wrapper,
  body.ycb-modal-open [class*="gtranslate"][style*="position: fixed"]{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
}

@media(max-width:520px){
  .ycb-sticky-panel.ycb-is-floating .ycb-selection{min-height:148px!important}
  .ycb-sticky-panel.ycb-is-floating .ycb-selected-card{flex:0 0 116px!important;min-width:116px!important}
  .ycb-sticky-panel.ycb-is-floating .ycb-summary .ycb-add-cart{width:100%!important}
  .ycb-color-card--general{grid-template-rows:auto 64px!important}
  .ycb-color-card--filtered{grid-template-rows:auto 64px 30px!important}
  .ycb-color-card .ycb-color-name{
    height:64px!important;min-height:64px!important;max-height:64px!important;
    font-size:.80em!important;
  }
  .ycb-color-card--filtered .ycb-color-bases{font-size:.66em!important}
}


/* v0.16 -----------------------------------------------------------------
   - Orden filtrado: primero se respeta la secuencia editorial de «Por color».
   - Sticky: estado final visible y geometría congelada; no se compacta.
   - Checkout: si existe el resumen PHP completo, se ocultan todas las filas
     nativas/cart_item y cualquier resumen auxiliar creado por versiones previas.
   - Móvil: tarjetas uniformes con espacio suficiente para nombres largos.
------------------------------------------------------------------------- */

/* Checkout: una única lista de productos; no ocultar el tbody,
   que en algunas plantillas contiene subtotal, envío y total. */
body.ycb-server-checkout-active #order_review .woocommerce-checkout-review-order-table tbody tr.cart_item,
body.ycb-server-checkout-active #order_review .woocommerce-checkout-review-order-table tr.cart_item,
body.ycb-server-checkout-active #order_review table.shop_table tbody tr.cart_item,
body.ycb-server-checkout-active #order_review table.shop_table tr.cart_item,
body.ycb-server-checkout-active #order_review .wc-block-components-order-summary-item,
body.ycb-server-checkout-active #order_review .ycb-checkout-full-items,
body.ycb-server-checkout-active #order_review .ycb-classic-checkout-full-items{
  display:none!important;
}
body.ycb-server-checkout-active #order_review .ycb-server-checkout-summary,
body.ycb-server-checkout-active .ycb-server-checkout-summary{
  display:block!important;
}

/* Sticky: estas reglas finales ganan a las iteraciones anteriores. */
.ycb-sticky-panel.ycb-is-floating:not(.ycb-overlay-suspended){
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  position:fixed!important;
  margin:0!important;
  z-index:900!important;
  background:rgba(255,255,255,.98)!important;
  box-shadow:0 8px 28px rgba(0,0,0,.16)!important;
}
.ycb-sticky-panel.ycb-is-floating .ycb-selection{
  min-height:176px!important;
  padding:6px 2px 12px!important;
  gap:12px!important;
  overflow-x:auto!important;
}
.ycb-sticky-panel.ycb-is-floating .ycb-selected-card{
  flex:0 0 150px!important;
  min-width:150px!important;
}
.ycb-sticky-panel.ycb-is-floating .ycb-selected-info{display:block!important}
.ycb-sticky-panel.ycb-is-floating .ycb-summary{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:20px!important;
}

@media(max-width:720px){
  .ycb-color-card--general{grid-template-rows:auto 72px!important}
  .ycb-color-card--filtered{grid-template-rows:auto 72px 38px!important}
  .ycb-color-card .ycb-color-name{
    height:72px!important;min-height:72px!important;max-height:72px!important;
    -webkit-line-clamp:3!important;
    padding:7px 7px 5px!important;
  }
  .ycb-color-card--filtered .ycb-color-bases{
    height:38px!important;min-height:38px!important;max-height:38px!important;
    padding:3px 7px 7px!important;
  }
  .ycb-sticky-panel.ycb-is-floating .ycb-selection{min-height:158px!important}
  .ycb-sticky-panel.ycb-is-floating .ycb-selected-card{flex:0 0 125px!important;min-width:125px!important}
  .ycb-sticky-panel.ycb-is-floating .ycb-summary{
    flex-direction:column!important;
    align-items:stretch!important;
    gap:9px!important;
  }
}
@media(max-width:520px){
  .ycb-color-card--general{grid-template-rows:auto 76px!important}
  .ycb-color-card--filtered{grid-template-rows:auto 76px 40px!important}
  .ycb-color-card .ycb-color-name{
    height:76px!important;min-height:76px!important;max-height:76px!important;
    font-size:.80em!important;
  }
  .ycb-color-card--filtered .ycb-color-bases{
    height:40px!important;min-height:40px!important;max-height:40px!important;
  }
  .ycb-sticky-panel.ycb-is-floating .ycb-selection{min-height:148px!important}
  .ycb-sticky-panel.ycb-is-floating .ycb-selected-card{flex:0 0 116px!important;min-width:116px!important}
  .ycb-sticky-panel.ycb-is-floating .ycb-summary .ycb-add-cart{width:100%!important}
}

/* v0.17: el filtro PHP woocommerce_checkout_cart_item_visible elimina filas
   de la tabla nativa incluso cuando el theme ignora los selectores CSS.
   Dejamos estos selectores de respaldo para la tabla estándar. */
body.ycb-server-checkout-active .woocommerce-checkout-review-order-table tbody tr.cart_item,
body.ycb-server-checkout-active table.woocommerce-checkout-review-order-table tr.cart_item{display:none!important}

/* v0.18 – El carrito lateral de Salient se superpone al combo SIN excepción.
   Ocultamos la versión flotante mientras el cajón ocupa la pantalla; esto
   evita también que el backdrop oscurezca el carrito incorrectamente. */
body.ycb-sidecart-visible .ycb-sticky-panel.ycb-is-floating,
body.ycb-sidecart-visible .ycb-sticky-panel.ycb-is-floating:not(.ycb-overlay-suspended){
  visibility:hidden!important;opacity:0!important;pointer-events:none!important;
}
body.ycb-page-active .nectar-slide-in-cart{z-index:100000!important}

/* v0.23: agrupación por bases sin intercalación ni duplicación de fotografías.
   Las cajas conservan la geometría editorial y se adaptan por columnas. */
.ycb-catalog.ycb-catalog--grouped{display:block!important}
.ycb-base-section{margin:0 0 27px;min-width:0}
.ycb-base-section-heading{margin:0 0 11px!important;padding:0 0 8px!important;border-bottom:1px solid var(--ycb-border);font-size:1.1em!important;font-weight:700!important;line-height:1.35!important;text-transform:uppercase;letter-spacing:.04em}
.ycb-base-section-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:11px;align-items:stretch}
.ycb-color-card--grouped{display:grid!important;grid-template-rows:auto 60px!important;align-content:start!important;height:100%!important}
.ycb-color-card--grouped .ycb-color-name{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important;height:60px!important;min-height:60px!important;max-height:60px!important;overflow:hidden!important;padding:7px 7px 5px!important;line-height:1.2!important}
@media(max-width:1180px){.ycb-base-section-grid{grid-template-columns:repeat(7,minmax(0,1fr))}}
@media(max-width:1020px){.ycb-base-section-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:860px){.ycb-base-section-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:720px){.ycb-base-section-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.ycb-color-card--grouped{grid-template-rows:auto 72px!important}.ycb-color-card--grouped .ycb-color-name{height:72px!important;min-height:72px!important;max-height:72px!important}}
@media(max-width:520px){.ycb-base-section-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.ycb-color-card--grouped{grid-template-rows:auto 76px!important}.ycb-color-card--grouped .ycb-color-name{height:76px!important;min-height:76px!important;max-height:76px!important;font-size:.80em!important}}
@media(max-width:350px){.ycb-base-section-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.24 — Correcciones aisladas. No altera el catálogo ni el orden de las bases. */
.ycb .ycb-edit-warning.woocommerce-info{
  color:#f7f7f7!important;background:#242424!important;border-color:#798f89!important;
  font-weight:500!important;line-height:1.5!important;
}
.ycb .ycb-edit-warning.woocommerce-info:before{color:#f7f7f7!important}
.ycb-search-wrap{max-width:420px}
.ycb-search-wrap>label{display:block;font-size:.88em;margin-bottom:6px}
.ycb-search-wrap .ycb-search-input-row{display:block;position:relative;margin:0}
.ycb-search-wrap .ycb-search-input-row input{width:100%;padding-right:42px!important}
.ycb-search-wrap .ycb-search-clear{position:absolute;right:5px;top:50%;transform:translateY(-50%);
  width:34px;height:34px;min-height:34px;border:0!important;background:transparent!important;
  padding:0!important;color:#333!important;font-size:26px!important;line-height:1!important;cursor:pointer}
.ycb-search-wrap .ycb-search-clear[hidden]{display:none!important}

/* iPad: modal dimensionado según viewport, sin recortar las madejas. */
.ycb-modal-card{box-sizing:border-box;width:min(480px,calc(100vw - 28px));max-height:calc(100vh - 28px);
  max-height:calc(100dvh - 28px);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:22px!important}
.ycb-modal-card>img{object-fit:contain!important;max-width:100%!important;height:128px!important;
  width:128px!important;margin:0 auto 12px!important}
.ycb-modal-close{right:4px!important;top:4px!important;width:44px!important;height:44px!important;
  min-width:44px!important;min-height:44px!important;padding:0!important;
  color:#222!important;background:rgba(255,255,255,.97)!important;font-size:34px!important;font-weight:700!important;
  line-height:40px!important;border:0!important;box-shadow:none!important}
.ycb-modal-options{min-width:0!important;max-width:100%!important}
.ycb-modal-options .ycb-option-button{min-height:44px;box-sizing:border-box;max-width:100%;overflow-wrap:anywhere}
@media(min-width:700px) and (max-width:1100px){
  .ycb-modal-card{width:min(530px,calc(100vw - 44px))!important;max-height:calc(100dvh - 44px)!important}
  .ycb-modal-card>img{width:144px!important;height:144px!important}
}

/* Grupos en el checkout: el listado compacto se conserva íntegro. */
.ycb-server-checkout-summary .ycb-checkout-group-heading,
.ycb-checkout-full-items .ycb-checkout-group-heading{
  display:flex!important;flex-wrap:wrap!important;align-items:center!important;justify-content:space-between!important;
  gap:7px 12px!important;padding:11px 0 7px!important;border-bottom:1px solid #d7d7d7!important;
  margin-top:9px!important;min-height:30px!important;box-sizing:border-box!important;
}
.ycb-server-checkout-summary .ycb-checkout-group-heading:first-child,
.ycb-checkout-full-items .ycb-checkout-group-heading:first-child{margin-top:0!important}
.ycb-checkout-group-heading strong{font-size:11px!important;font-weight:700!important;letter-spacing:.045em!important;line-height:1.3!important}
.ycb-checkout-group-actions{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:9px 14px!important}
.ycb-checkout-group-actions a,.ycb-checkout-group-actions button,
.ycb-cart-combo-heading .ycb-cart-delete-combo,.ycb-block-combo-heading .ycb-cart-delete-combo{
  color:#333!important;background:transparent!important;border:0!important;box-shadow:none!important;
  margin:0!important;padding:0!important;font-size:11px!important;font-weight:500!important;
  text-decoration:underline!important;line-height:1.4!important;cursor:pointer!important;
  min-width:0!important;min-height:0!important;white-space:nowrap!important;
}
.ycb-checkout-group-actions button:hover,.ycb-cart-delete-combo:hover{color:#a22!important}
.ycb-cart-combo-heading,.ycb-block-combo-heading{flex-wrap:wrap;justify-content:flex-start;gap:7px 15px}
.ycb-cart-combo-heading>strong,.ycb-block-combo-heading>strong{margin-right:auto}

/* Solo carrito completo: botón de vaciado explícito. */
.ycb-empty-cart-actions{display:flex;justify-content:flex-end;margin:0 0 13px}
.ycb-empty-cart-actions .ycb-empty-cart{background:transparent!important;border:0!important;box-shadow:none!important;
  padding:5px 2px!important;min-height:28px!important;color:#444!important;font-size:12px!important;
  text-decoration:underline!important;cursor:pointer!important}
.ycb-empty-cart-actions .ycb-empty-cart:disabled{opacity:.5!important}

/* Salient: menú hamburguesa y cajón lateral siempre prevalecen sobre sticky. */
body.ycb-mobile-menu-visible .ycb-sticky-panel.ycb-is-floating,
body.ycb-mobile-menu-visible .ycb-sticky-panel.ycb-is-floating:not(.ycb-overlay-suspended),
body.ycb-sidecart-visible .ycb-sticky-panel.ycb-is-floating{
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;
}

/* Solo barra flotante en móvil/iPad: aprox. 115–135 px, con drag/drop activo. */
@media(max-width:1024px){
  body .ycb-sticky-panel.ycb-is-floating:not(.ycb-overlay-suspended){
    display:block!important;box-sizing:border-box!important;margin:0!important;
    padding:6px 9px 8px!important;background:rgba(255,255,255,.98)!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selection{
    display:flex!important;min-height:70px!important;height:70px!important;
    padding:0 0 4px!important;gap:6px!important;flex-wrap:nowrap!important;
    overflow-x:auto!important;overflow-y:hidden!important;align-items:flex-start!important;
    scrollbar-width:thin!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-card{
    flex:0 0 69px!important;width:69px!important;min-width:69px!important;height:66px!important;
    box-sizing:border-box!important;margin:0!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-image-wrap{width:100%!important;height:65px!important;aspect-ratio:1!important}
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-image-wrap img{
    width:100%!important;height:100%!important;object-fit:cover!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-info{display:none!important}
  body .ycb-sticky-panel.ycb-is-floating .ycb-drag-handle,
  body .ycb-sticky-panel.ycb-is-floating .ycb-remove{
    width:26px!important;min-width:26px!important;height:26px!important;min-height:26px!important;
    font-size:17px!important;line-height:24px!important;top:2px!important;
    padding:0!important;border-radius:50%!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-drag-handle{left:2px!important}
  body .ycb-sticky-panel.ycb-is-floating .ycb-remove{right:2px!important}
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary{
    display:flex!important;flex-direction:row!important;justify-content:space-between!important;
    align-items:center!important;gap:9px!important;min-width:0!important;
    padding:5px 0 0!important;border-top:1px solid #e4e4e4!important;
    margin:0!important;font-size:12px!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary>div{
    font-size:12px!important;text-align:left!important;line-height:1.25!important;
    white-space:nowrap!important;flex:0 0 auto!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary .ycb-add-cart{
    box-sizing:border-box!important;display:block!important;width:auto!important;min-width:0!important;max-width:58%!important;
    white-space:normal!important;font-size:11px!important;line-height:1.15!important;
    padding:7px 11px!important;min-height:35px!important;height:auto!important;
    flex:0 1 auto!important;margin:0!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-message:not(:empty){padding-top:3px!important;margin-top:3px!important;font-size:12px!important}
  body .ycb-sticky-panel.ycb-is-floating .ycb-message:empty{display:none!important}
}
@media(max-width:380px){
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary>div{white-space:normal!important}
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary .ycb-add-cart{max-width:54%!important;font-size:10px!important}
}


/* v0.24.1 — Retoques aprobados tras 27 pruebas de v0.24.0.
   iPhone: conservar EXACTAMENTE geometría y altura del sticky aprobado.
   iPad: recuperar tarjetas legibles y proporción próxima a v0.23.0.
   El menú móvil, el catálogo y el checkout no se alteran. */

/* Tinta oscura sobre el botón actual, conservando su fondo y tamaño. */
body .ycb-sticky-panel.ycb-is-floating .ycb-add-cart,
body .ycb-sticky-panel.ycb-is-floating .ycb-add-cart:visited,
body .ycb-sticky-panel.ycb-is-floating .ycb-add-cart:hover,
body .ycb-sticky-panel.ycb-is-floating .ycb-add-cart:focus {
  color:#222!important;
  -webkit-text-fill-color:#222!important;
}

/* Controles discretos; no cambia la tarjeta ni sus posiciones. */
body .ycb-sticky-panel.ycb-is-floating .ycb-drag-handle,
body .ycb-sticky-panel.ycb-is-floating .ycb-remove {
  color:#333!important;
  -webkit-text-fill-color:#333!important;
  background:rgba(255,255,255,.68)!important;
  border:1px solid rgba(70,70,70,.13)!important;
  box-shadow:0 1px 3px rgba(0,0,0,.08)!important;
}
@media(max-width:720px){
  body .ycb-sticky-panel.ycb-is-floating .ycb-drag-handle,
  body .ycb-sticky-panel.ycb-is-floating .ycb-remove {
    width:24px!important; min-width:24px!important;
    height:24px!important; min-height:24px!important;
    font-size:15px!important; line-height:22px!important;
  }
}

/* iPad/tablets: revertir SOLO la compresión general de v0.24.0.
   Al mantener los controles y el total accesibles no se sacrifica el arrastre. */
@media(min-width:721px) and (max-width:1024px){
  body .ycb-sticky-panel.ycb-is-floating:not(.ycb-overlay-suspended){
    display:block!important;
    padding:8px 11px 10px!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selection{
    height:auto!important; min-height:152px!important;
    gap:10px!important; padding:2px 0 8px!important;
    align-items:stretch!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-card{
    flex:0 0 128px!important; width:128px!important;
    min-width:128px!important; height:auto!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-image-wrap{
    width:100%!important; height:120px!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-info{
    display:block!important; padding:5px 6px 7px!important;
    font-size:11px!important; line-height:1.2!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary{
    padding:7px 0 0!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary>div{
    font-size:14px!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary .ycb-add-cart{
    font-size:13px!important;
    padding:9px 14px!important;
    min-height:37px!important;
  }
}

/* Carrito completo, no mini-carrito: misma separación visual que el checkout. */
.ycb-cart-others-heading-row td,
.ycb-cart-others-heading-row .ycb-cart-others-heading{
  padding-top:15px!important;
  padding-bottom:8px!important;
  border-bottom:1px solid #d7d7d7!important;
  background:transparent!important;
}
.ycb-cart-others-heading{
  display:block; width:100%; box-sizing:border-box;
  border-bottom:1px solid #d7d7d7;
  margin:9px 0 7px; padding:10px 0 8px;
  font-size:12px; font-weight:700;
  letter-spacing:.045em; line-height:1.3;
}
.ycb-cart-others-heading-row .ycb-cart-others-heading{
  border-bottom:0!important; margin:0!important; padding:0!important;
}


/* v0.24.2 — Solo barra flotante en DISPOSITIVOS TÁCTILES HORIZONTALES.
   No altera móviles/tabletas verticales, escritorio ni barra no flotante.
   En la franja horizontal deja visibles selección, total y CTA; el carrusel
   conserva scroll lateral, controles y arrastre táctil. */
@media (orientation: landscape) and (any-pointer: coarse) and (max-width: 1400px){
  body .ycb-sticky-panel.ycb-is-floating:not(.ycb-overlay-suspended){
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(170px,190px)!important;
    align-items:center!important;
    column-gap:9px!important;
    row-gap:0!important;
    padding:6px 9px!important;
    box-sizing:border-box!important;
    max-height:calc(100dvh - 72px)!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selection{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    gap:7px!important;
    min-height:0!important;
    height:78px!important;
    padding:0 0 2px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    min-width:0!important;
    -webkit-overflow-scrolling:touch;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-card{
    flex:0 0 72px!important;
    width:72px!important;
    min-width:72px!important;
    height:72px!important;
    align-self:center!important;
    overflow:hidden!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-image-wrap{
    width:100%!important;
    height:70px!important;
    aspect-ratio:1 / 1!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-info{
    display:none!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary{
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    align-items:stretch!important;
    gap:6px!important;
    border-top:0!important;
    padding:0!important;
    margin:0!important;
    min-width:0!important;
    width:100%!important;
    font-size:12px!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary>div{
    font-size:12px!important;
    line-height:1.3!important;
    text-align:center!important;
    white-space:nowrap!important;
    flex:0 0 auto!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary .ycb-add-cart{
    box-sizing:border-box!important;
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:42px!important;
    height:auto!important;
    margin:0!important;
    padding:8px 7px!important;
    font-size:12px!important;
    line-height:1.2!important;
    white-space:normal!important;
    flex:0 0 auto!important;
    color:#222!important;
    -webkit-text-fill-color:#222!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-message{
    grid-column:1 / -1!important;
    margin:0!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-message:empty{
    display:none!important;
  }
}
@media (orientation: landscape) and (any-pointer: coarse) and (min-width: 900px) and (max-width: 1400px){
  body .ycb-sticky-panel.ycb-is-floating .ycb-selection{
    height:91px!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-card{
    flex-basis:86px!important;
    width:86px!important;
    min-width:86px!important;
    height:86px!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-image-wrap{
    height:84px!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary>div{
    font-size:13px!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary .ycb-add-cart{
    font-size:12px!important;
  }
}


/* v0.24.3 — iPad: MISMA barra flotante en vertical y horizontal.
   Dimensiones intermedias ~155px con fotografía y nombre visibles.
   Solo tablet táctil con ambas dimensiones grandes; excluye iPhone horizontal,
   móvil vertical, escritorio y el panel cuando no está flotando.
   No altera catálogo, agrupaciones de carrito ni interfaz de WooCommerce. */
@media (any-pointer: coarse) and (min-width: 721px) and (min-height: 600px) and (max-width: 1400px){
  body .ycb-sticky-panel.ycb-is-floating:not(.ycb-overlay-suspended){
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 190px!important;
    align-items:center!important;
    column-gap:12px!important;
    row-gap:0!important;
    padding:7px 10px!important;
    box-sizing:border-box!important;
    max-height:calc(100dvh - 72px)!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selection{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    min-width:0!important;
    height:138px!important;
    min-height:138px!important;
    padding:0!important;
    gap:8px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-card{
    flex:0 0 116px!important;
    width:116px!important;
    min-width:116px!important;
    height:136px!important;
    align-self:center!important;
    margin:0!important;
    overflow:hidden!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-image-wrap{
    width:100%!important;
    height:112px!important;
    aspect-ratio:1 / 1!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-info{
    display:block!important;
    height:22px!important;
    padding:2px 5px!important;
    font-size:11px!important;
    line-height:17px!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-info strong{
    display:block!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:inherit!important;
    line-height:17px!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-selected-info span{display:none!important}
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary{
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    align-items:stretch!important;
    gap:9px!important;
    min-width:0!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    border-top:0!important;
    font-size:13px!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary>div{
    font-size:13px!important;
    line-height:1.3!important;
    text-align:center!important;
    white-space:nowrap!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-summary .ycb-add-cart{
    display:block!important;
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:42px!important;
    height:auto!important;
    padding:8px 8px!important;
    margin:0!important;
    white-space:normal!important;
    line-height:1.2!important;
    font-size:12px!important;
    color:#222!important;
    -webkit-text-fill-color:#222!important;
    flex:0 0 auto!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-message{
    grid-column:1 / -1!important;
    margin:0!important;
  }
  body .ycb-sticky-panel.ycb-is-floating .ycb-message:empty{display:none!important}
}

/* v0.24.4 — Ajuste quirúrgico de checkout: se conservan visibles las filas
   de importes del resumen nativo de Salient/WooCommerce. Los selectores de
   arriba ya ocultan únicamente tr.cart_item; no se modifica el carrito. */
