/* ============================================================
   ÉGIDA — components.css — preloader, cursor, nav, menú móvil, marquee
   ============================================================ */

/* ---------- Preloader ---------- */
.preloader{
  position:fixed; inset:0; z-index:1000;
  background:var(--dark);
  display:grid; place-content:center; gap:1.6rem; justify-items:center;
  transition:opacity .6s ease, visibility .6s;
}
.preloader.done{ opacity:0; visibility:hidden; }
.preloader__iso{ width:84px; animation:pulse 1.4s ease-in-out infinite; }
.preloader__bar{
  width:180px; height:3px; border-radius:3px;
  background:rgba(255,255,255,.12); overflow:hidden;
}
.preloader__bar span{
  display:block; height:100%; width:0;
  background:var(--grad-brand); border-radius:3px;
  transition:width .3s ease;
}
@keyframes pulse{ 0%,100%{ transform:scale(1); opacity:1 } 50%{ transform:scale(1.08); opacity:.75 } }

/* ---------- Cursor personalizado ---------- */
.cursor{ display:none; }
@media (hover:hover) and (pointer:fine){
  .cursor{ display:block; position:fixed; z-index:999; top:0; left:0; pointer-events:none; }
  .cursor__ring{
    display:block; width:34px; height:34px; border-radius:50%;
    border:1.5px solid var(--orange);
    transform:translate(-50%,-50%);
    transition:width .25s, height .25s, opacity .25s, background .25s;
  }
  .cursor.hovering .cursor__ring{ width:56px; height:56px; background:var(--orange-soft); }
}

/* ---------- Navbar ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:900;
  padding:1rem 0;
  transition:background .4s, box-shadow .4s, padding .4s;
}
.nav.scrolled{
  background:rgba(17,17,36,.88);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  box-shadow:0 10px 30px -18px rgba(0,0,0,.6);
  padding:.65rem 0;
}
.nav__inner{ display:flex; align-items:center; gap:2rem; }
.nav__logo{ display:flex; align-items:center; gap:.7rem; }
.nav__logo img{ width:38px; height:38px; }
.nav__wordmark{
  font-family:var(--font-display); font-weight:700; font-size:1.35rem;
  letter-spacing:.06em; color:var(--white);
}
.nav__links{
  display:flex; gap:1.8rem; margin-left:auto;
}
.nav__link{
  position:relative; font-family:var(--font-body); font-weight:400;
  font-size:.9rem; color:rgba(255,255,255,.82);
  padding:.3rem 0; transition:color .3s;
}
.nav__link::after{
  content:""; position:absolute; left:0; bottom:0;
  width:0; height:2px; border-radius:2px; background:var(--orange);
  transition:width .35s var(--ease);
}
.nav__link:hover, .nav__link.active{ color:var(--white); }
.nav__link:hover::after, .nav__link.active::after{ width:100%; }
.nav__cta{ margin-left:.5rem; padding:.6rem 1.4rem; font-size:.85rem; }
.nav__burger{
  display:none; margin-left:auto; flex-direction:column; gap:5px; padding:.5rem; z-index:960;
}
.nav__burger span{
  width:26px; height:2px; background:var(--white); border-radius:2px;
  transition:transform .35s var(--ease), opacity .3s;
}
.nav__burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav__burger.open span:nth-child(2){ opacity:0; }
.nav__burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* Menú móvil */
.mobile-menu{
  position:fixed; inset:0; z-index:950;
  background:var(--dark);
  display:grid; place-content:center;
  clip-path:circle(0% at calc(100% - 3rem) 2.5rem);
  transition:clip-path .6s var(--ease);
}
.mobile-menu.open{ clip-path:circle(150% at calc(100% - 3rem) 2.5rem); }
.mobile-menu nav{ display:grid; gap:1.4rem; text-align:center; }
.mobile-menu__link{
  font-family:var(--font-display); font-weight:600; font-size:1.7rem;
  color:var(--white); opacity:0; transform:translateY(18px);
  transition:opacity .5s ease, transform .5s var(--ease), color .3s;
}
.mobile-menu.open .mobile-menu__link{ opacity:1; transform:translateY(0); }
.mobile-menu.open .mobile-menu__link:nth-child(2){ transition-delay:.06s }
.mobile-menu.open .mobile-menu__link:nth-child(3){ transition-delay:.12s }
.mobile-menu.open .mobile-menu__link:nth-child(4){ transition-delay:.18s }
.mobile-menu.open .mobile-menu__link:nth-child(5){ transition-delay:.24s }
.mobile-menu.open .mobile-menu__link:nth-child(6){ transition-delay:.3s }
.mobile-menu__link:hover{ color:var(--orange); }
.mobile-menu__link--cta{
  justify-self:center; margin-top:1rem;
  padding:.7rem 2.2rem; border-radius:999px;
  background:var(--orange); font-size:1.1rem;
}

/* ---------- Marquee ---------- */
.marquee{
  padding:1.4rem 0; overflow:hidden;
  background:var(--orange);
  transform:rotate(-1.2deg) scale(1.02);
  margin-block:-1.4rem 0; z-index:3; position:relative;
}
.marquee__track{ display:flex; width:max-content; animation:marquee 28s linear infinite; }
.marquee__group{
  display:flex; align-items:center; gap:2.2rem; padding-right:2.2rem;
}
.marquee__group span{
  font-family:var(--font-display); font-weight:700;
  font-size:1.15rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--white); white-space:nowrap;
}
.marquee__group img{ width:26px; height:26px; flex:none; }
@keyframes marquee{ to{ transform:translateX(-50%) } }

/* ---------- Toast ---------- */
.toast{
  position:fixed; bottom:2rem; left:50%; transform:translate(-50%,20px);
  z-index:1100;
  background:var(--dark); color:var(--white);
  font-family:var(--font-body); font-weight:400; font-size:.88rem;
  padding:.8rem 1.5rem; border-radius:999px;
  border:1px solid var(--line);
  box-shadow:0 20px 50px -18px rgba(0,0,0,.6);
  opacity:0; pointer-events:none;
  transition:opacity .35s ease, transform .45s var(--ease);
}
.toast.show{ opacity:1; transform:translate(-50%,0); }
.toast b{ color:var(--orange); font-weight:600; }
