/* CMS bindings and accessibility repairs alongside the current Webflow design. */
.lineup_richtext .lineup_note { font-weight: 400; }
.brand_name { text-transform: none; }
.title_suffix { font-weight: 400; }
.events_featured_content h3 { text-align: center; }
.days_slider_heading_outer .event_heading_text, .events_featured_date { font-weight: 400; }
.days_slider_heading_outer .event_heading_text.is-weekday, .events_featured_date strong { font-weight: 700; }
[hidden] { display: none !important; }
.clickable_link { width: 100%; height: 100%; }
.faq_question_wrap[role="button"] { cursor: pointer; }
.faq_question_wrap[role="button"]:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.w-dyn-empty { padding: 1rem; }
.event_content p { white-space: normal; }
.tickets_artwork .u-image-wrapper { aspect-ratio: auto; }
.tickets_artwork img { position: static; height: auto; }
.newsletter_honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; }
.day_featured_wrap[data-day-video] { overflow: hidden; }
.day_poster_video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #000; opacity: 0; pointer-events: none; }
.day_featured_wrap.is-video-playing .day_poster_video { opacity: 1; }
/* Event logo in place of the title (event page and featured card): the title text stays for screen
   readers and for reduced motion.
   The logo is a plain file (Sanity's image pipeline flattens animation). Width and height from the CMS
   reserve its space; without them a typical wide ratio is assumed until the file loads. */
/* Headings trim their own line box; an image needs that room back (em = the heading's size). */
.title_logo { display: block; width: 100%; height: auto; aspect-ratio: auto 11 / 5; margin-block: .2em .36em; }
.event-hero_card_logo { max-width: 30rem; margin-inline: auto; }
.events_featured_logo { max-width: 24rem; }
.has-logo:not(.is-animated) > .title_logo_text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (prefers-reduced-motion: no-preference) {
  .has-logo.is-animated > .title_logo_text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
  .has-logo.is-animated > .title_logo { display: none; }
}
.event-hero > .day_poster_video { border-radius: inherit; }
.event-hero.is-video-playing > .day_poster_video { opacity: 1; }
.events_featured_slider_vid.is-video-playing { display: block; opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .events_featured_slider_vid, .day_poster_video { display: none !important; }
}

@media (max-width: 991px) {
  .events_featured_slider_wrap {
    cursor: grab;
    overscroll-behavior-x: contain;
    touch-action: pan-y;
  }
  .events_featured_slider_wrap:active { cursor: grabbing; }
  .events_featured_slider_wrap .swiper-wrapper {
    transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
    will-change: transform;
  }
  .events_featured_slider_component:not(.is-native-featured) .events_featured_slider_list {
    column-gap: 0 !important;
    gap: 0 !important;
  }
  .events_featured_slider_button {
    cursor: pointer;
    user-select: none;
  }
  .events_featured_slider_button.swiper-button-disabled {
    cursor: default;
    opacity: .35;
    pointer-events: none;
  }
  .events_featured_slider_component.is-native-featured .events_featured_slider_wrap {
    overflow-x: auto;
    scrollbar-width: thin;
    scroll-snap-type: x mandatory;
  }
  .events_featured_slider_component.is-native-featured .events_featured_slider_list {
    display: flex;
  }
  .events_featured_slider_component.is-native-featured .events_featured_slider_item {
    flex: 0 0 100%;
    scroll-snap-align: start;
  }
}
.days_slider_component.is-native-calendar .days_slider_wrap {
  overflow-x: auto;
  scrollbar-width: thin;
  scroll-snap-type: x mandatory;
}
.days_slider_component.is-native-calendar .days_slider_list {
  display: flex;
}
.days_slider_component.is-native-calendar .days_slider_item {
  flex: 0 0 min(90vw, 30rem);
  scroll-snap-align: start;
}
@media (prefers-reduced-motion: reduce) {
  .days_slider_component *, .events_featured_slider_component * { transition-duration: 0ms !important; }
}

/* Footer design credit: rules from staging stylesheet 2e38a6242, not yet in the vendored export. */
.footer_bottom_link_wrap.is--credits { grid-column-gap: .4em; grid-row-gap: .4em; justify-content: space-between; align-items: center; display: flex; }
.footer_bottom_item.is--credits { opacity: .6; }
.woop { width: 1.6em; }

/* Homepage notice: the message, then one line per destination. */
.contentcard_wrap.notice { display: block; padding: 0; text-align: left; }
.notice_body { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--_spacing---space--6); align-items: center; padding: var(--_spacing---space--4); }
.notice_title { margin: 0 0 var(--_spacing---space--4); text-wrap: balance; }
/* One shared button column, so the three buttons line up and match in width. */
.notice_links { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.notice_link { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; align-items: center; column-gap: var(--_spacing---space--4); padding: var(--_spacing---space--2) 0; border-top: 3px solid color-mix(in srgb, currentColor 30%, transparent); }
.notice_link:first-child { border-top: 0; padding-top: 0; }
.notice_link:last-child { padding-bottom: 0; }
.notice_link_text { margin: 0; }
.notice_lead > .button_main_wrap { margin-top: var(--_spacing---space--4); }
.notice_link .button_main_element { width: 100%; justify-content: center; text-align: center; }
@media (max-width: 767px) {
  .notice_body { grid-template-columns: minmax(0, 1fr); gap: var(--_spacing---space--4); }
  .notice_links { grid-template-columns: minmax(0, 1fr); }
  .notice_lead > .button_main_wrap { display: flex; }
  .notice_lead .button_main_element { width: 100%; justify-content: center; text-align: center; }
  .notice_link { row-gap: var(--_spacing---space--2); }
  .notice_link:first-child { border-top: 3px solid color-mix(in srgb, currentColor 30%, transparent); padding-top: var(--_spacing---space--2); }
}

.area_icon-zohal { display: inline-block; background: currentColor; mask: url("/media/zohal.svg") center / contain no-repeat; }

.cookie_banner {
  position: fixed; inset: auto 0 0; z-index: 2147483647;
  background: var(--swatch--light-100); color: var(--swatch--dark-900);
  border-top: var(--border-width--main) solid currentColor;
  padding: var(--_spacing---space--4) var(--site--margin) max(var(--_spacing---space--4), env(safe-area-inset-bottom));
  max-height: 85dvh; overflow-y: auto; letter-spacing: 0;
}
.cookie_layout { max-width: var(--max-width--main); margin: auto; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--_spacing---space--4); }
.cookie_copy h2 { font-family: var(--_typography---font--primary-family); font-size: 1.75rem; line-height: 1.1; font-weight: 700; margin: 0; letter-spacing: 0; text-transform: uppercase; }
.cookie_banner p, .cookie_description { font-size: .9375rem; line-height: 1.5; margin: 0; }
.cookie_copy { max-width: 42rem; display: flex; flex-direction: column; gap: var(--_spacing---space--4); }
.cookie_copy a { text-decoration: underline; text-underline-offset: .2em; }
.cookie_actions { display: flex; align-items: center; flex-wrap: wrap; gap: .625rem; }
.cookie_banner .button_main_wrap {
  min-height: 48px; border-radius: 0;
  --_theme---button-primary--text: var(--swatch--dark-900);
  --_theme---button-primary--background: var(--swatch--brand-500);
  --_theme---button-primary--text-hover: var(--swatch--brand-500);
  --_theme---button-primary--background-hover: var(--swatch--dark-900);
  --_theme---button-primary--border: var(--_theme---button-primary--background);
  --_theme---button-primary--border-hover: var(--_theme---button-primary--background-hover);
}
.cookie_banner .button_main_wrap:has([data-cookie-choice="necessary"]) {
  --_theme---button-primary--text: var(--swatch--brand-500);
  --_theme---button-primary--background: var(--swatch--dark-900);
  --_theme---button-primary--text-hover: var(--swatch--dark-900);
  --_theme---button-primary--background-hover: var(--swatch--brand-500);
}
.cookie_banner .button_main_text { font-size: 1rem; letter-spacing: 0; }
.cookie_banner :is(button, summary, input, a):focus-visible, .cookie_reopen:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.cookie_preferences { grid-column: 1 / -1; font-size: .9375rem; }
.cookie_preferences summary { cursor: pointer; padding: 0; width: fit-content; text-decoration: underline; text-underline-offset: .2em; }
.cookie_option { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 0; border-top: 1px solid currentColor; max-width: 42rem; }
.cookie_option strong, .cookie_description { display: block; }
.cookie_option > span:last-child { white-space: nowrap; font-size: .875rem; }
.cookie_option input { flex: 0 0 1.375rem; width: 1.375rem; height: 1.375rem; margin: .5rem; accent-color: var(--swatch--dark-900); cursor: pointer; }
.cookie_reopen { font: inherit; font-size: 1rem; cursor: pointer; background: transparent; border: 0; color: inherit; }
.ticket_frame { display: block; border: 0; width: 100%; height: 800px; }
.ticket_consent { padding: var(--_spacing---space--4); border: var(--border-width--main) solid currentColor; }
.ticket_consent h3 { font-size: 1.75rem; margin: 0 0 var(--_spacing---space--4); }
.ticket_consent p { margin-bottom: var(--_spacing---space--4); }
.ticket_external { display: inline-block; margin-top: var(--_spacing---space--4); text-decoration: underline; }
@media (max-width: 991px) {
  .cookie_layout { grid-template-columns: minmax(0, 1fr); }
  .cookie_actions { align-items: stretch; }
  .cookie_actions .button_main_wrap { flex: 1 1 12rem; }
}

/* Language switcher: existing nav/footer link styles, the other language dimmed. */
.lang_switch { display: flex; align-items: center; gap: .35em; }
.lang_switch > .button_main_element { display: flex; align-items: center; gap: .35em; }
.lang_switch a { color: inherit; text-decoration: none; }
.lang_switch a:not([aria-current]) { opacity: .55; transition: opacity .2s; }
.lang_switch a:not([aria-current]):hover, .lang_switch a:focus-visible { opacity: 1; }
.lang_switch a:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
