/* Events listing (Stage 2B). Loaded ONLY by events.php, after public-pages.css.
   Scope: Events content only. The shared header/footer, accepted Stage 1 geometry (stage1-tb.css, body.page-events)
   and homepage event cards (.event-card*) are not touched. New class names (ev-*) so legacy .event-list-card* rules stay inert. */
:root{
  --ev-display:"TB Exo 2","Exo 2","Inter",sans-serif;
  --ev-ui:"TB Inter","Inter","Segoe UI",Arial,sans-serif;
  --ev-line:rgba(255,40,55,.30);--ev-line-strong:rgba(255,70,85,.72);
  --ev-surface:rgba(10,4,6,.94);--ev-text2:#c9c1c3;
  --ev-gap:clamp(16px,2vw,28px);
}
/* isolation gives the body its own stacking context so the z-index:-1 stage paints above the body background, not behind it */
body.page-events{isolation:isolate}
.ev-stage{position:fixed;inset:0;z-index:-1;background:#070305 url(/assets/images/menu/cinematic-neon-bowling-lounge.jpg) 50% 30%/cover;pointer-events:none}
.ev-stage::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 38% at 18% 10%,rgba(255,16,37,.16),transparent 70%),linear-gradient(180deg,rgba(7,3,5,.55),rgba(7,3,5,.86) 420px,rgba(7,3,5,.94))}
.ev-wrap{width:min(100% - 64px,1320px);margin-inline:auto}
@media (max-width:900px){.ev-wrap{width:min(100% - 32px,1440px)}}
main.ev-main{padding:0 0 56px;min-height:0}

/* ---- page introduction (restrained; the shared background stays quiet) ---- */
.ev-hero{padding:clamp(28px,4.4vw,64px) 0 clamp(20px,2.4vw,32px)}
.ev-eyebrow{margin:0;font:700 12px var(--ev-ui);letter-spacing:.18em;text-transform:uppercase;color:#ff6b76}
.ev-title{margin:8px 0 0;font:italic 900 clamp(44px,6vw,96px)/.95 var(--ev-display);letter-spacing:-.02em;text-transform:uppercase;color:#fff;text-shadow:0 2px 0 rgba(90,0,12,.85),0 0 24px rgba(255,16,37,.28);padding-right:.1em}
.ev-rule{width:64px;height:3px;border-radius:3px;margin:16px 0;background:#ff1025;box-shadow:0 0 10px #ff1025,0 0 22px rgba(255,16,37,.55)}
.ev-sub{margin:0;max-width:640px;font:400 clamp(15px,1.3vw,17px)/1.55 var(--ev-ui);color:var(--ev-text2)}

.ev-section{margin-top:clamp(24px,3vw,44px)}
.ev-h2{margin:0 0 18px;font:italic 800 clamp(24px,2.3vw,34px)/1.05 var(--ev-display);text-transform:uppercase;letter-spacing:-.01em}
.ev-empty{margin:0;padding:28px 22px;border:1px dashed var(--ev-line);border-radius:18px;background:var(--ev-surface);color:var(--ev-text2);text-align:center}
[id^="event-"]{scroll-margin-top:calc(var(--header-height) + 20px)}

/* ---- shared card pieces ---- */
.ev-card{position:relative;display:grid;border:1px solid var(--ev-line);border-radius:20px;background:var(--ev-surface);overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.05)}
.ev-media{position:relative;overflow:hidden;background:linear-gradient(135deg,#240810,#0c0507)}
.ev-media img{display:block;width:100%;height:100%;object-fit:cover}
.ev-media--none{display:grid;place-items:center;color:#ff6b76}
.ev-media--none svg{width:56px;height:56px;opacity:.7}
.ev-chip{position:absolute;left:14px;top:14px;z-index:2;display:grid;justify-items:center;min-width:58px;padding:7px 8px 8px;border-radius:14px;background:rgba(7,3,5,.82);border:1px solid var(--ev-line-strong);box-shadow:0 0 16px rgba(255,16,37,.22)}
.ev-chip b{font:italic 900 26px/1 var(--ev-display)}.ev-chip i{font:700 10px var(--ev-ui);font-style:normal;text-transform:uppercase;letter-spacing:.14em;color:#ff8d95;margin-top:3px}
.ev-body{padding:clamp(18px,2.2vw,30px);display:flex;flex-direction:column;gap:10px;min-width:0}
.ev-badge{align-self:flex-start;margin:0;font:700 11px var(--ev-ui);letter-spacing:.16em;text-transform:uppercase;padding:5px 11px;border-radius:99px;background:rgba(255,16,37,.16);border:1px solid var(--ev-line-strong);color:#ffb3b8}
.ev-name{margin:0;font:italic 900 var(--ev-name-size,clamp(26px,2.4vw,36px))/1.04 var(--ev-display);text-transform:uppercase;letter-spacing:-.005em;overflow-wrap:anywhere;hyphens:auto}
.ev-meta{margin:0;display:flex;flex-wrap:wrap;gap:4px 10px;font:500 15px/1.45 var(--ev-ui);color:#e6dfe0}
.ev-meta .dot{color:#ff5a66}.ev-meta .dt{white-space:nowrap}
.ev-short{margin:0;font:600 16px/1.45 var(--ev-ui);color:#ff8a90}
.ev-copy{margin:0;font:400 15px/1.65 var(--ev-ui);color:#d6cfd1;overflow-wrap:anywhere}

/* ---- upcoming events: one compact card design, 3 / 2 / 1 columns (renders only real public events) ---- */
.ev-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ev-gap);align-items:start}
.ev-grid>.ev-card{grid-template-rows:auto 1fr}
.ev-grid .ev-media{height:clamp(160px,14vw,196px)}
.ev-grid .ev-body{padding:16px 18px 18px;gap:7px}
.ev-grid .ev-name{--ev-name-size:clamp(20px,1.7vw,24px);line-height:1.08}
.ev-grid .ev-meta{flex-direction:column;gap:1px;font-size:14px;line-height:1.4}.ev-grid .ev-meta .sep{display:none}
.ev-grid .ev-meta .dt{white-space:normal}
.ev-grid .ev-short{font-size:14.5px;line-height:1.4}
.ev-grid .ev-copy{font-size:14px;line-height:1.55}
.ev-grid .ev-chip{left:12px;top:12px;min-width:48px;padding:5px 7px 6px;border-radius:12px}.ev-grid .ev-chip b{font-size:21px}.ev-grid .ev-chip i{font-size:9.5px;margin-top:2px}
.ev-card .ev-badge{position:absolute;right:12px;top:12px;z-index:3;padding:4px 10px;font-size:10px;background:rgba(7,3,5,.82)}
.ev-card--past .ev-badge{display:none}
/* promotional card badge (Admin "Card badge"): small red neon pill in the card body, never over the date chip or the Featured badge */
.ev-tag{align-self:flex-start;max-width:100%;margin:0;padding:3px 11px;border-radius:99px;font:700 10.5px/1.5 var(--ev-ui);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#ff6b78;background:rgba(255,16,37,.1);border:1px solid rgba(255,70,88,.78);text-shadow:0 0 8px rgba(255,40,55,.6);box-shadow:0 0 10px rgba(255,16,37,.3),inset 0 0 6px rgba(255,16,37,.16)}
.ev-card--past .ev-tag{color:#c98a90;background:rgba(255,255,255,.04);border-color:rgba(201,138,144,.5);text-shadow:none;box-shadow:none}
/* long descriptions stay complete: a native, keyboard-accessible disclosure instead of silently clipping */
.ev-more{margin:2px 0 0}
.ev-more>summary{display:inline-flex;align-items:center;gap:8px;min-height:36px;cursor:pointer;list-style:none;font:600 13px var(--ev-ui);letter-spacing:.04em;color:#ff8a90;border-radius:8px}
.ev-more>summary::-webkit-details-marker{display:none}
.ev-more>summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.ev-more[open]>summary::after{transform:rotate(-135deg) translateY(-2px)}
.ev-more>summary:focus-visible{outline:2px solid #ff6b76;outline-offset:3px}
.ev-more .ev-copy{margin-top:4px}

/* ---- past events: compact, quieter ---- */
.ev-past{display:grid;gap:14px}
.ev-past .ev-card{grid-template-columns:minmax(0,230px) minmax(0,1fr);border-color:rgba(255,255,255,.12);box-shadow:none;opacity:.96}
.ev-past .ev-media{min-height:150px}.ev-past .ev-media img{filter:saturate(.7) brightness(.85)}
.ev-past .ev-body{padding:16px 20px;--ev-name-size:clamp(20px,1.8vw,26px)}
.ev-past .ev-chip{display:none}

/* ---- private inquiry kept separate from event cards (not a booking for a listed event) ---- */
.ev-private{margin-top:clamp(28px,3vw,48px);display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:20px 26px;border-radius:18px;border:1px solid var(--ev-line);background:rgba(10,4,6,.82)}
.ev-private p{margin:0;max-width:640px;color:var(--ev-text2);font:400 15px/1.55 var(--ev-ui)}
.ev-private b{display:block;margin-bottom:2px;color:#fff;font:italic 800 20px/1.1 var(--ev-display);text-transform:uppercase}
.ev-private a{display:inline-flex;align-items:center;min-height:44px;padding:0 22px;border-radius:99px;border:1px solid rgba(255,255,255,.28);background:rgba(8,6,8,.6);color:#fff;font:600 15px var(--ev-ui);text-decoration:none;white-space:nowrap}
.ev-private a:hover,.ev-private a:focus-visible{border-color:var(--ev-line-strong);box-shadow:0 0 18px rgba(255,16,37,.3)}

/* ---- responsive ---- */
@media (max-width:1099px){.ev-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ev-grid .ev-media{height:clamp(150px,22vw,190px)}}
@media (max-width:700px){
  .ev-grid{grid-template-columns:1fr;gap:14px}
  .ev-grid .ev-media{height:clamp(130px,38vw,156px)}
  .ev-grid .ev-body{padding:13px 14px 15px}
  .ev-grid .ev-name{--ev-name-size:20px}
  .ev-card{border-radius:16px}
  .ev-past .ev-card{grid-template-columns:1fr}
  .ev-past .ev-media{min-height:0;aspect-ratio:16/9}
  .ev-chip{left:10px;top:10px;min-width:50px}.ev-chip b{font-size:22px}
  .ev-private{padding:18px}.ev-private a{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---- final neon hierarchy (Events only): date badge, red accents; nothing animates ---- */
.ev-chip{background:linear-gradient(180deg,rgba(24,6,10,.82),rgba(8,3,5,.86));border:1px solid rgba(255,70,85,.78);box-shadow:inset 0 0 8px rgba(255,16,37,.28),0 0 14px rgba(255,16,37,.3),0 6px 14px rgba(0,0,0,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.ev-chip b{color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.6)}
.ev-chip i{color:#ff5a68;text-shadow:0 0 8px rgba(255,40,55,.55)}
.ev-short{color:#ff7a85;text-shadow:0 0 10px rgba(255,40,55,.28)}
.ev-meta .dot{color:#ff4a58;text-shadow:0 0 8px rgba(255,40,55,.6)}
.ev-card .ev-badge{color:#ffc2c7;background:rgba(255,16,37,.2);border-color:rgba(255,90,104,.85);text-shadow:0 0 8px rgba(255,40,55,.45);box-shadow:0 0 10px rgba(255,16,37,.2)}
.ev-more>summary{color:#ff7a85;text-shadow:0 0 8px rgba(255,40,55,.3)}
/* second word of the event title is the red accent (EventPresenter::titleHtml); one-word titles stay white */
.ev-name .ev-title-accent{color:#ff3140;text-shadow:0 0 10px rgba(255,49,64,.45)}
/* past events stay quieter */
.ev-card--past .ev-name .ev-title-accent{color:#e0525e;text-shadow:none}
.ev-card--past .ev-chip{box-shadow:none}
.ev-card--past .ev-short,.ev-card--past .ev-meta .dot,.ev-card--past .ev-more>summary{color:#c98a90;text-shadow:none}
@media (max-width:700px){.ev-chip{box-shadow:inset 0 0 6px rgba(255,16,37,.22),0 0 9px rgba(255,16,37,.2),0 4px 10px rgba(0,0,0,.4)}.ev-chip i{text-shadow:0 0 5px rgba(255,40,55,.4)}.ev-badge{box-shadow:0 0 6px rgba(255,16,37,.14)}}

/* ---- uniform cards: teaser about 25 words, full description in a Details panel that overlays the card instead of stretching it ---- */
.ev-grid{align-items:stretch}
.ev-grid .ev-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;min-height:2.16em;overflow-wrap:anywhere;word-break:break-word}
.ev-grid .ev-meta{min-height:calc(2 * 1.4em + 1px)}
.ev-grid .ev-short{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden;min-height:calc(3 * 1.4em);overflow-wrap:anywhere}
.ev-body{position:static}
.ev-more{margin-top:auto;padding-top:6px}
.ev-more>summary{position:relative;z-index:6}
.ev-more .ev-pop{display:none}
.ev-more[open] .ev-pop{display:block;position:absolute;left:0;right:0;top:0;bottom:62px;z-index:5;overflow:auto;padding:18px 18px 12px;background:rgba(9,4,6,.97);border-bottom:1px solid rgba(255,90,104,.35);overscroll-behavior:contain}
.ev-more[open] .ev-copy{margin:0;font-size:14.5px;line-height:1.6;color:#eadfe1}
.ev-past .ev-more[open] .ev-pop{bottom:62px}
@media (prefers-reduced-motion:no-preference){.ev-more[open] .ev-pop{animation:ev-pop-in .18s ease-out}}
@keyframes ev-pop-in{from{opacity:0}to{opacity:1}}

/* admin-chosen picture framing (focal point + zoom); only when the editor set it */
.ev-media img[style*="--ev-"]{object-position:var(--ev-x,50%) var(--ev-y,50%);transform:scale(var(--ev-z,1));transform-origin:var(--ev-x,50%) var(--ev-y,50%)}
