.ikpp-wrap{display:flex;flex-direction:column;width:100%;box-sizing:border-box;direction:rtl}.ikpp-wrap *{box-sizing:border-box}.ikpp-price{font-size:24px;font-weight:700;line-height:1.5;color:#9a8f00}.ikpp-price del{opacity:.65;font-size:.72em;font-weight:500;margin-inline-end:8px;color:#777}.ikpp-price ins{text-decoration:none}.ikpp-original-variations{width:100%;border:0}.ikpp-original-variations .ikpp-enhanced-row{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}.ikpp-original-variations .ikpp-enhanced-row-select th{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important}.ikpp-original-variations .ikpp-enhanced-row-select td{padding:0!important;border:0!important}.ikpp-original-variations .ikpp-enhanced-row-select td>*:not(select){display:none!important}.ikpp-variations{display:flex;flex-direction:column;width:100%;gap:14px;margin-bottom:0}.ikpp-attribute{display:flex;flex-direction:row;align-items:center;gap:12px;width:100%}.ikpp-attribute-head{display:flex;align-items:center;gap:7px;flex:0 0 auto}.ikpp-attribute-label{font-weight:700;color:#4b5563}.ikpp-selected{font-size:.9em;color:#6b7280}.ikpp-swatches{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.ikpp-swatch{position:relative;display:inline-flex;align-items:center;justify-content:center;appearance:none;-webkit-appearance:none;cursor:pointer;border:1px solid #dedede;background:#fff;color:#222;transition:.18s ease}.ikpp-swatch--button{min-height:40px;padding:8px 14px;border-radius:8px}.ikpp-swatch--color{width:34px;height:34px;padding:3px;border-radius:8px}.ikpp-shape-circle .ikpp-swatch--color{border-radius:50%}.ikpp-shape-square .ikpp-swatch--color{border-radius:0}.ikpp-color-fill{display:block;width:100%;height:100%;border-radius:inherit;background:var(--ikpp-color,#e5e7eb);box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.ikpp-swatch:hover{border-color:#e84393}.ikpp-swatch.is-selected{border-color:#e84393;box-shadow:0 0 0 2px rgba(232,67,147,.12)}.ikpp-swatch.is-disabled{opacity:.35;cursor:not-allowed;color:#9ca3af}.ikpp-wrap[data-unavailable="hide"] .ikpp-swatch.is-disabled{display:none}.ikpp-wrap[data-unavailable="cross"] .ikpp-swatch.is-disabled:before{content:"";position:absolute;z-index:4;width:120%;height:1px;background:currentColor;transform:rotate(-45deg)}.ikpp-check{display:none;position:absolute;width:17px;height:17px;border-radius:50%;align-items:center;justify-content:center;background:#e84393;color:#fff;font-style:normal;font-size:10px;line-height:1;z-index:5}.ikpp-swatch.is-selected .ikpp-check{display:flex}.ikpp-check-top-right .ikpp-check{top:-5px;right:-5px}.ikpp-check-top-left .ikpp-check{top:-5px;left:-5px}.ikpp-check-bottom-right .ikpp-check{bottom:-5px;right:-5px}.ikpp-check-bottom-left .ikpp-check{bottom:-5px;left:-5px}.ikpp-term-icon{width:20px;height:20px;object-fit:contain;display:block}.ikpp-select-holder{flex:1;min-width:160px}.ikpp-native-select{display:block!important;position:static!important;clip:auto!important;width:100%!important;height:46px;border:1px solid #dedede;background:#fff;color:#222;border-radius:8px}.ikpp-reset{text-decoration:none!important}.ikpp-wrap form.cart,.ikpp-wrap .woocommerce-variation-add-to-cart{display:flex!important;align-items:center;flex-wrap:nowrap;gap:10px;width:100%;margin:0!important}.ikpp-wrap form.variations_form{display:block!important}.ikpp-wrap .single_variation_wrap{display:flex;flex-direction:column;width:100%;gap:10px}.ikpp-wrap .woocommerce-variation{width:100%}.ikpp-wrap .woocommerce-variation-price{display:none}.ikpp-qty{display:flex!important;align-items:stretch;overflow:hidden;width:125px;height:48px;border:1px solid #dedede;border-radius:8px;background:#fff;float:none!important;margin:0!important;flex:0 0 125px;transition:.18s}.ikpp-qty input.qty{order:2;flex:1;width:42px!important;min-width:0!important;border:0!important;background:transparent!important;text-align:center!important;box-shadow:none!important;padding:0!important;-moz-appearance:textfield}.ikpp-qty input.qty::-webkit-inner-spin-button,.ikpp-qty input.qty::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ikpp-qty-btn{width:38px;min-width:38px;border:0!important;background:transparent!important;color:#374151!important;padding:0!important;font-size:20px!important;line-height:1!important;box-shadow:none!important;cursor:pointer}.ikpp-minus{order:1}.ikpp-plus{order:3}.ikpp-cart-button{position:relative;display:inline-flex!important;align-items:center;justify-content:center;gap:8px;float:none!important;margin:0!important;min-height:48px;flex:1 1 0;width:100%;padding:10px 20px;border:1px solid transparent;border-radius:8px;background:#e84393;color:#fff;transition:.2s ease}.ikpp-cart-button:hover{filter:none}.ikpp-cart-button.is-loading,.ikpp-cart-button.is-success{cursor:default}.ikpp-spinner{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:ikpp-spin .65s linear infinite}.ikpp-wrap .stock{margin:0}.ikpp-wrap .woocommerce-variation-description{margin-bottom:8px}@keyframes ikpp-spin{to{transform:rotate(360deg)}}
@media(max-width:767px){.ikpp-attribute{align-items:flex-start}}

/* v1.14 attribute presentation + stock */
.ikpp-swatch--button[data-display="color_label"] .ikpp-color-fill{width:24px;height:24px;flex:0 0 24px;border-radius:6px}
.ikpp-swatch--button[data-display="icon"],.ikpp-swatch--button[data-display="icon_tooltip"]{padding:7px;min-width:40px}
.ikpp-tooltip{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%) translateY(3px);z-index:30;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;background:#222;color:#fff;padding:5px 8px;border-radius:5px;font-size:12px;line-height:1.4;transition:.16s ease}
.ikpp-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:inherit}
.ikpp-swatch:hover .ikpp-tooltip,.ikpp-swatch:focus-visible .ikpp-tooltip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.ikpp-stock{display:flex;align-items:center;justify-content:flex-start;width:100%;color:#9a8f00;margin:8px 0;gap:6px}
.ikpp-stock-text,.ikpp-stock-text .stock{display:inline;margin:0!important;color:inherit!important}
.ikpp-stock-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.ikpp-stock-icon svg{width:1em;height:1em;fill:currentColor}
.ikpp-wrap .woocommerce-variation-availability{display:none!important}

/* v1.15 unavailable variations + sale price badge */
.ikpp-swatch.is-disabled,.ikpp-swatch:disabled{cursor:not-allowed!important;user-select:none;filter:saturate(.35);}
.ikpp-swatch.is-disabled .ikpp-check{display:none!important}
.ikpp-swatch.is-disabled:hover{transform:none}
.ikpp-swatch.is-disabled .ikpp-unavailable-tooltip{display:block}
.ikpp-native-select option:disabled{color:#9ca3af;background:#f5f5f5}
.ikpp-price{display:flex;gap:6px;width:100%}
.ikpp-price-layout-row .ikpp-price{flex-direction:row;align-items:center;flex-wrap:wrap}
.ikpp-price-layout-column .ikpp-price{flex-direction:column}
.ikpp-price-sale-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.ikpp-price-regular{opacity:.8;text-decoration:line-through;font-size:.72em;font-weight:500;color:#9ca3af}
.ikpp-price-current{display:inline-flex;align-items:baseline;color:#9a8f00;font-size:inherit;font-weight:inherit}
.ikpp-price-current del{display:none!important}.ikpp-price-current ins{text-decoration:none!important;color:inherit!important}
.ikpp-discount-badge{display:inline-flex;align-items:center;justify-content:center;background:#e84343;color:#fff;border-radius:20px;padding:3px 8px;font-size:12px;font-weight:700;line-height:1.35;white-space:nowrap}

/* v1.15.2 stock states, unavailable tooltip and safer interaction */
.ikpp-stock-icon-in,.ikpp-stock-icon-out{display:none}
.ikpp-stock.is-instock .ikpp-stock-icon-in{display:inline-flex}
.ikpp-stock.is-outofstock .ikpp-stock-icon-out{display:inline-flex}
.ikpp-swatch.is-disabled,.ikpp-swatch:disabled{pointer-events:auto!important;cursor:not-allowed!important}
.ikpp-swatch.is-disabled .ikpp-title-tooltip,.ikpp-swatch:disabled .ikpp-title-tooltip{display:none!important}
.ikpp-swatch.is-disabled:hover .ikpp-unavailable-tooltip,.ikpp-swatch:disabled:hover .ikpp-unavailable-tooltip,
.ikpp-swatch.is-disabled:focus-visible .ikpp-unavailable-tooltip,.ikpp-swatch:disabled:focus-visible .ikpp-unavailable-tooltip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.ikpp-cart-button.is-error{background:#d93025;color:#fff}


/* v1.15.3 stock visibility/position + unavailable tooltip reliability */
.ikpp-stock.is-empty{display:none!important}
.ikpp-stock-icon-pos-after .ikpp-stock{flex-direction:row-reverse}
.ikpp-stock-icon-pos-before .ikpp-stock{flex-direction:row}
.ikpp-swatch.is-disabled{pointer-events:auto!important;cursor:not-allowed!important}
.ikpp-swatch.is-disabled:active{transform:none!important}
.ikpp-swatch.is-disabled .ikpp-unavailable-tooltip{display:block!important}
.ikpp-swatch.is-disabled:hover .ikpp-unavailable-tooltip,.ikpp-swatch.is-disabled:focus-visible .ikpp-unavailable-tooltip{opacity:1!important;visibility:visible!important;transform:translateX(-50%) translateY(0)!important}


/* v1.15.4 icon-only tooltip + refined unavailable state */
.ikpp-wrap[data-unavailable="cross"] .ikpp-swatch.is-disabled:before{
    width:68%;
    height:1px;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%) rotate(var(--ikpp-unavailable-line-angle,-38deg));
    transform-origin:center;
    background:#9ca3af;
    border-radius:999px;
    pointer-events:none;
}
.ikpp-swatch.is-disabled .ikpp-term-icon{transition:opacity .18s ease}
.ikpp-swatch[data-display="icon"] .ikpp-title-tooltip{display:block}


/* v1.15.6 layout/order, custom reset and color-label refinements */
.ikpp-wrap form.variations_form.ikpp-flow-form{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    width:100%;
}
.ikpp-flow-form > .ikpp-price,
.ikpp-flow-form > .ikpp-variations,
.ikpp-flow-form > .ikpp-stock,
.ikpp-flow-form > .single_variation_wrap{width:100%}
.ikpp-attribute-head{min-width:0}
.ikpp-reset-row{display:flex;width:100%;align-items:center;margin-top:2px}
.ikpp-custom-reset{
    appearance:none;
    -webkit-appearance:none;
    border:0;
    background:transparent;
    padding:0;
    cursor:pointer;
}
.ikpp-swatch--color-label{display:inline-flex;align-items:center;justify-content:center}
.ikpp-swatch--color-label .ikpp-color-fill{
    width:24px;
    height:24px;
    flex:0 0 24px;
    border-radius:6px;
}

/* v1.15.7 reset variations state sync */
/* v1.15.8 reset stock state + quantity button hover */
.ikpp-qty-btn{transition:color .18s ease,background-color .18s ease,opacity .18s ease}

/* v1.15.9 controls polish: reset typography, disabled CTA, spacing, color radius, price/stock row */
.ikpp-price-stock-group{
    display:contents;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    flex-wrap:nowrap;
    width:100%;
    min-width:0;
}
.ikpp-price-stock-group > .ikpp-price,
.ikpp-price-stock-group > .ikpp-stock{
    min-width:0;
    flex-shrink:1;
}
.ikpp-cart-button{
    --ikpp-cart-base-bg:#e84393;
    --ikpp-cart-base-color:#fff;
    --ikpp-cart-disabled-opacity:.45;
}
.ikpp-wrap .ikpp-cart-button:disabled:not(.is-loading):not(.is-success):not(.is-error),
.ikpp-wrap .ikpp-cart-button.disabled:not(.is-loading):not(.is-success):not(.is-error),
.ikpp-wrap .ikpp-cart-button.wc-variation-selection-needed:not(.is-loading):not(.is-success):not(.is-error){
    background:var(--ikpp-cart-base-bg)!important;
    color:var(--ikpp-cart-base-color)!important;
    opacity:var(--ikpp-cart-disabled-opacity)!important;
    cursor:not-allowed!important;
    filter:none!important;
}

/* v1.16.0 contextual reset action + icon */
.ikpp-reset-row.is-hidden{display:none!important}
.ikpp-custom-reset{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.ikpp-reset-label{display:inline-block}
.ikpp-reset-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:inherit;line-height:1}
.ikpp-reset-icon svg{display:block;width:1em;height:1em;fill:currentColor}


/* v1.16.2 reliable AJAX states, swatch styling, quantity hover, cart link and out-of-stock CTA */
.ikpp-wrap .ikpp-cart-button.is-loading{
    background:var(--ikpp-cart-base-bg,#e84393)!important;
    color:var(--ikpp-cart-base-color,#fff)!important;
    opacity:1!important;
    filter:none!important;
}

.ikpp-qty{
    --ikpp-plus-normal-color:#374151;
    --ikpp-minus-normal-color:#374151;
    --ikpp-plus-hover-color:#e84393;
    --ikpp-minus-hover-color:#e84393;
    --ikpp-plus-normal-bg:transparent;
    --ikpp-minus-normal-bg:transparent;
    --ikpp-plus-hover-bg:transparent;
    --ikpp-minus-hover-bg:transparent;
}
.ikpp-wrap .ikpp-qty .ikpp-plus{
    color:var(--ikpp-plus-normal-color)!important;
    background:var(--ikpp-plus-normal-bg)!important;
}
.ikpp-wrap .ikpp-qty .ikpp-minus{
    color:var(--ikpp-minus-normal-color)!important;
    background:var(--ikpp-minus-normal-bg)!important;
}
.ikpp-wrap .ikpp-qty .ikpp-plus:hover,
.ikpp-wrap .ikpp-qty .ikpp-plus:focus-visible{
    color:var(--ikpp-plus-hover-color)!important;
    background:var(--ikpp-plus-hover-bg)!important;
}
.ikpp-wrap .ikpp-qty .ikpp-minus:hover,
.ikpp-wrap .ikpp-qty .ikpp-minus:focus-visible{
    color:var(--ikpp-minus-hover-color)!important;
    background:var(--ikpp-minus-hover-bg)!important;
}

.ikpp-color-option{transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease,opacity .18s ease}
.ikpp-color-option.ikpp-swatch--color-label{min-width:max-content}

.ikpp-wrap .added_to_cart:not(.ikpp-view-cart){display:none!important}
.ikpp-view-cart{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    text-decoration:none!important;
    white-space:nowrap;
    opacity:0;
    transform:translateY(5px) scale(.985);
    visibility:hidden;
    transition:opacity .22s ease,transform .22s ease,background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.ikpp-view-cart[hidden]{display:none!important}
.ikpp-view-cart.is-visible{opacity:1;transform:translateY(0) scale(1);visibility:visible}

.ikpp-outofstock-wrap{
    display:flex;
    width:100%;
    align-items:stretch;
}
.ikpp-outofstock-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    text-decoration:none!important;
    transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.ikpp-outofstock-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;line-height:1}
.ikpp-outofstock-icon svg{display:block;width:1em;height:1em;fill:currentColor}

/* v1.17.0: success/view-cart layout and custom Elementor cart counters */
.ikpp-wrap .woocommerce-variation-add-to-cart.ikpp-has-view-cart,
.ikpp-wrap form.cart.ikpp-has-view-cart{align-items:stretch}
.ikpp-wrap .ikpp-view-cart.is-visible{display:inline-flex!important}
.ikpp-wrap .ikpp-cart-button.is-success .ikpp-btn-label{opacity:1;visibility:visible}


/* v1.17.1: fully responsive commerce layout */
.ikpp-price-stock-group > .ikpp-price,
.ikpp-price-stock-group > .ikpp-stock{max-width:100%}
.ikpp-wrap .woocommerce-variation-add-to-cart,
.ikpp-wrap form.cart:not(.variations_form){min-width:0}
.ikpp-wrap .ikpp-qty,
.ikpp-wrap .ikpp-cart-button,
.ikpp-wrap .ikpp-view-cart{max-width:100%}
.ikpp-wrap .ikpp-view-cart{box-sizing:border-box}

/* v1.17.5: separate responsive View Cart row + alignment controls */
.ikpp-view-cart-row{
    display:flex;
    width:100%;
    min-width:0;
    align-items:stretch;
    justify-content:flex-start;
    --ikpp-view-cart-grow:0;
}
.ikpp-view-cart-row[hidden]{display:none!important}
.ikpp-view-cart-row .ikpp-view-cart{
    width:var(--ikpp-view-cart-effective-width,var(--ikpp-view-cart-width,auto))!important;
    flex-basis:var(--ikpp-view-cart-effective-width,var(--ikpp-view-cart-width,auto))!important;
    flex-grow:var(--ikpp-view-cart-grow,0);
    flex-shrink:1;
    max-width:100%;
}
.ikpp-reset-row .ikpp-reset{flex-grow:var(--ikpp-reset-grow,0)}
/* v1.17.9: mobile quantity alignment hardening */
@media(max-width:767px){
  .ikpp-wrap .woocommerce-variation-add-to-cart,
  .ikpp-wrap form.cart:not(.variations_form){padding-inline:0!important;margin-inline:0!important}
  .ikpp-wrap .ikpp-qty{margin-inline:0!important;float:none!important}
}

/* v1.18.0: keep color swatch radius identical in normal/hover/selected/focus states */
.ikpp-wrap.ikpp-shape-rounded .ikpp-swatch--color,
.ikpp-wrap.ikpp-shape-rounded .ikpp-swatch--color:hover,
.ikpp-wrap.ikpp-shape-rounded .ikpp-swatch--color:focus,
.ikpp-wrap.ikpp-shape-rounded .ikpp-swatch--color:focus-visible,
.ikpp-wrap.ikpp-shape-rounded .ikpp-swatch--color:active,
.ikpp-wrap.ikpp-shape-rounded .ikpp-swatch--color.is-selected{
    border-radius:8px!important;
}
.ikpp-wrap.ikpp-shape-circle .ikpp-swatch--color,
.ikpp-wrap.ikpp-shape-circle .ikpp-swatch--color:hover,
.ikpp-wrap.ikpp-shape-circle .ikpp-swatch--color:focus,
.ikpp-wrap.ikpp-shape-circle .ikpp-swatch--color:focus-visible,
.ikpp-wrap.ikpp-shape-circle .ikpp-swatch--color:active,
.ikpp-wrap.ikpp-shape-circle .ikpp-swatch--color.is-selected{
    border-radius:50%!important;
}
.ikpp-wrap.ikpp-shape-square .ikpp-swatch--color,
.ikpp-wrap.ikpp-shape-square .ikpp-swatch--color:hover,
.ikpp-wrap.ikpp-shape-square .ikpp-swatch--color:focus,
.ikpp-wrap.ikpp-shape-square .ikpp-swatch--color:focus-visible,
.ikpp-wrap.ikpp-shape-square .ikpp-swatch--color:active,
.ikpp-wrap.ikpp-shape-square .ikpp-swatch--color.is-selected{
    border-radius:0!important;
}
/* The inner color must always inherit the final outer radius, including selected state. */
.ikpp-wrap .ikpp-swatch--color .ikpp-color-fill,
.ikpp-wrap .ikpp-swatch--color.is-selected .ikpp-color-fill,
.ikpp-wrap .ikpp-swatch--color:focus .ikpp-color-fill,
.ikpp-wrap .ikpp-swatch--color:focus-visible .ikpp-color-fill,
.ikpp-wrap .ikpp-swatch--color:active .ikpp-color-fill{
    border-radius:inherit!important;
}

/* v1.18.1: keep long AJAX error messages inside the purchase button without affecting normal states */
.ikpp-wrap .ikpp-cart-button.is-error{
    min-width:0;
    height:auto;
}
.ikpp-wrap .ikpp-cart-button.is-error .ikpp-btn-label{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    white-space:normal!important;
    overflow-wrap:anywhere;
    word-break:normal;
    text-align:center;
    line-height:1.45;
}
.ikpp-wrap .ikpp-cart-button.is-error.ikpp-error-long .ikpp-btn-label{font-size:.88em}
.ikpp-wrap .ikpp-cart-button.is-error.ikpp-error-xlong .ikpp-btn-label{font-size:.80em}
@media(max-width:767px){
    .ikpp-wrap .ikpp-cart-button.is-error{padding-inline:12px}
    .ikpp-wrap .ikpp-cart-button.is-error.ikpp-error-long .ikpp-btn-label{font-size:.84em}
    .ikpp-wrap .ikpp-cart-button.is-error.ikpp-error-xlong .ikpp-btn-label{font-size:.76em}
}

/* v1.18.2: color+label swatch height follows its content/padding instead of the generic button min-height */
.ikpp-wrap .ikpp-swatch--button.ikpp-swatch--color-label{
    min-height:0!important;
    height:auto;
}

/* v1.18.3: normalize simple/variable purchase-row spacing without extra JS.
   WooCommerce/themes often add clearfix pseudo-elements or padding to form.cart;
   when the form becomes flex those pseudo-elements can create a phantom gap. */
.ikpp-wrap form.cart:not(.variations_form),
.ikpp-wrap .woocommerce-variation-add-to-cart{
    padding:0!important;
    margin:0!important;
}
.ikpp-wrap form.cart:not(.variations_form)::before,
.ikpp-wrap form.cart:not(.variations_form)::after,
.ikpp-wrap .woocommerce-variation-add-to-cart::before,
.ikpp-wrap .woocommerce-variation-add-to-cart::after{
    content:none!important;
    display:none!important;
}
.ikpp-wrap .ikpp-qty{
    margin:0!important;
    float:none!important;
}
/* v1.18.4: isolate View Cart spacing from the widget's global/component gaps.
   The only vertical distance between the purchase row and View Cart is the
   dedicated responsive layout control (--ikpp-view-cart-gap). */
.ikpp-wrap .ikpp-commerce{
    --ikpp-view-cart-gap:10px;
    display:flex;
    flex-direction:column;
    width:100%;
    min-width:0;
    gap:0!important;
}
.ikpp-wrap .ikpp-commerce > form.cart{
    margin:0!important;
}
.ikpp-wrap .ikpp-commerce > .ikpp-view-cart-row{
    margin:var(--ikpp-view-cart-gap,10px) 0 0!important;
    padding:0!important;
}

/* v1.18.5: make the two purchase boundaries deterministic.
   1) The native WooCommerce variations table stays functional but is removed from
      the flex flow so it cannot add a hidden row-gap below the purchase row.
   2) View Cart keeps only its dedicated gap.
   3) The gap before the purchase row can be controlled independently from the
      global component gap. */
.ikpp-wrap{
    --ikpp-component-gap:12px;
}
.ikpp-wrap .ikpp-commerce{
    --ikpp-purchase-before-gap:12px;
}
.ikpp-wrap form.variations_form.ikpp-flow-form{
    margin:0!important;
    padding:0!important;
}
.ikpp-wrap form.variations_form.ikpp-flow-form > table.ikpp-original-variations{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    min-width:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    overflow:hidden!important;
    clip:rect(0 0 0 0)!important;
    clip-path:inset(50%)!important;
}
.ikpp-wrap form.variations_form.ikpp-flow-form > .single_variation_wrap{
    margin:0!important;
    padding:0!important;
    gap:0!important;
}
/* Simple/non-variable products receive the global wrapper gap before commerce.
   Subtract it and replace it with the dedicated purchase gap. */
.ikpp-wrap.ikpp-product-static.ikpp-has-before-purchase > .ikpp-commerce,
.ikpp-wrap.ikpp-product-outofstock.ikpp-has-before-purchase > .ikpp-commerce{
    margin-block-start:calc(var(--ikpp-purchase-before-gap,12px) - var(--ikpp-component-gap,12px))!important;
}
/* Variable products receive the global row-gap inside variations_form.
   The same replacement keeps the visible distance before quantity/button exact. */
.ikpp-wrap.ikpp-product-variable:not(.ikpp-product-outofstock).ikpp-has-before-purchase form.variations_form.ikpp-flow-form > .single_variation_wrap{
    margin-block-start:calc(var(--ikpp-purchase-before-gap,12px) - var(--ikpp-component-gap,12px))!important;
}
/* Theme rules must not reintroduce space after the visible variable purchase row. */
.ikpp-wrap form.variations_form.ikpp-flow-form > .single_variation_wrap:last-child,
.ikpp-wrap form.variations_form.ikpp-flow-form > .single_variation_wrap .woocommerce-variation-add-to-cart:last-child{
    margin-bottom:0!important;
    padding-bottom:0!important;
}

/* v1.18.6: one source of truth for unavailable layout, sold-individually products and mobile stacked purchase alignment. */
/* A sold-individually product never exposes the quantity UI. The CTA owns the full purchase row. */
.ikpp-wrap.ikpp-sold-individually form.cart:not(.variations_form) .quantity,
.ikpp-wrap.ikpp-sold-individually .woocommerce-variation-add-to-cart .quantity,
.ikpp-wrap.ikpp-sold-individually .ikpp-qty{
    display:none!important;
}
.ikpp-wrap.ikpp-sold-individually form.cart:not(.variations_form) .ikpp-cart-button,
.ikpp-wrap.ikpp-sold-individually .woocommerce-variation-add-to-cart .ikpp-cart-button{
    width:100%!important;
    max-width:100%!important;
    flex:1 1 100%!important;
}

/* Keep fully out-of-stock products on the exact same price/stock layout model.
   No separate out-of-stock positioning rules are introduced. */
.ikpp-wrap.ikpp-product-outofstock .ikpp-price-stock-group{
    min-width:0;
}
.ikpp-wrap.ikpp-product-outofstock .ikpp-price-stock-group > .ikpp-price,
.ikpp-wrap.ikpp-product-outofstock .ikpp-price-stock-group > .ikpp-stock{
    max-width:100%;
}

/* When the mobile purchase direction is explicitly stacked, this single control
   determines horizontal alignment. The responsive buy_gap remains the vertical gap. */
@media(max-width:767px){
    .ikpp-wrap[data-mobile-purchase-direction="column"][data-mobile-stack-align="right"] .woocommerce-variation-add-to-cart,
    .ikpp-wrap[data-mobile-purchase-direction="column"][data-mobile-stack-align="right"] form.cart:not(.variations_form){align-items:flex-start!important}
    .ikpp-wrap[data-mobile-purchase-direction="column"][data-mobile-stack-align="center"] .woocommerce-variation-add-to-cart,
    .ikpp-wrap[data-mobile-purchase-direction="column"][data-mobile-stack-align="center"] form.cart:not(.variations_form){align-items:center!important}
    .ikpp-wrap[data-mobile-purchase-direction="column"][data-mobile-stack-align="left"] .woocommerce-variation-add-to-cart,
    .ikpp-wrap[data-mobile-purchase-direction="column"][data-mobile-stack-align="left"] form.cart:not(.variations_form){align-items:flex-end!important}
    .ikpp-wrap[data-mobile-purchase-direction="column"][data-mobile-stack-align="stretch"] .woocommerce-variation-add-to-cart,
    .ikpp-wrap[data-mobile-purchase-direction="column"][data-mobile-stack-align="stretch"] form.cart:not(.variations_form){align-items:stretch!important}
    .ikpp-wrap[data-mobile-purchase-direction="column"][data-mobile-stack-align="stretch"] .ikpp-qty,
    .ikpp-wrap[data-mobile-purchase-direction="column"][data-mobile-stack-align="stretch"] .ikpp-cart-button{
        width:100%!important;
        max-width:100%!important;
        flex-basis:auto!important;
    }
}
