/* ==========================================================================
   Gaivota — header, schuifmenu en footer
   ========================================================================== */

/* --- Header -------------------------------------------------------------- */
/* Opbouw uit de nieuwe opzet: vaste lichte balk, logo links, rubrieken met
   megamenu in de balk. Onder 1200px: iconen links, logo midden, hamburger rechts. */

.gv-header {
	position: sticky;
	top: 0;
	z-index: 500;
	background: rgba(255, 255, 255, .97);
	border-bottom: 1px solid rgba(230, 225, 216, .7);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

/* Ingelogd: onder de WordPress-adminbalk blijven staan. */
.admin-bar .gv-header { top: 32px; }

@media (max-width: 782px) {
	.admin-bar .gv-header { top: 46px; }
}


.gv-header__binnen {
	position: relative;
	display: flex;
	align-items: center;
	gap: 2.5rem;
	height: var(--gv-h-header);
	transition: height .35s ease;
	/* Logo en knoppen op één lijn met de inhoud eronder. */
	max-width: calc(var(--gv-breedte-inhoud) + 2 * var(--gv-marge-zij));
	margin: 0 auto;
	padding: 0 var(--gv-marge-zij);
}

.gv-logo { display: block; flex: none; }

.gv-logo img,
.gv-logo svg {
	width: auto;
	height: var(--gv-logo-h);
	object-fit: contain;
	transition: height .35s ease;
}

.gv-logo__wit { display: none; }

/* Hoofdnavigatie */
.gv-hoofdnav { flex: 1; align-self: stretch; }

.gv-hoofdnav__lijst {
	display: flex;
	align-items: stretch;
	justify-content: center;
	gap: 2.25rem;
	height: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gv-hoofdnav__item { display: flex; align-items: center; }

.gv-hoofdnav__knop,
.gv-hoofdnav__link {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	height: 100%;
	padding: 0;
	border: 0;
	background: none;
	font-family: var(--gv-font-kop);
	font-size: .9375rem; /* 15px */
	font-weight: 200;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--gv-tekst-zacht);
	cursor: pointer;
	transition: color .25s ease;
}

.gv-hoofdnav__knop:hover,
.gv-hoofdnav__link:hover,
.gv-hoofdnav__knop[aria-expanded="true"],
.gv-hoofdnav__item.is-actief > .gv-hoofdnav__knop,
.gv-hoofdnav__item.is-actief > .gv-hoofdnav__link { color: var(--gv-navy); }

.gv-hoofdnav__pijl {
	width: 5px;
	height: 5px;
	margin-top: -3px;
	border-right: 1.2px solid currentColor;
	border-bottom: 1.2px solid currentColor;
	transform: rotate(45deg);
	transition: transform .3s ease;
}

.gv-hoofdnav__knop[aria-expanded="true"] .gv-hoofdnav__pijl { transform: translateY(3px) rotate(-135deg); }

/* Megamenu-paneel onder de balk */
.gv-hoofdnav__paneel {
	position: absolute;
	top: 100%;
	left: 50%;
	width: 100vw;
	max-height: calc(100vh - var(--gv-h-header) - 2rem);
	overflow-y: auto;
	padding: 1.75rem 0 2rem;
	background: var(--gv-wit);
	border-top: 1px solid var(--gv-lijn-licht);
	box-shadow: 0 24px 40px -24px rgba(0, 22, 66, .18);
	opacity: 0;
	transform: translate(-50%, -8px);
	transition: opacity .25s ease, transform .25s ease;
}

.gv-hoofdnav__paneel.is-open { opacity: 1; transform: translate(-50%, 0); }

.gv-hoofdnav__sub {
	display: grid;
	/* Elk paneel hetzelfde raster van vier kolommen, op één lijn met de inhoud. */
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0 2.5rem;
	max-width: calc(var(--gv-breedte-inhoud) + 2 * var(--gv-marge-zij));
	margin: 0 auto;
	padding: 0 var(--gv-marge-zij);
	list-style: none;
}

/* Paneel met tussenkoppen. De groepen lopen door over vier kolommen, zodat een lange
   lijst (zoals Stoffen) het paneel niet uitrekt. 21-9-2026: was een vast raster. */
.gv-hoofdnav__sub:has(> .gv-hoofdnav__groep) {
	display: block;
	columns: 4;
	column-gap: 2.5rem;
}

.gv-hoofdnav__groep {
	display: block;
	break-inside: avoid;
	margin-bottom: 1.4rem;
}

.gv-hoofdnav__groepkop {
	display: block;
	padding-bottom: .6rem;
	margin-bottom: .25rem;
	border-bottom: 1px solid var(--gv-taupe);
	font-family: var(--gv-font-kop);
	font-size: .7rem;
	font-weight: 400;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gv-taupe);
}

a.gv-hoofdnav__groepkop:hover { color: var(--gv-navy); }

/* --- Megamenu met rubrieken en voorbeeld (24-9-2026) ----------------------
   gaivota.js zet .is-rubrieken of .is-voorbeelden op de lijst. Links de
   rubrieken, midden de links van de actieve rubriek, rechts een voorbeeld van
   de pagina onder de muis. Zonder JS blijft het raster hierboven staan. */

.gv-hoofdnav__sub.is-rubrieken,
.gv-hoofdnav__sub.is-voorbeelden {
	display: grid;
	grid-template-columns: 17rem minmax(0, 1fr) 21rem;
	gap: 0 3.5rem;
	align-items: start;
	columns: auto;
}

@media (max-width: 1400px) {
	.gv-hoofdnav__sub.is-rubrieken { grid-template-columns: 15rem minmax(0, 1fr) 17rem; gap: 0 2.5rem; }
	.gv-hoofdnav__sub.is-voorbeelden { grid-template-columns: minmax(0, 1fr) 17rem; gap: 0 2.5rem; }
}

.gv-hoofdnav__sub.is-voorbeelden { grid-template-columns: minmax(0, 1fr) 21rem; }

/* Rubrieken */
.gv-hoofdnav__rail {
	grid-column: 1;
	grid-row: 1;
	padding-right: 2rem;
	border-right: 1px solid var(--gv-lijn-licht);
}

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

.gv-hoofdnav__tab {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	padding: .7rem 0;
	border: 0;
	background: none;
	font-family: var(--gv-font-kop);
	font-size: .875rem; /* 14px; 24-9 was .8rem */
	font-weight: 200;
	letter-spacing: .14em;
	line-height: 1.5;
	text-align: left;
	text-transform: uppercase;
	color: var(--gv-tekst-zacht);
	cursor: pointer;
	transition: color .2s ease, padding .25s ease, box-shadow .25s ease;
}

.gv-hoofdnav__tab small {
	font-family: var(--gv-font-tekst);
	font-size: .75rem;
	letter-spacing: 0;
	color: var(--gv-taupe);
}

.gv-hoofdnav__tab:hover,
.gv-hoofdnav__tab[aria-expanded="true"] { color: var(--gv-navy); }

.gv-hoofdnav__tab[aria-expanded="true"] { padding-left: .75rem; box-shadow: inset 1px 0 0 var(--gv-navy); }

/* Alleen de actieve rubriek; de kop staat al in de rij links. */
.gv-hoofdnav__sub.is-rubrieken > .gv-hoofdnav__groep,
.gv-hoofdnav__sub.is-voorbeelden > .gv-hoofdnav__groep {
	display: none;
	grid-row: 1;
	margin: 0;
}

.gv-hoofdnav__sub.is-rubrieken > .gv-hoofdnav__groep { grid-column: 2; }

.gv-hoofdnav__sub.is-voorbeelden > .gv-hoofdnav__groep { grid-column: 1; }

.gv-hoofdnav__sub > .gv-hoofdnav__groep.is-actief { display: block; }

.gv-hoofdnav__sub.is-rubrieken > .gv-hoofdnav__groep.is-actief { animation: gv-rubriek .3s ease; }

.gv-hoofdnav__sub.is-rubrieken .gv-hoofdnav__groepkop { display: none; }

.gv-hoofdnav__groep.is-kolommen .gv-hoofdnav__groeplijst,
.gv-hoofdnav__sub.is-voorbeelden .gv-hoofdnav__groeplijst { columns: 2; column-gap: 2.5rem; }

.gv-hoofdnav__groeplijst li { break-inside: avoid; }

.gv-hoofdnav__sub.is-rubrieken .gv-hoofdnav__groeplijst a,
.gv-hoofdnav__sub.is-voorbeelden .gv-hoofdnav__groeplijst a { border-bottom: 1px solid var(--gv-lijn-licht); }

.gv-hoofdnav__sub a.is-voorbeeld { color: var(--gv-taupe); padding-left: .4rem; }

@keyframes gv-rubriek {
	from { opacity: 0; transform: translateX(-6px); }
	to { opacity: 1; transform: none; }
}

/* Voorbeeld */
.gv-hoofdnav__voorbeeld { grid-column: -2; grid-row: 1; }

.gv-hoofdnav__sub .gv-hoofdnav__voorbeeld a,
.gv-hoofdnav__sub .gv-hoofdnav__voorbeeld a:hover {
	display: block;
	padding: 0;
	border: 0;
	letter-spacing: 0;
	text-transform: none;
}

.gv-hoofdnav__vbeeld {
	display: block;
	aspect-ratio: 4 / 3;
	margin-bottom: 1rem;
	overflow: hidden;
	background: var(--gv-papier);
}

.gv-hoofdnav__vbeeld[hidden] { display: none; }

.gv-hoofdnav__vbeeld img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity .3s ease, transform .6s ease;
}

.gv-hoofdnav__vbeeld.is-laden img { opacity: .35; }

.gv-hoofdnav__voorbeeld a:hover img { transform: scale(1.03); }

.gv-hoofdnav__vtitel {
	display: block;
	margin-bottom: .4rem;
	font-family: var(--gv-font-kop);
	font-size: 1.05rem;
	font-weight: 200;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--gv-navy);
}

.gv-hoofdnav__vtekst {
	display: -webkit-box;
	margin-bottom: .75rem;
	overflow: hidden;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	font-family: var(--gv-font-tekst);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--gv-tekst-zacht);
}

.gv-hoofdnav__vmeer {
	font-family: var(--gv-font-kop);
	font-size: .75rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gv-taupe);
}

.gv-hoofdnav__vmeer::after { content: " \2192"; }

@media (prefers-reduced-motion: reduce) {
	.gv-hoofdnav__sub.is-rubrieken > .gv-hoofdnav__groep.is-actief { animation: none; }
	.gv-hoofdnav__vbeeld img { transition: none; }
}

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

.gv-hoofdnav__groeplijst a {
	padding: .5rem 0;
	border-bottom: 0;
	font-family: var(--gv-font-tekst);
	font-size: .95rem;
	letter-spacing: 0;
	text-transform: none;
}

.gv-hoofdnav__sub a {
	display: block;
	padding: .35rem 0;
	border-bottom: 1px solid var(--gv-lijn-licht);
	font-family: var(--gv-font-kop);
	font-size: .9rem; /* 14,4px; 24-9 was .8rem */
	font-weight: 200;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--gv-navy);
	transition: color .25s ease, padding .25s ease;
}

.gv-hoofdnav__sub a:hover,
.gv-hoofdnav__sub a:focus-visible,
.gv-hoofdnav__sub .is-actief > a { color: var(--gv-taupe); padding-left: .4rem; }

.gv-header__rechts {
	display: flex;
	flex: none;
	align-items: center;
	gap: 1.5rem;
}

.gv-header__tel {
	font-family: var(--gv-font-kop);
	font-size: .9375rem;
	font-weight: 200;
	letter-spacing: .1em;
	color: var(--gv-navy);
	white-space: nowrap;
}

.gv-header__tel:hover { color: var(--gv-taupe); }
.gv-header__rechts .gv-knop {
	gap: 8px;
	padding: 9px 20px;
	border-width: 1px;
	border-color: rgba(0, 28, 85, .35);
	font-size: .9375rem;
	letter-spacing: .12em;
}

.gv-header__rechts .gv-knop svg { width: 9px; }

/* Hamburger (alleen onder 1200px) */
.gv-hamburger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 6px;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

.gv-hamburger span {
	display: block;
	width: 22px;
	height: 1px;
	margin: 0 auto;
	background: var(--gv-navy);
	transition: transform .25s ease, opacity .25s ease;
}

.gv-hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.gv-hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.gv-hamburger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* Sociale iconen */
.gv-sociaal {
	display: flex;
	align-items: center;
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.gv-sociaal a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 24px;
	min-height: 24px; /* klikdoel WCAG 2.5.8 */
	color: var(--gv-tekst);
}

.gv-sociaal svg { width: 16px; height: 16px; fill: currentColor; }
.gv-sociaal a:hover { color: var(--gv-taupe); }

.gv-header__sociaal-mobiel { display: none; }

@media (max-width: 1400px) {
	.gv-header__binnen { gap: 1.75rem; }
	.gv-header__tel { display: none; }
	.gv-hoofdnav__lijst { gap: 1.6rem; }
	.gv-hoofdnav__knop,
	.gv-hoofdnav__link { letter-spacing: .08em; }
}

@media (max-width: 1199px) {
	.gv-header__binnen { justify-content: center; }
	.gv-hoofdnav,
	.gv-header__rechts { display: none; }
	.gv-header__sociaal-mobiel {
		display: flex;
		position: absolute;
		left: var(--gv-marge-zij);
	}
	.gv-hamburger {
		display: flex;
		position: absolute;
		right: calc(var(--gv-marge-zij) - 10px);
	}
}

@media (max-width: 767px) {
	:root { --gv-h-header: 64px; --gv-logo-h: 48px; }
	.gv-header__binnen { padding: 0 1rem; }
	.gv-header__sociaal-mobiel { left: 1rem; }
	.gv-hamburger { right: .5rem; }
	.gv-header__sociaal-mobiel .gv-sociaal { gap: 10px; }
}


/* --- Home: transparante header over de hero ------------------------------ */
/* Bij het laden ligt de header over de hero met een groot wit logo. Na een paar
   pixels scrollen (gaivota.js zet is-gescrold) wordt hij wit en krimpt het logo. */

.gv-header--transparant {
	position: fixed;
	left: 0;
	right: 0;
	--gv-h-header: 110px;
	--gv-logo-h: 70px;
	background: transparent;
	border-bottom-color: transparent;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	transition: background-color .35s ease, border-color .35s ease;
}

/* Zachte verloop achter logo en menu, zodat wit op elke foto leesbaar blijft. */
.gv-header--transparant::before {
	content: "";
	position: absolute;
	inset: 0 0 -60px;
	background: linear-gradient(180deg, rgba(0, 22, 66, .55) 0%, rgba(0, 22, 66, 0) 100%);
	pointer-events: none;
	transition: opacity .35s ease;
}

.gv-header--transparant:not(.is-gescrold):not(:has([aria-expanded="true"])) .gv-logo__donker { display: none; }
.gv-header--transparant:not(.is-gescrold):not(:has([aria-expanded="true"])) .gv-logo__wit { display: block; }

.gv-header--transparant:not(.is-gescrold):not(:has([aria-expanded="true"])) :is(.gv-hoofdnav__knop, .gv-hoofdnav__link, .gv-header__tel, .gv-sociaal a) { color: var(--gv-wit); }
.gv-header--transparant:not(.is-gescrold):not(:has([aria-expanded="true"])) :is(.gv-hoofdnav__knop, .gv-hoofdnav__link, .gv-header__tel, .gv-sociaal a):hover { color: var(--gv-taupe-zacht); }
.gv-header--transparant:not(.is-gescrold):not(:has([aria-expanded="true"])) .gv-header__rechts .gv-knop { border-color: rgba(255, 255, 255, .6); color: var(--gv-wit); }
.gv-header--transparant:not(.is-gescrold):not(:has([aria-expanded="true"])) .gv-header__rechts .gv-knop:hover { background: var(--gv-wit); color: var(--gv-navy); }
.gv-header--transparant:not(.is-gescrold):not(:has([aria-expanded="true"])) .gv-header__rechts .gv-knop svg :is(g, path) { stroke: var(--gv-wit); }
.gv-header--transparant:not(.is-gescrold):not(:has([aria-expanded="true"])) .gv-header__rechts .gv-knop:hover svg :is(g, path) { stroke: var(--gv-navy); }
.gv-header--transparant:not(.is-gescrold):not(:has([aria-expanded="true"])) .gv-hamburger span { background: var(--gv-wit); }

/* Gescrold, of een megamenu open: witte balk met het gewone logo. */
.gv-header--transparant.is-gescrold,
.gv-header--transparant:has([aria-expanded="true"]) {
	background: rgba(255, 255, 255, .97);
	border-bottom-color: rgba(230, 225, 216, .7);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.gv-header--transparant.is-gescrold::before,
.gv-header--transparant:has([aria-expanded="true"])::before { opacity: 0; }

.gv-header--transparant.is-gescrold {
	--gv-h-header: 75px;
	--gv-logo-h: 55px;
}

/* De hero loopt onder de header door tot bovenaan het scherm. */
.gv-header--transparant ~ main .gv-hero-beeld { min-height: clamp(600px, 100svh, 960px); }
.gv-header--transparant ~ main .gv-hero-beeld__inhoud { padding-top: calc(110px + 3rem); }

@media (max-width: 767px) {
	.gv-header--transparant { --gv-h-header: 80px; --gv-logo-h: 58px; }
	.gv-header--transparant.is-gescrold { --gv-h-header: 64px; --gv-logo-h: 48px; }
	.gv-header--transparant ~ main .gv-hero-beeld { min-height: 88svh; }
	.gv-header--transparant ~ main .gv-hero-beeld__inhoud { padding-top: calc(80px + 3rem); }
}

@media (prefers-reduced-motion: reduce) {
	.gv-header__binnen,
	.gv-logo img,
	.gv-header--transparant { transition: none; }
}


/* --- Schuifmenu ---------------------------------------------------------- */

.gv-menu-overlay {
	position: fixed;
	inset: 0;
	z-index: 900;
	background: #01040B59;
	opacity: 0;
	visibility: hidden;
	transition: opacity .5s ease, visibility .5s ease;
}

.gv-menu-paneel {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 901;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: 30vw;
	height: 100vh;
	padding: 5rem 3rem;
	overflow-y: auto;
	background: var(--gv-tekst);
	border-left: .1px solid var(--gv-wit);
	transform: translateX(100%);
	transition: transform .5s ease;
}

body.gv-menu-open { overflow: hidden; }
body.gv-menu-open .gv-menu-overlay { opacity: 1; visibility: visible; }
body.gv-menu-open .gv-menu-paneel { transform: translateX(0); }

.gv-menu-sluiten {
	display: inline-flex;
	align-self: flex-start;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

.gv-menu-sluiten svg { width: 1.5rem; height: 1.5rem; }

.gv-menu-boven {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

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

.gv-menu > li {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}

.gv-menu a {
	display: block;
	padding: 11px 0;
	font-family: var(--gv-font-kop);
	font-size: var(--gv-h3);
	font-weight: 200;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--gv-wit);
}

.gv-menu a:hover,
.gv-menu .current-menu-item > a { color: var(--gv-taupe); }

.gv-menu__uitklap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin-left: .5rem;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

.gv-menu__uitklap span {
	width: 9px;
	height: 9px;
	border-right: 1.5px solid var(--gv-wit);
	border-bottom: 1.5px solid var(--gv-wit);
	transform: translateY(-2px) rotate(45deg);
	transition: transform .3s ease;
}

.gv-menu__uitklap[aria-expanded="true"] span { transform: translateY(2px) rotate(-135deg); }

.gv-menu .sub-menu {
	flex-basis: 100%;
	list-style: none;
	margin: 0;
	padding: 0;
}

.gv-menu .sub-menu a {
	margin-left: 16px;
	padding: 8px 0;
	font-size: 1.35rem;
	line-height: 1.4;
}

.gv-menu-logo {
	position: absolute;
	right: 22px;
	bottom: 42px;
	width: 180px;
	opacity: .05;
	pointer-events: none;
}

.gv-menu-knoppen {
	display: none;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	margin-top: 48px;
}

@media (max-width: 1024px) {
	.gv-menu-paneel { width: 80vw; padding: 2rem; }
}

@media (max-width: 767px) {
	.gv-menu-paneel { width: 90vw; min-height: 85vh; padding: 2rem; }
	.gv-menu a { font-size: 1.2rem; }
	.gv-menu-sluiten svg { width: 1rem; height: 1rem; }
	.gv-menu-logo { width: 110px; right: 16px; bottom: 16px; }
	.gv-menu-knoppen { display: flex; align-items: center; width: 100%; }
	.gv-menu-knoppen .gv-knop { width: 100%; justify-content: center; }
}

/* --- Footer -------------------------------------------------------------- */

.gv-footer {
	background: var(--gv-tekst);
	color: var(--gv-wit);
}

.gv-footer__binnen {
	max-width: calc(var(--gv-breedte-inhoud) + 2 * var(--gv-marge-zij));
	margin: 0 auto;
	padding-inline: var(--gv-marge-zij);
	display: flex;
	flex-direction: column;
	gap: 0;
}

.gv-footer__cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	padding: 8rem 0;
	overflow: hidden;
	text-align: center;
}

.gv-footer__cta .gv-footer__label {
	font-family: var(--gv-font-kop);
	font-size: var(--gv-h3);
	font-weight: 200;
	line-height: 1;
	text-transform: uppercase;
	color: var(--gv-wit);
	padding-left: .2rem;
}

.gv-footer__titel {
	max-width: 900px;
	font-family: var(--gv-font-kop);
	font-size: clamp(3rem, 5.5vw, 5.5rem);
	font-weight: 200;
	line-height: 1em;
	text-transform: uppercase;
	color: var(--gv-wit);
}

.gv-footer__cta-knoppen {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 32px;
	margin-top: 32px;
}

/* Linkkolommen uit de nieuwe opzet, gevuld met het hoofdmenu. */
.gv-footer__menu {
	padding: 4rem 0 3.5rem;
	border-top: 1px solid rgba(255, 255, 255, .18);
}

.gv-footer__kolommen {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 2.5rem 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gv-footer__kolommen > li > a {
	display: block;
	margin-bottom: 1.1rem;
	font-family: var(--gv-font-kop);
	font-size: .85rem;
	font-weight: 400;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gv-taupe);
}

.gv-footer__kolommen > li > a[href="#"] { pointer-events: none; }

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

.gv-footer__kolommen .sub-menu a {
	display: block;
	padding: .3rem 0;
	font-family: var(--gv-font-tekst);
	font-size: 1rem;
	line-height: 1.5;
	color: rgba(255, 255, 255, .75);
}

.gv-footer__kolommen .sub-menu a:hover,
.gv-footer__kolommen .sub-menu a:focus-visible { color: var(--gv-taupe-zacht); }

/* Werkgebied als één regel onder de kolommen (28-9-2026). */
.gv-footer__regio {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .35rem 1.15rem;
	margin: 3rem 0 0;
	padding-top: 2rem;
	border-top: 1px solid rgba(255, 255, 255, .1);
}

.gv-footer__regio-kop {
	margin-right: .35rem;
	font-family: var(--gv-font-kop);
	font-size: .85rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gv-taupe);
}

.gv-footer__regio a {
	font-family: var(--gv-font-tekst);
	font-size: 1rem;
	line-height: 1.8;
	color: rgba(255, 255, 255, .75);
}

.gv-footer__regio a:hover,
.gv-footer__regio a:focus-visible { color: var(--gv-taupe-zacht); }

.gv-footer__balk {
	display: flex;
	flex-direction: row;
	gap: 0;
	padding: 2rem 0;
	border-top: 1px solid var(--gv-wit);
}

.gv-footer__kolom {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	flex: 1;
}

.gv-footer__kolom--midden { align-items: center; }
.gv-footer__kolom--rechts { align-items: flex-end; justify-content: flex-start; }

.gv-footer__rij {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 1em;
	min-height: 50px;
	width: 100%;
}

.gv-footer__kolom--rechts .gv-footer__rij { justify-content: flex-end; gap: 2em; }
.gv-footer__kolom--midden .gv-footer__rij { justify-content: center; }

.gv-footer__klein {
	font-family: var(--gv-font-kop);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1;
	color: var(--gv-wit);
}

.gv-footer__betaal img { height: 40px; width: auto; flex: none; }
.gv-footer__betaal img:not([height]) { width: 10%; }
.gv-footer__cbw img { width: 20%; max-width: 20%; height: auto; flex: none; }

.gv-footer__copyright {
	font-family: var(--gv-font-kop);
	font-size: 16px;
	font-weight: 200;
	line-height: 1em;
	text-transform: uppercase;
	color: var(--gv-wit);
}

.gv-footer__copyright a:hover { color: var(--gv-taupe); }

.gv-footer__legal a {
	font-family: var(--gv-font-kop);
	font-size: var(--gv-menu);
	font-weight: 200;
	line-height: 1;
	text-transform: uppercase;
	color: var(--gv-wit);
}

.gv-footer__legal a:hover { color: var(--gv-taupe); }

.gv-footer .gv-sociaal a { color: var(--gv-wit); }
.gv-footer .gv-sociaal { gap: 5px; }
.gv-footer .gv-sociaal a:hover { color: var(--gv-taupe); }

@media (max-width: 1024px) {
	.gv-footer__balk { padding: 3rem; }
	.gv-footer__titel { font-size: 3.2rem; }
}

@media (max-width: 767px) {
	.gv-footer__binnen { gap: 2rem; padding: 5rem 1rem; }
	.gv-footer__cta { padding: 0; gap: 1rem; }
	.gv-footer__titel { font-size: 2.6rem; }
	.gv-footer__cta-knoppen { flex-direction: row-reverse; width: 100%; }
	.gv-footer__cta-knoppen .gv-knop { flex: 1; justify-content: center; }
	.gv-footer__menu { padding: 3rem 1rem 2rem; }
	.gv-footer__kolommen { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.25rem; }
	.gv-footer__kolommen .sub-menu a { padding: .55rem 0; }
	.gv-footer__regio { gap: .1rem 1.1rem; margin-top: 2rem; }
	.gv-footer__regio-kop { flex-basis: 100%; margin-bottom: .4rem; }
	.gv-footer__balk {
		flex-wrap: wrap;
		gap: 16px 0;
		padding: 1rem 1rem 0;
	}
	.gv-footer__kolom { flex-basis: 100%; align-items: center; }
	.gv-footer__kolom--links { order: 99999; flex-direction: row-reverse; flex-wrap: wrap-reverse; justify-content: center; }
	.gv-footer__kolom--rechts { order: 3; }
	.gv-footer__kolom--rechts .gv-footer__rij { justify-content: center; }
}

/* --- Intro-animatie ------------------------------------------------------ */

#gv-intro {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--gv-navy);
	transform: translateY(0);
	transition: transform .9s cubic-bezier(.65, 0, .35, 1);
}

#gv-intro img {
	max-width: 80%;
	height: auto;
	opacity: 0;
	transform: scale(.94);
	filter: blur(6px);
	transition: opacity 1s cubic-bezier(.22, 1, .36, 1),
	            transform 1s cubic-bezier(.22, 1, .36, 1),
	            filter 1s cubic-bezier(.22, 1, .36, 1);
}

#gv-intro.gv-toon img { opacity: 1; transform: scale(1); filter: blur(0); }
#gv-intro.gv-klaar { transform: translateY(-100%); pointer-events: none; }

body.gv-vast { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
	#gv-intro { display: none; }
}

/* Tussenkoppen in schuifmenu en footer (menu met drie niveaus). */
.gv-menu .sub-menu .sub-menu { padding-left: 0; }
.gv-menu .sub-menu > .menu-item-has-children > a[href="#"] {
	margin: 1rem 0 .25rem 16px;
	padding: 0;
	font-size: .7rem;
	letter-spacing: .2em;
	color: var(--gv-taupe);
	pointer-events: none;
}

.gv-footer__kolommen .sub-menu .sub-menu { margin-bottom: .75rem; }
.gv-footer__kolommen .sub-menu > .menu-item-has-children > a[href="#"] {
	margin-top: .75rem;
	padding: 0 0 .25rem;
	font-family: var(--gv-font-kop);
	font-size: .7rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--gv-taupe);
	pointer-events: none;
}

/* --- Kleine rubriek als beeldkaarten (25-10-2026) --------------------------
   Gaivota (Over ons, Magazine, Contact) had drie links in een raster van vier
   kolommen met een leeg voorbeeldvak. Nu drie kaarten en een studioblok. */
.gv-hoofdnav__sub.gv-hoofdnav__sub--kaarten { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, .9fr); gap: 0 2.5rem; align-items: start; columns: auto; }
.gv-hoofdnav__sub .gv-hoofdnav__kaart,
.gv-hoofdnav__sub .gv-hoofdnav__kaart:hover { display: flex; flex-direction: column; gap: .5rem; padding: 0; border: 0; letter-spacing: 0; text-transform: none; }
.gv-hoofdnav__kbeeld { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--gv-papier); margin-bottom: .5rem; }
.gv-hoofdnav__kbeeld img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.gv-hoofdnav__kaart:hover .gv-hoofdnav__kbeeld img { transform: scale(1.03); }
.gv-hoofdnav__ktitel { font-family: var(--gv-font-kop); font-size: .95rem; font-weight: 400; letter-spacing: .16em; text-transform: uppercase; color: var(--gv-navy); }
.gv-hoofdnav__kaart:hover .gv-hoofdnav__ktitel, .gv-hoofdnav__kaartitem.is-actief .gv-hoofdnav__ktitel { color: var(--gv-taupe); }
.gv-hoofdnav__ktekst { font-family: var(--gv-font-tekst); font-size: .95rem; line-height: 1.5; color: var(--gv-tekst-zacht); }
.gv-hoofdnav__studio { padding-left: 2rem; border-left: 1px solid var(--gv-lijn-licht); }
.gv-hoofdnav__studio p { margin: .9rem 0 0; font-family: var(--gv-font-tekst); font-size: .95rem; line-height: 1.6; color: var(--gv-tekst); }
.gv-hoofdnav__sub .gv-hoofdnav__studio p a { display: inline; padding: 0; border: 0; letter-spacing: 0; text-transform: none; font-family: inherit; font-size: inherit; color: var(--gv-navy); }
.gv-hoofdnav__sub .gv-hoofdnav__studioknop { display: inline-flex; align-items: center; min-height: 44px; margin-top: 1.25rem; padding: 0 1.4rem; border: 1px solid var(--gv-navy); border-radius: 50px; font-family: var(--gv-font-kop); font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--gv-navy); transition: background-color .3s ease, color .3s ease; }
.gv-hoofdnav__sub .gv-hoofdnav__studioknop:hover { background: var(--gv-navy); color: #fff; }

/* --- Rubrieken met beeldtegels (26-10-2026) --------------------------------
   Rubrieken tot negen links tonen elke link als tegel met foto (gaivota.js zet
   .is-tegels). Dan vervalt het voorbeeldvak rechts en krijgen de tegels de ruimte.
   Lange merkenlijsten blijven tekst met voorbeeld. */
.gv-hoofdnav__sub.is-rubrieken.is-tegelmodus { grid-template-columns: 17rem minmax(0, 1fr); }
.gv-hoofdnav__sub.is-tegelmodus > .gv-hoofdnav__voorbeeld { display: none; }
.gv-hoofdnav__groep.is-tegels .gv-hoofdnav__groeplijst { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem 2rem; columns: auto; margin: 0; padding: 0; }
.gv-hoofdnav__groep.is-tegels-4 .gv-hoofdnav__groeplijst { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem 1.5rem; }
.gv-hoofdnav__sub.is-rubrieken .gv-hoofdnav__groep.is-tegels .gv-hoofdnav__groeplijst a { display: flex; flex-direction: column; gap: .7rem; padding: 0; border: 0; }
.gv-hoofdnav__sub .gv-hoofdnav__groep.is-tegels a.is-voorbeeld { padding-left: 0; }
.gv-hoofdnav__tbeeld { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--gv-papier); }
.gv-hoofdnav__tbeeld img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.gv-hoofdnav__groep.is-tegels a:hover .gv-hoofdnav__tbeeld img,
.gv-hoofdnav__groep.is-tegels a:focus-visible .gv-hoofdnav__tbeeld img { transform: scale(1.04); }
@media (max-width: 1400px) {
	.gv-hoofdnav__sub.is-rubrieken.is-tegelmodus { grid-template-columns: 15rem minmax(0, 1fr); }
	.gv-hoofdnav__groep.is-tegels-4 .gv-hoofdnav__groeplijst { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* Kaarten-paneel met vijf of zes links (Voor wie): zonder omschrijving, compacter. */
.gv-hoofdnav__sub--kaarten:has(> .gv-hoofdnav__kaartitem:nth-child(5)) { gap: 1.5rem 2rem; }
.gv-hoofdnav__sub--kaarten:has(> .gv-hoofdnav__kaartitem:nth-child(5)) .gv-hoofdnav__ktekst { display: none; }
.gv-hoofdnav__sub--kaarten:has(> .gv-hoofdnav__kaartitem:nth-child(5)) .gv-hoofdnav__kbeeld { aspect-ratio: 16 / 10; }
.gv-hoofdnav__sub--kaarten:has(> .gv-hoofdnav__kaartitem:nth-child(5)) .gv-hoofdnav__studio { grid-column: 4; grid-row: 1 / span 2; }

/* Vaste link bovenaan de rubrieken, bijvoorbeeld Alle merken (26-10-2026). */
.gv-hoofdnav__railbalk { margin-bottom: .6rem; padding-bottom: .6rem; border-bottom: 1px solid var(--gv-lijn-licht); }
.gv-hoofdnav__sub .gv-hoofdnav__railbalk a { display: flex; align-items: center; gap: .5rem; padding: .7rem 0; border: 0; font-family: var(--gv-font-kop); font-size: .875rem; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; color: var(--gv-taupe); }
.gv-hoofdnav__sub .gv-hoofdnav__railbalk a::after { content: "\2192"; }
.gv-hoofdnav__sub .gv-hoofdnav__railbalk a:hover { color: var(--gv-navy); }

/* Kaarten-paneel met vier of meer links (Voor wie, 3-11-2026): het studioblok
   paste niet meer in de vierde kolom en viel onder de eerste kaart. Daar vier
   gelijke kaarten zonder adres; het adres staat alleen bij Gaivota (Contact). */
.gv-hoofdnav__sub.gv-hoofdnav__sub--kaarten:has(> .gv-hoofdnav__kaartitem:nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem 2rem; }
.gv-hoofdnav__sub--kaarten:has(> .gv-hoofdnav__kaartitem:nth-child(4)) > .gv-hoofdnav__studio { display: none; }
