/*** The new CSS Reset - version 1.4.2 (last updated 30.11.2021) ***/

/*
    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, summary, audio, video):not(svg *, symbol *)) {
    all: unset;
    display: revert;
}

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

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

/* Base style for images */

img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
    font-style: italic;
    background-repeat: no-repeat;
    background-size: cover;
    shape-margin: 0.75rem;
  }

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

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

/* 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;
    line-break: after-white-space;
}

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
    line-height: 1.15;
    /* 1 */
    -webkit-text-size-adjust: 100%;
    /* 2 */
    height: 100%;
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
    margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
    display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
    font-size: 2em;
    margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
    box-sizing: content-box;
    /* 1 */
    height: 0;
    /* 1 */
    overflow: visible;
    /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
    font-family: monospace, monospace;
    /* 1 */
    font-size: 1em;
    /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
    background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
    border-bottom: none;
    /* 1 */
    text-decoration: underline dotted;
    /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
    font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
    font-family: monospace, monospace;
    /* 1 */
    font-size: 1em;
    /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
    font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
    border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
    font-family: inherit;
    /* 1 */
    font-size: 100%;
    /* 1 */
    line-height: 1.15;
    /* 1 */
    margin: 0;
    /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input {
    /* 1 */
    overflow: visible;
}

input {
    font-size: max(16px, 1rem);
  }

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select {
    /* 1 */
    text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
    appearance: button;
    -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
    border-style: none;
    padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
    outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
    padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
    box-sizing: border-box;
    /* 1 */
    color: inherit;
    /* 2 */
    display: table;
    /* 1 */
    max-width: 100%;
    /* 1 */
    padding: 0;
    /* 3 */
    white-space: normal;
    /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
    vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
    overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
    box-sizing: border-box;
    /* 1 */
    padding: 0;
    /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
    height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
    appearance: textfield;
    -webkit-appearance: textfield;
    /* 1 */
    outline-offset: -2px;
    /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
    -webkit-appearance: button;
    /* 1 */
    font: inherit;
    /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
    display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
    display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
    display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
    display: none;
}


/* Animation and reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: no-preference) {
    :focus-visible {
        transition: outline-offset .25s ease;
        outline-offset: 5px;
    }
}

@media (prefers-reduced-data: reduce) {

    img,
    video {
        display: none;
    }
}

/* Color variables
   ========================================================================== */
:root {
    --color-primary: hsla(3, 94%, 60%, 1);
    --color-primary-light: hsla(3, 92%, 86%, 1);
    --color-secondary: hsla(71, 66%, 53%, 1);
    --color-secondary-light: hsla(71, 66%, 53%, 0.7);
    --color-bg-light: hsla(0, 0%, 94%, 1);
    --color-text-light: rgb(182, 182, 182);
    --donker-groen: #0F9467;
    --oranje: #F19B20;

    accent-color: var(--donker-groen);
}

/* Spacing variables
   ========================================================================== */

:root {
    --fluid-min-width: 320;
    --fluid-max-width: 1600;

    --fluid-screen: 100vw;
    --fluid-bp: calc((var(--fluid-screen) - var(--fluid-min-width) / 16 * 1rem) / (var(--fluid-max-width) - var(--fluid-min-width)));

    --body-line-height: 1.5;
    --heading-line-height: 1.2;
}

@media screen and (min-width: 1600px) {
    :root {
        --fluid-screen: calc(var(--fluid-max-width) * 1px);
    }
}

:root {
    --fc-3xs-min: (var(--fc-s-min) *0.25);
    --fc-3xs-max: (var(--fc-s-max) *0.25);

    --fc-2xs-min: (var(--fc-s-min) *0.5);
    --fc-2xs-max: (var(--fc-s-max) *0.5);

    --fc-xs-min: (var(--fc-s-min) *0.75);
    --fc-xs-max: (var(--fc-s-max) *0.75);

    --fc-s-min: (var(--f-0-min, 21));
    --fc-s-max: (var(--f-0-max, 24));

    --fc-m-min: (var(--fc-s-min) *1.5);
    --fc-m-max: (var(--fc-s-max) *1.5);

    --fc-l-min: (var(--fc-s-min) *2);
    --fc-l-max: (var(--fc-s-max) *2);

    --fc-xl-min: (var(--fc-s-min) *3);
    --fc-xl-max: (var(--fc-s-max) *3);

    --fc-2xl-min: (var(--fc-s-min) *4);
    --fc-2xl-max: (var(--fc-s-max) *4);

    --fc-3xl-min: (var(--fc-s-min) *6);
    --fc-3xl-max: (var(--fc-s-max) *6);

    /* T-shirt sizes */
    --space-3xs: calc(((var(--fc-3xs-min) / 16) * 1rem) + (var(--fc-3xs-max) - var(--fc-3xs-min)) * var(--fluid-bp));
    --space-2xs: calc(((var(--fc-2xs-min) / 16) * 1rem) + (var(--fc-2xs-max) - var(--fc-2xs-min)) * var(--fluid-bp));
    --space-xs: calc(((var(--fc-xs-min) / 16) * 1rem) + (var(--fc-xs-max) - var(--fc-xs-min)) * var(--fluid-bp));
    --space-s: calc(((var(--fc-s-min) / 16) * 1rem) + (var(--fc-s-max) - var(--fc-s-min)) * var(--fluid-bp));
    --space-m: calc(((var(--fc-m-min) / 16) * 1rem) + (var(--fc-m-max) - var(--fc-m-min)) * var(--fluid-bp));
    --space-l: calc(((var(--fc-l-min) / 16) * 1rem) + (var(--fc-l-max) - var(--fc-l-min)) * var(--fluid-bp));
    --space-xl: calc(((var(--fc-xl-min) / 16) * 1rem) + (var(--fc-xl-max) - var(--fc-xl-min)) * var(--fluid-bp));
    --space-2xl: calc(((var(--fc-2xl-min) / 16) * 1rem) + (var(--fc-2xl-max) - var(--fc-2xl-min)) * var(--fluid-bp));
    --space-3xl: calc(((var(--fc-3xl-min) / 16) * 1rem) + (var(--fc-3xl-max) - var(--fc-3xl-min)) * var(--fluid-bp));

    /* One-up pairs */
    --space-3xs-2xs: calc(((var(--fc-3xs-min) / 16) * 1rem) + (var(--fc-2xs-max) - var(--fc-3xs-min)) * var(--fluid-bp));
    --space-2xs-xs: calc(((var(--fc-2xs-min) / 16) * 1rem) + (var(--fc-xs-max) - var(--fc-2xs-min)) * var(--fluid-bp));
    --space-xs-s: calc(((var(--fc-xs-min) / 16) * 1rem) + (var(--fc-s-max) - var(--fc-xs-min)) * var(--fluid-bp));
    --space-s-m: calc(((var(--fc-s-min) / 16) * 1rem) + (var(--fc-m-max) - var(--fc-s-min)) * var(--fluid-bp));
    --space-m-l: calc(((var(--fc-m-min) / 16) * 1rem) + (var(--fc-l-max) - var(--fc-m-min)) * var(--fluid-bp));
    --space-l-xl: calc(((var(--fc-l-min) / 16) * 1rem) + (var(--fc-xl-max) - var(--fc-l-min)) * var(--fluid-bp));
    --space-xl-2xl: calc(((var(--fc-xl-min) / 16) * 1rem) + (var(--fc-2xl-max) - var(--fc-xl-min)) * var(--fluid-bp));
    --space-2xl-3xl: calc(((var(--fc-2xl-min) / 16) * 1rem) + (var(--fc-3xl-max) - var(--fc-2xl-min)) * var(--fluid-bp));

    /* Custom pairs */
    --space-s-l: calc(((var(--fc-s-min) / 16) * 1rem) + (var(--fc-l-max) - var(--fc-s-min)) * var(--fluid-bp));
}

/* Font and size variables
   ========================================================================== */

@font-face {
    font-family: 'Marr';
    src: url('../fonts/MarrSansCondensed-Semibold-Web.woff2') format('woff2'),
    url('../fonts/MarrSansCondensed-Semibold-Web.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

:root {
    --header: 'Marr';
    --body: 'Lato', Helvetica Neue, Helvetica, sans-serif;
    font-size: 1rem;
}

:root {
    --step--3: clamp(0.95rem, 0.95rem + 0.08vw, 1.0rem);
    --step--2: clamp(1rem, 1.0rem + 0.1vw, 1.1rem);
    --step--1: clamp(1.09rem, 1.07rem + 0.13vw, 1.20rem);
    --step-0: clamp(1.31rem, 1.27rem + 0.23vw, 1.50rem);
    --step-1: clamp(1.58rem, 1.50rem + 0.38vw, 1.88rem);
    --step-2: clamp(1.89rem, 1.78rem + 0.57vw, 2.34rem);
    --step-3: clamp(2.27rem, 2.10rem + 0.83vw, 2.93rem);
    --step-4: clamp(2.72rem, 2.49rem + 1.18vw, 3.66rem);
    --step-5: clamp(3.27rem, 2.94rem + 1.64vw, 4.58rem);
}

/* Animatie
   ========================================================================== */

@keyframes present-yourself {
    to {
      opacity: 1;
    }
}


/* Basic setup
   ========================================================================== */


:is(i, em) {
    font-style: italic;
}

:is(h1, h2, h3, h4, h5, h6, .header) {
    font-family: var(--header);
    line-height: var(--heading-line-height);
    text-wrap: balance;
}

p.header {
    font-size: var(--step-0);
    margin-block-end: var(--space-2xs);
}

p.subtitle {
    font-family: var(--header);
    margin-block-end: var(--space-m);
}

h1 + p.subtitle {
    margin-block-start: -1.5rem;
    margin-block-end: var(--space-m) !important;
}

:is(p, ol, ul:not(.splide__list)) {
    line-height: var(--body-line-height);
    font-size: var(--step--1);
    max-width: 42em; /* Still a little over 100 characters per line max. */
}

:is(article > p, article > ol, article > ul) {
    margin-block-end: var(--space-xs);
}

p {
    text-wrap: pretty;
}

body {
    position: relative;
    display: block;
    width: calc(100vw - 1rem);
    margin: 0 auto;
    font-family: var(--body);
    padding-block-end: var(--space-m);
    overscroll-behavior: auto;
}

@media screen and (min-width: 1024px) {
    body {
        width: min(1600px, 100vw - 10vw);
    }
}

.overlay {
    position: absolute;
    inset: 50% 0 0 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 30%, rgba(0, 0, 0, 0.7) 75%);
    z-index: 1;
}

:focus {
    outline: 1px solid var(--color-primary);
}

:focus-visible {
    outline: 1px solid var(--color-primary);
}

::selection {
    background-color: hsla(3, 92%, 86%, 1);
}

main:focus {
    outline: none;
}

::marker {
    color: var(--color-primary);
}

:is( ::-webkit-calendar-picker-indicator,
  ::-webkit-clear-button,
  ::-webkit-inner-spin-button,
  ::-webkit-outer-spin-button) {
    color: var(--color-primary);
}

:is(a, button) {
    cursor: pointer;
}

figure {
    position: relative;
}

section {
    margin-block: var(--space-xl);
    content-visibility: auto;
}

h1 {
    font-size: clamp(1.5rem, 3vw, 3rem);
}

p > a {
    text-decoration: underline;
    text-decoration-color: var(--color-primary);
    text-underline-offset: 2px;
    -moz-text-decoration-color: var(--color-primary);
    transition: color .2s ease-in;
    -webkit-transition: color .2s ease-in;
    -moz-transition: color .2s ease-in;
    -ms-transition: color .2s ease-in;
    -o-transition: color .2s ease-in;
}

p > a:is(:hover, :focus),
li > a:is(:hover,:focus) {
    color: var(--color-primary);
}

a, button {
    touch-action: manipulation;
}

[id] {
    scroll-margin-top: 2em;
}

table {
    font-variant-numeric: tabular-nums;
}

/* Button setup
   ========================================================================== */

.btn {
    cursor: pointer;
}


/* Language selection
   ========================================================================== */
.strong {
    font-weight: bolder;
}


/* Header + navigatie
   ========================================================================== */

header {
    position: relative;
    display: flex;
    flex-direction: column;
    padding-block: var(--space-m);
    justify-content: space-between;
    padding-top: 50px;
}

@media screen and (min-width: 820px) {
    header {
        flex-direction: row;
        flex-wrap: wrap;
        padding-block: var(--space-m);
        justify-content: space-between;
        padding-top: unset;
        margin-top: 20px;
    }
}

.nav--container {
    display: flex;
    flex-direction: column;
}

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

@media screen and (max-width: 1024px) {
    .nav--container ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }

    .nav--container li {
        width: fit-content;
    }

    .nav--container li:not(:last-child) {
        margin-inline-end: var(--space-3xs);
    }
}

@media screen and (min-width: 720px) {
    .nav--container li:not(:last-child) {
        margin-inline-end: var(--space-l);
    }

    .nav--container nav {
        margin: auto;
    }
}

@media screen and (max-width: 720px) {
    .nav--container nav {
        margin-block-start: var(--space-m);
    }
}

.nav--container nav a {
    display: inline-block;
    font-family: var(--header);
    font-size: var(--step-0);
    cursor: pointer;
    padding-block: var(--space-s);
}

.nav--container nav a:hover {
    text-decoration: underline;
}

.nav--container .meta a {
    display: inline-block;
    font-size: calc(var(--step--2) / 1.1);
    font-family: var(--body);
    cursor: pointer;
    margin: 0;
    text-decoration: none;
    margin-inline-end: 0;
    padding: 5px;
    transition: color .2s ease-in-out;
    -webkit-transition: color .2s ease-in-out;
    -moz-transition: color .2s ease-in-out;
    -ms-transition: color .2s ease-in-out;
    -o-transition: color .2s ease-in-out;
}

.nav--container .meta li {
    /* margin-inline-start: var(--space-m); */
    margin-inline-start: var(--space-xs);
    margin-inline-end: 0;
}

@media screen and (max-width: 720px) {
    .nav--container .meta a {
        padding-block: var(--space-s);
    }

    .nav--container .meta {
        position: absolute;
        top: -0.5rem;
        right: 0;
    }
}

.meta a:is(:hover, :focus) {
    color: black;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.meta .taal a {
    padding-inline: 0;
}

.taal a:first-child:after {
    content: "|";
    margin-inline: 8px;
}

.taal .active {
    font-weight: 700;
}

.ticket--link {
    display: flex;
    align-items: center;
    width: fit-content;
    gap: var(--space-xs);
    padding-inline: var(--space-s);
    /* background-image: url(../vlakken/bg_groen.svg); */
    background-image: url(../vlakken/bg_card_slider.svg);
    background-position: center;
    background-size: 100% 70%;
    background-repeat: no-repeat;
    text-align: center;
}

.ticket--link a {
    /* color: black; */
    color: white;
    transition: color .2s ease-in-out;
    -webkit-transition: color .2s ease-in-out;
    -moz-transition: color .2s ease-in-out;
    -ms-transition: color .2s ease-in-out;
    -o-transition: color .2s ease-in-out;
}

.ticket--link a:is(:hover, :focus) {
    color: black;
}

.winkelwagen--link {
    display: flex;
    align-items: center;
    width: fit-content;
}

.nav--container nav .menu--link {
    display: flex;
    align-items: center;
}

.nav--container nav .menu--link a {
    position: relative;
    color: black;
    background-image: url(../vlakken/btn_menu_outline.svg);
    background-repeat: no-repeat;
    background-size: cover;
    padding-block: 0;
    padding-inline-start: var(--space-3xs);
    padding-inline-end: var(--space-m);
    transition: all .2s ease-in-out;
    -webkit-transition: all .2s ease-in-out;
    -moz-transition: all .2s ease-in-out;
    -ms-transition: all .2s ease-in-out;
    -o-transition: all .2s ease-in-out;
    min-height: 38px;
}

.nav--container nav .menu--link a:is(:hover, :focus) {
    color: var(--color-primary);
    text-decoration: none;
}

.menu--link a > svg {
    fill: currentColor;
    position: absolute;
    right: 5px;
    top: 20%;
}

.nav--overlay.visible {
    position: fixed;
    inset: 0 0 0 20vw;
    background-color: var(--color-bg-light);
    padding: var(--space-2xl) var(--space-m) var(--space-m) var(--space-m);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    z-index: 1001;
    overflow-y: scroll;
    -webkit-box-shadow: -8px 2px 23px -11px rgba(0,0,0,0.64);
    -moz-box-shadow: -8px 2px 23px -11px rgba(0,0,0,0.64);
    box-shadow: -8px 2px 23px -11px rgba(0,0,0,0.64);
}

body:has(.nav--overlay.visible) {
    overflow: hidden;
}

body:has(.nav--overlay.visible):after {
    position: fixed;
    content: "";
    background-color: rgba(0, 0, 0, 0.2);
    inset: 0;
}

@media screen and (min-width: 768px) {
    .nav--overlay.visible {
        inset: 0 0 0 50vw;
        padding: var(--space-2xl) var(--space-l) var(--space-l) var(--space-2xl);
    }
}

.nav--overlay {
    display: none;
}

.nav--overlay nav {
    display: flex;
    flex-direction: column;
}

.nav--overlay ul {
    width: fit-content;
    font-size: var(--step--1);
    align-self: flex-start;
    margin-block-start: var(--space-xs);
    margin-inline-start: 60px;
}

.nav--overlay details summary {
    font-family: var(--header);
    font-size: var(--step--1);
    padding: 0;
    list-style-type: none;
    list-style: none;
    cursor: pointer;
    display: flex;
}

.nav--overlay details[open] summary {
    margin-block-end: 0;
}

@media screen and (min-width: 768px) {
    .nav--overlay details summary {
        font-size: var(--step-1);
    }

    .nav--overlay ul {
        font-size: var(--step-0);
        margin-inline-start: 60px;
    }
}

.nav--overlay details {
    margin-block-end: var(--space-m);
}

.nav--overlay details:focus-visible {
    outline-color: var(--color-primary);
}

.nav--overlay details > summary {
    list-style: none;
    list-style-type: none;
  }

.nav--overlay summary::-webkit-details-marker {
    display: none;
}

.nav--overlay details summary:before {
    content: "";
    display: inline-flex;
    width: 36px;
    height: 31px;
    background-image: url(../icons/chevron_down_rood.svg);
    -webkit-margin-end: var(--space-s);
    margin-inline-end: var(--space-s);
}

.nav--overlay details[open] summary:before {
    content: "";
    display: inline-flex;
    width: 36px;
    height: 31px;
    background-image: url(../icons/chevron_up_rood.svg);
}

.nav--overlay li:not(:first-of-type) a {
    display: block;
    padding-block: var(--space-3xs);
}

.close {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    display: flex;
    align-items: center;
    font-family: var(--header);
    font-size: var(--step--1);
}

.close:is(:hover, :focus) {
    color: var(--color-primary);
}

.close svg {
    fill: currentColor;
}

@media screen and (min-width: 660px) and (max-width: 720px) {
    .nav--container {
        margin-right: auto;
        margin-left: 3rem;
    }
}

@media screen and (max-width: 720px) {
    header img {
        max-width: 160px;
        height: auto;
    }

    .menu--link {
        position: absolute;
        top: 5rem;
        right: 1rem;
    }
}

@media screen and (max-width: 1200px) {
    header img {
        max-width: 200px;
        height: auto;
    }
}

@media screen and (min-width: 420px) and (max-width: 720px) {
    .nav--container .meta {
        margin: auto;
    }
}


/* Sponsoren block
   ========================================================================== */

.sponsoren--block, .sponsoren--block--static {
    display: grid;
    grid-template-columns: 16px repeat(14, 1fr) 16px;
    gap: var(--space-2xs);
}

@media screen and (min-width: 768px) {
    .sponsoren--block, .sponsoren--block--static {
        grid-template-columns: 48px repeat(14, 1fr) 48px;
    }
}

.sponsoren--block .container {
    grid-column: 1 / -1;
    display: flex;
    gap: var(--space-m);
}

.sponsoren--block--static .container {
    grid-column: 2 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-m);
}

.sponsoren--block .container > div {
    display: grid;
    justify-content: center;
    align-content: center;
    width: 100%;
}

.sponsoren--block--static .container > div {
    display: grid;
    justify-content: center;
    align-content: center;
    min-width: 120px;
    max-height: 80px;
}


.sponsoren--block .splide__slide {
    display: flex;
    justify-content: center;
    align-items: center;
}

.sponsoren--block .splide__slide img {
    filter: grayscale();
    -webkit-filter: grayscale();
    width: auto;
}

.sponsoren--block--static img {
    filter: grayscale();
    -webkit-filter: grayscale();
    max-height: 80px;
    width: auto;
}

.sponsoren--block img:hover, .sponsoren--block--static img:hover {
    filter: unset;
    -webkit-filter: unset;
}

.sponsoren--block .block--header, .sponsoren--block--static .block--header {
    padding-block-end: var(--space-xs);
}

/* Block header
   ========================================================================== */

.block--header h2 {
    font-size: var(--step-2);
}

.block--header {
    grid-column: 2 / 16;

    display: flex;
    flex-wrap: wrap;
    gap: var(--space-s);
    justify-content: space-between;
    align-items: center;
    font-family: var(--header);
}

.block--header a,
.block--footer a {
    font-size: var(--step-0);
    transition: color .2s ease-in-out;
}

.block--header a:is(:hover, :focus),
.block--footer a:is(:hover, :focus) {
    color: var(--color-primary);
}

.block--header a:after,
.block--footer a:after {
    content: "";
    display: block;
    height: 5px;
    margin-block-start: 2px;
    background-image: url(../img/link_underline_1.svg);
    background-repeat: no-repeat;
    background-position: center bottom;
}

/* Footer
   ========================================================================== */

footer {
    grid-column: 1 / -1;
    background-image: url(../img/bg_footer.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    padding-inline: 18px;
    padding-block-end: 32px;
    min-height: 540px;
    color: black;
    display: flex;
    flex-direction: column;
}

@media screen and (min-width: 1024px) {
    footer {
        padding-inline: 48px;
    }
}

footer .container {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-m);
    margin-block-start: 32px;
    justify-content: flex-start;
}

footer .nieuwsbrief a {
    display: inline-block;
    transition: color .2s ease-in-out;
    text-decoration: none;
    -webkit-transition: color .2s ease-in-out;
    -moz-transition: color .2s ease-in-out;
    -ms-transition: color .2s ease-in-out;
    -o-transition: color .2s ease-in-out;
}

footer .nieuwsbrief a:is(:hover, :focus) {
    color: var(--color-primary);
}

footer .nieuwsbrief a:after {
    content: "";
    display: block;
    height: 5px;
    margin-block-start: 2px;
    background-image: url(../img/link_underline_3.svg);
    background-repeat: no-repeat;
    background-position: center bottom;
    background-size: cover;
}

footer :is(p, a) {
    line-height: 1.5;
}

:is(.bezoekers-info, .socials-block) {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    gap: var(--space-s);
    padding-block-start: 32px;
}

.bezoekers-info {
    width: min(400px, 380px);
}

.bezoekers-info p {
    margin-block-end: var(--space-3xs);
    font-size: var(--step--2);
}

.socials-block {
    width: min(332px, 375px);
}

.donatie {
    flex: 1 2 375px;
    height: min-content;
    padding-block: 32px;
    padding-inline: var(--space-m);
    background-image: url(../vlakken/bg_donkergroen.svg);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    color: black;
}

.donatie a {
    text-decoration-color: currentColor;
    -moz-text-decoration-color: currentColor;
    transition: all .2 ease-in-out;
}

.donatie a:is(:hover, :focus) {
    color: white;
    text-decoration-color: currentColor;
    -moz-text-decoration-color: currentColor;
}

@media screen and (min-width: 1375px) {
    .donatie {
        max-width: 416px;
        margin-inline-start: auto;
        margin-inline-end: 0;
    }
}

.social-block {
    margin-inline-start: 0;
    margin-inline-end: auto;
}

.social-media ul {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--space-s);
}

.social--link {
    display: flex;
    width: 47px;
    height: 42px;
    background-position: center;
    background-repeat: no-repeat;
    color: transparent;
}

.twitter {
    background-image: url(../icons/twitter.svg);
}

.linkedin {
    background-image: url(../icons/linkedin.svg);
}

.facebook {
    background-image: url(../icons/facebook.svg);
}

.instagram {
    background-image: url(../icons/instagram.svg);
}

.youtube {
    background-image: url(../icons/youtube.svg);
}

.donatie h4 {
    margin-block-end: var(--space-s);
}

.donatie p:not(:last-child) {
    margin-block-end: var(--space-s);
}

footer :is(h4, h5) {
    display: inline-block;
    width: 100%;
}

footer h4 {
    font-size: var(--step-1);
}

footer h5 {
    font-size: var(--step-0);
    padding-block-start: 6px;
    padding-block-end: var(--space-s);

}

footer img {
    margin-block-start: var(--space-s);
    margin-block-end: 0;
}

.footer--bottom .container {
    margin-block-start: 0;
}

.footer--bottom ul {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
    align-self: flex-end;
    font-size: var(--step--2);
}

@media screen and (min-width: 776px) {
    .footer--bottom ul {
        margin-inline-start: 200px;
    }
}

.footer--bottom ul a {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.footer--bottom ul a:is(:hover, :focus) {
    text-decoration-color: var(--color-primary);
    -moz-text-decoration-color: var(--color-primary);
}

/* Slider styles and animation
   ========================================================================== */

@keyframes splide-loading {
    0% {
        transform: rotate(0);
        -webkit-transform: rotate(0);
        -moz-transform: rotate(0);
        -ms-transform: rotate(0);
        -o-transform: rotate(0);
    }

    to {
        transform: rotate(1turn);
        -webkit-transform: rotate(1turn);
        -moz-transform: rotate(1turn);
        -ms-transform: rotate(1turn);
        -o-transform: rotate(1turn);
    }
}

.splide--draggable > .splide__slider > .splide__track,
.splide--draggable > .splide__track {
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none
}

.splide--fade > .splide__slider > .splide__track > .splide__list,
.splide--fade > .splide__track > .splide__list {
    display: block
}

.splide--fade > .splide__slider > .splide__track > .splide__list > .splide__slide,
.splide--fade > .splide__track > .splide__list > .splide__slide {
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    z-index: 0
}

.splide--fade > .splide__slider > .splide__track > .splide__list > .splide__slide.is-active,
.splide--fade > .splide__track > .splide__list > .splide__slide.is-active {
    opacity: 1;
    position: relative;
    z-index: 1
}

.splide--rtl {
    direction: rtl
}

.splide--ttb.is-active > .splide__slider > .splide__track > .splide__list,
.splide--ttb.is-active > .splide__track > .splide__list {
    display: block
}

.splide__container {
    box-sizing: border-box;
    position: relative
}

.splide__list {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    display: -ms-flexbox;
    display: flex;
    height: 100%;
    /*max-width: inherit;*/
    margin: 0 !important;
    padding: 0 !important;
    transform-style: preserve-3d
}

.splide.is-initialized:not(.is-active) .splide__list {
    display: block
}

.splide__pagination {
    -ms-flex-align: center;
    align-items: center;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -ms-flex-pack: center;
    justify-content: center;
    margin: 0;
    pointer-events: none;
    max-width: unset;
}

.splide__pagination li {
    display: inline-block;
    line-height: 1;
    list-style-type: none;
    margin: 0;
    pointer-events: auto
}

.splide__progress__bar {
    width: 0
}

.splide {
    outline: none;
    position: relative;
    visibility: hidden
}

.splide.is-initialized,
.splide.is-rendered {
    visibility: visible
}

.splide__slide {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    box-sizing: border-box;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    list-style-type: none !important;
    margin: 0;
    outline: none;
    position: relative
}

.splide__slide img {
    vertical-align: bottom
}

.splide__slider {
    position: relative
}

.splide__spinner {
    animation: splide-loading 1s linear infinite;
    border: 2px solid #999;
    border-left-color: transparent;
    border-radius: 50%;
    bottom: 0;
    contain: strict;
    display: inline-block;
    height: 20px;
    left: 0;
    margin: auto;
    position: absolute;
    right: 0;
    top: 0;
    width: 20px
}

.splide__track {
    overflow: hidden;
    position: relative;
    z-index: 0
}

.splide__slide img {
    width: 100%;
    height: auto;
}


/* Button (small and large text)
   ========================================================================== */

.button,
.button--small,
.button--large {
    display: block;
    text-align: left;
    color: white;
    padding-block: var(--space-xs);
    padding-inline: var(--space-xs);
    font-size: var(--step-0);
    font-family: var(--body);
    margin-block: var(--space-s);
    background: url(../icons/chevron.svg) 92% center no-repeat,
    url(../vlakken/bg_donkergroen.svg) center center no-repeat;
    background-size: 4%, cover;
    transition: all .2s cubic-bezier(.15, .93, .57, 1.58);
    -webkit-transition: all .2s cubic-bezier(.15, .93, .57, 1.58);
    -moz-transition: all .2s cubic-bezier(.15, .93, .57, 1.58);
    -ms-transition: all .2s cubic-bezier(.15, .93, .57, 1.58);
    -o-transition: all .2s cubic-bezier(.15, .93, .57, 1.58);
}

@media screen and (min-width: 1180px) {
    .button, .button--small, .button--large {
        width: 60%;
        max-width: 60%;
    }
}

@media screen and (min-width: 1180px) {
    .button--small.film-detail {
        width: 50%;
        max-width: 50%;
    }
}

.button:hover,
.button--small:hover,
.button--large:hover {
    background: url(../icons/chevron.svg) 96% center no-repeat,
    url(../vlakken/bg_donkergroen.svg) center center no-repeat;
    background-size: auto, cover;
    color: white;
    text-decoration: underline;
}

.button--large {
    font-size: var(--step-1);
    padding-block: var(--space-m);
    padding-inline-start: var(--space-xs);
}

.button--small {
    font-size: var(--step--2);
    padding-block: var(--space-3xs);
    min-height: 44px;
    align-content: center;
    display: grid;
}

aside .button,
aside .button--large {
    padding-inline-start: var(--space-xs);
    padding-inline-end: var(--space-xl);
    width: auto;
    max-width: 100%;
}

/* Losse verkoop blok
   ========================================================================== */

.losse-verkoop {
    display: flex;
    flex-direction: column;
    margin-block-start: var(--space-m);
    max-width: 768px;
}

.losse-verkoop h2 {
    font-size: var(--step-1);
}

article .losse-verkoop p {
    font-size: var(--step--1) !important;
    margin-block-end: 0 !important;
}

.losse-verkoop .alle {
    padding-top: 1em;
    padding-bottom: 1em;
}

.losse-verkoop .alle:last-of-type {
    padding-bottom: 0;
}

.tijdslot {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    padding-block-start: var(--space-xs);
    font-family: var(--header);
}

.tijdslot p {
    min-width: 180px;
    margin-block-end: unset;
}

.tijdslot a.film-detail {
    margin: 0.4rem 0 !important;
}

.losse-verkoop a.button--small {
    font-size: var(--step-0);
    width: fit-content;
}

.losse-verkoop small {
    color: var(--color-primary);
    font-size: var(--step--2);
}

.losse-verkoop a:not(.button--small) {
    align-self: flex-start;
    font-size: var(--step--1);
}

.losse-verkoop a:not(.button--small):after {
    content: "";
    display: block;
    height: 5px;
    margin-block-start: 2px;
    background-image: url(../img/link_underline_3.svg);
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-position: center bottom;
}

/* Verkoop blok in aside
   ========================================================================== */

.ticket-verkoop {
    display: flex;
    flex-direction: column;
    padding: var(--space-s);
    background-image: url(../vlakken/bg_grey.svg);
    background-size: 100% 100%;
    color: black;
}

.ticket-verkoop h4 {
    font-size: var(--step-0);
}

.ticket-verkoop p {
    margin-block: var(--space-xs);
}

.ticket-verkoop a, .plan {
    font-family: var(--header);
    font-size: var(--step--1);
    transition: color .2s ease-in-out;
}

.ticket-verkoop .plan:is(:hover,:focus) {
    color: black;
}

.ticket-verkoop a.direct, .ticket-verkoop a:first-of-type {

    background-image: url(../vlakken/bg_lichtgroen.svg);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    color: black;
    padding-block: var(--space-xs);
    margin-block-end: var(--space-s);
    text-align: center;
}

.ticket-verkoop a:is(:hover,:focus) {
    color: black;
    text-decoration: underline;
}

.plan {
    margin: 0 auto;
}

.plan:after {
    content: "";
    display: block;
    height: 5px;
    margin-block-start: 2px;
    background-image: url(../img/link_underline_1.svg);
    background-repeat: no-repeat;
    background-position: center bottom;
}


/* Paginatie
   ========================================================================== */

.pagination {
    display: flex;
    list-style: none;
    gap: var(--space-s);
    justify-content: center;
    margin: var(--space-m) auto;
}

/* BoltForms
   ========================================================================== */

div.boltforms div {
    margin-bottom: 1rem;
}

div.boltforms fieldset {
    font-size: var(--step--1);
    margin: 0;
    padding: 2rem 0 0 0;
}

div.boltforms legend {
    margin: 0;
    padding: 0;
}

div.boltforms .form-check {
    display: flex;
    margin-left: 0.5rem;
}

div.boltforms .form-check-label {
    margin-left: 1rem;
}

.boltforms label {
    color: var(--color-black);
    font-size: var(--step--1);
    min-width: 240px;
    display: inline-block;
}

.boltforms-feedback {
    color: var(--color-black);
    font-size: var(--step--2);
}

.boltforms select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: transparent;
    background-image: url("data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M00h24v24H0z' fill='none'/></svg>");
    background-repeat: no-repeat;
    background-position-x: 100%;
    background-position-y: 50%;
}

.boltforms button,
.boltforms input,
.boltforms select,
.boltforms textarea,
.boltforms a[role="button"] {
    color: var(--color-black);
    font-size: var(--step--1);
    margin-bottom: var(--space-xs);
    line-height: var(--body-line-height);
    padding: 0.33em;
    border: 1px solid #999;
    box-sizing: border-box;
}

.boltforms input,
.boltforms select,
.boltforms textarea {
    min-width: 400px;
}

.boltforms input[type="checkbox"],
.boltforms input[type="radio"] {
    min-width: auto;
    width: 1.25em;
    height: 1.25em;
    border: solid 1px #999;
}

.boltforms input[type="checkbox"]:checked {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
}

.boltforms button,
.boltforms input[type="button"],
.boltforms input[type="submit"],
.boltforms a[role="button"] {
    padding: 0.5rem 2rem;
    cursor: pointer;
    background-color: var(--color-primary);
    color: white;
    text-decoration: none;
    font-weight: bold;
}

.boltforms button:disabled,
.boltforms input[type="button"]:disabled,
.boltforms input[type="submit"]:disabled,
.boltforms a[role="button"]:disabled {
    cursor: not-allowed;
}

/* Very Specific Overrides */
label[for="contact_comment"],
label[for="contact_hcaptcha"],
label[for="nieuwsbrief_hcaptcha"] {
    vertical-align: top;
}

.h-captcha {
    display: inline-block;
}


.visuallyhidden {
    position: absolute;
    width: 1px;
    /* Setting this to 0 make it invisible for VoiceOver */
    height: 1px;
    /* Setting this to 0 make it invisible for VoiceOver */
    padding: 0;
    margin: -1px;
    border: 0;
    clip: rect(0 0 0 0);
    overflow: hidden;
}

.skip-link {
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.skip-link:focus {
    clip: auto;
    height: auto;
    overflow: auto;
    position: absolute;
    width: auto;
    background-color: yellow;
    color: black;
    padding-block: var(--space-3xs);
    padding-inline: var(--space-2xs);
    text-decoration: underline;
}