/* Danzante Events & Moments – warm editorial design matching the existing purple & gold brand. */
.events-home, .events-page { --event-purple:#26013f; --event-purple-deep:#170322; --event-gold:#e4ad49; --event-cream:#fff8e9; --event-ink:#302037; --event-muted:#716677; }
.events-home *, .events-page * { box-sizing: border-box; }
.events-home { position:relative; background:#fffaf1; padding:90px 0 100px; color:var(--event-ink); }
.events-home::before { content:""; position:absolute; height:5px; width:100%; top:0; left:0; background:linear-gradient(90deg,#54175c,#e4ad49,#9c314c); }
.events-home-header { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:34px; }
.events-kicker { color:#86581c; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.17em; margin:0 0 11px; }
.events-home h2, .events-page h1, .events-page h2, .events-page h3 { font-family:Georgia,'Times New Roman',serif; letter-spacing:-.035em; }
.events-home h2 { margin:0 0 18px; font-size:clamp(38px,4.2vw,59px); line-height:1.04; color:var(--event-purple); }
.events-home h2 em { color:#b67f2a; font-style:italic; font-weight:400; }
.events-intro { max-width:650px; font-size:16px; line-height:1.8; color:#5d5161; margin:0; }
.events-text-link { display:inline-flex; align-items:center; gap:10px; flex:0 0 auto; color:var(--event-purple); font-size:14px; font-weight:800; padding:12px 0; text-decoration:none; border-bottom:1px solid #b87b26; }
.events-text-link:hover, .events-text-link:focus { color:#9a5d17; text-decoration:none; }
.events-home-feature { display:grid; grid-template-columns:minmax(0, 46%) minmax(0, 54%); min-height:430px; background:var(--event-purple); overflow:hidden; border-radius:24px; box-shadow:0 20px 52px rgba(38,1,63,.15); }
.events-home-image { position:relative; display:block; min-height:430px; overflow:hidden; background:#380947; }
.events-home-image img { display:block; width:100%; height:100%; min-height:430px; max-height:600px; object-fit:cover; object-position:center 43%; transition:transform .45s ease; }
.events-home-image:hover img { transform:scale(1.035); }
.events-image-vignette { position:absolute; inset:0; background:linear-gradient(0deg,rgba(23,3,34,.78),transparent 37%,rgba(23,3,34,.1)); pointer-events:none; }
.events-play-bubble { position:absolute; top:50%; left:50%; width:72px; height:72px; display:grid; place-items:center; transform:translate(-50%,-50%); border:1px solid rgba(255,255,255,.76); border-radius:100%; background:rgba(255,255,255,.94); color:var(--event-purple); font-size:25px; box-shadow:0 12px 35px rgba(17,1,24,.3); transition:transform .2s ease; }
.events-home-image:hover .events-play-bubble { transform:translate(-50%,-50%) scale(1.08); }
.events-image-label { position:absolute; left:27px; bottom:26px; color:#fff; font-weight:800; font-size:12px; letter-spacing:.11em; display:flex; align-items:center; gap:10px; }
.events-home-story { align-self:center; padding:46px clamp(27px,5vw,78px); min-width:0; color:#fff; }
.events-label { display:inline-block; border:1px solid rgba(255,215,143,.42); color:#f9cc7c; padding:7px 12px; border-radius:999px; letter-spacing:.11em; font-size:11px; font-weight:800; }
.events-overline { margin:26px 0 12px; color:#f2c873; font-size:14px; font-weight:700; }
.events-home-story h3 { font-size:clamp(37px,4.3vw,61px); line-height:1.08; margin:0 0 21px; font-weight:700; letter-spacing:-.035em; overflow-wrap:break-word; }
.events-home-story h3 span { display:block; font-weight:400; font-style:italic; color:#f5d28d; }
.events-home-story > p:not(.events-overline):not(.events-home-footnote) { margin:0; color:rgba(255,255,255,.85); line-height:1.8; font-size:15px; max-width:440px; }
.events-home-rule { width:100%; height:1px; background:rgba(255,255,255,.2); margin:29px 0; }
.events-primary-link { display:inline-flex; align-items:center; justify-content:center; gap:15px; padding:14px 25px; min-height:48px; background:var(--event-gold); border-radius:999px; color:#28132b; font-weight:800; font-size:14px; text-decoration:none; max-width:100%; white-space:normal; text-align:center; }
.events-primary-link:hover, .events-primary-link:focus { background:#f8ca73; color:#28132b; text-decoration:none; }
.events-home-footnote { margin:22px 0 0; font-size:12px; color:#cbbdd5; }
/* Events archive */
.events-page { margin:0; background:var(--event-cream); color:var(--event-ink); min-height:100vh; font-family:Montserrat,Arial,sans-serif; }
.events-page .events-container { max-width:1170px; margin:auto; padding:0 24px; }
.events-page a { text-decoration:none; }
.events-header { background:#230331; border-bottom:1px solid rgba(255,255,255,.12); position:relative; z-index:3; }
.events-header-inner { min-height:84px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.events-brand { display:flex; align-items:center; gap:12px; color:#fff; min-width:0; }
.events-brand img { width:52px; height:52px; object-fit:contain; }
.events-brand-copy { display:flex; flex-direction:column; line-height:1.15; }
.events-brand-copy strong { font-family:'DM Serif Display',Georgia,serif; font-size:25px; font-weight:400; letter-spacing:.04em; }
.events-brand-copy small { font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:#e9d8c1; }
.events-nav { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.events-nav a { color:rgba(255,255,255,.88); border-radius:999px; padding:11px 15px; font-size:13px; font-weight:700; }
.events-nav a[aria-current="page"] { color:#2a1035; background:#f4ce82; }
.events-nav a:not([aria-current="page"]):hover { background:rgba(255,255,255,.13); color:#fff; }
.events-nav .events-nav-book { color:#261132; background:var(--event-gold); }
.events-nav .events-nav-book:hover { color:#261132; background:#ffd38a; }
.events-hero { padding:80px 0 76px; background:radial-gradient(circle at 87% 12%,rgba(195,89,112,.23),transparent 35%),linear-gradient(145deg,#240432,#3e0e55 60%,#250336); color:#fff; }
.events-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.95fr); gap:64px; align-items:center; }
.events-hero-tag { font-weight:800; text-transform:uppercase; font-size:12px; letter-spacing:.18em; color:#f3c77a; margin:0 0 22px; }
.events-page h1 { font-size:clamp(47px,5.5vw,76px); line-height:1.04; color:#fff; margin:0 0 24px; }
.events-page h1 em { color:#f0c57c; font-weight:400; }
.events-hero-summary { max-width:540px; font-size:16px; line-height:1.82; color:#e5d9e9; }
.events-hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:26px; }
.events-outline-link { display:inline-flex; align-items:center; justify-content:center; padding:13px 24px; border-radius:999px; border:1px solid rgba(255,255,255,.5); color:#fff; min-height:48px; font-weight:700; font-size:13px; }
.events-outline-link:hover { background:rgba(255,255,255,.1); color:#fff; }
.events-hero-photo { border-radius:24px; overflow:hidden; position:relative; box-shadow:0 26px 50px rgba(8,0,17,.35); height:410px; background:#5f285b; }
.events-hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.events-hero-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(30,4,41,.68),transparent 60%); pointer-events:none; }
.events-hero-photo span { position:absolute; z-index:1; bottom:24px; left:26px; color:#fff; font-weight:800; font-size:12px; letter-spacing:.13em; text-transform:uppercase; }
.events-main { padding:70px 0 95px; }
.events-section-title { display:flex; align-items:end; justify-content:space-between; flex-wrap:wrap; gap:14px; margin:0 0 28px; }
.events-section-title h2 { font-size:clamp(30px,3.4vw,43px); color:var(--event-purple); margin:0; line-height:1.13; }
.events-section-title p { margin:8px 0 0; color:var(--event-muted); font-size:14px; line-height:1.6; }
.events-detail { display:grid; grid-template-columns:minmax(0,360px) minmax(0,1fr); gap:48px; padding:35px; border:1px solid rgba(50,26,56,.08); border-radius:25px; background:#fffdf8; box-shadow:0 20px 40px rgba(44,9,63,.08); }
.events-detail-media { background:#210b31; border-radius:17px; overflow:hidden; aspect-ratio:9/16; width:100%; max-height:540px; display:flex; align-items:center; justify-content:center; }
.events-detail-media video, .events-detail-media img { display:block; width:100%; height:100%; object-fit:contain; background:#210b31; }
.events-detail-media video { max-width:100%; }
.events-detail-copy { align-self:center; min-width:0; }
.events-detail-copy .events-label { color:#81551b; border-color:#e2c689; }
.events-detail-copy h3 { font-size:clamp(34px,4vw,50px); line-height:1.1; color:#280b39; margin:18px 0 17px; overflow-wrap:break-word; }
.events-detail-copy p { color:#6c5b70; line-height:1.85; font-size:15px; }
.events-detail-copy .events-period { color:#966e2a; text-transform:uppercase; letter-spacing:.1em; font-size:12px; font-weight:800; }
.events-social-link { margin-top:18px; display:inline-flex; gap:9px; align-items:center; color:#5a296c; font-size:13px; font-weight:800; }
.events-discover { padding:65px 0 80px; background:#f3e9db; }
.events-items { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:23px; }
.events-item { text-align:left; width:100%; display:flex; flex-direction:column; padding:0; border:1px solid rgba(67,27,67,.1); border-radius:18px; background:#fffdf8; overflow:hidden; box-shadow:0 10px 24px rgba(44,9,63,.06); color:var(--event-ink); cursor:pointer; }
.events-item:hover, .events-item:focus-visible { box-shadow:0 18px 32px rgba(44,9,63,.15); outline-color:var(--event-gold); }
.events-item img { width:100%; height:192px; display:block; object-fit:cover; }
.events-item-copy { display:flex; flex-direction:column; flex:1; padding:18px 20px 22px; }
.events-item-tag { color:#8b6426; font-size:10px; letter-spacing:.1em; font-weight:800; text-transform:uppercase; }
.events-item-title { display:block; font-family:Georgia,serif; font-size:23px; line-height:1.2; color:#2a0d39; padding:10px 0; }
.events-item-caption { color:#7b6c77; font-size:13px; line-height:1.6; }
.events-item-action { margin-top:auto; padding-top:15px; color:#6d255d; font-weight:800; font-size:12px; }
.events-empty { padding:26px 28px; color:#6b5c6e; background:#fffdf8; border:1px dashed #e2ccae; border-radius:16px; line-height:1.7; }
.events-footer { background:#1c062b; color:#d8ccdd; padding:26px 0; font-size:12px; }
.events-footer-inner { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.events-footer a { color:#f4c879; }
.events-page button, .events-page a { -webkit-tap-highlight-color:transparent; }
@media (max-width:991px) {
  .events-home { padding:70px 0 80px; }
  .events-home-story { padding:34px; }
  .events-home-feature { grid-template-columns:45% 55%; }
  .events-hero-grid { gap:30px; }
  .events-detail { gap:30px; }
}
@media (max-width:767px) {
  .events-home { padding:58px 0 72px; }
  .events-home-header { align-items:flex-start; flex-direction:column; gap:13px; margin-bottom:25px; }
  .events-home h2 { font-size:39px; }
  .events-intro { font-size:14px; line-height:1.7; }
  .events-text-link { font-size:13px; padding:4px 0 8px; }
  .events-home-feature { grid-template-columns:minmax(0,1fr); border-radius:20px; }
  .events-home-image { min-height:0; height:360px; }
  .events-home-image img { min-height:0; max-height:none; height:100%; object-position:center 38%; }
  .events-play-bubble { width:61px; height:61px; font-size:20px; }
  .events-image-label { left:18px; bottom:16px; font-size:10px; }
  .events-home-story { padding:29px 25px 32px; }
  .events-home-story h3 { font-size:38px; }
  .events-home-story > p:not(.events-overline):not(.events-home-footnote) { font-size:14px; }
  .events-overline { margin-top:19px; }
  .events-home-rule { margin:23px 0; }
  .events-header-inner { min-height:73px; gap:10px; }
  .events-brand img { width:42px; height:42px; }
  .events-brand-copy strong { font-size:20px; }
  .events-brand-copy small { font-size:8px; }
  .events-nav { justify-content:flex-end; gap:2px; }
  .events-nav a { padding:8px 9px; font-size:11px; }
  .events-nav .events-nav-book { display:none; }
  .events-hero { padding:53px 0 52px; }
  .events-hero-grid { grid-template-columns:minmax(0,1fr); gap:31px; }
  .events-page h1 { font-size:49px; }
  .events-hero-summary { font-size:14px; }
  .events-hero-photo { height:300px; }
  .events-main { padding:51px 0 65px; }
  .events-detail { grid-template-columns:minmax(0,1fr); gap:26px; padding:18px; }
  .events-detail-media { height:auto; max-width:370px; margin:auto; }
  .events-detail-copy { padding:0 4px 15px; }
  .events-detail-copy h3 { font-size:34px; }
  .events-discover { padding:50px 0 65px; }
  .events-items { grid-template-columns:1fr; gap:16px; }
  .events-item { flex-direction:row; min-height:148px; }
  .events-item img { width:36%; height:auto; min-height:148px; }
  .events-item-copy { padding:15px 15px; }
  .events-item-title { font-size:20px; }
  .events-item-caption { font-size:12px; }
}
@media (max-width:375px) {
  .events-page .events-container { padding:0 17px; }
  .events-home h2 { font-size:36px; }
  .events-nav a { padding:7px 7px; }
  .events-brand-copy small { letter-spacing:0; }
  .events-page h1 { font-size:43px; }
  .events-item img { width:32%; }
  .events-item-title { font-size:18px; }
}
@media (prefers-reduced-motion: reduce) { .events-home-image img, .events-play-bubble { transition:none; } }

@media (max-width:350px) { .events-brand-copy small { display:none; } .events-nav a { padding:7px 6px; } }

.events-home-story h3 { font-family:Georgia,'Times New Roman',serif; }
.events-play-bubble i { display:none; }
.events-play-bubble::before { content:""; display:block; width:0; height:0; margin-left:5px; border-top:13px solid transparent; border-bottom:13px solid transparent; border-left:20px solid #26013f; }
#events, #featured-event, #all-events { scroll-margin-top:83px; }

@media (max-width:767px) { .events-nav a { display:inline-flex; align-items:center; min-height:40px; } }

.hero-events-discover { margin-top:24px; }
.hero-events-discover a { color:#f3d49b; font-size:12px; letter-spacing:.07em; text-transform:uppercase; font-weight:700; text-decoration:underline; text-underline-offset:6px; }
.hero-events-discover a:hover, .hero-events-discover a:focus { color:#fff; }

/* ===========================================================================
   Shared Danzante brand shell for /events/: home-equivalent pin logo, purple
   navigation, gold booking, restaurant footer and mobile action bar.
   Dedicated classes avoid Bootstrap and homepage-only JS dependencies.
   =========================================================================== */
.events-page { --events-nav-height:72px; }
.events-page .events-header { position:sticky; top:0; z-index:40; height:var(--events-nav-height); background:rgba(38,1,63,.97); border:0; border-bottom:1px solid rgba(255,255,255,.08); box-shadow:0 8px 28px rgba(16,1,26,.20); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.events-page .events-header-inner { min-height:var(--events-nav-height); height:100%; display:flex; justify-content:space-between; align-items:center; gap:14px; }
.events-page .events-brand { position:relative; align-self:stretch; flex:0 0 138px; width:138px; height:100%; display:flex; align-items:flex-start; justify-content:center; padding:0; overflow:visible; }
.events-page .events-brand img { position:absolute; top:0; left:0; width:138px; height:auto; max-width:none; object-fit:contain; display:block; }
.events-page .events-nav { display:flex; align-items:center; justify-content:flex-end; flex-wrap:nowrap; gap:2px; }
.events-page .events-nav a, .events-page .events-nav button { font:500 14px/1.4 Montserrat,Arial,sans-serif; display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:9px 12px; margin:0; color:rgba(255,255,255,.92); background:transparent; border:0; border-radius:999px; white-space:nowrap; text-decoration:none; cursor:pointer; }
.events-page .events-nav a[aria-current="page"] { background:#f7d98c; color:#2b1433; }
.events-page .events-nav a:hover, .events-page .events-nav a:focus-visible, .events-page .events-nav button:hover, .events-page .events-nav button:focus-visible { background:#f7d98c; color:#2b1433; outline-offset:3px; }
.events-page .events-nav .events-booking-link { margin-left:4px; background:#eab13f; color:#251a2a; font-weight:700; padding:9px 17px; }
.events-page .events-nav .events-booking-link:hover, .events-page .events-nav .events-booking-link:focus-visible { background:#f1bf52; color:#251a2a; }
.events-page .events-menu-toggle { display:none; }
/* Balanced media stage: the portrait video is centred inside a full-width stage.
   Explicit minmax and auto margins prevent the media column seeming right-aligned. */
.events-page .events-detail { grid-template-columns:minmax(0,360px) minmax(0,1fr); }
.events-page .events-detail-media { min-width:0; width:100%; height:510px; max-height:none; aspect-ratio:auto; margin-inline:auto; background:radial-gradient(circle at center,#38124d 0%,#20092c 80%); display:flex; justify-content:center; align-items:center; padding:0; }
.events-page .events-detail-media video, .events-page .events-detail-media img { width:auto; max-width:100%; height:100%; max-height:100%; object-fit:contain; margin-inline:auto; flex:none; }
.events-page .events-detail-copy { min-width:0; max-width:100%; }
.events-page .events-detail-copy > * { max-width:100%; }
.events-page .events-social-link { flex-wrap:wrap; overflow-wrap:anywhere; }
/* The homepage footer uses this three-column purple/gold information layout. */
.events-page .events-footer-info { background:linear-gradient(135deg,#26013f,#421056); color:#fff; }
.events-page .events-footer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.events-page .events-footer-column { min-width:0; padding:56px 16px 48px; text-align:center; }
.events-page .events-footer-column h2 { font:700 29px/1.22 Georgia,'Times New Roman',serif; letter-spacing:-.025em; color:#fff; margin:0 0 31px; }
.events-page .events-footer-column p { font-size:14px; line-height:1.8; color:rgba(255,255,255,.86); margin:0 0 18px; }
.events-page .events-footer-column p strong { color:#ffd881; font-weight:700; }
.events-page .events-footer-column a { color:inherit; text-decoration:none; }
.events-page .events-footer-column p a { text-decoration:underline; }
.events-page .events-footer-socials { display:flex; align-items:center; justify-content:center; gap:8px; margin-top:28px; }
.events-page .events-footer-socials a { display:inline-flex; flex:0 0 42px; width:42px; height:42px; justify-content:center; align-items:center; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.17); border-radius:50%; font-size:20px; color:#fff; }
.events-page .events-footer-socials a:hover, .events-page .events-footer-socials a:focus-visible { color:#26013f; background:#eab13f; }
.events-page .events-map-thumb { display:block; width:min(100%,200px); height:auto; max-height:290px; object-fit:cover; margin-inline:auto; border-radius:18px; box-shadow:0 14px 36px rgba(0,0,0,.25); }
.events-page .events-footer { background:#1b022b; color:rgba(255,255,255,.72); padding:24px 0; text-align:center; font-size:13px; }
.events-page .events-footer p { margin:0; }
.events-page .events-mobile-actions { display:none; }
.events-page .events-booking-dialog { position:fixed; inset:0; margin:auto; width:min(92vw,460px); max-height:min(90vh,650px); border:0; border-radius:22px; padding:33px 26px 30px; background:#fffaf0; color:#26013f; box-shadow:0 22px 70px rgba(0,0,0,.3); text-align:center; }
.events-page .events-booking-dialog::backdrop { background:rgba(20,0,30,.75); }
.events-page .events-booking-dialog h2 { font-size:32px; margin:6px 0 10px; }
.events-page .events-booking-dialog > p { color:#6c5b70; margin:0 0 24px; }
.events-page .events-booking-close { position:absolute; right:14px; top:10px; padding:2px 10px; background:transparent; border:0; color:#26013f; font-size:30px; cursor:pointer; }
.events-page .events-booking-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.events-page .events-booking-choices a { display:flex; flex-direction:column; align-items:center; gap:10px; justify-content:center; min-height:148px; padding:16px 8px; border:1px solid #e0caa7; border-radius:15px; color:#26013f; background:#fffdf8; overflow-wrap:anywhere; }
.events-page .events-booking-choices a:hover, .events-page .events-booking-choices a:focus-visible { background:#fff1d3; border-color:#eab13f; }
.events-page .events-booking-choices i { color:#af812a; font-size:29px; }
.events-page .events-booking-choices strong { font-size:18px; }
.events-page .events-booking-choices span { font-size:12px; }
@media (max-width:991px) and (min-width:768px) {
  .events-page .events-brand { flex-basis:112px; width:112px; }
  .events-page .events-brand img { width:112px; top:0; }
  .events-page .events-nav a, .events-page .events-nav button { padding:8px 9px; font-size:12px; }
  .events-page .events-nav .events-booking-link { padding-inline:11px; }
  .events-page .events-detail { gap:22px; }
}
@media (max-width:767px) {
  .events-page { --events-nav-height:66px; padding-bottom:66px; }
  .events-page .events-header-inner { position:relative; }
  .events-page .events-brand { flex:0 0 112px; width:112px; }
  .events-page .events-brand img { width:112px; top:0; }
  .events-page .events-menu-toggle { display:flex; align-items:center; justify-content:center; gap:9px; border:1px solid rgba(255,255,255,.55); border-radius:10px; background:transparent; padding:8px 11px; color:#fff; font:600 13px/1.2 Montserrat,Arial,sans-serif; cursor:pointer; min-width:74px; min-height:42px; }
  .events-page .events-menu-bars { display:flex; flex-direction:column; justify-content:center; gap:4px; width:18px; }
  .events-page .events-menu-bars span { display:block; width:18px; height:2px; background:#fff; border-radius:2px; }
  .events-page .events-nav { display:none; position:absolute; top:100%; left:17px; right:17px; z-index:50; background:#26013f; border:1px solid rgba(255,255,255,.14); border-radius:0 0 18px 18px; box-shadow:0 18px 42px rgba(16,1,26,.24); padding:12px; flex-direction:column; align-items:stretch; gap:3px; }
  .events-page .events-nav.is-open { display:flex; }
  .events-page .events-nav a, .events-page .events-nav button { display:flex; width:100%; text-align:left; justify-content:flex-start; padding:11px 14px; border-radius:10px; font-size:14px; line-height:1.3; min-height:44px; white-space:normal; }
  .events-page .events-nav .events-booking-link { margin:5px 0 0; }
  .events-page .events-detail { grid-template-columns:minmax(0,1fr); padding:20px; gap:22px; }
  .events-page .events-detail-media { width:100%; max-width:100%; height: min(108vw,480px); min-height:0; }
  .events-page .events-detail-copy { padding:0 2px 10px; }
  .events-page .events-footer-grid { grid-template-columns:minmax(0,1fr); gap:0; }
  .events-page .events-footer-column { padding:36px 10px 18px; }
  .events-page .events-footer-column h2 { font-size:28px; margin-bottom:21px; }
  .events-page .events-footer-column:last-child { padding-bottom:43px; }
  .events-page .events-footer-socials { margin-top:24px; }
  .events-page .events-mobile-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); position:fixed; bottom:0; left:0; right:0; z-index:55; background:#26013f; border-top:1px solid rgba(255,255,255,.15); box-shadow:0 -6px 24px rgba(16,1,26,.2); padding:7px 10px max(7px,env(safe-area-inset-bottom)); gap:8px; }
  .events-page .events-mobile-actions a, .events-page .events-mobile-actions button { min-height:47px; min-width:0; display:flex; justify-content:center; align-items:center; gap:7px; border-radius:11px; font:700 13px/1.3 Montserrat,Arial,sans-serif; white-space:normal; text-align:center; padding:7px 4px; }
  .events-page .events-mobile-actions button { color:#26013f; background:#eab13f; border:0; }
  .events-page .events-mobile-actions a { color:#fff; border:1px solid rgba(255,255,255,.45); background:transparent; }
  .events-page .events-booking-dialog { padding:30px 17px 23px; }
}
@media (max-width:375px) {
  .events-page .events-header-inner { padding-inline:17px; }
  .events-page .events-detail { padding:15px; }
  .events-page .events-detail-media { height:min(108vw,420px); }
  .events-page .events-booking-choices { gap:8px; }
  .events-page .events-booking-choices a { padding:12px 5px; }
}
@media (prefers-reduced-motion:reduce) { .events-page .events-nav { scroll-behavior:auto; } }

/* UX revision 4: watch and switch events in one place, without scroll jumps. */
.events-page .events-main { padding:52px 0 72px; }
.events-page .events-picker-shell { position:relative; margin:0 0 24px; }
.events-page .events-picker-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:5px 18px; margin-bottom:15px; }
.events-page .events-picker-heading h3 { margin:0; font:700 22px/1.2 Georgia,'Times New Roman',serif; color:#280b39; }
.events-page .events-picker-heading p { margin:0; color:#6c5b70; font:500 13px/1.5 Montserrat,Arial,sans-serif; }
.events-page .events-picker { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:12px; }
.events-page .events-picker-option { position:relative; min-width:0; display:flex; align-items:center; gap:13px; min-height:94px; padding:9px 38px 9px 10px; text-align:left; border:2px solid #e8dacc; border-radius:16px; background:#fffdf8; color:#301f39; box-shadow:0 4px 18px rgba(31,6,50,.04); cursor:pointer; transition:background-color .15s,border-color .15s,box-shadow .15s; }
.events-page .events-picker-option:hover { border-color:#cb9c4a; background:#fff9eb; }
.events-page .events-picker-option:focus-visible { outline:3px solid #755293; outline-offset:2px; }
.events-page .events-picker-option.is-selected { border-color:#dfaa4d; background:#fff1d5; box-shadow:0 4px 18px rgba(83,37,9,.11); }
.events-page .events-picker-option img { display:block; width:61px; height:70px; flex:0 0 61px; border-radius:9px; object-fit:cover; object-position:center; }
.events-page .events-picker-copy { display:flex; flex-direction:column; justify-content:center; min-width:0; gap:6px; }
.events-page .events-picker-copy strong { display:block; font:700 17px/1.22 Georgia,'Times New Roman',serif; overflow-wrap:break-word; }
.events-page .events-picker-copy small { color:#805c2a; font:700 10px/1.4 Montserrat,Arial,sans-serif; }
.events-page .events-picker-check { display:none; position:absolute; top:11px; right:11px; place-items:center; width:22px; height:22px; border-radius:50%; background:#351243; color:white; font:800 12px/1 Montserrat,Arial,sans-serif; }
.events-page .events-picker-option.is-selected .events-picker-check { display:grid; }
.events-page .events-detail { margin-top:0; }
#events-picker { scroll-margin-top:calc(var(--events-nav-height) + 12px); }
@media (max-width:767px) {
 .events-page .events-hero { padding:32px 0 25px; }
 .events-page .events-hero-grid { display:block; }
 .events-page .events-hero-tag { margin-bottom:9px; font-size:10px; }
 .events-page h1 { font-size:clamp(32px,9vw,43px); margin:0 0 10px; }
 .events-page .events-hero-summary { font-size:13px; line-height:1.55; margin:0; max-width:480px; }
 .events-page .events-hero-photo { display:none; }
 .events-page .events-hero-actions { margin-top:15px; }
 .events-page .events-hero-actions .events-primary-link { min-height:42px; padding:9px 19px; font-size:12px; }
 .events-page .events-hero-actions .events-outline-link { display:none; }
 .events-page .events-main { padding:24px 0 44px; }
 .events-page .events-section-title { margin:0 0 16px; }
 .events-page .events-section-title h2 { font-size:27px; }
 .events-page .events-section-title p { display:none; }
 .events-page .events-picker-shell { position:sticky; top:var(--events-nav-height); z-index:20; margin:0 -11px 15px; padding:8px 11px 10px; background:rgba(255,248,233,.97); border-bottom:1px solid rgba(94,45,74,.13); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
 .events-page .events-picker-heading { margin-bottom:7px; }
 .events-page .events-picker-heading h3 { font-size:16px; }
 .events-page .events-picker-heading p { display:none; }
 .events-page .events-picker { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .events-page .events-picker-option { min-height:67px; padding:6px 5px; gap:7px; border-radius:11px; border-width:2px; }
 .events-page .events-picker-option img { width:38px; height:49px; flex:0 0 38px; border-radius:6px; }
 .events-page .events-picker-copy { gap:3px; }
 .events-page .events-picker-copy strong { font-size:13px; line-height:1.13; }
 .events-page .events-picker-copy small { font-size:9px; line-height:1.24; }
 .events-page .events-picker-check { width:14px; height:14px; right:3px; top:3px; font-size:9px; }
 .events-page .events-detail { gap:17px; }
}
@media (max-width:350px) {
 .events-page .events-picker-option img { width:32px; height:46px; flex-basis:32px; }
 .events-page .events-picker-copy strong { font-size:12px; }
 .events-page .events-picker-copy small { font-size:8px; }
}
@media (prefers-reduced-motion:reduce) {
 .events-page .events-picker-option { transition:none; }
}

/* On the narrowest screens, omit the decorative check instead of overlapping event names. */
@media (max-width:375px) { .events-page .events-picker-option.is-selected .events-picker-check { display:none; } }

/* Revision 6 — choose celebration, then year, beside the player. */
.events-page .events-years-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 4px 0; flex-wrap:wrap; }
.events-page .events-years-label { display:flex; flex-direction:column; gap:3px; }
.events-page .events-years-label span { font:800 11px/1.3 Montserrat,Arial,sans-serif; letter-spacing:.14em; color:#37104a; }
.events-page .events-years-label small { font:500 11px/1.4 Montserrat,Arial,sans-serif; color:#837083; }
.events-page .events-year-list { display:flex; flex-wrap:wrap; gap:8px; min-width:0; }
.events-page .events-year-option { display:inline-flex; align-items:center; justify-content:center; min-width:76px; min-height:42px; border:1.5px solid #c6a676; border-radius:100px; background:#fffdf8; color:#43194b; padding:10px 16px; cursor:pointer; font:800 14px/1 Montserrat,Arial,sans-serif; }
.events-page .events-year-option.is-selected { background:#2e1041; color:#fff; border-color:#2e1041; box-shadow:0 4px 12px rgba(46,16,65,.15); }
.events-page .events-year-option:not(.is-selected):hover { background:#fff0d3; }
.events-page .events-year-option:focus-visible { outline:3px solid #8561ab; outline-offset:2px; }
@media(max-width:767px) {
  .events-page .events-years-row { padding:10px 1px 0; flex-wrap:nowrap; gap:6px; }
  .events-page .events-years-label span { font-size:10px; }
  .events-page .events-years-label small { display:none; }
  .events-page .events-year-list { margin-left:auto; gap:6px; overflow-x:auto; max-width:66%; flex-wrap:nowrap; padding:2px; }
  .events-page .events-year-option { min-width:60px; min-height:37px; padding:8px 12px; font-size:12px; }
}

/* REV7: Full bilingual celebration labels, legible on small screens. */
.events-page .events-picker-copy strong { overflow-wrap:break-word; hyphens:none; }
.events-page .events-year-option { min-height:46px; min-width:70px; padding:11px 16px; text-decoration:none; }
.events-page .events-year-option:hover { text-decoration:none; }
.events-page .events-story-link { display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin:15px 0 0; padding:10px 0; border-bottom:1px solid #bc8734; color:#37104a; font:700 13px/1.45 Montserrat,Arial,sans-serif; overflow-wrap:anywhere; }
.events-page .events-story-link:hover, .events-page .events-story-link:focus-visible { color:#9b5b13; }
.events-page .events-years-label { flex:0 0 auto; }
.events-page .events-year-list { overflow:visible; max-width:100%; }
@media (max-width:767px) {
 .events-page .events-picker { grid-template-columns:minmax(0,1fr); gap:6px; }
 .events-page .events-picker-option { min-height:54px; padding:7px 10px; gap:9px; }
 .events-page .events-picker-option img { display:none; }
 .events-page .events-picker-copy strong { font-size:14px; line-height:1.3; }
 .events-page .events-picker-copy small { font-size:10px; line-height:1.25; }
 .events-page .events-year-option { min-height:46px; min-width:65px; font-size:13px; padding:11px 15px; }
 .events-page .events-year-list { overflow-x:auto; max-width:70%; gap:8px; }
 .events-page .events-picker-shell { padding-bottom:9px; }
}
@media (max-width:350px){
 .events-page .events-picker-copy strong { font-size:13px; }
 .events-page .events-picker-option { min-height:56px; }
}
/* Standalone year pages share the Events visual language, header and footer. */
.events-page .events-watch-hero { background:linear-gradient(130deg,#26013f,#4a155c); color:#fff; padding:55px 0 52px; }
.events-page .events-watch-eyebrow { color:#f3c77a; text-transform:uppercase; font:800 12px/1.5 Montserrat,Arial,sans-serif; letter-spacing:.1em; }
.events-page .events-watch-hero h1 { font-size:clamp(32px,5vw,58px); line-height:1.13; max-width:950px; margin:14px 0 16px; overflow-wrap:break-word; }
.events-page .events-watch-hero p { max-width:800px; font-size:15px; line-height:1.8; color:#efe5ec; }
.events-page .events-watch-main { padding:45px 0 60px; }
.events-page .events-watch-main .events-detail { margin-top:0; }
.events-page .events-watch-main .events-detail-copy h2 { color:#2d0b3e; font:700 clamp(25px,3vw,39px)/1.15 Georgia,serif; margin:14px 0; }
.events-page .events-watch-main .events-detail-copy p { overflow-wrap:break-word; }
.events-page .events-watch-related { padding:34px 0 48px; background:#fffdf6; border-top:1px solid #e8dccc; }
.events-page .events-watch-related h2 { margin:0 0 16px; font:700 27px/1.2 Georgia,serif; color:#2a0b3b; }
.events-page .events-watch-links { display:flex; flex-wrap:wrap; gap:10px; }
.events-page .events-watch-links a { display:inline-flex; align-items:center; justify-content:center; padding:12px 15px; min-height:46px; background:#fff3d8; border:1px solid #d6b26c; border-radius:12px; color:#30133b; font-size:13px; font-weight:700; }
.events-page .events-watch-links a[aria-current=page] { background:#2d1041; border-color:#2d1041; color:#fff; }
.events-page .events-watch-links a:hover { background:#f5dba7; color:#30133b; }
@media(max-width:767px){ .events-page .events-watch-hero { padding:36px 0 30px; } .events-page .events-watch-main { padding:25px 0 36px; } }
