/*
Theme Name: Stadsmuseum Genemuiden
Version: 1.0.0
Text Domain: stadsmuseumgenemuiden
*/


:root {
    --base: 15px;
    --massive: calc(var(--base) * 10);
    --huge: calc(var(--base) * 7);
    --extralarge: calc(var(--base) * 6);
    --largehuge: calc(var(--base) * 5);
    --large: calc(var(--base) * 4);
    --mediumlarge: calc(var(--base) * 3);
    --medium: calc(var(--base) * 2.5);
    --smallmedium: calc(var(--base) * 2);
    --small: calc(var(--base) * 1.5);
    --extrasmall: var(--base);
    --tiny: calc(var(--base) * 0.75);
    --color-primary: #2850bf;
    --color-secondary: #fdc11c;
    --color-background: #edeae8;
    --color-text: #000;
    --color-ink: #10296d;
    --color-dark: #1f45ae;
    --color-white: #fff;
    --motion: 0.3s;
    --font-h1: 64px;
    --font-h2: 52px;
    --font-h3: 40px;
    --font-h4: 32px;
    --font-h5: 26px;
    --font-h6: 24px;
    --font-large: 116.107px;
    --font-stacked: clamp(76px, 24.5cqw, 177.877px);
    --font-tagline: 47.323px;
}

@font-face {
    font-family: "Space Grotesk";
    src: url("fonts/SpaceGrotesk-Regular.woff2") format("woff2"), url("fonts/SpaceGrotesk-Regular.woff") format("woff"), url("fonts/SpaceGrotesk-Regular.ttf") format("truetype"), url("fonts/SpaceGrotesk-Regular.eot?#iefix") format("embedded-opentype"), url("fonts/SpaceGrotesk-Regular.svg#SpaceGrotesk-Regular") format("svg");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Space Grotesk";
    src: url("fonts/SpaceGrotesk-Medium.woff2") format("woff2"), url("fonts/SpaceGrotesk-Medium.woff") format("woff"), url("fonts/SpaceGrotesk-Medium.ttf") format("truetype"), url("fonts/SpaceGrotesk-Medium.eot?#iefix") format("embedded-opentype"), url("fonts/SpaceGrotesk-Medium.svg#SpaceGrotesk-Medium") format("svg");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Space Grotesk";
    src: url("fonts/SpaceGrotesk-Bold.woff2") format("woff2"), url("fonts/SpaceGrotesk-Bold.woff") format("woff"), url("fonts/SpaceGrotesk-Bold.ttf") format("truetype"), url("fonts/SpaceGrotesk-Bold.eot?#iefix") format("embedded-opentype"), url("fonts/SpaceGrotesk-Bold.svg#SpaceGrotesk-Bold") format("svg");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("fonts/Inter18pt-Regular.woff2") format("woff2"), url("fonts/Inter18pt-Regular.woff") format("woff"), url("fonts/Inter18pt-Regular.ttf") format("truetype"), url("fonts/Inter18pt-Regular.eot?#iefix") format("embedded-opentype"), url("fonts/Inter18pt-Regular.svg#Inter18pt-Regular") format("svg");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("fonts/Inter18pt-Medium.woff2") format("woff2"), url("fonts/Inter18pt-Medium.woff") format("woff"), url("fonts/Inter18pt-Medium.ttf") format("truetype"), url("fonts/Inter18pt-Medium.eot?#iefix") format("embedded-opentype"), url("fonts/Inter18pt-Medium.svg#Inter18pt-Medium") format("svg");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Maheni";
    src: url("fonts/Maheni-Regular.woff2") format("woff2"), url("fonts/Maheni-Regular.woff") format("woff"), url("fonts/Maheni-Regular.ttf") format("truetype"), url("fonts/Maheni-Regular.eot?#iefix") format("embedded-opentype"), url("fonts/Maheni-Regular.svg#Maheni-Regular") format("svg");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Font Awesome";
    src: url("fonts/FontAwesome7Pro-Regular.woff2") format("woff2"), url("fonts/FontAwesome7Pro-Regular.woff") format("woff"), url("fonts/FontAwesome7Pro-Regular.ttf") format("truetype"), url("fonts/FontAwesome7Pro-Regular.eot?#iefix") format("embedded-opentype"), url("fonts/FontAwesome7Pro-Regular.svg#FontAwesome7Pro-Regular") format("svg");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Font Awesome Brands";
    src: url("fonts/FontAwesome7Brands-Regular.woff2") format("woff2"), url("fonts/FontAwesome7Brands-Regular.woff") format("woff"), url("fonts/FontAwesome7Brands-Regular.ttf") format("truetype"), url("fonts/FontAwesome7Brands-Regular.eot?#iefix") format("embedded-opentype"), url("fonts/FontAwesome7Brands-Regular.svg#FontAwesome7Brands-Regular") format("svg");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: Manrope;
    src: url("fonts/manrope-regular.woff2") format("woff2"), url("fonts/manrope-regular.woff") format("woff"), url("fonts/manrope-regular.ttf") format("truetype"), url("fonts/manrope-regular.eot?#iefix") format("embedded-opentype"), url("fonts/manrope-regular.svg#Manrope-Regular") format("svg");
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: Manrope;
    src: url("fonts/manrope-semibold.woff2") format("woff2"), url("fonts/manrope-semibold.woff") format("woff"), url("fonts/manrope-semibold.ttf") format("truetype"), url("fonts/manrope-semibold.eot?#iefix") format("embedded-opentype"), url("fonts/manrope-semibold.svg#Manrope-SemiBold") format("svg");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

/* Document */

* {
    box-sizing: border-box;
}

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

html {
    scroll-behavior: smooth;
    scroll-padding-top: var(--smallmedium);
}

body {
    margin: 0;
    background: var(--color-background);
    color: var(--color-text);
    font-family: "Space Grotesk", sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 16px;
    line-height: 1.5;
    letter-spacing: -0.008em;
}

body.page--menu-open {
    overflow: hidden;
}

::selection {
    background: var(--color-primary);
    color: var(--color-white);
}

:is(img, video) {
    display: block;
    max-width: 100%;
    height: auto;
    object-position: center center;
}

p {
    margin: 0 0 var(--smallmedium);
}

li {
    margin: 0 0 var(--tiny);
}

:is(ul, ol, dl, table) {
    margin: 0 0 var(--smallmedium);
}

section {
    display: flow-root;
    position: relative;
    margin: var(--extralarge) 0;
}

section[data-background] {
    margin: 0;
    padding: var(--huge) 0;
}

body[data-page="te-doen"] {
    --intro-size: 512px;
}

body[data-page="te-zien"] {
    --intro-size: 506px;
}

body[data-page="nieuws"] {
    --intro-size: 538px;
}

body[data-page="dagje-genemuiden"] {
    --intro-size: 512px;
}

body[data-page="veerkracht"] {
    --intro-size: 470px;
}

body[data-page="steun-ons"] {
    --intro-size: 612px;
}

section.page-intro--feature:has(+ section.article--compact) {
    --intro-size: 591px;
}

body[data-page="groepen"] {
    --intro-size: 434px;
}

section.page-intro--feature:where(:has(+ section.article--compact)) .page-intro__lead {
    padding-top: var(--largehuge);
}

section.page-intro--feature:has(+ section.article--compact)::before {
    height: 695px;
    pointer-events: none;
}

.page--inner main h3 {
    overflow-wrap: anywhere;
}

:is(h1, .h1) {
    font-size: var(--font-h1);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.008em;
    margin: 0 0 var(--small);
}

:is(h2, .h2) {
    font-size: var(--font-h2);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.008em;
    margin: 0 0 var(--small);
}

:is(h3, .h3) {
    font-size: var(--font-h3);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.008em;
    margin: 0 0 var(--small);
}

:is(h4, .h4) {
    font-size: var(--font-h4);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.008em;
    margin: 0 0 var(--small);
}

:is(h5, .h5) {
    font-size: var(--font-h5);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.008em;
    margin: 0 0 var(--small);
}

:is(h6, .h6) {
    font-size: var(--font-h6);
    font-weight: 500;
    line-height: 1.3333;
    letter-spacing: -0.008em;
    margin: 0 0 var(--small);
}

:is(p, ul, ol, li, dl, table, h1, h2, h3, h4, h5, h6):last-child {
    margin-bottom: 0;
}

.large {
    font-family: Maheni, "Space Grotesk", sans-serif;
    font-size: var(--font-large);
    font-weight: 400;
    line-height: 0.839;
    letter-spacing: -0.008em;
}

.large--stacked {
    font-family: Maheni, "Space Grotesk", sans-serif;
    font-size: var(--font-stacked);
    font-weight: 400;
    line-height: 0.839;
    letter-spacing: -0.008em;
}

.tagline {
    font-size: var(--font-tagline);
    font-weight: 700;
    line-height: 1.2676;
}

/* Shared elements */

:is(body[data-page="rondleidingen"], body[data-page="vrijwilliger-worden"]) {
    --intro-size: 580px;
}

:is(.page--inner main h1, .page--inner main :is(h2, h3, h4, h5, h6)) {
    overflow-wrap: anywhere;
}

input {
    font: inherit;
    -webkit-tap-highlight-color: transparent;
}

a {
    color: inherit;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
}

button {
    font: inherit;
    color: inherit;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    border: 0;
    border-radius: 0;
}

button:disabled {
    cursor: default;
}

:is(button:focus-visible, a:focus-visible) {
    outline: 3px solid currentColor;
    outline-offset: 5px;
}

input:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 5px;
}

[hidden] {
    display: none !important;
}

address {
    font-style: normal;
}

main:focus {
    outline: none;
}

.visually-hidden {
    position: absolute;
    max-width: 0.1ch;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.skip-link {
    position: fixed;
    z-index: 200;
    top: var(--extrasmall);
    left: var(--extrasmall);
    padding: var(--extrasmall);
    background: var(--color-secondary);
    color: var(--color-ink);
    transform: translateY(-200%);
}

.skip-link:focus {
    transform: none;
}

.section-intro {
    margin-bottom: var(--largehuge);
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    flex-shrink: 0;
    gap: var(--tiny);
    padding: var(--extrasmall) var(--smallmedium);
    background: var(--color-secondary);
    color: var(--color-ink);
    font-family: Inter, sans-serif;
    font-size: 15px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.011em;
    transition: background var(--motion), color var(--motion);
}

.icon-button::before,.navigation__submenu-toggle::after {
    font-family: "Font Awesome";
    font-weight: 400;
    font-style: normal;
    line-height: 1;
    pointer-events: none;
}

.navigation__close::after,.navigation__back-button::before {
    font-family: "Font Awesome";
    font-weight: 400;
    font-style: normal;
    line-height: 1;
    pointer-events: none;
}

.navigation__language-toggle::after,.search::before {
    font-family: "Font Awesome";
    font-weight: 400;
    font-style: normal;
    line-height: 1;
    pointer-events: none;
}

.search__close::before {
    font-family: "Font Awesome";
    font-weight: 400;
    font-style: normal;
    line-height: 1;
    pointer-events: none;
}

:is(.btn,  .text-link)::after {
    font-family: "Font Awesome";
    font-weight: 400;
    font-style: normal;
    line-height: 1;
    content: "\f101" / "";
    transition: transform var(--motion);
    pointer-events: none;
}

.btn--white {
    background: var(--color-white);
    color: var(--color-primary);
}

.btn--ticket::after {
    content: "\f3ff" / "";
    pointer-events: none;
}

.text-link {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: var(--tiny);
    color: var(--color-primary);
    font-family: Inter, sans-serif;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.2;
}

.icon-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: var(--extrasmall);
    font-size: 16px;
    line-height: 1;
    background: var(--color-secondary);
    color: var(--color-primary);
}

.arrow-link {
    display: inline-flex;
    align-items: baseline;
    gap: var(--tiny);
}

.arrow-link::before {
    font-family: "Font Awesome";
    font-weight: 400;
    font-style: normal;
    line-height: 1;
    content: "\f101" / "";
    color: var(--link-arrow-color, var(--color-secondary));
    font-size: 0.8em;
    pointer-events: none;
}

:is(.contact-link--phone,.contact-link--email) {
    display: inline-flex;
    align-items: baseline;
    gap: var(--tiny);
    font-weight: 700;
}

:is(.contact-link--phone,.contact-link--email) span {
    text-decoration: underline;
    text-decoration-color: var(--color-secondary);
    text-decoration-thickness: 0.05em;
    text-underline-offset: 0.35em;
}

.contact-link--phone::before {
    font-family: "Font Awesome";
    font-weight: 400;
    font-style: normal;
    line-height: 1;
    color: var(--color-secondary);
    content: "\f095" / "";
    pointer-events: none;
}

.contact-link--email::before {
    font-family: "Font Awesome";
    font-weight: 400;
    font-style: normal;
    line-height: 1;
    color: var(--color-secondary);
    content: "\f0e0" / "";
    pointer-events: none;
}

:is(select:focus-visible, textarea:focus-visible) {
    outline: 3px solid var(--color-secondary);
    outline-offset: 4px;
}

summary:focus-visible {
    outline: 3px solid var(--color-secondary);
    outline-offset: 4px;
}

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

.btn--blue {
    background: var(--color-primary);
    color: var(--color-white);
}

:is(.btn:focus-visible,  .text-link:focus-visible)::after {
    transform: translateX(3px);
    pointer-events: none;
}

.card__meta {
    font-size: 20px;
    line-height: 1.6;
    font-weight: 500;
}

/* Navigation */

header.navigation .navigation__buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--extrasmall);
}

header.navigation .navigation__collapse {
       /* margin-left: auto; */
    flex: 1 1 auto;
}

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

header.navigation li {
    margin-bottom: 0;
}

header.navigation .navigation__menu a[aria-current="page"] > .navigation__link-label,
header.navigation .navigation__menu > .current-menu-ancestor > .navigation__item-buttons > a > .navigation__link-label {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

header.navigation .navigation__submenu-toggle {
    padding: var(--tiny) 0 var(--tiny) 0;
    background: transparent;
    color: var(--color-secondary);
    font-size: 10px;
    line-height: 1;
}

header.navigation .navigation__submenu-toggle::after {
    display: block;
    content: "\f078" / "";
    transition: transform var(--motion);
    pointer-events: none;
}

header.navigation .navigation__item.navigation__item--open > .navigation__item-buttons .navigation__submenu-toggle::after {
    transform: rotate(180deg);
    pointer-events: none;
}

header.navigation .navigation__submenu {
    position: absolute;
    top: 100%;
    left: calc(-1 * var(--small));
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: var(--tiny);
    width: max-content;
    padding: var(--small);
    background: var(--color-primary);
    visibility: hidden;
    opacity: 0;
    transition: opacity var(--motion), visibility 0s linear var(--motion);
}

header.navigation .navigation__item.navigation__item--open > .navigation__submenu {
    visibility: visible;
    opacity: 1;
    transition-delay: 0s;
}

header.navigation .navigation__submenu a {
    white-space: normal;
}

header.navigation .navigation__submenu-back {
    display: none;
}

header.navigation .navigation__panel-header {
    flex-wrap: wrap;
    align-items: center;
    gap: var(--extrasmall);
    display: none;
}

:is(header.navigation .navigation__panel-extra, header.navigation .navigation__toggler) {
    display: none;
}

header.navigation .navigation__actions {
    display: flex;
    align-items: center;
    gap: var(--tiny);
    flex-wrap: nowrap;
}

header.navigation .navigation__search-toggle {
    background: #1c41a9;
    color: var(--color-white);
}

header.navigation .navigation__search-toggle::before {
    content: "\f002" / "";
    pointer-events: none;
}

header.navigation .navigation__toggler::before {
    content: "\f0c9" / "";
    pointer-events: none;
}

header.navigation .navigation__language-picker {
    color: var(--color-primary);
    background: var(--color-white);
    font-size: 12px;
    position: relative;
}

header.navigation .navigation__language-toggle {
    display: flex;
    align-items: center;
    gap: var(--tiny);
    padding: var(--tiny) var(--tiny);
    background: var(--color-white);
    font-weight: 700;
}

header.navigation .navigation__language-picker ul {
    position: absolute;
    right: 0;
    z-index: 4;
    width: max-content;
    padding: var(--extrasmall);
    background: var(--color-white);
    top: 100%;
    max-width: calc(100vw - var(--smallmedium));
}

header.navigation .navigation__language-picker li + li {
    margin-top: var(--tiny);
}

header.navigation .search {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--extrasmall);
    padding: var(--extrasmall) var(--medium);
    background: var(--color-white);
    color: var(--color-primary);
}

header.navigation .search::before {
    content: "\f002" / "";
    pointer-events: none;
}

header.navigation .search input {
    flex: 1;
    min-width: 0;
    padding: 0 0;
    border: none;
    border-radius: 0;
    background: transparent;
    color: inherit;
}

:is(header.navigation .search input:focus, header.navigation .search input:active) {
    outline: none;
    box-shadow: none;
}

header.navigation .search .search__submit {
    flex-shrink: 0;
}

header.navigation .search input::placeholder {
    color: inherit;
    opacity: 1;
}

header.navigation .search__close {
    padding: 0;
    background: transparent;
}

header.navigation .search__close::before {
    content: "\f00d" / "";
    pointer-events: none;
}

header.navigation {
    position: absolute;
    z-index: 20;
    top: var(--smallmedium);
    color: var(--color-white);
    left: var(--medium);
    right: var(--medium);
}

header.navigation .navigation__bar {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--smallmedium);
    padding: var(--smallmedium) var(--medium);
    background: var(--color-primary);
    padding-left: var(--large);
}

header.navigation .navigation__menu {
    display: flex;
    align-items: center;
    gap: var(--medium);
    justify-content: center;
}

header.navigation .navigation__item {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0;
    white-space: nowrap;
    font-weight: 500;
}

header.navigation .navigation__item-buttons {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: var(--tiny);
}

header.navigation .navigation__overlay-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--extrasmall);
    position: absolute;
}

header.navigation .search > .navigation__buttons {
    flex-shrink: 0;
}

:is(header.navigation .navigation__overlay-controls:empty, header.navigation .navigation__panel-header:empty) {
    display: none;
}

:is(header.navigation .navigation__item-buttons:empty, header.navigation .navigation__buttons:empty) {
    display: none;
}

header.navigation .navigation__actions:empty {
    display: none;
}

header.navigation .navigation__panel-logo {
    display: block;
    width: 100%;
    aspect-ratio: 199 / 44;
    max-width: 9.75rem;
}

header.navigation .navigation__panel-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
}

header.navigation .navigation__logo {
    flex-shrink: 0;
    width: 100%;
    aspect-ratio: 199 / 44;
    max-width: 12.5rem;
}

header.navigation .navigation__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
}

header.navigation .navigation__top {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: flex-end;
    padding-inline: var(--medium);
	  
}

body.not-home header.navigation .navigation__top {
	  background: var(--color-background);
}

header.navigation:has(.navigation__top) {
    top: 0;
}

.page--inner header.navigation .navigation__top {
    background: var(--color-background);
}

header.navigation .navigation__top .navigation__language-picker {
    margin-bottom: calc(var(--tiny) / -2);
}

/* Hero */

section.hero .hero__buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--extrasmall);
}

section.hero .hero__media {
    position: absolute;
    inset: 0;
    z-index: -1;
    overflow: hidden;
}

section.hero .hero__media::after {
    display: none;
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(14deg, rgb(0 0 0 / 0.3) 17%, transparent 62%);
    pointer-events: none;
}

section.hero .hero__media :is(img, video) {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

section.hero .hero__content {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--smallmedium);
}

section.hero .hero__eyebrow {
    margin: 0 0 var(--smallmedium);
    margin-bottom: var(--extrasmall);
    margin-left: var(--tiny);
}

section.hero .hero__content > .hero__buttons {
/*     align-self: start; */
    margin-top: var(--massive);
    margin-bottom: 0;
}

section.hero .hero__buttons:empty {
    display: none;
}

section.hero {
    display: flex;
    align-items: end;
    margin: 0;
    padding: var(--massive) 0 var(--huge);
    color: var(--color-white);
    padding-bottom: var(--huge);
    height: auto;
    min-height: 100vh;
}

/* Themes */

section.themes {
    margin-block: var(--massive) var(--largehuge);
}

section.themes .themes__header {
    margin-bottom: var(--huge);
}

section.themes .themes__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--smallmedium);
    padding-top: var(--small);
    max-width: 71ch;
}

section.themes .themes__content p {
    margin: 0;
}

section.themes .themes__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--extrasmall);
}

section.themes .theme {
    position: relative;
    height: 100%;
    color: var(--color-white);
}

section.themes .theme__link {
    display: block;
    height: 100%;
}

section.themes .theme__image {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
}

section.themes .theme__image :is(img, video) {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    transition: transform var(--motion);
}

section.themes .theme__content {
    position: absolute;
    bottom: var(--mediumlarge);
    left: var(--extrasmall);
    right: var(--extrasmall);
    text-align: center;
    pointer-events: none;
}

section.themes .theme__link:focus-visible .theme__image :is(img, video) {
    transform: scale(1.04);
    object-position: center center;
}

section.themes--related {
    margin-block: var(--extralarge);
}

section.themes--related .themes__header {
    margin-bottom: var(--medium);
}

section.themes--overlap {
    margin-top: 0;
}

section.themes--overview {
    margin-inline: var(--medium);
    overflow: clip;
}

/* Cards */

section.cards .card__buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--extrasmall);
}

section.cards .card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--color-white);
}

:is(section.cards .card .card__image, section.cards .card .card__media) {
    position: relative;
    display: block;
    flex-shrink: 0;
    overflow: hidden;
}

:is(section.cards .card .card__image--landscape, section.cards .card .card__media--landscape) {
    aspect-ratio: 4 / 3;
}

section.cards .card .card__media--wide {
    aspect-ratio: 3 / 2;
}

section.cards .card .card__image :is(img, video) {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--motion);
    object-position: center center;
}

section.cards .card .card__media :is(img, video) {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--motion);
    object-position: center center;
}

section.cards .card .card__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--smallmedium);
    flex: 1;
    padding: var(--medium);
}

section.cards .card .card__content p {
    margin: 0;
}

section.cards .card:focus-within .card__image :is(img, video) {
    transform: scale(1.04);
    object-position: center center;
}

section.cards .card:focus-within .card__media :is(img, video) {
    transform: scale(1.04);
    object-position: center center;
}

section.cards .card.card--image {
    aspect-ratio: 4 / 3;
}

:is(section.cards .card.card--image .card__image,  section.cards .card.card--image .card__media)::after {
    background: none;
    pointer-events: none;
}

section.cards .card.card--image .card__content {
    padding: var(--mediumlarge) var(--large);
    gap: var(--extrasmall);
}

:is(section.cards .card.card--image .card__content h3, section.cards .card.card--image .card__content :is(h2, h3, h4, h5, h6)) {
    max-inline-size: 17ch;
}

:is(section.cards .card.card--highlight .card__image, section.cards .card.card--highlight .card__media) {
    aspect-ratio: 3 / 2;
}

section.cards .card.card--highlight .card__content {
    padding: var(--mediumlarge);
    gap: var(--tiny);
}

section.cards .card.card--featured .card__content {
    padding: var(--mediumlarge) var(--large);
    height: 100%;
}

section.cards .card.card--featured {
    display: block;
}

:is(section.cards .card.card--featured .card__image, section.cards .card.card--featured .card__media) {
    aspect-ratio: 4 / 3;
    width: 100%;
    height: 100%;
}

section.cards .card.card--highlight.card--with-link .card__content {
    gap: 0;
}

section.cards .card.card--highlight.card--with-link .card__buttons {
    display: flex;
}

section.cards .card.card--image.card--with-link .card__buttons {
    display: flex;
}

section.cards .card.card--highlight.card--with-link .text-link {
    display: inline-flex;
    margin-top: 0;
    color: var(--card-link-color, var(--color-primary));
}

section.cards .card.card--image.card--with-link .text-link {
    display: inline-flex;
    margin-top: 0;
    color: var(--color-white);
}

section.cards .card.card--image.card--with-link .text-link::after {
    color: var(--card-link-arrow-color, var(--color-white));
    pointer-events: none;
}

section.cards .card__buttons:empty {
    display: none;
}

:is(section.cards--page .card.card--featured .card__image, section.cards--page .card.card--featured .card__media) {
    aspect-ratio: 4 / 3;
}

section.cards--page .card.card--featured .card__content {
    justify-content: space-between;
}

section.cards--page .card:not(.card--featured):not(.card--image):not(.card--highlight) .card__content {
    padding: var(--smallmedium) var(--medium);
    gap: 0;
}

section.cards--page > .container > :is(h2, h3, h4, h5, h6) {
    color: var(--color-primary);
}

/* Activities */

section.activities .activities__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--smallmedium);
}

section.activities .activities__content p {
    margin: 0;
}

section.activities .activities__buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--extrasmall);
}

section.activities .section-intro {
    color: var(--color-white);
}

section.activities .activities__header {
    margin-bottom: var(--largehuge);
    color: var(--color-white);
}

:is(section.activities .card.card--image .card__image,  section.activities .card.card--image .card__media)::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(transparent 30%, rgb(0 0 0 / 0.65));
    pointer-events: none;
}

section.activities .card.card--image .card__content a {
    pointer-events: auto;
}

section.activities .card.card--image .text-link {
    color: var(--color-white);
    display: none;
}

section.activities .card.card--highlight .text-link {
    display: none;
}

section.activities .card.card--highlight {
    background: var(--color-secondary);
}

section.activities .activities__header .activities__content {
    max-inline-size: 59ch;
    padding-top: var(--tiny);
    gap: var(--small);
}

section.activities .activities__header .activities__content .btn {
    margin-top: var(--extrasmall);
}

section.activities .card.card--image {
    position: relative;
    display: flex;
    color: var(--color-white);
    background: transparent;
    width: 100%;
    aspect-ratio: 4 / 3;
    flex-direction: column;
    justify-content: flex-end;
}

:is(section.activities .card.card--image .card__image, section.activities .card.card--image .card__media) {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
}

section.activities .card.card--image .card__content {
    z-index: 1;
    padding-top: var(--massive);
    pointer-events: none;
    position: relative;
    align-self: stretch;
    justify-content: flex-end;
    gap: var(--small);
    padding-inline: var(--mediumlarge);
}

section.activities .card.card--image .card__buttons {
    display: none;
}

section.activities .card.card--highlight .card__buttons {
    display: none;
}

section.activities .activities__buttons:empty {
    display: none;
}

section.activities .card.card--featured .card__content {
    padding: var(--mediumlarge) var(--large) var(--medium);
}

section.activities .card.card--highlight .card__content {
    gap: var(--small);
    padding: var(--medium) var(--mediumlarge);
}

section.activities--events {
    --card-link-color: var(--color-text);
    --card-link-arrow-color: var(--color-secondary);
    position: relative;
    padding: calc(var(--huge) + var(--extrasmall)) 0 0;
    background: linear-gradient(var(--color-primary) var(--massive), transparent 0);
   background: linear-gradient(var(--color-primary) calc(100% - var(--extralarge)), transparent 0);
    margin: 0;
}

section.activities--inset {
    margin-inline: var(--medium);
}

/* Continue the intro colour behind the first activity, regardless of list length. */
section.cards--page.activities--events {
    background: linear-gradient(var(--color-primary) var(--massive), transparent 0);
}

section.page-intro + section.cards--page.activities--events {
    margin-top: 0;
}

/* Museum */

section.museum .museum__buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--extrasmall);
}

section.museum .museum__media--portrait {
    aspect-ratio: 4 / 5;
}

section.museum .museum__media--landscape {
    aspect-ratio: 4 / 3;
}

section.museum .museum__body {
    padding-top: var(--medium);
}

section.museum .museum__media-stack {
    display: flex;
    flex-direction: column;
    gap: var(--small);
}

section.museum .large {
    color: var(--color-primary);
    width: 100%;
    max-width: 100%;
}

section.museum .museum__content {
    container-type: inline-size;
    display: flex;
    flex-direction: column;
    gap: var(--medium);
}

section.museum .museum__text p {
    margin-bottom: var(--small);
}

section.museum .museum__text p:last-child {
    margin-bottom: 0;
}

section.museum {
    margin-top: calc(var(--massive) + var(--extralarge));
    margin-bottom: var(--massive);
}

section.museum .museum__buttons:empty {
    display: none;
}

section.museum .museum__media {
    position: relative;
    overflow: hidden;
}

section.museum .museum__media :is(img, video) {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

section.museum--inside {
    margin: var(--extralarge) 0;
}

/* News */

section.news .news__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--smallmedium);
    margin-bottom: var(--medium);
}

section.news .news__buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--extrasmall);
}

section.news .news__header :is(h2, h3, h4, h5, h6) {
    color: var(--color-primary);
}

section.news .card .card__content {
    padding: var(--small) var(--medium) var(--smallmedium);
    gap: var(--extrasmall);
}

section.news .card.card--news .text-link {
    margin-top: auto;
    padding-top: 0;
}

section.news .card.card--news time {
    font-size: 16px;
    font-weight: 500;
}

section.news {
    overflow: clip;
    padding: 0;
    margin-top: var(--massive);
}

section.news .news__buttons:empty {
    display: none;
}

section.news .card__buttons {
    margin-top: auto;
}

section.news-overview .card .card__footer {
    margin-top: 0;
    gap: var(--medium);
}

section.news-overview .card .card__content {
    padding: var(--medium) var(--smallmedium);
    gap: var(--extrasmall);
    padding-top: var(--smallmedium);
}

/* Partners */

section.partners {
    overflow: clip;
}

section.partners .partner {
    display: flex;
    align-items: center;
    justify-content: center;
    height: var(--largehuge);
    width: auto;
    aspect-ratio: 2.5944793954712617;
    padding: 0;
}

section.partners .partner :is(img, video) {
    flex-shrink: 0;
    height: 100%;
    width: 100%;
    object-fit: contain;
    object-position: center center;
    max-width: 100%;
}

/* Page-intro */

section.page-intro .page-intro__content {
    display: flex;
    flex-direction: column;
    gap: var(--mediumlarge);
    padding: var(--smallmedium) 0 var(--large);
}

:is(section.page-intro .page-intro__content h1, section.page-intro .page-intro__content p) {
    margin: 0;
}

section.page-intro .page-intro__image {
    width: 100%;
    position: relative;
    height: 100%;
    padding-bottom: 66.6667%;
    overflow: hidden;
}

section.page-intro .page-intro__image :is(img, video) {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

:is(section.article--overlap, section.form--overlap, section.themes--overlap, section.cards--overlap) {
    margin-top: 0;
}

:is(section.page-intro--overview,  section.page-intro--short)::before {
    bottom: calc((var(--massive) + var(--huge)) * -1);
    pointer-events: none;
}

section.page-intro--center::before {
    bottom: calc((var(--massive) + var(--huge)) * -1);
    pointer-events: none;
}

section.page-intro--feature::before {
    bottom: calc(var(--massive) * -1);
    pointer-events: none;
}

section.page-intro .page-intro__lead > * {
    margin: 0;
}

section.page-intro--overview .page-intro__lead {
    max-inline-size: 39.5rem;
}

section.page-intro--feature .page-intro__breadcrumbs {
    margin-bottom: var(--extralarge);
}

section.page-intro .page-intro__heading h1 {
    margin-top: var(--extrasmall);
}

section.page-intro {
    margin-bottom: 0;
    isolation: isolate;
    background: transparent;
    color: var(--color-white);
    padding-bottom: 0;
    min-block-size: var(--intro-size, 506px);
    padding-top: calc(var(--navigation-height, 0px) + var(--smallmedium));
    margin-top: 0;
    --intro-frame-inset: var(--medium);
    margin-left: var(--intro-frame-inset);
    margin-right: var(--intro-frame-inset);
}

section.page-intro::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    content: "";
    background: var(--color-primary);
    bottom: auto;
    height: var(--intro-background, 754px);
    min-block-size: 100%;
    pointer-events: none;
}

section.page-intro .page-intro__breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    width: fit-content;
    padding: var(--tiny) var(--extrasmall);
    font-family: Manrope, sans-serif;
    line-height: 1.625;
    gap: var(--tiny);
    margin-bottom: var(--large);
    background: #1c41a9;
}

section.page-intro--feature .page-intro__lead {
    padding-top: var(--mediumlarge);
}

section.page-intro--feature .page-intro__eyebrow {
    margin-bottom: var(--extrasmall);
}

section.page-intro--photo .page-intro__heading h1 {
    margin-top: var(--extrasmall);
}

section.page-intro--short {
    --intro-size: 342px;
    --intro-background: 695px;
    padding-bottom: var(--mediumlarge);
}

section.page-intro--short + :is(section.article--overlap, section.form--overlap, section.themes--overlap, section.cards--overlap) {
    margin-top: 0;
}

section.page-intro--center {
    padding-bottom: var(--mediumlarge);
}

section.page-intro--center .page-intro__lead {
    margin-top: var(--smallmedium);
    max-inline-size: 82.5ch;
}

section.page-intro--center .page-intro__breadcrumbs {
    margin-bottom: var(--largehuge);
}

section.page-intro--text-page h1,
section.page-intro--overview h1 {
    overflow-wrap: anywhere;
}

:is(section.page-intro--without-image, section.page-intro--center:has(+ section.article--group-story)) {
    min-block-size: 0;
    padding-bottom: var(--mediumlarge);
}

:is(section.page-intro--without-image, section.page-intro--center:has(+ section.article--group-story))::before {
    bottom: 0;
    height: 100%;
}

:is(section.page-intro--without-image, section.page-intro--center) + section.article--group-story {
    margin-top: var(--largehuge);
}

:is(section.page-intro--without-image, section.page-intro--center) + section.article--group-story .article__content {
    margin-top: 0;
}

section.page-intro--overview {
    --intro-background: 774px;
}

section.page-intro--photo .page-intro__breadcrumbs {
    margin-bottom: 0;
    max-width: calc(50% - var(--smallmedium));
}

section.page-intro--photo .page-intro__content {
    padding-right: var(--medium);
    max-inline-size: none;
    padding-top: var(--huge);
    padding-bottom: var(--intro-content-bottom, var(--extralarge));
    gap: 0;
}

section.page-intro--spacious {
    --intro-content-bottom: var(--massive);
}

section.page-intro--photo .page-intro__heading {
    margin-bottom: var(--mediumlarge);
}

section.page-intro--photo .page-intro__content > p {
    max-inline-size: 58.9ch;
}

section.page-intro .page-intro__lead {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--small);
    padding-top: var(--tiny);
    max-inline-size: 73.4ch;
    font-weight: 400;
}

section.page-intro .page-intro__eyebrow {
    color: var(--color-secondary);
    font-size: 24px;
    line-height: 1.3333;
    margin-bottom: var(--extrasmall);
    font-weight: 500;
}

section.page-intro--feature {
    --intro-background: 739px;
}

section.page-intro .page-intro__breadcrumbs [aria-current="page"] {
    font-weight: 400;
}

section.page-intro .page-intro__breadcrumbs.page-intro__breadcrumbs--emphasis [aria-current="page"] {
    font-weight: 600;
}

section.page-intro--photo {
    min-block-size: 0;
    padding-bottom: 0;
    margin-inline: 0;
    overflow: hidden;
}

section.page-intro--photo::before {
    height: 100%;
    min-block-size: 0;
    pointer-events: none;
    inset-inline: var(--intro-frame-inset);
}

section.page-intro--photo .page-intro__image {
    position: absolute;
    top: var(--navigation-height, 0px);
    bottom: 0;
    width: calc(50vw - var(--intro-frame-inset));
    height: auto;
    padding-bottom: 0;
    right: var(--intro-frame-inset);
}

section.page-intro .page-intro__buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--extrasmall);
}

/* Article */

section.article .article__aside-panel {
    padding: var(--extralarge);
    background: var(--color-white);
    display: block;
}

section.article .article__aside-panel address {
    font-style: normal;
    overflow-wrap: anywhere;
}

section.article .article__aside-panel .price-table {
    width: auto;
    border-collapse: collapse;
}

section.article .article__aside-panel .price-table th {
    font-weight: 400;
    text-align: left;
}

section.article .article__aside-panel .price-table td {
    padding-left: var(--large);
    white-space: nowrap;
}

section.article .article__aside-panel .opening-hours dd {
    margin: 0 0 var(--extrasmall);
}

section.article .article__aside-panel .link-list {
    display: flex;
    flex-direction: column;
    gap: var(--extrasmall);
    padding-left: var(--small);
}

section.article--story :is(h2, h3, h4, h5, h6) {
    color: var(--color-primary);
}

section.article .article__panel {
    background: var(--color-white);
}

section.article--story .article__image {
    aspect-ratio: 4 / 5;
    overflow: hidden;
}

section.article--panel .article__image :is(img, video) {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

section.article--story .article__image :is(img, video) {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

section.article--story .article__sidebar .article__image {
    aspect-ratio: 4 / 3;
}

section.article .article__header {
    aspect-ratio: 16 / 9;
    position: relative;
    overflow: hidden;
}

section.article .article__header :is(img, video) {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

section.article .price-table {
    width: auto;
    border-collapse: collapse;
}

section.article .price-table th {
    font-weight: 400;
    text-align: left;
}

section.article .price-table td {
    padding-left: var(--large);
    white-space: nowrap;
}

section.article .opening-hours dd {
    margin: 0 0 var(--extrasmall);
}

section.article .link-list {
    display: flex;
    flex-direction: column;
    gap: var(--extrasmall);
    padding-left: var(--small);
}

section.article--balanced .article__image {
    padding-bottom: 75%;
}

section.article--joined {
    margin-top: var(--smallmedium);
}

section.article--story .article__sidebar .article__aside-panel {
    padding: var(--medium);
    gap: var(--extrasmall);
}

section.article--story .article__sidebar .article__aside-panel :is(h2, h3, h4, h5, h6) {
    color: var(--color-primary);
}

section.article--split .article__image :is(img, video) {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

section.article .article__header--panorama {
    aspect-ratio: 16 / 9;
}

section.article--panel .article__image {
    position: relative;
    height: 100%;
    overflow: hidden;
    padding-bottom: 0;
}

section.article--balanced .article__content {
    padding: var(--largehuge);
}

section.article--panel .link-list {
    font-size: 24px;
    line-height: 1.3333333;
    gap: var(--extrasmall);
}

section.article--story .article__sidebar {
    display: flex;
    flex-direction: column;
    margin-top: calc(-1 * var(--massive));
    gap: var(--small);
}

section.article--story .article__content {
    padding-top: 0;
}

section.article--story-inset .article__sidebar {
    position: relative;
    margin-top: calc(-1 * var(--massive));
}

section.article--compact .article__image {
    padding-bottom: 75%;
}

section.article--compact .article__content {
    padding: var(--largehuge) var(--extralarge) var(--medium);
}

section.article--compact .article__content p {
    max-inline-size: 50.1ch;
    line-height: 1.5;
}

section.article .link-list--arrows {
    list-style: none;
    padding-left: 0;
    font-weight: 500;
}

section.article .link-list--arrows .arrow-link {
    gap: var(--small);
}

section.article--story .article__sidebar .article__aside-panel p {
    line-height: 1.5;
}

section.article--story .article__content > .article__buttons {
    margin-top: 0;
}

section.article--story .article__content ul {
    padding-left: var(--small);
}

section.article--split .article__image {
    position: relative;
    height: 100%;
    overflow: hidden;
    padding-bottom: 66.6667%;
}

section.article--story .article__sidebar .article__aside-panel .btn {
    align-self: stretch;
    width: 100%;
    max-inline-size: 41.4ch;
}

section.article--story .article__sidebar .btn--ticket {
    font-size: 16px;
    line-height: 1.5;
    padding-top: var(--tiny);
    padding-bottom: var(--tiny);
}

section.article--story .article__sidebar.article__sidebar--media {
    gap: var(--medium);
}

section.article--story .article__sidebar--media .article__aside-panel {
    padding: var(--medium) var(--medium) var(--smallmedium);
}

section.article--story .article__sidebar--media .article__aside-panel p {
    max-inline-size: 39.2ch;
}

section.article--story .article__sidebar--media .article__aside-panel .btn {
    margin-top: var(--extrasmall);
    width: auto;
}

section.article--panel .article__content {
    background: var(--color-white);
    padding: var(--largehuge) var(--extralarge);
    height: 100%;
    display: block;
}

section.article .article__content > .article__buttons {
    margin-top: 0;
}

section.article--panel .article__content > .article__buttons {
    margin-top: 0;
}

section.article--compact .article__content > .article__buttons {
    margin-top: 0;
}

section.article .article__content > [data-ticket-prices] + .article__buttons {
    margin-top: var(--smallmedium);
}

:is(section.article--story .article__sidebar .article__aside-panel .article__buttons, section.article--story .article__sidebar .article__aside-panel .article__buttons .btn) {
    width: 100%;
    max-inline-size: none;
}

section.article--split .article__content {
    padding-top: 0;
}

section.article--group-story .article__header {
    aspect-ratio: 16 / 9;
}

/* The image belongs to the intro; a following text component keeps the story spacing. */
section.article--intro-image {
    margin-bottom: 0;
}

section.article--intro-image + section.article--group-story {
    margin-top: var(--largehuge);
}

section.article--group-story .article__content {
    max-inline-size: 103.3ch;
    margin-top: var(--largehuge);
    line-height: 1.4;
}

section.article--intro-image + section.article--group-story .article__content,
section.article--group-story.article--text-page .article__content {
    margin-top: 0;
}

:is(section.article--group-story .article__content .article__label, section.article--group-story .article__content > :last-child) {
    margin-bottom: 0;
}

section.article .article__buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--extrasmall);
}

/* Visit-options */

section.visit-options .visit-options__panel {
    padding: var(--extralarge);
    background: var(--color-white);
    height: 100%;
    display: block;
}

section.visit-options .visit-options__panel--hours {
    gap: var(--extrasmall);
    padding: var(--large);
}

section.visit-options .visit-options__panel--yellow {
    --link-arrow-color: var(--color-white);
    height: 100%;
    background: var(--color-secondary);
}

section.visit-options .visit-options__panel address {
    font-style: normal;
    overflow-wrap: anywhere;
}

section.visit-options .visit-options__panel .price-table {
    width: auto;
    border-collapse: collapse;
}

section.visit-options .visit-options__panel .price-table th {
    font-weight: 400;
    text-align: left;
}

section.visit-options .visit-options__panel .price-table td {
    padding-left: var(--large);
    white-space: nowrap;
}

section.visit-options .visit-options__panel .opening-hours dd {
    margin: 0 0 var(--extrasmall);
}

section.visit-options .visit-options__panel .link-list {
    display: flex;
    flex-direction: column;
    gap: var(--extrasmall);
    list-style: none;
    padding-left: 0;
}

section.visit-options .link-list {
    font-size: 24px;
    line-height: 1.333333;
}

section.visit-options .link-list li {
    margin-bottom: 0;
}

section.visit-options .visit-options__buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--extrasmall);
}

/* Form */

section.form .form__panel {
    padding: var(--extralarge);
    background: var(--color-white);
    display: block;
}

section.form .form__panel address {
    font-style: normal;
    overflow-wrap: anywhere;
}

section.form .form__panel .price-table {
    width: auto;
    border-collapse: collapse;
}

section.form .form__panel .price-table th {
    font-weight: 400;
    text-align: left;
}

section.form .form__panel .price-table td {
    padding-left: var(--large);
    white-space: nowrap;
}

section.form .form__panel .opening-hours dd {
    margin: 0 0 var(--extrasmall);
}

section.form .form__panel .link-list {
    display: flex;
    flex-direction: column;
    gap: var(--extrasmall);
    padding-left: var(--small);
}

section.form .form__image {
    aspect-ratio: 4 / 5;
    overflow: hidden;
}

section.form .form__image :is(img, video) {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

section.form .form__panel + .form__panel {
    margin-top: var(--smallmedium);
}

section.form label {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: var(--tiny);
    min-width: 0;
}

section.form .form__fields .btn {
    align-self: flex-start;
}

section.form .form__status:empty {
    display: none;
}

section.form .form__image + .form__panel {
    margin-top: var(--smallmedium);
    margin-left: var(--mediumlarge);
    padding: var(--mediumlarge);
    gap: var(--extrasmall);
}

:is(section.form input, section.form select) {
    width: 100%;
    min-width: 0;
    border: 0;
    border-radius: 0;
    background: #f4f2f1;
    color: var(--color-text);
    font: inherit;
    font-size: 16px;
    padding: var(--smallmedium);
    line-height: 1.4;
}

:is(section.form .form__help, section.form .form__status) {
    font-size: 14px;
}

section.form .form__main > .form__panel {
    padding: var(--largehuge) var(--extralarge);
    gap: var(--small);
}

section.form .form__fields {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: var(--smallmedium);
}

section.form .form__fields label {
    gap: var(--tiny);
    font-size: 18px;
}

section.form textarea {
    width: 100%;
    min-width: 0;
    border: 0;
    border-radius: 0;
    background: #f4f2f1;
    color: var(--color-text);
    font: inherit;
    resize: vertical;
    font-size: 16px;
    padding: var(--smallmedium);
    min-block-size: 201px;
    line-height: 1.4;
}

section.form--donation .form__fields {
    margin-top: var(--smallmedium);
}

section.form--donation .form__fields label {
    gap: 0;
    font-weight: 500;
}

:is(section.form--donation input, section.form--donation select) {
    padding: var(--smallmedium);
    font-size: 16px;
    font-weight: 400;
}

section.form--donation textarea {
    padding: var(--smallmedium);
    font-size: 16px;
    font-weight: 400;
}

:is(section.form--donation input,  section.form--donation textarea)::placeholder {
    color: var(--color-text);
    opacity: 1;
}

section.form .form__main > section.faq {
    margin-top: var(--largehuge);
    margin-bottom: 0;
}

section.form .form__aside > .form__panel {
    margin-top: var(--mediumlarge);
    padding: var(--mediumlarge);
    margin-left: var(--mediumlarge);
}

section.form .form__buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--extrasmall);
}

/* Faq */

section.faq .faq__image {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
}

section.faq .faq__image :is(img, video) {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

section.faq .faq__content > :is(h2, h3, h4, h5, h6) {
    color: var(--color-primary);
}

section.faq .faq__content > p {
    margin-bottom: var(--tiny);
    font-weight: 600;
}

section.faq .faq__filters {
    gap: var(--tiny);
    margin-bottom: 0;
}

section.faq .faq__filters button {
    border: 0;
    padding: var(--extrasmall) var(--small);
    background: var(--color-white);
    font-family: Inter, sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.2;
}

section.faq .faq__filters button[aria-pressed="true"] {
    background: var(--color-primary);
    color: var(--color-white);
}

section.faq details {
    border-bottom: 1px solid var(--color-background);
    background: var(--color-white);
}

section.faq summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--small);
    padding: var(--small) var(--smallmedium);
    font-size: 20px;
    line-height: 1.4;
    font-weight: 500;
    cursor: pointer;
    list-style: none;
}

section.faq summary::-webkit-details-marker {
    display: none;
}

section.faq summary::after {
    content: "\f324" / "";
    font-family: "Font Awesome";
    font-size: 16px;
    line-height: 1;
    flex: 0 0 auto;
    color: var(--color-primary);
    transform: rotate(90deg);
    pointer-events: none;
}

section.faq details[open] summary::after {
    transform: rotate(-90deg);
    pointer-events: none;
}

section.faq details p,
section.faq details dl{
    margin: 0;
    padding: 0 var(--smallmedium) var(--small);
}

section.faq .faq__buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--extrasmall);
}

/* Sponsors */

section.sponsors .sponsor-logo :is(img, video) {
    height: 75px;
    width: auto;
    object-fit: contain;
    object-position: center center;
}

section.sponsors .sponsor-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: var(--mediumlarge) var(--smallmedium);
    background: var(--color-white);
    aspect-ratio: 3 / 2;
}

section.sponsors .sponsors__intro {
    margin-bottom: var(--medium);
}

/* Museum-support */

section.museum-support {
    margin-bottom: 0;
}

section.museum-support .museum-support__panel {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    background: var(--color-white);
    height: 100%;
    padding: var(--mediumlarge) var(--large);
    gap: var(--small);
}

section.museum-support .museum-support__panel > * {
    margin-top: 0;
    margin-bottom: 0;
}

section.museum-support .museum-support__panel--yellow {
    height: 100%;
    background: var(--color-secondary);
    padding: var(--large) var(--extralarge);
}

section.museum-support .museum-support__panel address {
    font-style: normal;
    overflow-wrap: anywhere;
}

section.museum-support .museum-support__panel .price-table {
    width: auto;
    border-collapse: collapse;
}

section.museum-support .museum-support__panel .price-table th {
    font-weight: 400;
    text-align: left;
}

section.museum-support .museum-support__panel .price-table td {
    padding-left: var(--large);
    white-space: nowrap;
}

section.museum-support .museum-support__panel .opening-hours dd {
    margin: 0 0 var(--extrasmall);
}

section.museum-support .museum-support__panel .link-list {
    display: flex;
    flex-direction: column;
    gap: var(--extrasmall);
    padding-left: 0;
    list-style: none;
    font-weight: 500;
}

section.museum-support .museum-support__panel--yellow p {
    max-inline-size: 64.9ch;
}

section.museum-support .link-list {
    font-size: 24px;
    line-height: 1.333333;
}

section.museum-support .museum-support__buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--extrasmall);
}

/* Footer */

footer[data-background] {
    margin: 0;
    padding: var(--huge) 0;
}

section.cards .card .card__footer {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--smallmedium);
    margin-top: auto;
}

section.cards .card.card--featured .card__footer {
    gap: var(--mediumlarge);
}

section.cards .card.card--highlight.card--with-link .card__footer {
    margin-top: 0;
    gap: var(--smallmedium);
}

:is(section.cards .card.card--image.card--with-link .card__content, section.cards .card.card--image.card--with-link .card__footer) {
    gap: var(--extrasmall);
}

:is(section.activities .card.card--image .card__footer, section.activities .card.card--highlight .card__footer) {
    margin-top: 0;
    gap: var(--small);
}

section.cards--page .card:not(.card--featured):not(.card--image):not(.card--highlight) .card__footer {
    margin-top: var(--tiny);
    gap: var(--medium);
}

footer.footer .footer__contact-links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--smallmedium);
}

footer.footer .footer__panel {
    background: var(--color-primary);
}

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

footer.footer .footer__contact {
    display: flex;
    flex-direction: column;
    gap: var(--tiny);
}

footer.footer .footer__socials a {
    display: inline-flex;
    align-items: center;
    gap: var(--tiny);
}

footer.footer .footer__socials a::before {
    font-family: "Font Awesome Brands";
    pointer-events: none;
}

footer.footer .social-link--instagram::before {
    content: "\f16d" / "";
    pointer-events: none;
}

footer.footer .social-link--facebook::before {
    content: "\f39e" / "";
    pointer-events: none;
}

footer.footer .social-link--linkedin::before {
    content: "\f0e1" / "";
    pointer-events: none;
}

footer.footer[data-background] {
    padding: 0 var(--medium) var(--smallmedium);
    color: var(--color-white);
    padding-left: var(--medium);
    padding-right: var(--medium);
}

:is(footer.footer .footer__group, footer.footer .footer__group ul) {
    display: flex;
    flex-direction: column;
    gap: var(--extrasmall);
}

footer.footer .footer__group :is(h2, h3, h4, h5, h6) {
    color: var(--color-secondary);
    font-weight: 700;
}

footer.footer a[aria-current="page"] {
    color: var(--color-secondary);
}

footer.footer .footer__group a {
    font-size: 16px;
    font-weight: 500;
}

footer.footer li {
    margin-bottom: 0;
}

footer.footer .footer__bottom {
    padding: var(--large) 0 var(--smallmedium);
    padding-top: var(--large);
    padding-bottom: var(--mediumlarge);
}

footer.footer .footer__contact > p {
    color: var(--color-secondary);
    font-weight: 700;
    font-size: 20px;
    line-height: 1.2;
}

:is(footer.footer .contact-link--phone, footer.footer .contact-link--email) {
    font-size: 18px;
}

footer.footer .footer__links {
    background: var(--color-dark);
    padding: var(--extralarge) 0 var(--largehuge);
}

footer.footer .footer__legal {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: var(--small);
}

footer.footer .footer__socials {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: var(--smallmedium);
}

footer.footer .footer__meta {
    align-items: baseline;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-top: var(--smallmedium);
    font-size: 16px;
    gap: 0;
    display: block;
}

footer.footer {
    margin-top: var(--extralarge);
}

footer.footer .footer__logo {
    display: block;
    width: 100%;
    max-width: 21.375rem;
    aspect-ratio: 342.001 / 74.3356;
}

footer.footer .footer__logo :is(img, video) {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
}

/* Library overrides */

section.news .slick-list {
    overflow: visible;
}

section.news .slick-track {
    display: flex;
    margin-left: 0;
}

section.news .slick-slide {
    height: auto;
}

section.news .slick-slide > .card {
    height: 100%;
}

section.news .slick-list:focus-visible {
    outline: 3px solid var(--color-primary);
    outline-offset: 5px;
}

section.partners .slick-list {
    overflow: visible;
}

section.partners .slick-track {
    display: flex;
    align-items: center;
}

section.partners .slick-slide {
    width: auto;
}

@media (min-width: 1200px) {
    /* Activities */

    section.activities .card.card--image {
        margin-left: 0;
    }
}

@media (max-width: 1599.98px) {

    :root {
        --font-large: 88px;
    }

    /* Navigation */

    header.navigation .navigation__menu {
        gap: var(--extrasmall);
    }

    header.navigation .navigation__logo {
        width: 100%;
        max-width: 10.625rem;
    }

    header.navigation .navigation__actions .btn {
        padding-left: var(--extrasmall);
        padding-right: var(--extrasmall);
    }

    header.navigation .navigation__bar {
        gap: var(--extrasmall);
        padding: var(--small) var(--smallmedium);
        column-gap: var(--tiny);
    }

    /* News */

    section.news {
        margin-top: var(--extralarge);
    }

    /* Page-intro */
}

@media (max-width: 1399.98px) {
    /* Navigation */

    header.navigation {
        left: var(--extrasmall);
        right: var(--extrasmall);
    }

    header.navigation .navigation__bar {
        padding-left: var(--extrasmall);
        padding-right: var(--extrasmall);
    }

    header.navigation .navigation__logo {
        width: 100%;
        max-width: 11rem;
    }

    header.navigation .navigation__menu {
        gap: var(--tiny);
    }

    header.navigation .navigation__actions .btn {
        padding-left: var(--tiny);
        padding-right: var(--tiny);
    }

    /* Page-intro */

    section.themes--overview {
        margin-inline: var(--extrasmall);
    }

    section.page-intro {
        --intro-frame-inset: var(--extrasmall);
    }

    section.activities--inset {
        margin-inline: var(--extrasmall);
    }
}

@media (max-width: 1199.98px) {

    :root {
        --font-large: 56.995px;
        --font-tagline: 24px;
    }

    /* Document */

    section[data-background] {
        padding: var(--extralarge) 0;
    }

    /* Navigation */

    header.navigation .navigation__bar {
        justify-content: space-between;
        padding: var(--small);
    }

    header.navigation .navigation__logo {
        width: 100%;
        max-width: 12.5rem;
    }

    header.navigation .navigation__visit {
        display: none;
    }

    header.navigation .navigation__overlay {
        position: fixed;
        z-index: 30;
        inset: 0;
        background: rgb(0 0 0 / 0.55);
        opacity: 0;
        transition: opacity var(--motion);
    }

    header.navigation .navigation__overlay.navigation__overlay--open {
        opacity: 1;
    }

    header.navigation .navigation__collapse {
        position: fixed;
        z-index: 31;
        inset: 0 0 0 auto;
        width: 100%;
        margin: 0;
        background: var(--color-dark);
        overflow-x: clip;
        overflow-y: auto;
        overscroll-behavior: contain;
        visibility: hidden;
        transform: translateX(100%);
        transition: transform var(--motion), visibility 0s linear var(--motion);
        max-width: 53ch;
    }

    header.navigation .navigation__collapse.navigation__collapse--open {
        visibility: visible;
        transform: none;
        transition-delay: 0s;
    }

    header.navigation .navigation__panel-header {
        position: relative;
        z-index: 3;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--extrasmall);
        padding: var(--small) var(--smallmedium);
        background: var(--color-primary);
    }

    header.navigation .navigation__panel-header :is(img, video) {
        max-width: 18.8ch;
        width: 100%;
        object-position: center center;
    }

    header.navigation .navigation__close {
        display: flex;
        align-items: center;
        gap: var(--extrasmall);
        padding: 0;
        background: transparent;
    }

    header.navigation .navigation__close::after {
        content: "\f00d" / "";
        pointer-events: none;
    }

    header.navigation .navigation__collapse nav {
        position: relative;
        margin: var(--large) var(--mediumlarge) var(--medium);
    }

    header.navigation .navigation__item {
        position: static;
        justify-content: space-between;
        gap: var(--tiny);
        font-size: 24px;
        line-height: 1.2;
        white-space: normal;
    }

    header.navigation .navigation__submenu-toggle {
        padding: var(--tiny);
        margin-right: calc(-1 * var(--tiny));
        font-size: 14px;
    }

    header.navigation .navigation__submenu-toggle::after {
        content: "\f101" / "";
        pointer-events: none;
    }

    header.navigation .navigation__item.navigation__item--open > .navigation__item-buttons .navigation__submenu-toggle::after {
        transform: none;
        pointer-events: none;
    }

    header.navigation .navigation__submenu {
        inset: calc(-1 * var(--smallmedium)) 0 0;
        width: 100%;
        padding: 0 0 var(--extrasmall);
        background: var(--color-dark);
        overflow: visible;
        gap: var(--small);
        opacity: 1;
        transform: translateX(calc(100% + var(--large)));
        transition: transform var(--motion), visibility 0s linear var(--motion);
    }

    header.navigation .navigation__submenu-back {
        display: block;
    }

    header.navigation .navigation__back-button {
        display: flex;
        align-items: center;
        gap: var(--tiny);
        padding: 0 0;
        background: transparent;
        font-size: 16px;
    }

    header.navigation .navigation__back-button::before {
        content: "\f104" / "";
        color: var(--color-secondary);
        pointer-events: none;
    }

    header.navigation .navigation__panel-extra {
        display: flex;
        flex-direction: column;
        gap: var(--mediumlarge);
        padding: 0 var(--mediumlarge) var(--smallmedium);
    }

    header.navigation .navigation__panel-extra .navigation__buttons {
        flex-direction: column;
    }

    header.navigation .navigation__panel-extra .btn {
        width: 100%;
    }

    header.navigation .navigation__contact {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: var(--tiny);
    }

    header.navigation .navigation__contact :is(h2, h3, h4, h5, h6) {
        color: var(--color-secondary);
    }

    header.navigation .navigation__legal {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    header.navigation .search {
        padding: var(--small);
    }

    :is(header.navigation .search .search__close, header.navigation .navigation__search-toggle) {
        display: none;
    }

    header.navigation .navigation__menu:has(> .navigation__item--open) {
        display: block;
    }

    header.navigation .navigation__menu:has(> .navigation__item--open) > :not(.navigation__item--open) {
        display: none;
    }

    header.navigation .navigation__item.navigation__item--open {
        display: block;
    }

    header.navigation .navigation__item.navigation__item--open > .navigation__submenu {
        transform: none;
        position: relative;
        inset: auto;
        overflow: visible;
        padding: 0;
    }

    header.navigation {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
    }

    header.navigation .navigation__menu {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }

    header.navigation .navigation__actions .btn {
        padding: var(--extrasmall) var(--smallmedium);
        padding-top: var(--extrasmall);
        padding-bottom: var(--extrasmall);
    }

    header.navigation .navigation__toggler {
        display: inline-flex;
        padding-left: var(--small);
        padding-right: var(--small);
        padding-top: var(--extrasmall);
        padding-bottom: var(--extrasmall);
    }

    header.navigation .navigation__item-buttons {
        width: 100%;
        justify-content: space-between;
    }

    header.navigation .navigation__item-buttons > a {
        padding-block: var(--tiny);
    }

    :is(header.navigation .navigation__item.navigation__item--open > .navigation__item-buttons, header.navigation .search > .navigation__buttons:has(.search__close)) {
        display: none;
    }

    header.navigation .search > .navigation__buttons:has(.search__close) {
        display: none;
    }

    /* Hero */

    section.hero .hero__media::after {
        background: linear-gradient(16deg, rgb(0 0 0 / 0.5) 23%, transparent 74%);
        pointer-events: none;
    }

    section.hero .hero__content {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--small);
    }

    section.hero {
        padding: var(--massive) 0 var(--small);
        padding-top: var(--massive);
        padding-bottom: var(--small);
    }

    section.hero .hero__eyebrow {
        margin-bottom: var(--small);
        margin-left: 0;
    }

    section.hero .hero__content > .hero__buttons {
        align-self: flex-start;
        margin: 0;
        margin-top: 0;
    }

    /* Activities */

    section.activities .card.card--featured .card__content {
        padding: var(--smallmedium);
    }

    section.activities--inset {
        margin-inline: 0;
    }

    /* Museum */

    section.museum {
        margin-top: var(--extralarge);
        margin-bottom: var(--extralarge);
    }

    section.museum .museum__body {
        padding-top: 0;
    }

    /* Themes */

    section.themes--overview {
        margin-inline: 0;
    }

    /* Page-intro */

    section.page-intro {
        margin: 0;
        padding-top: var(--smallmedium);
        min-block-size: auto;
        padding-bottom: var(--extralarge);
        --intro-frame-inset: 0;
    }

    section.page-intro::before {
        height: 100%;
        pointer-events: none;
    }

    section.page-intro--photo {
        padding-bottom: 0;
    }

    section.page-intro--photo .page-intro__image {
        top: 0;
        right: 0;
    }

    section.page-intro--spacious {
        --intro-content-bottom: var(--extralarge);
    }

    section.page-intro--photo .page-intro__content {
        padding-right: var(--small);
        padding-top: var(--large);
        padding-bottom: var(--intro-content-bottom, var(--large));
    }

    section.page-intro--feature .page-intro__lead {
        padding-top: 0;
    }

    section.page-intro .page-intro__breadcrumbs {
        margin-bottom: var(--mediumlarge);
    }

    section.page-intro--photo .page-intro__breadcrumbs {
        margin-bottom: 0;
    }

    section.page-intro--photo .page-intro__heading {
        min-block-size: 0;
    }

    /* Article */

    section.article .article__aside-panel {
        padding: var(--mediumlarge);
    }

    section.article--balanced .article__content {
        padding: var(--mediumlarge);
    }

    section.article--panel .article__content {
        padding: var(--smallmedium);
    }

    section.article--story .article__sidebar {
        margin-top: 0;
    }

    /* Visit-options */

    section.visit-options .visit-options__panel {
        padding: var(--mediumlarge);
    }

    section.visit-options .visit-options__panel--hours {
        padding: var(--smallmedium);
    }

    /* Form */

    section.form .form__panel {
        padding: var(--mediumlarge);
    }

    section.form .form__image + .form__panel {
        padding: var(--smallmedium);
        margin-left: 0;
    }

    section.form .form__main > .form__panel {
        padding: var(--smallmedium);
    }

    section.form .form__aside > .form__panel {
        margin-left: var(--small);
        padding: var(--smallmedium);
    }

    /* Museum-support */

    section.museum-support .museum-support__panel {
        padding: var(--mediumlarge);
    }

    :is(section.museum-support .museum-support__panel, section.museum-support .museum-support__panel--yellow) {
        padding: var(--smallmedium);
    }

    /* Footer */

    footer[data-background] {
        padding: var(--extralarge) 0;
    }

    footer.footer .footer__meta {
        display: block;
    }
}

@media (max-width: 991.98px) {
    /* Cards */

    section.cards .card.card--featured .card__content {
        padding: var(--smallmedium);
    }

    /* Page-intro */

    section.page-intro--feature .page-intro__lead {
        padding-top: 0;
    }

    section.page-intro::before {
        bottom: 0;
        pointer-events: none;
    }

    section.page-intro--photo .page-intro__breadcrumbs {
        margin-bottom: var(--smallmedium);
    }

    section.page-intro--photo .page-intro__content > p {
        max-inline-size: none;
    }

    :is(section.page-intro .page-intro__lead, section.page-intro--photo .page-intro__content) {
        max-inline-size: none;
    }

    /* Article */

    section.article--story .article__content {
        padding-top: var(--smallmedium);
    }

    section.article--panel .article__image {
        height: auto;
        padding-bottom: 75%;
    }

    section.article--split .article__image {
        height: auto;
    }

    section.article--story .article__sidebar {
        padding-left: 0;
        margin-top: 0;
    }

    /* Form */

    section.form .form__aside > .form__panel {
        margin-left: 0;
    }

    /* Footer */

    section.cards .card.card--featured .card__footer {
        gap: var(--smallmedium);
    }
}

@media (max-width: 767.98px) {

    :root {
        --font-large: clamp(43px, 12.95341vw, 76px);
        --font-stacked: clamp(76px, 23.521cqw, 177.877px);
    }

    /* Document */

    section[data-background] {
        padding: var(--mediumlarge) 0;
    }

    /* Shared elements */

    .section-intro {
        margin-bottom: var(--smallmedium);
    }

    /* Navigation */

    header.navigation .navigation__top {
        display: none;
    }

    header.navigation .navigation__language-picker {
        align-self: flex-start;
    }

    header.navigation .navigation__language-picker ul {
        position: static;
    }

    header.navigation .search {
        gap: var(--tiny);
    }

    header.navigation .search .search__submit {
        padding: var(--extrasmall);
    }

    header.navigation .navigation__ticket span {
        display: none;
    }

    :is(header.navigation .navigation__actions .btn, header.navigation .navigation__toggler) {
        padding-left: var(--small);
        padding-right: var(--small);
        width: auto;
        max-width: none;
    }

    header.navigation .navigation__logo {
        width: 100%;
        max-width: 12.5rem;
    }

    /* Hero */

    section.hero .hero__media :is(img, video) {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-position: center center;
    }

    section.hero .hero__media::after {
        display: block;
        pointer-events: none;
    }

    section.hero {
        margin: 0;
        min-height: 0;
        height: calc(100svh - var(--navigation-height, 0px));
        padding-block: var(--small);
    }

    /* Themes */

    section.themes {
        margin-block: var(--medium) var(--largehuge);
    }

    section.themes .themes__header {
        margin-bottom: var(--smallmedium);
    }

    section.themes .themes__content {
        padding-top: 0;
        gap: var(--extrasmall);
    }

    section.themes .theme__image {
        aspect-ratio: 4 / 3;
    }

    section.themes .theme__content {
        bottom: var(--tiny);
    }

    /* Cards */

    section.cards .card.card--featured .card__content {
        padding: var(--smallmedium) var(--small);
    }

    section.cards .card.card--image {
        aspect-ratio: 4 / 5;
    }

    section.cards .card.card--image .card__content {
        padding: var(--small);
    }

    :is(section.cards .card.card--highlight .card__image, section.cards .card.card--highlight .card__media) {
        aspect-ratio: 4 / 3;
    }

    section.cards .card.card--highlight .card__content {
        padding: var(--small);
        padding-top: var(--smallmedium);
        padding-bottom: var(--smallmedium);
    }

    section.cards--page.activities .card.card--featured .card__content {
        gap: var(--mediumlarge);
    }

    /* Activities */

    section.activities .activities__header {
        margin-bottom: var(--smallmedium);
    }

    section.activities .activities__content {
        gap: var(--extrasmall);
    }

    section.activities .card.card--image .text-link {
        display: inline-flex;
    }

    section.activities .activities__header .activities__content {
        padding-top: 0;
        gap: var(--extrasmall);
    }

    section.activities .activities__header .activities__content .btn {
        margin-top: 0;
    }

    section.activities .card.card--image .card__content {
        padding: var(--smallmedium) var(--small);
        padding-top: var(--massive);
        gap: var(--small);
    }

    section.activities .card.card--image .text-link::after {
        color: var(--color-secondary);
        pointer-events: none;
    }

    section.activities .card.card--highlight .text-link {
        display: inline-flex;
        margin-top: var(--small);
        color: var(--color-text);
    }

    section.activities .card.card--image .card__buttons {
        display: flex;
    }

    section.activities .card.card--highlight .card__buttons {
        display: flex;
    }

    section.activities .card.card--featured .card__content {
        padding: var(--smallmedium) var(--small);
        gap: var(--huge);
    }

    section.activities .card.card--highlight .card__content {
        gap: var(--tiny);
        padding: var(--smallmedium) var(--small);
    }

    section.activities--events {
        padding: var(--mediumlarge) 0;
        background: var(--color-primary);
    }

    section.activities .card.card--featured .card__footer {
        gap: var(--mediumlarge);
    }

    :is(section.activities .card.card--highlight .card__image, section.activities .card.card--highlight .card__media) {
        aspect-ratio: 4 / 3;
    }

    :is(section.activities .card.card--image .card__image,  section.activities .card.card--image .card__media)::after {
        background: linear-gradient( to top, rgb(0 0 0 / 0.5) 7.491%, transparent 58.537% );
        pointer-events: none;
    }

    /* Museum */

    section.museum .museum__media--landscape {
        order: -1;
    }

    section.museum .museum__body {
        container-type: inline-size;
    }

    section.museum .museum__media-stack {
        gap: var(--extrasmall);
    }

    section.museum .museum__content {
        gap: var(--mediumlarge);
        row-gap: var(--medium);
    }

    section.museum .large {
        order: -1;
        margin-bottom: var(--tiny);
    }

    section.museum .btn--ticket {
        min-inline-size: 17.3ch;
    }

    section.museum {
        margin-bottom: var(--extralarge);
        margin-top: var(--largehuge);
    }

    /* News */

    section.news .news__header {
        align-items: flex-start;
    }

    /* Page-intro */

    section.page-intro--photo {
        padding-bottom: 0;
    }

    section.page-intro .page-intro__content {
        padding: 0;
        gap: var(--smallmedium);
    }

    section.page-intro .page-intro__breadcrumbs {
        margin-bottom: var(--smallmedium);
    }

    section.page-intro--spacious {
        --intro-content-bottom: var(--large);
    }

    section.page-intro--photo .page-intro__content {
        padding-right: 0;
        gap: var(--smallmedium);
        padding-top: var(--smallmedium);
        padding-bottom: var(--intro-content-bottom, var(--smallmedium));
    }

    section.page-intro--feature .page-intro__breadcrumbs {
        margin-bottom: var(--smallmedium);
    }

    section.page-intro--short + :is(section.article--overlap, section.form--overlap, section.themes--overlap, section.cards--overlap) {
        margin-top: calc(var(--mediumlarge) * -1);
    }

    section.page-intro {
        padding: var(--smallmedium) 0 var(--extralarge);
        padding-left: 0;
        padding-right: 0;
        margin: 0;
    }

    section.page-intro--photo .page-intro__image {
        position: relative;
        top: auto;
        right: auto;
        bottom: auto;
        width: 100%;
        height: auto;
        aspect-ratio: 4 / 3;
        padding-bottom: 0;
    }

    section.page-intro--photo .page-intro__breadcrumbs {
        max-width: 100%;
        margin-bottom: var(--smallmedium);
    }

    :is(section.article--overlap, section.form--overlap, section.themes--overlap, section.cards--overlap) {
        margin-top: calc(var(--mediumlarge) * -1);
    }

    :is(section.page-intro--overview + :is(section.article--overlap, section.form--overlap, section.themes--overlap, section.cards--overlap), section.page-intro--feature + :is(section.article--overlap, section.form--overlap, section.themes--overlap, section.cards--overlap)) {
        margin-top: var(--mediumlarge);
    }

    /* Article */

    section.article .article__aside-panel {
        padding: var(--smallmedium);
    }

    section.article--story .article__sidebar {
        margin-top: 0;
    }

    section.article--story .article__content {
        padding-top: var(--smallmedium);
    }

    :is(section.article--panel .article__content, section.article--balanced .article__content) {
        padding: var(--smallmedium);
    }

    section.article--joined {
        margin-top: var(--smallmedium);
    }

    section.article--split .article__content {
        padding-top: 0;
    }

    section.article--group-story .article__content {
        margin-top: var(--mediumlarge);
    }

    /* Visit-options */

    section.visit-options .visit-options__panel {
        padding: var(--smallmedium);
    }

    /* Form */

    section.form .form__panel {
        padding: var(--smallmedium);
    }

    section.form .form__main > section.faq {
        margin-top: var(--mediumlarge);
    }

    /* Faq */

    section.faq summary {
        padding: var(--extrasmall);
        gap: var(--extrasmall);
    }

    section.faq details p {
        padding: 0 var(--extrasmall) var(--small);
    }

    section.faq .faq__filters button {
        padding: var(--tiny);
    }

    /* Museum-support */

    section.museum-support .museum-support__panel {
        padding: var(--smallmedium);
    }

    /* Footer */

    footer[data-background] {
        padding: var(--mediumlarge) 0;
    }

    section.cards .card.card--featured .card__footer {
        gap: var(--small);
    }

    section.cards--page.activities .card.card--featured .card__footer {
        gap: var(--smallmedium);
    }

    :is(footer.footer .footer__links, footer.footer .footer__bottom) {
        padding: var(--mediumlarge) 0;
    }

    :is(footer.footer .footer__meta, footer.footer .footer__legal) {
        align-items: flex-start;
        flex-direction: column;
    }

    footer.footer[data-background] {
        padding: 0;
        padding-left: 0;
        padding-right: 0;
    }
}

@media (max-width: 399.98px) {
    /* Navigation */

    header.navigation .navigation__logo {
        width: 100%;
        max-width: 11rem;
    }

    header.navigation .navigation__panel-header {
        padding-left: var(--small);
        padding-right: var(--small);
    }
}

@media (hover: hover) and (pointer: fine) {
    /* Shared elements */

    .btn:hover {
        background: #e7ac0a;
    }

    .btn--blue:hover {
        background: var(--color-ink);
    }

    .btn--white:hover {
        background: #dce4fa;
    }

    :is(.btn:hover,  .text-link:hover)::after {
        transform: translateX(3px);
        pointer-events: none;
    }

    /* Navigation */

    header.navigation a:not(.btn):hover {
        color: var(--color-secondary);
    }

    /* Themes */

    section.themes .theme__link:hover .theme__image :is(img, video) {
        transform: scale(1.04);
        object-position: center center;
    }

    /* Cards */

    section.cards .card:hover .card__image :is(img, video) {
        transform: scale(1.04);
        object-position: center center;
    }

    section.cards .card:hover .card__media :is(img, video) {
        transform: scale(1.04);
        object-position: center center;
    }

    /* Footer */

    footer.footer a:hover {
        color: var(--color-secondary);
    }
}

@media (prefers-reduced-motion: reduce) {
    /* Document */

    html {
        scroll-behavior: auto;
    }

    * {
        transition-duration: 0s !important;
        transition-delay: 0s !important;
        animation-duration: 0s !important;
    }

    *::before,  *::after {
        transition-duration: 0s !important;
        transition-delay: 0s !important;
        animation-duration: 0s !important;
        pointer-events: none;
    }

    /* Shared elements */

    :is(.btn:hover,  .btn:focus-visible)::after {
        transform: none;
        pointer-events: none;
    }

    :is(.text-link:hover,  .text-link:focus-visible)::after {
        transform: none;
        pointer-events: none;
    }

    /* Themes */

    section.themes .theme__image :is(img, video) {
        transition: none;
        transform: none;
        object-position: center center;
    }

    /* Cards */

    section.cards .card:hover .card__image :is(img, video) {
        transform: none;
        object-position: center center;
    }

    section.cards .card:hover .card__media :is(img, video) {
        transform: none;
        object-position: center center;
    }

    section.cards .card:focus-within .card__image :is(img, video) {
        transform: none;
        object-position: center center;
    }

    section.cards .card:focus-within .card__media :is(img, video) {
        transform: none;
        object-position: center center;
    }
}

/* Gravity Forms uses the supplied form layout and spacing. */
.contact-form .gform_fields {
    display: flex;
    flex-wrap: wrap;
    gap: var(--smallmedium) 0;
    margin: 0 calc(var(--smallmedium) / -2);
}
.contact-form .gfield {
    width: 100%;
    padding: 0 calc(var(--smallmedium) / 2);
}
.contact-form .gfield_label {
    display: block;
    margin-bottom: var(--extrasmall);
}
.contact-form .gfield_required {
    display: inline;
    margin-left: .25em;
    font-size: .8em;
}
.contact-form .gform_validation_container,
.contact-form .gfield_visibility_hidden {
    display: none !important;
}
.contact-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.contact-form textarea,
.contact-form select {
    width: 100%;
    padding: var(--smallmedium);
    border: 0;
    border-radius: 0;
    background: var(--color-light, #f3f1f0);
    color: inherit;
    font: inherit;
}
.contact-form input[type="checkbox"],
.contact-form input[type="radio"] {
    width: auto;
    margin-right: .5em;
}
.contact-form .gform_footer {
    margin-top: var(--smallmedium);
}
/* .contact-form input[type="submit"] {
    display: inline-block;
    width: auto;
    padding: var(--extrasmall) var(--smallmedium);
    color: var(--color-primary);
    background: var(--color-secondary, #ffca05);
    border: 0;
    cursor: pointer;
    font: inherit;
} */
.contact-form .gfield_validation_message {
    margin-top: var(--extrasmall);
    color: #a32222;
}
.contact-form .gfield_error input,
.contact-form .gfield_error textarea {
    outline: 2px solid #a32222;
}
.contact-form .gform_ajax_spinner {
    width: 24px;
    height: 24px;
}
@media (min-width: 768px) {
    .contact-form .smg-field-half { width: 50%; }
}


/* Editor-selected backgrounds for image/text content panels. */
[data-image-text-background="none"] { background: transparent !important; }
[data-image-text-background="white"] { background: var(--color-white) !important; color: var(--color-text); }
[data-image-text-background="yellow"] { background: var(--color-secondary) !important; color: var(--color-ink); }
[data-image-text-background="blue"] { background: var(--color-primary) !important; color: var(--color-white); }
[data-image-text-background="blue"] .text-primary,
[data-image-text-background="blue"] a:not(.btn) { color: inherit; }
[data-image-text-background="blue"] .btn--blue { background: var(--color-white); color: var(--color-primary); }
[data-image-text-background="yellow"] .btn:not(.btn--white) { background: var(--color-primary); color: var(--color-white); }
[data-image-text-background="yellow"] .btn.btn--blue { background: var(--color-white); color: var(--color-primary); }

/* Colored text panels need an inset; uncolored content retains its reading width. */
.article__content--panel { padding: var(--mediumlarge); }

/* Optional actions below a card grid. */
.cards__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--extrasmall);
    margin-top: var(--smallmedium);
}

/* Section joins follow the actual rendered neighbours, including reusable blocks. */
section:is(.article--panel, .cards--page, .themes--overview, .form--overlap) {
    margin-top: var(--extralarge);
}
section.page-intro + section:is(.article--panel, .cards--page, .themes--overview, .form--overlap) {
    margin-top: 0;
}
section.page-intro--short + section:is(.article--panel, .cards--page, .themes--overview, .form--overlap) {
    margin-top: calc(-1 * var(--mediumlarge));
}
section.article:has(.article__header--panorama) + section.article--story .article__sidebar {
    position: relative;
    margin-top: calc(-1 * var(--massive));
}
section.article:has(.article__header--panorama) + section.article--story > .container > .row {
    --gutters-x: var(--small);
    --gutters-y: var(--small);
}
