/* Bobs Wishlist: theme-neutral WooCommerce wishlist styling. */
.bobs-wl-toggle {font:inherit; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; border:1px solid #cbded2; color:#204b3d; background:#fff; border-radius:50%; width:42px; height:42px; transition:background .15s ease,transform .15s ease;}
.bobs-wl-toggle svg,.bobs-wl-header-link svg {width:21px;height:21px;flex:none;}
.bobs-wl-toggle:hover {background:#efffd7;transform:scale(1.05);}
.bobs-wl-toggle.is-saved {color:var(--bwl-heart,#b42552); background:#fff0f4;border-color:#ff9cb5;}
.bobs-wl-toggle.is-saved svg {fill:currentColor;}
.bobs-wl-quicklink:focus-visible,.bobs-wl-toggle:focus-visible,.bobs-wl-primary:focus-visible,.bobs-wl-header-link:focus-visible {outline:3px solid #9cdd30;outline-offset:3px;}
.woocommerce ul.products li.product:not(.product-category),.woocommerce-page ul.products li.product:not(.product-category){position:relative;}
.woocommerce ul.products li.product .bobs-wl-loop,.woocommerce-page ul.products li.product .bobs-wl-loop {position:absolute;right:20px;top:20px;z-index:5;box-shadow:0 4px 18px #10291e35;}
.woocommerce div.product .bobs-wl-single {position:relative;width:auto;min-height:42px;height:auto;border-radius:25px;padding:9px 15px;gap:8px;margin:4px 0 20px;background:#f4fbeb;font-weight:750;}
.bobs-wl-header-link{position:relative;display:inline-flex;align-items:center;justify-content:center;}
.bobs-wl-header-link .bobs-wl-count{display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;line-height:1;background:var(--bwl-accent,#d9ff68);color:#173f34;padding:2px 5px;border-radius:10px;min-width:17px;text-align:center;white-space:nowrap;}
.bobs-wl-page{max-width:1240px;padding:24px 20px 75px;margin:0 auto;color:#173f34;}
.bobs-wl-title{background:var(--bwl-accent,#d9ff68);border-radius:26px;padding:36px 30px;margin-bottom:30px;}
.bobs-wl-title h1 {font-size:clamp(30px,4vw,48px);margin:3px 0 9px;line-height:1.08;color:#173f34;}
.bobs-wl-title p{margin:0;font-size:16px;line-height:1.5;}
.bobs-wl-eyebrow{font-size:12px;letter-spacing:.12em;font-weight:900;}
.bobs-wl-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;}
.bobs-wl-card{position:relative;background:#fff;border:1px solid #deebdd;padding:14px 14px 18px;border-radius:22px;box-shadow:0 12px 25px #113b2917;display:flex;flex-direction:column;min-width:0;}
.bobs-wl-image{display:block;aspect-ratio:1;background:#f5f8f0;border-radius:14px;overflow:hidden;}
.bobs-wl-image img{height:100%;width:100%;object-fit:contain;}
.bobs-wl-card .bobs-wl-remove{position:absolute;top:23px;right:23px;box-shadow:0 4px 14px #173f3430;}
.bobs-wl-card h2{font-size:17px;line-height:1.3;margin:16px 0 9px;}
.bobs-wl-card h2 a{color:#173f34;text-decoration:none;}
.bobs-wl-card h2 a:hover{text-decoration:underline;}
.bobs-wl-price{font-size:18px;font-weight:850;color:#20583e;margin:auto 0 14px;}
.bobs-wl-price del{opacity:.55;font-size:14px;}
.bobs-wl-primary{display:inline-flex;min-height:43px;padding:10px 18px;border-radius:12px;align-items:center;justify-content:center;background:var(--bwl-accent,#d9ff68);color:var(--bwl-accent-text,#173f34) !important;text-decoration:none !important;font-weight:850;}
.bobs-wl-empty{text-align:center;background:#fff;border:1px dashed #b5d1c0;border-radius:22px;padding:48px 18px;}
.bobs-wl-empty h2{margin:0 0 10px;font-size:26px;}
.bobs-wl-empty p{margin:0 auto 24px;max-width:410px;}
.bobs-wl-notice{position:fixed;bottom:20px;left:50%;transform:translate(-50%,140px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:9999;background:#173f34;color:#fff;padding:12px 22px;border:2px solid var(--bwl-accent,#d9ff68);border-radius:12px;max-width:min(90vw,440px);text-align:center;box-shadow:0 5px 20px #173f3450;}
.bobs-wl-notice.bobs-wl-show{opacity:1;transform:translate(-50%,0);}
@media(max-width:900px){.bobs-wl-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:680px){.bobs-wl-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bobs-wl-page{padding:16px 12px 45px}.bobs-wl-title{padding:23px 18px;border-radius:18px}.bobs-wl-card{padding:8px 8px 13px;border-radius:16px}.bobs-wl-card h2{font-size:14px}.bobs-wl-card .bobs-wl-remove{top:13px;right:13px}.woocommerce ul.products li.product .bobs-wl-loop,.woocommerce-page ul.products li.product .bobs-wl-loop{right:11px;top:11px;width:36px;height:36px;} .bobs-wl-header-link{padding-right:0!important;min-width:42px;min-height:42px;} .bobs-wl-header-link .bobs-action-label{display:none!important;} .bobs-wl-header-link .bobs-wl-count{position:absolute;top:-5px;right:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;box-shadow:0 1px 4px #10291e35;}}
@media(prefers-reduced-motion:reduce){.bobs-wl-toggle,.bobs-wl-notice{transition:none}}

/* Theme-neutral quick link and WooCommerce My Account integration. */
.bobs-wl-quicklink {display:inline-flex;align-items:center;gap:.45em;color:inherit;text-decoration:underline;}
.bobs-wl-quicklink .bobs-wl-count {display:inline-block;font-size:.8em;border-radius:20px;padding:.05em .55em;color:var(--bwl-accent-text,#173f34);background:var(--bwl-accent,#d9ff68);text-decoration:none;}
.woocommerce-MyAccount-content .bobs-wl-page {padding:0 0 35px;}
.woocommerce-MyAccount-content .bobs-wl-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
@media(max-width:580px){.woocommerce-MyAccount-content .bobs-wl-grid{grid-template-columns:1fr}}

/* WooCommerce Product Collection, Product Image, and server-rendered legacy grid blocks. */
.bobs-wl-block-image-wrap {position:relative;min-width:0;}
.bobs-wl-block-image-wrap > .bobs-wl-toggle {position:absolute;z-index:5;top:10px;right:10px;box-shadow:0 4px 14px #10291e35;}
.bobs-wl-block-image-wrap > .wc-block-components-product-image,
.bobs-wl-block-image-wrap > .wc-block-grid__product-image {max-width:100%;}
.wc-block-grid__product {position:relative;}
.wc-block-grid__product > .bobs-wl-toggle {position:absolute;top:12px;right:12px;z-index:5;box-shadow:0 4px 14px #10291e35;}
@media(max-width:680px){.bobs-wl-block-image-wrap > .bobs-wl-toggle,.wc-block-grid__product > .bobs-wl-toggle{width:36px;height:36px;top:8px;right:8px;}}

/* v0.3.1 — shop product heart corner, controlled in WooCommerce > Wishlist. */
.woocommerce ul.products li.product .bobs-wl-loop.bobs-wl-pos-left,
.woocommerce-page ul.products li.product .bobs-wl-loop.bobs-wl-pos-left {left:20px;right:auto;}
.bobs-wl-block-image-wrap > .bobs-wl-toggle.bobs-wl-pos-left,
.wc-block-grid__product > .bobs-wl-toggle.bobs-wl-pos-left {left:10px;right:auto;}
.wc-block-grid__product > .bobs-wl-toggle.bobs-wl-pos-left {left:12px;}
@media(max-width:680px){
  .woocommerce ul.products li.product .bobs-wl-loop.bobs-wl-pos-left,
  .woocommerce-page ul.products li.product .bobs-wl-loop.bobs-wl-pos-left {left:11px;right:auto;}
  .bobs-wl-block-image-wrap > .bobs-wl-toggle.bobs-wl-pos-left,
  .wc-block-grid__product > .bobs-wl-toggle.bobs-wl-pos-left {left:8px;right:auto;}
}

/* Native wishlist Link block and traditional sidebar widget (theme-neutral). */
.bobs-wl-widget-link{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.55em;min-height:40px;padding:7px 12px;border:1px solid #d6e3da;border-radius:11px;background:#fff;color:#204b3d;text-decoration:none;line-height:1.35;max-width:100%;box-sizing:border-box;}
.bobs-wl-widget-link:hover{background:#f4faee;text-decoration:none;}
.bobs-wl-widget-link:focus-visible{outline:3px solid #9cdd30;outline-offset:3px;}
.bobs-wl-widget-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--bwl-heart,#b42552);}
.bobs-wl-widget-icon svg{width:19px;height:19px;}
.bobs-wl-widget-label{overflow-wrap:anywhere;}
.bobs-wl-widget-link .bobs-wl-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.65em;padding:.15em .45em;border-radius:20px;background:var(--bwl-accent,#d9ff68);color:var(--bwl-accent-text,#173f34);font-size:.83em;font-weight:750;line-height:1.3;}
.bobs-wl-widget-link .bobs-wl-count-label{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}

@media(max-width:820px){
  .bobs-wl-header-link{padding-right:0!important;min-width:42px;min-height:42px;}
  .bobs-wl-header-link .bobs-action-label{display:none!important;}
  .bobs-wl-header-link .bobs-wl-count{position:absolute;top:-5px;right:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;box-shadow:0 1px 4px #10291e35;}
}

/* v0.3.3: selectable text link or coloured button for widget, block and shortcode. */
.bobs-wl-widget-link.bobs-wl-widget-link--button{
  background:var(--bwl-widget-bg,#ffffff);
  color:var(--bwl-widget-fg,#204b3d);
}
.bobs-wl-widget-link.bobs-wl-widget-link--button:hover{
  background:var(--bwl-widget-bg,#ffffff);
  color:var(--bwl-widget-fg,#204b3d);
  filter:brightness(.96);
}
.bobs-wl-widget-link.bobs-wl-widget-link--text{
  display:inline-flex;
  min-height:24px;
  padding:2px 0;
  border:0;
  border-radius:0;
  background:transparent;
  color:inherit;
  text-decoration:underline;
  filter:none;
}
.bobs-wl-widget-link.bobs-wl-widget-link--text:hover{
  background:transparent;
  color:inherit;
  text-decoration:underline;
  filter:none;
}
.bobs-wl-widget-link.bobs-wl-widget-link--text .bobs-wl-widget-label{text-decoration:underline;}

/* v0.3.4: independent hover colour for widget, shortcode, and block buttons.
   Themes can override this with their own selectors if desired. */
.bobs-wl-widget-link.bobs-wl-widget-link--button:hover {
  background:var(--bwl-widget-hover-bg,#f4faee);
  color:var(--bwl-widget-hover-fg,#172e23);
  filter:none;
}
@media (max-width:820px) {
  /* Icon-only, circular mobile presentation on ALL compact wishlist links.
     Labels remain screen-reader accessible; hidden desktop hearts display on mobile. */
  .bobs-wl-widget-link.bobs-wl-widget-link--button,
  .bobs-wl-widget-link.bobs-wl-widget-link--text {
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 42px;
    flex-wrap:nowrap;
    width:42px;
    min-width:42px;
    max-width:42px;
    height:42px;
    min-height:42px;
    padding:0;
    box-sizing:border-box;
    border:1px solid #d6e3da;
    border-radius:50%;
    background:var(--bwl-widget-bg,#ffffff);
    color:var(--bwl-widget-fg,#204b3d);
    text-decoration:none;
    filter:none;
    overflow:visible;
    vertical-align:middle;
  }
  .bobs-wl-widget-link .bobs-wl-widget-icon,
  .bobs-wl-widget-link.bobs-wl-widget-link--no-desktop-icon .bobs-wl-widget-icon {
    display:inline-flex;
    position:static;
    flex:none;
    color:inherit;
    line-height:1;
  }
  .bobs-wl-widget-link .bobs-wl-widget-icon svg {width:21px;height:21px;}
  .bobs-wl-widget-link .bobs-wl-widget-label {
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important;
    text-decoration:none;
  }
  .bobs-wl-widget-link .bobs-wl-count {
    position:absolute;
    top:-6px;
    right:-7px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:auto;
    min-width:18px;
    height:18px;
    padding:0 4px;
    box-sizing:border-box;
    border-radius:999px;
    font-size:10px;
    line-height:1;
    white-space:nowrap;
    box-shadow:0 1px 4px #10291e35;
    z-index:1;
  }
  .bobs-wl-widget-link.bobs-wl-widget-link--button:hover,
  .bobs-wl-widget-link.bobs-wl-widget-link--text:hover {
    background:var(--bwl-widget-hover-bg,#f4faee);
    color:var(--bwl-widget-hover-fg,#172e23);
    text-decoration:none;
    filter:none;
  }
}
/* Hide the optional icon on desktop only; mobile always displays a heart. */
@media (min-width:821px) {
  .bobs-wl-widget-link--no-desktop-icon .bobs-wl-widget-icon {display:none;}
}


/* v0.3.6: optional heart-only button on desktop as well as mobile.
   Preserve an accessible text label in the markup; only hide it visually. */
.bobs-wl-widget-link.bobs-wl-widget-link--heart {
  position:relative;
  display:inline-flex;
  flex:0 0 42px;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  width:42px;
  min-width:42px;
  max-width:42px;
  height:42px;
  min-height:42px;
  padding:0;
  border:1px solid #d6e3da;
  border-radius:50%;
  background:var(--bwl-widget-bg,#ffffff);
  color:var(--bwl-widget-fg,#204b3d);
  text-decoration:none;
  overflow:visible;
  vertical-align:middle;
}
.bobs-wl-widget-link.bobs-wl-widget-link--heart .bobs-wl-widget-label {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.bobs-wl-widget-link.bobs-wl-widget-link--heart .bobs-wl-widget-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:inherit;
  flex:none;
  line-height:1;
}
.bobs-wl-widget-link.bobs-wl-widget-link--heart .bobs-wl-widget-icon svg {width:21px;height:21px;}
.bobs-wl-widget-link.bobs-wl-widget-link--heart .bobs-wl-count {
  position:absolute;
  top:-6px;
  right:-7px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-width:18px;
  height:18px;
  padding:0 4px;
  box-sizing:border-box;
  border-radius:999px;
  font-size:10px;
  line-height:1;
  white-space:nowrap;
  box-shadow:0 1px 4px #10291e35;
  z-index:1;
}
.bobs-wl-widget-link.bobs-wl-widget-link--heart:hover {
  background:var(--bwl-widget-hover-bg,#f4faee);
  color:var(--bwl-widget-hover-fg,#172e23);
  text-decoration:none;
  filter:none;
}

/* v0.3.7 opt-in wishlist beside a recognisable WooCommerce header basket.
   Slot may be a LI in navigation lists or a SPAN in flex/grid header action rows.
   No rules are applied to the site's basket or other header controls. */
.bobs-wl-cart-adjacent {
  display:inline-flex;align-items:center;justify-content:center;
  flex:0 0 auto;vertical-align:middle;margin-inline-start:6px;
  min-width:42px;list-style:none;overflow:visible;
}
.bobs-wl-cart-adjacent > .bobs-wl-widget-link {
  margin:0;flex:none;
}
/* The auto-inserted heart can sit either side of a recognised basket.
   Use logical margins to respect LTR and RTL headers without styling the cart. */
.bobs-wl-cart-adjacent--left {
  margin-inline-start:0;
  margin-inline-end:6px;
}

/* v0.3.10: separate display modes for automatic placement beside the basket.
   Unlike widget/button style, the header has its own appearance option.
   The separate variant presents one accessible link with a distinct circular
   heart and adjacent label. The live count stays anchored to the circle. */
.bobs-wl-cart-adjacent > .bobs-wl-cart-link--separate {
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  gap:9px;
  flex:0 0 auto;
  flex-wrap:nowrap;
  width:auto;
  max-width:none;
  min-height:42px;
  height:auto;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:inherit;
  text-decoration:none;
  white-space:nowrap;
  box-shadow:none;
  filter:none;
}
.bobs-wl-cart-adjacent > .bobs-wl-cart-link--separate .bobs-wl-widget-icon {
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 42px;
  width:42px;
  height:42px;
  box-sizing:border-box;
  border:1px solid #d6e3da;
  border-radius:50%;
  background:var(--bwl-widget-bg,#ffffff);
  color:var(--bwl-widget-fg,#204b3d);
}
.bobs-wl-cart-adjacent > .bobs-wl-cart-link--separate .bobs-wl-widget-label {
  position:static;
  display:inline;
  width:auto;
  height:auto;
  margin:0;
  padding:0;
  clip:auto;
  overflow:visible;
  text-decoration:none;
  white-space:nowrap;
  font-size:inherit;
}
.bobs-wl-cart-adjacent > .bobs-wl-cart-link--separate .bobs-wl-count {
  position:absolute;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  top:-6px;
  left:29px;
  right:auto;
  min-width:18px;
  height:18px;
  padding:0 4px;
  box-sizing:border-box;
  font-size:10px;
  line-height:1;
  border-radius:999px;
  z-index:1;
  white-space:nowrap;
  box-shadow:0 1px 4px #10291e35;
}
.bobs-wl-cart-adjacent > .bobs-wl-cart-link--separate:hover {
  background:transparent;
  color:inherit;
  filter:none;
}
.bobs-wl-cart-adjacent > .bobs-wl-cart-link--separate:hover .bobs-wl-widget-icon {
  background:var(--bwl-widget-hover-bg,#f4faee);
  color:var(--bwl-widget-hover-fg,#172e23);
}
.bobs-wl-cart-adjacent > .bobs-wl-cart-link--separate:hover .bobs-wl-widget-label {
  text-decoration:underline;
}
@media(max-width:820px) {
  /* Preserve the established narrow-header 42px circle for every mode. */
  .bobs-wl-cart-adjacent > .bobs-wl-cart-link--separate {
    flex:0 0 42px;
    width:42px;
    min-width:42px;
    max-width:42px;
    height:42px;
    min-height:42px;
    padding:0;
    gap:0;
  }
  .bobs-wl-cart-adjacent > .bobs-wl-cart-link--separate .bobs-wl-widget-label {
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    margin:-1px!important;
    padding:0!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important;
  }
}
