:root {
    --e-a-bg-default: #fff;
    --e-a-color-txt: #2d7898;
    --e-a-color-txt-hover: #2d7898;
    --e-global-color-primary: #2d7898;
    --e-global-color-secondary: #545454;
    --e-global-color-text: #7a7a7a;
    --e-global-color-accent: #02a8ff;
    --e-global-color-88b2877: #fff;
    --e-global-color-e99cf5c: #2d7898;
    --e-global-color-ae952bc: #f99d36;
    --e-global-color-0d6f5ec: #e0376c;
    --e-global-color-354e524: #0d8bb6;
    --e-global-color-8a71e82: #35a54d;
    --e-global-color-fd74896: #f27d00;
    --e-global-color-4cf7378: #f26a5a;
    --e-global-color-e546223: #2d7898;
    --e-global-color-6dde871: #2d7898;
    --e-global-color-ae924a6: #2b647c;
    --e-global-color-d3ad155: #2b647c;
    --festival-content-width: 1140px;
}

html {
    overflow-x: hidden;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    overflow-x: hidden;
    background: #fff;
    color: var(--e-global-color-text);
    font-family: "Open Sans", sans-serif;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

a {
    color: inherit;
    text-decoration: none;
}

p a {
    font-weight: 700;
}

img,
svg,
video,
iframe {
    max-width: 100%;
}

img,
video {
    height: auto;
}

button,
input,
select,
textarea {
    font: inherit;
}

button {
    cursor: pointer;
}

main {
    display: block;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0;
    font-family: "Open Sans", sans-serif;
}

.festival-page {
    min-height: 100vh;
}

.festival-slot {
    position: relative;
    width: var(--width, auto);
    max-width: min(100%, var(--max-width, var(--width, 100%)));
    min-height: var(--min-height, auto);
    margin-block-start: var(--margin-block-start, 0);
    margin-block-end: var(--margin-block-end, 0);
    margin-inline-start: var(--margin-inline-start, 0);
    margin-inline-end: var(--margin-inline-end, 0);
    padding-block-start: var(--padding-block-start, 0);
    padding-block-end: var(--padding-block-end, 0);
    padding-inline-start: var(--padding-inline-start, 0);
    padding-inline-end: var(--padding-inline-end, 0);
    border-radius: var(--border-radius, 0);
    overflow: var(--overflow, visible);
    z-index: var(--z-index, auto);
}

.festival-slot::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    border-radius: inherit;
    transition:
        background-color var(--background-transition, 0.3s),
        border-color var(--border-transition, 0.3s),
        opacity var(--background-transition, 0.3s),
        transform var(--background-transition, 0.3s);
    pointer-events: none;
}

.festival-slot > * {
    position: relative;
    z-index: 1;
}

.festival-stack {
    display: var(--display, flex);
    flex-direction: var(--flex-direction, column);
    flex-wrap: var(--flex-wrap, nowrap);
    justify-content: var(--justify-content, flex-start);
    align-items: var(--align-items, stretch);
    align-content: var(--align-content, stretch);
    gap: var(--gap, 0);
    padding-block-start: 0;
    padding-block-end: 0;
}

.festival-stack--parent > .festival-slot,
.festival-stack__inner > .festival-slot {
    flex-grow: var(--flex-grow, 0);
    flex-shrink: var(--flex-shrink, 1);
    flex-basis: var(--width, auto);
    align-self: var(--container-widget-align-self, auto);
}

.festival-stack--boxed {
    --content-width: min(100%, var(--container-max-width, var(--festival-content-width)));
}

.festival-stack__inner {
    width: 100%;
}

.festival-stack--boxed > .festival-stack__inner {
    width: 100%;
    max-width: var(--content-width);
    margin-inline: auto;
    display: var(--display, flex);
    flex-direction: var(--flex-direction, column);
    flex-wrap: var(--flex-wrap, nowrap);
    justify-content: var(--justify-content, flex-start);
    align-items: var(--align-items, stretch);
    align-content: var(--align-content, stretch);
    gap: var(--gap, 0);
}

.festival-widget {
    display: block;
    width: auto;
    max-width: 100%;
    min-height: auto;
    margin-block-start: 0;
    margin-inline-end: 0;
    margin-block-end: 0;
    margin-inline-start: 0;
    padding-block-start: 0;
    padding-inline-end: 0;
    padding-block-end: 0;
    padding-inline-start: 0;
    border-radius: 0;
    overflow: visible;
    z-index: auto;
}

.festival-widget__content {
    width: 100%;
}

.festival-widget--image img,
.festival-widget--gallery img,
.festival-widget--image-box img {
    display: block;
}

.festival-widget--text p:last-child,
.festival-widget--html > .festival-widget__content > :last-child {
    margin-bottom: 0;
}

.festival-heading {
    margin: 0;
}

.festival-sr-only,
.festival-cookie__sr,
.festival-a11y__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.festival-animate-await {
    opacity: 0;
}

.festival-animate-await.is-visible {
    opacity: 1;
}

.animated {
    animation-duration: 0.8s;
    animation-fill-mode: both;
}

.festival-animate-slow {
    animation-duration: 1.2s;
}

.fadeIn {
    animation-name: festival-fade-in;
}

.fadeInDown {
    animation-name: festival-fade-in-down;
}

.fadeInUp {
    animation-name: festival-fade-in-up;
}

@keyframes festival-fade-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes festival-fade-in-down {
    from {
        opacity: 0;
        transform: translate3d(0, -24px, 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes festival-fade-in-up {
    from {
        opacity: 0;
        transform: translate3d(0, 24px, 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@media (max-width: 1024px) {
    :root {
        --festival-content-width: 1024px;
    }
}

@media (max-width: 767px) {
    :root {
        --festival-content-width: 767px;
    }
}
