/* Home promo carousel — unified frame */
.fx-promo-viewport{
  position:relative;
  overflow:hidden;
  border-radius:1rem;
  touch-action:pan-y;
  cursor:grab;
  user-select:none;
  -webkit-user-select:none;
}
.fx-promo-viewport:active{cursor:grabbing}
.fx-promo-track{
  display:flex;
  width:100%;
  will-change:transform;
  transition:transform .55s cubic-bezier(.22,1,.36,1);
}
.fx-promo-track--drag{transition:none}
.fx-promo-slide{
  flex:0 0 100%;
  width:100%;
  min-width:100%;
}
.fx-promo-banner{
  position:relative;
  isolation:isolate;
  width:100%;
  aspect-ratio:1200 / 560;
  height:auto;
  min-height:0;
  box-shadow:
    0 0 0 1px rgba(250,204,21,.2),
    0 18px 50px rgba(0,0,0,.55),
    0 0 70px rgba(250,204,21,.12);
}
.fx-promo-banner__img,
.fx-promo-banner__img--fallback{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  transform-origin:center;
  transition:transform .5s cubic-bezier(.22,1,.36,1);
  pointer-events:none;
}
.fx-promo-banner__img--fallback{
  background:
    radial-gradient(circle at 75% 40%, rgba(250,204,21,.28), transparent 55%),
    linear-gradient(135deg, #18181b, #09090b 55%, #1c1917);
}
.group:hover .fx-promo-banner__img{transform:scale(1.03)}
.fx-promo-banner__shade{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.94) 0%, rgba(0,0,0,.78) 38%, rgba(0,0,0,.35) 68%, rgba(0,0,0,.12) 100%),
    linear-gradient(180deg, rgba(0,0,0,.22) 0%, transparent 42%, rgba(0,0,0,.28) 100%);
  pointer-events:none;
}
.fx-promo-banner__glow{
  position:absolute;right:-2rem;top:50%;transform:translateY(-50%);
  width:18rem;height:18rem;border-radius:9999px;
  background:rgba(250,204,21,.18);filter:blur(48px);
  pointer-events:none;
}
.fx-promo-banner__content{
  position:absolute;inset:0;
  display:flex;flex-direction:column;justify-content:flex-start;
  padding:1.85rem 4rem 1.5rem 2rem;
  max-width:36rem;
  z-index:1;
  box-sizing:border-box;
}
@media (min-width:768px){
  .fx-promo-banner__content{padding:2.25rem 4.5rem 2rem 2.5rem;max-width:42rem}
}
.fx-promo-banner__badge{
  display:inline-flex;width:fit-content;
  border-radius:9999px;
  background:#facc15;color:#000;
  font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:.45rem .95rem;margin:0 0 1rem;
  box-shadow:0 6px 18px rgba(250,204,21,.4);
}
.fx-promo-banner__title{
  color:#fff;font-weight:700;line-height:1.15;
  font-size:1.25rem;
  text-shadow:0 2px 14px rgba(0,0,0,.65);
}
@media (min-width:768px){
  .fx-promo-banner__title{font-size:1.75rem}
}
.fx-promo-banner__text{
  margin-top:.65rem;
  color:rgba(244,244,245,.95);
  font-size:.875rem;line-height:1.45;
  max-width:26rem;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
@media (min-width:768px){
  .fx-promo-banner__text{font-size:1rem}
}
.fx-promo-banner__cta{
  margin-top:auto;
  display:inline-flex;width:fit-content;align-items:center;
  border-radius:.75rem;
  background:#facc15;color:#000;
  font-size:.875rem;font-weight:600;
  padding:.7rem 1.1rem;
  box-shadow:0 10px 28px rgba(250,204,21,.4);
  transition:background .2s ease;
}
.group:hover .fx-promo-banner__cta{background:#fde047}
.fx-promo-close{
  width:2rem;height:2rem;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:.65rem;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(9,9,11,.72);
  color:#e4e4e7;font-size:.85rem;line-height:1;
  backdrop-filter:blur(8px);
  transition:background .2s ease, border-color .2s ease, color .2s ease;
}
.fx-promo-close:hover{
  background:rgba(24,24,27,.92);
  border-color:rgba(250,204,21,.45);
  color:#facc15;
}
.fx-promo-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  z-index:25;
  width:2.25rem;height:2.25rem;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:9999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(9,9,11,.55);
  color:#f4f4f5;font-size:1.35rem;line-height:1;
  backdrop-filter:blur(8px);
  opacity:0;pointer-events:none;
  transition:opacity .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
#home-promo-carousel:hover .fx-promo-nav,
#home-promo-carousel:focus-within .fx-promo-nav{
  opacity:1;pointer-events:auto;
}
.fx-promo-nav:hover{
  background:rgba(24,24,27,.9);
  border-color:rgba(250,204,21,.45);
  color:#facc15;
}
.fx-promo-nav--prev{left:.65rem}
.fx-promo-nav--next{right:.65rem}
.fx-promo-dots{
  position:absolute;left:1.75rem;bottom:1.15rem;z-index:20;
  display:flex;gap:.45rem;align-items:center;
}
@media (min-width:768px){
  .fx-promo-dots{left:2.35rem;bottom:1.35rem}
}
.fx-promo-dot{
  width:.5rem;height:.5rem;border-radius:9999px;
  background:rgba(255,255,255,.28);
  border:0;padding:0;cursor:pointer;
  transition:background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.fx-promo-dot--active{
  background:#facc15;
  transform:scale(1.2);
  box-shadow:0 0 10px rgba(250,204,21,.45);
}
@media (max-width:640px){
  .fx-promo-banner{aspect-ratio:1200 / 640}
  .fx-promo-banner__content{padding:1.5rem 3rem 1.5rem 1.5rem;max-width:100%}
  .fx-promo-banner__text{font-size:.8125rem;-webkit-line-clamp:2}
  .fx-promo-nav{opacity:.85;pointer-events:auto}
}
@media (prefers-reduced-motion:reduce){
  .fx-promo-track{transition:none}
}
