/*
Theme Name: EST
Theme URI: https://www.restaurant-est.be
Author: LANES
Author URI: https://www.lanes.be
Description: Minimalistisch maatwerkthema voor Restaurant EST, Leuven. Gemaakt voor meertaligheid met Polylang (NL / FR / EN).
Version: 1.3.2
Requires at least: 6.6
Requires PHP: 8.0
Text Domain: est
License: Proprietary
*/

/* ==========================================================================
   Tokens
   ========================================================================== */

:root {
	--bg: #f2f1ec;
	--bg-bar: #fafaf8;
	--ink: #1c1c1c;
	--ink-soft: #4a4946;
	--muted: #8f8e89;
	--line: rgba(28, 28, 28, 0.1);
	--white: #ffffff;

	--serif: "Playfair Display", "Times New Roman", serif;
	--sans: "Fahkwang", "Helvetica Neue", Arial, sans-serif;

	--gutter: clamp(20px, 4vw, 64px);
	--maxw: 1500px;
	--section: clamp(104px, 13vw, 220px);
	--ease: cubic-bezier(0.22, 0.61, 0.36, 1);

	--fs-body: 12px;
	--fs-small: 11px;
	--fs-label: 10px;
	--fs-title: clamp(17px, 1.25vw, 20px);
	--fs-statement: clamp(18px, 1.6vw, 25px);
	--fs-hero: clamp(18px, 1.45vw, 23px);
	--track-label: 0;
}

/* ==========================================================================
   Base
   ========================================================================== */

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

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--sans);
	font-size: var(--fs-body);
	line-height: 2;
	letter-spacing: 0;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

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

img {
	height: auto;
}

a {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.25em;
	text-decoration-color: var(--line);
	transition: text-decoration-color 0.3s var(--ease), opacity 0.3s var(--ease);
}

a:hover {
	text-decoration-color: currentColor;
}

:focus-visible {
	outline: 1px solid var(--ink);
	outline-offset: 4px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--serif);
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.45;
	margin: 0 0 1em;
}

p {
	margin: 0 0 1.4em;
}

strong,
b {
	font-weight: 700;
	color: var(--ink);
}

em {
	font-style: italic;
}

/* De schreefletter (Playfair) staat nooit cursief. */
h1 em,
h2 em,
h3 em,
h4 em,
.est-menu em,
.est-price em,
.est-hero em,
.est-bg-text em,
.est-statement em,
.wp-block-column > p > em:only-child {
	font-style: normal;
}

::selection {
	background: var(--ink);
	color: var(--bg);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.skip-link:focus {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 1000;
	width: auto;
	height: auto;
	clip: auto;
	padding: 10px 16px;
	background: var(--ink);
	color: var(--bg);
}

/* ==========================================================================
   Announcement bar
   ========================================================================== */

.announcement {
	position: relative;
	background: var(--bg-bar);
	border-bottom: 1px solid var(--line);
	font-size: 10px;
	line-height: 1.9;
	letter-spacing: 0;
	color: var(--ink-soft);
	text-align: center;
	padding: 10px calc(var(--gutter) + 32px);
}

.announcement p {
	margin: 0;
	max-width: 760px;
	margin-inline: auto;
}

.announcement__close {
	position: absolute;
	top: 50%;
	right: var(--gutter);
	transform: translateY(-50%);
	width: 32px;
	height: 32px;
	border: 0;
	background: none;
	cursor: pointer;
	color: var(--ink);
	opacity: 0.55;
	transition: opacity 0.3s var(--ease);
}

.announcement__close:hover {
	opacity: 1;
}

.announcement__close::before,
.announcement__close::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 1px;
	background: currentColor;
}

.announcement__close::before {
	transform: translate(-50%, -50%) rotate(45deg);
}

.announcement__close::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.announcement[hidden] {
	display: none;
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	transition: background-color 0.4s var(--ease), box-shadow 0.4s var(--ease);
}

.admin-bar .site-header {
	top: 32px;
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	max-width: var(--maxw);
	margin-inline: auto;
	padding: 32px var(--gutter);
	transition: padding 0.4s var(--ease);
}

.site-header.is-scrolled {
	background: rgba(242, 241, 236, 0.86);
	-webkit-backdrop-filter: blur(14px) saturate(1.2);
	backdrop-filter: blur(14px) saturate(1.2);
	box-shadow: 0 1px 0 var(--line);
}

.site-header.is-scrolled .site-header__inner {
	padding-block: 12px;
}

.site-logo {
	display: block;
	flex: none;
	text-decoration: none;
}

.site-logo img {
	height: 58px;
	width: auto;
	transition: height 0.4s var(--ease);
}

.site-header.is-scrolled .site-logo img {
	height: 38px;
}

.site-nav {
	display: flex;
	align-items: center;
	gap: clamp(20px, 3vw, 48px);
}

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

.site-nav .menu {
	display: flex;
	gap: clamp(20px, 2.8vw, 44px);
}

.site-nav .menu a,
.lang-switch a {
	position: relative;
	display: inline-block;
	font-size: var(--fs-label);
	letter-spacing: 0;
	text-transform: uppercase;
	text-decoration: none;
	padding-block: 4px;
}

.site-nav .menu a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.45s var(--ease);
}

.site-nav .menu a:hover::after,
.site-nav .menu .current-menu-item > a::after,
.site-nav .menu .current_page_item > a::after {
	transform: scaleX(1);
	transform-origin: left;
}

.lang-switch {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0 0 0 clamp(18px, 2.4vw, 36px);
	gap: 14px;
	border-left: 1px solid var(--line);
}

.lang-switch a {
	color: var(--muted);
	font-size: 9.5px;
}

.lang-switch a:hover,
.lang-switch .is-current a {
	color: var(--ink);
}

/* Burger */
.menu-toggle {
	display: none;
	position: relative;
	z-index: 60;
	width: 44px;
	height: 44px;
	margin-right: -10px;
	border: 0;
	background: none;
	cursor: pointer;
	color: var(--ink);
}

.menu-toggle span {
	position: absolute;
	left: 11px;
	right: 11px;
	height: 1px;
	background: currentColor;
	transition: transform 0.45s var(--ease), top 0.45s var(--ease);
}

.menu-toggle span:first-child {
	top: 18px;
}

.menu-toggle span:last-child {
	top: 25px;
}

.menu-open .menu-toggle span:first-child {
	top: 22px;
	transform: rotate(45deg);
}

.menu-open .menu-toggle span:last-child {
	top: 22px;
	transform: rotate(-45deg);
}

@media (max-width: 960px) {
	.menu-toggle {
		display: block;
	}

	.site-logo img {
		height: 46px;
	}

	.site-header.is-scrolled .site-logo img {
		height: 34px;
	}

	.site-nav {
		position: fixed;
		inset: 0;
		z-index: 55;
		flex-direction: column;
		justify-content: center;
		gap: 48px;
		padding: 96px var(--gutter) 48px;
		background: var(--bg);
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.45s var(--ease), visibility 0s linear 0.45s;
	}

	.menu-open .site-nav {
		opacity: 1;
		visibility: visible;
		transition: opacity 0.45s var(--ease), visibility 0s;
	}

	.menu-open {
		overflow: hidden;
	}

	.site-nav .menu {
		flex-direction: column;
		align-items: center;
		gap: 14px;
	}

	.site-nav .menu a {
		font-family: var(--serif);
		font-size: 24px;
		letter-spacing: 0;
		text-transform: none;
	}

	.lang-switch {
		border-left: 0;
		padding: 0;
		gap: 22px;
	}

	.lang-switch a {
		font-size: 10px;
	}
}

/* ==========================================================================
   Layout
   ========================================================================== */

.site-main {
	padding-bottom: var(--section);
}

/* Eindigt de pagina met een beeld over de volle breedte, dan sluit de footer er meteen op aan. */
.site-main:has(.entry > .alignfull:last-child) {
	padding-bottom: 0;
}

.site-main:has(.entry > .alignfull:last-child) + .site-footer {
	border-top: 0;
}

.entry > * {
	max-width: var(--maxw);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.entry > * + * {
	margin-top: var(--section);
}

.entry > .alignfull {
	max-width: none;
	padding-inline: 0;
}

.entry > :first-child:not(.est-hero):not(.est-statement) {
	margin-top: clamp(32px, 6vw, 96px);
}

/* Section title (de grijze Playfair-titels) */
.entry h4,
.est-title {
	font-family: var(--serif);
	font-size: var(--fs-title);
	font-style: normal;
	letter-spacing: 0;
	color: var(--ink-soft);
	margin-bottom: 1.6em;
}

/* Fijn lijntje onder sectietitels */
.entry h4::after {
	content: "";
	display: block;
	width: 28px;
	height: 1px;
	margin-top: 1.1em;
	background: currentColor;
	opacity: 0.35;
}

.entry h1 {
	font-size: var(--fs-hero);
}

.entry h2 {
	font-size: clamp(18px, 1.5vw, 22px);
}

.entry h3 {
	font-size: 15px;
}

/* Kleine label boven een tekst ("Restaurant EST") */
.est-eyebrow {
	font-size: var(--fs-label);
	letter-spacing: 0;
	text-transform: uppercase;
	margin-bottom: 2.4em;
	color: var(--ink);
}

/* ==========================================================================
   Blocks — base resets
   ========================================================================== */

.wp-block-image {
	margin: 0;
}

.wp-block-image img {
	width: 100%;
}

.wp-block-columns {
	display: flex;
	gap: clamp(20px, 5vw, 96px);
	margin-bottom: 0;
}

.wp-block-column {
	min-width: 0;
	flex: 1 1 0;
}

.wp-block-column > :last-child {
	margin-bottom: 0;
}

.wp-block-columns.are-vertically-aligned-center {
	align-items: center;
}

.wp-block-column.is-vertically-aligned-center {
	align-self: center;
}

@media (max-width: 781px) {
	.wp-block-columns {
		flex-direction: column;
		gap: 40px;
	}

	.wp-block-column {
		flex-basis: auto !important;
		width: 100%;
	}
}

/* ==========================================================================
   Patterns
   ========================================================================== */

/* Hero — beeld met overlay en gecentreerde Playfair-tekst */
.est-hero.wp-block-cover {
	min-height: min(86vh, 900px) !important;
	padding: var(--gutter);
	margin-inline: var(--gutter);
	max-width: calc(var(--maxw) - var(--gutter) * 2);
	overflow: hidden;
}

@media (min-width: 1580px) {
	.est-hero.wp-block-cover {
		margin-inline: auto;
	}
}

.est-hero .wp-block-cover__inner-container {
	max-width: min(460px, 100%);
	margin-inline: auto;
	text-align: center;
	color: var(--white);
}

.est-hero h1,
.est-hero p {
	font-family: var(--serif);
	font-size: var(--fs-hero);
	line-height: 1.65;
	letter-spacing: 0;
	color: var(--white);
	margin: 0;
}

.est-hero .wp-block-cover__image-background {
	transform: scale(1.04);
	transition: transform 2.4s var(--ease);
}

.est-hero.is-visible .wp-block-cover__image-background,
.no-reveal .est-hero .wp-block-cover__image-background {
	transform: scale(1);
}

/* Statement — gecentreerde grijze Playfair-zin */
.est-statement {
	padding-block: clamp(56px, 6vw, 96px) clamp(48px, 5vw, 80px) !important;
	text-align: center;
}

.entry > .est-statement {
	margin-top: 0;
}

.entry > .est-statement + * {
	margin-top: 0;
}

.est-statement h1,
.est-statement h2,
.est-statement h4,
.est-statement p {
	font-family: var(--serif);
	font-size: var(--fs-statement);
	font-style: normal;
	color: var(--muted);
	max-width: 24ch;
	margin: 0 auto;
	line-height: 1.6;
	letter-spacing: 0;
}

.est-statement h4::after {
	margin-inline: auto;
	margin-top: 1.8em;
}

/* Split — beeld(en) + tekst */
.est-split {
	align-items: center;
}

.est-split .wp-block-image img,
.est-duo .wp-block-image img {
	aspect-ratio: 2 / 3;
	object-fit: cover;
}

.est-split__text {
	max-width: 400px;
}

.est-split__text--wide {
	max-width: 480px;
}

/* Duo — twee verspringende beelden + tekst (home, over ons) */
.est-duo {
	align-items: center;
}

.est-duo .est-offset {
	padding-top: clamp(40px, 12vw, 180px);
}

.est-duo .est-raise {
	padding-bottom: clamp(40px, 12vw, 180px);
}

@media (max-width: 781px) {
	.est-duo {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 12px;
	}

	.est-duo > .wp-block-column:last-child {
		grid-column: 1 / -1;
		margin-top: 40px;
	}

	.est-duo .est-offset {
		padding-top: 56px;
	}

	.est-duo .est-raise {
		padding-bottom: 56px;
	}
}

/* Full-bleed beeld */
.est-fullbleed.wp-block-cover {
	min-height: min(88vh, 960px) !important;
	padding: 0;
}

.est-fullbleed .wp-block-cover__inner-container {
	display: none;
}

/* Beeld met tekst eroverheen, over de volle breedte */
.est-bg-text.wp-block-cover {
	min-height: min(110vh, 1100px) !important;
	padding: var(--section) var(--gutter);
}

.est-bg-text .wp-block-cover__inner-container {
	max-width: 520px;
	margin-inline: auto;
	text-align: center;
	color: var(--white);
}

.est-bg-text p {
	font-family: var(--serif);
	font-size: clamp(15px, 1.15vw, 18px);
	line-height: 1.85;
	letter-spacing: 0;
	color: var(--white);
}

.est-bg-text p:last-child {
	margin-bottom: 0;
}

/* Menukaart — één smalle, gecentreerde kolom. Enkel typografie en witruimte. */
/* Links een foto die blijft staan (wisselt per menu), rechts de kaart */
.est-menus {
	align-items: flex-start;
}

.est-menus > .wp-block-column:last-child {
	text-align: center;
}

.est-menus > .wp-block-column:last-child > * {
	max-width: 480px;
	margin-inline: auto;
}

.est-menus .est-menu-photo img {
	aspect-ratio: 2 / 3;
	object-fit: cover;
}

.has-menu-tabs .est-menu-photo:not(.is-active) {
	display: none;
}

.has-menu-tabs .est-menu-photo.is-active {
	animation: est-fade 1s var(--ease);
}

.est-menus .est-menu-photo + .est-menu-photo {
	margin-top: 10px;
}

@media (min-width: 782px) {
	.est-menus .est-sticky {
		top: 120px;
	}

	.est-menus .est-sticky .est-menu-photo img {
		max-height: calc(100vh - 160px);
		width: 100%;
	}
}

@media (max-width: 781px) {
	.est-menus .est-menu-photo img {
		aspect-ratio: 4 / 5;
	}
}

/* Keuze tussen de menu's */
.est-menu-nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px clamp(28px, 4vw, 56px);
	margin-bottom: clamp(72px, 8vw, 120px);
}

.est-menu-nav p {
	margin: 0;
}

.est-menu-nav a {
	font-family: var(--serif);
	font-size: 15px;
	color: var(--muted);
	text-decoration: none;
	transition: color 0.4s var(--ease);
}

.est-menu-nav a:hover,
.est-menu-nav a[aria-current="true"] {
	color: var(--ink);
}

/* Eén menu */
.est-menu {
	font-size: var(--fs-small);
	line-height: 1.9;
}

.est-menu .est-menu-title {
	font-family: var(--serif);
	font-size: clamp(24px, 2.2vw, 32px);
	color: var(--ink);
	margin: 0 0 0.9em;
}

.est-menu .est-menu-title::after {
	display: none;
}

.est-menu .est-menu-sub,
.est-menu .est-menu-title + .est-note {
	font-size: var(--fs-small);
	color: var(--muted);
	margin: 0 auto clamp(64px, 7vw, 96px);
	max-width: 340px;
}

/* Gerecht: naam in Playfair, ingrediënten klein en licht eronder */
.est-menu p:not(.est-menu-sub):not(.est-note):not(.est-course):not(.est-price) {
	font-size: var(--fs-small);
	line-height: 1.9;
	color: var(--muted);
	margin: 0 0 clamp(36px, 3.6vw, 48px);
}

.est-menu p:not(.est-menu-sub):not(.est-note):not(.est-course):not(.est-price)::first-line {
	font-family: var(--serif);
	font-size: 17px;
	line-height: 2.2;
	color: var(--ink);
}

.est-menu em {
	font-style: normal;
	color: var(--muted);
}

/* Gang (à la carte) */
.est-menu .est-course {
	font-size: var(--fs-label);
	text-transform: uppercase;
	color: var(--muted);
	margin: clamp(72px, 8vw, 112px) 0 clamp(36px, 3.6vw, 48px);
}

.est-menu .est-menu-sub + .est-course,
.est-menu .est-note + .est-course {
	margin-top: 0;
}

.est-menu .est-note {
	font-size: var(--fs-small);
	color: var(--muted);
	margin: 0 0 2em;
}

/* Prijzen: ingetogen, enkel witruimte als scheiding */
.est-price-box {
	margin: clamp(72px, 8vw, 112px) 0 clamp(40px, 4vw, 56px);
}

.est-menu .est-price {
	font-size: var(--fs-small);
	line-height: 1.9;
	color: var(--muted);
	margin: 0 0 2.4em;
}

.est-menu .est-price strong {
	font-weight: 400;
	color: var(--ink);
}

.est-price-box > :last-child {
	margin-bottom: 0 !important;
}

/* Met JS: één menu tegelijk. Zonder JS staan ze gewoon onder elkaar. */
.est-menus .est-menu-panel + .est-menu-panel {
	margin-top: var(--section);
}

.has-menu-tabs .est-menu-panel:not(.is-active) {
	display: none;
}

.has-menu-tabs .est-menu-panel + .est-menu-panel {
	margin-top: 0;
}

.has-menu-tabs .est-menu-panel.is-active {
	animation: est-fade 0.8s var(--ease);
}

@keyframes est-fade {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

/* Tekstlink in kapitalen met fijn lijntje */
.est-link a {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font-size: var(--fs-label);
	letter-spacing: 0;
	text-transform: uppercase;
	text-decoration: none;
}

.est-link a::after {
	content: "";
	width: 32px;
	height: 1px;
	background: currentColor;
	transition: width 0.45s var(--ease);
}

.est-link a:hover::after {
	width: 56px;
}

.est-link {
	margin-top: 2.6em;
}

/* Korte toelichting in cursief (bv. bij À la carte) */
.wp-block-column > p > em:only-child {
	font-family: var(--serif);
	font-size: 13px;
	letter-spacing: 0;
	color: var(--muted);
}

.wp-block-column > p + .wp-block-image {
	margin-top: 2.6em;
}

.est-duo .wp-block-column:last-child > * {
	max-width: 340px;
}

/* Kolom die blijft staan tijdens het scrollen (desktop) */
@media (min-width: 782px) {
	.est-sticky {
		position: sticky;
		top: 140px;
		align-self: flex-start;
	}
}

/* Lijst (palmares) */
.est-list p {
	padding: 0.95em 0;
	margin: 0;
	border-bottom: 1px solid var(--line);
	font-size: var(--fs-small);
}

.est-list p:first-child {
	border-top: 1px solid var(--line);
}

/* Galerij (sfeer) — masonry */
.wp-block-gallery.est-masonry {
	display: block !important;
	columns: 3 260px;
	column-gap: 10px;
}

.wp-block-gallery.est-masonry > .wp-block-image {
	display: block !important;
	width: 100% !important;
	margin: 0 0 10px !important;
	break-inside: avoid;
	overflow: hidden;
}

.wp-block-gallery.est-masonry img {
	height: auto !important;
	object-fit: initial !important;
	transition: transform 1.2s var(--ease), opacity 0.6s var(--ease);
}

.wp-block-gallery.est-masonry .wp-block-image:hover img {
	transform: scale(1.025);
}

/* Kaart */
.est-map iframe {
	width: 100%;
	height: clamp(320px, 42vw, 520px);
	border: 0;
	filter: grayscale(1) contrast(0.92) brightness(1.04);
}

/* Juridische pagina's */
.est-prose {
	max-width: calc(720px + var(--gutter) * 2) !important;
}

.est-prose {
	max-width: calc(620px + var(--gutter) * 2) !important;
}

.est-prose h1 {
	font-size: clamp(22px, 2vw, 30px);
	font-style: normal;
	color: var(--ink);
	margin-bottom: 1.6em;
}

.est-prose h2 {
	font-family: var(--sans);
	font-size: var(--fs-label);
	font-weight: 400;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--ink);
	margin: 2.8em 0 1em;
}

.est-prose ul {
	padding-left: 1.2em;
	margin: 0 0 1.4em;
}

.est-prose li {
	margin-bottom: 0.4em;
}

/* Knop */
.wp-block-button__link,
.est-button {
	display: inline-block;
	padding: 14px 28px;
	border: 1px solid var(--ink);
	border-radius: 0;
	background: transparent;
	color: var(--ink);
	font-family: var(--sans);
	font-size: var(--fs-label);
	letter-spacing: 0;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.35s var(--ease), color 0.35s var(--ease);
}

.wp-block-button__link:hover,
.est-button:hover {
	background: var(--ink);
	color: var(--bg);
}

/* Lightbox van WordPress in huisstijl */
.wp-lightbox-overlay .scrim {
	background-color: var(--bg) !important;
}

.wp-lightbox-overlay .close-button,
.wp-lightbox-overlay button {
	color: var(--ink) !important;
}

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

.site-footer {
	border-top: 1px solid var(--line);
	font-size: var(--fs-small);
	line-height: 2;
	color: var(--ink-soft);
}

.site-footer__inner {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 32px var(--gutter);
	max-width: var(--maxw);
	margin-inline: auto;
	padding: clamp(56px, 7vw, 96px) var(--gutter) clamp(96px, 9vw, 120px);
}

.site-footer p {
	margin: 0 0 1.2em;
}

.site-footer__marks {
	grid-column: 1 / span 5;
	display: flex;
	align-items: center;
	gap: clamp(20px, 3vw, 44px);
}

.site-footer__marks img {
	height: 40px;
	width: auto;
}

.site-footer__marks .mark-michelin {
	height: 46px;
}

.site-footer__marks .mark-gm {
	height: 34px;
}

.site-footer__hours {
	grid-column: 7 / span 3;
}

.site-footer__contact {
	grid-column: 10 / span 3;
}

.site-footer a {
	text-decoration-color: var(--line);
}

.footer-menu {
	display: flex;
	flex-wrap: wrap;
	gap: 0 10px;
}

.footer-menu li + li::before {
	content: "|";
	margin-right: 10px;
	color: var(--muted);
}

.site-footer__credit {
	color: var(--muted);
}

@media (max-width: 960px) {
	.site-footer__marks {
		grid-column: 1 / -1;
	}

	.site-footer__hours {
		grid-column: 1 / span 6;
	}

	.site-footer__contact {
		grid-column: 7 / span 6;
	}
}

@media (max-width: 600px) {
	.site-footer__hours,
	.site-footer__contact {
		grid-column: 1 / -1;
	}
}

/* ==========================================================================
   404
   ========================================================================== */

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

.error-404 .est-button {
	margin-top: 24px;
}

/* ==========================================================================
   Reveal on scroll (enkel met JS, respecteert reduced motion)
   ========================================================================== */

.js .reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 1.1s var(--ease), transform 1.1s var(--ease);
}

.js .reveal.is-visible {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}

	.js .reveal {
		opacity: 1;
		transform: none;
	}
}

/* Tablefever-widget boven de rest */
iframe[src*="tablefever"] {
	z-index: 40 !important;
}
