/* ==========================================================================
   Renofloorz - hoofdstylesheet
   ========================================================================== */

@font-face { font-family: "Figtree"; font-style: normal; font-weight: 300 900; font-display: swap; src: url("../fonts/figtree-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 300 900; font-display: swap; src: url("../fonts/figtree-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/plexmono-400-latin.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/plexmono-500-latin.woff2") format("woff2"); }

:root {
	--rf-blue: #1a87dc;
	--rf-blue-dark: #146db4;
	--rf-blue-soft: #d8ecfa;
	--rf-green: #46ae4e;
	--rf-green-dark: #2f7f39;
	--rf-green-bg: #e4f6ea;
	--rf-green-card: #d5f0de;
	--rf-green-line: #c9e6d3;
	--rf-ink: #1a1d21;
	--rf-text: #3d4348;
	--rf-muted: #6e767d;
	--rf-muted-2: #8b939b;
	--rf-line: #e4e8eb;
	--rf-line-2: #eef1f4;
	--rf-dark: #12161a;
	--rf-dark-line: #262c32;
	--rf-radius: 0 0 32px 0;
	--rf-radius-sm: 0 0 24px 0;
	--rf-wrap: 1240px;
	--rf-read: 820px;
	--rf-gutter: 32px;
	--rf-section: 76px;
	--rf-font: "Figtree", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--rf-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	--rf-header-h: 88px;
}

@media (max-width: 1023px) { :root { --rf-gutter: 24px; --rf-section: 60px; --rf-header-h: 72px; } }
@media (max-width: 599px) { :root { --rf-gutter: 18px; --rf-section: 48px; } }

/* Basis ---------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--rf-header-h) + 16px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { margin: 0; background: #fff; color: var(--rf-ink); font-family: var(--rf-font); font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
a { color: var(--rf-blue); text-decoration: none; }
a:hover { color: var(--rf-blue-dark); }
::selection { background: var(--rf-blue); color: #fff; }
:focus-visible { outline: 3px solid var(--rf-green); outline-offset: 2px; }
p { margin: 0 0 1em; }
h1, h2, h3, h4 { color: var(--rf-ink); font-weight: 800; line-height: 1.12; margin: 0 0 .5em; text-transform: uppercase; letter-spacing: .005em; overflow-wrap: break-word; }
@media (max-width: 599px) { h1, h2, h3 { hyphens: auto; } }
h1 { font-size: clamp(34px, 5vw, 54px); line-height: 1.08; }
h2 { font-size: clamp(26px, 3.2vw, 34px); }
h3 { font-size: clamp(19px, 2vw, 22px); line-height: 1.25; }
h4 { font-size: 17px; }
strong, b { font-weight: 700; }
address { font-style: normal; }
.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.rf-skip { position: absolute; left: 12px; top: -60px; z-index: 1000; background: var(--rf-blue); color: #fff; padding: 10px 16px; border-radius: 4px; font-weight: 700; }
.rf-skip:focus { top: 12px; color: #fff; }
.rf-wrap { width: 100%; max-width: calc(var(--rf-wrap) + var(--rf-gutter) * 2); margin-inline: auto; padding-inline: var(--rf-gutter); }

/* Knoppen -------------------------------------------------------------- */
.rf-btn,
.wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 24px; border-radius: 4px; border: 1px solid transparent; font: 600 16px/1.2 var(--rf-font); text-align: center; text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; background: var(--rf-blue); color: #fff; }
.rf-btn:hover, .wp-block-button__link:hover { background: var(--rf-blue-dark); color: #fff; }
.rf-btn--lg { min-height: 52px; padding: 14px 28px; font-size: 16.5px; }
.rf-btn--block { display: flex; width: 100%; }
.rf-btn--ghost, .is-style-outline > .wp-block-button__link, .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--rf-ink); border-color: #cfd8de; }
.rf-btn--ghost:hover, .is-style-outline > .wp-block-button__link:hover { background: var(--rf-line-2); color: var(--rf-ink); border-color: #b9c4cc; }
.rf-btn--white, .rf-btn-white .wp-block-button__link { background: #fff; color: var(--rf-blue); font-weight: 700; }
.rf-btn--white:hover, .rf-btn-white .wp-block-button__link:hover { background: var(--rf-blue-soft); color: var(--rf-blue-dark); }
.rf-btn--outline-white, .rf-btn-outline-white .wp-block-button__link { background: transparent; color: #fff; border-color: #7cbdec; font-weight: 700; }
.rf-btn--outline-white:hover, .rf-btn-outline-white .wp-block-button__link:hover { background: rgba(255,255,255,.12); color: #fff; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-block: 0 1.2em; }
.wp-block-button { margin: 0; }
.rf-btn svg { flex: none; }

/* Header --------------------------------------------------------------- */
.rf-header { position: sticky; top: 0; z-index: 100; background: #fff; border-bottom: 1px solid var(--rf-line-2); }
.admin-bar .rf-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rf-header { top: 0; } }
.rf-header__inner { display: flex; align-items: center; gap: 24px; min-height: var(--rf-header-h); padding-block: 12px; }
.rf-logo { display: block; flex: none; margin-right: auto; }
.rf-logo__img { height: 46px; width: auto; }
.rf-nav { display: flex; align-items: center; gap: 22px; }
.rf-nav__list { display: flex; align-items: center; gap: 4px 22px; list-style: none; margin: 0; padding: 0; }
.rf-nav__list > li { position: relative; display: flex; align-items: center; }
.rf-nav__list a { color: var(--rf-ink); font-weight: 500; font-size: 15.5px; padding: 8px 0; white-space: nowrap; }
.rf-nav__list a:hover, .rf-nav__list .current-menu-item > a, .rf-nav__list .current-menu-ancestor > a, .rf-nav__list .current-page-ancestor > a { color: var(--rf-blue); }
.rf-nav__list .current-menu-item > a, .rf-nav__list .current-menu-ancestor > a, .rf-nav__list .current-page-ancestor > a { font-weight: 600; }
.rf-nav__sub-toggle { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 28px; margin-left: 2px; padding: 0; border: 0; background: none; cursor: pointer; color: var(--rf-muted); }
.rf-nav__sub-toggle span { width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .15s; }
.rf-nav__list .sub-menu { list-style: none; margin: 0; padding: 10px 0; position: absolute; top: 100%; left: -18px; min-width: 260px; background: #fff; border: 1px solid var(--rf-line); border-radius: 0 0 20px 0; box-shadow: 0 14px 30px rgba(18,22,26,.08); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s, transform .15s, visibility .15s; }
.rf-nav__list .sub-menu a { display: block; padding: 9px 18px; font-size: 15px; }
.rf-nav__list > li:hover > .sub-menu, .rf-nav__list > li:focus-within > .sub-menu, .rf-nav__list > li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.rf-nav__actions { display: flex; align-items: center; gap: 18px; }
.rf-nav__phone { color: var(--rf-ink); font-weight: 700; font-size: 17px; white-space: nowrap; }
.rf-header__toggle, .rf-header__call { display: none; }

@media (max-width: 1199px) {
	.rf-header__inner { gap: 8px; }
	.rf-logo__img { height: 38px; }
	.rf-header__call, .rf-header__toggle { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 4px; border: 1px solid var(--rf-line); background: #fff; color: var(--rf-ink); cursor: pointer; padding: 0; }
	.rf-header__call { color: var(--rf-blue); }
	.rf-header__toggle-open { display: inline-flex; }
	.rf-header__toggle-close { display: none; }
	.rf-header__toggle[aria-expanded="true"] .rf-header__toggle-open { display: none; }
	.rf-header__toggle[aria-expanded="true"] .rf-header__toggle-close { display: inline-flex; }
	.rf-nav { position: fixed; inset: var(--rf-header-h) 0 0 0; z-index: 99; display: none; flex-direction: column; align-items: stretch; gap: 0; background: #fff; padding: 12px var(--rf-gutter) 32px; overflow-y: auto; border-top: 1px solid var(--rf-line-2); }
	.admin-bar .rf-nav { top: calc(var(--rf-header-h) + 32px); }
	.rf-nav.is-open { display: flex; }
	.rf-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
	.rf-nav__list > li { flex-wrap: wrap; border-bottom: 1px solid var(--rf-line-2); }
	.rf-nav__list > li > a { flex: 1; padding: 16px 0; font-size: 18px; font-weight: 600; }
	.rf-nav__sub-toggle { width: 48px; height: 48px; }
	.rf-nav__list > li.is-open > .rf-nav__sub-toggle span { transform: rotate(-135deg) translateY(-2px); }
	.rf-nav__list .sub-menu { position: static; display: none; width: 100%; min-width: 0; opacity: 1; visibility: visible; transform: none; border: 0; box-shadow: none; padding: 0 0 12px 14px; }
	.rf-nav__list > li.is-open > .sub-menu { display: block; }
	.rf-nav__list > li:hover > .sub-menu { display: none; }
	.rf-nav__list > li.is-open:hover > .sub-menu { display: block; }
	.rf-nav__actions { flex-direction: column; align-items: stretch; gap: 14px; margin-top: 24px; }
	.rf-nav__phone { text-align: center; padding: 10px; }
	body.rf-nav-open { overflow: hidden; }
}
@media (max-width: 782px) { .admin-bar .rf-nav { top: calc(var(--rf-header-h) + 46px); } }

/* Kruimelpad ----------------------------------------------------------- */
.rf-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; list-style: none; margin: 0 0 22px; padding: 0; font-family: var(--rf-mono); font-size: 12px; color: var(--rf-muted-2); }
.rf-crumbs li + li::before { content: "/"; margin: 0 8px; }
.rf-crumbs a { color: inherit; }
.rf-crumbs a:hover { color: var(--rf-blue); }
.rf-hero--band .rf-crumbs ol { color: #5c7f66; }

/* Labels --------------------------------------------------------------- */
.rf-eyebrow { color: var(--rf-green); font-weight: 700; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 16px; }
.rf-label { color: var(--rf-green-dark); font-weight: 700; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 12px; }
.rf-lead { font-size: 18.5px; line-height: 1.65; color: var(--rf-text); }

/* Hero ----------------------------------------------------------------- */
.rf-hero { background: #fff; }
.rf-hero__title { margin: 0 0 20px; max-width: 22ch; }
.rf-hero__intro { font-size: 18.5px; line-height: 1.65; color: var(--rf-text); max-width: 64ch; }
.rf-hero__intro p:last-child { margin-bottom: 0; }
.rf-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.rf-hero--split .rf-wrap { padding-block: 56px 72px; }
.rf-hero__grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: center; }
.rf-hero--split .rf-hero__intro { max-width: 56ch; }
.rf-hero--split .rf-hero__title { font-size: clamp(32px, 3.8vw, 50px); hyphens: manual; }
.rf-hero__media { border-radius: 0 0 40px 0; overflow: hidden; background: var(--rf-line-2); aspect-ratio: 5 / 4; }
.rf-hero__img { width: 100%; height: 100%; object-fit: cover; }
.rf-hero--band { background: var(--rf-green-bg); }
.rf-hero--band .rf-wrap, .rf-hero--plain .rf-wrap { padding-block: 26px 64px; }
.rf-hero--band .rf-hero__title, .rf-hero--plain .rf-hero__title { max-width: 24ch; font-size: clamp(32px, 4.6vw, 50px); }
.rf-hero--plain { border-bottom: 1px solid var(--rf-line-2); }
.rf-hero__crumbs ol { margin-top: 0; }
.rf-hero--band .rf-hero__text > .rf-crumbs:first-child, .rf-hero--plain .rf-hero__text > .rf-crumbs:first-child { padding-top: 0; }
@media (max-width: 1023px) {
	.rf-hero__grid { grid-template-columns: 1fr; gap: 32px; }
	.rf-hero--split .rf-wrap { padding-block: 32px 48px; }
	.rf-hero__media { aspect-ratio: 16 / 11; }
}
@media (max-width: 599px) {
	.rf-hero__actions .rf-btn { width: 100%; }
	.rf-hero__intro { font-size: 17px; }
}

/* Contentstromen ------------------------------------------------------- */
.rf-flow > *:first-child { margin-top: 0; }
.rf-flow--article { max-width: calc(var(--rf-read) + var(--rf-gutter) * 2); margin-inline: auto; padding: 56px var(--rf-gutter) 72px; }
.rf-flow--article > * { margin-top: 0; }
.rf-flow--sections > :not(.rf-section):not(.alignfull) { max-width: calc(var(--rf-wrap) + var(--rf-gutter) * 2); margin-inline: auto !important; padding-inline: var(--rf-gutter); }
.rf-flow--sections > p:first-child, .rf-flow--sections > h2:first-child { padding-top: var(--rf-section); }
.rf-flow--main { min-width: 0; }

.rf-flow p, .rf-flow li { color: var(--rf-text); }
.rf-flow--article p, .rf-flow--main p, .rf-flow--article li, .rf-flow--main li { font-size: 17.5px; line-height: 1.8; }
.rf-flow--article h2, .rf-flow--main h2 { font-size: clamp(24px, 2.8vw, 30px); margin: 1.6em 0 .55em; }
.rf-flow--article h3, .rf-flow--main h3 { font-size: 20px; margin: 1.5em 0 .5em; }
.rf-flow--article h4, .rf-flow--main h4 { margin: 1.3em 0 .4em; }
.rf-flow--article > h2:first-child, .rf-flow--main > h2:first-child { margin-top: 0; }
.rf-flow ul:not([class]), .rf-flow ol:not([class]), .rf-flow .wp-block-list:not(.rf-checks):not(.rf-link-list) { padding-left: 1.3em; margin: 0 0 1.2em; }
.rf-flow li + li { margin-top: .35em; }
.rf-flow a:not(.wp-block-button__link):not(.rf-btn) { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.rf-flow .rf-card a, .rf-flow .rf-kb-list a, .rf-flow .rf-link-list a, .rf-flow h3 a, .rf-flow .rf-contactline a, .rf-flow a.rf-more, .rf-flow .rf-nap a { text-decoration: none !important; }
.rf-flow blockquote { margin: 1.5em 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--rf-green); }
.rf-flow figure { margin: 0 0 1.6em; }
.rf-flow .wp-block-image img { width: 100%; border-radius: var(--rf-radius); }
.rf-flow--main .wp-block-image img, .rf-flow--article .wp-block-image img { max-height: 440px; object-fit: cover; }
.rf-flow .wp-block-image figcaption { font-size: 14px; color: var(--rf-muted); margin-top: 8px; }
.rf-flow aside { display: block; background: var(--rf-green-bg); border-radius: var(--rf-radius-sm); padding: 22px 26px; margin: 0 0 1.8em; font-size: 17.5px; line-height: 1.65; color: var(--rf-ink); }
.rf-flow aside::before { content: "In het kort"; display: block; color: var(--rf-green-dark); font-weight: 700; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 8px; }

/* Secties -------------------------------------------------------------- */
.rf-section { padding-block: var(--rf-section); padding-inline: max(var(--rf-gutter), calc((100% - var(--rf-wrap)) / 2)); background: #fff; }
.rf-section > .rf-narrow { max-width: var(--rf-read); margin-inline: auto !important; }
.rf-section--green { background: var(--rf-green-bg); }
.rf-section--line { border-top: 1px solid var(--rf-line-2); }
.rf-section--tight { padding-block: 0; }
.rf-section--blue { background: var(--rf-blue); color: #fff; padding-block: 56px; }
.rf-section--blue h2, .rf-section--blue p { color: #fff; }
.rf-section--projects:not(:has(.rf-projects)) { display: none; }
.rf-section h2 { margin-bottom: 12px; }
.rf-section .rf-intro { font-size: 17px; line-height: 1.65; color: var(--rf-text); max-width: 62ch; margin-bottom: 34px; }
.rf-center { text-align: center; }
.rf-center .rf-intro, .rf-center > p { margin-inline: auto; }
.rf-center .wp-block-buttons { justify-content: center; }
.rf-section-head { margin-bottom: 36px; }
.rf-section-head > :last-child { margin-bottom: 0; }

/* Cijferbalk */
.rf-stats { background: var(--rf-green-bg); }
.rf-stats__row, .wp-block-group.rf-stats { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rf-stat { padding: 32px 26px; border-right: 1px solid var(--rf-green-line); }
.rf-stat:first-child { padding-left: 0; }
.rf-stat:last-child { border-right: 0; padding-right: 0; }
.rf-stat__num, .rf-stat > p:first-child { font-weight: 800; font-size: clamp(30px, 3.4vw, 40px); color: var(--rf-blue); line-height: 1; margin: 0; }
.rf-stat__label, .rf-stat > p:last-child:not(:first-child) { font-size: 14.5px; color: var(--rf-text); margin: 8px 0 0; line-height: 1.4; }
.rf-stats--project { padding: 0; }
@media (max-width: 1023px) {
	.rf-stats__row, .wp-block-group.rf-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rf-stat { padding: 24px 18px; border-right: 0; border-bottom: 1px solid var(--rf-green-line); }
	.rf-stat:first-child { padding-left: 18px; }
	.rf-stat:nth-child(odd) { border-right: 1px solid var(--rf-green-line); padding-left: 0; }
	.rf-stat:nth-last-child(-n+2) { border-bottom: 0; }
	.rf-stat:last-child { padding-right: 18px; }
}

/* Kaartengrids (kolommen-blok met class) */
.wp-block-columns.rf-cards-2, .wp-block-columns.rf-cards-3, .wp-block-columns.rf-cards-4, .wp-block-columns.rf-steps, .wp-block-columns.rf-split { display: grid !important; gap: 26px; margin-block: 0 1em; flex-wrap: initial !important; }
.wp-block-columns.rf-cards-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wp-block-columns.rf-cards-3, .wp-block-columns.rf-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.wp-block-columns.rf-cards-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.wp-block-columns.rf-split { grid-template-columns: 1fr .9fr; gap: 56px; align-items: start; }
.wp-block-columns.rf-split--even { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.wp-block-columns.rf-split--narrow-left { grid-template-columns: .8fr 1.2fr; }
.wp-block-columns > .wp-block-column { flex-basis: auto !important; min-width: 0; margin: 0 !important; }
@media (max-width: 1023px) {
	.wp-block-columns.rf-cards-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wp-block-columns.rf-cards-3, .wp-block-columns.rf-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wp-block-columns.rf-split, .wp-block-columns.rf-split--even, .wp-block-columns.rf-split--narrow-left { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 699px) {
	.wp-block-columns.rf-cards-2, .wp-block-columns.rf-cards-3, .wp-block-columns.rf-cards-4, .wp-block-columns.rf-steps { grid-template-columns: 1fr; }
}

.rf-card { position: relative; background: #fff; border-radius: 0 0 40px 0; overflow: hidden; display: flex; flex-direction: column; }
.wp-block-column.rf-card > * { margin-inline: 34px; }
.wp-block-column.rf-card > :first-child:not(.wp-block-image) { margin-top: 30px; }
.wp-block-column.rf-card > :last-child { margin-bottom: 34px; }
.wp-block-column.rf-card > .wp-block-image { margin: 0 0 28px; }
.wp-block-column.rf-card > h3 { margin-bottom: 12px; }
.wp-block-column.rf-card > h3:not(:first-child) { margin-top: 0; }
.rf-card > .wp-block-image img { width: 100%; height: 240px; object-fit: cover; border-radius: 0; }
.rf-card h3 { font-size: 22px; margin-bottom: 12px; }
.rf-card h3 a { color: var(--rf-ink); }
.rf-card h3 a:hover { color: var(--rf-blue); }
.rf-card p { font-size: 16px; line-height: 1.65; }
.rf-card .wp-block-buttons { margin-top: auto; padding-top: 8px; }
.rf-card--green { background: var(--rf-green-card); }
.rf-card--line { border: 1px solid var(--rf-line); border-radius: 0 0 28px 0; }
.wp-block-column.rf-card--line > * { margin-inline: 24px; }
.wp-block-column.rf-card--line > :first-child:not(.wp-block-image) { margin-top: 26px; }
.wp-block-column.rf-card--line > :last-child { margin-bottom: 28px; }
.rf-card--line > .wp-block-image img { height: 170px; }
.rf-card--line h3 { font-size: 19px; }
.rf-card--link:hover { border-color: var(--rf-blue); }
.rf-card--link h3 a { color: var(--rf-ink); }
.rf-card--link h3 a::after { content: ""; position: absolute; inset: 0; }
.rf-card--link:hover h3 a { color: var(--rf-blue); }
.rf-card--link .rf-more { position: relative; }
.rf-kicker { font-family: var(--rf-mono); font-size: 11px; color: var(--rf-muted-2); margin-bottom: 14px !important; text-transform: lowercase; }
.rf-section--green .rf-card--line { border-color: var(--rf-green-line); }
@media (max-width: 599px) {
	.wp-block-column.rf-card > * { margin-inline: 22px; }
	.wp-block-column.rf-card > :first-child:not(.wp-block-image) { margin-top: 24px; }
	.wp-block-column.rf-card > :last-child { margin-bottom: 26px; }
	.rf-card > .wp-block-image img { height: 200px; }
}

.rf-more { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.rf-more::after { content: "→"; }

/* Vinkjeslijst */
.rf-checks { list-style: none; padding: 0 !important; margin-block: 0 24px; display: grid; gap: 8px; }
.rf-checks li { position: relative; padding-left: 26px; font-size: 15.5px; line-height: 1.5; margin: 0 !important; color: var(--rf-ink); }
.rf-checks li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--rf-green); font-weight: 700; }
.rf-flow--article .rf-checks li, .rf-flow--main .rf-checks li { font-size: 17px; line-height: 1.6; }

/* Stappen */
.rf-steps { counter-reset: rf-step; }
.rf-steps > .wp-block-column { counter-increment: rf-step; position: relative; background: var(--rf-blue); color: #fff; border-radius: 0 0 28px 0; padding: 26px 26px 64px; overflow: hidden; }
.rf-steps > .wp-block-column::after { content: counter(rf-step) "."; position: absolute; right: 22px; bottom: 6px; font-weight: 800; font-size: 52px; line-height: 1; color: #fff; opacity: .18; }
.rf-steps > .wp-block-column > .wp-block-image { margin: -26px -26px 22px; }
.rf-steps > .wp-block-column > .wp-block-image img { height: 180px; width: 100%; object-fit: cover; border-radius: 0; }
.rf-steps h3 { color: #fff; font-size: 18px; margin: 0 0 10px; }
.rf-steps p { color: #e0f0fb !important; font-size: 15.5px; line-height: 1.6; margin: 0; }

/* Kennisbanklijst (nieuwste berichten) */
.rf-kb-list { list-style: none; margin: 0; padding: 0 !important; }
.rf-kb-list li { margin: 0 !important; padding: 20px 0; border-top: 1px solid var(--rf-green-line); display: flex; justify-content: space-between; align-items: baseline; gap: 24px; }
.rf-kb-list li:last-child { border-bottom: 1px solid var(--rf-green-line); }
.rf-kb-list a { color: var(--rf-ink); font-weight: 600; font-size: 18px; line-height: 1.35; }
.rf-kb-list a:hover { color: var(--rf-blue); }
.rf-kb-list a::after { content: " →"; color: var(--rf-green); }
.rf-kb-list .wp-block-latest-posts__post-date { font-family: var(--rf-mono); font-size: 11.5px; color: #5c7f66; flex: none; }
.rf-section:not(.rf-section--green) .rf-kb-list li { border-color: var(--rf-line); }

/* Linklijst */
.rf-link-list { list-style: none; margin-block: 0 1.2em; padding: 0 !important; }
.rf-link-list li { margin: 0 !important; border-top: 1px solid var(--rf-line); }
.rf-link-list li:last-child { border-bottom: 1px solid var(--rf-line); }
.rf-link-list a { display: flex; justify-content: space-between; gap: 16px; padding: 16px 0; color: var(--rf-ink); font-weight: 600; font-size: 17px; }
.rf-link-list a::after { content: "→"; color: var(--rf-green); }
.rf-link-list a:hover { color: var(--rf-blue); }
.rf-section--green .rf-link-list li { border-color: var(--rf-green-line); }

/* FAQ */
.rf-faq > h3 { font-size: 19px; text-transform: none; font-weight: 700; letter-spacing: 0; margin: 0 !important; padding: 18px 0 8px; border-top: 1px solid var(--rf-line); line-height: 1.35; }
.rf-faq > p { font-size: 16.5px !important; line-height: 1.65 !important; margin: 0 !important; padding-bottom: 18px; }
.rf-faq > p + p { padding-top: 0; margin-top: -8px !important; }
.rf-faq > :last-child { border-bottom: 1px solid var(--rf-line); }
.rf-section--green .rf-faq > h3, .rf-section--green .rf-faq > :last-child { border-color: var(--rf-green-line); }

/* Tabellen */
.rf-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rf-flow .wp-block-table { margin-block: 0 1.8em; }
.rf-flow table { width: 100%; border-collapse: collapse; font-size: 16.5px; }
.rf-flow th, .rf-flow td, .rf-flow .wp-block-table th, .rf-flow .wp-block-table td { text-align: left; padding: 14px 22px; border: 0; border-bottom: 1px solid var(--rf-line-2); vertical-align: top; }
.rf-flow .wp-block-table thead { border-bottom: 0; }
.rf-flow .rf-table td:first-child { font-weight: 600; color: var(--rf-ink); }
.rf-flow thead th { background: var(--rf-blue); color: #fff; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; border: 0; }
.rf-table { border: 1px solid var(--rf-line); border-radius: 0 0 24px 0; overflow: hidden; }
.rf-table tbody tr:last-child td { border-bottom: 0; }
.rf-table tr.is-highlight td, .rf-table tbody tr:last-child td { background: #f4fbf6; }
.rf-flow .wp-block-table figcaption { font-size: 13.5px; color: var(--rf-muted); padding: 10px 22px; }

/* Specificaties: twee kolommen met rijen */
.rf-flow .rf-specs table { font-size: 16.5px; table-layout: auto; }
.rf-flow .rf-specs tbody { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); column-gap: 56px; }
.rf-flow .rf-specs tr { display: flex; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--rf-green-line); }
.rf-flow .rf-specs td, .rf-flow .wp-block-table.rf-specs td { padding: 14px 0; border: 0; }
.rf-flow .rf-specs td:first-child { color: var(--rf-text); }
.rf-flow .rf-specs td:last-child { font-weight: 700; color: var(--rf-ink); text-align: right; }
@media (max-width: 699px) { .rf-flow .rf-specs tbody { grid-template-columns: 1fr; } }

/* Notitie en CTA-box in content */
.rf-note { background: var(--rf-green-bg); border-radius: 0 0 28px 0; padding: 24px 28px; margin: 0 0 1.8em; }
.rf-note > * { margin-inline: 0; }
.rf-note > :last-child { margin-bottom: 0; }
.rf-note p { color: var(--rf-ink) !important; }
.rf-note .rf-label { margin-bottom: 10px; font-size: 12px; }
.rf-cta-box { background: var(--rf-blue); border-radius: var(--rf-radius); padding: 32px 36px; margin: 2em 0; color: #fff; }
.rf-cta-box h2, .rf-cta-box h3, .rf-cta-box p { color: #fff !important; }
.rf-cta-box p { color: var(--rf-blue-soft) !important; }
.rf-cta-box .wp-block-buttons { margin: 18px 0 0; }

/* Contactregel */
.rf-contactline { display: flex; flex-wrap: wrap; gap: 10px 28px; font-weight: 700; font-size: 19px; }
.rf-contactline a { color: var(--rf-blue); }

/* Content-afbeeldingen in secties */
.rf-media img { width: 100%; border-radius: 0 0 40px 0; object-fit: cover; }
.rf-media--tall img { aspect-ratio: 4 / 5; }
@media (max-width: 1023px) { .rf-media--tall img { aspect-ratio: 16 / 11; } }

/* Projectensectie */
.rf-projects-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 40px; margin-bottom: 30px; }
.rf-projects-head h2 { margin: 0; }
.rf-projects-head .rf-eyebrow { width: 100%; margin-bottom: -4px; }
.rf-projects { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.rf-projectcard { position: relative; }
.rf-projectcard__media { border-radius: 0 0 28px 0; overflow: hidden; background: var(--rf-line-2); aspect-ratio: 16 / 11; }
.rf-projectcard__media img { width: 100%; height: 100%; object-fit: cover; }
.rf-projectcard__title { font-size: 19px; margin: 16px 0 6px; }
.rf-projectcard__title a { color: var(--rf-ink); }
.rf-projectcard__title a::after { content: ""; position: absolute; inset: 0; }
.rf-projectcard__meta { font-size: 15px; color: var(--rf-muted); margin: 0; }
@media (max-width: 1023px) { .rf-projects { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .rf-projects { grid-template-columns: 1fr; } }

/* Zijbalklayout (toepassingen) ------------------------------------------ */
.rf-sidebar-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; align-items: start; padding-block: 64px 80px; }
.rf-aside { position: sticky; top: calc(var(--rf-header-h) + 20px); display: flex; flex-direction: column; gap: 18px; }
.admin-bar .rf-aside { top: calc(var(--rf-header-h) + 52px); }
.rf-aside__cta { background: var(--rf-blue); color: #fff; border-radius: 0 0 28px 0; padding: 26px 28px 24px; }
.rf-aside__cta-title { font-weight: 800; font-size: 20px; text-transform: uppercase; margin: 0 0 10px; }
.rf-aside__cta p { font-size: 15.5px; line-height: 1.6; color: var(--rf-blue-soft); margin: 0 0 18px; }
.rf-aside__phone { display: block; text-align: center; margin-top: 12px; font-weight: 700; font-size: 18px; color: #fff; }
.rf-aside__phone:hover { color: #fff; text-decoration: underline; }
.rf-aside__box { background: #fff; border: 1px solid var(--rf-line); border-radius: 0 0 28px 0; padding: 22px 26px; }
.rf-aside__box--green { background: var(--rf-green-bg); border-color: transparent; }
.rf-aside__label { font-weight: 700; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--rf-muted); margin: 0 0 12px; }
.rf-aside__box--green .rf-aside__label { color: var(--rf-green-dark); }
.rf-aside__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 15.5px; line-height: 1.45; }
@media (max-width: 1023px) {
	.rf-sidebar-layout { grid-template-columns: 1fr; gap: 40px; padding-block: 44px 60px; }
	.rf-aside { position: static; }
	.rf-aside nav.rf-aside__box { display: none; }
}

/* Artikel -------------------------------------------------------------- */
.rf-article__head, .rf-article__media { max-width: calc(var(--rf-read) + var(--rf-gutter) * 2); margin-inline: auto; padding-inline: var(--rf-gutter); }
.rf-article__head { padding-top: 44px; }
.rf-article__title { font-size: clamp(30px, 4.4vw, 44px); line-height: 1.1; margin-bottom: 18px; }
.rf-article__intro { font-size: 19.5px; line-height: 1.65; color: var(--rf-text); }
.rf-article__byline { display: flex; align-items: center; gap: 14px; padding: 16px 0; margin: 22px 0 0; border-top: 1px solid var(--rf-line); border-bottom: 1px solid var(--rf-line); font-size: 15px; color: var(--rf-muted); }
.rf-article__byline strong { color: var(--rf-ink); }
.rf-article__avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--rf-green-bg); flex: none; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; color: var(--rf-green-dark); font-size: 16px; }
.rf-article__avatar::before { content: "R"; }
.rf-article__media { margin-top: 32px; margin-bottom: 0; }
.rf-article__media img { width: 100%; border-radius: var(--rf-radius); aspect-ratio: 3 / 2; object-fit: cover; }
.rf-article .rf-flow--article { padding-top: 40px; padding-bottom: 32px; }
.rf-article__cta-wrap { max-width: calc(var(--rf-read) + var(--rf-gutter) * 2); margin: 0 auto 72px; padding-inline: var(--rf-gutter); }
.rf-article__cta { background: var(--rf-blue); border-radius: var(--rf-radius); padding: 32px 36px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 22px 28px; }
.rf-article__cta > div { flex: 1 1 320px; }
.rf-article__cta-title { font-weight: 800; font-size: 22px; text-transform: uppercase; color: #fff; margin: 0 0 8px; }
.rf-article__cta p:not(.rf-article__cta-title) { color: var(--rf-blue-soft); margin: 0; max-width: 46ch; }
@media (max-width: 599px) { .rf-article__cta { padding: 26px 22px; } .rf-article__cta .rf-btn { width: 100%; } }

.rf-more-posts, .rf-related { background: var(--rf-green-bg); padding-block: 60px; }
.rf-more-posts__title, .rf-related__title, .rf-listing__title { font-size: 28px; margin-bottom: 24px; }
.rf-related__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 22px; }
.rf-related__list a { display: block; background: #fff; border-radius: 0 0 24px 0; padding: 22px 24px; font-weight: 700; font-size: 18px; line-height: 1.35; color: var(--rf-ink); height: 100%; }
.rf-related__list a:hover { color: var(--rf-blue); }
@media (max-width: 1023px) { .rf-related__list { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599px) { .rf-related__list { grid-template-columns: 1fr; } }

/* Kennisbanklijst / kaarten -------------------------------------------- */
.rf-listing { padding-block: 60px 80px; }
.rf-postgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.rf-postcard { position: relative; background: #fff; border: 1px solid var(--rf-line); border-radius: 0 0 28px 0; overflow: hidden; display: flex; flex-direction: column; }
.rf-more-posts .rf-postcard { border-color: transparent; }
.rf-postcard:hover { border-color: var(--rf-blue); }
.rf-postcard__media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--rf-line-2); }
.rf-postcard__media img { width: 100%; height: 100%; object-fit: cover; }
.rf-postcard__body { padding: 22px 24px 26px; }
.rf-postcard__meta { font-weight: 700; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--rf-green-dark); margin: 0 0 10px; }
.rf-postcard__title { font-size: 19px; line-height: 1.3; text-transform: none; font-weight: 700; letter-spacing: 0; margin: 0 0 8px; }
.rf-postcard__title a { color: var(--rf-ink); }
.rf-postcard__title a::after { content: ""; position: absolute; inset: 0; }
.rf-postcard:hover .rf-postcard__title a { color: var(--rf-blue); }
.rf-postcard__excerpt { font-size: 15.5px; color: var(--rf-text); margin: 0; line-height: 1.55; }
@media (max-width: 1023px) { .rf-postgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .rf-postgrid { grid-template-columns: 1fr; } }

.nav-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 36px; }
.nav-links .page-numbers { display: inline-flex; min-width: 44px; height: 44px; align-items: center; justify-content: center; padding: 0 14px; border: 1px solid var(--rf-line); border-radius: 4px; color: var(--rf-ink); font-weight: 600; }
.nav-links .page-numbers.current { background: var(--rf-blue); border-color: var(--rf-blue); color: #fff; }

/* CTA-balk ------------------------------------------------------------- */
.rf-ctaband { background: var(--rf-blue); }
.rf-ctaband__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px; padding-block: 56px; }
.rf-ctaband__title { font-weight: 800; font-size: clamp(24px, 3vw, 30px); line-height: 1.2; text-transform: uppercase; color: #fff; margin: 0; max-width: 28ch; }
.rf-ctaband__actions { display: flex; flex-wrap: wrap; gap: 12px; }
@media (max-width: 599px) { .rf-ctaband__actions, .rf-ctaband__actions .rf-btn { width: 100%; } }

/* Formulier ------------------------------------------------------------ */
.rf-form { background: #fff; border: 1px solid var(--rf-line); border-radius: var(--rf-radius); padding: 32px 34px; scroll-margin-top: calc(var(--rf-header-h) + 20px); }
.rf-form__title { font-weight: 800; font-size: 20px; text-transform: uppercase; margin: 0 0 18px; color: var(--rf-ink); }
.rf-form__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.rf-field { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.rf-field--full { grid-column: 1 / -1; }
.rf-field label { font-size: 14px; font-weight: 600; color: var(--rf-ink); }
.rf-field input, .rf-field select, .rf-field textarea { width: 100%; border: 1px solid #dde3e8; border-radius: 4px; padding: 12px 14px; font: 400 16px/1.4 var(--rf-font); color: var(--rf-ink); background: #fff; }
.rf-field input[type="file"] { padding: 10px; font-size: 14.5px; }
.rf-field input:focus, .rf-field select:focus, .rf-field textarea:focus { outline: none; border-color: var(--rf-blue); box-shadow: 0 0 0 3px rgba(26,135,220,.18); }
.rf-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rf-form__privacy { font-size: 13.5px; color: var(--rf-muted); margin: 14px 0; }
.rf-form__notice { padding: 16px 18px; border-radius: 4px; margin-bottom: 16px; font-size: 16px; line-height: 1.55; }
.rf-form__notice--ok { background: var(--rf-green-bg); color: var(--rf-ink); }
.rf-form__notice--err { background: #fdecea; color: #7a1f14; }
@media (max-width: 599px) { .rf-form { padding: 24px 20px; } .rf-form__grid { grid-template-columns: 1fr; } }

.rf-search { display: flex; gap: 10px; max-width: 520px; }
.rf-search input { flex: 1; border: 1px solid #dde3e8; border-radius: 4px; padding: 12px 14px; font: 400 16px var(--rf-font); }
.rf-404__links { list-style: none; padding: 0; margin: 0 0 32px; display: flex; flex-wrap: wrap; gap: 12px; }
.rf-404__links a { display: inline-block; padding: 12px 18px; border: 1px solid var(--rf-line); border-radius: 4px; font-weight: 600; }

/* Footer --------------------------------------------------------------- */
.rf-footer { background: var(--rf-dark); color: var(--rf-muted-2); font-size: 15px; }
.rf-footer a { color: var(--rf-muted-2); }
.rf-footer a:hover { color: #fff; }
.rf-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 36px; padding-block: 60px 36px; }
.rf-footer__logo { display: inline-block; background: #fff; border-radius: 3px; padding: 12px 16px; margin-bottom: 16px; }
.rf-footer__logo .rf-logo__img { height: 40px; }
.rf-footer__brand p { max-width: 32ch; line-height: 1.65; margin: 0; }
.rf-footer__title { font-weight: 700; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #fff; margin: 0 0 14px; }
.rf-footer__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.rf-footer__address { line-height: 1.9; }
.rf-footer__address strong { color: #fff; font-weight: 600; }
.rf-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; padding-block: 20px 36px; border-top: 1px solid var(--rf-dark-line); font-family: var(--rf-mono); font-size: 11.5px; color: #6a7178; }
.rf-footer__bottom p { margin: 0; }
.rf-footer__legal { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; }
.rf-footer__legal a { color: #6a7178; }
@media (max-width: 1023px) { .rf-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599px) { .rf-footer__grid { grid-template-columns: 1fr; gap: 28px; } }

/* WordPress-uitlijning en editor-restanten ----------------------------- */
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { margin-inline: auto; }
.has-text-align-center { text-align: center; }

/* Bedrijfsgegevens */
.rf-nap { font-size: 18px; line-height: 1.9; color: var(--rf-ink); }
.rf-nap__row { display: inline-flex; align-items: center; gap: 8px; }
.rf-nap__row svg { color: var(--rf-green); }
.rf-nap a { font-weight: 700; text-decoration: none !important; }
.rf-nap__kvk { color: var(--rf-muted); font-size: 15px; }

/* Materialenlijst (homepage) */
.rf-materials > h3 { font-size: 19px; margin: 0 0 6px; padding-top: 20px; border-top: 1px solid var(--rf-green-line); }
.rf-materials > h3:first-child { padding-top: 0; border-top: 0; }
.rf-materials > p { font-size: 16px; line-height: 1.65; margin: 0 0 20px; }
.rf-materials > p:last-child { margin-bottom: 0; }
.rf-logo__text { font-weight: 800; font-size: 26px; letter-spacing: .08em; text-transform: uppercase; color: var(--rf-green-dark); }
