:root{ --wd-max: 420px; --wd-cta:#2882F4; --wd-star:#FFC531; }
.wrap{max-width:var(--wd-max);margin:0 auto;}
.btn{ height:60px; border-radius:16px; font-weight:800; }
.btn-primary{ background:var(--wd-cta); color:#fff; box-shadow:0 10px 20px rgba(40,130,244,.25); }
.btn-primary:active{ filter:brightness(.94); }
.sticky-glass{ backdrop-filter: blur(6px); background: rgba(255,255,255,.5); box-shadow: inset 0 1px 0 rgba(255,255,255,.35); }
.strip-card{ border-radius:20px; border:1px solid #e5e7eb; background:#fff; padding:12px; }

/* Overlay */
.k-card{ background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); box-shadow: 0 12px 32px #0000001a; }
.fade-in{ animation:fade .35s ease forwards; }
@keyframes fade{ from{opacity:0; transform:translateY(4px)} to{opacity:1; transform:translateY(0)} }

/* Dots */
.dots::after{ content:""; display:inline-block; width:1ch; text-align:left; animation:ell 1.4s steps(4,end) infinite; }
@keyframes ell{ 0%{content:""} 25%{content:"."} 50%{content:".."} 75%{content:"..."} 100%{content:""} }

/* Loader crossfade */
.loader-text-wrap{ min-height:3.2em; line-height:1.4; position:relative; width:100%; }
.loader-text{ position:absolute; inset:0; opacity:0; transform:translateY(4px); transition:opacity .35s ease, transform .35s ease; white-space:normal; }
.loader-text.show{ opacity:1; transform:translateY(0); }

/* MSRP strike */
.strike-target{ position:relative; display:inline-block; }
.strike-target::after{
  content:""; position:absolute; left:0; right:0; top:50%; height:2px; transform:translateY(-50%) scaleX(0);
  transform-origin:left center; transition:transform .45s ease;
  background:linear-gradient(90deg,transparent 0, rgba(255,255,255,.85) 12%, rgba(255,255,255,.85) 88%, transparent 100%);
  border-radius:2px;
}
.strike-target.strike-on::after{ transform:translateY(-50%) scaleX(1); }

/* Sticky reveal */
#shippingBar{ transition: transform .35s ease, opacity .35s ease; }
.hidden-bar{ transform: translateY(100%); opacity:0; pointer-events:none; }
.visible-bar{ transform: translateY(0); opacity:1; pointer-events:auto; }

/* Price pill */
.price-pill{
  display:inline-block; padding:.55rem 1.2rem; border-radius:9999px; background:rgba(0,0,0,.38);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 2px 6px rgba(0,0,0,.25), 0 8px 24px rgba(0,0,0,.18);
}

/* Guide micro-utilities */
.guide-eyebrow{ letter-spacing:.2em; text-transform:uppercase; }
