/* ==========================================================================
   KL Support Design 2.0 – zwart ontwerp rond eigen eventfoto's (Kadence)
   ========================================================================== */

body:not(.wp-admin),
.editor-styles-wrapper {
	--kl-bg: #000000;
	--kl-soft: #0C0F16;
	--kl-card: #11151E;
	--kl-line: #222838;
	--kl-ink: #FFFFFF;
	--kl-text: #C9CFDB;
	--kl-muted: #9AA2B3;
	--kl-blue: #3C5A99;
	--kl-blue-dark: #2E4678;
	--kl-blue-light: #8FA9E0;
	--kl-blue-soft: #E9EEF7;
	--kl-shade: 12, 17, 32;

	--kl-display: "Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;
	--kl-body: "Barlow", "Segoe UI", system-ui, sans-serif;

	--kl-wrap: 1200px;
	--kl-gutter: clamp(1.25rem, 5vw, 3rem);
	--kl-space: clamp(4rem, 8vw, 7rem);

	/* Kadence-palet, zodat header, menu, footer en knoppen meedoen */
	--global-palette1: #3C5A99;
	--global-palette2: #2E4678;
	--global-palette3: #FFFFFF;
	--global-palette4: #E6E9F0;
	--global-palette5: #C9CFDB;
	--global-palette6: #9AA2B3;
	--global-palette7: #11151E;
	--global-palette8: #0C0F16;
	--global-palette9: #000000;
	--global-palette9rgb: 0, 0, 0;
	--global-palette-highlight: #8FA9E0;
	--global-palette-highlight-alt: #B5C6EC;
	--global-palette-highlight-alt2: #000000;
	--global-palette-btn-bg: #3C5A99;
	--global-palette-btn-bg-hover: #2E4678;
	--global-palette-btn: #FFFFFF;
	--global-palette-btn-hover: #FFFFFF;
	--global-body-font-family: var(--kl-body);
	--global-heading-font-family: var(--kl-display);

	background: #000000;
	color: var(--kl-text);
}

body:not(.wp-admin) .site,
body:not(.wp-admin) .content-bg {
	background: #000000;
}

body:not(.wp-admin) :focus-visible {
	outline: 2px solid var(--kl-blue-light);
	outline-offset: 3px;
}

body:not(.wp-admin) h1,
body:not(.wp-admin) h2,
body:not(.wp-admin) h3,
body:not(.wp-admin) h4 {
	font-family: var(--kl-display);
}

/* --------------------------------------------------------------------------
   Header en footer (Kadence)
   -------------------------------------------------------------------------- */

#masthead,
#masthead .site-header-row-container-inner {
	background: #000000;
}

#masthead .site-main-header-wrap {
	border-bottom: 1px solid var(--kl-line);
}

#mobile-drawer .drawer-inner {
	background: #000000;
}

#colophon,
#colophon .site-footer-row-container-inner {
	background: #07090E;
	color: var(--kl-muted);
}

#colophon {
	border-top: 1px solid var(--kl-line);
}

/* --------------------------------------------------------------------------
   Kadence-paginaopmaak neutraliseren op pagina's met KL-secties
   -------------------------------------------------------------------------- */

body:has(.kl-section) .content-area {
	margin-top: 0;
	margin-bottom: 0;
}

body:has(.kl-section) .page-hero-section,
.entry:has(.kl-section) .entry-header {
	display: none;
}

.entry:has(.kl-section) {
	background: transparent;
	box-shadow: none;
	border-radius: 0;
}

.entry:has(.kl-section) .entry-content-wrap {
	padding: 0;
}

.entry-content > .kl-section {
	margin-top: 0;
	margin-bottom: 0;
}

/* --------------------------------------------------------------------------
   Basis voor alle secties
   -------------------------------------------------------------------------- */

body .kl-section {
	position: relative;
	background: var(--kl-bg);
	color: var(--kl-text);
	padding-block: var(--kl-space);
	margin: 0;
}

body .kl-section.kl-soft {
	background: var(--kl-soft);
}

body .kl-section .kl-wrap {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--kl-wrap);
	margin-inline: auto;
	padding-inline: var(--kl-gutter);
}

body .kl-section h1,
body .kl-section h2,
body .kl-section h3 {
	color: var(--kl-ink);
	font-family: var(--kl-display);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: -0.005em;
	margin: 0 0 0.5em;
}

body .kl-section h2 {
	font-size: clamp(2.2rem, 4.2vw, 3.4rem);
}

body .kl-section h3 {
	font-size: clamp(1.45rem, 2vw, 1.75rem);
	font-weight: 600;
}

body .kl-section p,
body .kl-section li {
	font-family: var(--kl-body);
	font-size: 1.0625rem;
	line-height: 1.65;
}

body .kl-section p {
	max-width: 62ch;
	margin: 0 0 1em;
}

body .kl-section a:not(.wp-block-button__link) {
	color: var(--kl-blue-light);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}

body .kl-section a:not(.wp-block-button__link):hover {
	color: #B5C6EC;
}

body .kl-section .kl-muted {
	color: var(--kl-muted);
}

body .kl-section .wp-block-columns {
	gap: clamp(2rem, 5vw, 4.5rem);
	margin-top: 0;
	margin-bottom: 0;
}

body .kl-section .wp-block-image {
	margin: 0;
}

body .kl-section .wp-block-image img {
	display: block;
	width: 100%;
	object-fit: cover;
	border-radius: 6px;
}

/* Knoppen */

body .kl-section .wp-block-buttons {
	gap: 0.75rem;
	margin-top: 1.75rem;
}

body .kl-section .wp-block-button__link {
	background: var(--kl-blue);
	color: #FFFFFF;
	border: 1px solid var(--kl-blue);
	border-radius: 4px;
	padding: 0.9em 1.5em;
	font-family: var(--kl-body);
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

body .kl-section .wp-block-button__link:hover {
	background: var(--kl-blue-dark);
	border-color: var(--kl-blue-dark);
	color: #FFFFFF;
}

body .kl-section .is-style-outline > .wp-block-button__link {
	background: transparent;
	color: #FFFFFF;
	border-color: rgba(255, 255, 255, 0.7);
}

body .kl-section .is-style-outline > .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: #FFFFFF;
}

body .kl-section .kl-btn-white > .wp-block-button__link {
	background: #FFFFFF;
	color: var(--kl-blue);
	border-color: #FFFFFF;
}

body .kl-section .kl-btn-white > .wp-block-button__link:hover {
	background: var(--kl-blue-soft);
	border-color: var(--kl-blue-soft);
	color: var(--kl-blue);
}

/* --------------------------------------------------------------------------
   Fotokop (hero op Home, paginakop op de andere pagina's)
   -------------------------------------------------------------------------- */

body .kl-section.kl-hero {
	display: flex;
	align-items: flex-end;
	min-height: min(82vh, 760px);
	padding-block: clamp(5rem, 12vh, 8rem) clamp(3rem, 7vh, 5rem);
	background-color: #000000;
	background-size: cover;
	background-position: center 40%;
	background-repeat: no-repeat;
	color: #FFFFFF;
}

body .kl-section.kl-hero.kl-hero-short {
	min-height: min(56vh, 520px);
	background-position: center 55%;
}

body .kl-section.kl-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(to top, rgba(var(--kl-shade), 0.85) 0%, rgba(var(--kl-shade), 0.45) 45%, rgba(var(--kl-shade), 0.08) 75%),
		linear-gradient(to right, rgba(var(--kl-shade), 0.55) 0%, rgba(var(--kl-shade), 0) 60%);
}

body .kl-section.kl-hero .kl-wrap {
	position: relative;
	z-index: 1;
}

body .kl-section.kl-hero h1 {
	color: #FFFFFF;
	font-size: clamp(3rem, 8.5vw, 6.5rem);
	line-height: 0.92;
	max-width: 12ch;
	margin-bottom: 1.25rem;
}

body .kl-section.kl-hero.kl-hero-short h1 {
	font-size: clamp(3rem, 7vw, 5.25rem);
}

body .kl-section.kl-hero p {
	color: rgba(255, 255, 255, 0.9);
	font-size: clamp(1.1rem, 1.6vw, 1.3rem);
	max-width: 44ch;
	margin: 0;
}

/* Achtergrondfoto's: wissel van foto door de klasse van de sectie te veranderen */
body .kl-section.kl-bg-hero             { background-image: url("img/hero.jpg"); }
body .kl-section.kl-bg-pano             { background-image: url("img/pano.jpg"); }
body .kl-section.kl-bg-design           { background-image: url("img/design.jpg"); }
body .kl-section.kl-bg-licht            { background-image: url("img/licht.jpg"); }
body .kl-section.kl-bg-geluid           { background-image: url("img/geluid.jpg"); }
body .kl-section.kl-bg-show             { background-image: url("img/show.jpg"); }
body .kl-section.kl-bg-crowd            { background-image: url("img/crowd.jpg"); }
body .kl-section.kl-bg-beams-groen      { background-image: url("img/beams-groen.jpg"); }
body .kl-section.kl-bg-beams-rood-blauw { background-image: url("img/beams-rood-blauw.jpg"); }

/* --------------------------------------------------------------------------
   Beloftes
   -------------------------------------------------------------------------- */

body .kl-section.kl-promises {
	padding-block: clamp(3rem, 6vw, 4.5rem);
	border-bottom: 1px solid var(--kl-line);
}

body .kl-section .kl-promise {
	border-top: 3px solid var(--kl-blue);
	border-radius: 0;
	padding-top: 1.1rem;
}

body .kl-section .kl-promise h3 {
	margin-bottom: 0.35em;
}

body .kl-section .kl-promise p {
	color: var(--kl-muted);
	font-size: 1rem;
	margin: 0;
}

/* --------------------------------------------------------------------------
   Sectiekop met link rechts
   -------------------------------------------------------------------------- */

body .kl-section .kl-head:not(:has(> .wp-block-group__inner-container)),
body .kl-section .kl-head > .wp-block-group__inner-container {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 1rem 1.5rem;
	flex-wrap: wrap;
}

body .kl-section .kl-head {
	margin-bottom: 2.5rem;
}

body .kl-section .kl-head h2,
body .kl-section .kl-head p {
	margin: 0;
}

body .kl-section .kl-head h2 + p {
	margin-top: 0.75rem;
}

/* --------------------------------------------------------------------------
   Dienstkaarten
   -------------------------------------------------------------------------- */

body .kl-section .kl-cards:not(:has(> .wp-block-group__inner-container)),
body .kl-section .kl-cards > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	gap: clamp(1.25rem, 2.5vw, 2rem);
}

body .kl-section .kl-card {
	background: var(--kl-card);
	border: 1px solid var(--kl-line);
	border-radius: 6px;
	overflow: hidden;
	margin: 0;
}

body .kl-section .kl-card .wp-block-image img {
	aspect-ratio: 16 / 10;
	border-radius: 0;
}

body .kl-section .kl-card-body {
	padding: 1.5rem 1.6rem 1.75rem;
	margin: 0;
}

body .kl-section .kl-card-body p {
	color: var(--kl-muted);
	margin-bottom: 1.1rem;
}

body .kl-section .kl-card-body p:last-child {
	margin-bottom: 0;
}

/* --------------------------------------------------------------------------
   Foto naast tekst
   -------------------------------------------------------------------------- */

body .kl-section .kl-split {
	align-items: center;
}

body .kl-section .kl-split .wp-block-image img {
	aspect-ratio: 4 / 3;
}

body .kl-section .kl-split p {
	color: var(--kl-muted);
}

@media (min-width: 782px) {
	body .kl-section .kl-split.kl-reverse > .wp-block-column:first-child {
		order: 2;
	}
}

body .kl-section .kl-service + .kl-service {
	margin-top: var(--kl-space);
}

body .kl-section .kl-service h2 {
	font-size: clamp(2.2rem, 4vw, 3.2rem);
}

body .kl-section .kl-checks {
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
}

body .kl-section .kl-checks li {
	position: relative;
	margin: 0;
	padding: 0.65rem 0 0.65rem 1.75rem;
	border-top: 1px solid var(--kl-line);
	color: var(--kl-text);
}

body .kl-section .kl-checks li:last-child {
	border-bottom: 1px solid var(--kl-line);
}

body .kl-section .kl-checks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.25em;
	width: 0.9rem;
	height: 2px;
	background: var(--kl-blue-light);
}

/* --------------------------------------------------------------------------
   Uitgelicht project (fotocollage)
   -------------------------------------------------------------------------- */

body .kl-section .kl-feature:not(:has(> .wp-block-group__inner-container)),
body .kl-section .kl-feature > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

body .kl-section .kl-feature .wp-block-image {
	position: relative;
	overflow: hidden;
	border-radius: 6px;
	margin: 0;
}

body .kl-section .kl-feature .wp-block-image img {
	height: 100%;
	aspect-ratio: 4 / 3;
	border-radius: 0;
}

body .kl-section .kl-feature .wp-block-image.kl-big {
	grid-column: 1 / -1;
}

body .kl-section .kl-feature .wp-block-image.kl-big img {
	aspect-ratio: 21 / 9;
}

body .kl-section .kl-feature figcaption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0;
	padding: 2.5rem 1.25rem 1.1rem;
	background: linear-gradient(to top, rgba(var(--kl-shade), 0.85), rgba(var(--kl-shade), 0));
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.95rem;
	text-align: left;
	font-family: var(--kl-body);
}

body .kl-section .kl-feature figcaption strong {
	display: block;
	color: #FFFFFF;
	font-family: var(--kl-display);
	font-size: clamp(1.8rem, 3vw, 2.4rem);
	font-weight: 700;
	line-height: 1.05;
}

@media (max-width: 700px) {
	body .kl-section .kl-feature:not(:has(> .wp-block-group__inner-container)),
	body .kl-section .kl-feature > .wp-block-group__inner-container {
		grid-template-columns: 1fr;
	}

	body .kl-section .kl-feature .wp-block-image.kl-big img {
		aspect-ratio: 4 / 3;
	}
}

/* --------------------------------------------------------------------------
   Werkwijze
   -------------------------------------------------------------------------- */

body .kl-section .kl-steps {
	list-style: none;
	counter-reset: kl-step;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 2rem;
	margin: 2.5rem 0 0;
	padding: 0;
}

body .kl-section .kl-steps li {
	counter-increment: kl-step;
	margin: 0;
	padding-top: 1rem;
	border-top: 1px solid var(--kl-line);
	color: var(--kl-muted);
	font-size: 1rem;
}

body .kl-section .kl-steps li::before {
	content: counter(kl-step);
	display: block;
	margin-bottom: 0.6rem;
	color: var(--kl-blue-light);
	font-family: var(--kl-display);
	font-size: 2.75rem;
	font-weight: 700;
	line-height: 1;
}

body .kl-section .kl-steps li strong {
	display: block;
	margin-bottom: 0.25rem;
	color: var(--kl-ink);
	font-family: var(--kl-display);
	font-size: 1.45rem;
	font-weight: 600;
}

/* --------------------------------------------------------------------------
   Offerte-oproep
   -------------------------------------------------------------------------- */

body .kl-section.kl-cta {
	background: var(--kl-blue);
	padding-block: clamp(4rem, 8vw, 6rem);
}

body .kl-section.kl-cta .kl-wrap:not(:has(> .wp-block-group__inner-container)),
body .kl-section.kl-cta .kl-wrap > .wp-block-group__inner-container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 2rem;
	flex-wrap: wrap;
}

body .kl-section.kl-cta h2 {
	color: #FFFFFF;
	margin-bottom: 0.35em;
}

body .kl-section.kl-cta p {
	color: rgba(255, 255, 255, 0.88);
	margin: 0;
}

body .kl-section.kl-cta .wp-block-buttons {
	margin-top: 0;
}

/* --------------------------------------------------------------------------
   Contact en formulieren
   -------------------------------------------------------------------------- */

body .kl-section .kl-panel {
	align-self: flex-start;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: var(--kl-card);
	border: 1px solid var(--kl-line);
	border-radius: 6px;
}

body .kl-section .kl-panel h3:not(:first-child) {
	margin-top: 1.75rem;
}

body .kl-section label {
	color: var(--kl-text);
	font-weight: 500;
}

body .kl-section input[type="text"],
body .kl-section input[type="email"],
body .kl-section input[type="tel"],
body .kl-section input[type="date"],
body .kl-section input[type="number"],
body .kl-section textarea,
body .kl-section select {
	box-sizing: border-box;
	width: 100%;
	padding: 0.8em 1em;
	background: var(--kl-card);
	color: #FFFFFF;
	border: 1px solid var(--kl-line);
	border-radius: 4px;
	font: inherit;
}

body .kl-section input:focus,
body .kl-section textarea:focus,
body .kl-section select:focus {
	outline: none;
	border-color: var(--kl-blue-light);
	box-shadow: 0 0 0 3px rgba(143, 169, 224, 0.25);
}

body .kl-section ::placeholder {
	color: var(--kl-muted);
}

body .kl-section button[type="submit"],
body .kl-section input[type="submit"],
body .kl-section .kb-forms-submit {
	background: var(--kl-blue);
	color: #FFFFFF;
	border: 0;
	border-radius: 4px;
	padding: 0.9em 1.5em;
	font-family: var(--kl-body);
	font-weight: 600;
	cursor: pointer;
}

body .kl-section button[type="submit"]:hover,
body .kl-section input[type="submit"]:hover,
body .kl-section .kb-forms-submit:hover {
	background: var(--kl-blue-dark);
}

@media (prefers-reduced-motion: reduce) {
	body .kl-section .wp-block-button__link {
		transition: none;
	}
}
