.pt-sticky-btn{position:fixed;inset:auto 0 0 0;z-index:340;display:flex;align-items:center;overflow:hidden;padding-block:10px;height:var(--pt-sticky-btn-height);background-color:var(--bgcolor-white);box-shadow:0 0 9px rgba(0,0,0,0.12);transition:transform 0.5s cubic-bezier(0.19, 1, 0.22, 1);transform:translate3d(0, 100%, 0)}.pt-sticky-btn .container{display:flex;align-items:center;column-gap:15px}.pt-sticky-btn-content{display:flex;flex:1 1 auto;align-items:center;column-gap:10px}.pt-sticky-btn-thumbnail{flex:0 0 auto;overflow:hidden}.pt-sticky-btn-thumbnail img{min-width:65px;max-width:65px;max-height:calc(var(--pt-sticky-btn-height) - 20px);border-radius:calc(var(--pt-brd-radius) / 1.5);object-fit:cover;object-position:center}.pt-sticky-btn-info{flex:1 1 auto}.pt-sticky-btn .woocommerce-price-suffix{display:block}.pt-sticky-btn .pt-entities-title{margin-bottom:0;font-size:14px}.pt-sticky-btn .star-rating{margin-top:5px}.pt-sticky-btn .price{margin-inline-end:15px;text-align:end;font-size:16px}.pt-sticky-btn .pt-sticky-btn-cart{display:flex;align-items:center}.pt-sticky-btn .pt-sticky-btn-cart>.pt-buy-now-btn{margin-inline-start:10px}.pt-sticky-btn form.cart{flex:0 0 auto}.pt-sticky-btn p.stock{margin-bottom:0;margin-inline-end:15px;font-size:14px}.pt-sticky-btn .pt-action-btn.pt-style-icon>a{height:40px}.pt-sticky-btn-shown.pt-sticky-btn{transform:translate3d(0, 0, 0)}.pt-sticky-btn-shown.scrollToTop{bottom:calc(12px + var(--pt-sticky-btn-height))}@media (min-width: 769px){.pt-sticky-btn-on{padding-bottom:var(--pt-sticky-btn-height, 95px)}}@media (max-width: 1024px){.pt-sticky-btn .price :is(del,ins){display:block}}@media (max-width: 768.98px){.pt-sticky-btn{padding-block:15px;height:auto;background-color:var(--bgcolor-white, #fff);box-shadow:0 -4px 14px rgba(0,0,0,0.06);border-radius:20px 20px 0 0}.pt-sticky-btn .pt-sticky-btn-cart{flex:1 1 auto}.pt-sticky-btn :is(p.stock,.pt-buy-now-btn,.pt-action-btn,.pt-sticky-btn-content){display:none}.pt-sticky-btn form.cart{position:relative;margin-inline-end:0 !important;flex:1 1 auto;width:auto;min-width:0}.pt-sticky-btn :is(.single_add_to_cart_button,.pt-sticky-add-to-cart){width:auto;min-height:var(--btn-height, var(--pt-sticky-btn-height));height:var(--btn-height, var(--pt-sticky-btn-height));border-radius:var(--btn-brd-radius, 0) !important}.pt-sticky-btn-on-mb{padding-bottom:var(--plt-sticky-bar-h, var(--pt-sticky-btn-height, 42px))}.pt-sticky-btn-on-mb .pt-sticky-btn{display:flex;border-bottom:1px dashed #ddd}}

/* ---------------------------------------------------------------------------
 * "سایز یادت نره" — the prompt shown when the sticky button is tapped before a
 * variation has been chosen. It stacks above the sticky bar, which itself sits
 * above the bottom toolbar, so all three read as one column and nothing is
 * covered: bottom is the toolbar height plus the sticky bar's own height.
 * --------------------------------------------------------------------------- */
.pt-atc-prompt{position:fixed;inset:0;z-index:360;display:none}
.pt-atc-prompt.is-open{display:block}
.pt-atc-prompt__veil{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.pt-atc-prompt__sheet{position:absolute;inset-inline:0;bottom:0;
 box-sizing:border-box;padding:28px 20px calc(30px + env(safe-area-inset-bottom));
 background:var(--bgcolor-white,#fff);border-start-start-radius:16px;border-start-end-radius:16px;
 box-shadow:0 -6px 24px rgba(0,0,0,.14);transform:translateY(12px);transition:transform .22s ease}
.pt-atc-prompt.is-open .pt-atc-prompt__sheet{transform:translateY(0)}
.pt-atc-prompt__title{margin:0 0 4px;color:var(--color-gray-900,#242424);font-weight:700;font-size:var(--pt-fs-md,16px);text-align:center}
.pt-atc-prompt__text{margin:0 0 14px;color:var(--color-gray-500,#8b93a3);font-size:var(--pt-fs-sm,13px);text-align:center}
.pt-atc-prompt__group{margin-bottom:14px}
.pt-atc-prompt__label{display:block;margin-bottom:8px;color:var(--color-gray-800,#333);font-weight:600;font-size:var(--pt-fs-sm,13px)}
.pt-atc-prompt__swatches{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.pt-atc-prompt__close{position:absolute;top:10px;inset-inline-end:12px;padding:6px;border:0;background:none;color:var(--color-gray-500,#8b93a3);font-size:0;line-height:1;cursor:pointer}
.pt-atc-prompt__close:before{content:"\e262";font-family:"Picon";font-size:18px}
/* Disabled until a choice is made, so the prompt cannot send you round again. */
/*
 * Nothing of its own to say about colour or type: it carries btn btn-accent, so
 * the theme paints it exactly like the sticky add to cart button beside it, and
 * the one row in the buttons settings drives both. Only the layout is set here --
 * it spans the sheet where the other sits in a row -- and the disabled state,
 * which is this button's alone.
 */
.pt-atc-prompt__submit{display:flex;align-items:center;justify-content:center;gap:8px;
 width:100%;min-height:var(--btn-height,44px);height:var(--btn-height,44px);cursor:pointer}
.pt-atc-prompt__submit[disabled]{opacity:.45;cursor:not-allowed}

/*
 * Mobile only. On a desktop the add to cart form is already in view and the bar
 * was just another fixed strip, so it is removed outright rather than styled --
 * and with it the padding the page was reserving for it.
 */
@media (min-width: 769px){.pt-sticky-btn{display:none !important}.pt-sticky-btn-on{padding-bottom:0}}

/*
 * Price beside the button on a phone, the way the shopper expects to see what
 * they are about to pay before they commit. It keeps its own width and the
 * button takes the rest, and it carries a plate of its own because the bar
 * behind it is transparent and the page scrolls underneath.
 */
@media (max-width: 768.98px){
 .pt-sticky-btn .pt-sticky-btn-cart{display:flex;align-items:center;gap:8px}
}

/*
 * One add to cart per screen.
 *
 * The bar is permanent on a phone, so the button inside the summary was a second
 * copy of the same primary action sitting a screen-height away from it -- two
 * things that look equally important and do exactly the same thing. The bar keeps
 * the job because it is always reachable; the summary keeps the swatches, the
 * quantity and the buy-now, which are not duplicates of anything.
 *
 * Hidden rather than removed: the bar's button works by clicking this one, and
 * WooCommerce's variation script keeps using it to report whether a variation
 * resolved.
 */
@media (max-width: 768.98px){
 form.cart .single_add_to_cart_button{display:none}
 .pt-sticky-btn form.cart .single_add_to_cart_button{display:inline-flex}
}

/*
 * Quantity rides on the button rather than taking the price's place, so the bar
 * keeps the one number the shopper checks before committing. The overlay is
 * absolute, so the row it sits in has to be the thing it measures against.
 */
@media (max-width: 768.98px){
 /*
  * Two rows: what it costs and how many on the first, the action across the
  * second. The button carries a full-width basis, so the flex line breaks after
  * the quantity and nothing needs a wrapper of its own.
  */
 .pt-sticky-btn .pt-sticky-btn-cart{--pt-sticky-row-gap:12px;position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:var(--pt-sticky-row-gap)}
 .pt-sticky-btn .price{order:1;display:flex;flex:0 1 auto;align-items:baseline;gap:6px;
  margin-inline-end:0;color:var(--color-gray-900, #242424);white-space:nowrap;
  font-weight:700;font-size:var(--pt-fs-md, 16px);line-height:1.3;font-variant-numeric:tabular-nums}
 .pt-sticky-btn .price ins{text-decoration:none;font-weight:700}
 .pt-sticky-btn .price del{opacity:.5;font-weight:500;font-size:.8em;text-decoration:line-through}
 .pt-sticky-btn .price .woocommerce-price-suffix{display:none}

 .pt-sticky-btn-off{order:2;display:none;flex:0 0 auto;align-items:center;
  padding:2px 8px;border-radius:999px;
  background-color:var(--pt-primary-color, #ff6050);color:#fff;
  white-space:nowrap;font-weight:700;font-size:var(--pt-fs-2xs, 11px);line-height:1.7}
 .pt-sticky-btn-off.is-on{display:inline-flex}

 /* Undo the overlay the shared quantity module applies to this bar. */
 .pt-sticky-btn.pt-quantity-overlap div.quantity{order:3;position:static;inset:auto;
  flex:0 0 auto;margin-inline-start:auto;width:auto;height:auto;filter:none;
  display:flex;align-items:center;overflow:hidden;
  border:1px solid var(--brdcolor-gray-300, #e6e6e6);border-radius:999px;
  background-color:var(--bgcolor-white, #fff)}
 .pt-sticky-btn.pt-quantity-overlap div.quantity input[type]{height:32px;min-height:0;max-width:none;
  padding:0 !important;border:0;border-radius:0;background:none;box-shadow:none;filter:none;
  color:var(--color-gray-900, #242424)}
 .pt-sticky-btn.pt-quantity-overlap div.quantity input[type="button"]{min-width:32px;width:32px;
  font-weight:500;font-size:18px}
 .pt-sticky-btn.pt-quantity-overlap div.quantity input.qty{width:28px;text-align:center;
  font-weight:600}
 .pt-sticky-btn.pt-quantity-overlap div.quantity input.qty::-webkit-outer-spin-button,
 .pt-sticky-btn.pt-quantity-overlap div.quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

 /*
  * Second row. The break is an empty flex item of full width, which is what ends
  * the first line -- the button can then share the second with the icons beside
  * it instead of claiming a line of its own.
  */
 .pt-sticky-btn .pt-sticky-row{order:5;flex:0 0 100%;display:flex;align-items:center;gap:var(--pt-sticky-row-gap)}

 /* Our own button style, just no longer the full width of the bar. */
 .pt-sticky-btn.pt-quantity-overlap div.quantity:not(.hidden)+.button,
 .pt-sticky-btn .pt-sticky-add-to-cart,
 .pt-sticky-btn .single_add_to_cart_button{order:5;flex:1 1 auto;padding-inline-start:0}

 /*
  * Secondary actions, as squares. Icon only and outlined, so they read as beside
  * the call to action rather than competing with it. The glyphs are the ones the
  * product page already uses for the same two controls -- heart and ruler -- and
  * a tap here is passed straight to those controls, so the wishlist request and
  * the size guide popup stay the page's own code.
  */
 .pt-sticky-btn .pt-sticky-side{flex:0 0 auto;
  display:inline-flex;align-items:center;justify-content:center;
  box-sizing:border-box;width:var(--btn-height, 42px);height:var(--btn-height, 42px);padding:0;
  border:1px solid var(--brdcolor-gray-300, #e6e6e6);border-radius:var(--btn-brd-radius, 10px);
  background-color:var(--bgcolor-white, #fff);color:var(--color-gray-800, #333);
  cursor:pointer;transition:color .2s ease,border-color .2s ease}
 .pt-sticky-btn .pt-sticky-side:before{font-family:"Picon";font-size:20px;font-weight:500;line-height:1}
 .pt-sticky-btn .pt-sticky-side--wishlist:before{content:"\e358"}
 .pt-sticky-btn .pt-sticky-side--guide:before{content:"\e524"}
 .pt-sticky-btn .pt-sticky-side:hover{color:var(--pt-primary-color, #ff6050);border-color:currentColor}
 .pt-sticky-btn .pt-sticky-side--wishlist.is-active{color:var(--pt-badge-danger, #d63a3a);border-color:currentColor}

 /*
  * Buy now goes. With the summary's add to cart already hidden it was the only
  * button left in the page, a lone secondary action stranded away from the bar
  * that carries the primary one.
  */
 form.cart .pt-buy-now-btn{display:none}

 /*
  * And the quantity in the summary goes with it: the bar has one now, and two
  * steppers for one number invite the shopper to wonder which is counted. The
  * one here still holds the value that gets submitted -- it is hidden, not gone,
  * and the bar writes through to it.
  */
 form.cart div.quantity{display:none !important}
 .pt-sticky-btn form.cart div.quantity{display:flex !important}
}

/*
 * The summary card, once its add to cart button is hidden here.
 *
 * The table of swatches carries a 20px bottom margin to stand clear of that
 * button. With the button gone the margin had nothing to separate, so it read as
 * a hole along the bottom edge of the card. The space a chosen variation needs is
 * given to the block that reports it instead, which only exists once there is
 * something to report.
 */
@media (max-width: 768.98px){
 .variations_form .variations{margin-bottom:0}
 .variations_form .single_variation_wrap .woocommerce-variation{margin-top:10px}
 .variations_form .woocommerce-variation-availability p.stock{margin-bottom:0;font-size:14px}

 /*
  * While the toolbar is tucked away the bar is the only thing at the foot of the
  * screen, so it can afford to sit deeper; it tightens again when the toolbar
  * comes back and the two have to share the space.
  */
 .plt-toolbar-tucked .pt-sticky-btn{padding-block:25px}
}
