/* Kruisstraat – aanvullende stijlen. Kleuren komen uit theme.json (Editor > Stijlen). */
:root { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
.kv-skip { position: absolute; left: -9999px; top: 0; background: #fff; color: #102E4B; padding: .75rem 1rem; z-index: 1000; }
.kv-skip:focus { left: 8px; top: 8px; }

/* Focus overal zichtbaar */
:where(a, button, input, textarea, select, summary):focus-visible { outline: 3px solid var(--wp--preset--color--link-blue, #0B5CAD); outline-offset: 3px; border-radius: 4px; }
.has-navy-background-color :focus-visible, .has-night-background-color :focus-visible, .wp-block-cover :focus-visible, .kv-dark :focus-visible { outline-color: #fff; }

/* Links in knoppen mogen nooit de globale linkkleur krijgen */
.wp-block-button .wp-block-button__link, .wp-block-button .wp-block-button__link:hover { text-decoration: none; }
.wp-block-button__link { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; transition: background-color .15s, color .15s, border-color .15s, transform .15s; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button__link:active { transform: none; }
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background) { background: #fff; }
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color) { color: var(--wp--preset--color--brand); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover:not(.has-background) { background: var(--wp--preset--color--cloud); color: var(--wp--preset--color--brand-dark); }

/* ===== Header: precies één navigatie ===== */
.kv-header { position: sticky; top: 0; z-index: 50; padding: .5rem 1.25rem; box-shadow: 0 1px 0 var(--wp--preset--color--line); }
.admin-bar .kv-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .kv-header { top: 46px; } }
.kv-header__inner { gap: 1rem; min-height: 64px; }
.kv-logo, .kv-logo img { margin: 0; height: auto; max-width: 100%; }
.kv-logo { flex: 0 0 auto; }
.kv-nav .wp-block-navigation-item__content { padding: .5rem .85rem; border-radius: 9999px; font-weight: 500; text-decoration: none; color: var(--wp--preset--color--ink); white-space: nowrap; }
.kv-nav .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--cloud); }
.kv-nav .current-menu-item > .wp-block-navigation-item__content,
.kv-nav .wp-block-navigation-item__content[aria-current="page"] { background: var(--wp--preset--color--brand); color: #fff; }
.kv-nav .kv-cta > .wp-block-navigation-item__content { background: var(--wp--preset--color--sky); color: var(--wp--preset--color--navy); font-weight: 700; margin-left: .5rem; }
.kv-nav .kv-cta > .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--link-blue); color: #fff; }
.kv-footer .kv-cta { display: none; }
/* Tot 1099px: alleen logo + menuknop (WordPress' standaardgrens van 600px is te krap voor 8 items). */
@media (max-width: 1099px) {
  .kv-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  .kv-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
}
.kv-header .wp-block-navigation__responsive-container-open { padding: .6rem; min-width: 44px; min-height: 44px; border-radius: 8px; }
.kv-header .wp-block-navigation__responsive-container-open svg, .kv-header .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }
.wp-block-navigation__responsive-container.is-menu-open { background-color: #fff !important; color: var(--wp--preset--color--ink) !important; padding: 1.5rem; z-index: 100000; }
.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item { width: 100%; }
.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content { display: block; width: 100%; font-size: 1.125rem; padding: .85rem 1rem; }
.is-menu-open .kv-cta > .wp-block-navigation-item__content { margin: .5rem 0 0; text-align: center; }
.wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; }
.kv-footer-nav .wp-block-navigation-item__content { padding: .15rem 0; color: #fff; text-decoration: none; }
.kv-footer-nav .wp-block-navigation-item__content:hover { text-decoration: underline; }
.kv-footer a { color: #fff; }

/* ===== Secties en componenten ===== */
.kv-section { padding: clamp(3rem, 7vw, 5.5rem) 1.25rem; }
.kv-footer { padding: 3rem 1.25rem 2rem; }
.kv-footer-sep { border-color: rgba(255,255,255,.18) !important; opacity: 1; margin-top: 2rem; }
.kv-main { margin: 0; }
.kv-article { padding: 3rem 1.25rem; }
.kv-eyebrow { text-transform: uppercase; letter-spacing: .18em; font-weight: 700; font-size: .78rem !important; margin: 0 0 .5rem; }
.kv-chip { display: inline-block; }
.kv-chip a, .kv-chip { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; text-decoration: none; }
.kv-chip a { background: #DCEBFA; color: #0B4A8A; padding: .2rem .65rem; border-radius: 9999px; }
.kv-pill { display: inline-block; padding: .4rem .9rem; border: 1px solid rgba(255,255,255,.4); border-radius: 9999px; letter-spacing: .14em; text-transform: uppercase; font-size: .75rem; font-weight: 600; width: fit-content; }

.kv-hero.wp-block-cover { padding: clamp(3rem, 8vw, 6rem) 1.25rem; }
.kv-hero h1, .kv-hero p { text-wrap: balance; }
.kv-hero .wp-block-cover__inner-container { width: 100%; max-width: 1160px; }
.kv-inner-hero.wp-block-cover { padding: clamp(2.5rem, 6vw, 4.5rem) 1.25rem; }
.kv-inner-hero .wp-block-cover__inner-container { width: 100%; max-width: 1160px; }
.kv-inner-hero h1 { font-size: clamp(2rem, 4.5vw, 3.25rem); }
.kv-crumbs { font-size: .85rem; margin: 0 0 1rem; }
.kv-crumbs a { color: #cfe6fb; }

.kv-card { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 18px; padding: 1.5rem; box-shadow: var(--wp--preset--shadow--card); height: 100%; box-sizing: border-box; }
.kv-card h3 { margin-top: .5rem; }
.kv-card.is-link { transition: transform .2s, box-shadow .2s; }
.kv-card.is-link:hover { transform: translateY(-3px); box-shadow: var(--wp--preset--shadow--lift); }
.kv-card .kv-more a { font-weight: 700; text-decoration: none; }
.kv-card .kv-more a::after { content: " →"; }
.kv-darkcard { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); border-radius: 14px; padding: 1rem 1.25rem; color: #fff; }
.kv-check { list-style: none; padding: 0; margin: 0; }
.kv-check li { position: relative; padding-left: 1.9rem; margin: .5rem 0; }
.kv-check li::before { content: "✓"; position: absolute; left: 0; top: 0; width: 1.35rem; height: 1.35rem; border-radius: 50%; background: #DCEBFA; color: #0B4A8A; font-size: .8rem; font-weight: 800; display: grid; place-items: center; line-height: 1; margin-top: .2rem; }
.has-night-background-color .kv-check li::before, .has-navy-background-color .kv-check li::before { background: rgba(63,169,245,.2); color: #8DD0FF; }
.kv-photo img { border-radius: 24px; width: 100%; height: auto; aspect-ratio: 1.45; object-fit: cover; }
.kv-logo-tile { background: #fff; border-radius: 24px; padding: clamp(1.5rem, 4vw, 3rem); box-shadow: var(--wp--preset--shadow--lift); display: grid; place-items: center; }
.kv-logo-tile img { max-width: 360px; width: 100%; height: auto; border-radius: 0; }

/* Pijlers / FAQ (Details-blok) */
.wp-block-details { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 14px; padding: 0; margin: 0 0 .75rem; overflow: hidden; }
.wp-block-details summary { cursor: pointer; font-weight: 700; padding: 1rem 1.25rem; color: var(--wp--preset--color--ink); }
.wp-block-details[open] summary { background: var(--wp--preset--color--cloud); }
.wp-block-details > :not(summary) { padding-left: 1.25rem; padding-right: 1.25rem; }
.wp-block-details > :last-child { padding-bottom: 1rem; }

.kv-team-avatar { width: 56px; height: 56px; border-radius: 50%; background: var(--wp--preset--color--brand); color: #fff; display: grid; place-items: center; font-weight: 800; margin: 0 0 .5rem; }

/* Nieuwsraster (Query Loop) */
.wp-block-post-template.is-layout-grid { gap: 1.25rem; }
.wp-block-post-template > li { min-width: 0; }
@media (max-width: 781px) { .wp-block-post-template.is-layout-grid { grid-template-columns: minmax(0, 1fr) !important; } }
@media (min-width: 782px) and (max-width: 1023px) { .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
.wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--ink); }
.wp-block-post-title a:hover { text-decoration: underline; }
.wp-block-query-pagination { margin-top: 2rem; gap: 1rem; }
.kv-filterbar { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.5rem; list-style: none; padding: 0; }
.kv-filterbar a, .kv-filterbar .wp-block-categories li a { display: inline-block; padding: .45rem 1rem; border-radius: 9999px; border: 1px solid var(--wp--preset--color--line); background: #fff; color: var(--wp--preset--color--ink); text-decoration: none; font-weight: 600; font-size: .9rem; }
.kv-filterbar a:hover { background: var(--wp--preset--color--cloud); }
ul.wp-block-categories.kv-filterbar { list-style: none; padding: 0; }
.kv-filterbar li { margin: 0; }

@media (prefers-reduced-motion: reduce) {
  :root { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Hulpklassen voor de pagina-opbouw */
.kv-narrow { max-width: 720px; margin-left: auto; margin-right: auto; }
.kv-section > .wp-block-heading.has-text-align-center, .kv-section > p.has-text-align-center { margin-left: auto; margin-right: auto; }
.kv-cards { gap: 1.25rem; margin-top: 1.25rem; }
.kv-cards > .wp-block-column { display: flex; flex-direction: column; }
.kv-cards > .wp-block-column > .kv-card { flex: 1; }
.kv-card--brand { background: var(--wp--preset--color--brand); border-color: var(--wp--preset--color--brand); color: #fff; }
.kv-card--brand h3, .kv-card--brand p { color: #fff; }
.kv-hero-cols { gap: 2rem; align-items: center; }
.kv-inner-hero .kv-hero-cols { margin: 0; }
.kv-hero .wp-block-cover__inner-container, .kv-inner-hero .wp-block-cover__inner-container { margin-left: auto; margin-right: auto; }
.kv-hero .wp-block-buttons { margin-top: 1.5rem; }
.kv-hero .wp-block-button__link:not(.is-style-licht) { border-color: #fff; }
.kv-lead { max-width: 640px; }
.kv-dark h2, .kv-dark h3, .kv-dark p { color: inherit; }
.kv-filterwrap { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: 1.5rem; }
.kv-filterwrap .kv-filter-all { margin: 0; }
.kv-filterwrap .kv-filter-all a { display: inline-block; padding: .45rem 1rem; border-radius: 9999px; border: 1px solid var(--wp--preset--color--line); background: #fff; color: var(--wp--preset--color--ink); text-decoration: none; font-weight: 600; font-size: .9rem; }
ul.wp-block-categories.kv-filterbar { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.kv-leden-sec { padding-top: clamp(2rem, 5vw, 3.5rem); }
.wp-block-quote.is-style-plain { border: 0; padding: 1.5rem 0 0; text-align: center; max-width: 760px; margin: 2rem auto 0; font-size: 1.25rem; }
.wp-block-quote cite { display: block; font-size: .9rem; color: var(--wp--preset--color--slate); font-style: normal; margin-top: .75rem; }
.wp-block-columns { gap: 2rem; }
@media (max-width: 781px) { .kv-inner-hero.wp-block-cover { min-height: 0 !important; } }

/* Lange Nederlandse samenstellingen mogen afbreken i.p.v. buiten het scherm lopen (320px / 400% zoom) */
h1, h2, h3, h4, .wp-block-post-title, .kv-card { overflow-wrap: break-word; word-break: normal; hyphens: auto; }
@media (max-width: 400px) { h1.wp-block-heading { font-size: clamp(1.7rem, 9vw, 2.6rem) !important; } }

/* Kop in de hero met kaart: kleiner zodat "Bedrijventerrein" niet middenin het woord afbreekt */
@media (min-width: 782px) { .kv-hero-cols h1.wp-block-heading { font-size: clamp(2rem, 3.4vw, 3rem) !important; } }

/* Gestapelde kaarten in één kolom: elk op eigen hoogte, met ruimte ertussen */
.wp-block-column > .kv-card { height: auto; }
.wp-block-column > .kv-card + .kv-card { margin-top: 1.25rem; }
.kv-card .kv-mapwrap { margin: 1rem 0; }
.kv-card .kv-map { aspect-ratio: 4 / 3; min-height: 240px; border: 0; box-shadow: none; }

/* Mobiel menu (overlay): volle breedte, links onder elkaar, royale tikvlakken */
.kv-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch !important; padding-top: 4rem; }
.kv-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { width: 100%; align-items: stretch !important; gap: .25rem; }
.kv-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: stretch !important; width: 100%; }
.kv-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { display: block !important; padding: .9rem 1.1rem !important; border-radius: 12px; font-size: 1.15rem !important; font-weight: 600; text-align: left; width: 100% !important; box-sizing: border-box; }
.kv-nav .wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content { background: var(--wp--preset--color--brand); color: #fff; }
.kv-nav .wp-block-navigation__responsive-container.is-menu-open .kv-cta { margin-top: 1rem; }
.kv-nav .wp-block-navigation__responsive-container.is-menu-open .kv-cta > .wp-block-navigation-item__content { background: var(--wp--preset--color--sky); color: var(--wp--preset--color--navy); text-align: center !important; font-weight: 800; padding: 1rem 1.25rem !important; border-radius: 999px; }

/* Homepage-hero: alle tekst links uitgelijnd op de rand van het kader (zelfde lijn als het logo) */
.kv-hero .wp-block-cover__inner-container > * { margin-left: 0 !important; margin-right: auto !important; max-width: none !important; text-align: left; }
.kv-hero .wp-block-cover__inner-container > h1 { max-width: 1000px !important; }
.kv-hero .wp-block-cover__inner-container > .kv-lead { max-width: 760px !important; }
.kv-hero .wp-block-cover__inner-container > .wp-block-buttons { justify-content: flex-start; }

/* Banners van alle binnenpagina's: zelfde uitlijning als de homepage */
.kv-inner-hero .wp-block-cover__inner-container > * { margin-left: 0 !important; margin-right: auto !important; max-width: none !important; text-align: left; }
.kv-inner-hero .wp-block-cover__inner-container > h1 { max-width: 1000px !important; }
.kv-inner-hero .wp-block-cover__inner-container > p { max-width: 760px !important; }
.kv-inner-hero .wp-block-cover__inner-container > .wp-block-buttons { justify-content: flex-start; }

/* Word-lid-pagina: kengetallen, iconen, kaarten en uitklapvragen */
.kv-stat { font-size: clamp(2rem, 4vw, 3rem) !important; line-height: 1.05; margin: .15rem 0 .4rem !important; color: var(--wp--preset--color--brand); }
.kv-icon { font-size: 2rem; line-height: 1; margin: 0 0 .75rem !important; width: 3.5rem; height: 3.5rem; display: grid; place-items: center; background: var(--wp--preset--color--cloud); border-radius: 16px; }
.kv-cards .kv-card h3:not(.kv-stat), .kv-darkcard h3 { font-size: 1.3rem !important; line-height: 1.25; margin: .25rem 0 .5rem !important; overflow-wrap: break-word; }
.kv-darkcard { transition: transform .2s, background .2s; }
.kv-darkcard:hover { transform: translateY(-3px); background: rgba(255,255,255,.12); }
.kv-darkcard .kv-team-avatar { margin-bottom: .75rem !important; }
.wp-block-details summary { transition: background .2s; }
.wp-block-details summary:hover { background: var(--wp--preset--color--cloud); }
@media (prefers-reduced-motion: reduce) { .kv-darkcard:hover, .kv-card.is-link:hover { transform: none; } }

.kv-credit{display:inline-flex;align-items:center;gap:.5rem;color:#fff;text-decoration:none}
.kv-credit strong{color:#4ADE80}
.kv-credit .kv-arrow{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:50%;background:#16A34A;color:#fff;font-size:.9rem;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
.kv-credit:hover .kv-arrow,.kv-credit:focus-visible .kv-arrow{transform:translate(2px,-2px) scale(1.12);background:#22C55E;box-shadow:0 0 0 4px rgba(74,222,128,.25)}
@media (prefers-reduced-motion:reduce){.kv-credit .kv-arrow{transition:none}}
