/* REPZ Bundles storefront UI. Theme-native typography with a premium, responsive promo card. */
.repzb-product-slot:empty,.repzb-cart-messages:empty{display:none!important}
.repzb-product-slot{clear:both;display:block;width:100%;max-width:100%;margin:0 0 1.15em;font:inherit;color:inherit;box-sizing:border-box}
.repzb-offer{
  --repzb-accent:var(--minimog-color-primary,var(--e-global-color-primary,#171717));
  --repzb-on-accent:#fff;
  --repzb-ink:currentColor;
  --repzb-radius:20px;
  position:relative;isolation:isolate;overflow:hidden;box-sizing:border-box;display:block;width:100%;max-width:100%;
  padding:clamp(16px,3.2vw,22px);border:1px solid rgba(20,20,20,.10);border-radius:var(--repzb-radius);
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(249,249,249,.98));
  color:inherit;font-family:inherit;text-align:start;line-height:1.35;
  box-shadow:0 12px 32px rgba(15,15,15,.065),0 2px 8px rgba(15,15,15,.035);
  animation:repzbReveal .48s cubic-bezier(.22,.75,.24,1) both;
}
.repzb-offer::before{
  content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--repzb-accent);z-index:1;
}
.repzb-offer::after{
  content:"";position:absolute;z-index:-1;top:-70%;left:-25%;width:44%;height:240%;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);transform:rotate(18deg) translateX(-220%);
  animation:repzbShimmer 7s ease-in-out 1.2s infinite;
}
.repzb-offer-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.repzb-offer-label{display:inline-flex;align-items:center;gap:7px;min-width:0;letter-spacing:.13em;font-size:clamp(9px,2.1vw,10px);font-weight:800;opacity:.62;text-transform:uppercase}
.repzb-offer-spark{display:inline-grid;place-items:center;width:20px;height:20px;flex:0 0 20px;border-radius:50%;background:var(--repzb-accent);color:var(--repzb-on-accent);font-size:10px;line-height:1;box-shadow:0 4px 12px rgba(0,0,0,.12)}
.repzb-offer-shipping{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:6px 9px;border-radius:999px;background:rgba(20,20,20,.065);font-size:clamp(8px,1.8vw,9px);line-height:1.1;font-weight:800;letter-spacing:.075em;white-space:nowrap;text-transform:uppercase}
.repzb-offer-shipping span{font-size:11px}
.repzb-offer-title{display:block;max-width:32ch;margin:0;font-family:inherit;font-size:clamp(16px,3vw,20px);font-weight:750;line-height:1.28;letter-spacing:-.025em;text-transform:none;overflow-wrap:anywhere}
.repzb-offer-tiers{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(7px,1.7vw,10px);margin:16px 0 0;min-width:0}
.repzb-offer-tier{position:relative;min-width:0;min-height:82px;padding:12px 11px 11px;border:1px solid rgba(20,20,20,.10);border-radius:14px;background:rgba(255,255,255,.82);box-shadow:0 4px 14px rgba(0,0,0,.025);overflow:hidden;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background-color .22s ease;animation:repzbTierIn .4s cubic-bezier(.22,.75,.24,1) both}
.repzb-offer-tier:nth-child(1){animation-delay:.08s}.repzb-offer-tier:nth-child(2){animation-delay:.14s}.repzb-offer-tier:nth-child(3){animation-delay:.20s}.repzb-offer-tier:nth-child(4){animation-delay:.26s}
.repzb-offer-tier small,.repzb-offer-tier em,.repzb-offer-tier b{display:block;font-family:inherit;font-style:normal}
.repzb-offer-tier small{padding-right:2px;font-size:clamp(9px,2.2vw,11px);line-height:1.25;font-weight:650;opacity:.62;text-transform:none;overflow-wrap:break-word}
.repzb-offer-tier b{margin-top:4px;font-size:clamp(19px,4vw,25px);line-height:1;font-weight:850;letter-spacing:-.035em;white-space:nowrap}
.repzb-offer-tier em{margin-top:5px;font-size:clamp(7.5px,1.8vw,9px);line-height:1.1;font-weight:750;letter-spacing:.08em;opacity:.52;text-transform:uppercase;white-space:normal}
.repzb-offer-tier.is-max{border-color:var(--repzb-accent);background:var(--repzb-accent);color:var(--repzb-on-accent);box-shadow:0 9px 22px rgba(0,0,0,.13)}
.repzb-offer-tier.is-max small,.repzb-offer-tier.is-max em{opacity:.72}
.repzb-tier-max{position:absolute;top:7px;right:7px;max-width:60%;padding:3px 5px;border-radius:999px;background:rgba(255,255,255,.17);font-size:clamp(6.5px,1.5vw,7.5px);line-height:1;font-weight:850;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.repzb-offer-tier.is-max small{padding-right:42px}

.repzb-cart-messages{font-family:inherit;color:inherit;clear:both;margin:0 0 1.1em;width:100%;max-width:100%}
.repzb-cart-message{font:inherit;font-size:.88em;line-height:1.6;box-sizing:border-box;padding:.9em 1.1em;border:1px solid rgba(127,127,127,.24);border-inline-start:3px solid currentColor;border-radius:10px;margin-bottom:.65em;background:rgba(127,127,127,.04);overflow-wrap:anywhere}
.repzb-message-success{border-inline-start-width:4px}.repzb-message-error{font-weight:600}

@media (hover:hover){
  .repzb-offer-tier:not(.is-max):hover{transform:translateY(-2px);border-color:rgba(20,20,20,.22);box-shadow:0 8px 20px rgba(0,0,0,.06)}
  .repzb-offer-tier.is-max:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.17)}
}
@media(max-width:520px){
  .repzb-product-slot{margin-bottom:14px}
  .repzb-offer{--repzb-radius:17px;padding:14px 13px 13px}
  .repzb-offer::before{width:3px}
  .repzb-offer-topline{gap:7px;margin-bottom:8px}
  .repzb-offer-title{font-size:clamp(15px,4.5vw,18px);line-height:1.3;max-width:30ch}
  .repzb-offer-tiers{gap:6px;margin-top:13px}
  .repzb-offer-tier{min-height:72px;padding:10px 8px 9px;border-radius:11px}
  .repzb-offer-tier small{font-size:clamp(8px,2.65vw,10px)}
  .repzb-offer-tier b{font-size:clamp(18px,5.2vw,22px)}
  .repzb-offer-tier em{font-size:clamp(6.5px,1.9vw,8px);letter-spacing:.045em}
  .repzb-tier-max{top:6px;right:5px;padding:3px 4px;font-size:6.5px}
  .repzb-offer-tier.is-max small{padding-right:33px}
  .repzb-offer-shipping{font-size:8px;padding:5px 7px}
  .repzb-cart-message{font-size:13px}
}
@media(max-width:360px){
  .repzb-offer{padding:13px 11px 12px}
  .repzb-offer-topline{display:block}
  .repzb-offer-shipping{margin-top:7px}
  .repzb-offer-tiers{gap:5px}
  .repzb-offer-tier{padding:9px 6px 8px;min-height:69px}
  .repzb-offer-tier small{font-size:8px;line-height:1.2}
  .repzb-offer-tier b{font-size:18px}
  .repzb-offer-tier em{font-size:6.2px}
}
@media(prefers-reduced-motion:reduce){
  .repzb-offer,.repzb-offer::after,.repzb-offer-tier{animation:none!important;transition:none!important}
}
@keyframes repzbReveal{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes repzbTierIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes repzbShimmer{0%,72%,100%{transform:rotate(18deg) translateX(-220%);opacity:0}78%{opacity:.7}88%{transform:rotate(18deg) translateX(360%);opacity:0}}
