/* Product-card CTA only. Existing cards, imagery, typography and prices remain untouched. */
.bh-atc, .woocommerce .products .product .bh-atc {
  --bh-atc-green: #16856f;
  --bh-atc-hover: #126b5c;
  --bh-atc-pressed: #0f5d51;
  --bh-atc-success: #e87532;
  --bh-atc-bg: var(--bh-atc-green);
  box-sizing: border-box;
  scale: 1 !important;
  /* A cart-state transition must not reset a 1px hover/press lift. */
  transform: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 96px;
  min-width: 96px;
  height: 44px;
  min-height: 44px;
  padding: 0 8px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 22px;
  background: var(--bh-atc-bg) !important;
  color: #fff !important;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  touch-action: manipulation;
  box-shadow: 0 2px 5px rgba(21,63,54,.13), inset 0 1px rgba(255,255,255,.1);
  transition: background-color .16s ease, box-shadow .16s ease, transform .12s ease;
  -webkit-tap-highlight-color: transparent;
}
.bh-atc > .bh-atc-icon {display:inline-flex;flex:0 0 16px;width:16px;height:16px;}
.bh-atc svg {width:16px;height:16px;flex:none;}
.bh-atc .bh-atc-plus {stroke:currentColor;}
.bh-atc > .bh-atc-label {display:block;min-width:0;}
.bh-atc:focus-visible {outline:3px solid var(--bh-atc-pressed);outline-offset:3px;box-shadow:0 0 0 2px #fff;}
@media (hover:hover) {
  .bh-atc:hover:not(:disabled):not([aria-disabled="true"]) {--bh-atc-bg:var(--bh-atc-hover);box-shadow:0 4px 9px rgba(21,63,54,.18);transform:translateY(-1px);}
}
.bh-atc:active:not(:disabled):not([aria-disabled="true"]) {--bh-atc-bg:var(--bh-atc-pressed);transform:translateY(1px);box-shadow:0 1px 2px rgba(21,63,54,.12);}
.bh-atc:disabled,.bh-atc[aria-disabled="true"] {cursor:not-allowed;}
/* membership-v2: one visual contract; geometry belongs to the existing card.
   Loading/success have no label node. ARIA labels remain on the control. */
.bh-atc[data-bh-atc-state="loading"] {cursor:wait;opacity:1!important;}
.bh-atc[data-bh-atc-state="success"] {
  --bh-atc-bg:#e87532!important;
  background-color:#e87532!important;
  background-image:none!important;
  color:#fff!important;
  opacity:1!important;
}
.bh-atc[data-bh-atc-state="loading"],.bh-atc[data-bh-atc-state="success"] {transform:none!important;gap:0;}
.bh-atc[data-bh-atc-state="loading"] > .bh-atc-icon,
.bh-atc[data-bh-atc-state="success"] > .bh-atc-icon,
.bh-atc[data-bh-atc-state="loading"] > .bh-atc-icon svg,
.bh-atc[data-bh-atc-state="success"] > .bh-atc-icon svg {width:18px;height:18px;flex:0 0 18px;}
/* Compatibility for a cached prior renderer during sequential deployment. */
.bh-atc[data-bh-atc-state="loading"] > .bh-atc-label,
.bh-atc[data-bh-atc-state="success"] > .bh-atc-label {display:none!important;}
.bh-atc[data-bh-atc-state="unavailable"],.bh-atc[data-bh-atc-state="limit"] {background:#e4ebe7 !important;color:#44564e !important;border-color:#ccd8d0;box-shadow:none;}
.bh-atc[data-bh-atc-state="error"],.bh-atc[data-bh-atc-state="unconfirmed"] {border-color:#ce9159;}
.bh-atc-spin {animation:bh-atc-turn .8s linear infinite;}
@keyframes bh-atc-turn {to{transform:rotate(360deg)}}
.bh-atc-status {position:fixed;left:50%;bottom:92px;transform:translateX(-50%);z-index:2147482000;max-width:min(90vw,430px);padding:12px 16px;border:1px solid #c9d8d1;border-radius:12px;background:#fffdf8;color:#213e35;font-size:13px;line-height:1.45;box-shadow:0 5px 20px rgba(20,40,32,.14);pointer-events:none;}
.bh-atc-status:empty {display:none;}
@media (min-width:768px){.bh-atc-status{bottom:28px;}}
@media (prefers-reduced-motion:reduce){.bh-atc{transition:none}.bh-atc:hover,.bh-atc:active{transform:none!important}.bh-atc-spin{animation:none}}

[data-bh-atc-managed] > .bh-atc-icon {display:inline-flex;width:16px;height:16px;flex:none;}
[data-bh-atc-managed] > .bh-atc-icon svg {width:16px;height:16px;}

/* Narrow curated-basket rows keep their original36px layout slot. A44px
   icon control is used here so the existing product title is not truncated further. */
.bh-atc[data-bh-add]:not([data-bh-atc-positioned]) {width:44px;min-width:44px;flex:0 0 44px;margin-inline-start:-8px;}
.bh-atc[data-bh-add]:not([data-bh-atc-positioned]) > .bh-atc-label {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);}

.bh-atc[data-bh-atc-state="unavailable"]:not([data-bh-atc-compact="icon"]) > .bh-atc-icon {display:none;}
.bh-atc[data-bh-atc-state="unavailable"]:not([data-bh-atc-compact="icon"]) > .bh-atc-label {font-size:11px;}

.bh-atc.hidden, .bh-atc[hidden] {display:none !important;}

/* Footer layout is scoped to managed product cards. Images and wishlist nodes are not moved. */
.bh-atc-card-mobile,.bh-atc-card-native {display:flex;flex-direction:column;}
.bh-atc-card-desktop > .bh-atc-card-frame {height:100%;display:flex;flex-direction:column;}
.bh-atc-card .bh-atc-card-media {flex:none;}
.bh-atc-card .bh-atc-info-shell {flex:1;align-items:stretch;}
.bh-atc-card .bh-atc-card-info {display:flex;flex-direction:column;flex:1;min-width:0;}
.bh-atc-card .bh-atc-footer {display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:6px;min-width:0;}
.bh-atc-card .bh-atc-prices {display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 4px;min-width:0;margin:0!important;line-height:1.25;}
.bh-atc-card .bh-atc-prices > * {flex-shrink:0;}
.bh-atc-card .bh-atc-price-link {display:block;flex:1;min-width:0;width:auto;margin:0!important;padding:0;text-align:start;}
.bh-atc-card .bh-atc-footer > .bh-atc-prices {flex:1;}
.bh-atc[data-bh-atc-footer] {position:static!important;inset:auto!important;flex:0 0 96px;margin:0!important;}
.bh-atc-card-mobile .bh-atc[data-bh-atc-footer] {width:88px;min-width:88px;flex-basis:88px;padding-inline:6px;gap:4px;font-size:11px;}
.bh-atc-card-mobile .bh-atc[data-bh-atc-footer] .bh-atc-icon,
.bh-atc-card-mobile .bh-atc[data-bh-atc-footer] svg {width:14px;height:14px;flex-basis:14px;}

.bh-atc-card-row {align-items:flex-start;}
/* Native Woo price strings include decimals. Below the safe combined width,
   use a consistent second footer line rather than squeezing monetary values. */
.bh-atc-card-native .bh-atc-footer {flex-wrap:wrap;}
.bh-atc-card-native .bh-atc-price-link {flex-basis:70px;}
.bh-atc-card-native .bh-atc-footer > .bh-atc {margin-inline-start:auto!important;}
/* Cache-transition compatibility only. Current JS marks every card footer.
   A previously cached module retains its prior, working placement until refresh. */
.bh-atc[data-bh-add][data-bh-atc-positioned="true"]:not([data-bh-atc-footer]) {position:absolute;right:12px;bottom:12px;z-index:2;}
.bh-atc[data-bh-card-add]:not([data-bh-atc-footer]) {position:absolute;right:8px;bottom:8px;z-index:2;}
.bh-atc-layout-slot {display:block;width:40px;height:40px;flex:0 0 40px;}

/* Refined mobile pill:36px visible height within the existing44px action bounds.
   Single selling price retained as explicitly reconfirmed; desktop unchanged. */
@media (max-width:767px) {
  .bh-atc-card-mobile,.bh-atc-card-native {
    container-name:bh-mobile-card;
    container-type:inline-size;
  }
  .bh-atc-card .bh-atc-footer {
    --bh-mobile-action-width:74px;
    --bh-mobile-action-padding:10px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:6px 8px;
    min-width:0;
  }
  .bh-atc-card .bh-atc-footer > .bh-atc-price-link,
  .bh-atc-card .bh-atc-footer > .bh-atc-prices {
    flex:1 1 min-content;
    min-width:min-content;
  }
  .bh-atc-card-mobile .bh-atc-prices > span:not(:first-child),
  .bh-atc-card-native .bh-atc-prices del,
  .bh-atc-card-native .bh-atc-prices del + .screen-reader-text {
    display:none!important;
  }
  /* Related-loop sale badges are in normal flow: retain their layout slot. */
  .bh-atc-card-native .onsale {visibility:hidden!important;}
  /* Native related loops lack Woo's screen-reader utility stylesheet.
     Keep the current-price announcement accessible, never show it as a second price. */
  .bh-atc-card-native .bh-atc-prices > .screen-reader-text {
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    overflow:hidden!important;
    clip-path:inset(50%)!important;
    white-space:nowrap!important;
  }
  .bh-atc-card-mobile .bh-atc-prices > span:first-child,
  .bh-atc-card-native .bh-atc-prices .amount {
    font-size:15px;
    line-height:1.25;
    font-weight:800;
    font-variant-numeric:tabular-nums;
    color:#203b33;
    white-space:nowrap;
  }
  .bh-atc-card-native .bh-atc-prices .amount {font-size:14px;}
  .bh-atc-card-native .bh-atc-prices ins {
    text-decoration:none;
    background:transparent;
  }
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer] {
    position:relative!important;
    width:var(--bh-mobile-action-width);
    min-width:var(--bh-mobile-action-width);
    flex:0 0 var(--bh-mobile-action-width);
    height:44px;
    min-height:44px;
    padding:7px var(--bh-mobile-action-padding)!important;
    gap:4px;
    border:solid transparent!important;
    border-width:4px 1px!important;
    background-clip:padding-box!important;
    border-radius:999px!important;
    font-size:12px!important;
    font-weight:600!important;
    box-shadow:none!important;
    transform:none!important;
  }
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer] > .bh-atc-label {
    position:static;
    width:auto;
    height:auto;
    min-width:0;
    clip-path:none;
    overflow:visible;
    white-space:normal;
    overflow-wrap:anywhere;
    text-align:center;
    line-height:1.15;
  }
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer][data-bh-atc-state="add"] > .bh-atc-label {
    white-space:nowrap;
    overflow-wrap:normal;
  }
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer] > .bh-atc-icon,
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer] .bh-atc-icon svg {
    width:12px;
    height:12px;
    flex:0 0 12px;
  }
  /* Match the footer's existing specificity without changing its footprint. */
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer][data-bh-atc-state="success"],
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer][data-bh-atc-state="loading"] {gap:0;}
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer][data-bh-atc-state="success"] > .bh-atc-icon,
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer][data-bh-atc-state="loading"] > .bh-atc-icon,
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer][data-bh-atc-state="success"] .bh-atc-icon svg,
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer][data-bh-atc-state="loading"] .bh-atc-icon svg {width:18px;height:18px;flex:0 0 18px;}
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer]:focus-visible {
    box-shadow:0 0 0 2px #fff;
  }
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer][data-bh-atc-state="unavailable"],
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer][data-bh-atc-state="limit"] {
    box-shadow:none;
    background:#e4ebe7!important;
    color:#44564e!important;
    border-color:transparent!important;
  }
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer][data-bh-atc-state="error"],
  .bh-atc-card .bh-atc-footer .bh-atc[data-bh-atc-footer][data-bh-atc-state="unconfirmed"] {
    border-color:transparent!important;
    box-shadow:inset 0 0 0 1px #ce9159!important;
  }
  /* The existing Odia Add label is45px: retain it on one line, at12px. */
  :root:lang(or) .bh-atc-card .bh-atc-footer {
    --bh-mobile-action-width:76px;
    --bh-mobile-action-padding:6px;
  }
  @supports (container-type:inline-size) {
    @container bh-mobile-card (min-width:164px) {
      .bh-atc-card-native .bh-atc-prices .amount {font-size:15px;}
    }
  }
}

/* One mobile product-card surface. Reuses the existing wrapper and actions;
   desktop, product data and the confirmed single-price choice stay untouched. */
@media (max-width:767px) {
  .bh-atc-card-mobile,
  .bh-atc-card-native {
    box-sizing:border-box;
    min-width:0;
    align-self:stretch;
    background:#fffefa;
    border:1px solid #e0e7e1;
    border-radius:16px;
    box-shadow:0 1px 3px rgba(30,60,46,.035);
    overflow:visible;
  }
  .bh-atc-card-mobile > .bh-atc-card-media {
    border-radius:15px 15px 0 0;
    background:transparent;
  }
  .bh-atc-card-mobile > .bh-atc-card-media img {
    object-fit:contain;
  }
  .bh-atc-card-mobile > [data-bh-card-tap-btn]:not(.bh-atc-price-link) {
    box-sizing:border-box;
    flex:0 0 auto;
    min-width:0;
    margin:0;
    padding:8px 6px 0;
  }
  .bh-atc-card-mobile > [data-bh-card-tap-btn]:not(.bh-atc-price-link) > p:first-child,
  .bh-atc-card-native .woocommerce-loop-product__title {
    box-sizing:content-box;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    min-width:0;
    height:34px;
    min-height:34px;
    max-height:34px;
    margin:0;
    overflow:hidden;
    white-space:normal;
    overflow-wrap:anywhere;
    font-size:13px;
    font-weight:650;
    line-height:17px;
    color:#293b33;
  }
  .bh-atc-card-native > .woocommerce-loop-product__link {
    display:flex;
    flex-direction:column;
    gap:0!important;
    flex:1;
    min-width:0;
    margin:0!important;
    padding:0!important;
  }
  .bh-atc-card-native .onsale {display:none!important;}
  .bh-atc-card-native > .woocommerce-loop-product__link > img {
    display:block;
    box-sizing:border-box;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    aspect-ratio:3/4!important;
    object-fit:contain!important;
    margin:0!important;
    padding:0!important;
    border-radius:15px 15px 0 0!important;
    background:transparent!important;
  }
  .bh-atc-card-native .woocommerce-loop-product__title {
    padding:8px 6px 0!important;
    height:34px!important;
    min-height:34px!important;
    max-height:34px!important;
    font-size:13px!important;
    font-weight:650!important;
    line-height:17px!important;
    margin:0!important;
  }
  .bh-atc-card-mobile > .bh-atc-footer,
  .bh-atc-card-native > .bh-atc-footer {
    box-sizing:border-box;
    gap:4px 6px;
    padding:4px 6px 8px;
    margin-top:auto;
  }
  .bh-atc-card-mobile > .bh-atc-footer > .bh-atc,
  .bh-atc-card-native > .bh-atc-footer > .bh-atc {
    margin-inline-start:auto!important;
  }
  /* Preserve the pill and readable native decimals inside narrow bordered cards. */
  .bh-atc-card-native .bh-atc-prices .amount {font-size:13px;}
  @supports (container-type:inline-size) {
    @container bh-mobile-card (min-width:164px) {
      .bh-atc-card-native .bh-atc-prices .amount {font-size:15px;}
    }
  }
}
