/*
 * Paginakader: bovenbalk, header, navigatie, footer en losse WordPress-blokken in de content.
 */

body {
	margin: 0;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4 {
	font-family: var(--cc-font-heading);
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
}

:focus-visible {
	outline: 2px solid var(--cc-brand);
	outline-offset: 2px;
}

.cc-skip-link:focus {
	z-index: 1000;
	top: 0.5rem;
	left: 0.5rem;
	width: auto;
	height: auto;
	padding: 0.75rem 1rem;
	clip: auto;
	background: var(--cc-white);
}

/* Losse WordPress-blokken (alinea, kop, lijst ...) tussen de secties */
.cc-content > :not(.cc-section) {
	box-sizing: border-box;
	max-width: calc(760px + 2 * var(--cc-gutter));
	margin-inline: auto;
	padding-inline: var(--cc-gutter);
}

.cc-content > :not(.cc-section):first-child {
	margin-top: var(--cc-space-compact);
}

.cc-content > :not(.cc-section):last-child {
	margin-bottom: var(--cc-space-compact);
}

/* Bovenbalk */
.cc-topbar {
	background: #f2f2f2; /* lichtgrijs, zoals in het design */
	color: var(--cc-ink);
	font-size: 0.75rem;
}

.cc-topbar__inner {
	display: flex;
	gap: 1.5rem;
	align-items: center;
	justify-content: flex-end;
	padding-block: 9px;
}

.cc-topbar__menu {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-topbar a {
	text-decoration: none;
}

.cc-topbar a:hover {
	color: var(--cc-brand);
}

.cc-lang {
	display: flex;
	gap: 0.625rem;
	margin: 0;
	padding: 0 0 0 1.5rem;
	border-left: 1px solid var(--cc-line);
	list-style: none;
}

.cc-topbar .cc-lang a {
	color: var(--cc-muted);
	text-decoration: none;
}

.cc-topbar .cc-lang a[aria-current] {
	color: var(--cc-ink);
	font-weight: 800;
}

/* Varianten van de bovenbalk (Weergave > Customizer > Header; tijdelijk bekijken met ?topbar=rose of ?topbar=navy) */
.cc-topbar--rose {
	border-bottom: 1px solid var(--cc-line);
	background: var(--cc-light);
	color: var(--cc-ink);
}

.cc-topbar--rose a:hover {
	color: var(--cc-brand);
}

.cc-topbar--navy {
	border-bottom: 1px solid rgb(255 255 255 / 0.12);
	background: var(--cc-ink);
	color: var(--cc-white);
}

.cc-topbar--navy a:hover {
	color: var(--cc-accent);
}

.cc-topbar--navy .cc-lang {
	border-left-color: rgb(255 255 255 / 0.25);
}

.cc-topbar--navy .cc-lang a {
	color: rgb(255 255 255 / 0.7);
}

.cc-topbar--navy .cc-lang a[aria-current] {
	color: var(--cc-white);
}

/* Header */
.cc-header {
	position: sticky;
	z-index: 100;
	top: 0;
	border-bottom: 1px solid var(--cc-line);
	background: var(--cc-light);
	color: var(--cc-ink);
}

.admin-bar .cc-header {
	top: var(--wp-admin--admin-bar--height, 0);
}

/* Headervarianten (Instellingen > Bedrijfsgegevens > Weergave; tijdelijk bekijken met ?header=dark of ?header=white) */
.cc-header--white {
	border-bottom-color: rgb(29 34 50 / 0.08);
	background: var(--cc-white);
}

.cc-header--dark {
	border-bottom-color: rgb(255 255 255 / 0.12);
	background: var(--cc-ink);
	color: var(--cc-white);
}

.cc-header--dark .cc-header__logo img {
	filter: brightness(0) invert(1);
}

.cc-header--dark .cc-header__burger,
.cc-header--dark .cc-nav__link {
	color: var(--cc-white);
}

.cc-header--dark .cc-header__burger {
	border-color: rgb(255 255 255 / 0.24);
}

.cc-header--dark .cc-nav__link:hover,
.cc-header--dark .cc-nav__item.is-current > .cc-nav__link,
.cc-header--dark .cc-nav__item:hover > .cc-nav__link,
.cc-header--dark .cc-nav__item.is-open > .cc-nav__link {
	border-bottom-color: var(--cc-accent);
}

.cc-header--dark .cc-nav__toggle {
	color: var(--cc-accent);
}

.cc-header--dark .cc-header__cta a {
	background: var(--cc-brand);
}

.cc-header--dark .cc-header__cta a:hover {
	background: var(--cc-accent);
	color: var(--cc-ink);
}

.cc-header__inner {
	display: flex;
	gap: 3.5rem;
	align-items: center;
	justify-content: space-between;
	min-height: 88px;
}

.cc-header__logo {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
}

.cc-header__logo img {
	display: block;
	width: auto;
	height: 42px;
}

.cc-header__burger {
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid rgb(29 34 50 / 0.16);
	border-radius: 10px;
	background: none;
	color: var(--cc-ink);
	cursor: pointer;
}

.cc-header__burger-lines,
.cc-header__burger-lines::before,
.cc-header__burger-lines::after {
	display: block;
	width: 22px;
	height: 2px;
	background: currentColor;
	transition: transform 0.2s;
}

.cc-header__burger-lines {
	position: relative;
}

.cc-header__burger-lines::before,
.cc-header__burger-lines::after {
	content: "";
	position: absolute;
	left: 0;
}

.cc-header__burger-lines::before { top: -7px; }
.cc-header__burger-lines::after { top: 7px; }

.cc-header__burger[aria-expanded="true"] .cc-header__burger-lines { background: transparent; }
.cc-header__burger[aria-expanded="true"] .cc-header__burger-lines::before { transform: translateY(7px) rotate(45deg); }
.cc-header__burger[aria-expanded="true"] .cc-header__burger-lines::after { transform: translateY(-7px) rotate(-45deg); }

/* Knoppen in de header (menu "Knoppen in header") */
.cc-header__cta {
	display: flex;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-header__cta a {
	display: inline-flex;
	align-items: center;
	height: 48px;
	padding: 0 1.5rem;
	border-radius: 10px;
	background: var(--cc-brand);
	color: var(--cc-white);
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.15s;
}

.cc-header__cta a:hover {
	background: #9e3e1e;
}

/* Navigatie */
.cc-nav__list,
.cc-nav__sub,
.cc-nav__group-items {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-nav__item {
	position: relative;
}

.cc-nav__link {
	display: block;
	padding: 0.875rem 0;
	color: var(--cc-ink);
	font-size: 0.9375rem;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}

.cc-nav__toggle {
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 0;
	background: none;
	color: var(--cc-brand);
	cursor: pointer;
}

.cc-nav__toggle::before {
	content: "";
	display: inline-block;
	width: 0.375rem;
	height: 0.375rem;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-25%) rotate(45deg);
	transition: transform 0.2s;
}

.cc-nav__toggle[aria-expanded="true"]::before {
	transform: translateY(25%) rotate(-135deg);
}

/* Bovenkop met vierkantje (paneeltitel, kolomkop, uitgelichte kaart) */
.cc-nav__eyebrow {
	display: flex;
	gap: 0.5rem;
	align-items: center;
	margin: 0;
	color: var(--cc-brand);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.cc-nav__eyebrow::before {
	content: "";
	flex: 0 0 auto;
	width: 7px;
	height: 7px;
	background: currentColor;
}

.cc-nav__panel-title {
	padding: 0.5rem 1.5rem 0.625rem;
}

/* Links in een paneel: titel met pijl, omschrijving eronder */
.cc-nav__sublink {
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
	padding: 0.6875rem 1.5rem;
	color: var(--cc-ink);
	text-decoration: none;
}

.cc-nav__sublink-title {
	display: flex;
	gap: 1rem;
	align-items: center;
	justify-content: space-between;
	font-size: 0.9375rem;
	font-weight: 600;
}

.cc-nav__subitem:has(.cc-nav__sublink-desc) .cc-nav__sublink-title {
	font-weight: 700;
}

.cc-nav__sublink-title::after {
	content: "→";
	flex: 0 0 auto;
	color: var(--cc-brand);
	font-size: 0.8125rem;
}

.cc-nav__sublink-desc {
	color: var(--cc-muted);
	font-size: 0.8125rem;
	font-weight: var(--cc-weight-body);
	line-height: 1.5;
}

.cc-nav__sublink:hover,
.cc-nav__subitem.is-current > .cc-nav__sublink {
	background: var(--cc-light);
}

.cc-nav__sublink:hover .cc-nav__sublink-title,
.cc-nav__subitem.is-current > .cc-nav__sublink .cc-nav__sublink-title {
	color: var(--cc-brand);
}

/* Groepen in een gewoon paneel: titel, links, omschrijving */
.cc-nav__group + .cc-nav__group {
	margin-top: 0.5rem;
	padding-top: 0.625rem;
	border-top: 1px solid var(--cc-line);
}

.cc-nav__group-title {
	display: flex;
	gap: 0.5rem;
	align-items: center;
	margin: 0;
	padding: 0.375rem 1.5rem;
	color: var(--cc-brand);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
}

.cc-nav__group-title::before {
	content: "";
	flex: 0 0 auto;
	width: 7px;
	height: 7px;
	background: currentColor;
}

/* Groepstitel als link (als er een adres is ingevuld bij het menu-item). */
.cc-nav__group-title a {
	padding: 0;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	text-decoration: none;
}

.cc-nav__group-title a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

p.cc-nav__group-desc {
	max-width: 300px;
	margin: 0;
	padding: 0 1.5rem 0.25rem;
	color: var(--cc-muted);
	font-size: 0.8125rem;
	line-height: 1.55;
}

/* Megamenu: kolom met kop (groep) */
.cc-nav__group-head {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	color: var(--cc-ink);
	text-decoration: none;
}

.cc-nav__group-name {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	justify-content: space-between;
	font-family: var(--cc-font-heading);
	font-size: 1.25rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.cc-nav__group-arrow {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--cc-ink);
	color: var(--cc-white);
	font-family: var(--cc-font-body);
	font-size: 0.875rem;
	font-weight: 400;
}

span.cc-nav__group-desc {
	color: var(--cc-muted);
	font-size: 0.8125rem;
	line-height: 1.6;
	text-wrap: pretty;
}

/* Megamenu: donkere kaart (groep met de klasse "uitgelicht") */
.cc-nav__feature-link {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
	height: 100%;
	padding: 1.75rem 1.75rem 1.625rem;
	background: var(--cc-ink);
	color: var(--cc-white);
	text-decoration: none;
	transition: background-color 0.15s;
}

.cc-nav__feature-link:hover {
	background: #262c40;
}

.cc-nav__feature-link .cc-nav__eyebrow {
	color: var(--cc-accent);
}

.cc-nav__feature-title {
	font-family: var(--cc-font-heading);
	font-size: 1.5rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.15;
}

.cc-nav__feature-desc {
	color: #c9cdd6;
	font-size: 0.875rem;
	line-height: 1.65;
	text-wrap: pretty;
}

.cc-nav__feature-cta {
	display: flex;
	gap: 0.625rem;
	align-items: center;
	margin-top: auto;
	padding-top: 1rem;
	border-top: 1px solid rgb(255 255 255 / 0.18);
	font-size: 0.875rem;
	font-weight: 700;
}

.cc-nav__feature-cta span,
.cc-nav__card-cta span,
.cc-nav__foot-all span {
	color: var(--cc-accent);
}

.cc-nav__foot-all span {
	color: var(--cc-brand);
}

/* Megamenu: regel onderin */
.cc-nav__panel-foot {
	border-top: 1px solid var(--cc-line);
	background: var(--cc-light);
}

.cc-nav__panel-foot-inner {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: center;
	justify-content: space-between;
	padding-block: 1rem;
	color: var(--cc-text-2);
	font-size: 0.875rem;
}

.cc-nav__panel-foot-inner span a {
	color: var(--cc-brand);
	font-weight: 700;
	text-underline-offset: 3px;
}

.cc-nav__foot-all {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	color: var(--cc-ink);
	font-weight: 700;
	text-decoration: none;
}

.cc-nav__foot-all:hover {
	color: var(--cc-brand);
}

.cc-nav__foot-links {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.75rem 2rem;
	align-items: center;
}

/* Kaart rechts in een paneel: foto (vacatures) of contactgegevens */
.cc-nav__card {
	display: flex;
	flex-direction: column;
	background: var(--cc-ink);
	color: var(--cc-white);
	text-decoration: none;
}

.cc-nav__card--photo {
	position: relative;
	justify-content: flex-end;
	min-height: 280px;
	overflow: hidden;
}

.cc-nav__card-photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cc-nav__card--photo::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgb(29 34 50 / 0) 30%, rgb(29 34 50 / 0.92) 100%);
}

.cc-nav__card-body {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	padding: 1.5rem;
}

.cc-nav__badge {
	align-self: flex-start;
	padding: 5px 9px;
	background: var(--cc-brand);
	color: var(--cc-white);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.cc-nav__card-title {
	margin: 0;
	font-family: var(--cc-font-heading);
	font-size: 1.25rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.cc-nav__card-cta {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	font-size: 0.875rem;
	font-weight: 700;
}

.cc-nav__card--contact {
	gap: 1.125rem;
	padding: 1.75rem 1.625rem;
}

.cc-nav__card-row {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	margin: 0;
}

.cc-nav__card-label {
	color: #c9cdd6;
	font-size: 0.8125rem;
}

.cc-nav__card-row a {
	font-family: var(--cc-font-heading);
	font-size: 1.125rem;
	font-weight: 800;
	text-decoration: none;
	overflow-wrap: anywhere;
}

.cc-nav__card-row a:hover {
	color: var(--cc-accent);
}

.cc-nav__card-button {
	display: flex;
	gap: 0.625rem;
	align-items: center;
	justify-content: space-between;
	margin-top: auto;
	padding: 0.8125rem 1.125rem;
	border-radius: var(--cc-radius);
	background: var(--cc-brand);
	color: var(--cc-white);
	font-size: 0.875rem;
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.15s;
}

.cc-nav__card-button:hover {
	background: #c95a34;
}

/* Mobiel menu */
@media (max-width: 1099px) {
	/* Het menu loopt van de onderkant van de header tot de onderrand van het scherm; site.js meet
	   die onderkant bij het openen (de bovenbalk scrolt mee weg, dus die hoogte wisselt). */
	.cc-header__menu {
		position: fixed;
		inset: var(--cc-menu-top, 88px) 0 0;
		display: none;
		flex-direction: column;
		gap: var(--cc-gap);
		overflow-y: auto;
		padding: 0.5rem var(--cc-gutter) var(--cc-gap-lg);
		background: var(--cc-light);
	}

	.cc-header__menu.is-open {
		display: flex;
	}

	/* Zolang het menu open is, staat de header vast op de plek waar hij stond: met overflow hidden
	   op html plakt een sticky header niet meer en zou hij (met de sluitknop) uit beeld schuiven. */
	.cc-header.is-menu-open {
		position: fixed;
		top: var(--cc-header-top, 0);
		right: 0;
		left: 0;
	}

	.cc-nav__item {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		border-bottom: 1px solid var(--cc-line);
	}

	.cc-nav__link {
		flex: 1;
		font-size: 1.0625rem;
	}

	.cc-nav__item.is-current > .cc-nav__link {
		color: var(--cc-brand);
		font-weight: 600;
	}

	.cc-header--dark .cc-nav__item.is-current > .cc-nav__link {
		color: var(--cc-accent);
	}

	.cc-nav__panel {
		display: none;
		flex-basis: 100%;
		padding-bottom: 0.75rem;
	}

	.cc-nav__item.is-open > .cc-nav__panel {
		display: block;
	}

	.cc-nav__sublink,
	.cc-nav__group-title,
	.cc-nav__group-head,
	p.cc-nav__group-desc {
		padding-inline: 0.75rem;
		white-space: normal;
	}

	/* Compact: alleen de links; kaarten, omschrijvingen en de regel onderin zijn voor desktop. */
	.cc-nav__panel-title,
	.cc-nav__sublink-desc,
	.cc-nav__group-desc,
	.cc-nav__group-arrow,
	.cc-nav__feature-desc,
	.cc-nav__feature-cta,
	.cc-nav__card,
	.cc-nav__panel-foot {
		display: none;
	}

	.cc-nav__panel--mega .cc-container {
		padding: 0;
	}

	.cc-nav__sublink-title,
	.cc-nav__subitem:has(.cc-nav__sublink-desc) .cc-nav__sublink-title {
		font-weight: 600;
	}

	.cc-nav__group-head {
		gap: 0.375rem;
		padding-block: 0.375rem;
	}

	.cc-nav__group-name {
		font-family: var(--cc-font-body);
		font-size: 0.9375rem;
		font-weight: 600;
		letter-spacing: 0;
	}

	.cc-nav__feature-link {
		gap: 0.375rem;
		padding: 0.375rem 0.75rem;
		background: none;
		color: var(--cc-ink);
	}

	.cc-nav__feature-link .cc-nav__eyebrow {
		color: var(--cc-brand);
	}

	.cc-nav__feature-title {
		padding: 0.375rem 0;
		font-family: var(--cc-font-body);
		font-size: 0.9375rem;
		font-weight: 600;
		letter-spacing: 0;
	}

	.cc-nav__feature + .cc-nav__group,
	.cc-nav__group + .cc-nav__feature,
	.cc-nav__subitem + .cc-nav__group {
		margin-top: 0.5rem;
		padding-top: 0.625rem;
		border-top: 1px solid var(--cc-line);
	}

	.cc-header__cta,
	.cc-header__cta li {
		width: 100%;
	}

	.cc-header__cta a {
		box-sizing: border-box;
		justify-content: center;
		width: 100%;
		height: 52px;
		font-size: 1rem;
	}

	/* Uitgeklapt menu in de kleur van de header */
	.cc-header--white .cc-header__menu {
		background: var(--cc-white);
	}

	.cc-header--dark .cc-header__menu {
		background: var(--cc-ink);
	}

	.cc-header--dark .cc-nav__item,
	.cc-header--dark .cc-nav__group + .cc-nav__group,
	.cc-header--dark .cc-nav__feature + .cc-nav__group,
	.cc-header--dark .cc-nav__group + .cc-nav__feature,
	.cc-header--dark .cc-nav__subitem + .cc-nav__group {
		border-color: rgb(255 255 255 / 0.12);
	}

	.cc-header--dark .cc-nav__sublink,
	.cc-header--dark .cc-nav__group-head,
	.cc-header--dark .cc-nav__feature-link {
		color: var(--cc-white);
	}

	.cc-header--dark .cc-nav__sublink:hover,
	.cc-header--dark .cc-nav__subitem.is-current > .cc-nav__sublink {
		background: rgb(255 255 255 / 0.08);
	}

	.cc-header--dark .cc-nav__sublink:hover .cc-nav__sublink-title,
	.cc-header--dark .cc-nav__subitem.is-current > .cc-nav__sublink .cc-nav__sublink-title,
	.cc-header--dark .cc-nav__group-title,
	.cc-header--dark .cc-nav__eyebrow {
		color: var(--cc-accent);
	}
}

/* Mobiel: een link uit de regel onderin het megamenu staat los onder de groepen. */
@media (max-width: 1099px) {

	.cc-nav__panel--mega .cc-nav__subitem.is-foot,
	.cc-nav__panel--services .cc-nav__subitem.is-foot {
		margin-top: 0.75rem;
		border-top: 1px solid var(--cc-line);
	}
}

/* Desktop menu */
@media (min-width: 1100px) {
	.cc-header__burger {
		display: none;
	}

	/* Links met de klasse "onderin" staan op desktop alleen in de regel onderin het paneel. */
	.cc-nav__panel--mega .cc-nav__subitem.is-foot,
	.cc-nav__panel--services .cc-nav__subitem.is-foot {
		display: none;
	}

	.cc-header__menu {
		display: flex;
		flex: 1;
		gap: 2.5rem;
		align-items: center;
		justify-content: space-between;
	}

	/* De navigatie vult de hele headerhoogte, zodat de muis tussen link en paneel het paneel niet sluit. */
	.cc-nav {
		display: flex;
		align-self: stretch;
	}

	.cc-nav__list {
		display: flex;
		gap: 2rem;
	}

	.cc-nav__list > .cc-nav__item {
		display: flex;
		align-items: center;
	}

	/* Hover en actieve pagina: een onderlijn in roest, de tekst houdt zijn kleur. */
	.cc-nav__link {
		padding: 0.5rem 0;
		border-bottom: 2px solid transparent;
		transition: border-color 0.15s;
	}

	.cc-nav__link:hover,
	.cc-nav__item.is-current > .cc-nav__link,
	.cc-nav__item:hover > .cc-nav__link,
	.cc-nav__item.is-open > .cc-nav__link {
		border-bottom-color: var(--cc-brand);
	}

	/* Design system (23 oktober 2026): geen uitklappijltjes op desktop; de panelen openen bij hover en focus. */
	.cc-nav__toggle {
		display: none;
	}

	.cc-nav__panel {
		position: absolute;
		z-index: 5;
		top: 100%;
		left: -18px;
		width: 340px;
		border: 1px solid var(--cc-line);
		border-top: 3px solid var(--cc-brand);
		background: var(--cc-white);
		box-shadow: 0 30px 60px rgb(29 34 50 / 0.22);
		opacity: 0;
		visibility: hidden;
		transform: translateY(6px);
		transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s;
	}

	.cc-nav__item.is-open > .cc-nav__panel,
	.cc-nav__item:hover > .cc-nav__panel,
	.cc-nav__item:focus-within > .cc-nav__panel {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}

	.cc-nav__panel-main {
		padding: 1rem 0;
	}

	/* Paneel met een kaart rechts: twee kolommen, rechts uitgelijnd onder het hoofditem */
	.cc-nav__panel--card {
		left: auto;
		right: -24px;
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		width: min(600px, 100vw - 48px);
	}

	/* Dienstenpaneel: links onder het hoofditem, de groepen naast elkaar, de regel onderin over de volle breedte */
	.cc-nav__panel--services {
		right: auto;
		left: -18px;
		grid-template-columns: minmax(0, 1fr) 280px;
		width: min(840px, 100vw - 360px);
	}

	.cc-nav__panel--services .cc-nav__sub {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cc-nav__panel--services .cc-nav__subitem {
		grid-column: 1 / -1;
	}

	.cc-nav__panel--services .cc-nav__group,
	.cc-nav__panel--services .cc-nav__group + .cc-nav__group {
		margin-top: 0.5rem;
		padding-top: 0.875rem;
		border-top: 1px solid var(--cc-line);
	}

	.cc-nav__panel--services .cc-nav__group + .cc-nav__group {
		border-left: 1px solid var(--cc-line);
	}

	/* Groepstitel als onderstreepte link, de diensten eronder kleiner met een pijltje ervoor */
	.cc-nav__panel--services .cc-nav__group-title {
		padding: 0;
		color: var(--cc-ink);
		font-size: 0.9375rem;
		font-weight: 700;
		letter-spacing: 0;
		text-transform: none;
	}

	.cc-nav__panel--services .cc-nav__group-title::before {
		display: none;
	}

	.cc-nav__panel--services .cc-nav__group-title a {
		padding: 0.5rem 1.5rem;
		text-decoration: underline;
		text-decoration-color: var(--cc-brand);
		text-decoration-thickness: 1.5px;
		text-underline-offset: 5px;
	}

	.cc-nav__panel--services .cc-nav__group-title a:hover {
		color: var(--cc-brand);
	}

	.cc-nav__panel--services p.cc-nav__group-desc {
		display: none;
	}

	.cc-nav__panel--services .cc-nav__group-items {
		margin: 0.125rem 0 0.25rem;
	}

	.cc-nav__panel--services .cc-nav__group-items .cc-nav__sublink {
		padding: 0.4375rem 1.5rem;
	}

	.cc-nav__panel--services .cc-nav__group-items .cc-nav__sublink-title {
		justify-content: flex-start;
		gap: 0.625rem;
		color: var(--cc-text-2);
		font-size: 0.875rem;
		font-weight: 500;
	}

	.cc-nav__panel--services .cc-nav__group-items .cc-nav__sublink-title::before {
		content: "→";
		flex: 0 0 auto;
		color: var(--cc-brand);
		font-size: 0.8125rem;
	}

	.cc-nav__panel--services .cc-nav__group-items .cc-nav__sublink-title::after {
		content: none;
	}

	.cc-nav__panel--services .cc-nav__group-items .cc-nav__sublink:hover .cc-nav__sublink-title,
	.cc-nav__panel--services .cc-nav__group-items .is-current > .cc-nav__sublink .cc-nav__sublink-title {
		color: var(--cc-brand);
	}

	.cc-nav__panel--services .cc-nav__card {
		min-height: 0;
	}

	/* De foto is breed: uitgesneden rond de persoon (iets rechts van het midden). */
	.cc-nav__panel--services .cc-nav__card-photo {
		object-position: 55% center;
	}

	.cc-nav__panel--services .cc-nav__panel-foot {
		grid-column: 1 / -1;
	}

	.cc-nav__panel--services .cc-nav__panel-foot-inner {
		padding: 0.875rem 1.5rem;
	}

	/* Megamenu over de volle breedte van de header */
	.cc-nav__item--mega {
		position: static;
	}

	.cc-nav__panel--mega {
		right: 0;
		left: 0;
		width: auto;
		border-right: 0;
		border-left: 0;
	}

	.cc-nav__panel--mega .cc-nav__sub {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
		gap: 1.5rem;
		padding: 2.25rem 0 2rem;
	}

	.cc-nav__panel--mega .cc-nav__group {
		display: flex;
		flex-direction: column;
		margin: 0;
		padding: 0;
		border: 1px solid var(--cc-line);
	}

	.cc-nav__group-head {
		padding: 1.5rem 1.5rem 1.375rem;
		border-bottom: 1px solid var(--cc-line);
		background: var(--cc-light);
		transition: background-color 0.15s;
	}

	a.cc-nav__group-head:hover {
		background: #f8e6d6;
	}

	.cc-nav__panel--mega .cc-nav__group-items {
		padding: 0.625rem 0;
	}

	.cc-nav__panel--mega .cc-nav__sublink-title {
		font-weight: 600;
	}
}

/* Footer */
.cc-footer {
	padding: 3.5rem 0 2rem;
	background: var(--cc-ink);
	color: var(--cc-white);
	font-size: 0.9375rem;
}

.cc-footer a {
	text-decoration: none;
}

.cc-footer__top {
	display: flex;
	flex-wrap: wrap;
	gap: 2.5rem 4rem;
	align-items: flex-start;
	justify-content: space-between;
	padding-bottom: 3rem;
	border-bottom: 1px solid rgb(255 255 255 / 0.14);
}

.cc-footer__logo {
	display: block;
	width: auto;
	height: 52px;
	filter: brightness(0) invert(1);
}

.cc-footer__socials {
	display: flex;
	gap: 1.25rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
}

.cc-footer__socials a {
	display: flex;
	margin: -0.5rem;
	padding: 0.5rem;
	color: var(--cc-white);
}

.cc-footer__socials a:hover {
	color: var(--cc-accent);
}

.cc-footer__socials .cc-icon {
	width: 1.375rem;
	height: 1.375rem;
	color: inherit;
}

.cc-footer__contact {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem 4.5rem;
}

.cc-footer__contact p {
	margin: 0;
	color: var(--cc-white);
	font-size: 1.125rem;
}

.cc-footer__contact a {
	display: inline-block;
	margin-top: 0.875rem;
	font-family: var(--cc-font-heading);
	font-size: clamp(1.5rem, 2.4vw, 1.875rem);
	font-weight: 700;
	letter-spacing: -0.01em;
	overflow-wrap: anywhere;
}

.cc-footer__contact a:hover {
	color: var(--cc-accent);
}

.cc-footer__nav {
	padding: 3.5rem 0 4rem;
	border-bottom: 1px solid rgb(255 255 255 / 0.14);
}

.cc-footer__menu {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 3rem 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Kolomtitel met vierkantje; een titel zonder adres is een span (zie cc_footer_menu_heading). */
.cc-footer__menu > li > a,
.cc-footer__menu > li > span {
	display: flex;
	gap: 0.875rem;
	align-items: center;
	margin-bottom: 1.75rem;
	font-family: var(--cc-font-heading);
	font-size: 1.125rem;
	font-weight: 700;
}

.cc-footer__menu > li > a::before,
.cc-footer__menu > li > span::before {
	content: "";
	flex: 0 0 auto;
	width: 10px;
	height: 10px;
	background: var(--cc-brand);
}

/* De ruimte tussen de links (20px) zit in de link zelf, zodat het aanraakvlak groter is. */
.cc-footer__menu .sub-menu {
	display: grid;
	margin: -0.625rem 0;
	padding: 0;
	list-style: none;
}

.cc-footer__menu .sub-menu a {
	display: block;
	padding-block: 0.625rem;
	color: rgb(255 255 255 / 0.78);
	line-height: 1.4;
	transition: color 0.12s;
}

.cc-footer__menu .sub-menu .is-highlight a {
	color: var(--cc-white);
	font-weight: 700;
}

.cc-footer__menu .sub-menu a:hover {
	color: var(--cc-accent);
}

.cc-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem 2.5rem;
	align-items: center;
	padding-top: 1.75rem;
	color: rgb(255 255 255 / 0.78);
}

.cc-footer__bottom > a:first-child,
.cc-footer__legal a {
	display: inline-block;
	padding-block: 0.4375rem;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.cc-footer__bottom a:hover {
	color: var(--cc-white);
}

.cc-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	margin: 0 0 0 auto;
	padding: 0;
	list-style: none;
}

.cc-footer__top-link {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 4px;
	background: rgb(255 255 255 / 0.06);
	color: var(--cc-white);
}

.cc-footer .cc-footer__top-link:hover {
	background: var(--cc-brand);
}

/* Mobiel: alles links uitgelijnd in nette regels, de pijl rechts naast de eerste regel. */
@media (max-width: 699px) {
	.cc-footer__bottom {
		position: relative;
		gap: 0.5rem 1.5rem;
		padding-right: 3.5rem;
	}

	.cc-footer__legal {
		flex: 0 0 calc(100% + 3.5rem); /* eigen regel over de volle breedte; de pijl staat naast de eerste regel */
		gap: 0.5rem 1.5rem;
		margin: 0 -3.5rem 0 0;
	}

	.cc-footer__top-link {
		position: absolute;
		top: 1.75rem;
		right: 0;
	}
}

/* Auteursvak onder een bericht of klantverhaal */
.cc-author__inner {
	display: grid;
	grid-template-columns: 7rem 1fr;
	gap: 1.5rem 2rem;
	align-items: center;
	max-width: calc(760px + 2 * var(--cc-gutter));
}

.cc-author__photo {
	overflow: hidden;
	background: var(--cc-light);
	aspect-ratio: 4 / 5;
}

.cc-author__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.cc-author .cc-eyebrow {
	margin-bottom: 0.5rem;
}

.cc-author__name {
	margin: 0;
	font-family: var(--cc-font-heading);
	font-size: 1.375rem;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.cc-author__role {
	margin: 0.125rem 0 0;
	color: var(--cc-muted);
}

.cc-author__bio {
	margin-top: 0.75rem;
	color: var(--cc-text-2);
}

.cc-author__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	align-items: center;
	margin: 1rem 0 0;
	font-size: 0.9375rem;
}

.cc-author__links a {
	text-decoration: none;
}

/* Kennisbank: artikelkaart (overzichtsblok en "Verder lezen") */
.cc-article-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border-radius: 10px;
	background: var(--cc-light);
	color: var(--cc-ink);
}

.cc-article-card__image {
	overflow: hidden;
	background: var(--cc-light);
}

.cc-article-card__image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 0.32s ease, opacity 0.2s ease;
}

.cc-article-card:hover .cc-article-card__image img {
	opacity: 0.88;
	transform: scale(1.05);
}

.cc-article-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: clamp(1.25rem, 2.4vw, 1.75rem);
}

.cc-article-card__category {
	margin: 0 0 0.625rem;
	color: var(--cc-brand);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.cc-article-card__title {
	margin: 0 0 0.625rem;
	font-size: 1.3125rem;
	line-height: 1.25;
	letter-spacing: -0.01em;
	text-wrap: pretty;
}

.cc-article-card__title a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
	transition: color 0.12s, text-decoration-color 0.12s;
}

.cc-article-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.cc-article-card:hover .cc-article-card__title a {
	color: var(--cc-brand);
	text-decoration-color: var(--cc-brand);
}

.cc-article-card__excerpt {
	display: -webkit-box;
	overflow: hidden;
	margin: 0 0 1.25rem;
	color: var(--cc-text-2);
	font-size: 0.9375rem;
	line-height: 1.55;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.cc-article-card__meta {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	justify-content: space-between;
	margin-top: auto;
	padding-top: 0.875rem;
	border-top: 1px solid rgb(29 34 50 / 0.1);
	color: var(--cc-muted);
	font-size: 0.8125rem;
}

.cc-article-card__more {
	display: inline-flex;
	gap: 0.375rem;
	align-items: center;
	color: var(--cc-brand);
	font-weight: 600;
	white-space: nowrap;
}

.cc-article-card__more::after {
	content: "→";
}

/* Artikel: kop op donker met onderwerp, titel en auteur · datum · leestijd */
.cc-article-hero .cc-hero__content {
	max-width: 900px;
}

.cc-article-hero .cc-section-title {
	font-size: clamp(2.125rem, 4.8vw, 3.5rem);
	line-height: 1.08;
	letter-spacing: -0.03em;
}

.cc-article-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem 0.75rem;
	align-items: center;
	margin: 1.5rem 0 0;
	color: rgb(255 248 243 / 0.86);
	font-size: clamp(1.0625rem, 1.6vw, 1.1875rem);
}

.cc-article-hero__author {
	color: var(--cc-white);
	font-weight: 600;
}

/* Hoofdafbeelding links op de overgang van donker naar wit, 12:7 */
.cc-article-hero .cc-hero__overlap {
	margin-top: clamp(2.5rem, 5vw, 4rem);
}

.cc-article-hero__media {
	width: max(80%, min(100%, 600px));
	overflow: hidden;
	border-radius: 10px;
	background: var(--cc-light);
}

.cc-article-hero__media img {
	display: block;
	width: 100%;
	min-height: 200px;
	aspect-ratio: 12 / 7;
	object-fit: cover;
	object-position: right 40%;
}

/* Leeskolom: 90% van de breedte van de foto, links uitgelijnd */
.cc-article__main {
	padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(4rem, 8vw, 6.5rem);
}

.cc-article__column {
	width: max(72%, min(100%, 600px));
	color: var(--cc-ink);
	font-size: clamp(1rem, 1.4vw, 1.125rem);
	line-height: 1.7;
}

/* De eerste alinea is de intro: groter en iets zwaarder */
.cc-article__body > p:first-child {
	margin-bottom: clamp(2rem, 4vw, 2.5rem);
	font-size: clamp(1.1875rem, 1.8vw, 1.375rem);
	font-weight: 500;
	line-height: 1.55;
	text-wrap: pretty;
}

.cc-article__body.cc-prose {
	color: var(--cc-ink);
}

.cc-article__body > * + * {
	margin-top: 1.2em;
}

.cc-article__body h2 {
	margin: 2.2em 0 0.6em;
	font-size: clamp(1.5rem, 2.4vw, 1.875rem);
	line-height: 1.2;
	letter-spacing: -0.02em;
	text-wrap: balance;
}

.cc-article__body h3 {
	margin: 1.8em 0 0.5em;
	font-size: clamp(1.25rem, 1.8vw, 1.5rem);
	line-height: 1.25;
}

.cc-article__body ul,
.cc-article__body ol {
	padding-left: 1.25em;
}

.cc-article__body li + li {
	margin-top: 0.375em;
}

.cc-article__body a {
	color: var(--cc-brand);
}

.cc-article__body .cc-note {
	margin: 1.8em 0;
}

/* Onder de tekst: auteur links, deelknoppen rechts */
.cc-article-footer {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem 1rem;
	align-items: center;
	margin-top: clamp(3rem, 6vw, 4rem);
	padding-top: 2rem;
	border-top: 1px solid rgb(29 34 50 / 0.12);
}

.cc-article-footer__author {
	display: flex;
	gap: 1rem;
	align-items: center;
}

.cc-article-footer__photo {
	display: grid;
	flex: 0 0 auto;
	place-items: center;
	width: 4rem;
	height: 4rem;
	overflow: hidden;
	border-radius: 50%;
	background: var(--cc-light);
	color: var(--cc-brand);
	font-weight: 800;
}

.cc-article-footer__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cc-article-footer__who {
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
	line-height: 1.4;
}

.cc-article-footer__label {
	color: var(--cc-muted);
	font-size: 0.8125rem;
}

.cc-article-footer__name {
	font-family: var(--cc-font-heading);
	font-size: 1.125rem;
	font-weight: 800;
}

.cc-article-footer__role {
	color: var(--cc-text-2);
	font-size: 0.875rem;
}

.cc-article-footer__linkedin {
	display: inline-flex;
	align-self: flex-start;
	margin-top: 0.375rem;
	color: #0b84cb;
}

.cc-article-footer__linkedin .cc-icon {
	display: grid;
	place-items: center;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 4px;
	background: currentColor;
}

.cc-article-footer__linkedin .cc-icon svg {
	width: 0.875rem;
	height: 0.875rem;
	color: var(--cc-white);
}

.cc-article-footer__share {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	margin-left: auto;
}

.cc-share {
	display: flex;
	gap: 0.5rem;
}

.cc-share__button {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 1px solid rgb(29 34 50 / 0.16);
	border-radius: 50%;
	background: var(--cc-white);
	color: var(--cc-ink);
	cursor: pointer;
	transition: border-color 0.12s, color 0.12s;
}

.cc-share__button:hover {
	border-color: var(--cc-brand);
	color: var(--cc-brand);
}

.cc-share__button .cc-icon svg {
	width: 1.0625rem;
	height: 1.0625rem;
}

.cc-share__button.is-copied {
	border-color: var(--cc-brand);
	color: var(--cc-brand);
}

/* Dienst-CTA onder het artikel */
.cc-article__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem 2.5rem;
	align-items: center;
	justify-content: space-between;
	margin-top: clamp(2.5rem, 5vw, 3.5rem);
	padding: clamp(1.75rem, 4vw, 3rem);
	border-radius: 10px;
	background: var(--cc-light);
}

.cc-article__cta > div {
	flex: 1 1 320px;
	min-width: 0;
}

.cc-article__cta-title {
	margin: 0 0 0.75rem;
	font-size: clamp(1.375rem, 2.2vw, 1.75rem);
	line-height: 1.2;
	letter-spacing: -0.02em;
	text-wrap: balance;
}

.cc-article__cta p {
	margin: 0;
	font-size: 1rem;
	line-height: 1.6;
}

.cc-article__cta .cc-button {
	flex: none;
}

/* Verder lezen */
.cc-article-related__inner {
	padding-top: clamp(3rem, 6vw, 4.5rem);
	border-top: 1px solid rgb(29 34 50 / 0.08);
}

.cc-article-related .cc-articles__list {
	gap: 1.5rem;
}

.cc-article-related .cc-section-header {
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

/* Kop op één regel, kleiner dan een sectiekop (design Artikel) */
.cc-article-related .cc-section-title {
	font-size: clamp(1.75rem, 3vw, 2.5rem);
}

/* Klantverhaal: bredere tekstkolom in de drie delen (kop links, tekst rechts) */
.single-cc_case .cc-text-media--media-below .cc-text-media__body {
	max-width: 44rem;
	font-size: 1.0625rem;
}

/* Cookie-instellingen in de footer: oogt als de juridische links */
.cc-footer__cookies {
	padding: 0.4375rem 0;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.cc-footer__cookies:hover {
	color: var(--cc-white);
}

/* Cookiebanner (inc/consent.php, assets/js/consent.js): vlak rechtsonder, op mobiel over de volle breedte */
.cc-consent {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 1000;
	box-sizing: border-box;
	width: min(30rem, calc(100% - 2rem));
	max-height: calc(100vh - 2rem);
	overflow-y: auto;
	border: 1px solid var(--cc-line);
	border-radius: var(--cc-radius);
	background: var(--cc-white);
	box-shadow: 0 12px 40px rgb(29 34 50 / 0.18);
	color: var(--cc-ink);
	font-size: 0.9375rem;
	line-height: 1.55;
}

.cc-consent[hidden] {
	display: none;
}

.cc-consent__inner {
	padding: 1.5rem;
}

.cc-consent__title {
	margin: 0 0 0.5rem;
	font-family: var(--cc-font-heading);
	font-size: 1.125rem;
	font-weight: 800;
}

.cc-consent__text {
	margin: 0;
	color: var(--cc-text-2);
}

.cc-consent__text a {
	color: var(--cc-brand);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cc-consent__prefs {
	display: grid;
	gap: 0.875rem;
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--cc-line);
}

.cc-consent__prefs[hidden] {
	display: none;
}

.cc-consent__pref {
	display: flex;
	gap: 0.75rem;
	align-items: flex-start;
	cursor: pointer;
}

.cc-consent__pref input {
	flex-shrink: 0;
	width: 1.125rem;
	height: 1.125rem;
	margin: 0.2rem 0 0;
	accent-color: var(--cc-brand);
}

.cc-consent__pref span {
	color: var(--cc-text-2);
	font-size: 0.875rem;
}

.cc-consent__pref strong {
	display: block;
	color: var(--cc-ink);
	font-size: 0.9375rem;
}

.cc-consent__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem;
	align-items: center;
	justify-content: flex-end;
	margin-top: 1.25rem;
}

.cc-consent__actions [hidden] {
	display: none;
}

.cc-consent__actions .cc-button {
	flex: 1 1 0;
	justify-content: center;
	white-space: nowrap;
}

.cc-consent__link {
	flex-basis: 100%;
	padding: 0.25rem 0;
	text-align: left;
	border: 0;
	background: none;
	color: var(--cc-ink);
	font: inherit;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

@media (max-width: 600px) {
	.cc-consent {
		right: 0;
		bottom: 0;
		width: 100%;
		border-width: 1px 0 0;
		border-radius: 0;
	}

	.cc-consent__inner {
		padding: 1.25rem var(--cc-gutter);
	}

	.cc-consent__actions .cc-button {
		flex-basis: 100%;
	}
}
