:root{
  --accent:#0570eb;
  --accent-alt:#0570eb;
  --accent-grad:linear-gradient(92deg,#0570eb 0%,#0570eb 55%,#09478d 100%);
  --bg-card:#262626;
  --bg-card-alt:#1f1f1f;
  --radius-lg:22px;
  --transition:.55s cubic-bezier(.8,.05,.2,1);
  --shadow:0 6px 18px -4px rgba(0,0,0,.55),0 2px 4px -1px rgba(0,0,0,.4);
  --shadow-hover:0 16px 38px -8px rgba(0,0,0,.7),0 0 0 1px #0570eb55;
  --progress-bg:#2c2c2c;
  --progress-fill:linear-gradient(90deg,#0570eb,#0570eb,#034896);
  --danger:#c74444;
  --fs-xxs:0.75rem;
  --fs-xs:0.62rem;
  --fs-s:1rem;
  --fs-base:1.125rem;
  --fs-title:clamp(1.5rem,3vw,2rem);
}

html,body{
  overscroll-behavior-x:none;
}

body{
  overflow-x:hidden;
  font-family:'Poppins',system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  color:#ddd;
  margin:0;
}

.no-select,
.no-select *{
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
  -webkit-tap-highlight-color:transparent;
}

.carousel-nav,
.btn-sm{
  -webkit-user-select:none;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
  text-decoration:none;
}

.carousel-nav:focus,
.btn-sm:focus{
  -webkit-user-select:none;
  user-select:none;
}

.carousel-nav::selection,
.btn-sm::selection,
.carousel-nav *::selection,
.btn-sm *::selection{
  background:transparent;
}

.btn-sm:focus:not(:focus-visible),
.carousel-nav:focus:not(:focus-visible){
  outline:none;
}

.active-raffles-section{
  margin:36px auto 58px;
  max-width:1320px;
  padding:0 18px;
}

.active-raffles-section .section-title{
  font-size:clamp(1.15rem,1.05rem + 1vw,1.7rem);
  font-weight:800;
  color:#fff;
  display:flex;
  gap:10px;
  align-items:center;
  letter-spacing:.6px;
  text-transform:uppercase;
  margin:0 0 18px;
}

.active-raffles-section .section-title i{
  color:var(--accent-alt);
  filter:drop-shadow(0 0 5px #7d190155);
}

/* =========================
   CARRUSEL ARREGLADO (sin scroll interno)
   ========================= */
.carousel {
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:20px;
  /* Eliminado max-height y overflow-y para que el body scrollee naturalmente */
  /* max-height:80vh; overflow-y:scroll; */
}

.carousel *{
  -webkit-user-select:none;
  user-select:none;
  scrollbar-width: thin;
}

/* Ya no escondemos la barra (lo hacía confuso) */
/* .carousel::-webkit-scrollbar { display:none; } */

.carousel-viewport{
  position:relative;
  width:100%;
  border-radius:28px;
  padding:10px 4px 24px;
  isolation:isolate;
  /* Eliminamos overflow interno para evitar doble scroll */
  /* overflow:hidden; overflow-y:auto; */
  scroll-snap-type:none;
}

.carousel-track {
  display:flex;
  flex-direction:column;
  gap:20px;
  width:100%;
}

.carousel-track>.raffle-card{
  flex:0 0 100%;
  display:flex;
  justify-content:center;
  background:transparent;
  border:none;
  box-shadow:none;
  padding:0;
  position:relative;
  scroll-snap-align:center;
}

.raffle-card-inner{
  width:clamp(260px,50vw,420px);
  background:linear-gradient(165deg,var(--bg-card) 0%,var(--bg-card-alt) 100%);
  border-radius:var(--radius-lg);
  position:relative;
  overflow:hidden;
  border:1px solid #343434;
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition),filter var(--transition);
  isolation:isolate;
  animation:scaleIn .5s ease;
}

@media (hover:hover){
  .raffle-card-inner:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow-hover);
    border-color:#3d3d3d;
  }
}

.raffle-card-image{
  position:relative;
  width:100%;
  aspect-ratio:var(--ar,4/3);
  background:#111;
  overflow:hidden;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  --blur-opacity:.55;
}

.raffle-card-image img.raffle-img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .7s ease, opacity .45s ease;
  opacity:0;
  transform:scale(1.02);
  backface-visibility:hidden;
  -webkit-user-drag:none;
  user-drag:none;
  pointer-events:none;
}
.raffle-card-image img.raffle-img.ready{opacity:1;transform:none;}

.raffle-card-image.is-horizontal img.raffle-img{object-fit:cover;}
.raffle-card-image.is-vertical img.raffle-img{
  object-fit:contain;
  width:100%;
  height:100%;
  z-index:1;
  position:relative;
}
.raffle-card-image.is-vertical::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--bg-blur,#111) center/cover no-repeat;
  filter:blur(22px) brightness(var(--blur-opacity));
  transform:scale(1.18);
  z-index:0;
  transition:filter .6s;
}

@media (hover:hover){
  .raffle-card-inner:hover .raffle-card-image.is-horizontal img.raffle-img{transform:scale(1.08);}
  .raffle-card-inner:hover .raffle-card-image.is-vertical::before{filter:blur(26px) brightness(.6);}
}

.ribbon-free{
  position:absolute;
  top:16px;
  left:-42px;
  background:linear-gradient(120deg,#2f7d32,#4ebe5a);
  color:#fff;
  font-size:.6rem;
  font-weight:800;
  letter-spacing:1px;
  padding:7px 54px 6px;
  transform:rotate(-32deg);
  text-transform:uppercase;
  box-shadow:0 4px 10px -3px rgba(0,0,0,.55);
  z-index:6;
}

.soldout-stamp{
  position:absolute;
  inset:0;
  background:linear-gradient(160deg,#460000d4,#000000cc);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.9rem;
  font-weight:800;
  letter-spacing:2px;
  color:#ffe1e1;
  text-shadow:0 2px 4px #000;
  z-index:8;
}

.raffle-card-body{
  padding:18px 22px 24px;
  display:flex;
  flex-direction:column;
  gap:16px;
  flex:1;
  min-height:190px;
}

.raffle-card-title{
  margin:0;
  font-size:var(--fs-title);
  font-weight:700;
  line-height:1.18;
  color:#fff;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:3.6em;
}

.raffle-meta{
  display:flex;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  align-items:center;
}

.meta-price{
  background:#27231d;
  color:#fff;
  padding:7px 15px 6px;
  font-size:var(--fs-s);
  border-radius:16px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-weight:700;
  letter-spacing:.45px;
}

.meta-date{
  background:#262626;
  color:#bcbcbc;
  padding:6px 14px 6px;
  font-size:var(--fs-xs);
  font-weight:600;
  border-radius:999px;
  display:inline-flex;
  gap:6px;
  align-items:center;
  letter-spacing:.5px;
}

.meta-price i,
.meta-date i{
  color:var(--accent);
  font-size:.85em;
}

.progress.mini{
  height:30px;
  background:#222;
  border-radius:18px;
  position:relative;
  overflow:hidden;
  box-shadow:inset 0 0 0 1px #2e2e2e;
  display:flex;
  align-items:center;
  justify-content:center;
}

.progress.mini .progress-bar{
  position:absolute;
  top:0;
  left:0;
  height:100%;
  width:0%;
  background:var(--progress-fill);
  background-size:200% 100%;
  animation:shimmer 5s linear infinite;
  transition:width .6s ease;
}

.progress.mini .progress-text{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:var(--fs-xs);
  font-weight:800;
  letter-spacing:.6px;
  color:#fff;
  text-shadow:0 1px 2px #000;
  white-space:nowrap;
  text-transform:uppercase;
}

@keyframes shimmer{
  0%{background-position:0 50%}
  50%{background-position:100% 50%}
  100%{background-position:0 50%}
}

.raffle-actions{
  display:flex;
  gap:12px;
  margin-top:2px;
}

.btn-sm{
  flex:1;
  background:var(--accent-grad);
  color:#fff;
  font-size:var(--fs-base);
  font-weight:800;
  letter-spacing:.65px;
  text-transform:uppercase;
  border:none;
  border-radius:16px;
  padding:13px 12px 12px;
  cursor:pointer;
  display:inline-flex;
  gap:8px;
  justify-content:center;
  align-items:center;
  position:relative;
  overflow:hidden;
  transition:.5s;
}

.btn-sm:hover{
  filter:brightness(1.12);
  transform:translateY(-3px);
}

.btn-sm:active{
  transform:translateY(-1px) scale(.97);
}

.btn-sm.verify-btn{
  flex:0 0 58px;
  aspect-ratio:1/1;
  background:#2d2d2d;
  color:var(--accent);
}

.btn-sm.verify-btn:hover{
  background:var(--accent);
  color:#130e07;
}

.sold-label{
  flex:1;
  background:#5e2020;
  color:#ffd7d7;
  text-align:center;
  font-size:var(--fs-xs);
  font-weight:800;
  letter-spacing:.7px;
  padding:12px 6px 11px;
  border-radius:16px;
  border:1px solid #712c2c;
  box-shadow:inset 0 0 0 1px #000;
  text-transform:uppercase;
}

/* Flechas (puedes mantenerlas aunque ya no haya scroll interno especial) */
.carousel-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:56px;
  height:56px;
  border-radius:50%;
  background:linear-gradient(145deg,#1b1b1be6,#272727f2);
  backdrop-filter:blur(4px);
  border:1px solid #2c2c2c;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  color:var(--accent);
  font-size:1.1rem;
  z-index:30;
  transition:.45s, transform .45s, opacity .45s;
  box-shadow:0 10px 28px -10px rgba(0,0,0,.8);
}

.carousel-nav.prev{left:calc(-1 * var(--nav-gap));}
.carousel-nav.next{right:calc(-1 * var(--nav-gap));}
.carousel-nav:disabled{opacity:.28;cursor:default;}
.carousel-nav:not(:disabled):hover{
  background:linear-gradient(135deg,#2c0900,#1f1f1f);
  color:#ffe7c4;
  transform:translateY(-50%) scale(1.12);
}
.carousel-nav::after{
  content:"";
  position:absolute;
  inset:-10px;
}
@media (hover:hover){
  .carousel:not(:hover) .carousel-nav{opacity:.85;}
  .carousel:hover .carousel-nav.prev{transform:translate(-4px,-50%) scale(1.12);}
  .carousel:hover .carousel-nav.next{transform:translate(4px,-50%) scale(1.12);}
}

.carousel-nav:focus-visible,
.btn-sm:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}

@media (min-width:640px){
  .carousel{min-height:480px;}
  .raffle-card-inner{width:clamp(280px,56vw,420px);}
}

@media (min-width:900px){
  .carousel-viewport{padding:14px 4px 30px;}
  .carousel-track>.raffle-card{flex:0 0 66%;}
  .raffle-card-inner{width:clamp(300px,46vw,420px);}
}

@media (min-width:1200px){
  .carousel-track>.raffle-card{flex:0 0 52%;}
  .raffle-card-inner{width:clamp(320px,40vw,420px);}
}

@media (max-width:900px){
  .carousel{--nav-gap:clamp(24px,4.2vw,60px)}
  .carousel-nav{width:52px;height:52px}
}

@media (max-width:700px){
  .carousel{--nav-gap:8px}
  .carousel-nav{width:48px;height:48px}
}

@media (max-width:480px){
  .carousel-nav{width:42px;height:42px}
}

@media (max-width:360px){
  .carousel-nav{width:38px;height:38px;font-size:.9rem}
}

@media (max-width:330px){
  .carousel-nav{display:none}
}

@media (max-width:600px){
  :root{
    --fs-base:.72rem;
    --fs-s:.64rem;
    --fs-xs:.56rem;
    --fs-xxs:.48rem;
  }
  .active-raffles-section{
    margin:26px auto 44px;
    padding:0 14px;
  }
  .carousel{
    min-height:unset;
    padding-top:2px;
  }
  .carousel-viewport{
    border-radius:16px;
    padding:0 8px 14px;
  }
  .raffle-card-image{aspect-ratio:var(--ar,4/3)}
  .raffle-card-inner{
    width:100%;
    border-radius:16px;
    padding-bottom:2px;
    box-shadow:0 4px 12px -6px rgba(0,0,0,.5);
    border:1px solid #2c2c2c;
  }
  .raffle-card-body{
    padding:14px 14px 16px;
    gap:10px;
    min-height:auto;
  }
  .raffle-card-title{
    font-size:clamp(.95rem,4.2vw,1.05rem);
    -webkit-line-clamp:2;
    min-height:2.4em;
  }
  .ribbon-free{
    font-size:.5rem;
    padding:5px 46px 5px;
    top:12px;
    left:-38px;
  }
  .meta-price,
  .meta-date{
    font-size:var(--fs-xs);
    padding:5px 9px 5px;
    letter-spacing:.3px;
    border-radius:14px;
  }
  .progress.mini{
    height:26px;
    border-radius:14px;
  }
  .progress.mini .progress-text{
    font-size:.52rem;
    letter-spacing:.35px;
    padding:0 8px;
  }
  .raffle-actions{
    gap:8px;
    margin-top:0;
  }
  .btn-sm{
    font-size:.6rem;
    padding:9px 9px 9px;
    letter-spacing:.45px;
    border-radius:14px;
  }
  .btn-sm.verify-btn{
    flex:0 0 46px;
  }
  .sold-label{
    font-size:.55rem;
    padding:9px 4px 9px;
    letter-spacing:.5px;
  }
  .carousel-nav{
    backdrop-filter:blur(3px);
  }
}

@media (max-width:480px){
  .raffle-card-body{
    padding:12px 12px 14px;
    gap:8px;
  }
  .raffle-card-title{
    font-size:clamp(.9rem,4.4vw,1rem);
    -webkit-line-clamp:2;
  }
  .progress.mini{
    height:24px;
  }
  .btn-sm{
    font-size:.56rem;
    padding:8px 8px 8px;
  }
  .btn-sm.verify-btn{
    flex:0 0 42px;
  }
}

@media (max-width:400px){
  .active-raffles-section{
    padding:0 10px;
  }
  .raffle-card-body{
    padding:10px 11px 12px;
    gap:7px;
  }
  .raffle-card-title{
    font-size:clamp(.88rem,4.8vw,.96rem);
    -webkit-line-clamp:2;
  }
  .meta-price,
  .meta-date{
    padding:4px 8px 4px;
    font-size:.5rem;
  }
  .progress.mini{
    height:22px;
  }
  .progress.mini .progress-text{
    font-size:.48rem;
    letter-spacing:.3px;
  }
  .btn-sm{
    font-size:.52rem;
    border-radius:12px;
  }
  .btn-sm.verify-btn{
    flex:0 0 40px;
  }
}

@media (max-width:360px){
  .raffle-card-body{padding:9px 10px 11px}
  .btn-sm{padding:7px 7px 7px;font-size:.5rem}
  .progress.mini{height:20px}
}

@media (max-width:330px){
  .raffle-card-title{-webkit-line-clamp:2}
}

@keyframes scaleIn{
  from{transform:scale(.97);opacity:0}
  to{transform:scale(1);opacity:1}
}

.carousel-nav:focus-visible,
.btn-sm:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}

/* === BADGE / NOTA === */
.raffle-card-image{position:relative;}
.raffle-note{
  --rojo-base:#ff4b4b;
  --rojo-prof:#b80024;
  --rojo-brillo:#ff7474;
  position:absolute;top:10px;left:10px;z-index:9;display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px 6px;font-size:clamp(.55rem,.48rem + .45vw,.75rem);font-weight:600;letter-spacing:.5px;
  line-height:1.1;color:#fff;
  background:linear-gradient(145deg,#2a2a2ad9,#1b1b1be6);
  border:1px solid rgba(150,40,40,.55);
  border-radius:12px;
  backdrop-filter:blur(6px) brightness(1.25);
  -webkit-backdrop-filter:blur(6px) brightness(1.25);
  max-width:72%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default;
  opacity:0;transform:translateY(-4px);
  animation:badgeIn .5s .1s forwards, redPulse 3.2s ease-in-out 1s infinite;
  box-shadow:
    0 4px 10px -4px rgba(0,0,0,.55),
    inset 0 0 0 1px #00000040,
    0 0 6px -2px rgba(255,70,70,.55);
}
@keyframes badgeIn{to{opacity:1;transform:none;}}

.raffle-note::before{
  content:"";width:6px;height:70%;border-radius:4px;display:block;
  background:linear-gradient(180deg,#ff6464,#c9002e);
  box-shadow:0 0 6px -1px rgba(255,90,90,.65);
}

.raffle-note.success::before{background:linear-gradient(180deg,#27c66c,#118a44);}
.raffle-note.warning::before{background:linear-gradient(180deg,#ffae42,#ff6b00);}
.raffle-note.danger::before{background:linear-gradient(180deg,#e14b4b,#a91919);}
.raffle-note.multiline{
  white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}

@keyframes redPulse{
  0%,100%{
    box-shadow:
      0 4px 10px -4px rgba(0,0,0,.55),
      inset 0 0 0 1px #00000040,
      0 0 6px -2px rgba(255,70,70,.55),
      0 0 0 0 rgba(255,90,90,.25);
    filter:brightness(1);
  }
  50%{
    box-shadow:
      0 6px 14px -5px rgba(0,0,0,.65),
      inset 0 0 0 1px #00000040,
      0 0 10px -2px rgba(255,90,90,.85),
      0 0 18px 0 rgba(255,70,70,.30);
    filter:brightness(1.12);
  }
}

.raffle-note.danger.pulse-red{
  animation:badgeIn .5s .1s forwards,pulseRed 2.4s ease-in-out .9s infinite;
}
@keyframes pulseRed{
  0%,100%{box-shadow:0 4px 10px -4px rgba(0,0,0,.55),inset 0 0 0 1px #00000040,0 0 0 0 rgba(255,70,70,.55);}
  45%{box-shadow:0 5px 14px -5px rgba(0,0,0,.6),inset 0 0 0 1px #00000040,0 0 12px 2px rgba(255,70,70,.7);}
}

.raffle-note.danger.glow-red{
  position:relative;
  animation:badgeIn .5s .1s forwards,glowRed 3.2s ease-in-out 1s infinite;
  border-color:#792727;
}
.raffle-note.danger.glow-red::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(120deg,transparent 0%,rgba(255,90,90,.15) 40%,rgba(255,255,255,.55) 47%,rgba(255,90,90,.15) 54%,transparent 100%);
  background-size:260% 100%;mix-blend-mode:screen;pointer-events:none;animation:shineRed 2.8s linear 1s infinite;
}
@keyframes shineRed{0%{background-position:210% 50%;}100%{background-position:-50% 50%;}}
@keyframes glowRed{
  0%,100%{box-shadow:0 4px 10px -4px rgba(0,0,0,.55),inset 0 0 0 1px #00000040,0 0 8px -2px rgba(255,65,65,.55);}
  50%{box-shadow:0 6px 14px -5px rgba(0,0,0,.65),inset 0 0 0 1px #00000040,0 0 16px -2px rgba(255,80,80,.85);}
}

.raffle-note.highlight-red{
  --hl1:#b30024;--hl2:#ff2f42;
  background:
    linear-gradient(145deg,#2a2a2ad9,#1b1b1be6) padding-box,
    linear-gradient(160deg,var(--hl2),var(--hl1)) border-box;
  border:1px solid transparent;
  animation:badgeIn .5s .1s forwards,highlightRedPulse 2.6s ease-in-out 1s infinite;
  position:relative;
}
.raffle-note.highlight-red::before{
  background:linear-gradient(180deg,#ff6161,#c7002e);
  box-shadow:0 0 6px -1px #ff4d55;
}
.raffle-note.highlight-red::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 15% 20%,rgba(255,90,90,.4),transparent 55%),
    radial-gradient(circle at 85% 75%,rgba(255,40,40,.35),transparent 60%);
  opacity:.55;pointer-events:none;mix-blend-mode:overlay;animation:redSpeckles 5.5s linear 1s infinite;
}
@keyframes highlightRedPulse{
  0%,100%{filter:brightness(1);box-shadow:0 4px 10px -4px rgba(0,0,0,.55),0 0 10px -6px rgba(255,70,70,.5);}
  50%{filter:brightness(1.12);box-shadow:0 6px 14px -5px rgba(0,0,0,.65),0 0 14px -4px rgba(255,90,90,.85);}
}
@keyframes redSpeckles{0%{background-position:0 0,0 0;}100%{background-position:60px 0,-60px 0;}}

.raffle-note.danger.flash-once{
  animation:badgeIn .5s .1s forwards,dangerFlash 1s .6s steps(2,end);
}
@keyframes dangerFlash{
  0%,100%{filter:none;}
  20%,60%{filter:brightness(1.45) saturate(1.4);}
  40%,80%{filter:brightness(.85) saturate(.9);}
}

.raffle-note.no-anim{
  animation:badgeIn .5s .1s forwards!important;
  box-shadow:0 4px 10px -4px rgba(0,0,0,.55),inset 0 0 0 1px #00000040;
}

@media (max-width:600px){
  .raffle-note{top:8px;left:8px;padding:7px 10px 7px;border-radius:10px;font-size:clamp(.7rem,2vw,.68rem);max-width:75%;}
}
@media (max-width:400px){
  .raffle-note{font-size:clamp(.48rem,2.6vw,.9rem);padding:5px 8px 5px;gap:4px;}
  .raffle-note::before{width:5px;}
}

@media (prefers-reduced-motion:reduce){
  .raffle-note{
    animation:badgeIn .5s .1s forwards!important;
  }
  .raffle-note.danger.pulse-red,
  .raffle-note.danger.glow-red,
  .raffle-note.highlight-red,
  .raffle-note.danger.flash-once{animation:badgeIn .5s .1s forwards!important;}
  .raffle-note.danger.glow-red::after,
  .raffle-note.highlight-red::after{animation:none!important;}
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html, body {
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

.active-raffles-section,
.carousel,
.carousel-viewport,
.carousel-track {
  max-width:100%;
  overflow-x:hidden;
}

.carousel-track > .raffle-card,
.raffle-card-inner {
  max-width:100%;
}

.carousel-nav {
  display:none !important;
}
