/* ══════════════════════════════════════════════════════════════════════════════
   LIMA COWORKING — ANIMATIONS 2026
   BUM Growth Solutions
   ══════════════════════════════════════════════════════════════════════════════ */

/* ── KEYFRAMES ───────────────────────────────────────────────────────────── */
@keyframes lc-reveal-up {
  0%   { opacity: 0; transform: translateY(60px) scale(.97); filter: blur(4px); }
  100% { opacity: 1; transform: translateY(0)    scale(1);   filter: blur(0); }
}
@keyframes lc-reveal-left {
  0%   { opacity: 0; transform: translateX(-60px); filter: blur(4px); }
  100% { opacity: 1; transform: translateX(0);     filter: blur(0); }
}
@keyframes lc-reveal-right {
  0%   { opacity: 0; transform: translateX(60px); filter: blur(4px); }
  100% { opacity: 1; transform: translateX(0);    filter: blur(0); }
}
@keyframes lc-badge-elastic {
  0%   { opacity: 0; transform: scale(0) rotate(-8deg); }
  60%  { transform: scale(1.15) rotate(2deg); }
  80%  { transform: scale(.95) rotate(-1deg); }
  100% { opacity: 1; transform: scale(1) rotate(0); }
}
@keyframes lc-title-reveal {
  0%   { opacity: 0; transform: translateY(40px) skewY(2deg); }
  100% { opacity: 1; transform: translateY(0) skewY(0); }
}
@keyframes lc-shimmer-text {
  0%   { background-position: -200% center; }
  100% { background-position: 200% center; }
}
@keyframes lc-float-smooth {
  0%, 100% { transform: translateY(0px) rotate(0deg); }
  33%       { transform: translateY(-8px) rotate(.5deg); }
  66%       { transform: translateY(-4px) rotate(-.5deg); }
}
@keyframes lc-pulse-border {
  0%, 100% { box-shadow: 0 0 0 0 rgba(215,84,33,0); }
  50%       { box-shadow: 0 0 0 8px rgba(215,84,33,.15); }
}
@keyframes lc-btn-shine {
  0%   { left: -100%; }
  100% { left: 150%; }
}
@keyframes lc-line-grow {
  from { transform: scaleX(0); transform-origin: left; }
  to   { transform: scaleX(1); transform-origin: left; }
}
@keyframes lc-card-in {
  0%   { opacity: 0; transform: translateY(50px) scale(.95); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes lc-magnetic-pulse {
  0%,100% { transform: scale(1); }
  50%      { transform: scale(1.04); }
}
@keyframes lc-number-flash {
  0%   { color: var(--c-primary); transform: scale(1.2); }
  100% { color: var(--c-primary); transform: scale(1); }
}

/* ── HERO — entrada cinematográfica con blur ─────────────────────────────── */
.lc-hero__badge {
  animation: lc-badge-elastic .8s cubic-bezier(.34,1.56,.64,1) .4s both;
}
.lc-hero__title {
  animation: lc-title-reveal 1s cubic-bezier(.16,1,.3,1) .55s both;
}
.lc-hero__title-accent {
  display: inline-block;
  background: linear-gradient(90deg,
    #D75421 0%,
    #FF7A45 25%,
    #FFB347 50%,
    #FF7A45 75%,
    #D75421 100%);
  background-size: 300% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: lc-shimmer-text 4s linear 1.5s infinite;
}
.lc-hero__subtitle {
  animation: lc-reveal-up .9s cubic-bezier(.16,1,.3,1) .75s both;
}
.lc-hero__actions {
  animation: lc-reveal-up .9s cubic-bezier(.16,1,.3,1) .9s both;
}
.lc-hero__trust {
  animation: lc-reveal-up .7s cubic-bezier(.16,1,.3,1) 1.1s both;
}
.lc-hero__services-bar {
  animation: lc-reveal-up .6s cubic-bezier(.16,1,.3,1) 1s both;
}
/* Service items en la barra inferior — stagger */
.lc-hero__service-item:nth-child(1) { animation: lc-reveal-up .5s ease 1.1s both; }
.lc-hero__service-item:nth-child(2) { animation: lc-reveal-up .5s ease 1.2s both; }
.lc-hero__service-item:nth-child(3) { animation: lc-reveal-up .5s ease 1.3s both; }
.lc-hero__service-item:nth-child(4) { animation: lc-reveal-up .5s ease 1.4s both; }
.lc-hero__service-item:nth-child(5) { animation: lc-reveal-up .5s ease 1.5s both; }
.lc-hero__service-item:nth-child(6) { animation: lc-reveal-up .5s ease 1.6s both; }

/* ── STATS — flash al terminar el contador ───────────────────────────────── */
.js-counter.lc-counted {
  animation: lc-number-flash .4s ease;
}
.lc-stat::after {
  transform-origin: left;
  animation: lc-line-grow .8s cubic-bezier(.16,1,.3,1) .3s both;
}

/* ── CARDS — entrada desde abajo con scale ───────────────────────────────── */
.lc-service-card,
.lc-sede-card,
.lc-sala-card,
.lc-oficina-card,
.lc-post-card {
  opacity: 0;
  animation: none;
  transition: opacity 0s;
}
.lc-service-card.lc-anim-ready,
.lc-sede-card.lc-anim-ready,
.lc-sala-card.lc-anim-ready,
.lc-oficina-card.lc-anim-ready,
.lc-post-card.lc-anim-ready {
  animation: lc-card-in .7s cubic-bezier(.16,1,.3,1) both;
  opacity: 1;
}

/* ── HOVER PREMIUM — elevación con física ────────────────────────────────── */
.lc-service-card {
  transition: transform .4s cubic-bezier(.34,1.56,.64,1),
              box-shadow .4s ease,
              border-color .2s ease !important;
}
.lc-service-card:hover {
  transform: translateY(-12px) scale(1.02) !important;
  box-shadow: 0 32px 64px rgba(215,84,33,.18), 0 8px 24px rgba(0,0,0,.1) !important;
  border-color: var(--c-primary) !important;
}
.lc-sede-card {
  transition: transform .4s cubic-bezier(.34,1.56,.64,1),
              box-shadow .4s ease,
              border-color .2s ease !important;
}
.lc-sede-card:hover {
  transform: translateY(-10px) scale(1.015) !important;
  box-shadow: 0 28px 56px rgba(215,84,33,.16) !important;
  border-color: var(--c-primary) !important;
}
.lc-sede-card__img img {
  transition: transform .7s cubic-bezier(.16,1,.3,1) !important;
}
.lc-sede-card:hover .lc-sede-card__img img {
  transform: scale(1.08) !important;
}
.lc-sala-card {
  transition: transform .4s cubic-bezier(.34,1.56,.64,1), box-shadow .4s ease !important;
}
.lc-sala-card:hover {
  transform: translateY(-10px) scale(1.015) !important;
  box-shadow: 0 28px 56px rgba(215,84,33,.16) !important;
}
.lc-oficina-card {
  transition: transform .4s cubic-bezier(.34,1.56,.64,1), box-shadow .4s ease, border-color .2s !important;
}
.lc-oficina-card:hover {
  transform: translateY(-12px) scale(1.02) !important;
  box-shadow: 0 32px 64px rgba(215,84,33,.18) !important;
  border-color: var(--c-primary) !important;
}
.lc-post-card {
  transition: transform .4s cubic-bezier(.34,1.56,.64,1), box-shadow .4s ease, border-color .2s !important;
}
.lc-post-card:hover {
  transform: translateY(-12px) scale(1.015) !important;
  box-shadow: 0 32px 64px rgba(215,84,33,.14) !important;
  border-color: var(--c-primary) !important;
}

/* ── BOTONES — brillo cinético ───────────────────────────────────────────── */
.lc-btn--primary,
.lc-btn--gold {
  position: relative;
  overflow: hidden;
}
.lc-btn--primary::before,
.lc-btn--gold::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255,255,255,.35) 50%,
    transparent 100%
  );
  transform: skewX(-20deg);
  pointer-events: none;
}
.lc-btn--primary:hover::before,
.lc-btn--gold:hover::before {
  animation: lc-btn-shine .55s cubic-bezier(.16,1,.3,1) forwards;
}
/* Pulse en CTAs principales */
.lc-btn--primary.lc-btn--lg,
.lc-btn--gold.lc-btn--lg {
  animation: lc-pulse-border 3s ease-in-out 4s infinite;
}

/* ── WHATSAPP — flotación con física ─────────────────────────────────────── */
.lc-whatsapp-float {
  animation: lc-float-smooth 4s ease-in-out infinite;
}
.lc-whatsapp-float:hover {
  animation: lc-magnetic-pulse .4s ease;
  transform: scale(1.15) !important;
}

/* ── NAV — underline animado ─────────────────────────────────────────────── */
.lc-nav__link {
  position: relative;
}
.lc-nav__link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: .6rem;
  right: .6rem;
  height: 2px;
  background: var(--c-primary);
  border-radius: 2px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s cubic-bezier(.16,1,.3,1);
}
.lc-nav__link:hover::after,
.lc-nav__link[aria-current="page"]::after {
  transform: scaleX(1);
}

/* ── LOGO — entrada suave ────────────────────────────────────────────────── */
.lc-header__logo img {
  animation: lc-badge-elastic .7s cubic-bezier(.34,1.56,.64,1) .1s both;
}

/* ── SECTION HEADERS — reveal con blur ───────────────────────────────────── */
.lc-section-tag {
  animation: lc-badge-elastic .6s cubic-bezier(.34,1.56,.64,1) .1s both;
}

/* ── FEATURE IMAGES — zoom en hover ──────────────────────────────────────── */
.lc-feature__img-wrap {
  transition: transform .4s cubic-bezier(.16,1,.3,1);
}
.lc-feature__img-wrap:hover {
  transform: scale(1.02);
}
.lc-feature__img-wrap img {
  transition: transform .6s cubic-bezier(.16,1,.3,1) !important;
}
.lc-feature__img-wrap:hover img {
  transform: scale(1.05) !important;
}

/* ── FOOTER SOCIALS — rebote elástico ────────────────────────────────────── */
.lc-footer__socials a {
  transition: transform .35s cubic-bezier(.34,1.56,.64,1),
              background .2s, border-color .2s, color .2s !important;
}
.lc-footer__socials a:hover {
  transform: translateY(-6px) scale(1.18) !important;
}

/* ── MODAL — spring physics ──────────────────────────────────────────────── */
@keyframes lc-modal-spring {
  0%   { opacity: 0; transform: scale(.85) translateY(32px); }
  60%  { transform: scale(1.03) translateY(-4px); }
  80%  { transform: scale(.98) translateY(2px); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}
.lc-modal__box {
  animation: lc-modal-spring .5s cubic-bezier(.16,1,.3,1) !important;
}

/* ── HERO BLOG — paneo continuo ──────────────────────────────────────────── */
@keyframes lc-pan-image {
  0%   { transform: scale(1.08) translate(0, 0); }
  33%  { transform: scale(1.08) translate(-1.5%, .5%); }
  66%  { transform: scale(1.08) translate(1%, -.5%); }
  100% { transform: scale(1.08) translate(0, 0); }
}
.lc-hero-blog__bg-img {
  animation: lc-pan-image 25s ease-in-out infinite !important;
}

/* ── SCROLL REVEAL con blur ──────────────────────────────────────────────── */
.js-reveal {
  opacity: 0;
  transform: translateY(32px);
  filter: blur(4px);
  transition: opacity .7s cubic-bezier(.16,1,.3,1),
              transform .7s cubic-bezier(.16,1,.3,1),
              filter .7s ease;
}
.js-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}
.js-reveal-up {
  opacity: 0;
  transform: translateY(48px);
  filter: blur(4px);
  transition: opacity .7s cubic-bezier(.16,1,.3,1),
              transform .7s cubic-bezier(.16,1,.3,1),
              filter .7s ease;
}
.js-reveal-up.is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}
.js-reveal-left {
  opacity: 0;
  transform: translateX(-48px);
  filter: blur(4px);
  transition: opacity .7s cubic-bezier(.16,1,.3,1),
              transform .7s cubic-bezier(.16,1,.3,1),
              filter .7s ease;
}
.js-reveal-left.is-visible {
  opacity: 1;
  transform: translateX(0);
  filter: blur(0);
}
.js-reveal-right {
  opacity: 0;
  transform: translateX(48px);
  filter: blur(4px);
  transition: opacity .7s cubic-bezier(.16,1,.3,1),
              transform .7s cubic-bezier(.16,1,.3,1),
              filter .7s ease;
}
.js-reveal-right.is-visible {
  opacity: 1;
  transform: translateX(0);
  filter: blur(0);
}

/* ── CURSOR PERSONALIZADO ────────────────────────────────────────────────── */
.lc-cursor {
  width: 12px;
  height: 12px;
  background: var(--c-primary);
  border-radius: 50%;
  position: fixed;
  top: 0; left: 0;
  pointer-events: none;
  z-index: 99999;
  transition: transform .1s ease, opacity .2s ease;
  mix-blend-mode: multiply;
}
.lc-cursor-ring {
  width: 36px;
  height: 36px;
  border: 2px solid rgba(215,84,33,.5);
  border-radius: 50%;
  position: fixed;
  top: 0; left: 0;
  pointer-events: none;
  z-index: 99998;
  transition: transform .15s ease, width .2s ease, height .2s ease, opacity .2s ease;
}
.lc-cursor--hover { transform: scale(2.5) !important; }
.lc-cursor-ring--hover { width: 56px; height: 56px; opacity: .5; }
body { cursor: none; }
a, button, [role="button"], .lc-btn, input, select, textarea { cursor: none; }

/* ── ACCESIBILIDAD ───────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    filter: none !important;
  }
  body { cursor: auto; }
  a, button { cursor: pointer; }
  .lc-cursor, .lc-cursor-ring { display: none; }
}

/* ── ACCESIBILIDAD: Fixes de contraste ───────────────────────────────────── */
/* Sticky bar CTA — fondo más oscuro para contraste AA */
.lc-sticky-bar__btn--cta {
    background: #B84519 !important;
    color: #FFFFFF !important;
}
/* FOMO popup — texto con contraste suficiente */
#lc-fomo-popup {
    background: #FFFFFF !important;
}
.lc-fomo-text {
    color: #2A1A0E !important;
}
.lc-fomo-text strong {
    color: #3E1A13 !important;
}