/* Calendario (/eventos/) y landings de eventos. Se carga después de
   blog.css, fl3.css y com.css (botones, títulos, cuenta regresiva, barra). */
.ev { --ev-shadow: 0 30px 70px -28px rgba(0, 0, 0, .85); }
.ev img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ev-ico { width: 1.15em; height: 1.15em; flex: 0 0 auto; }
.ev-arrow { width: 1.05em; height: 1.05em; flex: 0 0 auto; }

/* estados y fechas */
.ev-status {
  display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .7rem; border-radius: 999px;
  font: 700 .68rem/1 'Space Grotesk', sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #fff;
  background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .2);
}
.ev-status::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.ev-status--disponible { color: #7CF5B0; border-color: rgba(124, 245, 176, .35); background: rgba(124, 245, 176, .1); }
.ev-status--ultimos { color: #FFB347; border-color: rgba(255, 179, 71, .4); background: rgba(255, 179, 71, .12); }
.ev-status--proximamente { color: var(--lx-pink); border-color: rgba(255, 192, 216, .35); background: rgba(255, 192, 216, .08); }
.ev-status--agotado, .ev-status--finalizado { color: var(--lx-muted); }
.ev-datebox {
  position: absolute; top: .9rem; left: .9rem; z-index: 2; display: grid; place-items: center; width: 62px; padding: .5rem 0 .45rem;
  border-radius: 14px; background: var(--lx-grad); color: #fff; box-shadow: 0 10px 25px -8px rgba(235, 1, 89, .7); text-align: center;
}
.ev-datebox small { font: 700 .66rem/1 'Space Grotesk', sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.ev-datebox strong { font: 800 1.7rem/1 'Epilogue', sans-serif; margin-top: .15rem; }
.ev-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0 0 .7rem; }
.ev-card__meta > span:not(.ev-status) { font: 600 .72rem/1 'Space Grotesk', sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--lx-pink); }
.ev-plus { padding: .3rem .55rem; border-radius: 8px; border: 1px solid rgba(255, 192, 216, .35); }
.ev-card__date { display: flex; align-items: center; gap: .5rem; margin: 0 0 .7rem; color: var(--lx-text); font-weight: 600; font-size: .95rem; }
.ev-card__date .ev-ico { color: var(--lx-pink); }

/* hero del calendario */
.ev-hero { padding: clamp(3rem, 7vw, 5rem) 0 2rem; text-align: center; }
.ev-h1 { font-size: clamp(2.8rem, 8vw, 5.6rem); margin-bottom: 1rem; }
.ev-hero__lead { max-width: 640px; margin: 0 auto; font-size: 1.12rem; line-height: 1.65; color: var(--lx-body); }
.ev-legend { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem 1.4rem; margin: 1.6rem 0 0; padding: 0; }
.ev-legend li { display: flex; align-items: center; gap: .5rem; font-size: .88rem; color: var(--lx-muted); }
.ev-legend li::before { content: ''; width: 10px; height: 10px; border-radius: 50%; }
.ev-t--tema::before { background: #EB0159; } .ev-t--pool::before { background: #38C6F4; } .ev-t--viaje::before { background: #FE5000; }

/* próximo evento destacado */
.ev-next {
  display: grid; grid-template-columns: minmax(260px, 420px) 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center;
  padding-top: 1.5rem; padding-bottom: 1.5rem;
}
.ev-next__flyer { display: block; border-radius: 24px; overflow: hidden; aspect-ratio: 4 / 5; box-shadow: 0 40px 90px -35px rgba(235, 1, 89, .65); transform: rotate(-2deg); transition: transform .4s ease; border: 1px solid rgba(255, 192, 216, .2); }
.ev-next__flyer:hover { transform: rotate(0) scale(1.02); }
.ev-next__title { margin: 0 0 .9rem; font: 800 clamp(2.2rem, 5vw, 3.6rem)/1 'Epilogue', sans-serif; letter-spacing: -.04em; color: var(--lx-text); }
.ev-next__hook { margin: 0; font-size: 1.1rem; line-height: 1.6; color: var(--lx-body); max-width: 520px; }
.ev-cd { margin-top: 1.6rem; }

/* tarjetas de próximos eventos */
.ev-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.ev-cards--2 { grid-template-columns: repeat(2, 1fr); max-width: 860px; margin: 0 auto; }
.ev-card { display: flex; flex-direction: column; border-radius: 24px; overflow: hidden; background: var(--lx-card); border: 1px solid var(--lx-line); box-shadow: var(--ev-shadow); transition: transform .3s ease, border-color .3s ease; }
.ev-card:hover { transform: translateY(-5px); border-color: rgba(255, 61, 139, .45); }
.ev-card__flyer { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; }
.ev-card__flyer img { transition: transform .7s ease; }
.ev-card:hover .ev-card__flyer img { transform: scale(1.05); }
.ev-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.4rem 1.4rem 1.5rem; }
.ev-card h3 { margin: 0 0 .5rem; font: 800 1.4rem/1.2 'Epilogue', sans-serif; letter-spacing: -.02em; }
.ev-card h3 a { color: var(--lx-text); text-decoration: none; }
.ev-card__hook { margin: 0 0 1.2rem; font-size: .95rem; line-height: 1.55; color: var(--lx-muted); flex: 1; }
.ev-card__actions { display: flex; gap: .6rem; flex-wrap: wrap; }
.ev-card__actions .fl3-btn { flex: 1 1 auto; }

/* viaje destacado */
.ev-trip { padding-top: 0; }
.ev-trip__inner { position: relative; display: block; min-height: 300px; border-radius: 26px; overflow: hidden; isolation: isolate; text-decoration: none; box-shadow: var(--ev-shadow); padding: 0; }
.ev-trip__inner > img { position: absolute; inset: 0; z-index: -2; filter: brightness(.6); transition: transform .8s ease; }
.ev-trip__inner::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(26, 8, 37, .95) 0%, rgba(26, 8, 37, .6) 55%, transparent); }
.ev-trip__inner:hover > img { transform: scale(1.04); }
.ev-trip__body { display: grid; gap: .6rem; max-width: 560px; padding: clamp(2rem, 5vw, 3.5rem); }
.ev-trip__body small { font: 600 .74rem/1 'Space Grotesk', sans-serif; letter-spacing: .18em; text-transform: uppercase; color: var(--lx-pink); }
.ev-trip__body strong { font: 800 clamp(1.7rem, 4vw, 2.6rem)/1.05 'Epilogue', sans-serif; color: #fff; letter-spacing: -.03em; }
.ev-trip__body > span { color: rgba(248, 220, 255, .88); line-height: 1.6; }
.ev-trip__body em { display: inline-flex; align-items: center; gap: .4rem; font-style: normal; font-weight: 700; color: #ff3d8b; }

/* proceso */
.ev-process { background: linear-gradient(180deg, transparent, rgba(145, 0, 203, .12) 50%, transparent); }
.ev-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; counter-reset: s; }
.ev-step { position: relative; padding: 1.8rem 1.5rem 1.6rem; border-radius: 22px; background: var(--lx-card); border: 1px solid var(--lx-line); }
.ev-step:not(:last-child)::after {
  content: ''; position: absolute; top: 2.55rem; right: -1rem; width: 1rem; height: 2px; background: var(--lx-grad); z-index: 1;
}
.ev-step__n {
  display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 1.1rem; border-radius: 50%;
  background: var(--lx-grad); color: #fff; font: 800 1.4rem/1 'Epilogue', sans-serif; box-shadow: 0 0 30px rgba(235, 1, 89, .45);
}
.ev-step:last-child .ev-step__n { background: #fff; color: #EB0159; }
.ev-step h3 { margin: 0 0 .45rem; font: 800 1.2rem/1.2 'Epilogue', sans-serif; color: var(--lx-text); }
.ev-step p { margin: 0; font-size: .93rem; line-height: 1.55; color: var(--lx-muted); }
.ev-step__link { display: inline-flex; align-items: center; gap: .35rem; margin-top: .9rem; font-weight: 700; color: #ff3d8b !important; text-decoration: none; }
.ev-step__link:hover { text-decoration: underline; }

/* eventos pasados */
.ev-pasts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1.25rem 1rem; }
.ev-past { display: contents; }
.ev-past__month { display: none; }
.ev-past__item { position: relative; margin: 0; border-radius: 18px; overflow: hidden; aspect-ratio: 4 / 5; background: var(--lx-card); border: 1px solid var(--lx-line); }
.ev-past__item img { filter: saturate(.7) brightness(.7); transition: filter .4s ease, transform .6s ease; }
.ev-past__item:hover img { filter: saturate(1) brightness(.9); transform: scale(1.04); }
.ev-past__item figcaption { position: absolute; inset: auto 0 0; padding: 2.5rem .9rem .85rem; background: linear-gradient(180deg, transparent, rgba(20, 6, 29, .95)); }
.ev-past__item figcaption strong { display: block; color: #fff; font: 700 .98rem/1.25 'Epilogue', sans-serif; }
.ev-past__item figcaption small { display: block; margin-top: .25rem; color: var(--lx-muted); font-size: .78rem; text-transform: capitalize; }
.ev-past__item .ev-status { position: absolute; top: .7rem; right: .7rem; background: rgba(26, 8, 37, .75); }

.ev-final { text-align: center; }

/* ── landing ── */
.ev-lhero { position: relative; padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(3rem, 6vw, 5rem); overflow: hidden; isolation: isolate; }
.ev-lhero__bg { position: absolute; inset: -40px; z-index: -1; background-size: cover; background-position: center; filter: blur(50px) saturate(1.3) brightness(.45); opacity: .7; }
.ev-lhero__bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26, 8, 37, .3), #1A0825 95%); }
.ev-lhero__grid { display: grid; grid-template-columns: minmax(260px, 440px) 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.ev-lhero__flyer { position: relative; margin: 0; border-radius: 24px; overflow: hidden; aspect-ratio: 4 / 5; box-shadow: 0 50px 100px -40px rgba(0, 0, 0, .95), 0 0 0 1px rgba(255, 192, 216, .2); }
.ev-crumbs { display: flex; gap: .5rem; margin-bottom: 1.2rem; font-size: .85rem; color: var(--lx-muted); }
.ev-crumbs a { color: var(--lx-pink); text-decoration: none; }
.ev-lhero__title { margin: 0 0 .9rem; font: 800 clamp(2.4rem, 6vw, 4.4rem)/.98 'Epilogue', sans-serif; letter-spacing: -.045em; color: var(--lx-text); }
.ev-lhero__hook { margin: 0 0 1.5rem; font-size: 1.15rem; line-height: 1.6; color: var(--lx-body); max-width: 560px; }
.ev-facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: .6rem; }
.ev-facts li { display: flex; gap: .7rem; align-items: center; padding: .8rem 1rem; border-radius: 16px; background: rgba(255, 255, 255, .05); border: 1px solid var(--lx-line); }
.ev-facts .ev-ico { width: 1.4rem; height: 1.4rem; color: var(--lx-pink); }
.ev-facts small { display: block; font: 500 .66rem/1 'Space Grotesk', sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--lx-muted); }
.ev-facts strong { display: block; margin-top: .25rem; color: #fff; font-size: .95rem; }
.ev-share-wrap { margin-top: 1.6rem; }
.ev-share-wrap > small { display: block; margin-bottom: .6rem; font: 500 .72rem/1 'Space Grotesk', sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--lx-muted); }
.ev-share { display: flex; flex-wrap: wrap; gap: .5rem; }
.ev-share__btn {
  display: inline-flex; align-items: center; gap: .45rem; padding: .6rem .95rem; border-radius: 999px; cursor: pointer;
  background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 192, 216, .25); color: #fff !important; text-decoration: none;
  font: 600 .85rem/1 'Manrope', sans-serif; transition: background .2s ease, transform .2s ease;
}
.ev-share__btn:hover { transform: translateY(-2px); }
.ev-share__btn .ev-ico { width: 1.05rem; height: 1.05rem; }
.ev-share__btn--wa:hover { background: #25D366; } .ev-share__btn--fb:hover { background: #1877F2; }
.ev-share__btn--x:hover { background: #000; } .ev-share__btn--tg:hover { background: #229ED9; }
.ev-share__btn--copy:hover, .ev-share__btn--native:hover { background: rgba(235, 1, 89, .5); }
.ev-share__btn[hidden] { display: none; }

.ev-theme { display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.ev-dress { position: relative; padding: 2rem; border-radius: 24px; background: linear-gradient(160deg, rgba(235, 1, 89, .18), rgba(145, 0, 203, .14)); border: 1px solid rgba(255, 61, 139, .35); box-shadow: var(--ev-shadow); }
.ev-dress__ico { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 1.1rem; border-radius: 16px; background: var(--lx-grad); color: #fff; }
.ev-dress__ico .ev-ico { width: 26px; height: 26px; }
.ev-dress__text { margin: 0 0 1.1rem; font: 700 1.15rem/1.5 'Manrope', sans-serif; color: var(--lx-text); }
.ev-dress__tags { display: flex; flex-wrap: wrap; gap: .45rem; }
.ev-dress__tags span { padding: .4rem .8rem; border-radius: 999px; background: rgba(255, 255, 255, .1); font-size: .82rem; font-weight: 600; color: #fff; }
.ev-dress__note { margin: 1.2rem 0 0; font-size: .88rem; color: var(--lx-muted); line-height: 1.55; }

.ev-inc { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .8rem; }
.ev-inc li { display: flex; gap: .8rem; align-items: flex-start; padding: 1.2rem 1.25rem; border-radius: 18px; background: var(--lx-card); border: 1px solid var(--lx-line); line-height: 1.5; color: var(--lx-text); }
.ev-inc .ev-ico { width: 1.6rem; height: 1.6rem; padding: .3rem; border-radius: 50%; background: var(--lx-grad); color: #fff; }

.ev-prices { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
.ev-price { padding: 1.6rem; border-radius: 22px; text-align: center; background: var(--lx-card); border: 1px solid var(--lx-line); }
.ev-price small { font: 600 .74rem/1 'Space Grotesk', sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--lx-pink); }
.ev-price strong { display: block; margin: .6rem 0 .3rem; font: 800 2.6rem/1 'Epilogue', sans-serif; background: var(--lx-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ev-price strong span { font-size: .4em; margin-left: .2em; }
.ev-price em { font-style: normal; font-size: .85rem; color: var(--lx-muted); }
.ev-fine { margin: 1rem 0 0; text-align: center; font-size: .88rem; color: var(--lx-muted); }
.ev-ticket {
  display: grid; grid-template-columns: auto 1fr auto; gap: 1.4rem; align-items: center; padding: 1.8rem 2rem; border-radius: 24px;
  background: linear-gradient(180deg, #2b1439, #1f0b2b); border: 1px solid rgba(255, 192, 216, .28); box-shadow: 0 30px 80px -40px rgba(235, 1, 89, .7);
}
.ev-ticket__ico { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 18px; background: var(--lx-grad); color: #fff; }
.ev-ticket__ico .ev-ico { width: 28px; height: 28px; }
.ev-ticket h3 { margin: 0 0 .35rem; font: 800 1.35rem/1.2 'Epilogue', sans-serif; color: var(--lx-text); }
.ev-ticket p { margin: 0; color: var(--lx-body); line-height: 1.55; }
.ev-ticket strong { color: var(--lx-text); }

.ev-rules { display: grid; grid-template-columns: auto 1fr 1.4fr; gap: 1.5rem 2rem; align-items: center; padding: 2rem 2.2rem; border-radius: 24px; background: var(--lx-card); border: 1px solid var(--lx-line); }
.ev-rules__ico { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 20px; background: linear-gradient(135deg, rgba(235, 1, 89, .25), rgba(145, 0, 203, .25)); color: var(--lx-pink); }
.ev-rules__ico .ev-ico { width: 30px; height: 30px; }
.ev-rules__title { margin: 0; font: 800 1.45rem/1.2 'Epilogue', sans-serif; color: var(--lx-text); }
.ev-rules ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .8rem 1.4rem; }
.ev-rules li strong { display: block; color: var(--lx-text); font-size: .98rem; }
.ev-rules li span { font-size: .88rem; color: var(--lx-muted); line-height: 1.5; }

/* responsive */
@media (max-width: 1000px) {
  .ev-cards { grid-template-columns: repeat(2, 1fr); }
  .ev-steps { grid-template-columns: repeat(2, 1fr); }
  .ev-step::after { display: none; }
  .ev-rules { grid-template-columns: auto 1fr; }
  .ev-rules ul { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  .ev-next, .ev-lhero__grid, .ev-theme { grid-template-columns: 1fr; }
  .ev-next__flyer, .ev-lhero__flyer { max-width: 380px; width: 100%; margin: 0 auto; }
  .ev-facts { grid-template-columns: 1fr; }
  .ev-ticket { grid-template-columns: 1fr; text-align: center; justify-items: center; }
}
@media (max-width: 640px) {
  .ev-cards, .ev-cards--2 { grid-template-columns: 1fr; }
  .ev-steps { grid-template-columns: 1fr; }
  .ev-pasts { grid-template-columns: repeat(2, 1fr); gap: .7rem; }
  .ev-rules { grid-template-columns: 1fr; padding: 1.6rem; }
  .ev-rules ul { grid-template-columns: 1fr; }
  .ev-share__btn span { display: none; }
  .ev-share__btn { padding: .7rem; }
  .ev-share__btn--copy span, .ev-share__btn--native span { display: inline; }
  .ev .fl3-hero__actions .fl3-btn { flex: 1 1 100%; }
}
