:root{
  --events-bg-1:#05070f;
  --events-bg-2:#0e1733;
  --events-accent:#ffcc0a;
  --events-ink:#f6f8ff;
  --events-card-border:rgba(255,255,255,.24);
}

.events-coverage{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  padding:clamp(76px, 10vw, 120px) 20px;
  background:
    radial-gradient(1000px 520px at 12% 12%, rgba(255,204,10,.12), transparent 60%),
    radial-gradient(900px 460px at 88% 8%, rgba(84,134,255,.16), transparent 58%),
    linear-gradient(160deg, var(--events-bg-1), var(--events-bg-2));
}

.events-coverage::before,
.events-coverage::after{
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  border-radius:50%;
  filter:blur(60px);
  pointer-events:none;
  z-index:0;
}

.events-coverage::before{
  top:-180px;
  left:-110px;
  background:rgba(255,204,10,.18);
  animation:eventsOrbA 12s ease-in-out infinite;
}

.events-coverage::after{
  right:-160px;
  bottom:-220px;
  background:rgba(87,152,255,.2);
  animation:eventsOrbB 14s ease-in-out infinite;
}

.events-coverage__container{
  position:relative;
  z-index:1;
  max-width:1320px;
  margin:0 auto;
}

.events-coverage__title{
  margin:0 0 clamp(34px, 6vw, 66px);
  text-align:center;
  font-family:var(--font-title, 'Bebas Neue', sans-serif);
  font-size:clamp(40px, 7vw, 74px);
  letter-spacing:2px;
  line-height:.9;
  color:var(--events-ink);
  text-shadow:0 12px 36px rgba(0,0,0,.32);
  animation:eventsTitleIn .9s cubic-bezier(.2,.7,.2,1);
}

.events-coverage__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:22px;
}

@media (min-width: 1024px){
  .events-coverage__grid{
    grid-template-columns:repeat(6, minmax(0, 1fr));
    gap:22px;
  }

  .events-coverage__grid > .event-card{
    grid-column:span 2;
  }

  .events-coverage__grid > .event-card:nth-child(4){
    grid-column:2 / span 2;
  }

  .events-coverage__grid > .event-card:nth-child(5){
    grid-column:4 / span 2;
  }
}

.event-card{
  --mx:50%;
  --my:50%;
  position:relative;
  isolation:isolate;
  min-height:320px;
  border-radius:24px;
  overflow:hidden;
  text-decoration:none;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:28px;
  border:1px solid var(--events-card-border);
  box-shadow:0 18px 45px rgba(0,0,0,.34);
  transform:translateY(34px) scale(.96) rotateX(8deg);
  transform-origin:50% 100%;
  opacity:0;
  filter:saturate(.85);
  transition:
    transform .85s cubic-bezier(.2,.75,.2,1),
    opacity .62s ease,
    filter .45s ease,
    box-shadow .45s ease;
  will-change:transform;
}

.event-card.is-in{
  opacity:1;
  transform:translateY(0) scale(1) rotateX(0);
  filter:saturate(1);
}

.event-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-3;
  background-image:var(--card-bg);
  background-size:cover;
  background-position:center;
  filter:blur(2.8px) saturate(.96) brightness(.86);
  transform:scale(1.22);
  transition:transform 1.15s cubic-bezier(.18,.82,.2,1), filter .75s ease;
}

.event-card::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(12deg, rgba(5,7,15,.76) 0%, rgba(5,7,15,.24) 52%, rgba(255,255,255,.04) 100%),
    radial-gradient(circle at var(--mx) var(--my), rgba(255,255,255,.24), transparent 46%);
  transition:background .35s ease;
}

.event-card__beam{
  position:absolute;
  inset:auto -30% -62%;
  height:70%;
  z-index:-1;
  transform:rotate(-8deg);
  background:linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.32), rgba(255,255,255,0));
  opacity:0;
  transition:opacity .4s ease, transform .7s cubic-bezier(.2,.78,.2,1);
}

.event-card__label{
  font-family:var(--font-title, 'Bebas Neue', sans-serif);
  font-size:clamp(36px, 4.8vw, 52px);
  letter-spacing:1.6px;
  line-height:.95;
  color:#fff;
  text-shadow:0 8px 24px rgba(0,0,0,.5);
  transition:transform .42s ease, letter-spacing .42s ease;
}

.event-card__hint{
  margin-top:8px;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:rgba(255,255,255,.88);
  opacity:0;
  transform:translateY(10px);
  transition:opacity .32s ease, transform .38s ease;
}

.event-card:hover{
  transform:translateY(-8px) scale(1.012) rotateX(0);
  box-shadow:0 30px 62px rgba(0,0,0,.42);
}

.event-card:hover::before{
  transform:scale(1.28);
  filter:blur(1.8px) saturate(1.04) brightness(.9);
}

.event-card:hover::after{
  background:
    linear-gradient(8deg, rgba(5,7,15,.58) 0%, rgba(5,7,15,.16) 56%, rgba(255,255,255,.08) 100%),
    radial-gradient(circle at var(--mx) var(--my), rgba(255,255,255,.3), transparent 48%);
}

.event-card:hover .event-card__beam{
  opacity:1;
  transform:translateY(-34px) rotate(-8deg);
}

.event-card:hover .event-card__label{
  transform:translateY(-3px);
  letter-spacing:2.2px;
}

.event-card:hover .event-card__hint{
  opacity:1;
  transform:translateY(0);
}

.event-card--boda { --card-bg: url('../img/boda-invitados.jpg'); }
.event-card--baby { --card-bg: url('../img/babyshower.png'); }
.event-card--empresa { --card-bg: url('../img/aniversario.jpg'); }
.event-card--inaug { --card-bg: url('../img/Fotomaton%20corregida.png'); }
.event-card--privadas { --card-bg: url('../img/gala-empresarial.jpg'); }

@keyframes eventsTitleIn{
  from{
    opacity:0;
    transform:translateY(16px) scale(.98);
    filter:blur(2px);
  }
  to{
    opacity:1;
    transform:translateY(0) scale(1);
    filter:blur(0);
  }
}

@keyframes eventsOrbA{
  0%,100%{
    transform:translate(0,0) scale(1);
  }
  50%{
    transform:translate(44px, 22px) scale(1.08);
  }
}

@keyframes eventsOrbB{
  0%,100%{
    transform:translate(0,0) scale(1);
  }
  50%{
    transform:translate(-40px, -14px) scale(1.09);
  }
}

@media (max-width:900px){
  .events-coverage{
    padding:84px 16px;
  }

  .events-coverage__grid{
    gap:16px;
  }

  .event-card{
    min-height:250px;
    padding:22px;
  }

  .event-card__label{
    font-size:40px;
  }
}

@media (max-width:620px){
  .events-coverage__title{
    margin-bottom:36px;
  }

  .event-card{
    min-height:220px;
  }

  .event-card__label{
    font-size:34px;
  }
}

@media (prefers-reduced-motion:reduce){
  .events-coverage::before,
  .events-coverage::after,
  .events-coverage__title,
  .event-card,
  .event-card::before,
  .event-card::after,
  .event-card__beam,
  .event-card__label,
  .event-card__hint{
    animation:none !important;
    transition:none !important;
  }

  .event-card{
    opacity:1;
    transform:none;
    filter:none;
  }

  .event-card__hint{
    opacity:1;
    transform:none;
  }
}
