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

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role='list'],
ol[role='list'] {
  list-style: none;
}

/* Set core root defaults */
html:focus-within {
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

/* Remove all animations, transitions and smooth scroll for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
   scroll-behavior: auto;
  }
  
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* FONTS */
@font-face {
    font-display: swap;
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/roboto-v30-latin-regular.woff2') format('woff2'), 
         url('../fonts/roboto-v30-latin-regular.woff') format('woff');
  }

  @font-face {
    font-display: swap;
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 500;
    src: url('../fonts/roboto-v30-latin-500.woff2') format('woff2'), 
         url('../fonts/roboto-v30-latin-500.woff') format('woff');
  }

  @font-face {
    font-display: swap; 
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 900;
    src: url('../fonts/roboto-v30-latin-900.woff2') format('woff2'),
         url('../fonts/roboto-v30-latin-900.woff') format('woff');
  }

/* TYPOGRAPHY */
:root {
    --fs-400: clamp(1rem, 0.805rem + 0.843vw, 1.438rem);
    --fs-500: clamp(1.313rem, 0.505rem + 3.494vw, 3.125rem);
    --fs-800: clamp(1.313rem, 0.031rem + 5.542vw, 4.188rem);
    --fs-xl: clamp(3.125rem, -3.367rem + 28.072vw, 17.688rem); 
}

body {
    font-family: 'Roboto';
    font-style: normal;
}

h1, h2 {
    font-size: var(--fs-xl);
    font-weight: 900;
    line-height: 1;
    text-transform:uppercase;
}

h2 {
    white-space:nowrap;
    margin-bottom:1.25rem;
}

h3, h4, h5, h6 {
    font-size: var(--fs-500);
    font-weight: 900;
    line-height: 1.1;
    text-transform:uppercase;
}

.title-xl {
    font-size:var(--fs-xl);
    white-space: nowrap;
    overflow: hidden;
    line-height:1;
}

.title-break {
    white-space: pre-wrap !important;
}

/* COLORS */
:root {
    --primary-yellow: #FFB100;
    --dark: #0A0903;
    --light: #fffcff;
    --bronze: #AA9055;
}

/* UTILITY */
.bg-primary {
    background-color:var(--primary-yellow);
}

.text-primary {
    color:var(--primary-yellow);
}

.text-dark {
    color:var(--dark);
}

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

section:nth-child(odd) h2 {
    text-align:right;
}

section:last-child h2 {
    text-align:left;
}

.mt-400 {
    margin-top:2rem !important;
}

/* GLOBAL */
html::-webkit-scrollbar {
    width: 16px;
}

html::-webkit-scrollbar-track {
    background: var(--dark);
    border-radius: 15px;
}

html::-webkit-scrollbar-thumb {
    background:var(--primary-yellow);
    border-radius: 8px;
    transition:.5s ease;
    border:3px solid var(--dark);
}

html::-webkit-scrollbar-thumb:hover {
    background:var(--dark);
    border:3px solid var(--primary-yellow);
	
}

html::-webkit-scrollbar-thumb:active {
    background:var(--dark);
    border:3px solid var(--primary-yellow);
}

body {
    background-color:var(--dark);
    color:var(--light);
    margin:0;
}

p { 
    display: block; 
    margin-block-start: 1em; 
    margin-block-end: 1em; 
    margin-inline-start: 0px; 
    margin-inline-end: 0px; 
}

a:link, a:visited {
    display:inline-block;
    position:relative;
    text-decoration:none;
    color:var(--primary-yellow);
    transition:all .5s ease;
}

a:hover, a:active {
    color:var(--light);
}

a.contact-link, a.contact-link:visited {
    color:var(--dark);
    font-weight:800;
    font-size: var(--fs-500);
    transition: color .5s ease;
}

a.contact-link:hover, a.contact-link:active {
    color:var(--light);
}

img {
    max-width:100%;
    height:auto;
}

ul, ol {
    margin-left: 1.5em;
    margin-bottom: 1.5em;
}
  
li {
    margin-bottom: 0.5em;
}

.container {
    margin-inline:auto;
    width: min(90%, 70.5rem);
    position:relative;
}

/* HEADER */
header {
    display:flex;
    flex-direction:row;
    justify-content: flex-end;
    position:absolute;
    top:0;
    left:0;
    width:100%;
    padding:2em;
}

/* HERO */
.hero {
    position:relative;
    width:100%;
    min-height:100vh;
    display:flex;
    justify-content: center;
    align-items: center;
    overflow:hidden;
}

.hero-content {
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    z-index:10;
}

.hero-background-container {
    position:absolute;
    opacity:.5;
    width:100%;
    min-height:100vh;
}

@media(min-width:40rem) {
    .hero {
        height:100vh;
    }
}

.hero-logo {
    width: clamp(15.625rem, 7.267rem + 36.145vw, 34.375rem);
}

/* NAVIGATION */
.burger {
    height: 40px;
    width: 40px;
    position: fixed;
    z-index:102;
    -moz-border-radius: 100%;
    -webkit-border-radius: 100%;
    border-radius: 100%;
    -moz-transition: 0.3s;
    -o-transition: 0.3s;
    -webkit-transition: 0.3s;
    transition: 0.3s;
    cursor: pointer;
    /* background-color: #AA9055; */
  }
  
  .bar {
    height: 3px;
    width: 100%;
    display: block;
    margin: 5px auto;
    position: absolute;
    background-color: #fff;
    /* -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    border-radius: 10px; */
    -moz-transition: 0.4s;
    -o-transition: 0.4s;
    -webkit-transition: 0.4s;
    transition: 0.4s;
  }
  
.bar:nth-of-type(1) {
    top: 0;
    -moz-transition: top 0.3s ease 0.3s, -moz-transform 0.3s ease-out 0.1s;
    -o-transition: top 0.3s ease 0.3s, -o-transform 0.3s ease-out 0.1s;
    -webkit-transition: top 0.3s ease, -webkit-transform 0.3s ease-out;
   transition-delay: 0.3s, 0.1s;
    transition: top 0.3s ease 0.3s, transform 0.3s ease-out 0.1s;
    -moz-animation: mrotr 2s cubic-bezier(0.5, 0.2, 0.2, 1.01);
    -webkit-animation: mrotr 2s cubic-bezier(0.5, 0.2, 0.2, 1.01);
    animation: mrotr 2s cubic-bezier(0.5, 0.2, 0.2, 1.01);
  }
.bar:nth-of-type(2) {
    top: 12px;
    left:50%;
    width:50%;
    transform:translateX(-50%);
    -moz-transition: ease 0.3s 0.3s;
    -o-transition: ease 0.3s 0.3s;
    -webkit-transition: ease 0.3s;
    transition-delay: 0.1s;
    transition: ease 0.3s 0.3s;
    -moz-animation: fade 2s cubic-bezier(0.5, 0.2, 0.2, 1.01);
    -webkit-animation: fade 2s cubic-bezier(0.5, 0.2, 0.2, 1.01);
    animation: fade 2s cubic-bezier(0.5, 0.2, 0.2, 1.01);
  }
.bar:nth-of-type(3) {
    top: 24px;
    -moz-transition: top 0.3s ease 0.3s, -moz-transform 0.3s ease-out 0.1s;
    -o-transition: top 0.3s ease 0.3s, -o-transform 0.3s ease-out 0.1s;
    -webkit-transition: top 0.3s ease, -webkit-transform 0.3s ease-out;
    transition-delay: 0.3s, 0.1s;
    transition: top 0.3s ease 0.3s, transform 0.3s ease-out 0.1s;
    -moz-animation: mrotl 2s cubic-bezier(0.5, 0.2, 0.2, 1.01);
    -webkit-animation: mrotl 2s cubic-bezier(0.5, 0.2, 0.2, 1.01);
    animation: mrotl 2s cubic-bezier(0.5, 0.2, 0.2, 1.01);
}

.burger:hover .bar:nth-of-type(2) {
    width:100%;
}

.burger.nav-open .bar:nth-of-type(1) {
    top: 12px;
    background-color: var(--dark);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    -moz-transition: all 0.3s ease 0.1s, -moz-transform 0.3s ease-out 0.5s;
    -o-transition: all 0.3s ease 0.1s, -o-transform 0.3s ease-out 0.5s;
    -webkit-transition: top 0.3s ease, -webkit-transform 0.3s ease-out;
   transition-delay: 0.1s, 0.5s;
    transition: all 0.3s ease 0.1s, transform 0.3s ease-out 0.5s;
  }
  .burger.nav-open .bar:nth-of-type(2) {
    opacity: 0;
    background-color: var(--dark);
  }
  .burger.nav-open .bar:nth-of-type(3) {
    top: 12px;
    background-color: var(--dark);
    -moz-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    -moz-transition: all 0.3s ease 0.1s, -moz-transform 0.3s ease-out 0.5s;
    -o-transition: all 0.3s ease 0.1s, -o-transform 0.3s ease-out 0.5s;
    -webkit-transition: top 0.3s ease, -webkit-transform 0.3s ease-out;
    transition-delay: 0.1s, 0.5s;
    transition: all 0.3s ease 0.1s, transform 0.3s ease-out 0.5s;
  }

.menu-overlay {
    position:fixed;
    top:0;
    left:0;
    background-color: var(--primary-yellow);
    width:100vw;
    height:100vh;
    visibility:hidden;
    z-index:101;
    padding:3em 3em;
    display:flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align:center;
    transform-origin: top;
}

.menu ul {
    list-style:none;
    padding:0;
    margin:0;
}

.menu ul li {
    list-style:none;
    margin:0;
    padding:0;
    display:block;
    overflow:hidden;
}

.menu ul li a, .menu ul li a:visited {
    font-size:var(--fs-800);
    color: var(--dark);
    font-weight:800;
    line-height:1.2;
    text-transform:uppercase;
    transition: all .5s ease;
}
.menu ul li a:hover, .menu ul li a:active {
    color: var(--light);
}

.social-menu {
    display: flex;
    justify-content: space-between;
    width: min(17rem, 30%);
    margin-top: 2rem;
    flex-direction: column;
}

@media(min-width:65rem) {
    .social-menu {
        flex-direction: row;
    }
}

.social-menu a, .social-menu a:visited {
    color: var(--dark);
    text-transform:uppercase;
    font-weight:800;
    font-size:var(--fs-400);
    transition: color .5s ease;
}

.social-menu a:hover, .social-menu a:active {
    color: var(--light);
}

/* BUTTONS */
a.button {
    text-decoration:none;
    text-transform:uppercase;
    background-color:var(--dark);
    color:var(--primary-yellow);
    border: 5px solid var(--primary-yellow);
    font-size:var(--fs-400);
    font-weight:500;
    line-height:1;
    padding:.75em 1em;
    border-radius:50px;
    margin:.5em 0;
    transition:.5s ease;
}

a.button:hover, a.button:active {
    background-color: var(--primary-yellow);
    color: var(--dark);
    border: 5px solid var(--dark);
}

/* a.button:visited {
    background-color:var(--primary-yellow);
    color:var(--dark);
} */

/* SECTIONS */
section {
    padding-top:clamp(1.313rem, -0.582rem + 8.193vw, 5.563rem);
    padding-bottom:clamp(1.313rem, -0.582rem + 8.193vw, 5.563rem);
    padding-left:0;
    padding-right:0;
}

#information .container:last-child {
    margin-top:3.5em;
    margin-bottom: 3.5em;
}

/* GRID_SYSTEM */
.row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -1.15rem;
    align-items: flex-start;
}
  
.col {
    flex: 0;
    padding: 1.15rem;
}

.col-stretch {
    flex: 1;
    padding: 1.15rem;
}

.col-span-2 {
    flex-grow: 2;
}

.col-1 {
    flex-basis: 8.33%;
}

.col-2 {
    flex-basis: 16.67%;
}

.col-3 {
    flex-basis: 25%;
}

.col-4 {
    flex-basis: 33.33%;
}

.col-5 {
    flex-basis: 41.67%;
}

.col-6 {
    flex-basis: 50%;
}

.col-7 {
    flex-basis: 58.33%;
    flex-grow: 1;
}
  
.col-8 {
    flex-basis: 66.67%;
}

.col-9 {
    flex-basis: 75%;
}

.col-10 {
    flex-basis: 83.33%;
}

.col-11 {
    flex-basis: 91.67%;
}

.col-12 {
    flex-basis: 100%;
}

@media (min-width: 40rem) {
    .col-md-1 {
        flex-basis: 8.33%;
    }

    .col-md-2 {
        flex-basis: 16.67%;
    }

    .col-md-3 {
        flex-basis: 25%;
    }

    .col-md-4 {
        flex-basis: 33.33%;
    }

    .col-md-5 {
        flex-basis: 41.67%;
    }

    .col-md-6 {
        flex-basis: 50%;
    }

    .col-md-7 {
        flex-basis: 58.33%;
    }

    .col-md-8 {
        flex-basis: 66.67%;
    }

    .col-md-9 {
        flex-basis: 75%;
    }

    .col-md-10 {
        flex-basis: 83.33%;
    }

    .col-md-11 {
        flex-basis: 91.67%;
    }

    .col-md-12 {
        flex-basis: 100%;
    }
}
  
@media (min-width: 65rem) {
    .col-lg-1 {
        flex-basis: 8.33%;
    }

    .col-lg-2 {
        flex-basis: 16.67%;
    }

    .col-lg-3 {
        flex-basis: 25%;
    }

    .col-lg-4 {
        flex-basis: 33.33%;
    }

    .col-lg-5 {
        flex-basis: 41.67%;
    }

    .col-lg-6 {
        flex-basis: 50%;
    }

    .col-lg-7 {
        flex-basis: 58.33%;
    }

    .col-lg-8 {
        flex-basis: 66.67%;
    }

    .col-lg-9 {
        flex-basis: 75%;
    }

    .col-lg-10 {
        flex-basis: 83.33%;
    }

    .col-lg-11 {
        flex-basis: 91.67%;
    }

    .col-lg-12 {
        flex-basis: 100%;
    }
}


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

.marquee-container {
    background-color: var(--primary-yellow);
    overflow: hidden;
    width:100%;
    height:clamp(3.125rem, -3.367rem + 28.072vw, 17.688rem);
}
  
.marquee-content {
    display: inline-block;
    white-space: nowrap;
}
  

/* ACCORDION UI */
.accordion {
    background-color:var(--dark);
    color: var(--primary-yellow);
    cursor: pointer;
    padding: 1.25em 0;
    width: 100%;
    position:relative;
    text-align: left;
    border: none;
    border-bottom: 5px solid var(--light);
    outline: none;
    transition: 0.5s ease;

    font-size: var(--fs-400);
    font-weight:900;
    text-transform:uppercase;
  }
  
  .active, .accordion:hover {
    background-color:var(--primary-dark);
    color:var(--primary-yellow);
    border-bottom: 5px solid var(--primary-yellow);
  }

  .accordion:after {
    position:absolute;
    right:0;
    top:50%;
    width:1.75rem;
    height:1.75rem;
    display:flex;
    justify-content:center;
    align-items:center;
    transform:translateY(-50%);
    content: "\002B";
    font-size: 1.25rem;
    color:var(--primary-yellow);
    font-weight:500;
    margin-left: 5px;
    border-radius:80px;
    border:4px solid var(--primary-yellow);
  }
  
  .active:after {
    content: "\2212";
  }
  
.panel {
    padding:0;
    background-color:var(--dark);
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.2s ease-out;
}

/* CARDS */
.card picture img {
    transition: .3s ease;
}

.card:hover picture img {
    transform:scale(1.2)
}

.card picture {
    overflow:hidden;
}

.card .card-content {
    background-color: var(--primary-yellow);
    color: var(--dark);
    padding:1em;
    text-align:center;
}

.card-content h4 {
    font-size: 1rem;
    font-weight:900;
    line-height:1.2;
}

.specials-card {
    position:relative;
}

.specials-card picture {
    opacity: .5;
}

.specials-card .card-content {
    position:absolute;
    bottom:0;
    z-index:2;
    background-color:transparent;
    color:var(--light);
    text-align:left;
}

.specials-card:hover h3 {
    color:var(--primary-yellow);
    transition: .3s ease;
}

.ticket-card .card-content {
    background-color:var(--primary-yellow);
    padding:1em;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items: center;
}

.ticket-card .card-content h4 {
    font-size:var(--fs-400);
    color:var(--dark);
    font-weight:800;
    text-align:center;
    margin-bottom:.75rem;
}

.ticket-card .card-content .price {
    font-size:var(--fs-500);
    color:var(--dark);
    font-weight:800;
}

.ticket-card .card-content .price:after {
    content: '€';
    padding-left:.25rem;
}

.ticket-card .card-content .hours {
    position:relative;
    color:var(--light);
    background-color:var(--dark);
    padding:.5em;
    font-size:.85rem;
}

.ticket-card .card-content .hours:before {
    content: '';
    display: block;
    width: 2rem;
    height: 2rem;
    position: absolute;
    left: -2.1rem;
    top: 0.25rem;
    background-image: url(../img/badge-edge.svg);
    background-size: 2rem;
    background-repeat: no-repeat;
}

.ticket-card .card-content .hours:after {
    content: '';
    display: block;
    width: 2rem;
    height: 2rem;
    position: absolute;
    right: -2.1rem;
    top: 0.25rem;
    background-image: url(../img/badge-edge.svg);
    background-size: 2rem;
    background-repeat: no-repeat;
    transform: rotate(180deg);
}

.ticket-card .card-content a.button {
    font-size:initial;
}

.signature {
    margin-top:3.5em;
}  

.signature img {
    width: min(12rem, 50%);
}

.skewed {
    perspective: 600px;
    transform-style: preserve-3d;
}

.skewed img {
    /* transform: rotateY(10deg); */
    width: min(90%, 30rem);
}

.location-container {
    padding:1.25em 1.5em;
    margin-top:3.25em;
    border: 5px dashed var(--dark);
}

.date {
    font-size: var(--fs-400);
    color: var(--primary-yellow);
    font-weight: 500;
    margin-bottom: .5em;
}

/* LAZY LOAD */
.lazyload,
.lazyloading {
	opacity: 0;
}
.lazyloaded {
	opacity: 1;
	transition: opacity 300ms;
}


/* MAINTENANCE */
#maintenance {
    padding-top: 2em;
    padding-bottom:2em;
}

#maintenance .container {
    display: flex;
    align-items: center;
    flex-direction: column;
    justify-content: center;
}

#maintenance .container picture {
    margin: 2.75em 0;
}

#maintenance .container picture:last-child {
    width: min(20rem, 60%);
}


/* FOOTER */
footer {
    display: flex;
    flex-direction:column;
    justify-content: center;
    align-items: center;
    padding:1.5em 0;
}

.footer-logo {
    width: min(15rem, 50%);
    margin: 1em auto;
}

.footer-menu {
    list-style:none;
    display: flex;
    justify-content: center;
    gap:1em;
    margin:0;
    padding:0;
}

.footer-menu li a, .footer-menu li a:visited {
    color:var(--light);
}

.footer-menu li a:hover, .footer-menu li a:active {
    color:var(--primary-yellow);
}