.ticker{
  width:100%;
  overflow:hidden;
  background:#111;
  color:#fff;
  position:relative;
  z-index:1100;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.ticker-inner{display:block}

.ticker-track{
  display:flex;
  width:max-content;
  animation:ticker-move 30s linear infinite;
}

.ticker-seq{
  display:flex;
  gap:2rem;
  padding:.5rem 1.25rem;
  align-items:center;
  white-space:nowrap;
  font-weight:700;
  letter-spacing:.2px;
}

.ticker-item i{margin-right:.4rem}
.ticker-sep::before{content:"•"; color:rgba(255,255,255,.35); font-weight:900}
.ticker:hover .ticker-track{animation-play-state:paused}

@keyframes ticker-move{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}

.cart-fab{
  position:fixed !important;
  right:16px;
  bottom:16px;
  z-index:1200;
  width:56px;
  height:56px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#111 !important;
  color:#fff;
  box-shadow:0 12px 24px rgba(0,0,0,.25);
  border:none;
}

.cart-fab.hidden{display:none !important}

.cart-count{
  position:absolute;
  right:-4px;
  top:-4px;
  background:#dc3545;
  color:#fff;
  border-radius:999px;
  font-size:.75rem;
  padding:.25rem .45rem;
  line-height:1;
  min-width:22px;
  text-align:center;
}

.cart-drawer{
  position:fixed !important;
  right:0;
  top:0;
  bottom:0;
  width:min(640px,100%);
  background:#fff;
  transform:translateX(100%);
  transition:transform .28s ease;
  z-index:1250;
  box-shadow:-24px 0 48px rgba(0,0,0,.25);
  display:flex;
  flex-direction:column;
}

.cart-drawer.show{transform:translateX(0)}

.cart-overlay{
  position:fixed !important;
  inset:0;
  background:rgba(0,0,0,.45);
  z-index:1240;
  display:none;
}

.cart-overlay.show{display:block}

.cart-head{
  padding:1rem 1.25rem;
  border-bottom:1px solid #eee;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.cart-body{
  padding:1rem 1.25rem;
  overflow:auto;
  flex:1 1 auto;
}

.cart-foot{
  padding:1rem 1.25rem;
  border-top:1px solid #eee;
  background:#fff;
}

.cart-item{
  display:grid;
  grid-template-columns:64px 1fr auto;
  gap:.75rem;
  align-items:center;
  padding:.75rem 0;
  border-bottom:1px solid #f1f1f1;
}

.cart-empty{
  text-align:center;
  color:#6c757d;
  padding:2rem 0;
}

@media (max-width: 767.98px){
  .ticker-seq{padding:.45rem 1rem; gap:1.25rem; font-size:.95rem}
}

@media (prefers-reduced-motion: reduce){
  .ticker-track{animation:none}
}
