.storpify-spb{width:100%;box-sizing:border-box}.storpify-spb *{box-sizing:border-box}.storpify-spb-attribute{margin:0 0 16px}.storpify-spb-label{display:block;font-weight:600;margin:0 0 8px}.storpify-spb-options{display:flex;flex-wrap:wrap;gap:8px}.storpify-spb-swatch{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:#fff;border:1px solid #d1d5db;color:#0f172a;padding:10px 16px;min-height:42px;font:inherit;line-height:1.2;transition:.2s ease}.storpify-spb-swatch:hover{color:#0f766e;background:#f0fdfa;border-color:#0f766e}.storpify-spb-swatch.is-selected{color:#fff;background:#0f766e;border-color:#0f766e}.storpify-spb-swatch.is-disabled{opacity:.55;cursor:not-allowed;text-decoration:line-through}.storpify-spb-main{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.storpify-spb-quantity{display:grid;grid-template-columns:36px minmax(48px,1fr) 36px;align-items:center;justify-content:initial;width:150px;height:46px;background:#fff;border:1px solid #d1d5db;border-radius:6px;overflow:hidden}.storpify-spb-qty-btn{width:36px;height:100%;border:0;background:transparent;color:#0f766e;cursor:pointer;font-size:22px;line-height:1;padding:0;margin:0;display:flex;align-items:center;justify-content:center}.storpify-spb-qty-btn:hover{background:#0f766e;color:#fff}.storpify-spb-qty-btn:disabled{opacity:.4;cursor:not-allowed}.storpify-spb-qty-input{width:100%;min-width:0;height:100%;border:0!important;background:transparent!important;text-align:center!important;text-align-last:center!important;outline:none!important;box-shadow:none!important;padding:0!important;margin:0!important;display:block}.storpify-spb-actions{display:flex;flex-wrap:wrap;align-items:stretch;width:100%;gap:10px}.storpify-spb-btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none;border:0;min-height:46px;padding:12px 20px;font:inherit;line-height:1.2;transition:all .2s ease}.storpify-spb-btn:disabled{opacity:.55;cursor:not-allowed}.storpify-spb-btn-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}.storpify-spb-btn-label{display:inline-flex;align-items:center}.storpify-spb-feedback{margin-top:10px;font-size:14px}.storpify-spb-feedback.is-error{color:#b91c1c}.storpify-spb-feedback.is-success{color:#15803d}.storpify-spb-hover-grow:hover{transform:scale(1.04)}.storpify-spb-hover-shrink:hover{transform:scale(.96)}.storpify-spb-hover-pulse:hover{animation:storpify-spb-pulse .8s ease-in-out infinite alternate}.storpify-spb-hover-float:hover{transform:translateY(-3px)}.storpify-spb-hover-sink:hover{transform:translateY(3px)}.storpify-spb-hover-push:hover{transform:translateX(3px)}.storpify-spb-hover-pop:hover{transform:scale(1.06)}.storpify-spb-hover-bounce-in:hover{animation:storpify-spb-bounce-in .45s}.storpify-spb-hover-bounce-out:hover{animation:storpify-spb-bounce-out .45s}@keyframes storpify-spb-pulse{to{transform:scale(1.04)}}@keyframes storpify-spb-bounce-in{0%{transform:scale(1)}50%{transform:scale(1.08)}100%{transform:scale(1)}}@keyframes storpify-spb-bounce-out{0%{transform:scale(1)}50%{transform:scale(.92)}100%{transform:scale(1)}}
@media(max-width:767px){.storpify-spb-actions{flex-direction:column!important}.storpify-spb-actions .storpify-spb-btn{width:100%!important}.storpify-spb-main{align-items:stretch}.storpify-spb-quantity{max-width:100%}}.storpify-spb-total-price{display:block;width:100%;line-height:1.3}.storpify-spb-total-price-label,.storpify-spb-total-price-value{display:inline-block}.storpify-spb-total-price-value{font-weight:700}.storpify-spb-total-price[hidden]{display:none!important}

/* Quantity alignment + Elementor icon visibility */
.storpify-spb-quantity{grid-template-columns:36px minmax(48px,1fr) 36px;}
.storpify-spb-qty-input{appearance:textfield;-moz-appearance:textfield;}
.storpify-spb-qty-input::-webkit-outer-spin-button,.storpify-spb-qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.storpify-spb-btn-icon{width:1.15em;height:1.15em;flex:0 0 1.15em;vertical-align:middle;}
.storpify-spb-btn-icon i{font-size:1em;line-height:1;}
.storpify-spb-btn-icon svg{display:block;width:1em;height:1em;max-width:1em;max-height:1em;}
.storpify-spb-btn-icon svg path{fill:currentColor;}
.storpify-spb-btn-icon svg *{stroke:currentColor;}
.storpify-spb-feedback .wc-forward,.storpify-spb-feedback a.added_to_cart,.storpify-spb-feedback a.button.wc-forward{display:none!important;}

/* Final quantity button alignment and native-theme focus/active override */
.storpify-spb-quantity .storpify-spb-qty-btn{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  align-self:stretch!important;
  justify-self:stretch!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  line-height:1!important;
  font-family:inherit!important;
  font-size:22px!important;
  text-align:center!important;
  transform:none!important;
}
.storpify-spb-quantity .storpify-spb-qty-btn:focus,
.storpify-spb-quantity .storpify-spb-qty-btn:active{
  outline:none!important;
  box-shadow:none!important;
}
.storpify-spb-quantity .storpify-spb-qty-btn:focus:not(:hover),
.storpify-spb-quantity .storpify-spb-qty-btn:active:not(:hover){
  transform:none!important;
}

/* Exact centering for quantity plus/minus symbols */
.storpify-spb-quantity .storpify-spb-qty-btn{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  vertical-align:middle!important;
  overflow:hidden!important;
}
.storpify-spb-quantity .storpify-spb-qty-btn .storpify-spb-qty-symbol{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  height:100%!important;
  padding:0!important;
  margin:0!important;
  line-height:1!important;
  text-align:center!important;
  transform:none!important;
  position:static!important;
}


/* v1.4.1: compact variation + calculated total price layout */
.storpify-spb-variation-price-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;width:100%;margin:0 0 16px;}
.storpify-spb-variation-price-row .storpify-spb-variation-wrap{flex:1 1 auto;min-width:0;}
.storpify-spb-variation-price-row .storpify-spb-total-price{flex:0 0 auto;width:auto;min-width:max-content;text-align:right;margin:0;}
.storpify-spb-variation-price-row .storpify-spb-total-price-label,.storpify-spb-variation-price-row .storpify-spb-total-price-value{vertical-align:baseline;}
.storpify-spb-variation-price-row .storpify-spb-total-price-value{white-space:nowrap;}
@media(max-width:767px){.storpify-spb-variation-price-row{flex-direction:column;align-items:stretch;gap:10px;}.storpify-spb-variation-price-row .storpify-spb-total-price{width:100%;min-width:0;text-align:left;}}
@media(min-width:768px) and (max-width:1024px){.storpify-spb-variation-price-row{gap:14px;}.storpify-spb-variation-price-row .storpify-spb-total-price{min-width:140px;}}
/* Success message stays visible; WooCommerce View Cart links stay hidden */
.storpify-spb-feedback.is-success{display:block;}
.storpify-spb-feedback a.wc-forward,.storpify-spb-feedback a.added_to_cart,.storpify-spb-feedback a.button.wc-forward{display:none!important;}

/* v1.4.2: tablet layout keeps calculated total price below variation buttons so the row does not shift */
@media(min-width:768px) and (max-width:1024px){
  /* Tablet: keep variation option buttons in their normal horizontal wrap,
     but place calculated total price on a separate row underneath. */
  .storpify-spb-variation-price-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    align-items:start!important;
    justify-content:initial!important;
    gap:10px!important;
  }
  .storpify-spb-variation-price-row .storpify-spb-variation-wrap{
    width:100%!important;
    min-width:0!important;
  }
  .storpify-spb-variation-price-row .storpify-spb-options{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
    width:100%!important;
    gap:8px!important;
  }
  .storpify-spb-variation-price-row .storpify-spb-total-price{
    grid-column:1!important;
    width:100%!important;
    min-width:0!important;
    text-align:left!important;
    margin:0!important;
  }
}

/* v1.4.4: explicit tablet layout - variation controls stay together, total price is always below */
@media (min-width:768px) and (max-width:1100px){
  .storpify-spb .storpify-spb-variation-price-row{
    display:block!important;
    width:100%!important;
    margin:0 0 16px!important;
  }
  .storpify-spb .storpify-spb-variation-price-row .storpify-spb-variation-wrap{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
  }
  .storpify-spb .storpify-spb-variation-price-row .storpify-spb-attribute{
    width:100%!important;
  }
  .storpify-spb .storpify-spb-variation-price-row .storpify-spb-options{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    width:100%!important;
    max-width:none!important;
  }
  .storpify-spb .storpify-spb-variation-price-row .storpify-spb-total-price{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:10px 0 0!important;
    text-align:left!important;
    clear:both!important;
  }
}


/* v1.4.5: definitive tablet layout */
@media screen and (min-width:768px) and (max-width:1199px){
  .storpify-spb .storpify-spb-variation-price-row{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:10px!important;
    width:100%!important;
  }
  .storpify-spb .storpify-spb-variation-price-row .storpify-spb-variation-wrap{
    order:1!important;
    display:block!important;
    flex:0 0 auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
  .storpify-spb .storpify-spb-variation-price-row .storpify-spb-attribute{
    display:block!important;
    width:100%!important;
  }
  .storpify-spb .storpify-spb-variation-price-row .storpify-spb-options{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:100%!important;
    min-width:0!important;
    gap:8px!important;
  }
  .storpify-spb .storpify-spb-variation-price-row .storpify-spb-total-price{
    order:2!important;
    display:block!important;
    flex:0 0 auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    padding-top:0!important;
    text-align:left!important;
    clear:none!important;
  }
}
