/* Josh's Custom CSS Reset https://www.joshwcomeau.com/css/custom-css-reset/ */

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

* {
	margin: 0;
    position: relative;
}

body {
	line-height: 1.5em;
	-webkit-font-smoothing: antialiased;
}

img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
}

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

p,
.display,
h1,
h2,
h3,
h4,
h5,
h6 {
	overflow-wrap: break-word;
	word-break: break-word;
}

.bold {
    font-weight: bold;
}

#root,
#__next {
	isolation: isolate;
}

/* globals */

html {
	scroll-behavior: smooth;
	font-size: 13px;
    font-weight: 400;
}

body {
	background: #fff;
	font-family: "prompt";
	color: #202020;
	overflow-x: hidden;
}

.no-scroll {
	overflow: hidden;
}

h1,
h2,
h3,
h4 {
    line-height: 1.25em;
    font-weight: 800;
}

h1 {
	font-size: 64px;
    font-weight: 800;
}

h2 {
	font-size: 32px;
    font-weight: 800;
}

h3 {
	font-size: 20px;
    font-weight: 700;
}

h4 {
	font-size: 16px;
    font-weight: 600;
}

a {
	color: #035875;
}

ul {
	list-style: none;
	padding: unset;
}

.sm {
    font-size: 11px;
    font-weight: 400;
}

.highlight {
    color: #002D96;
    font-weight: 500;
}

.blue {
    color: #002D96;
}

.blue-secondary {
    color: #002D96;
}

.grey {
    color: #898A8D;
}

.spaced {
    letter-spacing: .33em;
}

img.radius {
    border-radius: 12px;
}

.mb-05 {
    margin-bottom: .5rem;
}

.mb-1 {
    margin-bottom: 1rem;
}

.mb-15 {
    margin-bottom: 1.5rem;
}

.mb-2 {
    margin-bottom: 2rem;
}

.mb-3 {
    margin-bottom: 3rem;
}

.mb-4 {
    margin-bottom: 4rem;
}

.mb-5 {
    margin-bottom: 5rem;
}

.mb-6 {
    margin-bottom: 6rem;
}

.spacer {
    height: 48px;
}

.right {
    text-align: right;
    align-self: flex-end;
}

.rounded {
    border-radius: 12px;
}

.circular {
    border-radius: 100%;
}

/* buttons */

.btns {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	justify-content: center;
}

.btns.stack {
    flex-direction: column;
    align-items: flex-start;
}

.btns.gapped {
    justify-content: space-between;
    width: 100%;
}

.btns.centered {
    justify-content: center;
    align-self: center;
    align-items: center;
}

.btns.left {
    justify-content: flex-start;
    align-self: flex-start;
}

.btns.right {
    justify-content: flex-end;
    align-self: flex-end;
}

.btns.fill {
    width: 100%;
}

.btns.fill .btn {
    width: 100%;
}

.btns.scroll {
    justify-content: flex-start;
    overflow: auto;
    flex-wrap: nowrap;
    max-width: 100%;
}

.btns.scroll .btn {
    margin-bottom: 8px;
}

.btn {
    padding: 10px 24px;
    background: none;
    border-radius: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: .15s all;
    position: relative;
    cursor: pointer;
    color: inherit;
    border: 2px solid transparent;
    text-decoration: none;
    white-space: nowrap;
    font-size: 12px;
    line-height: 24px;
    text-transform: uppercase;
    gap: 8px;
    letter-spacing: .25px;
    font-weight: 600;
}

.btn-primary {
    background: #EC1E24;
    color: #fff;
}

.btn-primary:hover {
    background: #fff;
    border-color: #EC1E24;
    color: #EC1E24;
}

.btn-secondary {
    background: #202020;
    color: #fff;
}

.btn-secondary:hover {
    background: #fff;
    border-color: #202020;
    color: #202020;
}

.btn-tertiary {
    background: #E4E4E4;
    color: #202020;
}

.btn-tertiary:hover {
    background: #E4E4E4;
    border-color: #202020;
    color: #202020;
}

.btn-outline {
    background: #fff;
    border-color: #ababab;
    color: #EC1E24;
}

.btn-outline:hover {
    color: #202020;
}

.btn-outline-alt {
    background: #fff;
    border-color: #ababab;
    color: #202020;
}

.btn-outline-alt:hover {
    border-color: #202020;
}

.btn-outline-alt.selected {
    background: #002D96;
    border-color: #002D96;
    color: #fff;
}

.btn-gradient {
    background: linear-gradient(180deg, #FFFFFF 0%, #E3E3E3 107.57%);
    border: 1px solid #A8A8A8;
    color: #2C2C2C;
}

.btn-gradient:hover {
    background: linear-gradient(150deg, #FFFFFF 0%, #E3E3E3 107.57%);
}

.btn-icon {
    margin-left: -8px;
}

.btn-copy {
    position: relative;
}

.btn-round {
    padding: 0;
    width: 48px;
    height: 48px;
    border: 1px solid #035875;
}

.btn-solid {
	background: #035875;
	border-color: #035875;
	color: #fff;
}

.btn-disabled {
    opacity: .5;
    color: #202020;
    pointer-events: none;
}


header {
    display: flex;
    justify-content: center;
}

/* nav */

nav {
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: fixed;
    top: 0;
    width: 100%;
    color: #fff;
}

nav:after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #202020;
    z-index: 1;
}

nav .block {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding-top: 12px;
    padding-bottom: 12px;
}

.nav-menu,
.nav-logo,
.nav-cart,
.nav-item-cta {
    z-index: 2;
}

.nav-menu,
.nav-cart {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    /*position: absolute;
    z-index: 3;*/
}

.nav-menu--open,
.nav-menu--close {
    display: none;
}

.nav-menu--open.active,
.nav-menu--close.active {
    display: block;
}

.nav-logo {
    flex: 1;
    display: flex;
    justify-content: flex-start;
    color: #fff;
    height: 28px;
}

.nav-logo svg {
    height: 100%;
}

.nav-items {
    display: flex;
    gap: 12px;
    position: absolute;
    top: -200%;
    left: 0;
    background: #202020;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 60px 24px;
    transition: .1s all;
    opacity: 0;
    pointer-events: none;
}

.nav-items.active {
    top: 100%;
    opacity: 1;
    pointer-events: all;
    z-index: 1;
    border-top: 1px solid rgba(255, 255, 255, .2);
}

.nav-item {
    display: flex;
    gap: 6px;
    color: #fff;
    cursor: pointer;
    padding: 4px 8px;
    align-items: center;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: .5px;
    border-radius: 8px;
    position: relative;
    transition: .1s all;
    font-size: 12px;
    line-height: 24px;
}

.nav-item-cta {
    color: #FF7145;
    border-radius: 24px;
    padding-right: 16px;
    
}

.scrolled .nav-item-cta {
    background: #FF7145;
    color: #fff;
}

.nav-item.active {
    background: #fff;
    color: #EC1E24;
}

.nav-item--copy {
    position: relative;
}

.nav-item--copy:after {
    content: '';
    display: block;
    position: absolute;
    background: #fff;
    width: 0;
    height: 1px;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    transition: .1s all;
}

.nav-item-cta .nav-item--copy:after {
    background: #FF7145;
}

.nav-item.active .nav-item--copy:after {
    background: #EC1E24;
}

.nav-item:hover .nav-item--copy:after {
    width: 100%;
}

.socials {
    display: flex;
    align-items: center;
    gap: 16px;
}

nav .socials {
    margin-top: 16px;
}

.social {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    transition: .1s all;
}

.social:hover {
    color: #FF7145;
}
            
.socials-circles .social {
    background: #fff;
    border-radius: 100%;
    box-shadow: 0px 4px 4px 0px #00000040;
    width: 40px;
    height: 40px;
}

/* fades */
             
.fade-out-top:after, 
.fade-out-bottom:after {
    content: '';
    display: block;
    position: absolute;
    height: 200px;
    left: 0;
    width: 100%;
    pointer-events: none;
}

.fade-out-top:after {
    top: 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
}

.fade-out-bottom:after {
    bottom: 0;
    background: linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
}

.fade-out-top > *, 
.fade-out-bottom > * {
    z-index: 1;
}
                
.fade-circle {
    position: relative;
}

.fade-circle > * {
    z-index: 1;
}

.fade-circle:after {
    content: '';
    display: block;
    position: absolute;
    width: 100vw;
    height: 100%;
    background: rgb(255, 255, 255);
    background: radial-gradient(ellipse 100% 100%, rgba(255, 255, 255, .8) 20%, rgba(255, 255, 255, 0) 66%);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* layout */

main {
    padding-top: 52px;
    min-height: calc(100vh - 377px);
    display: flex;
    flex-direction: column;
}

section {
	background-size: cover;
	background-position: center;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	position: relative;
}

.container {
	width: 100%;
	max-width: 1240px;
	position: relative;
	display: flex;
	flex-direction: column;
	margin: 0 auto;
	align-items: stretch;
	justify-content: flex-start;
	flex: 1;
}

.container-740 {
	max-width: 740px;
}

.container-980 {
	max-width: 980px;
}

.container-1080 {
	max-width: 1176px;
}

.stretch {
    align-items: stretch;
}

.container.no-pad {
    padding: 0;
}

.container.no-max {
    max-width: unset;
}

.container.radius {
    border-radius: 12px;
}

.container.vcenter {
    align-items: center;
}

.container.gap-sm {
    gap: 24px;
}

.spacer-24 {
    height: 24px;
}

.spacer-128 {
    height: 128px;
}

/* blocks */

.block {
	flex: 1 0;
    width: 100%;
	max-width: 100%;
	padding: 48px 24px;
	background-size: cover;
	background-position: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	position: relative;
}



.narrow {
    max-width: 440px;
}

.container.no-pad .block {
    padding-left: 0;
    padding-right: 0;
}

.container.pad-top-xs .block {
    padding-top: 12px;
}

.container.pad-bottom-xs .block {
    padding-bottom: 12px;
}

.container.pad-top-sm .block {
    padding-top: 24px;
}

.container.pad-bottom-sm .block {
    padding-bottom: 24px;
}

.container.pad-top-md .block {
    padding-top: 84px;
}

.container.pad-bottom-md .block {
    padding-bottom: 84px;
}

.container.pad-top-lg .block {
    padding-top: 128px;
}

.container.pad-bottom-lg .block {
    padding-bottom: 128px;
}

.centered {
	align-items: center;
}

h1.centered,
h2.centered,
h3.centered,
h4.centered {
    align-self: center;
	text-align: center;
}

.block-25 {
    flex: .25;
}

.block-75 {
    flex: .75;
}

.block-33 {
    flex: .33;
}

.block-67 {
    flex: .67;
}

.group-above .block {
    padding-top: 0;
}

.group-below .block {
    padding-bottom: 0;
}

/* cards */

.card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    text-decoration: none;
    padding: 120px 32px 32px 32px;
    border-radius: 12px;
    gap: 24px;
    color: #fff;
    transition: .1s all;
    cursor: pointer;
    font-size: 12px;
    height: 100%;
    background-size: cover;
    background-position: center;
    position: relative;
    overflow: hidden;
}

.card:after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%);
    opacity: .5;
    transition: .2s all;
}

.card:hover:after {
    opacity: .7;
}

.cards.tall .card {
    padding-top: 240px;
}

.card > * {
    z-index: 1;
}

/* card grid */

.grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    grid-gap: 24px;
    justify-items: center;
}

/* card slider */

.owl-carousel .owl-stage {
    display: flex;
}

.owl-carousel .owl-item {
    float: unset;
} 

.owl-carousel .owl-item img {
    width: auto;
}
                
.slides.owl-carousel {
    padding: 0 24px;
}

.slides-nav {
    position: absolute;
    right: 0;
    top: 50%;
}

.slides-nav button {
    appearance: none;
    border: 0;
    cursor: pointer;
    opacity: .7;
    transition: .1s all;
}

.slides-nav button:hover {
    opacity: 1;
}

/* photo slider */

.photos.owl-carousel .owl-stage-outer {
    padding-left: 24px;
}

.photos-nav {
    align-self: flex-end;
    display: flex;
    gap: 24px;
}

.photos-nav button {
    border: 0;
    background: unset;
    cursor: pointer;
    background: #202020;
    width: 48px;
    height: 48px;
    border-radius: 100%;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid transparent;
    transition: .1s all;
}

.photos-nav button:hover {
    background: #fff;
    border-color: #202020;
    color: #202020;
}

.photos-nav button.disabled {
    opacity: .2;
    pointer-events: none;
}

.photos-nav svg {
    height: 24px;
}

.owl-carousel.photos .owl-item img {
    height: 240px;
    max-width: unset;
    box-shadow: 0px 4px 4px 0px #00000040;
    border: 9px solid #fff;
}
                
/* options */

.options {
    display: flex;
    gap: 30px;
    flex-direction: column;
    width: 100%;
}

.box {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 16px;
    border: 1px solid #A8A8A8;
    border-radius: 12px;
    gap: 8px;
    background: #fff;
    transition: .1s all;
    overflow: hidden;
    width: 100%;
}

.box:hover {
    border-color: #202020;
}

.box.selected {
    border-color: #202020;
    border-width: 2px;
    box-shadow: 0px 4px 4px 0px #00000040;
}

.option-fill {
    display: flex;
    flex-direction: column;
    gap: 16px;
    flex: 1;
    margin-bottom: 16px;
}

.option h3 {
    margin-bottom: 0;
}

.box-img {
    width: 100%;
    height: 240px;
}

.box-img.bleed {
    margin: -16px -16px 16px -16px;
    width: calc(100% + 32px);
}

.box-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.option.chosen {
    gap: 24px;
}

.chosen .row {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: center;
    color: #EC1E24;
}

.chosen .check {
    width: 40px;
    height: 40px;
    border-radius: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #EC1E24;
}

.chosen .detail {
    flex: 1;
}

.chosen .edit {
    color: inherit;
}

/* form */

.form.fill {
    width: 100%;
}

.form-row {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	width: 100%;
}

.form-field {
	position: relative;
	flex: 1;
}

.form-input {
	all: unset;
    appearance: none;
	background: #fff;
    color: #202020;
	border: 0;
	border-bottom: 1px solid #2C2C2C;
	padding: 12px 16px;
	flex: 1;
	width: 0;
    box-sizing: border-box;
}

.form-input:placeholder-shown {
	background: #f1f1f1;
}


.form.fill .form-input {
    width: 100%;
}

.form.centered .form-input {
    text-align: center;
}

.form-label {
    position: absolute;
    top: 50%;
    left: 20px;
    pointer-events: none;
    transition: .1s all;
    color: #898A8D;
    transform: translateY(-50%);
}

.form.centered .form-label {
    text-align: center;
    width: 100%;
    left: 0;
}

.form-input:focus {
	outline: none;
}

.form-input:focus+.form-label,
.form-input:not(:placeholder-shown)+.form-label {
    opacity: 0;
}

.form-message {
    font-size: 12px;
    justify-self: flex-end;
    align-self: flex-end;
    padding: 4px;
}

.error .form-input {
    color: #FF2F00;
    border-color: #FF2F00;
    border-bottom-width: 2px;
}

.error .form-message {
    color: #FF2F00;
}

.success .form-message {
    color: #002D96;
}

/* footer */

footer {
    background: #202020;
    color: #fff;
    font-size: 14px;
    flex-direction: column-reverse;
    display: flex;
}

@media (min-width: 1140px) {
    footer {
        flex-direction: column;
    }

}

footer a {
    color: #fff;
    text-decoration: none;
    transition: .1s all;
}

footer a:hover {
    color: #FF7145;
}

footer h3 {
    color: inherit;
}

.cols {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
}

.copyright {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* cookies */

.cookies {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: 600px;
    background: #202020;
    padding: 24px;
    z-index: 1;
    color: #fff;
}

.cookies-close {
    position: absolute;
    top: 24px;
    right: 24px;
    cursor: pointer;
}

.cookies p {
    margin-right: 50px;
}

.cookies .btn-secondary {
    background: #fff;
    border-color: #202020;
    color: #202020;
}

.cookies .btn-secondary:hover {
    background: #202020;
    color: #fff;
}

@media (min-width: 1140px) {
    .cookies {
        bottom: 24px;
        left: 24px;
        border-radius: 12px;
        padding: 24px 40px;
    }

    .cookies-close {
        position: absolute;
        top: 24px;
        right: 40px;
        cursor: pointer;
    }
}

/* tickets quantities */

.tickets {
    gap: 24px;
}
            
.tickets .row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.tickets .label-title {
    font-size: 24px;
}

.tickets .label-content {
    font-size: 20px;
}

.tickets .label-note {
    font-size: 12px;
}

.quantity.input {
    display: flex;
    align-items: center;
}
            
.quantity .input-icon {
    background: linear-gradient(180deg, #FFFFFF 0%, #E3E3E3 107.57%);
    border: 1px solid #A8A8A8;
    color: #2C2C2C;
    border-radius: 100%;
    padding: 9px;
    transition: .1s all;
    cursor: pointer;
}
            
.quantity .input-icon:hover {
    background: linear-gradient(150deg, #FFFFFF 0%, #E3E3E3 107.57%);
}

.quantity .input-current {
    width: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    color: #002D96;
    font-weight: 500;
}

.calendar {
    overflow: visible;
}

.calendar header {
    flex-direction: column;
    align-items: center;
    width: 100%;
}
    
.calendar-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    margin-bottom: 20px;
}

.calendar .select {
    position: relative;
}

.calendar .select-value {
    display: flex;
    gap: 8px;
    align-items: center;
    cursor: pointer;
    font-weight: bold;
}

.select-options {
    position: absolute;
    box-shadow: 0px 1px 2px 0px #0000004D;
    background: #FCFCFC;
    top: calc(100% + 8px);
    left: -12px;
    width: 200px;
    border-radius: 12px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transition: .1s all;
    max-height: 360px;
    overflow: auto;
    z-index: 1;
    text-align: left;
}

.select.active .select-options {
    opacity: 1;
    pointer-events: all;
}

.select-value--caret {
    transition: .1s all;
    width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.select.active .select-value--caret {
    transform: rotate(180deg);
}

.select-options div {
    padding: 12px;
    cursor: pointer;
    transition: .1s all;
}

.select-options div:hover {
    background: #f7f7f7;
}

.paging {
    display: flex;
}

.paging-btn {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: .1s all;
}

.paging-btn:hover {
    color: #002D96;
}
            
.dates-labels {
    margin-bottom: 20px;
}
            
.dates {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    justify-items: center;
    width: 100%;
}

.date-wrap {
    display: flex;
    flex-direction: column;
    width: 100%;
    align-items: center;
    gap: 4px;
    padding: 8px 2px 12px;
    border-bottom: 1px solid #999;
    cursor: pointer;
}

@media (min-width: 1140px) {
    .date-wrap {
        padding: 8px 4px 12px;
    }
}

.date {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    transition: .1s all;
    border-radius: 100%;
    font-size: 14px;
}

@media (min-width: 1140px) {       
    .date {
        width: 36px;
        height: 36px;
        font-size: 16px;
    }
}
          
.dates-values .date {
    font-weight: bold;
}

.date-wrap:hover .date {
    color: #002D96;
    border-color: #002D96;

}

.date-wrap.selected .date {
    background: #002D96;
    color: #fff;
}

.date-price {
    text-align: center;
    line-height: 1.2em;
    font-size: 11px;
}

.disabled .date-price {
    line-height: .8em;
}

@media (min-width: 1140px) {       
    .date-price {
        font-size: 14px;
    }

    .disabled .date-price {
        font-size: 12px;
    }
}

.date:empty {
    pointer-events: none;
}

.days {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin: 48px 0;
}

.day {
    width: 42px;
    height: 42px;
    border: 1px solid #ababab;
    border-radius: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 600;
    color: #002D96;
    cursor: pointer;
    transition: .1s all;
}

.day:hover {
    background: #f7f7f7;
}

.day.selected {
    background: #002D96;
    border-color: #002D96;
    color: #fff;
}

.date-wrap.disabled {
    pointer-events: none;
}

.disabled .date,
.disabled .date-price {
    opacity: .4;
}

.tray {
    background: #fff;
    border-top-right-radius: 10px;
    border-top-left-radius: 10px;
    position: sticky;
    bottom: 0;
    z-index: 1;
}

.tray .block {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 16px;
    padding: 24px 12px;
}

.tray-contents {
    flex-basis: 100%;
    text-align: center;
}

.tray-items {
    font-size: 20px;
}

.warning {
    color: #EC9316;
}

/* modals */


.modal {
    position: fixed;
    display: flex;
    align-items: flex-start;
    padding: 24px;
    justify-content: center;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 2;
    transition: 0.1s all;
    opacity: 0;
    pointer-events: none;
    overflow: auto;
}

.modal.active {
    opacity: 1;
    pointer-events: all;
}

.modal-dialog {
    display: flex;
    flex-direction: column;
    width: 100%;
    background: #fff;
    box-shadow: 0px 4px 4px 0px #00000040;
    border: 1px solid #a8a8a8;
    border-radius: 12px;
    padding: 48px;
    gap: 24px;
}

.modal-lg .modal-dialog {
    max-width: 1080px;
}

.modal-md .modal-dialog {
    max-width: 680px;
}

.modal-sm .modal-dialog {
    max-width: 500px;
}

.modal-xs .modal-dialog {
    max-width: 420px;
}

.modal-header {
    display: flex;
    flex-direction: column;
    position: relative;
    min-height: 48px;
    padding-right: 60px;
}

.modal-title.centered {
    padding-left: 60px;
}

.modal-close {
    cursor: pointer;
    position: absolute;
    right: 0;
}

.modal-footer {
    display: flex;
    justify-content: space-between;
}

.hotlaps-option {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
}

.hotlaps label {
    font-size: 12px;
    font-weight: 600;
}
            
.hotlaps .quantity {
    align-self: center;
    margin-right: 12px;
}

.hotlaps .btns.gapped {
    padding-right: 24px;
}

/* hide/show */

.show-on-sm {
	display: flex;
}

.hide-on-sm {
	display: none;
}

/* cms */

.rich-text ul {
	list-style: revert;
	padding: revert;
}

@media (min-width: 640px) {
    .grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1140px) {
    
    .display {
        font-size: 74px;
    }

    h1 {
        font-size: 64px;
    }

    h2 {
        font-size: 32px;
    }

    h3 {
        font-size: 20px;
    }

    h4 {
        font-size: 16px;
    }

    nav {
    }

    .nav-logo {
        height: 46px;
    }

    .nav-items {
        position: relative;
        top: unset;
        background: unset;
        flex-direction: row;
        align-items: center;
        left: unset;
        width: unset;
        padding: unset;
        border-radius: unset;
        opacity: 1;
        z-index: 2;
        pointer-events: all;
    }

    .nav-item-cta:before {
        content: '';
        display: block;
        position: absolute;
        width: 1px;
        height: 16px;
        background: #fff;
        left: calc(100% + 8px);
    }

    .nav-item:first-child:before {
        display: none;
    }
    
    .nav-items.active {
        z-index: 2;
    }
    
    .nav-item.account .nav-item--copy,
    .nav-item.cart .nav-item--copy {
        display: none;
    }
    
    nav .socials {
        display: none;
    }
    
    main {
        padding-top: 70px;
    }

    .container {
        flex-direction: row;
        align-items: flex-start;
        padding: 0 24px;
    }

    .stretch {
        align-items: stretch;
    }

    .stretch .options,
    .stretch .tickets,
    .stretch .calendar {
        flex: 1;
    }

    .reverse {
        flex-direction: row-reverse;
    }

    .block {
        padding: 48px 24px;
    }

    .tray .block {
        padding: 24px;
        gap: 32px;
    }

    .tray-contents {
        flex-basis: unset;
        flex: 1;
        text-align: right;
    }

    .tray-items {
        font-size: 24px;
    }
    
    .tray .btn.btn-outline {
        order: -1;
    }

    .grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .options {
        flex-direction: row;
    }
    
    .tickets,
    .calendar {
        padding: 36px;
    }
    
    .quantity .input {
        gap: 16px;
    }
    
    .date {
        width: 40px;
        height: 40px;
        font-size: 16px;
    }
    
    .days {
        gap: 24px;
        margin: 96px 0;
    }

    .day {
        width: 64px;
        height: 64px;
        font-size: 32px;
    }

	.show-on-sm {
		display: none;
	}

	.hide-on-sm {
		display: flex;
	}

    .slides.owl-carousel {
        padding: 0;
    }

    .slides.owl-carousel .owl-stage-outer {
        padding-left: 48px;
        padding-right: 0;
    }

    .photos.owl-carousel {
        padding: 0;
    }

    .photos.owl-carousel .owl-stage-outer {
        padding-left: 48px;
        padding-right: 0;
    }

    .owl-carousel.photos .owl-item img {
        height: 500px;
    }
    
    .modal {
        align-items: center;
        padding: unset;
    }
    
    .dialog {
        flex-direction: row;
        align-items: flex-start;
    }
    
    .options {
        display: grid    ;
        grid-template-columns: repeat(3, 1fr);
    }

    .upgrades {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }
    
    .cols {
        flex-direction: row;
        gap: 96px;
    }
    
    .copyright {
        flex-direction: row;
        align-items: center;
        gap: 48px;
    }
    
}

                
@media (min-width: 1280px) {
    
    .slides.owl-carousel .owl-stage-outer {
        padding-left: calc(((100dvw - 1184px) + 17px) / 2)
    }
    
    .photos.owl-carousel .owl-stage-outer {
        padding-left: calc(((100dvw - 980px) + 17px) / 2)
    }
    
}


/* tickets */

.tabs {
	width: 100%;
}

.tab-header {
	display: flex;
	justify-content: center;
	gap: 24px;
}

.tab-trigger.active {
	background: #fff;
}

.tab-trigger {
	flex-direction: column;
	font-size: 20px;
	font-weight: 700;
	padding: 12px 24px;
	border-top-right-radius: 12px;
	border-top-left-radius: 12px;
	gap: 12px;
	cursor: pointer;
	display: flex;
	align-items: center;
	color: #232D53;
	transition: .1s all ease;
}

@media (min-width: 1140px) {
	.tab-trigger {
		flex-direction: row;
		font-size: 24px;
	}
}

.tab-trigger:hover {
	color: #002D96;
}

.tab-icon {
	width: 24px;
	height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: .1s all ease;
}

.tab-trigger:hover .tab-icon {
	transform: translateY(-4px) scale(1.1);
}

.tab-trigger:hover .tab-icon:after {
	content: '';
	display: block;
	width: 70%;
	background: rgba(0, 0, 0, .5);
	height: 2px;
	position: absolute;
	bottom: -4px;
	filter: blur(2px);
}

.tab-block {
	padding: 24px;
	background: #fff;
	margin-left: -24px;
	margin-right: -24px;
}

.tab-block h2 {
	color: #002D96;
}

@media (min-width: 1140px) {
	.tab-block {
		padding: 48px 64px;
		border-radius: 12px;
		margin-left: unset;
		margin-right: unset;
	}
}

.ticket-wrap {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
	align-items: stretch;
}

@media (min-width: 1140px) {
	.ticket-wrap {
	    grid-template-columns: 1fr 1fr 1fr;
		gap: 24px;
	}
}

.ticket {
	background: linear-gradient(180deg, #FFFFFF 0%, #E3E3E3 100%);
	border-radius: 12px;
	padding: 16px;
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1;
	position: relative;
	transition: .1s all ease;
	font-size: 14px;
    width: 100%;
    
}

.ticket-body {
    flex: 1;
}

.ticket-footer {
    width: 100%;
}

.ticket-wrap .ticket {
	border: 1px solid #898A8D;
	cursor: pointer;    
}

.ticket-left {
	align-items: flex-start;
	text-align: left;
}

.ticket-wrap .ticket:hover {
	box-shadow: 4px 8px 4px 0px #00000040;
}


.ticket-wrap .ticket:after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 4px solid #002D96;
	border-radius: 12px;
	opacity: 0;
	pointer-events: none;
	transition: .1s all ease;
}

.ticket-blue:after {
	border-color: #C18100
}

.ticket.selected:after {
	opacity: 1;
}

.ticket.with-flag:before {
	content: '';
	display: block;
	background-image: url(../img/flag.png);
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	background-size: cover;
	opacity: .5;
}


.ticket-icon {
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: .1s all ease;
}

.ticket-icon svg {
    width: 100%;
    height: 100%;
}

.ticket.selected .ticket-icon,
.ticket:hover .ticket-icon {
	transform: translateY(-4px) scale(1.1);
}

.ticket.selected .ticket-icon:after,
.ticket:hover .ticket-icon:after {
	content: '';
	display: block;
	width: 70%;
	background: rgba(0, 0, 0, .5);
	height: 2px;
	position: absolute;
	bottom: -8px;
	filter: blur(4px);
}


.ticket h4 {
	color: #232D53;
}

.ticket h5 {
	color: #002D96;
}

@media (min-width: 1140px) {
	h5 {
		font-size: 16px;
	}
}

.ticket-white {
	background: #fff;
}

.ticket-blue {
	background: linear-gradient(180deg, #232E56 0%, #053195 100%);
	color: #fff;
}

.ticket-gold {
	background: linear-gradient(113.52deg, #E69A00 11.4%, #2C0F04 64.92%, #C18100 98.55%);
	color: #fff;
}

.ticket-black {
	background: linear-gradient(180deg, #454545 0%, #000000 100%);
	color: #fff;
}

.ticket-red {
	background: linear-gradient(180deg, #C72126 0%, #A80D10 100%);
	color: #fff;
}



.ticket-blue,
.ticket-gold,
.ticket-black,
.ticket-red {
	color: #fff;
}

.ticket-blue a:not(.btn),
.ticket-gold a:not(.btn),
.ticket-black a:not(.btn),
.ticket-red a:not(.btn) {
	color: #fff;
}

.ticket-blue h4,
.ticket-gold h4,
.ticket-black h4,
.ticket-red h4 {
	color: #fff;
}

.ticket-blue h5,
.ticket-gold h5,
.ticket-black h5,
.ticket-red h5 {
	color: #f4ca8e;
}

.tab-body {
	display: none;
	flex-direction: column;
}

.tab-body.active {
	display: flex;
}


.tickets,
.calendar {
	max-width: 500px;
	margin-left: auto;
	margin-right: auto;
}

.tickets .label {
	text-align: left;
}

.ticket ul {
	list-style-type: disc;
	text-align: left;
	margin-left: 18px;
	line-height: 1.4em;
	width: 100%;
}

.ticket .xs {
	text-align: left;
}

.ticket .tickets {
	padding: unset;
	border: unset;
	background: unset;
}









.cart-warning {
	background: #f1ede7;
	color: #FF2F00;
	padding: 16px;
	width: 100%;
    border-radius: 12px;
}

.cart-warning ul {
	list-style: disc;
	padding: 0 0 0 24px;
	margin: 8px;
}

.cart .row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	width: 100%;
}

.cart .label {
	display: flex;
	flex-direction: column;
}

.cart .label.wide {
    flex: 2;
}

.cart .value {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	flex: 1;
}

.cartbox {
	background: #fff;
	border: 1px solid #A8A8A8;
	padding: 24px;
	display: flex;
	flex-direction: column;
	border-radius: 12px;
	width: 100%;
	position: relative;
    transition: .1s all;
}

.cartbox:hover {
    border-color: #202020;
}

.cartbox.tight {
	padding-top: 12px;
	padding-bottom: 12px;
}

.cartbox.tight .label {
	flex: 1;
}

.cartbox.tight .value {
	flex: 2;
}

.payment-methods {
	width: 100%;
	display: flex;
	flex-direction: column;
}

.selectable .cartbox:after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 2px solid #002D96;
	border-radius: 12px;
	opacity: 0;
	pointer-events: none;
	transition: .1s all ease;
}

.selectable .cartbox.selected:after {
	opacity: 1;
}

.cartbox .value {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.strike {
	text-decoration: line-through;
    color: #898A8D;
}

.form {
	display: flex;
	flex-direction: column;
	gap: 12px;
	row-gap: 12px;
	column-gap: 12px;
	width: 100%;
}

.form-fields {
	display: flex;
	gap: 12px;
}



.with-icon {
	display: flex;
	gap: 12px;
}

.indent {
    margin-left: 36px;
}

.cartbox-icon {
	width: 24px;
}

.trash {
    cursor: pointer;
    color: #969696;
}

@media (min-width: 1140px) {
    .trash {
        opacity: 0;
        pointer-events: none;
        transition: .1s all;
    }
    .row:hover .trash {
        opacity: 1;
        pointer-events: all;
    }
    .trash:hover {
        color: #2c2c2c;
    }
}

p.divider {
	border-top: 1px dashed #898A8D;
	margin-top: 4px;
	padding-top: 8px;
	width: 100%;
}

.check {
	display: flex;
	cursor: pointer;
	gap: 12px;
	align-items: center;
}

.check input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.check-box {
	height: 1rem;
	width: 1rem;
	border: 1px solid #2c2c2c;
	border-radius: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: transparent;
	transition: 0.1s all;
	flex-shrink: 0;
}

.check input:checked~.check-box {
	background-color: #2c2c2c;
	border-color: #2c2c2c;
	color: #fff;
}

.form-discount {
	flex: 1;
	display: flex;
	flex-direction: column;
    align-items: stretch;
	position: relative;
	gap: 4px;
}

.form-discount .form-input {
	width: auto;
}

.form-discount .form-label {
	transform: unset;
	top: 14px;
}

.form-discount .form-input:focus+.form-label,
.form-discount .form-input:not(:placeholder-shown)+.form-label {
	opacity: 1;
	font-size: 12px;
	top: 4px;
	left: 16px;
}

.form-clear {
	position: absolute;
	top: 10px;
	right: 12px;
	transform: scaleX(1.2);
	padding: 4px 8px;
	cursor: pointer;
}

.error .form-input {
	color: #FF2F00;
	border-color: #FF2F00;
	border-bottom-width: 2px;
}

.discount {
    color: #FF2F00;
}

.modal-login .modal-body {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 48px 24px;
}

.or:before,
.or:after {
	content: '';
	display: block;
	position: absolute;
	width: 100px;
	height: 0;
	border-top: 1px dashed #202020;
	top: 50%;
}

.or:before {
	right: calc(100% + 8px);
}

.or:after {
	left: calc(100% + 8px);
}

.dash-divider {
	width: 100%;
	height: 0;
	border-top: 1px dashed #202020;
}

.cartbox.receipt {
	background: unset;
}

.receipt .cartbox-icon {
	display: none;
}

.collapsible {
	width: 100%;
	display: none;
}

.collapsible.expanded {
	display: block;
}

.toggle-receipt .btn-icon {
	transition: .1s all;
}

.toggle-receipt.active .btn-icon {
	transform: rotate(180deg);
}

.red {
	color: #FF2F00;
}

.promo {
	background: linear-gradient(180deg, #FFFFFF 0%, #E3E3E3 100%);
	border-radius: 12px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	flex: 1;
	position: relative;
	transition: .1s all ease;
	font-size: 14px;
	width: 100%;
	border: 1px solid #898A8D;
	cursor: pointer;
	align-items: flex-start;
	text-align: left;
	max-width: calc(100% - 48px);
	margin: auto;
}

@media (min-width: 1140px) {
	.promo {
		max-width: unset;
		margin: unset;
	}

	.promo-wide {
		flex-direction: row;
		justify-content: space-between
	}
}

.promo:before {
	content: '';
	display: block;
	background-image: url(../img/flag.png);
    background-position: bottom;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	background-size: cover;
	opacity: .5;
}

.promo h3 {
	display: flex;
	align-items: center;
}

.hotlap {
	color: #EC1E24;
	font-size: 96px;
	font-weight: 800;
	font-style: italic;
	text-shadow: 2px 2px #fff, -2px -2px #fff, 2px -2px #fff, -2px 2px #fff;
}

.links {
	flex-wrap: wrap;
}

.links .block {
	flex-basis: 25%;
    padding: 24px;
}

.links .block:last-child {
	flex-basis: 50%;
}

.copy {
    flex-direction: column-reverse;
}

.copy .block {
	gap: 24px;
}

@media (min-width: 1140px) {
    .copy {
        flex-direction: row;
        align-items: center;
    }
    
    .copy .block {
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
    }
    
    .copy .block + .block {
        justify-content: flex-end;
    }
}

.news {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    align-items: stretch;
}

@media (min-width: 600px) {
    .news {
        grid-template-columns: 1fr 1fr;
        gap: 48px 12px;
    }
}

@media (min-width: 1140px) {
    .news {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

.news-item {
    background: #fff;
    color: #202020;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid transparent;
    transition: .1s all;
}

.news-item:hover {
    border-color: #202020;
}

.news-img {
    height: 0;
    padding-bottom: 75%;
}

.news-img img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.news-content {
    padding: 16px;
}

.news-content a {
    color: #202020;
}

.news-item h3 {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.news-item p {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
}


.rides {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    align-items: stretch;
}

@media (min-width: 600px) {
    .rides {
        grid-template-columns: 1fr 1fr;
        gap: 24px 12px;
    }
}

@media (min-width: 1140px) {
    .rides {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

.rides-item {
    background: #fff;
    color: #202020;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid transparent;
    transition: .1s all;
}

.rides-item.clickable:hover {
    border-color: #202020;
}

.rides-img {
    height: 0;
    padding-bottom: 56.25%;
}

.rides-img img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rides-content {
    padding: 16px;
}

.rides-item p {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
}

.rides-item .rides-feature {
    display: flex;
    gap: 12px;
}

.rides-icon {
    width: 24px;
}

/*

.rides {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    align-items: stretch;
}

@media (min-width: 600px) {
    .rides {
        grid-template-columns: 1fr 1fr;
    }
}

@media (min-width: 1140px) {
    .rides {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

.rides-item {
    color: #fff;
    border-radius: 12px;
    overflow: hidden;
    position: relative;
}

.rides-item:after {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.00) 0%, rgba(0, 0, 0, 0.75) 100%);
    content: '';
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

.rides-img {
    height: 0;
    padding-bottom: 56.25%;
}

.rides-img img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rides-content {
    position: absolute;
    left: 0;
    bottom: 0;
    padding: 12px 16px 16px;
    z-index: 1;
}

*/

.terms p,
.terms ul {
    font-size: 12px;
    margin-bottom: 1rem;
}

.terms ul {
    list-style: disc;
    margin-left: 1rem;
    padding-left: 1rem;
}

.terms-table {
    margin: 1rem;
    border-spacing: 4px;
    text-align: left;
    font-size: 12px;
}

.terms-table th, .terms-table td {
    background: #fff;
    padding: 1rem;
    width: 50%;
}

.faq {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
}

.faq-item {
    display: flex;
    flex-direction: column;
}

.faq-heading {
    background: transparent;
    display: flex;
    align-items: center;
    padding: 12px;
    border-top-right-radius: 8px;
    border-top-left-radius: 8px;
    gap: 12px;
    cursor: pointer;
}

.faq-answer {
    background: #fff;
    padding: 24px 24px 24px 48px;
    border-bottom-right-radius: 8px;
    border-bottom-left-radius: 8px;
    display: none;
}

.faq-item.active .faq-heading {
    background: #F4CA8E;
}

.faq-item.active .faq-toggle {
    transform: rotate(270deg);
}

.faq-item.active .faq-question {
    font-weight: bold;
}

.faq-item.active .faq-answer {
    display: block;
}

.gallery {
    width: 100%;
    height: 0;
    padding-bottom: 56.25%;
    overflow: hidden;
}

.gallery .owl-stage-outer {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
}

.gallery .owl-stage {
    display: flex;
    height: 100%;
}

.gallery .owl-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gallery-nav {
    display: flex;
    justify-content: flex-end;
}

.gallery-nav button {
    background: none;
    border: unset;
    cursor: pointer;
}

.gallery-with-text {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

@media (min-width: 1140px) {
    .gallery-with-text {
        flex-direction: row;
        gap: 48px;
        align-items: flex-start;
    }
}


.gallery-with-text .gallery-text {
    flex: 1;
    order: 2;
}

.gallery-with-text .gallery-wrap {
    flex: 2;
    order: 1;
}

@media (min-width: 1140px) {
    .gallery-with-text .gallery-text {
        order: 1;
    }

    .gallery-with-text .gallery-wrap {
        order: 2;
    }
}

.download-body {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.orders {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 6px;
}

.order {
    background: #fff;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    gap: 48px;
    padding: 24px;
}

@media (min-width: 600px) {
    .order {
        flex-direction: row;
    }
}

.order-detail {
    flex: 1;
}

.order .cols {
    gap: 24px;
}

@media (max-width: 599px) {
    .order .btns.gapped {
        justify-content: flex-end;
    }
    .order .btns.fill {
        width: auto;
    }
    .order .btns.stack {
        align-items: flex-end;
    }
}

.dropdown-menu {
    border-radius: 24px;
    border: 1px solid #A8A8A8;
    background: #FFF;
    box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
    position: absolute;
    top: 80%;
    right: 0;
    display: flex;
    flex-direction: column;
    min-width: 240px;
    padding: 4px 0;
    opacity: 0;
    pointer-events: none;
    transition: .1s all;
    overflow: hidden;
    z-index: 1;
}

.dropdown-toggle.active .dropdown-menu {
    opacity: 1;
    pointer-events: all;
}

.dropdown-menu li {
    display: flex;
}

.dropdown-menu a {
    padding: 12px 24px;
    flex: 1;
    color: #202020;
    text-decoration: none;
}

.dropdown-menu a:hover {
    background: #f6f6f6;
}

.btn-height {
    line-height: 40px;
}

.cartbar {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
}

.cartbar-total {
    display: flex;
    align-items: center;
    gap: 16px;
}

.cartbar-price {
    line-height: 1em;
}

.cart.with-pip:after {
    content: '';
    display: flex;
    width: 8px;
    height: 8px;
    position: absolute;
    background: red;
    top: 3px;
    left: 24px;
    border-radius: 100%;
    border: 2px solid #fff;
}

.reservations {
    background: #f1f1f1;
    border-radius: 12px;
    color: #202020;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.reservations a {
    color: #202020 !important;
}

.modal-full {
    padding: 0;
    align-items: flex-start;
}

.modal-full .modal-dialog {
    border-radius: 0;
    border: 0;
    min-height: 100%;
    padding: 24px;
}

.modal-full .modal-body {
    flex: 1;
}

@media (min-width: 1140px) {
    .modal-full {
        padding: 24px;
        align-items: center;
    }

    .modal-full .modal-dialog {
        border-radius: 12px;
        border: 1px solid #a8a8a8;
        min-height: unset;
    }  
}

.subtotalbar {
    position: sticky;
    top: 60px;
    background: #fff;
    z-index: 2;
}

@media (min-width: 1140px) {
    .subtotalbar {
        top: 70px;
    }
}

.dashed {
    border-top: 2px dashed #aaa;
    padding-top: 12px;
}

.modal-success {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 100px 0;
    opacity: 0;
}

.bounce-in {
  animation-name: bounceIn;
  animation-duration: 1s; /* Adjust duration as needed */
  animation-timing-function: ease-out; /* Controls the speed curve of the animation */
  animation-fill-mode: forwards; /* Ensures the element stays in its final state */
}

@keyframes bounceIn {
  0% {
    opacity: 0;
    transform: scale(0.3);
  }
  50% {
    opacity: 1;
    transform: scale(1.05); /* Slightly larger than final size */
  }
  70% {
    opacity: 1;
    transform: scale(0.9); /* Slightly smaller than final size */
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

.cart-count {
    background: #FF2F00;
    height: 16px;
    min-width: 16px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    z-index: 1;
    top: -4px;
    left: 20px;
    padding: 0 4px;
}

.loading {
  animation: loadingBg 1s linear infinite;
  background-image: linear-gradient(90deg,rgba(218,221,227,.1),rgba(207,209,216,.5),rgba(218,221,227,.1),rgba(207,209,216,.5));
  background-size: 300% 100%;
  color: transparent;
  border-radius: 4px;
  pointer-events: none;
}
.loading * {
    opacity: 0;
}
@keyframes loadingBg {
  0% { background-position: 100% 0%; }
  100% { background-position: 0% 0%; }
}

.ticket.loading,
.cartbox.loading {
    border-color: transparent;
}

.interstitial {
    flex: 1;
}

.interstitial .container {
    align-items: center;
}

.starmask {
    mask-size: cover;
    mask-repeat: no-repeat;
    width: 128px;
    height: 70px;
    mask-image: url(../img/star-mask.png);
}