/* =========================================================
   Rifatelas — Landing page de la plataforma (diseño propio)
   ========================================================= */
:root{
  --brand-primario:#7C3AED;
  --brand-primario-dark:#5B21B6;
  --brand-secundario:#0F172A;
  --brand-acento:#F59E0B;
  --brand-rosa:#EC4899;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;max-width:100vw;}
body{font-family:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif;color:#1e1e2d;overflow-x:hidden;max-width:100vw;background:#fff;}
h1,h2,h3,h4,.font-heading{font-family:'Sora',sans-serif;font-weight:800;}
a{text-decoration:none;}
::selection{background:var(--brand-primario);color:#fff;}

/* Barra de progreso de scroll, arriba de todo */
.scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--brand-acento),var(--brand-rosa),var(--brand-primario));z-index:2000;width:0%;transition:width .1s linear;}

/* ---------------------------------------------------------
   Botones
   --------------------------------------------------------- */
.btn-brand{
  background:linear-gradient(135deg,var(--brand-primario),var(--brand-primario-dark));
  color:#fff;border:none;padding:13px 30px;border-radius:50px;font-weight:700;
  display:inline-flex;align-items:center;gap:8px;box-shadow:0 10px 24px rgba(124,58,237,.32);
  transition:transform .2s ease,box-shadow .2s ease;position:relative;overflow:hidden;isolation:isolate;
}
.btn-brand::before{
  content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,255,255,.35),transparent);
  transform:translateX(-120%) skewX(-15deg);transition:transform .6s ease;z-index:1;
}
.btn-brand:hover::before{transform:translateX(120%) skewX(-15deg);}
.btn-brand:hover{transform:translateY(-3px);color:#fff;box-shadow:0 16px 32px rgba(124,58,237,.42);}
.btn-brand:active{transform:translateY(-1px) scale(.98);}
.btn-brand-outline{
  border:2px solid rgba(255,255,255,.5);color:#fff;padding:11px 26px;border-radius:50px;font-weight:700;
  display:inline-flex;align-items:center;gap:8px;transition:all .2s ease;
}
.btn-brand-outline:hover{background:rgba(255,255,255,.14);color:#fff;transform:translateY(-3px);border-color:#fff;}
.btn-brand-outline-dark{
  border:2px solid var(--brand-primario);color:var(--brand-primario);padding:11px 26px;border-radius:50px;font-weight:700;
  display:inline-flex;align-items:center;gap:8px;transition:all .2s ease;
}
.btn-brand-outline-dark:hover{background:var(--brand-primario);color:#fff;transform:translateY(-3px);}

/* ---------------------------------------------------------
   Navbar
   --------------------------------------------------------- */
.navbar-landing{background:transparent;transition:all .35s ease;padding:18px 0;}
.navbar-landing.is-scrolled{background:rgba(15,23,42,.92);backdrop-filter:blur(10px);padding:10px 0;box-shadow:0 8px 24px rgba(0,0,0,.18);}
.navbar-landing .navbar-brand{font-family:'Sora',sans-serif;font-weight:800;font-size:1.4rem;color:#fff !important;letter-spacing:-.5px;}
.navbar-landing .navbar-brand span{color:var(--brand-acento);}
.navbar-landing .nav-link{color:rgba(255,255,255,.85) !important;font-weight:600;position:relative;padding:8px 4px !important;margin:0 6px;}
.navbar-landing .nav-link::after{
  content:'';position:absolute;left:0;bottom:2px;height:2px;width:0;background:var(--brand-acento);transition:width .25s ease;
}
.navbar-landing .nav-link:hover{color:#fff !important;}
.navbar-landing .nav-link:hover::after,.navbar-landing .nav-link.active::after{width:100%;}
.navbar-landing .nav-link.active{color:#fff !important;}
.navbar-landing.menu-open{background:rgba(15,23,42,.96);backdrop-filter:blur(12px);box-shadow:0 8px 24px rgba(0,0,0,.22);}
.navbar-landing .navbar-toggler{width:42px;height:42px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;}
.navbar-landing .navbar-toggler:focus{box-shadow:0 0 0 .2rem rgba(124,58,237,.35);}

@media (max-width:991.98px){
  .navbar-landing .navbar-collapse{
    background:rgba(15,23,42,.98);
    border:1px solid rgba(255,255,255,.1);
    border-radius:18px;
    margin-top:12px;
    padding:8px 14px 18px;
    box-shadow:0 18px 40px rgba(0,0,0,.4);
  }
  .navbar-landing .navbar-nav{width:100%;gap:0;}
  .navbar-landing .nav-link{
    padding:13px 8px !important;margin:0;border-bottom:1px solid rgba(255,255,255,.08);
  }
  .navbar-landing .nav-link::after{display:none;}
  .navbar-landing .navbar-collapse .navbar-actions{
    flex-direction:column;width:100%;margin-top:14px !important;gap:10px;
  }
  .navbar-landing .navbar-collapse .navbar-actions a{
    width:100%;justify-content:center;text-align:center;
  }
}

/* ---------------------------------------------------------
   Hero
   --------------------------------------------------------- */
.hero-landing{
  background:var(--brand-secundario);
  min-height:100vh;color:#fff;display:flex;align-items:center;padding:150px 0 90px;position:relative;overflow:hidden;
}
.hero-mesh{position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(circle at var(--mx,20%) var(--my,25%), rgba(124,58,237,.55), transparent 42%),
    radial-gradient(circle at 82% 78%, rgba(245,158,11,.28), transparent 45%),
    radial-gradient(circle at 85% 12%, rgba(236,72,153,.22), transparent 40%),
    var(--brand-secundario);
  transition:background .4s ease;
}
.hero-grid-overlay{
  position:absolute;inset:0;z-index:0;opacity:.35;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:radial-gradient(circle at 30% 30%, black, transparent 75%);
}
.hero-blob{position:absolute;border-radius:50%;filter:blur(10px);z-index:0;opacity:.55;animation:blobFloat 12s ease-in-out infinite;}
.hero-blob-1{width:280px;height:280px;top:8%;right:8%;background:radial-gradient(circle,var(--brand-rosa),transparent 70%);animation-delay:0s;}
.hero-blob-2{width:200px;height:200px;bottom:10%;left:4%;background:radial-gradient(circle,var(--brand-acento),transparent 70%);animation-delay:-4s;}
.hero-blob-3{width:150px;height:150px;top:45%;right:28%;background:radial-gradient(circle,#34D399,transparent 70%);animation-delay:-8s;}
@keyframes blobFloat{
  0%,100%{transform:translate(0,0) scale(1);}
  33%{transform:translate(-18px,22px) scale(1.08);}
  66%{transform:translate(16px,-16px) scale(.95);}
}

.hero-badge{
  display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);
  border-radius:50px;padding:8px 18px;font-size:.82rem;font-weight:600;position:relative;z-index:2;
  animation:badgePulse 3s ease-in-out infinite;
}
@keyframes badgePulse{0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,.0);}50%{box-shadow:0 0 0 6px rgba(245,158,11,.08);}}
.hero-titulo{font-size:clamp(2.2rem,5vw,3.7rem);line-height:1.12;margin:18px 0 16px;position:relative;z-index:2;}
.hero-titulo .grad{
  background:linear-gradient(90deg,#A78BFA,var(--brand-acento),var(--brand-rosa));background-size:200% auto;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:gradShift 6s linear infinite;
}
@keyframes gradShift{0%{background-position:0% 50%;}100%{background-position:200% 50%;}}
.hero-sub{font-size:1.15rem;opacity:.82;max-width:520px;position:relative;z-index:2;}
.hero-feat-list{display:flex;flex-direction:column;gap:10px;margin-top:26px;position:relative;z-index:2;}
.hero-feat-list div{display:flex;align-items:center;gap:10px;font-weight:600;font-size:.95rem;}
.hero-feat-list i{color:#34D399;}

/* Tarjeta flotante de la rifa (mock) */
.mock-rifa-wrap{position:relative;z-index:2;perspective:1200px;}
.mock-rifa-card{
  background:#fff;border-radius:22px;box-shadow:0 30px 70px rgba(0,0,0,.4);overflow:hidden;color:#1e1e2d;
  transform:rotate(2deg);transition:transform .15s ease-out;will-change:transform;animation:cardEntrance 1s cubic-bezier(.16,1,.3,1) both;
}
@keyframes cardEntrance{from{opacity:0;transform:translateY(40px) rotate(2deg) scale(.92);}to{opacity:1;transform:rotate(2deg) scale(1);}}
.mock-rifa-hero{
  background:linear-gradient(135deg,var(--brand-primario),var(--brand-acento));height:150px;position:relative;color:#fff;padding:16px;overflow:hidden;
}
.mock-rifa-hero::after{
  content:'';position:absolute;inset:0;background:radial-gradient(circle at 85% 15%,rgba(255,255,255,.35),transparent 45%);
}
.mock-rifa-body{padding:18px;}
.mock-count{display:flex;gap:8px;margin-top:10px;position:relative;z-index:1;}
.mock-count div{background:rgba(255,255,255,.2);border-radius:8px;padding:6px 10px;text-align:center;font-weight:800;font-size:.95rem;min-width:42px;backdrop-filter:blur(2px);}
.mock-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin-top:12px;}
.mock-grid span{background:#f2f0fb;border-radius:6px;text-align:center;font-size:.65rem;padding:4px 0;font-weight:700;color:#666;transition:transform .15s ease;}
.mock-grid span.sel{background:var(--brand-primario);color:#fff;animation:selPulse 1.8s ease-in-out infinite;}
.mock-grid span.sold{background:#e5e7eb;color:#aaa;text-decoration:line-through;}
@keyframes selPulse{0%,100%{box-shadow:0 0 0 0 rgba(124,58,237,.5);}50%{box-shadow:0 0 0 5px rgba(124,58,237,0);}}

/* Marquee de confianza (franja debajo del hero) */
.trust-strip{background:#0B1220;padding:16px 0;position:relative;z-index:2;border-top:1px solid rgba(255,255,255,.06);overflow:hidden;max-width:100vw;}
.trust-strip .marquee{display:flex;gap:52px;white-space:nowrap;animation:marqueeScroll 24s linear infinite;}
.trust-strip .marquee span{color:rgba(255,255,255,.55);font-weight:700;font-size:.85rem;letter-spacing:1px;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;}
.trust-strip .marquee span i{color:var(--brand-acento);}
@keyframes marqueeScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------------------------------------------------------
   Secciones generales + scroll reveal
   --------------------------------------------------------- */
.section-pad{padding:100px 0;position:relative;}
.section-tag{color:var(--brand-primario);font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:1.5px;display:inline-flex;align-items:center;gap:6px;}
.section-tag::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--brand-acento);display:inline-block;}
.section-title{font-size:clamp(1.8rem,3.4vw,2.6rem);margin:10px 0 16px;color:var(--brand-secundario);}
.section-title .grad-inline{background:linear-gradient(90deg,var(--brand-primario),var(--brand-rosa));-webkit-background-clip:text;background-clip:text;color:transparent;}
.bg-soft{background:#F7F6FC;}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.reveal-scale{opacity:0;transform:scale(.9);transition:opacity .6s ease,transform .6s cubic-bezier(.16,1,.3,1);}
.reveal-scale.is-visible{opacity:1;transform:scale(1);}
.reveal-delay-1.is-visible{transition-delay:.08s;}
.reveal-delay-2.is-visible{transition-delay:.16s;}
.reveal-delay-3.is-visible{transition-delay:.24s;}
.reveal-delay-4.is-visible{transition-delay:.32s;}

/* Separador ondulado entre secciones */
.wave-divider{display:block;width:100%;height:60px;margin-bottom:-1px;}

/* ---------------------------------------------------------
   Barra de estadísticas
   --------------------------------------------------------- */
.stats-bar{background:var(--brand-secundario);padding:56px 0;position:relative;overflow:hidden;}
.stats-bar::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 15% 50%,rgba(124,58,237,.25),transparent 55%);}
.stat-item{text-align:center;color:#fff;position:relative;z-index:1;}
.stat-item .stat-num{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(1.8rem,3vw,2.6rem);color:var(--brand-acento);}
.stat-item .stat-label{font-size:.85rem;opacity:.75;font-weight:600;margin-top:4px;}

/* ---------------------------------------------------------
   Cómo funciona
   --------------------------------------------------------- */
.pasos-wrap{position:relative;}
.pasos-linea{
  position:absolute;top:44px;left:8%;right:8%;height:2px;background:repeating-linear-gradient(90deg,#E2E0F0 0 10px,transparent 10px 18px);
  z-index:0;display:none;
}
@media (min-width:768px){.pasos-linea{display:block;}}
.paso-card{
  background:#fff;border-radius:20px;padding:32px 26px;box-shadow:0 10px 34px rgba(15,23,42,.06);height:100%;position:relative;z-index:1;
  transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease;border:1px solid transparent;
}
.paso-card:hover{transform:translateY(-8px);box-shadow:0 22px 44px rgba(124,58,237,.16);border-color:#EDEBF7;}
.paso-num{
  width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--brand-primario),var(--brand-primario-dark));color:#fff;font-weight:800;
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;font-family:'Sora',sans-serif;transform:rotate(-4deg);
  box-shadow:0 8px 18px rgba(124,58,237,.35);
}

/* ---------------------------------------------------------
   Features (bento)
   --------------------------------------------------------- */
.feature-box{
  background:#fff;border:1px solid #EDEBF7;border-radius:18px;padding:28px 24px;height:100%;position:relative;overflow:hidden;
  transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease,border-color .3s ease;isolation:isolate;
}
.feature-box::before{
  content:'';position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--brand-primario),var(--brand-rosa),var(--brand-acento));
  transform:scaleX(0);transform-origin:left;transition:transform .35s ease;
}
.feature-box:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(15,23,42,.1);border-color:#EDEBF7;}
.feature-box:hover::before{transform:scaleX(1);}
.feature-icon{
  width:52px;height:52px;border-radius:14px;background:rgba(124,58,237,.1);color:var(--brand-primario);
  display:flex;align-items:center;justify-content:center;font-size:1.35rem;margin-bottom:16px;transition:transform .3s ease,background .3s ease,color .3s ease;
}
.feature-box:hover .feature-icon{background:var(--brand-primario);color:#fff;transform:rotate(-8deg) scale(1.08);}
.feature-box.featured{background:linear-gradient(160deg,var(--brand-secundario),#241f4a);color:#fff;border-color:transparent;}
.feature-box.featured h5{color:#fff;}
.feature-box.featured p{color:rgba(255,255,255,.65) !important;}
.feature-box.featured .feature-icon{background:rgba(255,255,255,.12);color:var(--brand-acento);}

/* ---------------------------------------------------------
   Registro
   --------------------------------------------------------- */
.registro-card{
  background:#fff;border-radius:24px;box-shadow:0 20px 60px rgba(15,23,42,.12);padding:40px;position:relative;overflow:hidden;
}
.registro-card::before{
  content:'';position:absolute;top:-60px;right:-60px;width:160px;height:160px;border-radius:50%;
  background:radial-gradient(circle,rgba(124,58,237,.12),transparent 70%);
}
.form-control-brand{border-radius:12px;padding:12px 16px;border:1px solid #E2E0F0;transition:border-color .2s ease,box-shadow .2s ease;}
.form-control-brand:focus{border-color:var(--brand-primario);box-shadow:0 0 0 .2rem rgba(124,58,237,.15);}

/* ---------------------------------------------------------
   FAQ
   --------------------------------------------------------- */
.accordion-brand .accordion-item{border:1px solid #EDEBF7 !important;border-radius:14px !important;margin-bottom:12px;overflow:hidden;}
.accordion-brand .accordion-button{font-weight:700;color:var(--brand-secundario);transition:color .2s ease,background .2s ease;}
.accordion-brand .accordion-button:not(.collapsed){color:var(--brand-primario);background:rgba(124,58,237,.06);}
.accordion-brand .accordion-button:focus{box-shadow:none;}

/* ---------------------------------------------------------
   Planes / precios
   --------------------------------------------------------- */
.precio-card{
  background:#fff;border-radius:22px;padding:32px 26px;height:100%;position:relative;
  box-shadow:0 14px 36px rgba(15,23,42,.06);border:1px solid #EDEBF7;
}
.precio-card.featured{border:2px solid var(--brand-primario);box-shadow:0 18px 40px rgba(124,58,237,.16);}
.precio-nombre{font-weight:800;font-family:'Sora',sans-serif;letter-spacing:.04em;text-transform:uppercase;font-size:.8rem;color:#6b7280;}
.precio-monto{font-family:'Sora',sans-serif;font-weight:800;font-size:2.4rem;color:var(--brand-secundario);line-height:1.1;margin:8px 0 4px;}
.precio-periodo{color:#6b7280;font-size:.85rem;margin-bottom:18px;}
.precio-lista{list-style:none;padding:0;margin:0 0 22px;display:flex;flex-direction:column;gap:10px;}
.precio-lista li{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;}
.precio-lista i{color:#16A34A;margin-top:3px;}
.precio-lista li.muted{color:#9ca3af;}
.precio-lista li.muted i{color:#DC2626;}
.precio-badge{
  position:absolute;top:-12px;right:18px;background:var(--brand-primario);color:#fff;
  border-radius:50px;font-size:.72rem;font-weight:700;padding:4px 12px;
}
.precio-badge.alt{background:var(--brand-acento);color:#1e1e2d;}

/* ---------------------------------------------------------
   Footer
   --------------------------------------------------------- */
.footer-landing{background:var(--brand-secundario);color:rgba(255,255,255,.75);padding:56px 0 24px;position:relative;overflow:hidden;}
.footer-landing a{color:rgba(255,255,255,.7);}
.footer-landing a:hover{color:#fff;}
.legal-body{background:#F7F6FC;}
.legal-wrap{padding:130px 0 80px;}
.legal-card{background:#fff;border-radius:24px;padding:40px 36px;box-shadow:0 16px 40px rgba(15,23,42,.06);max-width:860px;margin:0 auto;}
.legal-kicker{color:var(--brand-primario);font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;}
.legal-card h1{font-family:'Sora',sans-serif;font-weight:800;font-size:2rem;margin-bottom:8px;}
.legal-meta{color:#6b7280;font-size:.9rem;margin-bottom:28px;}
.legal-body-text h2{font-family:'Sora',sans-serif;font-size:1.15rem;font-weight:700;margin:28px 0 10px;}
.legal-body-text p,.legal-body-text li{color:#4b5563;line-height:1.75;font-size:.95rem;}
.legal-body-text ul{padding-left:1.2rem;}
.legal-body-text a{color:var(--brand-primario);font-weight:600;}
.social-icon-landing{
  width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;
  display:flex;align-items:center;justify-content:center;transition:transform .25s ease,background .25s ease;
}
.social-icon-landing:hover{background:var(--brand-primario);color:#fff;transform:translateY(-4px);}

/* Boton volver arriba */
.back-to-top-landing{
  position:fixed;bottom:26px;right:26px;width:46px;height:46px;border-radius:50%;background:var(--brand-primario);color:#fff;
  display:flex;align-items:center;justify-content:center;box-shadow:0 12px 28px rgba(124,58,237,.4);z-index:900;
  opacity:0;visibility:hidden;transform:translateY(12px);transition:all .3s ease;border:none;
}
.back-to-top-landing.show{opacity:1;visibility:visible;transform:translateY(0);}
.back-to-top-landing:hover{background:var(--brand-primario-dark);transform:translateY(-4px);}

@media (max-width:767px){
  .hero-landing{padding:130px 0 60px;text-align:center;}
  .hero-sub{margin:0 auto;}
  .hero-feat-list{align-items:center;}
  .section-pad{padding:64px 0;}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}
