/* Papugi i Spółka – Interfejs 1.1.8 – stabilizacja hover przycisku pustych Ulubionych. */
.pis-if-widget-wrap{display:flex;align-items:center;max-width:100%}
/* ACF, WooCommerce and Elementor must not stretch the native quantity field. */
.woocommerce div.quantity:has(> .pis-if-qty-btn),
form.cart div.quantity:has(> .pis-if-qty-btn),
.woocommerce div.quantity.pis-if-auto-quantity,
form.cart div.quantity.pis-if-auto-quantity,
.pis-if-qty-control{
  display:inline-flex!important;align-items:stretch!important;justify-content:flex-start!important;
  vertical-align:middle!important;flex-wrap:nowrap!important;flex:0 0 auto!important;
  box-sizing:border-box!important;position:relative!important;
  width:max-content!important;min-width:0!important;max-width:100%!important;
  height:var(--pis-if-qty-height,42px)!important;min-height:0!important;
  border:1px solid var(--pis-if-qty-border,var(--pis-if-border,#e5e3df))!important;
  border-radius:var(--pis-if-radius,7px)!important;
  background:var(--pis-if-qty-input-bg,var(--pis-if-input-bg,#fff))!important;
  overflow:hidden!important;gap:0!important;float:none!important;margin:0!important;padding:0!important;
}
.woocommerce div.quantity:has(> .pis-if-qty-btn)>input.qty,
form.cart div.quantity:has(> .pis-if-qty-btn)>input.qty,
.woocommerce div.quantity.pis-if-auto-quantity>input.qty,
form.cart div.quantity.pis-if-auto-quantity>input.qty,
.pis-if-qty-control>input.pis-if-qty-input{
  display:block!important;flex:0 0 var(--pis-if-qty-input-width,55px)!important;flex-grow:0!important;flex-shrink:0!important;
  width:var(--pis-if-qty-input-width,55px)!important;min-width:var(--pis-if-qty-input-width,55px)!important;max-width:var(--pis-if-qty-input-width,55px)!important;
  height:100%!important;min-height:0!important;max-height:100%!important;
  box-sizing:border-box!important;align-self:stretch!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;
  padding:0 4px!important;margin:0!important;text-align:center!important;
  background:var(--pis-if-qty-input-bg,var(--pis-if-input-bg,#fff))!important;
  color:var(--pis-if-qty-input-color,#30362d)!important;
  font:inherit!important;font-size:var(--pis-if-qty-input-font-size,15px)!important;font-weight:600!important;line-height:1.2!important;
  appearance:textfield!important;-moz-appearance:textfield!important;
}
.woocommerce div.quantity:has(> .pis-if-qty-btn)>input.qty::-webkit-inner-spin-button,
.woocommerce div.quantity:has(> .pis-if-qty-btn)>input.qty::-webkit-outer-spin-button,
.pis-if-qty-control>input::-webkit-inner-spin-button,
.pis-if-qty-control>input::-webkit-outer-spin-button{-webkit-appearance:none!important;margin:0!important}
.woocommerce div.quantity:has(> .pis-if-qty-btn)>.pis-if-qty-btn,
form.cart div.quantity:has(> .pis-if-qty-btn)>.pis-if-qty-btn,
.pis-if-qty-control>.pis-if-qty-btn{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  flex:0 0 var(--pis-if-qty-width,42px)!important;flex-grow:0!important;flex-shrink:0!important;
  width:var(--pis-if-qty-width,42px)!important;min-width:var(--pis-if-qty-width,42px)!important;
  max-width:var(--pis-if-qty-width,42px)!important;
  height:100%!important;min-height:0!important;
  padding:0!important;margin:0!important;position:static!important;transform:none!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;
  background:var(--pis-if-qty-button-bg,var(--pis-if-button-bg,#f8f6f3))!important;
  color:var(--pis-if-qty-button-color,var(--pis-if-accent,#5a8022))!important;
  cursor:pointer!important;font-family:inherit!important;
  font-weight:400!important;font-size:var(--pis-if-qty-button-font-size,20px)!important;line-height:1!important;text-transform:none!important;
  transition:background-color .15s ease,color .15s ease,box-shadow .15s ease;
}
.woocommerce div.quantity:has(> .pis-if-qty-btn)>.pis-if-minus,
form.cart div.quantity:has(> .pis-if-qty-btn)>.pis-if-minus,
.pis-if-qty-control>.pis-if-minus{border-right:1px solid var(--pis-if-qty-border,var(--pis-if-border,#e5e3df))!important}
.woocommerce div.quantity:has(> .pis-if-qty-btn)>.pis-if-plus,
form.cart div.quantity:has(> .pis-if-qty-btn)>.pis-if-plus,
.pis-if-qty-control>.pis-if-plus{border-left:1px solid var(--pis-if-qty-border,var(--pis-if-border,#e5e3df))!important}
.woocommerce div.quantity:has(> .pis-if-qty-btn)>.pis-if-qty-btn:hover:not(:disabled),
form.cart div.quantity:has(> .pis-if-qty-btn)>.pis-if-qty-btn:hover:not(:disabled),
.pis-if-qty-control>.pis-if-qty-btn:hover:not(:disabled){
  background:var(--pis-if-qty-hover-bg,var(--pis-if-hover,#85b839))!important;
  color:var(--pis-if-qty-hover-color,#fff)!important;
  box-shadow:inset 0 0 0 1px var(--pis-if-qty-hover-border,var(--pis-if-hover,#85b839))!important;
}
/* WooCommerce deliberately outputs type="hidden" when only one fixed quantity is allowed.
   A visual middle cell is shown; the native hidden input remains authoritative. */
.woocommerce div.quantity:has(> .pis-if-qty-btn)>.pis-if-qty-static,
form.cart div.quantity:has(> .pis-if-qty-btn)>.pis-if-qty-static{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  flex:0 0 var(--pis-if-qty-input-width,55px)!important;flex-grow:0!important;flex-shrink:0!important;
  width:var(--pis-if-qty-input-width,55px)!important;min-width:var(--pis-if-qty-input-width,55px)!important;max-width:var(--pis-if-qty-input-width,55px)!important;
  height:100%!important;min-height:0!important;max-height:100%!important;
  padding:0 4px!important;margin:0!important;box-sizing:border-box!important;
  background:var(--pis-if-qty-input-bg,var(--pis-if-input-bg,#fff))!important;
  color:var(--pis-if-qty-input-color,#30362d)!important;
  font:inherit!important;font-size:var(--pis-if-qty-input-font-size,15px)!important;font-weight:600!important;line-height:1.2!important;
}
.pis-if-qty-btn:focus-visible,.pis-if-favorite:focus-visible{
  outline:2px solid var(--pis-if-accent,#5a8022)!important;outline-offset:2px;
}
.pis-if-qty-btn:disabled{opacity:.5!important;cursor:not-allowed!important}
.pis-if-loop-qty{margin:10px 0 8px}
.pis-if-original-hidden{display:none!important}
/* This must beat the automatic quantity selectors above (Elementor widget proxy option). */
.woocommerce div.quantity.pis-if-original-hidden,
form.cart div.quantity.pis-if-original-hidden,
.woocommerce .quantity.pis-if-original-hidden,
form.cart .quantity.pis-if-original-hidden,
.pis-if-original-hidden{display:none!important}
.pis-if-qty-widget{display:inline-block!important;max-width:100%}
.pis-v020-reservation-quantity>.pis-if-reservation-control{margin-top:7px}
/* WooCommerce Blocks owns the interaction; we style its native quantity selector. */
.wc-block-components-quantity-selector{border:1px solid var(--pis-if-border,#e5e3df)!important;border-radius:var(--pis-if-radius,7px)!important;background:var(--pis-if-input-bg,#fff)!important}
.wc-block-components-quantity-selector button{color:var(--pis-if-accent,#5a8022)!important}
.wc-block-components-quantity-selector button:hover{background:var(--pis-if-qty-hover-bg,var(--pis-if-hover,#85b839))!important;color:var(--pis-if-qty-hover-color,#fff)!important}

/* Purchase layout, 1.1.4. Flex direction affects direct children only.
   Elementor can insert .e-atc-qty-button-holder inside either Woo form.
   Keep the widget/container width chosen in Elementor; fill only its interior.
   No DOM moves, input replacement or changes to variation visibility. */
.elementor-widget-woocommerce-product-add-to-cart .elementor-widget-container,
.elementor-widget-woocommerce-product-add-to-cart .elementor-add-to-cart,
:is(body.single-product, .elementor-widget-woocommerce-product-add-to-cart) form.cart:not(.grouped_form):not(.pis-v020-reservation-form),
:is(body.single-product, .elementor-widget-woocommerce-product-add-to-cart) form.cart:not(.grouped_form):not(.pis-v020-reservation-form) .single_variation_wrap,
:is(body.single-product, .elementor-widget-woocommerce-product-add-to-cart) form.cart:not(.grouped_form):not(.pis-v020-reservation-form) .woocommerce-variation-add-to-cart,
:is(body.single-product, .elementor-widget-woocommerce-product-add-to-cart) form.cart:not(.grouped_form):not(.pis-v020-reservation-form) .e-atc-qty-button-holder {
  box-sizing:border-box;
  width:100%;
  min-width:0;
  max-width:100%;
}
/* Stack the actual purchase siblings, with and without Elementor's holder.
   Do not force display on an outer variation panel: Woo may hide it. */
:is(body.single-product, .elementor-widget-woocommerce-product-add-to-cart) form.cart:not(.grouped_form):not(.pis-v020-reservation-form):not(.variations_form),
:is(body.single-product, .elementor-widget-woocommerce-product-add-to-cart) form.cart:not(.grouped_form):not(.pis-v020-reservation-form) .woocommerce-variation-add-to-cart,
:is(body.single-product, .elementor-widget-woocommerce-product-add-to-cart) form.cart:not(.grouped_form):not(.pis-v020-reservation-form) .e-atc-qty-button-holder {
  flex-direction:column!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:14px!important;
}
:is(body.single-product, .elementor-widget-woocommerce-product-add-to-cart) form.cart:not(.grouped_form):not(.pis-v020-reservation-form):not(.variations_form),
:is(body.single-product, .elementor-widget-woocommerce-product-add-to-cart) form.cart:not(.grouped_form):not(.pis-v020-reservation-form) .e-atc-qty-button-holder {
  display:flex;
}
/* Legacy Woo markup has no holder. A hidden panel must stay hidden. */
:is(body.single-product, .elementor-widget-woocommerce-product-add-to-cart) form.cart:not(.grouped_form):not(.pis-v020-reservation-form) .woocommerce-variation-add-to-cart:not(:has(> .e-atc-qty-button-holder)) {
  display:flex;
}
:is(body.single-product, .elementor-widget-woocommerce-product-add-to-cart) form.cart:not(.grouped_form):not(.pis-v020-reservation-form) .single_add_to_cart_button {
  float:none!important;
  clear:both!important;
  align-self:stretch!important;
  flex:0 0 auto!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* Favorites are added manually; each Elementor widget instance owns its colors. */
.pis-if-favorite{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  gap:8px;max-width:100%;box-sizing:border-box!important;margin:0;padding:9px 13px;
  border:1px solid var(--pis-if-fav-normal-border,var(--pis-if-border,#e5e3df))!important;
  border-radius:var(--pis-if-radius,7px);background:var(--pis-if-fav-normal-bg,#fff)!important;
  color:var(--pis-if-fav-normal-text,var(--pis-if-accent,#5a8022))!important;
  font:inherit;font-size:14px;line-height:1.2;text-align:center;cursor:pointer;
  transition:color .15s,background-color .15s,border-color .15s;
}
.pis-if-favorite .pis-if-heart{display:block;flex:none;fill:none;stroke:var(--pis-if-fav-normal-icon,currentColor)!important}
.pis-if-favorite:not(.is-active):hover{
  background:var(--pis-if-fav-hover-bg,var(--pis-if-button-bg,#f8f6f3))!important;
  color:var(--pis-if-fav-hover-text,var(--pis-if-accent,#5a8022))!important;
  border-color:var(--pis-if-fav-hover-border,var(--pis-if-hover,#85b839))!important;
}
.pis-if-favorite:not(.is-active):hover .pis-if-heart{stroke:var(--pis-if-fav-hover-icon,currentColor)!important}
.pis-if-favorite.is-active{
  background:var(--pis-if-fav-active-bg,#fff)!important;
  color:var(--pis-if-fav-active-text,var(--pis-if-accent,#5a8022))!important;
  border-color:var(--pis-if-fav-active-border,var(--pis-if-border,#e5e3df))!important;
}
.pis-if-favorite.is-active .pis-if-heart{
  fill:var(--pis-if-fav-active-icon,currentColor)!important;
  stroke:var(--pis-if-fav-active-icon,currentColor)!important;
}
.pis-if-favorite.is-active:hover{
  background:var(--pis-if-fav-active-hover-bg,var(--pis-if-fav-active-bg,#fff))!important;
  color:var(--pis-if-fav-active-hover-text,var(--pis-if-fav-active-text,var(--pis-if-accent,#5a8022)))!important;
  border-color:var(--pis-if-fav-active-hover-border,var(--pis-if-fav-active-border,var(--pis-if-border,#e5e3df)))!important;
}
.pis-if-favorite.is-active:hover .pis-if-heart{
  fill:var(--pis-if-fav-active-hover-icon,var(--pis-if-fav-active-icon,currentColor))!important;
  stroke:var(--pis-if-fav-active-hover-icon,var(--pis-if-fav-active-icon,currentColor))!important;
}
.pis-if-favorite:disabled{opacity:.6;cursor:wait}
.pis-if-mode-icon{border-color:var(--pis-if-fav-normal-border,transparent)!important;background:var(--pis-if-fav-normal-bg,transparent)!important;padding:8px}
.pis-if-mode-icon .pis-if-fav-label{display:none}
.pis-if-mode-icon.is-active{border-color:var(--pis-if-fav-active-border,transparent)!important;background:var(--pis-if-fav-active-bg,transparent)!important}
.pis-if-mode-icon.is-active:hover{border-color:var(--pis-if-fav-active-hover-border,var(--pis-if-fav-active-border,transparent))!important;background:var(--pis-if-fav-active-hover-bg,var(--pis-if-fav-active-bg,transparent))!important}
.pis-if-mode-button{
  background:var(--pis-if-fav-normal-bg,var(--pis-if-accent,#5a8022))!important;
  color:var(--pis-if-fav-normal-text,#fff)!important;
  border-color:var(--pis-if-fav-normal-border,var(--pis-if-accent,#5a8022))!important;
}
.pis-if-mode-button:not(.is-active):hover{
  background:var(--pis-if-fav-hover-bg,var(--pis-if-hover,#85b839))!important;
  color:var(--pis-if-fav-hover-text,#fff)!important;
  border-color:var(--pis-if-fav-hover-border,var(--pis-if-hover,#85b839))!important;
}
.pis-if-mode-button.is-active{
  background:var(--pis-if-fav-active-bg,var(--pis-if-accent,#5a8022))!important;
  color:var(--pis-if-fav-active-text,#fff)!important;
  border-color:var(--pis-if-fav-active-border,var(--pis-if-accent,#5a8022))!important;
}
.pis-if-mode-button.is-active:hover{
  background:var(--pis-if-fav-active-hover-bg,var(--pis-if-fav-active-bg,var(--pis-if-hover,#85b839)))!important;
  color:var(--pis-if-fav-active-hover-text,var(--pis-if-fav-active-text,#fff))!important;
  border-color:var(--pis-if-fav-active-hover-border,var(--pis-if-fav-active-border,var(--pis-if-hover,#85b839)))!important;
}
.pis-if-list{min-height:35px}
.pis-if-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}
.pis-if-card{display:flex;flex-direction:column;border:1px solid var(--pis-if-border,#e5e3df);border-radius:12px;overflow:hidden;background:#fff}
.pis-if-card-img{display:block;aspect-ratio:4/3;overflow:hidden;background:#f8f6f3}
.pis-if-card-img img{display:block;width:100%;height:100%;object-fit:cover}
.pis-if-card-body{display:flex;flex:1;align-items:flex-start;flex-direction:column;gap:10px;padding:14px}
.pis-if-card-body small{color:#6f756b}
.pis-if-card-body>a{color:#303930;text-decoration:none;font-weight:600}
.pis-if-card-body>a:hover{color:var(--pis-if-accent,#5a8022)}
.pis-if-card-body>.pis-if-favorite{margin-top:auto}
.pis-if-toast{position:fixed;bottom:18px;right:18px;z-index:99999;max-width:330px;
  background:#fff;color:#343434;border:1px solid var(--pis-if-border,#e5e3df);
  border-radius:8px;padding:14px 17px;box-shadow:0 8px 28px #0002}
.pis-if-toast[hidden]{display:none}

/* v1.1.6: Astra renders its fallback as a real span + SVG, not a pseudo-element.
   Hide only that icon on this endpoint; keep the link label and other menu icons. */
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--pis-ulubione > a > .ahfb-svg-iconset {
  display:none;
}
/* The single heart inherits the normal, hover and active link color.
   Live Astra markup has no ::after icon, so do not suppress unrelated pseudos. */
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--pis-ulubione > a::before,
.woocommerce .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--pis-ulubione > a::before {
  content:""!important;
  display:inline-block!important;
  position:static!important;
  vertical-align:middle!important;
  width:22px!important;
  height:22px!important;
  min-width:22px!important;
  color:inherit!important;
  background:currentColor!important;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78Z' fill='black'/%3E%3C/svg%3E") center / contain no-repeat!important;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78Z' fill='black'/%3E%3C/svg%3E") center / contain no-repeat!important;
  font-size:0!important;
  line-height:1!important;
  transform:none!important;
  margin-right:20px!important;
}

/* v1.1.5: Empty Favorites list mirrors the notice and button on empty Orders. */
.pis-if-list .pis-if-empty {
  box-sizing:border-box;
  border-top:4px solid var(--pis-if-accent,#5a8022);
  padding:28px 24px 8px;
  margin:0 0 28px;
  color:#555;
}
.pis-if-list .pis-if-empty-message {
  display:flex;
  align-items:center;
  gap:14px;
  margin:0 0 22px;
  line-height:1.5;
}
.pis-if-list .pis-if-empty-check {
  display:block;
  flex:0 0 24px;
  color:var(--pis-if-accent,#5a8022);
}
.pis-if-list .pis-if-empty-actions {
  text-align:center;
}
/* Beat Elementor My Account link specificity (0,4,1), without !important.
   Keep the actual anchor text; its computed font and visibility were already correct. */
.woocommerce .pis-if-list .pis-if-empty .pis-if-empty-actions > a.pis-if-empty-shop,
.pis-if-list .pis-if-empty .pis-if-empty-actions > a.pis-if-empty-shop {
  box-sizing:border-box;
  display:inline-block;
  width:auto;
  max-width:100%;
  padding:13px 28px;
  margin:0;
  border:1px solid #47671c;
  border-radius:8px;
  background:#5A8022;
  color:#fff;
  font:inherit;
  font-weight:500;
  line-height:1.35;
  text-decoration:none;
  text-align:center;
  cursor:pointer;
  /* This specific link must not inherit Astra/Elementor button animations,
     which can briefly repaint the original green background on hover. */
  transition:none;
  animation:none;
  background-image:none;
  box-shadow:none;
}
/* Prevent an inherited hover overlay on this link only; do not affect other Woo buttons. */
.woocommerce .pis-if-list .pis-if-empty .pis-if-empty-actions > a.pis-if-empty-shop::before,
.woocommerce .pis-if-list .pis-if-empty .pis-if-empty-actions > a.pis-if-empty-shop::after,
.pis-if-list .pis-if-empty .pis-if-empty-actions > a.pis-if-empty-shop::before,
.pis-if-list .pis-if-empty .pis-if-empty-actions > a.pis-if-empty-shop::after {
  content:none;
  display:none;
}
/* A visited link must stay white on the standard green button. */
.woocommerce .pis-if-list .pis-if-empty .pis-if-empty-actions > a.pis-if-empty-shop:visited,
.pis-if-list .pis-if-empty .pis-if-empty-actions > a.pis-if-empty-shop:visited {
  color:#fff;
}
/* Hover, keyboard focus and press: cream background, green text and border.
   Keep these rules after :visited so a visited link also gets the hover colors. */
.woocommerce .pis-if-list .pis-if-empty .pis-if-empty-actions > a.pis-if-empty-shop:is(:hover,:focus,:active),
.pis-if-list .pis-if-empty .pis-if-empty-actions > a.pis-if-empty-shop:is(:hover,:focus,:active) {
  background:#F8F6F3;
  border-color:#5A8022;
  color:#5A8022;
  background-image:none;
  box-shadow:none;
  transition:none;
  animation:none;
}
.pis-if-list .pis-if-empty .pis-if-empty-actions > a.pis-if-empty-shop:focus-visible {
  outline:2px solid var(--pis-if-accent,#5a8022);
  outline-offset:3px;
}
@media (max-width:600px) {
  .pis-if-list .pis-if-empty { padding:22px 12px 12px; }
}
