.event-popup {
  position:fixed;
  inset:0;
  z-index:5000;
  display:grid;
  place-items:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  transition:opacity 220ms ease,visibility 220ms ease;
}
.event-popup.is-visible { opacity:1;visibility:visible; }
.event-popup-backdrop { position:absolute;inset:0;background:rgba(12,20,43,.76);backdrop-filter:blur(10px); }
.event-popup-card {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(260px,.88fr) minmax(340px,1.12fr);
  width:min(940px,100%);
  max-height:calc(100vh - 48px);
  overflow:auto;
  border:1px solid rgba(255,255,255,.62);
  border-radius:30px;
  background:#fff;
  box-shadow:0 36px 100px rgba(8,14,34,.42);
}
.event-popup-card.without-image { grid-template-columns:1fr;width:min(680px,100%); }
.event-popup-media { position:relative;min-height:520px;overflow:hidden;background:linear-gradient(145deg,#eeeaff,#e7f8f3); }
.event-popup-media img { width:100%;height:100%;object-fit:cover; }
.event-popup-media::after { content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(16,25,54,.24));pointer-events:none; }
.event-popup-content { display:flex;flex-direction:column;padding:clamp(30px,5vw,56px); }
.event-popup-close {
  position:absolute;
  top:18px;
  right:18px;
  z-index:4;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  padding:0;
  border:1px solid rgba(226,230,240,.9);
  border-radius:50%;
  color:#1d2a49;
  background:rgba(255,255,255,.94);
  box-shadow:0 10px 24px rgba(29,42,73,.14);
  font:700 1.5rem/1 Nunito,sans-serif;
  cursor:pointer;
}
.event-popup-title { margin:0 50px 14px 0;color:#1d2a49;font-size:clamp(2.2rem,5vw,3.6rem);font-weight:900;line-height:1;letter-spacing:-.04em; }
.event-popup-description { margin:0 0 24px;color:#687693;font-size:.96rem;font-weight:700;line-height:1.7;white-space:pre-line; }
.event-popup-details { display:grid;gap:12px;margin:auto 0 28px;padding:18px;border:1px solid #e8ebf3;border-radius:16px;background:#fafbfe; }
.event-popup-detail { display:block;color:#1d2a49; }
.event-popup-detail span { display:block;color:#778198;font-size:.69rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase; }
.event-popup-detail strong { display:block;margin-top:2px;font-size:.88rem; }
.event-popup-actions { display:flex;flex-wrap:wrap;gap:10px; }
.event-popup-button { display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 17px;border:1px solid #e1e5ef;border-radius:999px;color:#1d2a49;background:#fff;font:900 .78rem Nunito,sans-serif;text-decoration:none;cursor:pointer; }
.event-popup-button.primary { border-color:#6b57ff;color:#fff;background:#6b57ff;box-shadow:0 12px 25px rgba(107,87,255,.22); }
.event-popup-button.directions { border-color:#1d2a49;color:#fff;background:#1d2a49; }
.event-popup-count { margin:18px 0 0;color:#8992a5;font-size:.72rem;font-weight:800; }
.event-popup-nav { display:flex;gap:8px;margin-top:14px; }
.event-popup-nav button { display:grid;place-items:center;width:38px;height:38px;border:1px solid #e1e5ef;border-radius:50%;color:#1d2a49;background:#fff;font:900 1.25rem Nunito,sans-serif;cursor:pointer; }
.event-popup-nav button:disabled { opacity:.35;cursor:not-allowed; }
.event-popup-open { overflow:hidden; }
.event-share-modal { position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:20px;opacity:0;visibility:hidden;transition:opacity 180ms ease,visibility 180ms ease; }
.event-share-modal.is-visible { opacity:1;visibility:visible; }
.event-share-backdrop { position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:rgba(8,14,34,.55);backdrop-filter:blur(5px);cursor:default; }
.event-share-panel { position:relative;z-index:1;width:min(440px,100%);padding:30px;border:1px solid rgba(255,255,255,.8);border-radius:26px;background:#fff;box-shadow:0 30px 90px rgba(8,14,34,.36);transform:translateY(12px) scale(.98);transition:transform 180ms ease; }
.event-share-modal.is-visible .event-share-panel { transform:translateY(0) scale(1); }
.event-share-heading { display:flex;align-items:flex-start;justify-content:space-between;gap:20px; }
.event-share-kicker { display:block;margin-bottom:5px;color:#6b57ff;font-size:.67rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase; }
.event-share-heading h3 { margin:0;color:#1d2a49;font-size:1.55rem;font-weight:900;line-height:1.15;letter-spacing:-.025em; }
.event-share-close { display:grid;flex:0 0 auto;place-items:center;width:38px;height:38px;padding:0;border:1px solid #e5e8f0;border-radius:50%;color:#1d2a49;background:#f8f9fc;font:700 1.35rem/1 Nunito,sans-serif;cursor:pointer; }
.event-share-intro { margin:12px 0 22px;color:#74809a;font-size:.84rem;font-weight:700;line-height:1.55; }
.event-share-options { display:grid;gap:10px; }
.event-share-option { display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:13px;width:100%;min-height:68px;padding:10px 14px 10px 10px;border:1px solid #e7eaf2;border-radius:17px;color:#1d2a49;background:#fff;font-family:Nunito,sans-serif;text-align:left;text-decoration:none;cursor:pointer;transition:transform 150ms ease,border-color 150ms ease,box-shadow 150ms ease; }
.event-share-option:hover { transform:translateY(-1px);border-color:#d5d9e7;box-shadow:0 10px 24px rgba(29,42,73,.09); }
.event-share-option-icon { display:grid;place-items:center;width:46px;height:46px;border-radius:14px;color:#fff;font-size:1rem;font-weight:900; }
.event-share-option.whatsapp .event-share-option-icon { background:#20bd62; }
.event-share-option.whatsapp .event-share-option-icon::before { content:"W"; }
.event-share-option.facebook .event-share-option-icon { background:#1877f2; }
.event-share-option.facebook .event-share-option-icon::before { content:"f";font:900 1.45rem Arial,sans-serif; }
.event-share-option.copy .event-share-option-icon { color:#6b57ff;background:#efecff; }
.event-share-option.copy .event-share-option-icon::before { content:"↗";font-size:1.25rem; }
.event-share-option.is-copied .event-share-option-icon { color:#fff;background:#20bd62; }
.event-share-option.is-copied .event-share-option-icon::before { content:"✓"; }
.event-share-option-copy { display:block; }
.event-share-option-copy strong,.event-share-option-copy small { display:block; }
.event-share-option-copy strong { font-size:.9rem;font-weight:900; }
.event-share-option-copy small { margin-top:2px;color:#7c879d;font-size:.71rem;font-weight:700; }
.event-share-option-arrow { color:#a0a8b8;font-size:1.45rem;font-weight:700; }

@media (max-width:720px) {
  .event-popup { padding:12px;align-items:end; }
  .event-popup-card { grid-template-columns:1fr;width:100%;max-height:calc(100dvh - 24px);border-radius:25px; }
  .event-popup-media { min-height:0;aspect-ratio:16/10; }
  .event-popup-content { padding:26px 22px 24px; }
  .event-popup-title { font-size:2.25rem; }
  .event-popup-description { font-size:.88rem;line-height:1.6; }
  .event-popup-details { margin-bottom:20px; }
  .event-popup-actions { display:grid;grid-template-columns:1fr 1fr; }
  .event-share-panel { padding:24px;border-radius:23px; }
}

@media (max-width:420px) {
  .event-popup { padding:0; }
  .event-popup-card { max-height:96dvh;border-radius:24px 24px 0 0; }
  .event-popup-media { aspect-ratio:16/9; }
}

@media (prefers-reduced-motion:reduce) {
  .event-popup { transition:none; }
}
