@charset "UTF-8";
/*
	Cadence 2026
*/
/***
The new CSS Reset - version 1.4.5 (last updated 13.1.2022)
via https://alexclark.co.nz/blog/creating-a-simple-css-slider-with-scroll-snapping
***/
/*
    Remove all the styles of the "User-Agent-Stylesheet", except for the 'display' property
    - The "symbol *" part is to solve Firefox SVG sprite bug
 */
*:where(:not(iframe, canvas, img, svg, video):not(svg *, symbol *)) {
  all: unset;
  display: revert;
  -webkit-tap-highlight-color: transparent;
}
*:where(:not(iframe, canvas, img, svg, video):not(svg *, symbol *)):focus:not(:focus-visible) {
  outline: none;
}

/* Preferred box-sizing value */
*, *::after, *::before {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

html, body, body div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, main, article, aside, figure, footer, header, hgroup, menu, nav, section, time, mark, audio, video, input, select, button {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  text-decoration: none;
}

/* Reapply the pointer cursor for anchor tags */
a {
  cursor: revert;
  text-decoration-line: none;
}

/* Remove list styles (bullets/numbers) */
ol, ul, menu {
  list-style: none;
}

/* For images to not be able to exceed their container */
svg,
img {
  display: block;
  max-width: 100%;
}

/* removes spacing between cells in tables */
table {
  border-collapse: collapse;
}

/* revert the 'white-space' property for textarea elements on Safari */
textarea {
  white-space: revert;
}

/* fix the feature of 'hidden' attribute.
   display:revert; revert to element instead of attribute */
:where([hidden]) {
  display: none;
}

/* revert for bug in Chromium browsers
   - fix for the content editable attribute will work properly. */
:where([contenteditable]) {
  -moz-user-modify: read-write;
  -webkit-user-modify: read-write;
  overflow-wrap: break-word;
  -webkit-line-break: after-white-space;
}

/* apply back the draggable feature - exist only in Chromium and Safari */
:where([draggable=true]) {
  -webkit-user-drag: element;
}

figure.object-cover img, figure.object-cover video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

figure.object-contain img, figure.object-contain video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

em, i, .italic {
  font-style: italic;
}

.footer-menu {
  font-weight: bold;
}

body,
button,
input, input[type=submit],
.button {
  font-family: var(--primary-font-family), sans-serif;
  font-style: normal;
}

h1, h2, h3, h4,
dt button, .button,
menu, strong, b, .bold, .meta {
  font-family: var(--heading-font-family), sans-serif;
  font-weight: bold;
  font-style: normal;
}

:root {
  --primary-font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --heading-font-family: var(--primary-font-family);
  --body-bg-color: #212121;
  --body-text-color: #FFFFFF;
  --menu-bg-color: #000000;
  --menu-text-color: var(--body-text-color);
  --link-color: #00ff00;
  --link-hover-color: #00ffff;
  --footer-bg-color: #000000;
  --footer-text-color: #FFFFFF;
}

:-webkit-autofill {
  -webkit-text-fill-color: var(--body-bg-color);
  -webkit-box-shadow: 0 0 0px 1000px var(--body-text-color) inset;
}

:-moz-autofill {
  /* Firefox 18- */
  -moz-text-fill-color: var(--body-bg-color);
  -moz-box-shadow: 0 0 0px 1000px var(--body-text-color) inset;
}

::-moz-autofill {
  /* Firefox 19+ */
  -moz-text-fill-color: var(--body-bg-color);
  -moz-box-shadow: 0 0 0px 1000px var(--body-text-color) inset;
}

::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.5;
}

:-moz-placeholder {
  color: inherit;
  opacity: 0.5;
}

::-moz-placeholder {
  color: inherit;
  opacity: 0.5;
}

:-ms-input-placeholder {
  color: var(--body-text-color);
  overflow: hidden;
}

::selection {
  background: var(--body-text-color);
  color: var(--body-bg-color);
  text-shadow: none;
}

::-moz-selection {
  background: var(--body-text-color);
  color: var(--body-bg-color);
  text-shadow: none;
}

html {
  width: 100%;
  height: 100%;
  /* mobile viewport bug fix */
  min-height: -webkit-fill-available;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: none;
  -moz-osx-font-smoothing: grayscale;
  /* fixes FF over-bolding */
  -ms-overflow-style: -ms-autohiding-scrollbar;
  font-size: 62.5%;
  /* 10px reset */
  position: relative;
  background-color: var(--body-bg-color);
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
  -webkit-tap-link--link-color-color: rgba(0, 0, 0, 0);
  scroll-behavior: smooth;
  scrollbar-width: thin;
  scrollbar-color: var(--body-text-color) transparent;
}

body {
  width: 100%;
  min-height: 100%;
  background-color: var(--body-bg-color);
  color: var(--body-text-color);
  font-size: 16px;
  line-height: 1.4;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
@media only screen and (min-width: 769px) {
  body {
    font-size: 18px;
  }
}
body:has(.modal.open) {
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
}

h1, .h1 {
  font-size: 300%;
  line-height: 0.9;
  text-transform: uppercase;
}
@media only screen and (min-width: 769px) {
  h1, .h1 {
    font-size: 400%;
  }
}

h2, .h2 {
  font-size: 200%;
  line-height: 0.9;
  text-transform: uppercase;
}
@media only screen and (min-width: 769px) {
  h2, .h2 {
    font-size: 300%;
  }
}

h3, .h3, .intro-text p {
  font-size: 125%;
  line-height: 1.2;
}
@media only screen and (min-width: 769px) {
  h3, .h3, .intro-text p {
    font-size: 150%;
  }
}

h4, .h4, dt button {
  font-size: 100%;
  line-height: 1.3;
}
@media only screen and (min-width: 769px) {
  h4, .h4, dt button {
    font-size: 110%;
  }
}

small,
figcaption {
  font-size: 85%;
}

a:not(.button) {
  color: var(--link-color);
  text-decoration: underline;
  text-decoration-thickness: 0.0625em;
  text-underline-offset: 0.15em;
  text-decoration-color: color-mix(in srgb, var(--body-text-color) 50%, var(--link-color) 50%);
}
a:not(.button):hover, a:not(.button):focus:not(:active) {
  color: var(--link-hover-color);
  text-decoration-color: var(--link-hover-color);
}

a,
label,
input[type=submit],
button {
  cursor: pointer;
}

svg {
  overflow: visible;
  fill: currentColor;
}

input[type=text],
input[type=email],
input[type=password],
input[type=search],
input[type=url],
input[type=tel],
input[type=submit],
textarea,
select {
  width: 100%;
  border: 0.1em solid var(--body-text-color);
  padding: 0 1.5rem;
  line-height: 3rem;
}

input[type=submit] {
  text-align: center;
}

input[type=checkbox],
input[type=radio] {
  width: 1rem;
  height: 1rem;
  border: 0.1em solid;
  cursor: pointer;
}
@media only screen and (min-width: 769px) {
  input[type=checkbox],
  input[type=radio] {
    width: 1em;
    height: 1em;
  }
}
input[type=checkbox]:hover, input[type=checkbox]:focus:not(:active),
input[type=radio]:hover,
input[type=radio]:focus:not(:active) {
  box-shadow: 0 0 0 3px var(--body-text-color);
}
input[type=checkbox]:checked,
input[type=radio]:checked {
  background-color: var(--body-text-color);
  border-color: var(--body-text-color);
}

input[type=radio] {
  border-radius: 50%;
}
input[type=radio]:checked {
  pointer-events: none;
}

select {
  padding-right: 6rem;
  cursor: ns-resize;
  background-image: linear-gradient(45deg, transparent 50%, var(--body-bg-color) 50%), linear-gradient(135deg, var(--body-bg-color) 50%, transparent 50%);
  background-position: calc(100% - 1.5em) 50%, calc(100% - 1em) 50%;
  background-size: 0.5em 0.5em, 0.5em 0.5em;
  background-repeat: no-repeat;
}
select:hover, select:focus:not(:active) {
  background-image: linear-gradient(45deg, transparent 50%, var(--body-text-color) 50%), linear-gradient(135deg, var(--body-text-color) 50%, transparent 50%);
}

figure.object-cover {
  position: relative;
  width: 100%;
  background-color: color-mix(in srgb, var(--body-text-color) 10%, var(--body-bg-color) 50%);
}
figure.object-cover img, figure.object-cover video {
  position: absolute;
  top: 0;
  left: 0;
}

figure.object-contain {
  position: relative;
  width: 100%;
}
figure.object-contain img, figure.object-contain video {
  position: absolute;
  top: 0;
  left: 0;
}

img, svg, video, iframe {
  display: block;
}

video,
iframe {
  width: 100%;
}

header,
.hero .wrap {
  background-color: var(--menu-bg-color);
  color: var(--menu-text-color);
  backdrop-filter: blur(20px);
}
header .button:not(:hover):not(:focus),
.hero .wrap .button:not(:hover):not(:focus) {
  box-shadow: inset 0 0 0 1px currentColor;
}

header {
  position: fixed;
  width: 100%;
  padding: 1.5rem 1.5rem 1.5rem 3rem;
  z-index: 3;
}
header .home-link {
  display: block;
}
header img,
header svg {
  width: auto;
  height: 4rem;
  max-width: 24rem;
}
header menu ul {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3rem;
}
header menu a {
  text-decoration: none !important;
}
header menu a.current {
  font-weight: 700;
  color: var(--link-hover-color) !important;
  pointer-events: none;
}
header menu a:not(:hover):not(:focus) {
  color: var(--menu-text-color);
}
@media only screen and (max-width: 1023px) {
  header menu {
    width: 100%;
    max-height: 0;
    overflow: hidden;
    transition: all 0.5s linear;
  }
  header menu.open {
    max-height: 100vh;
    max-height: 100dvh;
    padding: 3rem 0;
  }
}
@media only screen and (min-width: 1024px) {
  header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem 3rem;
  }
  header menu ul {
    flex-direction: row;
  }
}
@media only screen and (min-width: 1025px) {
  header {
    padding: 1.5rem 6rem;
  }
}

.menu-button {
  position: fixed;
  top: 0;
  right: 1.5rem;
  width: 7rem;
  height: 7rem;
  background-color: transparent;
  border: none;
  cursor: pointer;
}
.menu-button::before, .menu-button::after,
.menu-button div {
  content: "";
  position: absolute;
  left: 25%;
  width: 50%;
  height: 0.2rem;
  background-color: var(--menu-text-color);
  transition: transform 0.25s ease-out, top 0.25s ease-out, bottom 0.25s ease-out;
}
.menu-button::before {
  top: 30%;
}
.menu-button::after {
  bottom: 30%;
}
.menu-button div {
  top: 50%;
  transform: translateY(-50%);
}
.menu-button:hover::before, .menu-button:hover::after, .menu-button:hover div, .menu-button:focus::before, .menu-button:focus::after, .menu-button:focus div {
  background-color: var(--link-hover-color);
}
.menu-button[aria-expanded=true]::before {
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}
.menu-button[aria-expanded=true]::after {
  bottom: 50%;
  transform: translateY(50%) rotate(-45deg);
}
.menu-button[aria-expanded=true] div {
  opacity: 0;
}
@media only screen and (min-width: 1024px) {
  .menu-button {
    display: none;
  }
}

main {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
  padding-top: 7rem;
}
header + main .hero + section, header + main section:first-child {
  padding-top: 3rem;
}
main section:last-child {
  padding-bottom: 3rem;
}
main a:not(:hover):not(:focus):not(.button) {
  color: inherit;
}

section {
  position: relative;
  width: 100%;
  z-index: 2;
  background-color: var(--body-bg-color);
  color: var(--body-text-color);
}
.wrap {
  width: 100%;
  position: relative;
  padding: 3rem;
  margin: 0 auto;
  text-wrap: pretty;
}
.wrap.intro-wrap, .wrap.centered {
  max-width: 45em;
}
.wrap.media-wrap {
  max-width: 54em;
}
.wrap.flush-top {
  padding-top: 0;
}
.wrap.full-width {
  padding-left: 0;
  padding-right: 0;
}
.wrap.push-left {
  margin-left: 0;
}
.wrap.push-right {
  margin-right: 0;
}
@media only screen and (min-width: 1025px) {
  .wrap {
    padding: 6rem;
  }
}

.hero {
  position: relative;
  width: 100%;
  min-height: calc(100vh - 7rem);
  min-height: calc(100dvh - 7rem);
  background-color: #000 !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 3rem;
  z-index: 1;
}
.hero figure {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  opacity: 0.8;
}
.hero .wrap {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-wrap: balance;
  padding: 3rem;
  transform: skew(-1deg) rotate(-1deg) translateY(20vh);
}
.hero .wrap .button {
  transform: none;
}

.page-title {
  background-color: color-mix(in srgb, var(--body-bg-color), var(--menu-bg-color) 25%);
}
.page-title .wrap {
  margin-left: 0;
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr));
  align-items: stretch;
  gap: 9rem 3rem;
  width: 100%;
}
.grid .grid-item {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 1.5rem;
  max-width: 60rem;
}
.grid .text-wrap {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 1.5rem;
}
.grid .text-wrap * + * {
  margin-top: 0;
}
.grid figure {
  aspect-ratio: 4/3;
}
.grid.film-grid figure {
  aspect-ratio: 16/9;
}
.grid.resource-grid {
  grid-template-columns: repeat(auto-fit, minmax(25rem, 1fr));
}
@media only screen and (max-width: 450px) {
  .grid.resource-grid {
    font-size: 13px;
    grid-template-columns: 1fr 1fr;
  }
}
.grid.resource-grid figure {
  background-color: transparent;
}
.grid.resource-grid img {
  object-fit: contain;
  object-position: 0 100%;
}
.grid .button-wrap {
  margin-top: auto;
}
@media only screen and (min-width: 769px) {
  .grid {
    gap: 6rem 3rem;
  }
  .grid:has(> .grid-item:nth-child(4):nth-last-child(1)) {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media only screen and (min-width: 1025px) {
  .grid {
    gap: 9rem 6rem;
  }
}

.flex {
  display: flex;
  width: 100%;
}
.align-center .flex {
  justify-content: center;
}

.space-between {
  justify-content: space-between;
}

.baseline {
  align-items: baseline;
}

.gap {
  gap: 1.5rem;
}

.align-center {
  text-align: center;
}

.split {
  position: relative;
  width: 100%;
  display: block;
}
.split + .split {
  padding-top: 6rem;
}
@media only screen and (max-width: 768px) {
  .split figure {
    aspect-ratio: 1;
    margin-bottom: 3rem;
  }
}
@media only screen and (min-width: 769px) {
  .split {
    display: flex;
    align-items: flex-start;
    gap: 6rem;
  }
  .split + .split:nth-child(even), .split.text-left {
    flex-direction: row-reverse;
  }
  .split figure {
    -webkit-position: sticky;
    position: sticky;
    top: 7rem;
    aspect-ratio: 1;
    flex: 1 1 40%;
  }
  .split figure img {
    max-height: calc(100dvh - 7rem - 6rem);
  }
  .split .text-wrap {
    flex: 1 1 60%;
  }
}

.button-wrap {
  display: flex;
  align-items: center;
  width: 100%;
  margin: 3rem auto;
  gap: 1.5rem;
}
@media only screen and (max-width: 768px) {
  .button-wrap {
    margin: 1.5rem auto;
  }
}
.button-wrap:first-child {
  margin-top: 0;
}
.button-wrap:last-child {
  margin-bottom: 0;
}
.align-center .button-wrap {
  justify-content: center;
}

input[type=submit],
.button {
  display: inline-block;
  font-size: 90%;
  line-height: 1;
  letter-spacing: 0.1ex;
  text-transform: uppercase;
  text-decoration: none;
  padding: 0.75rem 1.5rem;
  background-color: var(--body-text-color);
  color: var(--body-bg-color);
  transform: skew(-1deg) rotate(-1deg);
}
input[type=submit]:hover, input[type=submit]:focus:not(:active),
.button:hover,
.button:focus:not(:active) {
  background-color: var(--link-color);
  border-color: var(--link-color);
  color: var(--body-text-color);
}

.slideshow {
  position: relative;
  width: 100%;
  padding-bottom: 3rem;
}
.slideshow figure {
  width: 100%;
  aspect-ratio: 16/9;
}
.slideshow figure:not(:first-child) {
  display: none;
}

.dots {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  max-width: calc(100% - 8rem);
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-end;
  gap: 1.5rem;
}
.dots button {
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 50%;
  cursor: pointer;
  border: 1px solid var(--link-color);
}
.dots button:hover {
  box-shadow: 0 0 0 0.75rem var(--link-color);
}
.dots button:focus {
  box-shadow: 0 0 0 0.75rem var(--link-color);
}
.dots button.active {
  background-color: var(--link-color);
}

.next,
.prev {
  position: absolute;
  top: 0;
  width: 50%;
  height: 100%;
  cursor: pointer;
  text-indent: -100vw;
}
.next::after,
.prev::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 1.5rem;
  height: 1.5rem;
  background-color: var(--link-color);
  visibility: hidden;
  clip-path: polygon(100% 50%, 0 0, 0 100%);
}
.next:hover::after, .next:focus::after,
.prev:hover::after,
.prev:focus::after {
  visibility: visible;
}

.next {
  right: 0;
}
.next::after {
  right: 0;
  transform: translateY(-50%);
}

.prev {
  left: 0;
}
.prev::after {
  left: 0;
  transform: translateY(-50%) rotate(180deg);
}

[data-touch-events=true] .prev::after {
  visibility: visible;
}
[data-touch-events=true] .next::after {
  visibility: visible;
}

.accordion {
  display: block;
  border-bottom: 0.1em solid var(--body-text-color);
}
.accordion dt, .accordion dt button, .accordion dd {
  width: 100%;
  text-wrap: pretty;
}
.accordion dt {
  position: relative;
  border-top: 0.1em solid var(--body-text-color);
}
.accordion dt::after {
  content: "＋";
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  padding-top: 1.5rem;
  padding-right: 1.5rem;
  pointer-events: none;
}
.accordion dt:has([aria-expanded=false]) + dd {
  display: none;
}
.accordion dt:has([aria-expanded=true])::after {
  content: "－";
}
.accordion dt:has([aria-expanded=true]) + dd {
  display: block;
}
.accordion dt button {
  width: 100%;
  padding: 1.5rem 6rem 1.5rem 1.5rem;
  text-align: left;
  color: var(--body-text-color);
  background-color: var(--body-bg-color);
  cursor: ns-resize;
}
.accordion dt button:hover, .accordion dt button:focus:not(:active) {
  background-color: var(--body-text-color);
  color: var(--body-bg-color);
}
.accordion dd {
  padding: 1.5rem 1.5rem 3rem;
}

[data-layout=post_grid] + [data-layout=post_grid]::before {
  content: "";
  display: block;
  width: calc(100% - 6rem);
  margin: 0 auto;
  border-top: 0.2em dashed currentColor;
}

.widont {
  text-wrap: pretty;
}

h1, h2, h3,
.balance-text {
  text-rendering: optimizeLegibility;
  text-wrap: pretty;
  text-wrap: balance !important;
}

.meta {
  font-weight: 300;
  list-style: none !important;
  padding-left: 0 !important;
}

.next-up {
  background-color: var(--footer-bg-color);
  color: var(--footer-text-color);
}
body:has(.upcoming-events) .next-up {
  display: none;
}

footer {
  position: relative;
  z-index: 3;
  width: 100%;
  background-color: var(--footer-bg-color);
  color: var(--footer-text-color);
  margin-top: auto;
}
footer a:not(.button) {
  text-decoration: none;
  color: var(--footer-text-color);
}
footer a:not(.button):hover, footer a:not(.button):focus:not(:active) {
  color: var(--link-hover-color);
}
footer small {
  opacity: 0.7;
}

.footer-logo img, .footer-logo svg {
  width: 100%;
  height: auto;
}

.footer-menu {
  display: flex;
  justify-content: center;
  list-style: none;
  margin-bottom: 1.5rem;
}
.footer-menu li + li {
  border-left: 0.1em solid;
}
.footer-menu a {
  display: inline-block;
  padding: 0 1.5rem;
}

.gfield_required {
  display: none !important;
}

.ginput_complex label {
  margin-bottom: 0.75rem;
}

.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100%;
  height: 100dvh;
  z-index: 4;
  background-color: var(--body-text-color);
  padding: 0.75rem;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s linear 0.5s, opacity 0.5s linear;
  will-change: visibility, opacity;
}
body[data-loading=true] .modal {
  display: none;
}
.modal .modal-wrap {
  position: relative;
  width: 100%;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  transform: translateY(3rem);
  transition: transform 0.5s ease-out;
}
.modal[aria-hidden=false] {
  visibility: visible;
  opacity: 1;
  transition-delay: 0s;
}
.modal[aria-hidden=false] .modal-wrap {
  transform: translateY(0);
}
.modal .close-modal {
  position: fixed;
  top: 0;
  right: 0;
  width: 6rem;
  height: 6rem;
  padding: 3rem;
  cursor: pointer;
  background-image: linear-gradient(45deg, transparent calc(50% - 1.5px), var(--body-bg-color) calc(50% - 1.5px), var(--body-bg-color) calc(50% + 1.5px), transparent calc(50% + 1.5px)), linear-gradient(135deg, transparent calc(50% - 1.5px), var(--body-bg-color) calc(50% - 1.5px), var(--body-bg-color) calc(50% + 1.5px), transparent calc(50% + 1.5px));
  background-size: 50% 50%;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  transition: transform 0.25s ease-out;
}
.modal .close-modal:hover, .modal .close-modal:focus:not(:active) {
  transform: rotate(180deg);
}

.text-wrap p {
  max-width: 42em;
}
.text-wrap h1 + h2,
.text-wrap p + h2,
.text-wrap p + h3,
.text-wrap ul + h3,
.text-wrap ol + h3,
.text-wrap h1 + h3,
.text-wrap h1 + hr,
.text-wrap h1 + p,
.text-wrap h1 + form,
.text-wrap h2 + hr,
.text-wrap h2 + h3,
.text-wrap h4 + h3,
.text-wrap blockquote + h3,
.text-wrap p + h3,
.text-wrap hr + h3,
.text-wrap h2 + dl,
.text-wrap h2 + h4,
.text-wrap h2 + p,
.text-wrap h3 + hr + p,
.text-wrap h3 + p,
.text-wrap h3 + ul,
.text-wrap h3 + ol,
.text-wrap ul + hr,
.text-wrap ul + ul,
.text-wrap ul + hr + ul,
.text-wrap ul + p,
.text-wrap h3 + dl,
.text-wrap ul + hr + p,
.text-wrap hr + p,
.text-wrap p + dl,
.text-wrap p + ul,
.text-wrap ol + p,
.text-wrap p + ol,
.text-wrap h4 + p,
.text-wrap h3 + h4,
.text-wrap p + h4,
.text-wrap ul + h4,
.text-wrap ol + h4,
.text-wrap p + blockquote,
.text-wrap blockquote + p,
.text-wrap h3 + blockquote,
.text-wrap h4 + ul,
.text-wrap h2 + .accordion,
.text-wrap p + p {
  margin-top: 1em;
}
.text-wrap ul, .text-wrap ol {
  list-style: disc;
  padding-left: 1em;
}
.text-wrap ul li + li, .text-wrap ol li + li {
  margin-top: 0.5rem;
}

.festival-dates {
  margin: 3rem 0 6rem;
}
.festival-dates p + p {
  margin-top: 0.75rem;
}

.reduced-motion *,
.pause-animations * {
  animation: none !important;
  transition: none !important;
}

.screenreader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.admin-edit a {
  position: fixed;
  bottom: 0;
  right: 0;
  width: auto;
  background-color: var(--link-color);
  color: var(--body-text-color) !important;
  text-align: center;
  text-decoration: none !important;
  padding: 1.5rem;
  font-size: 14px;
  z-index: 9999;
  font-weight: bold;
}
.admin-edit a:hover, .admin-edit a:focus:not(:active) {
  background-color: var(--link-hover-color);
}
@media only screen and (max-width: 768px) {
  .admin-edit a {
    display: none;
  }
}

@media only screen and (max-width: 768px) and (max-height: 400px) {
  main {
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
  }
}
