.wui-event-modal {
  --modal-open-dur: 250ms;
  --modal-close-dur: 150ms;
  --modal-scale: 0.96;
  --modal-scale-close: 0.96;
  --modal-ease: cubic-bezier(0.22, 1, 0.36, 1);
}
.wui-event-modal.t-modal {
  transform-origin: center;
  transform: scale(var(--modal-scale));
  opacity: 0;
  pointer-events: none;
  transition:
    transform var(--modal-open-dur) var(--modal-ease),
    opacity   var(--modal-open-dur) var(--modal-ease);
  will-change: transform, opacity;
}
.wui-event-modal.t-modal.is-open {
  transform: scale(1);
  opacity: 1;
  pointer-events: auto;
}
.wui-event-modal.t-modal.is-closing {
  transform: scale(var(--modal-scale-close));
  opacity: 0;
  pointer-events: none;
  transition:
    transform var(--modal-close-dur) var(--modal-ease),
    opacity   var(--modal-close-dur) var(--modal-ease);
}
@media (prefers-reduced-motion: reduce) {
  .wui-event-modal.t-modal { transition: none !important; }
}
.wui-event-modal,.wui-event-page,.wui-event-header-link {--wui-green:#193f35;--wui-cream:#f6f2e9;--wui-gold:#bf985c;}
.wui-event-modal {box-sizing:border-box;border:0;padding:0;margin:auto;width:min(580px,calc(100vw - 32px));max-height:calc(100dvh - 32px);border-radius:2px;background:var(--wui-cream);color:var(--wui-green);overflow:auto;box-shadow:0 20px 70px #0005;}
.wui-event-modal::backdrop {background:#071c16b3;}
.wui-event-close {position:absolute;z-index:3;right:10px;top:10px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--wui-gold);border-radius:50%;background:var(--wui-cream);color:var(--wui-green);font:32px/1 Arial,sans-serif;cursor:pointer;}
.wui-event-close:hover {background:#fff;}
.wui-event-modal :focus-visible,.wui-event-header-link:focus-visible,.wui-event-page a:focus-visible {outline:3px solid var(--wui-gold);outline-offset:4px;}
.wui-event-poster {position:relative;min-height:660px;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;text-align:center;padding:64px 24px 30px;}
.wui-event-poster-image {position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;}
.wui-event-poster::before {content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(246,242,233,.94) 0%,rgba(246,242,233,.62) 35%,transparent 60%,rgba(8,30,23,.75) 100%);}
.wui-event-poster-title {font-family:var(--wui-heading-font,Georgia,serif);font-weight:400;font-size:clamp(42px,7vw,66px);line-height:1.08;margin:0 0 16px;color:var(--wui-green);overflow-wrap:anywhere;}
.wui-event-poster-subtitle {font-family:var(--wui-heading-font,Georgia,serif);font-style:italic;font-size:clamp(21px,4vw,28px);line-height:1.35;margin:0 auto;max-width:340px;}
.wui-event-poster-bottom {color:#fff;margin-top:160px;}
.wui-event-poster-date {font-family:var(--wui-heading-font,Georgia,serif);font-size:23px;line-height:1.4;text-wrap:balance;white-space:pre-line;margin:0 0 24px;}
.wui-event-programme-link,.wui-event-booking {display:inline-block;border:1px solid var(--wui-gold);border-radius:30px;padding:13px 24px;background:var(--wui-green);color:#fff !important;text-decoration:none;font:inherit;line-height:1.3;}
.wui-event-programme-link:hover,.wui-event-booking:hover {filter:brightness(1.15);}
.wui-event-menu-item {display:flex;align-items:center;list-style:none;padding:0 8px;}
.wui-event-header-link {display:inline-flex !important;align-items:center;justify-content:center;padding:9px 20px !important;margin:3px 0;border-radius:25px;background:var(--wui-green) !important;color:#fff !important;border:1px solid var(--wui-gold);text-decoration:none !important;font:inherit;font-size:14px;line-height:1.3;white-space:nowrap;}
.wui-event-header-link:hover {filter:brightness(1.15);}
.wui-event-page {color:var(--wui-green);background:var(--wui-cream);margin:0 auto;max-width:1200px;}
.wui-event-hero {position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(24px,5vw,70px);padding:clamp(24px,5vw,64px);}
.wui-event-hero img {width:100%;height:auto;max-height:650px;object-fit:cover;}
.wui-event-page h1,.wui-event-page h2 {font-family:var(--wui-heading-font,Georgia,serif);font-weight:400;line-height:1.1;color:var(--wui-green);}
.wui-event-page h1 {font-size:clamp(44px,6vw,76px);}
.wui-event-page h2 {font-size:clamp(28px,4vw,42px);}
.wui-event-page p {line-height:1.7;}
.wui-event-programme {max-width:820px;margin:0 auto;padding:24px clamp(24px,5vw,64px) 64px;}
.wui-event-dates {padding:0;list-style:none;font-weight:500;line-height:1.8;}
@media(max-width:640px) {.wui-event-hero {grid-template-columns:1fr;}.wui-event-poster {min-height:min(650px,calc(100dvh - 32px));padding:65px 20px 24px;}.wui-event-poster-title {font-size:42px;}.wui-event-poster-date {font-size:20px;}.wui-event-poster-bottom {margin-top:120px;}}
