/* LOCAL FORK - ag-store-site/public/portal/ag-wishlist.css */
/* Wishlist - AG Store v7 */

/* ── Title row ── */
.agp-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.agp-title-row #agp-title{flex:1;min-width:0}

/* ── Heart button ── */
.ag-wl-heart-wrap{flex-shrink:0;display:flex;align-items:center;align-self:center;position:relative;z-index:6;pointer-events:auto}
.ag-wl-heart{pointer-events:auto}
.ag-wl-heart{
  position:relative;width:40px;height:40px;margin:0;border:none;border-radius:50%;
  background:transparent;box-shadow:none;cursor:pointer;display:flex;align-items:center;
  justify-content:center;padding:0;-webkit-tap-highlight-color:transparent;
  transition:background .18s,transform .16s;
}
.ag-wl-heart{transition:none}
.ag-wl-heart:hover{background:#f7f7f9}
.ag-wl-heart:active{background:#f0f0f3}
/* Buy-row: keep hover rock-solid (no stroke opacity dance) */
#agp-buy-actions .ag-wl-heart:not(.is-on):hover .ag-wl-h-stroke{stroke:#8a8a92!important;opacity:1!important}
#agp-buy-actions .ag-wl-heart .ag-wl-h-stroke{transition:none!important}
.ag-wl-heart:focus{outline:none}
.ag-wl-heart:focus-visible{outline:2px solid rgba(239,68,68,.4);outline-offset:3px}
.ag-wl-heart:disabled{opacity:.35;cursor:not-allowed;transform:none;background:transparent}

.ag-wl-heart svg.ag-wl-h-svg{width:26px;height:26px;display:block;overflow:visible;filter:drop-shadow(0 1px 2px rgba(0,0,0,.06))}
.ag-wl-heart .ag-wl-h-stroke{stroke:#b0b0b8;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;transition:stroke .22s,opacity .3s}
.ag-wl-heart:hover .ag-wl-h-stroke{stroke:#8a8a92;opacity:1}
/* Red stroke only when favorited - avoids gray↔red flicker */
.ag-wl-heart.is-on:hover .ag-wl-h-stroke{stroke:#ef4444;opacity:0}
.ag-wl-heart .ag-wl-h-fill{fill:#ef4444;clip-path:inset(100% 0 0 0);opacity:0;transition:clip-path .45s cubic-bezier(.33,.9,.4,1),opacity .3s}

.ag-wl-heart.is-on .ag-wl-h-stroke{stroke:#ef4444;opacity:0}
.ag-wl-heart.is-on .ag-wl-h-fill{clip-path:inset(0 0 0 0);opacity:1}

/* Instant filled state for already-favorited products (no fill animation);
   removed on first real user click so the like animation plays on add. */
.ag-wl-heart.ag-wl-noanim .ag-wl-h-fill,
.ag-wl-heart.ag-wl-noanim .ag-wl-h-stroke{transition:none!important;animation:none!important}

.ag-wl-heart.is-on.ag-wl-animate{animation:agWlPop .26s cubic-bezier(.34,1.4,.64,1)}
.ag-wl-heart.is-on.ag-wl-animate .ag-wl-h-fill{animation:agWlUp .26s cubic-bezier(.22,.68,.35,1) forwards}
.ag-wl-heart.ag-wl-animate-off{animation:agWlPopOut .28s cubic-bezier(.34,1.2,.64,1)}
.ag-wl-heart.ag-wl-animate-off .ag-wl-h-fill{animation:agWlDown .28s cubic-bezier(.22,.68,.35,1) forwards}
.ag-wl-heart.ag-wl-animate-off .ag-wl-h-stroke{opacity:1;stroke:#b0b0b8}
/* While the add/remove keyframes run, kill the base clip-path/opacity/stroke
   transitions so they don't double-drive the fill (transition + animation on the
   same property) and cause a visible jerk/snap when the keyframes end. */
.ag-wl-heart.ag-wl-animate .ag-wl-h-fill,
.ag-wl-heart.ag-wl-animate-off .ag-wl-h-fill{transition:none!important}
.ag-wl-heart.ag-wl-animate .ag-wl-h-stroke,
.ag-wl-heart.ag-wl-animate-off .ag-wl-h-stroke{transition:none!important}
@keyframes agWlPop{0%{transform:scale(1)}40%{transform:scale(1.18)}100%{transform:scale(1)}}
@keyframes agWlPopOut{0%{transform:scale(1)}35%{transform:scale(.86)}100%{transform:scale(1)}}
@keyframes agWlUp{0%{clip-path:inset(100% 0 0 0);opacity:.65}100%{clip-path:inset(0 0 0 0);opacity:1}}
@keyframes agWlDown{0%{clip-path:inset(0 0 0 0);opacity:1}100%{clip-path:inset(100% 0 0 0);opacity:0}}

.ag-wl-heart .ag-wl-burst{position:absolute;inset:-6px;pointer-events:none}
.ag-wl-burst circle{fill:#ef4444;opacity:0}
.ag-wl-heart.is-on.ag-wl-animate .ag-wl-burst circle{animation:agWlDot .28s cubic-bezier(.2,.7,.35,1) forwards}
.ag-wl-burst circle:nth-child(2){animation-delay:.04s!important}
.ag-wl-burst circle:nth-child(3){animation-delay:.07s!important}
.ag-wl-burst circle:nth-child(4){animation-delay:.03s!important}
.ag-wl-burst circle:nth-child(5){animation-delay:.06s!important}
.ag-wl-burst circle:nth-child(6){animation-delay:.05s!important}
@keyframes agWlDot{0%{opacity:1;r:1.5}100%{opacity:0;r:0;transform:translate(var(--dx),var(--dy))}}

.ag-wl-heart.is-busy{pointer-events:none}

/* Animated red heart Lottie overlay - plays once on add */
.ag-wl-lottie{position:absolute;top:50%;left:50%;width:40px;height:40px;transform:translate(-50%,-50%);pointer-events:none;opacity:0;transition:opacity .12s ease-out}
.ag-wl-lottie.ag-lottie-playing{opacity:1}
.ag-wl-lottie svg{width:100%!important;height:100%!important;display:block}

/* ── Fly-to-account feedback ── */
.ag-wl-fly{
  position:fixed;left:0;top:0;z-index:2147483646;pointer-events:none;
  width:32px;height:32px;will-change:transform,opacity;
  filter:drop-shadow(0 4px 10px rgba(239,68,68,.35));
}
.ag-wl-fly svg{width:100%;height:100%;display:block}
.ag-wl-fly svg path{fill:#ef4444}

.ag-wl-acc-pop{
  position:fixed;left:0;top:0;z-index:2147483646;pointer-events:none;
  width:36px;height:36px;transform:translate(-50%,-50%) scale(.7);
  opacity:0;transition:opacity .12s ease,transform .16s cubic-bezier(.34,1.4,.64,1);
}
.ag-wl-acc-pop.in{opacity:1;transform:translate(-50%,-50%) scale(1)}
.ag-wl-acc-pop.out{opacity:0;transform:translate(-50%,-50%) scale(.92)}
.ag-wl-acc-pop-lottie{position:absolute;inset:0;width:100%;height:100%}
.ag-wl-acc-pop-lottie svg{width:100%!important;height:100%!important;display:block}
.ag-wl-acc-ring{
  position:absolute;left:50%;top:50%;width:18px;height:18px;border-radius:50%;
  border:2px solid rgba(239,68,68,.5);transform:translate(-50%,-50%) scale(.4);
  opacity:.9;animation:agWlRing .42s cubic-bezier(.2,.7,.3,1) forwards;
}
@keyframes agWlRing{to{transform:translate(-50%,-50%) scale(2.1);opacity:0}}

/* ── Transient number-only favorites badge - same size/font as the CART badge
   (dimensions/font/radius set inline from the cart badge), red, upper-right of
   the person icon. Shown only on add/remove, then fades. ── */
/* v21: circle sized/positioned inline from cart-badge geometry (match cart exactly) */
.ag-wl-acc-badge{
  position:fixed;left:0;top:0;z-index:2147483646;pointer-events:none;display:none;
  align-items:center;justify-content:center;box-sizing:border-box;padding:0;
  background:#ef4444;color:#fff;text-align:center;
  font-family:Inter,system-ui,sans-serif;letter-spacing:-.02em;
  box-shadow:0 0 0 2px #fff;transform-origin:center;
  opacity:0;transform:scale(.5);
  transition:opacity .2s ease,transform .26s cubic-bezier(.34,1.5,.64,1);
}
.ag-wl-acc-badge.show{opacity:1;transform:scale(1)}
@media(prefers-reduced-motion:reduce){.ag-wl-acc-badge{transition:opacity .2s}.ag-wl-acc-badge.show{transform:none}}

/* ── Instant heart: keep the wishlist heart visible during the product page's
   .agp-loading skeleton (which otherwise hides non-excepted .agp-right children,
   and our heart lives in a .agp-title-row wrapper around #agp-title).
   Dummy :not(#..) selectors raise specificity above the hide rule. ── */
#agp.agp-loading .agp-right>.agp-title-row:not(#agwl1):not(#agwl2):not(#agwl3){display:flex!important;opacity:1!important}
#agp.agp-loading .agp-title-row .ag-wl-heart-wrap,
#agp.agp-loading .agp-title-row .ag-wl-heart{opacity:1!important;visibility:visible!important;display:flex!important}

/* ── FAB hidden ── */
#ag-wl-fab.ag-wl-fab{display:none!important}

/* ── Badge ── */
.ag-wl-dd-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:20px;height:20px;padding:0 6px;border-radius:999px;
  background:#ef4444;color:#fff;font:700 11px/20px Inter,system-ui,sans-serif;
  margin-left:auto;box-sizing:border-box;letter-spacing:-.01em;
  box-shadow:0 1px 4px rgba(239,68,68,.25);
}
.ag-wl-dd-badge:empty,.ag-wl-dd-badge[data-count="0"]{display:none}

/* ── Panel (drawer) - same visual language as compare ── */
.ag-wl-ov{
  /* Full viewport including header */
  position:fixed;inset:0;
  background:rgba(15,23,42,.55);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  z-index:2147483646;opacity:0;visibility:hidden;
  transition:opacity .22s,visibility .22s;
}
.ag-wl-ov.on{opacity:1;visibility:visible}
.ag-wl-panel{
  /*
   * absolute (not fixed): backdrop-filter on .ag-wl-ov creates a containing
   * block for fixed descendants.
   */
  position:absolute;top:0;right:0;bottom:0;width:100%;max-width:440px;
  height:auto;
  background:#fff;z-index:1;transform:translateX(100%);
  transition:transform .32s cubic-bezier(.32,.72,0,1);
  display:flex;flex-direction:column;
  box-shadow:-24px 0 56px -12px rgba(0,0,0,.28),0 0 0 1px rgba(0,0,0,.04);
  font-family:var(--font-golos),"Golos Text",Inter,system-ui,-apple-system,sans-serif;
}
/* Drawer sits above the site header */
html[data-ag-wl-open] header{
  z-index:1 !important;
}
html[data-ag-wl-open] #ag-asst-fab,
html[data-ag-wl-open] .ag-asst-fab,
html[data-ag-wl-open] #ag-asst-nudge,
html[data-ag-wl-open] .ag-asst-nudge,
html[data-ag-wl-open] #ag-sticky-buy,
html[data-ag-wl-open] .ag-sticky-buy{
  display:none !important;
}
.ag-wl-ov.on .ag-wl-panel{transform:translateX(0)}
@media(max-width:520px){.ag-wl-panel{max-width:100%}}

.ag-wl-ph{
  flex-shrink:0;padding:20px 22px 16px;background:#fff;
  border-bottom:1px solid #f1f5f9;display:flex;align-items:flex-start;
  justify-content:space-between;gap:12px;
}
.ag-wl-ph-text{min-width:0;flex:1}
.ag-wl-ph-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ag-wl-pt{margin:0;font:800 21px/1.2 inherit;color:#0f172a;letter-spacing:-.02em}
.ag-wl-ps{margin:4px 0 0;font:500 13px/1.4 inherit;color:#64748b}
.ag-wl-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:26px;padding:0 10px;border-radius:999px;
  background:#e8f8fd;color:#0b4a63;font:700 12px/1 inherit;letter-spacing:-.01em;
}
/* Empty count must not paint a lone blue pill next to the title. */
.ag-wl-count[hidden],.ag-wl-count:empty{display:none!important}
.ag-wl-x{
  width:36px;height:36px;border:none;border-radius:50%;background:#f1f5f9;
  cursor:pointer;font-size:0;color:#475569;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;
}
.ag-wl-x:hover{background:#e2e8f0;color:#0f172a}
.ag-wl-x svg{width:14px;height:14px}

/* Card list */
.ag-wl-scroll{
  flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;
  padding:16px 16px calc(36px + env(safe-area-inset-bottom,0px));
  background:#fff;
}
.ag-wl-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
  padding:64px 28px;text-align:center;color:#64748b;font:500 14px/1.55 inherit;
  min-height:min(420px,70%);
}
.ag-wl-empty-ic{
  width:72px;height:72px;border-radius:22px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,#fef2f2,#fff5f5);border:1.5px solid rgba(239,68,68,.22);
  margin-bottom:6px;
}
.ag-wl-empty-ic svg{display:block}
.ag-wl-empty h3{margin:0;font:700 20px/1.25 inherit;color:#0f172a;letter-spacing:-.3px}
.ag-wl-empty p{margin:0;max-width:300px;color:#64748b}
.ag-wl-empty-cta{
  margin-top:10px;display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;padding:0 22px;border-radius:999px;text-decoration:none;
  background:#313131;color:#fafafa;font:600 14px/1 inherit;
  transition:background .15s,transform .12s;
}
.ag-wl-empty-cta:hover{background:#151515}
.ag-wl-empty-cta:active{transform:scale(.98)}

.ag-wl-loading{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;padding:56px 20px 48px;text-align:center;min-height:220px;
}
.ag-wl-loading p{margin:0;font:500 14px/1.4 inherit;color:#64748b}
.ag-wl-spinner{
  width:28px;height:28px;border-radius:50%;
  border:2.5px solid #e8e8ea;border-top-color:#313131;
  animation:agWlSpin .7s linear infinite;
}
@keyframes agWlSpin{to{transform:rotate(360deg)}}

.ag-wl-card{
  position:relative;display:flex;gap:14px;padding:14px 14px 14px 14px;
  border:1px solid #f1f5f9;border-radius:18px;margin-bottom:12px;
  background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.03);
  transition:opacity .22s,transform .22s,box-shadow .2s,border-color .18s;
}
.ag-wl-card.is-clickable{cursor:pointer}
.ag-wl-card:hover{
  border-color:#d9f3fb;box-shadow:0 8px 28px -10px rgba(1,113,227,.18),0 1px 2px rgba(15,23,42,.04);
}
.ag-wl-card.is-clickable:hover .ag-wl-card-name{color:#0171e3}
.ag-wl-card.is-oos{opacity:.92}
.ag-wl-card.removing{opacity:0;transform:translateX(48px)}
.ag-wl-card-media{
  position:relative;flex-shrink:0;width:88px;height:88px;border-radius:16px;
  background:#f8fafc;border:1px solid #f1f5f9;overflow:hidden;
  display:flex;align-items:center;justify-content:center;pointer-events:none;
}
.ag-wl-stock{
  position:absolute;left:6px;bottom:6px;z-index:2;
  display:inline-flex;align-items:center;min-height:18px;padding:0 7px;border-radius:999px;
  font:700 9.5px/1 inherit;letter-spacing:.01em;
  box-shadow:0 1px 0 rgba(255,255,255,.7);
}
.ag-wl-stock.is-in{background:#dcfce7;color:#166534}
.ag-wl-stock.is-oos{background:#fee2e2;color:#991b1b}
.ag-wl-stock-hint{font:500 11.5px/1.35 inherit;color:#b45309;margin-top:-1px}
.ag-wl-card-img{width:100%;height:100%;object-fit:contain;padding:6px;box-sizing:border-box;display:block}
.ag-wl-card-img--ph{background:linear-gradient(145deg,#f1f5f9,#e8f8fd)}
.ag-wl-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;padding-right:22px}
.ag-wl-card-name{
  font:700 14.5px/1.3 inherit;color:#0f172a;letter-spacing:-.02em;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  transition:color .15s;
}
.ag-wl-chips{display:flex;flex-wrap:wrap;gap:5px;margin:1px 0 2px}
.ag-wl-chip{
  display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;
  background:#f1f5f9;color:#334155;font:600 11px/1.2 inherit;letter-spacing:-.01em;
}
.ag-wl-chip--mute{color:#64748b;font-weight:500;background:#f8fafc;border:1px solid #eef2f7}
.ag-wl-meta{font:500 11.5px/1.4 inherit;color:#94a3b8}
.ag-wl-prices{display:flex;gap:8px;align-items:center;margin-top:2px;flex-wrap:wrap}
.ag-wl-price-now{font:800 17px/1 inherit;color:#0b1220;letter-spacing:-.02em}
.ag-wl-price-was{font:500 12px/1 inherit;color:#94a3b8;text-decoration:line-through}
.ag-wl-prices .ag-wl-mail-btn{margin-left:auto}
.ag-wl-drop{
  position:absolute;top:10px;left:10px;z-index:2;
  display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:999px;
  background:#dcfce7;color:#166534;font:700 10.5px/1 inherit;letter-spacing:.01em;
  box-shadow:0 1px 0 rgba(255,255,255,.7);
}

.ag-wl-card-actions{display:none}

/* Email notify toggle — icon only, beside price */
.ag-wl-mail-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:32px;height:32px;padding:0;flex-shrink:0;
  border-radius:50%;border:1.5px solid #e2e8f0;background:#fff;cursor:pointer;
  color:#64748b;
  transition:border-color .15s,background .15s,color .15s,transform .12s;
}
.ag-wl-mail-btn svg{width:15px;height:15px;flex-shrink:0;display:block}
.ag-wl-mail-btn:hover{border-color:#8ae6fe;background:#f7fcfe;color:#0171e3}
.ag-wl-mail-btn.is-on{background:#e8f8fd;border-color:#8ae6fe;color:#0171e3}
.ag-wl-mail-btn.is-on svg{color:#0171e3}
.ag-wl-mail-btn:active{transform:scale(.94)}

/* Remove - icon corner */
.ag-wl-remove{
  position:absolute;top:10px;right:10px;z-index:2;
  width:28px;height:28px;border:1px solid #eef2f7;border-radius:50%;
  background:#fff;color:#94a3b8;cursor:pointer;padding:0;
  display:flex;align-items:center;justify-content:center;
  transition:color .15s,background .15s,border-color .15s,transform .12s;
}
.ag-wl-remove:hover{color:#ef4444;background:#fef2f2;border-color:#fecaca}
.ag-wl-remove:active{transform:scale(.94)}

/* ── Auth-gate toast ── */
.ag-wl-auth-toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);
  z-index:2147483644;opacity:0;visibility:hidden;
  transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1),visibility .3s;
  pointer-events:none;width:94%;max-width:380px;
}
.ag-wl-auth-toast.on{
  opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);pointer-events:auto;
}
.ag-wl-at-inner{
  background:#fff;border-radius:18px;
  box-shadow:0 8px 40px rgba(0,0,0,.12),0 1px 3px rgba(0,0,0,.06);
  padding:22px 22px 20px;text-align:center;position:relative;
}
.ag-wl-at-close{
  position:absolute;top:10px;right:10px;width:30px;height:30px;border:none;
  border-radius:50%;background:#f1f5f9;cursor:pointer;font:400 20px/30px sans-serif;
  color:#64748b;display:flex;align-items:center;justify-content:center;
  transition:background .15s,color .15s;
}
.ag-wl-at-close:hover{background:#e2e8f0;color:#0f172a}
.ag-wl-at-icon{margin:0 auto 12px;width:50px;height:50px;border-radius:50%;background:#fef2f2;display:flex;align-items:center;justify-content:center}
.ag-wl-at-title{margin:0 0 6px;font:700 16px/1.3 Inter,system-ui,sans-serif;color:#0f172a}
.ag-wl-at-text{margin:0 0 16px;font:400 13px/1.55 Inter,system-ui,sans-serif;color:#64748b}
.ag-wl-at-btns{display:flex;gap:8px;justify-content:center}
.ag-wl-at-btn{
  flex:1;padding:10px 0;border:none;border-radius:10px;cursor:pointer;
  font:600 13.5px/1 Inter,system-ui,sans-serif;
  transition:filter .15s,transform .1s;
  text-decoration:none;text-align:center;display:flex;align-items:center;justify-content:center;
  -webkit-tap-highlight-color:transparent;
}
.ag-wl-at-btn:active{transform:scale(.97)}
.ag-wl-at-login{background:#0071e3;color:#fff}
.ag-wl-at-login:hover{filter:brightness(1.08)}
.ag-wl-at-reg{background:#f1f5f9;color:#0f172a}
.ag-wl-at-reg:hover{background:#e2e8f0}
