.elementor-kit-7{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-color-khgroen:#1F3A34;--e-global-color-khwit:#FFFFFF;--e-global-color-khmint:#E8F0EC;--e-global-color-khgoud:#C9A44C;--e-global-color-khinkt:#333333;--e-global-color-khgrijs:#555B58;--e-global-color-khgrijsdonker:#CAD3CF;--e-global-color-khlijn:#1F3A3426;--e-global-color-khkoptekst:#FFFFFF;--e-global-color-khkopknop:#FFFFFF;--e-global-color-khkopknoptekst:#1F3A34;--e-global-color-khlijndonker:#FFFFFF33;--e-global-color-khranddonker:#FFFFFFB3;--e-global-color-khgoudzacht:#C9A44C80;--e-global-color-khfout:#B3261E;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;--e-global-typography-khmenu-font-family:"Hanken Grotesk Variable";--e-global-typography-khmenu-font-size:1rem;--e-global-typography-khmenu-font-weight:500;--e-global-typography-khmenu-line-height:1.55em;--e-global-typography-khknop-font-family:"Hanken Grotesk Variable";--e-global-typography-khknop-font-size:1rem;--e-global-typography-khknop-font-weight:600;--e-global-typography-khknop-line-height:1.2em;--e-global-typography-khknop-letter-spacing:0.005em;--e-global-typography-khlabel-font-family:"Hanken Grotesk Variable";--e-global-typography-khlabel-font-size:0.875rem;--e-global-typography-khlabel-font-weight:600;--e-global-typography-khlabel-line-height:1.55em;--e-global-typography-khlabel-letter-spacing:0.01em;--e-global-typography-khtekst-font-family:"Hanken Grotesk Variable";--e-global-typography-khtekst-font-size:1rem;--e-global-typography-khtekst-font-weight:400;--e-global-typography-khtekst-line-height:1.55em;--e-global-typography-khkaart-font-family:"Cormorant Garamond";--e-global-typography-khkaart-font-size:clamp(1.5rem, 1.1rem + .9vw, 2.125rem);--e-global-typography-khkaart-font-weight:500;--e-global-typography-khkaart-line-height:1.1em;--e-global-typography-khkaart-letter-spacing:-0.005em;--e-global-typography-khtelmenu-font-family:"Cormorant Garamond";--e-global-typography-khtelmenu-font-size:2.75rem;--e-global-typography-khtelmenu-font-weight:500;--e-global-typography-khtelmenu-line-height:1.15em;--e-global-typography-khtelkaart-font-family:"Cormorant Garamond";--e-global-typography-khtelkaart-font-size:1.625rem;--e-global-typography-khtelkaart-font-weight:500;--e-global-typography-khtelkaart-line-height:1.1em;--e-global-typography-khtelkaart-letter-spacing:-0.005em;--e-global-typography-khknopgroot-font-family:"Hanken Grotesk Variable";--e-global-typography-khknopgroot-font-size:1.125rem;--e-global-typography-khknopgroot-font-weight:600;--e-global-typography-khknopgroot-line-height:1.2em;--e-global-typography-khvoettekst-font-family:"Hanken Grotesk Variable";--e-global-typography-khvoettekst-font-size:clamp(1.0625rem, 1rem + .25vw, 1.1875rem);--e-global-typography-khvoettekst-font-weight:400;--e-global-typography-khvoettekst-line-height:1.55em;--e-global-typography-khvoetklein-font-family:"Hanken Grotesk Variable";--e-global-typography-khvoetklein-font-size:0.875rem;--e-global-typography-khvoetklein-font-weight:400;--e-global-typography-khvoetklein-line-height:1.55em;--e-global-typography-khwoordmerk-font-family:"Cormorant Garamond";--e-global-typography-khwoordmerk-font-size:clamp(4.5rem, 1rem + 12.5vw, 15rem);--e-global-typography-khwoordmerk-font-weight:500;--e-global-typography-khwoordmerk-line-height:0.9em;--e-global-typography-khwoordmerk-letter-spacing:-0.02em;--e-global-typography-khboog-font-family:"Hanken Grotesk Variable";--e-global-typography-khboog-font-size:15px;--e-global-typography-khboog-font-weight:500;--e-global-typography-khboog-line-height:1.55em;--e-global-typography-khboog-letter-spacing:0.06em;--e-global-typography-khheldtitel-font-family:"Cormorant Garamond";--e-global-typography-khheldtitel-font-size:clamp(1.5rem, 1.2rem + 1vw, 2.25rem);--e-global-typography-khheldtitel-font-weight:500;--e-global-typography-khheldtitel-line-height:1.1em;--e-global-typography-khscenetitel-font-family:"Cormorant Garamond";--e-global-typography-khscenetitel-font-size:clamp(1.5rem, .8rem + 1.6vw, 2.5rem);--e-global-typography-khscenetitel-font-weight:500;--e-global-typography-khscenetitel-line-height:1em;--e-global-typography-khscenetitel-letter-spacing:-0.01em;--e-global-typography-khnummer-font-family:"Cormorant Garamond";--e-global-typography-khnummer-font-size:clamp(1.5rem, 1.2rem + 1vw, 2.25rem);--e-global-typography-khnummer-font-weight:400;--e-global-typography-khnummer-line-height:1em;--e-global-typography-khdienst-font-family:"Cormorant Garamond";--e-global-typography-khdienst-font-size:clamp(2rem, .3rem + 3.1vw, 4.4rem);--e-global-typography-khdienst-font-weight:500;--e-global-typography-khdienst-line-height:1em;--e-global-typography-khdienst-letter-spacing:-0.01em;--e-global-typography-khdiensttekst-font-family:"Hanken Grotesk Variable";--e-global-typography-khdiensttekst-font-size:clamp(1.0625rem, 1rem + .25vw, 1.1875rem);--e-global-typography-khdiensttekst-font-weight:400;--e-global-typography-khdiensttekst-line-height:1.55em;--e-global-typography-khlinkvet-font-family:"Hanken Grotesk Variable";--e-global-typography-khlinkvet-font-size:clamp(1.0625rem, 1rem + .25vw, 1.1875rem);--e-global-typography-khlinkvet-font-weight:600;--e-global-typography-khlinkvet-line-height:1.55em;--e-global-typography-khsectitel-font-family:"Cormorant Garamond";--e-global-typography-khsectitel-font-size:clamp(2.5rem, .4rem + 4.8vw, 6rem);--e-global-typography-khsectitel-font-weight:500;--e-global-typography-khsectitel-line-height:1em;--e-global-typography-khsectitel-letter-spacing:-0.01em;--e-global-typography-khfotonaam-font-family:"Cormorant Garamond";--e-global-typography-khfotonaam-font-size:clamp(2rem, .6rem + 3vw, 4rem);--e-global-typography-khfotonaam-font-weight:500;--e-global-typography-khfotonaam-line-height:1em;--e-global-typography-khfotonaam-letter-spacing:-0.02em;--e-global-typography-khgrotetitel-font-family:"Cormorant Garamond";--e-global-typography-khgrotetitel-font-size:clamp(3rem, .8rem + 6.6vw, 8.5rem);--e-global-typography-khgrotetitel-font-weight:500;--e-global-typography-khgrotetitel-line-height:1em;--e-global-typography-khgrotetitel-letter-spacing:-0.01em;--e-global-typography-khafsluittitel-font-family:"Cormorant Garamond";--e-global-typography-khafsluittitel-font-size:clamp(3rem, .8rem + 6.6vw, 8.5rem);--e-global-typography-khafsluittitel-font-weight:500;--e-global-typography-khafsluittitel-line-height:1em;--e-global-typography-khafsluittitel-letter-spacing:-0.01em;--e-global-typography-khreviewtitel-font-family:"Cormorant Garamond";--e-global-typography-khreviewtitel-font-size:clamp(2.5rem, 1rem + 3.4vw, 4.5rem);--e-global-typography-khreviewtitel-font-weight:500;--e-global-typography-khreviewtitel-line-height:1em;--e-global-typography-khreviewtitel-letter-spacing:-0.01em;--e-global-typography-khquote-font-family:"Cormorant Garamond";--e-global-typography-khquote-font-size:7rem;--e-global-typography-khquote-font-weight:400;--e-global-typography-khquote-line-height:1em;--e-global-typography-khreviewtekst-font-family:"Cormorant Garamond";--e-global-typography-khreviewtekst-font-size:clamp(1.5rem, 1.2rem + 1vw, 2.25rem);--e-global-typography-khreviewtekst-font-weight:400;--e-global-typography-khreviewtekst-line-height:1.25em;--e-global-typography-khkleinvet-font-family:"Hanken Grotesk Variable";--e-global-typography-khkleinvet-font-size:0.875rem;--e-global-typography-khkleinvet-font-weight:600;--e-global-typography-khkleinvet-line-height:1.55em;--e-global-typography-khvraag-font-family:"Cormorant Garamond";--e-global-typography-khvraag-font-size:clamp(1.5rem, 1.2rem + 1vw, 2.25rem);--e-global-typography-khvraag-font-weight:400;--e-global-typography-khvraag-line-height:1.15em;--e-global-typography-khkorttitel-font-family:"Cormorant Garamond";--e-global-typography-khkorttitel-font-size:clamp(3.5rem, 1rem + 8vw, 10rem);--e-global-typography-khkorttitel-font-weight:500;--e-global-typography-khkorttitel-line-height:0.95em;--e-global-typography-khkorttitel-letter-spacing:-0.02em;--e-global-typography-khartikeltitel-font-family:"Cormorant Garamond";--e-global-typography-khartikeltitel-font-size:clamp(2.75rem, 1rem + 4.5vw, 6rem);--e-global-typography-khartikeltitel-font-weight:500;--e-global-typography-khartikeltitel-line-height:1em;--e-global-typography-khartikeltitel-letter-spacing:-0.02em;--e-global-typography-khkenmerktitel-font-family:"Cormorant Garamond";--e-global-typography-khkenmerktitel-font-size:clamp(2.25rem, .8rem + 3.6vw, 4.75rem);--e-global-typography-khkenmerktitel-font-weight:500;--e-global-typography-khkenmerktitel-line-height:1em;--e-global-typography-khkenmerktitel-letter-spacing:-0.01em;--e-global-typography-khlijsttitel-font-family:"Cormorant Garamond";--e-global-typography-khlijsttitel-font-size:clamp(3rem, .8rem + 6.6vw, 8.5rem);--e-global-typography-khlijsttitel-font-weight:500;--e-global-typography-khlijsttitel-line-height:1em;--e-global-typography-khlijsttitel-letter-spacing:-0.01em;--e-global-typography-khlijstnaam-font-family:"Cormorant Garamond";--e-global-typography-khlijstnaam-font-size:clamp(2rem, .8rem + 3.4vw, 4.5rem);--e-global-typography-khlijstnaam-font-weight:400;--e-global-typography-khlijstnaam-line-height:1em;--e-global-typography-khlijstnaam-letter-spacing:-0.01em;--e-global-typography-khlijstregel-font-family:"Hanken Grotesk Variable";--e-global-typography-khlijstregel-font-size:clamp(1.0625rem, 1rem + .25vw, 1.1875rem);--e-global-typography-khlijstregel-font-weight:400;--e-global-typography-khlijstregel-line-height:1.55em;--e-global-typography-khbontitel-font-family:"Cormorant Garamond";--e-global-typography-khbontitel-font-size:clamp(2.75rem, .6rem + 5vw, 6.5rem);--e-global-typography-khbontitel-font-weight:500;--e-global-typography-khbontitel-line-height:1em;--e-global-typography-khbontitel-letter-spacing:-0.01em;--e-global-typography-khwaardenaam-font-family:"Cormorant Garamond";--e-global-typography-khwaardenaam-font-size:clamp(2rem, .8rem + 3.2vw, 4.25rem);--e-global-typography-khwaardenaam-font-weight:400;--e-global-typography-khwaardenaam-line-height:1em;--e-global-typography-khwerktitel-font-family:"Cormorant Garamond";--e-global-typography-khwerktitel-font-size:clamp(2.75rem, 1.4rem + 5vw, 6rem);--e-global-typography-khwerktitel-font-weight:500;--e-global-typography-khwerktitel-line-height:1em;--e-global-typography-khwerktitel-letter-spacing:-0.01em;--e-global-typography-khtekstbloktitel-font-family:"Cormorant Garamond";--e-global-typography-khtekstbloktitel-font-size:clamp(3rem, .8rem + 6.6vw, 8.5rem);--e-global-typography-khtekstbloktitel-font-weight:500;--e-global-typography-khtekstbloktitel-line-height:1em;--e-global-typography-khartikelkop-font-family:"Cormorant Garamond";--e-global-typography-khartikelkop-font-size:clamp(2rem, 1.2rem + 1.8vw, 3rem);--e-global-typography-khartikelkop-font-weight:500;--e-global-typography-khartikelkop-line-height:1.05em;--e-global-typography-khblogtitel-font-family:"Cormorant Garamond";--e-global-typography-khblogtitel-font-size:clamp(1.75rem, 1.2rem + 1.2vw, 2.5rem);--e-global-typography-khblogtitel-font-weight:400;--e-global-typography-khblogtitel-line-height:1.05em;--e-global-typography-khcontacttitel-font-family:"Cormorant Garamond";--e-global-typography-khcontacttitel-font-size:clamp(2.5rem, 1rem + 3.6vw, 5rem);--e-global-typography-khcontacttitel-font-weight:500;--e-global-typography-khcontacttitel-line-height:1em;--e-global-typography-khcontactgroot-font-family:"Cormorant Garamond";--e-global-typography-khcontactgroot-font-size:clamp(1.75rem, 1.2rem + 1.4vw, 2.5rem);--e-global-typography-khcontactgroot-font-weight:400;--e-global-typography-khcontactgroot-line-height:1.3em;--e-global-typography-khformlabel-font-family:"Hanken Grotesk Variable";--e-global-typography-khformlabel-font-size:0.95rem;--e-global-typography-khformlabel-font-weight:600;--e-global-typography-khformlabel-line-height:1.55em;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-7{--e-global-typography-khwoordmerk-font-size:15.5vw;--e-global-typography-khboog-font-size:17px;--e-global-typography-khdienst-font-size:7.4vw;--e-global-typography-khdiensttekst-font-size:1rem;--e-global-typography-khsectitel-font-size:12.5vw;--e-global-typography-khfotonaam-font-size:2.5rem;--e-global-typography-khgrotetitel-font-size:13vw;--e-global-typography-khafsluittitel-font-size:12.5vw;--e-global-typography-khreviewtitel-font-size:12.5vw;--e-global-typography-khquote-font-size:5.5rem;--e-global-typography-khvraag-font-size:1.375rem;--e-global-typography-khkenmerktitel-font-size:9vw;--e-global-typography-khlijstnaam-font-size:7.4vw;--e-global-typography-khlijstregel-font-size:0.95rem;--e-global-typography-khbontitel-font-size:11vw;--e-global-typography-khwaardenaam-font-size:9vw;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ── sync_header + sync_menu — start (Pixel 2026-10-21, his "start 1 to build it in elementor elements") ──────────────
   The header (sync_header) and the phone menu (sync_menu) are Elementor elements; their texts, links, photos, fonts,
   sizes and spacing are in the widgets. Here only what Elementor has no setting for. The theme's script still sets
   .is-on-light / .is-solid / .is-tucked on the header (.site-header) and .is-on-dark / .is-hidden on the floating
   button, exactly as before. */

/* 1 · The header's colours follow the section under it: over a light section, or with "De kaart" open, the three
   "Kop" global colours swap (Site Settings → Global Colors → Kop: tekst / Kop: knop / Kop: knoptekst). */
.site-header.kh-kop.is-on-light,
.site-header.kh-kop:has(.kh-menu .e-n-menu-content.e-active) {
  --e-global-color-khkoptekst: var(--e-global-color-khgroen);
  --e-global-color-khkopknop: var(--e-global-color-khgroen);
  --e-global-color-khkopknoptekst: var(--e-global-color-khwit);
}
/* "De kaart" open: the header turns white and stays in view (as before, from tablet up) */
@media (min-width: 768px) {
  .site-header.kh-kop:has(.kh-menu .e-n-menu-content.e-active) { background-color: var(--e-global-color-khwit); transform: none; }
}

/* 2 · Logo: the box is exactly the logo, so the theme's once-per-visit drawing lands on it */
.kh-logo .elementor-icon-wrapper { line-height: 0; }
.kh-logo .elementor-icon { display: block; }

/* 3 · Menu: a thin gold underline on hover, on the open item and on the current page ("De kaart" = /diensten/…) */
.kh-menu .e-n-menu-title-text,
.kh-menulink a,
.kh-kaart .elementor-icon-list-text {
  text-decoration: underline 1px transparent; text-underline-offset: .35em; transition: text-decoration-color .2s ease;
}
@media (hover: hover) and (pointer: fine) {
  .kh-menu .e-n-menu-title:hover .e-n-menu-title-text,
  .kh-menulink a:hover,
  .kh-kaart a:hover .elementor-icon-list-text { text-decoration-color: var(--e-global-color-khgoud); }
}
.kh-menu .e-n-menu-title.e-current .e-n-menu-title-text,
.kh-menu .e-n-menu-title:has([aria-expanded="true"]) .e-n-menu-title-text,
body.page-id-71 .kh-menu #kh-menu-kaart .e-n-menu-title-text,
body.parent-pageid-71 .kh-menu #kh-menu-kaart .e-n-menu-title-text,
body.page-id-95 .kh-menulink a { text-decoration-color: var(--e-global-color-khgoud); }

/* "Soon" behind a menu item: type it in the item's title as  Name<span class="kh-soon">Soon</span> */
.kh-soon {
  display: inline-block; margin-left: .5em; padding: .1em .55em .15em; border-radius: 999px;
  border: 1px solid color-mix(in srgb, currentColor 45%, transparent);
  font-family: var(--e-global-typography-khmenu-font-family), sans-serif; font-size: .6875rem; font-weight: 600;
  line-height: 1.3; letter-spacing: .02em; vertical-align: .2em;
}
.kh-menulaag .kh-soon { display: block; width: fit-content; margin: .35rem auto 0; font-size: .75rem; }

/* 4 · "De kaart": the plate shows the dish you point at and keeps it, like before. Each link carries data-bord="N"
   (link options → Custom Attributes) and its photo is a round container (Background) with class kh-bord-N (up to 12). */
.kh-bordje .kh-bord {
  opacity: 0; transform: scale(.94);
  transition: opacity .36s cubic-bezier(.23, 1, .32, 1) 9999s, transform .36s cubic-bezier(.23, 1, .32, 1) 9999s;
}
.kh-kaart:has(a[data-bord]:is(:hover, :focus-visible)) .kh-bordje .kh-bord { opacity: 0; transition-delay: 0s; }
.kh-kaart:has(a[data-bord="1"]:is(:hover, :focus-visible)) .kh-bordje .kh-bord.kh-bord-1,
.kh-kaart:has(a[data-bord="2"]:is(:hover, :focus-visible)) .kh-bordje .kh-bord.kh-bord-2,
.kh-kaart:has(a[data-bord="3"]:is(:hover, :focus-visible)) .kh-bordje .kh-bord.kh-bord-3,
.kh-kaart:has(a[data-bord="4"]:is(:hover, :focus-visible)) .kh-bordje .kh-bord.kh-bord-4,
.kh-kaart:has(a[data-bord="5"]:is(:hover, :focus-visible)) .kh-bordje .kh-bord.kh-bord-5,
.kh-kaart:has(a[data-bord="6"]:is(:hover, :focus-visible)) .kh-bordje .kh-bord.kh-bord-6,
.kh-kaart:has(a[data-bord="7"]:is(:hover, :focus-visible)) .kh-bordje .kh-bord.kh-bord-7,
.kh-kaart:has(a[data-bord="8"]:is(:hover, :focus-visible)) .kh-bordje .kh-bord.kh-bord-8,
.kh-kaart:has(a[data-bord="9"]:is(:hover, :focus-visible)) .kh-bordje .kh-bord.kh-bord-9,
.kh-kaart:has(a[data-bord="10"]:is(:hover, :focus-visible)) .kh-bordje .kh-bord.kh-bord-10,
.kh-kaart:has(a[data-bord="11"]:is(:hover, :focus-visible)) .kh-bordje .kh-bord.kh-bord-11,
.kh-kaart:has(a[data-bord="12"]:is(:hover, :focus-visible)) .kh-bordje .kh-bord.kh-bord-12 {
  opacity: 1; transform: none; transition-delay: 0s;
}
.kh-bordje .kh-plaat { aspect-ratio: 1; }

/* a text link with an arrow (class kh-pijl on a Heading widget) */
.kh-pijl a { display: inline-flex; align-items: center; gap: .5em; }
.kh-pijl a::after { content: "→"; transition: transform .26s cubic-bezier(.23, 1, .32, 1); }
@media (hover: hover) and (pointer: fine) { .kh-pijl a:hover::after { transform: translateX(.25rem); } }

/* 5 · The house button (class kh-knop on a Button widget): a pill with an arrow tile; on hover the tile's colour
   rises over the whole button. Colours: --kh-bg (button) and --kh-ink (text, tile) — global colours. */
.elementor-widget-button.kh-knop { --kh-bg: var(--e-global-color-khgroen); --kh-ink: var(--e-global-color-khwit); --kh-pad: 2rem; --kh-tile: 2.375rem; --kh-tile-gap: .3125rem; }
.kh-kop .elementor-widget-button.kh-knop { --kh-bg: var(--e-global-color-khkopknop); --kh-ink: var(--e-global-color-khkopknoptekst); --kh-pad: 1.25rem; --kh-tile: 2rem; --kh-tile-gap: .25rem; }
.elementor-widget-button.kh-knop .elementor-button {
  position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center;
  min-height: 3.25rem; padding-block: 0; padding-inline: var(--kh-pad) calc(var(--kh-tile) + var(--kh-tile-gap) + var(--kh-pad) * .7);
  background-color: var(--kh-bg); color: var(--kh-ink); border: 2px solid var(--kh-bg); border-radius: 999px; white-space: nowrap;
  transition: background-color .2s ease, border-color .2s ease, color .45s cubic-bezier(.77, 0, .175, 1), transform .14s cubic-bezier(.23, 1, .32, 1);
}
.kh-kop .elementor-widget-button.kh-knop .elementor-button { min-height: 2.75rem; }
.elementor-widget-button.kh-knop .elementor-button::before {
  content: ""; position: absolute; inset: 0; z-index: -1; background: var(--kh-ink);
  clip-path: inset(calc(50% - var(--kh-tile) / 2) var(--kh-tile-gap) calc(50% - var(--kh-tile) / 2) calc(100% - var(--kh-tile-gap) - var(--kh-tile)) round 999px);
  transition: clip-path .45s cubic-bezier(.77, 0, .175, 1);
}
.elementor-widget-button.kh-knop .elementor-button::after {
  --arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E");
  content: ""; position: absolute; top: 50%; right: var(--kh-tile-gap); width: var(--kh-tile); height: var(--kh-tile); translate: 0 -50%;
  background: var(--kh-bg); pointer-events: none;
  -webkit-mask: var(--arrow) 50% 50% / 46% 46% no-repeat, var(--arrow) -40% 50% / 0% 0% no-repeat;
  mask: var(--arrow) 50% 50% / 46% 46% no-repeat, var(--arrow) -40% 50% / 0% 0% no-repeat;
  transition: -webkit-mask-position .45s cubic-bezier(.77, 0, .175, 1), -webkit-mask-size .45s cubic-bezier(.77, 0, .175, 1), mask-position .45s cubic-bezier(.77, 0, .175, 1), mask-size .45s cubic-bezier(.77, 0, .175, 1);
}
.elementor-widget-button.kh-knop .elementor-button:is(:focus-visible, :active) { color: var(--kh-bg); }
.elementor-widget-button.kh-knop .elementor-button:is(:focus-visible, :active)::before { clip-path: inset(0 round 999px); }
.elementor-widget-button.kh-knop .elementor-button:is(:focus-visible, :active)::after { -webkit-mask-position: 140% 50%, 50% 50%; mask-position: 140% 50%, 50% 50%; -webkit-mask-size: 0% 0%, 46% 46%; mask-size: 0% 0%, 46% 46%; }
@media (hover: hover) and (pointer: fine) {
  .elementor-widget-button.kh-knop .elementor-button:hover { color: var(--kh-bg); }
  .elementor-widget-button.kh-knop .elementor-button:hover::before { clip-path: inset(0 round 999px); }
  .elementor-widget-button.kh-knop .elementor-button:hover::after { -webkit-mask-position: 140% 50%, 50% 50%; mask-position: 140% 50%, 50% 50%; -webkit-mask-size: 0% 0%, 46% 46%; mask-size: 0% 0%, 46% 46%; }
}
.elementor-widget-button.kh-knop .elementor-button:active { transform: scale(.97); }
@media (prefers-reduced-motion: reduce) {
  .elementor-widget-button.kh-knop .elementor-button, .elementor-widget-button.kh-knop .elementor-button::before, .elementor-widget-button.kh-knop .elementor-button::after { transition: none; }
}

/* the floating button: the theme's script hides it over the hero / footer and turns it white over dark sections */
.kh-zweef { transition: opacity .26s ease, transform .26s cubic-bezier(.23, 1, .32, 1), visibility 0s; }
.kh-zweef.is-on-dark { --kh-bg: var(--e-global-color-khwit); --kh-ink: var(--e-global-color-khgroen); }
.kh-zweef.is-hidden { opacity: 0; transform: translateY(1rem); visibility: hidden; pointer-events: none; transition: opacity .26s ease, transform .26s cubic-bezier(.23, 1, .32, 1), visibility 0s .26s; }
@media (max-width: 767px) { .kh-zweef { --kh-pad: 1.25rem; --kh-tile: 2.25rem; --kh-tile-gap: .25rem; } .kh-zweef .elementor-button { min-height: 3rem; } }
.elementor-editor-active .kh-zweef { opacity: 1; visibility: visible; transform: none; }

/* the phone menu's own button (class kh-knop-blok): a plain white block, no arrow */
.elementor-widget-button.kh-knop-blok .elementor-button { display: inline-flex; align-items: center; min-height: 3.25rem; padding: 0 1.5rem; border-radius: 0; }

/* 6 · Phone menu (sync_menu): the "De kaart" accordion without boxes, its groups centred */
.kh-telkaart .e-n-accordion-item-title { border: 0; padding: 0; background: none; }
.kh-telkaart .e-n-accordion-item > [role="region"], .kh-telkaart .e-n-accordion-item > .e-con { border: 0; }
.kh-telkaart .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-text {
  text-decoration: underline 1px var(--e-global-color-khgoud); text-underline-offset: .35em;
}
/* ── sync_header + sync_menu — end ── */

/* ── sync_footer — start (Pixel, 2026-10-21 · only what Elementor has no setting for; colours, fonts, sizes and
   places are in the footer's own elements. The class names site-footer__… are the theme's motion hooks.) ── */
/* links and contact: one finger-sized line each (44 px), as before; the links' wrapper is a plain block */
.kh-voet .site-footer__links a,.kh-voet .site-footer__contact a{display:inline-flex;width:auto;min-height:2.75rem;align-items:center;text-decoration:none}
.kh-voet .site-footer__links{display:block}
@media (max-width:767px){.kh-voet .site-footer__links .elementor-icon-list-items{display:grid;grid-template-columns:1fr 1fr;gap:.1rem 1rem}.kh-voet .site-footer__links .elementor-icon-list-item{margin:0!important;padding:0!important}}
@media (hover:hover) and (pointer:fine){.kh-voet a:hover{text-decoration:underline;text-decoration-color:var(--e-global-color-khgoud);text-underline-offset:.25em}}
/* the oval, the logo, the word and the arc: centred on the middle line */
.kh-voet .site-footer__oval{transform:translate(-50%,-50%)}
.kh-voet .site-footer__logo,.kh-voet .site-footer__arc{transform:translate(-50%)}
.kh-voet .site-footer__word{transform:translateY(-50%);white-space:nowrap}
.kh-voet .site-footer__arc{pointer-events:none}
/* the theme's scroll motion moves these parts; Elementor's own .4s transform transition made them stop half-way */
.kh-voet .site-footer__contact>.elementor-element,.kh-voet .site-footer__logo,.kh-voet .site-footer__arc{transition:none}
/* the line around the oval: 1 px at every size, drawn in while you scroll; its colour is the Icon's colour */
.kh-voet .site-footer__rim svg{overflow:visible}
.kh-voet .site-footer__rim path{fill:none;stroke:currentColor;stroke-width:var(--rim,.6);stroke-dasharray:1 1}
/* the words in the arc: the Text Path's own font, centred on the arc */
.kh-voet .site-footer__arc text{font:inherit;letter-spacing:inherit;text-anchor:middle}
/* ── sync_footer — end ── */

/* ── sync_hero — start (Pixel, 2026-10-21 · only what Elementor has no setting for. The oval, its growth while you
   scroll and the first-visit intro stay the theme's motion; it works through the names hero__… and data-hero-….) ── */
/* the theme's motion moves these parts; Elementor's own .4s transform transition would make them stop half-way */
.kh-held .hero__stage,.kh-held .hero__media,.kh-held .hero__media img,.kh-held .hero__arc,.kh-held .hero__copy,.kh-held .hero__copy>.elementor-element,.kh-held .ambient{transition:none}
/* the soft photo behind is 112 % wide (6 % past each side); Elementor caps an element at 100 % */
.kh-held .hero__stage>.elementor-element.ambient{max-width:none}
/* the words in the arc: the Text Path's own font, centred on the arc */
.kh-held .hero__arc text{font:inherit;letter-spacing:inherit;text-anchor:middle}
/* the button on the dark hero: the house button (kh-knop), white with green text */
.elementor-widget-button.kh-knop.kh-knop-licht{--kh-bg:var(--e-global-color-khwit);--kh-ink:var(--e-global-color-khgroen)}
/* first visit: Elementor writes the arc's words a moment after the theme's intro has started, so the intro can't fade
   them in — they fade in here, at the intro's own moment (1.7 s) */
html.kh-intro[data-intro] .kh-held .hero__arc text{visibility:visible;animation:kh-held-boog .8s 1.7s both}
@keyframes kh-held-boog{from{opacity:0}to{opacity:1}}
/* ── sync_hero — end ── */

/* ── sync_table — start (Pixel, 2026-10-21 · only what Elementor has no setting for. Where the title, the plates, the
   list and the bar sit — pinned while you scroll, or still with "reduce motion" — and how the plates move is the theme's
   scene; it works through the names table…, tplate, titem… and data-t….) ── */
/* the theme's motion moves these parts; Elementor's own .4s transform transition would make them lag */
.kh-tafel,.kh-tafel .elementor-element{transition:none}
/* the soft photo behind is 112 % wide (6 % past each side); Elementor caps an element at 100 % */
.kh-tafel.table>.elementor-element.ambient{max-width:none}
/* the thin ring around each plate (drawn by the theme) in the Site Settings colour "Goud zacht" */
.kh-tafel .tplate::after{border-color:var(--e-global-color-khgoudzacht)}
/* the number's gold line is the Heading's own bottom border — not the theme's second line */
.kh-tafel .titem__num::after{content:none}
/* a service name stays on one line (the theme's words rise one by one) */
.kh-tafel .titem__name .elementor-heading-title{white-space:nowrap}
/* the bar that fills while you scroll: empty until the scene starts, it grows from the left */
.kh-tafel [data-tprogress]{transform:scaleX(0);transform-origin:left center}
/* the outlined house button on dark (kh-knop kh-knop-rand): see-through, a light border, white arrow tile */
.elementor-widget-button.kh-knop.kh-knop-rand{--kh-bg:var(--e-global-color-khgroen);--kh-ink:var(--e-global-color-khwit)}
.elementor-widget-button.kh-knop.kh-knop-rand .elementor-button{background-color:transparent;border-color:var(--e-global-color-khranddonker)}
/* a bold text link (kh-link): 44 px tall, easy to tap */
.elementor-widget-heading.kh-link .elementor-heading-title a{display:flex;align-items:center;min-height:2.75rem}
/* "reduce motion" on: nothing is pinned, the theme lays the scene out still — a big white title over the plates and
   all four services below each other. Elementor's fonts are the pinned ones, so the still title and (phone) text are
   set here. */
@media (prefers-reduced-motion:reduce){
  .kh-tafel.table>.elementor-element.table__title{max-width:11ch}
  .kh-tafel .table__title .elementor-heading-title{font-size:clamp(3rem, .8rem + 6.6vw, 8.5rem)!important;color:var(--e-global-color-khwit)!important}
}
@media (prefers-reduced-motion:reduce) and (max-width:767px){
  .kh-tafel .titem__text .elementor-heading-title{font-size:clamp(1.0625rem, 1rem + .25vw, 1.1875rem)!important}
}
/* ── sync_table — end ── */

/* ── sync_fotorij — start (Pixel, 2026-10-21 · only what Elementor has no setting for. Pinning, the row sliding left
   while you scroll, the captions and bars changing, the next section rising over it and the sideways swipe on a phone are
   the theme's; it works through the names occasions…, strip…, bar… and data-motion="carousel".) ── */
/* the theme's motion moves these parts; Elementor's own .4s transform transition would make them lag */
.kh-fotorij,.kh-fotorij .elementor-element{transition:none}
/* a wide photo may be wider than the screen (the row slides); Elementor caps an element at 100 % */
.kh-fotorij.occasions .strip__track>.elementor-element.strip__item{max-width:none}
/* the title's lines rise one by one: its text runs inline, so the box's own line height must not add space */
.kh-fotorij .occasions__title{line-height:0}
/* the theme's link in a caption: bold, in the Site Settings colour "Groen" */
.kh-fotorij .strip__caption a{color:var(--e-global-color-khgroen)}
/* "reduce motion" on a computer: the row is not pinned and the names are the theme's bigger still size */
@media (prefers-reduced-motion:reduce) and (min-width:768px){
  .kh-fotorij .strip__name .elementor-heading-title{font-size:clamp(2.75rem, 1.4rem + 5vw, 6rem)!important}
}
/* ── sync_fotorij — end ── */

/* ── sync_vakmanschap — start (Pixel, 2026-10-21 · only what Elementor has no setting for. Pinning, the title growing,
   the four photos drifting in and away, the title moving up and the blocks rising are the theme's; so are the places of
   the title, photos and blocks (pinned and still). It works through the names craft…, scatter… and
   data-motion="craft-scene".) ── */
/* the theme's motion moves these parts; Elementor's own .4s transform transition would make them lag */
.kh-vakmanschap,.kh-vakmanschap .elementor-element{transition:none}
/* the soft photo is wider than the section (it bleeds over the edges); Elementor caps an element at 100 % */
.kh-vakmanschap.craft>.elementor-element.ambient{max-width:none}
/* ── sync_vakmanschap — end ── */

/* ── sync_afsluiter — start (Pixel, 2026-10-21 · only what Elementor has no setting for. The title's lines rising, the
   line and buttons rising in, the plate turning in, the gold ring around it and the places on a phone are the theme's;
   it works through the names closing…, data-split-lines, data-reveal-group and data-spin-in.) ── */
/* the theme's motion moves these parts; Elementor's own .4s transform transition would make them lag */
.kh-afsluiter,.kh-afsluiter .elementor-element{transition:none}
/* the theme's own Elementor sheet turns a container with the class "closing" into a plain block without gaps; the section
   is a grid (text left, plate right) on a computer and tablet and a column on a phone, with Elementor's own gaps */
.e-con.kh-afsluiter.closing{display:grid;gap:var(--gap)}
@media (max-width:767px){.e-con.kh-afsluiter.closing{display:flex}}
/* the title keeps the theme's width (about 12 letters a line); Elementor would let it run the full column */
.kh-afsluiter .closing__text>.elementor-element.closing__title{max-width:12ch}
/* the title's lines rise one by one: its text runs inline, so the box's own line height must not add space; its lines
   are balanced, as the theme does for every heading */
.kh-afsluiter .closing__title{line-height:0;text-wrap:balance}
/* the second house button: white with a green edge, green arrow tile (fills green on hover) */
.elementor-widget-button.kh-knop.kh-knop-wit{--kh-bg:var(--e-global-color-khwit);--kh-ink:var(--e-global-color-khgroen)}
.elementor-widget-button.kh-knop.kh-knop-wit .elementor-button{border-color:var(--e-global-color-khgroen)}
/* ── sync_afsluiter — end ── */

/* ── sync_vragen — start (Pixel, 2026-10-21 · only what Elementor has no setting for. The titles' lines rising, the
   review cards rising in, the sticky title beside the cards and the places on tablet / phone are the theme's; it works
   through the names reviews…, review…, faq… and data-split-lines, data-reveal-group.) ── */
/* the theme's motion moves these parts; Elementor's own .4s transform transition would make them lag */
.kh-reviews,.kh-reviews .elementor-element,.kh-vragen,.kh-vragen .elementor-element{transition:none}
/* both titles: their lines rise one by one (text inline in a heading box), balanced like every theme heading */
.kh-reviews .reviews__title,.kh-vragen .faq__title{line-height:0;text-wrap:balance}
/* the questions' title box measures its width (14 letters) in the title's own font, as the theme's h2 did */
.kh-vragen .faq__title{font-family:var(--e-global-typography-khafsluittitel-font-family),serif}
/* the theme's line widths; Elementor would let them run the full column */
.kh-reviews .reviews__head>.elementor-element.reviews__title{max-width:8ch}
.kh-vragen.faq>.elementor-element.faq__title{max-width:14ch}
.kh-vragen .e-n-accordion-item>.e-con>.elementor-element.faq__answer{max-width:52ch}
@media (max-width:767px){.kh-reviews .reviews__head>.elementor-element.reviews__title{max-width:none}}
/* the questions: Elementor's accordion as the theme's list — no borders, the padding around the whole question, the
   open one on white, a thin chevron that turns */
.kh-vragen .elementor-widget-n-accordion{--n-accordion-border-width:0px;--n-accordion-padding:0px}
.kh-vragen .e-n-accordion-item{margin-inline:-1.5rem;padding:1rem 1.5rem;transition:background-color .26s ease}
.kh-vragen .e-n-accordion-item[open]{background:var(--e-global-color-khwit)}
.kh-vragen .e-n-accordion-item-title{gap:1.5rem;min-height:2.75rem;-webkit-user-select:none;user-select:none}
.kh-vragen .e-n-accordion-item-title::after{content:"";flex:none;width:1rem;height:1rem;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M0 4.2 8 12.1 16 4.2' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M0 4.2 8 12.1 16 4.2' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  transition:transform .26s cubic-bezier(.23,1,.32,1)}
.kh-vragen .e-n-accordion-item[open]>.e-n-accordion-item-title::after{transform:rotate(180deg)}
@media (max-width:767px){.kh-vragen .e-n-accordion-item{margin-inline:calc(var(--margin) * -1);padding-inline:var(--margin)}}
/* ── sync_vragen — end ── */

/* ── sync_paginakop — start (Pixel, 2026-10-21 · only what Elementor has no setting for. With the plate, the oval, its
   growth while you scroll and the first-visit intro stay the theme's motion; it works through the names hero__… and
   data-hero-….) ── */
/* the theme's motion moves these parts; Elementor's own .4s transform transition would make them stop half-way */
.kh-paginakop .hero__stage,.kh-paginakop .hero__media,.kh-paginakop .hero__media img,.kh-paginakop .hero__arc,.kh-paginakop .hero__word,.kh-paginakop .hero__copy,.kh-paginakop .hero__copy>.elementor-element,.kh-paginakop .ambient{transition:none}
/* the soft photo behind is 112 % wide (6 % past each side); Elementor caps an element at 100 % */
.kh-paginakop .hero__stage>.elementor-element.ambient{max-width:none}
/* the words in the arc: the Text Path's own font, centred on the arc */
.kh-paginakop .hero__arc text{font:inherit;letter-spacing:inherit;text-anchor:middle}
/* the page title fits the screen: the font's size, but never wider than the screen allows for this title's length
   (the section's --chars = letters in the title, --longest = letters in its longest word; Advanced → Attributes) */
.elementor .kh-paginakop.hero--page .hero__word .elementor-heading-title{font-size:min(var(--e-global-typography-khwoordmerk-font-size),calc(92vw / (var(--chars, 11) * .42)))}
@media (max-width:767px){.elementor .kh-paginakop.hero--page .hero__word .elementor-heading-title{font-size:min(var(--e-global-typography-khwoordmerk-font-size),calc(92vw / (var(--longest, 10) * .46)))}}
.elementor .kh-paginakop.hero--compact .hero__word .elementor-heading-title{font-size:min(var(--e-global-typography-khkorttitel-font-size),calc(92vw / (var(--longest, 10) * .46)))}
.elementor .kh-paginakop.hero--article .hero__word .elementor-heading-title{font-size:var(--e-global-typography-khartikeltitel-font-size)}
/* the theme's own rules for every h1 / p (balanced, "pretty" lines) would sit on the text inside Elementor's box; the
   text follows the head's own box instead (one line, or balanced lines, as the theme sets there) */
.kh-paginakop .hero__word .elementor-heading-title,.kh-paginakop .hero__title .elementor-heading-title{text-wrap:inherit;white-space:inherit}
/* with the plate: the page's real h1, out of view (the big word above it is picture only) */
.kh-paginakop .hero__stage>.elementor-element.kh-schermlezer{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
/* an article title: at most 18 letters wide per line */
.kh-paginakop.hero--article .hero__stage>.elementor-element.hero__word{max-width:18ch}
/* the crumbs: one line of links with a "/" between them, in the text box's own font and colour */
.kh-paginakop .crumbs ol{display:flex;flex-wrap:wrap;gap:.25rem .6rem;margin:0;padding:0;list-style:none;font:inherit;color:inherit}
.kh-paginakop .crumbs li+li::before{content:"/";margin-right:.6rem;opacity:.6}
.kh-paginakop .crumbs a{color:inherit;text-decoration:none}
@media (hover:hover) and (pointer:fine){.kh-paginakop .crumbs a:hover{color:var(--e-global-color-khwit);text-decoration:underline;text-decoration-color:var(--e-global-color-khgoud);text-underline-offset:.25em}}
/* first visit: Elementor writes the arc's words a moment after the theme's intro has started, so the intro can't fade
   them in — they fade in here, at the intro's own moment (1.7 s; the keyframes are sync_hero's) */
html.kh-intro[data-intro] .kh-paginakop .hero__arc text{visibility:visible;animation:kh-held-boog .8s 1.7s both}
/* ── sync_paginakop — end ── */

/* ── sync_kenmerken — start (Pixel, 2026-10-21 · only what Elementor has no setting for. The pinned scene — each plate
   growing into the tall oval, the numbers, the dots, the soft glow — stays the theme's motion; it works through the
   names features / feature… and data-motion.) ── */
/* the theme's motion moves these parts; Elementor's own .4s transform transition would make them stop half-way */
.kh-kenmerken,.kh-kenmerken .elementor-element{transition:none}
/* the title: balanced lines, as the theme gives every h2 (the title text is a span in a box marked as a heading) */
.kh-kenmerken .feature__title{text-wrap:balance}
/* the points: the theme's list look (a short gold line before each point) on the list inside the text box */
.kh-kenmerken .feature__points ul{display:grid;gap:.35rem;margin:0;padding:0;list-style:none}
/* low screens: the scene's titles a size smaller (the theme's rule, on the title text inside Elementor's box) */
@media (min-width:768px) and (max-height:760px){.has-motion .kh-kenmerken .feature__title .elementor-heading-title{font-size:clamp(2rem, .6rem + 2.8vw, 3.75rem)}}
/* ── sync_kenmerken — end ── */

/* ── sync_lijst — start (Pixel, 2026-10-21 · only what Elementor has no setting for. The title's lines rising, the rows
   rising in, the name sliding on hover and the round plate following the mouse are the theme's; it works through the
   names menu…, data-split-lines, data-reveal-group and each row's data-photo.) ── */
/* the theme's motion moves these parts; Elementor's own .4s transform transition would make them lag */
.kh-lijst,.kh-lijst .elementor-element{transition:none}
/* hover with a mouse: the name slides, the small plate grows a little — the theme's timing */
.kh-lijst .menu__link>.menu__name,.kh-lijst .menu__link>.menu__thumb{transition:transform .26s cubic-bezier(.23,1,.32,1)}
/* the title: its lines rise one by one (text inline in a heading box), balanced like every theme heading */
.kh-lijst .menu__title{line-height:0;text-wrap:balance}
/* a row is a link: no underline, the text colours are the parts' own */
.kh-lijst .menu__link{color:var(--e-global-color-khinkt);text-decoration:none}
/* the numbers count by themselves (01, 02 …); a list further down in the same box counts on (07, 08 …).
   Font and colour: Site Settings → "Nummer" and "Goud". Screen readers skip them, as before. (::after, put first in the
   row: Elementor keeps a container's ::before for its background overlay.) */
.kh-lijst{counter-reset:kh-lijst}
.kh-lijst~.kh-lijst{counter-reset:none}
.kh-lijst .menu__row{counter-increment:kh-lijst}
.kh-lijst .menu__link::after{order:-1;content:counter(kh-lijst,decimal-leading-zero);content:counter(kh-lijst,decimal-leading-zero) / "";
  font-family:var(--e-global-typography-khnummer-font-family),serif;font-size:var(--e-global-typography-khnummer-font-size);
  font-weight:var(--e-global-typography-khnummer-font-weight);color:var(--e-global-color-khgoud)}
/* the last row has a line under it too (same line as the row's own line above it, set in Elementor) */
.kh-lijst .menu__list>.elementor-element.menu__row:last-child{border-bottom-width:1px;--border-bottom-width:1px}
/* ── sync_lijst — end ── */

/* ── sync_bestelbon — start (Pixel, 2026-10-21 · only what Elementor has no setting for. The form, the price and the
   turning plate are Ted's element "Bestelbon" (plugin kokend-heet-site); the title's lines rising are the theme's
   (data-split-lines). The tablet layout sits here, at the theme's own breakpoint (below 1024 px) — the element's CSS
   switches there too; Elementor's tablet starts at 1024 px and the two would disagree on an iPad held sideways.) ── */
/* the theme's motion moves the title's lines; Elementor's own .4s transition would make them lag */
.kh-bestelbon,.kh-bestelbon .elementor-element{transition:none}
/* the plate sticks out past the right edge: cut off here, without making the section a scroll box */
.kh-bestelbon{overflow:clip;isolation:isolate}
/* the title: its lines rise one by one (text inline in a heading box); the box measures its width (11 letters) in the
   title's own font and size, balanced like every theme heading */
.kh-bestelbon .steps__title{font-family:var(--e-global-typography-khbontitel-font-family),serif;
  font-size:var(--e-global-typography-khbontitel-font-size);line-height:0;text-wrap:balance}
/* tablet and phone: one column — the intro, then the form 3rem lower. On a tablet the intro is as tall as the plate
   beside it needs (the element puts the plate there: 46vw wide, 2rem above the intro's top) */
@media (max-width:63.99em){
  .elementor .kh-bestelbon.e-con.e-grid{min-height:0;grid-template-columns:minmax(0,1fr);grid-template-rows:auto;row-gap:3rem}
  .elementor .kh-bestelbon>.elementor-element.kh-bon-intro,.elementor .kh-bestelbon>.elementor-element.kh-bon-form{grid-column:1 / -1}
  .elementor .kh-bestelbon>.elementor-element.kh-bon-intro{min-height:calc(46vw - 2rem)}
}
@media (max-width:47.99em){
  .elementor .kh-bestelbon>.elementor-element.kh-bon-intro{min-height:0}
}
/* ── sync_bestelbon — end ── */

/* ── sync_waarden — start (Pixel, 2026-10-21 · only what Elementor has no setting for. The title's lines rising and the
   rows rising in are the theme's; it works through data-split-lines and data-reveal-group.) ── */
/* the theme's motion moves these parts; Elementor's own .4s transition would make them lag */
.kh-waarden,.kh-waarden .elementor-element{transition:none}
/* the title: its lines rise one by one (text inline in a heading box); the box measures its width (12 letters) in the
   title's own font and size, balanced like every theme heading */
.kh-waarden .kh-waarden-titel{font-family:var(--e-global-typography-khlijsttitel-font-family),serif;
  font-size:var(--e-global-typography-khlijsttitel-font-size);line-height:0;text-wrap:balance}
/* each row: the value and its line stand on one baseline (Elementor's grid offers no "baseline") */
.elementor .kh-waarden .e-con.kh-waarde{align-items:baseline}
/* the line breaks as the theme's <dd> did (the theme's "pretty" breaking is for its <p>) */
.kh-waarden .kh-waarde-uitleg p{text-wrap:wrap}
/* ── sync_waarden — end ── */

/* ── sync_werkwijze — start (Pixel, 2026-10-21 · only what Elementor has no setting for. The scene — pinned, the plate
   turning a quarter per step, the next dish turning in, the gold rim, the mint wash, the step names on the dial — stays
   the theme's motion; it works through the names process / process__… and data-motion. Places and sizes of the parts
   stay the theme's, so the computer, phone and "reduce motion" versions all stay as before.) ── */
/* the theme's motion moves these parts; Elementor's own .4s transform transition would make them stop half-way */
.kh-werkwijze,.kh-werkwijze .elementor-element{transition:none}
/* the round top corners when this layer slides over the one before (the theme's rule reaches only a section right
   under the layer; here Elementor's template box sits between) */
.kh-werkwijze{border-top-left-radius:var(--layer-top,0);border-top-right-radius:var(--layer-top,0)}
/* the title: its lines rise (the theme splits the box); balanced lines, as the theme gives every h2 */
.kh-werkwijze .process__title{line-height:0;text-wrap:balance}
/* "reduce motion" (and the editor): the theme shows the title a size bigger */
html:not(.has-motion) .kh-werkwijze .process__title .elementor-heading-title{font-size:var(--e-global-typography-khlijsttitel-font-size)}
/* the steps (one numbered list in a Text Editor — the dial reads its items): number and step name in the Site
   Settings fonts and colours */
.kh-werkwijze .process__num{font-family:var(--e-global-typography-khnummer-font-family),serif;font-size:var(--e-global-typography-khwerktitel-font-size);color:var(--e-global-color-khgoud)}
.has-motion .kh-werkwijze .process__num{font-size:var(--e-global-typography-khlijsttitel-font-size)}
.kh-werkwijze .process__list h3{font-family:var(--e-global-typography-khheldtitel-font-family),serif;font-size:var(--e-global-typography-khheldtitel-font-size);font-weight:var(--e-global-typography-khheldtitel-font-weight);color:var(--e-global-color-khgroen)}
/* the plate: the dial (HTML) lies over the photos, the size of the plate */
.elementor .kh-werkwijze .elementor-element.kh-werkwijze-wijzer{position:absolute;top:0;right:0;bottom:0;left:0;max-width:none}
/* the dial, the wash and the step names in the Site Settings colours */
.kh-werkwijze .process__track{stroke:var(--e-global-color-khlijn)}
.kh-werkwijze .process__rim{stroke:var(--e-global-color-khgoud)}
.kh-werkwijze .process__wash{background:var(--e-global-color-khmint)}
.kh-werkwijze .process__label{fill:var(--e-global-color-khgroen)}
.kh-werkwijze .process__label tspan{fill:var(--e-global-color-khgoud)}
@media (max-width:47.99em){
  /* phone: plate first, then the steps (the theme orders its list; here Elementor's box around it) */
  .has-motion .kh-werkwijze .elementor-element.kh-werkwijze-stappen{order:2;align-self:start}
  .has-motion .kh-werkwijze .process__num{font-size:var(--e-global-typography-khwerktitel-font-size)}}
/* ── sync_werkwijze — end ── */

/* ── sync_opdrachten — start (Pixel, 2026-10-21 · only what Elementor has no setting for. The title's lines rising, each
   case's text rising in and the two plates drifting at their own pace are the theme's motion; the places (the 12
   columns, every second case mirrored, the plates' spots, the phone layout) are the theme's too — both work through the
   names cases / case… / plate… and data-split-lines, data-reveal-group, data-plate, data-ambient.) ── */
/* the theme's motion moves these parts; Elementor's own .4s transform transition would make them lag */
.kh-opdrachten,.kh-opdrachten .elementor-element{transition:none}
/* the soft photo is wider than the section (it bleeds over the edges); Elementor caps an element at 100 % */
.kh-opdrachten.cases>.elementor-element.ambient{max-width:none}
/* the title: its lines rise (the theme splits the box); balanced lines, as the theme gives every h2 */
.kh-opdrachten .cases__title{line-height:0;text-wrap:balance}
/* the case number counts by itself (01, 02 …): a case added, removed or moved renumbers itself, as before */
.kh-opdrachten .cases__list{counter-reset:kh-opdracht}
.kh-opdrachten .case{counter-increment:kh-opdracht}
.kh-opdrachten .case__kind::before{content:counter(kh-opdracht,decimal-leading-zero);content:counter(kh-opdracht,decimal-leading-zero) / "";
  font-family:var(--e-global-typography-khheldtitel-font-family),serif;font-size:var(--e-global-typography-khheldtitel-font-size);
  font-weight:var(--e-global-typography-khheldtitel-font-weight);line-height:1;color:var(--e-global-color-khgoud)}
/* the line between two cases and the ring around each plate: Site Settings "Goud", lighter */
.kh-opdrachten .case+.case{border-top-color:color-mix(in srgb,var(--e-global-color-khgoud) 25%,transparent)}
.kh-opdrachten .plate::after{border-color:color-mix(in srgb,var(--e-global-color-khgoud) 55%,transparent)}
/* the details and the text take the colour set in their Text Editor (the theme gives every p there a fixed grey) */
.kh-opdrachten .case__meta p,.kh-opdrachten .kh-opdracht-tekst p{color:inherit}
/* "Op tafel": the theme's list look (a short gold line before each dish) on the list inside the text box */
.kh-opdrachten .feature__points ul{display:grid;gap:.35rem;margin:0;padding:0;list-style:none}
/* the client's words: Site Settings fonts and colours */
.kh-opdrachten .case__quote{border-left-color:var(--e-global-color-khgoud)}
.kh-opdrachten .case__quote blockquote{font-family:var(--e-global-typography-khreviewtekst-font-family),serif;font-size:var(--e-global-typography-khreviewtekst-font-size);color:var(--e-global-color-khwit)}
.kh-opdrachten .case__quote figcaption{color:var(--e-global-color-khgrijsdonker)}
/* ── sync_opdrachten — end ── */

/* ── sync_tekstblok — start (Pixel, 2026-10-21 · only what Elementor has no setting for. The title's lines rising and the
   paragraphs and buttons rising in one by one are the theme's motion; it works through data-split-lines and
   data-reveal-group.) ── */
/* the theme's motion moves these parts; Elementor's own .4s transform transition would make them lag */
.kh-tekstblok,.kh-tekstblok .elementor-element{transition:none}
/* the title: its lines rise (the theme splits the box); balanced lines, as the theme gives every h2 */
.kh-tekstblok .kh-tekstblok-titel{line-height:0;text-wrap:balance}
/* ── sync_tekstblok — end ── */

/* ── sync_artikel — start (Pixel, 2026-10-21 · only what Elementor has no setting for. The photo drifting softly and the
   short answer rising in are the theme's motion; the article's width, spacing and table / list look are the theme's
   too — they work through the names article… and data-parallax, data-reveal-group.) ── */
/* the theme's motion moves these parts; Elementor's own .4s transform transition would make them lag */
.kh-artikel,.kh-artikel .elementor-element{transition:none}
/* the short answer: Site Settings font "Review: tekst" in green (the theme sets it on the answer's paragraph) */
.kh-artikel .article__answer .kh-artikel-antwoord p{font-family:var(--e-global-typography-khreviewtekst-font-family),serif;font-size:var(--e-global-typography-khreviewtekst-font-size);font-weight:var(--e-global-typography-khreviewtekst-font-weight);line-height:var(--e-global-typography-khreviewtekst-line-height);color:var(--e-global-color-khgroen)}
/* links, table heads and lines in the Site Settings colours */
.kh-artikel .article__section a{color:var(--e-global-color-khgroen);text-decoration-color:var(--e-global-color-khgoud)}
.kh-artikel .article__section th{color:var(--e-global-color-khgroen);background:var(--e-global-color-khmint)}
.kh-artikel .article__section :is(th,td){border-bottom-color:var(--e-global-color-khlijn)}
/* ── sync_artikel — end ── */

/* ── sync_blogberichten — start (Pixel, 2026-10-21 · only what Elementor has no setting for. The cards rising in one by
   one, the photo zooming and the title underlined under the mouse are the theme's; so are the section's spacing and the
   card look — they work through the names posts, post__… and data-reveal-group.) ── */
/* the theme's motion moves the cards; Elementor's own .4s transform transition would make them lag */
.kh-blogberichten .elementor-element{transition:none}
/* at exactly 1024 px (an iPad held sideways) the theme still shows the desktop columns; Elementor's tablet starts at
   1024, the theme's below it. 3 = the Loop Grid's desktop Columns — change both together */
@media (min-width:64em) and (max-width:1024px){.kh-blogberichten .elementor-loop-container.elementor-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* ── sync_blogberichten — end ── */

/* ── sync_contact — start (Pixel, 2026-10-21 · only what Elementor has no setting for. The left side rising in is the
   theme's motion; so are the section's grid and spacing, the big links' line under the mouse and the yellow marks —
   they work through the names contact… and data-reveal-group. The form is Elementor Pro's own (it sends the message
   itself, his "1" 2026-10-21); below its fields, messages and button get the look the theme's form had.) ── */
/* the theme's motion moves the left side; Elementor's own .4s transform transition would make it lag */
.kh-contact,.kh-contact .elementor-element{transition:none}
/* the fields: the theme's height and room inside (Elementor has only fixed sizes) */
.kh-contactformulier .elementor-field-group .elementor-field-textual{min-height:3.25rem;padding:.75rem 1rem}
.kh-contactformulier .elementor-field-group select.elementor-field-textual{padding-inline-end:3rem}
.kh-contactformulier .elementor-field-group textarea.elementor-field-textual{min-height:7rem;resize:vertical}
/* the subject list without Elementor's arrow, as the theme's had none */
.kh-contactformulier .elementor-select-wrapper .select-caret-down-wrapper{display:none}
/* a message under one field: the field beside it stays at the top of the row (Elementor would centre it lower) */
.kh-contactformulier .elementor-field-group{align-content:flex-start}
/* the button sits 1.5rem under the last field, as before (the rows are 1rem apart) */
.kh-contactformulier .e-form__buttons{margin-top:.5rem}
/* a field not filled in right: a red edge (Site Settings colour "Fout") and the message under it in the labels' font */
.kh-contactformulier .elementor-error .elementor-field-textual{box-shadow:inset 0 0 0 2px var(--e-global-color-khfout)}
.kh-contactformulier .elementor-message{margin:.4rem 0 0;font-family:var(--e-global-typography-khformlabel-font-family),sans-serif;font-size:var(--e-global-typography-khformlabel-font-size);font-weight:var(--e-global-typography-khformlabel-font-weight);line-height:var(--e-global-typography-khformlabel-line-height)}
.kh-contactformulier .elementor-message::before{content:none}
/* the thank-you line: running text on mint, as the theme's */
.kh-contactformulier .elementor-message.elementor-message-success{width:fit-content;margin-top:1.5rem;padding:1rem 1.25rem;background:var(--e-global-color-khmint);font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}
/* the button: the house button (as block 5, here for the form's own button) — colours --kh-bg / --kh-ink */
.kh-contactformulier{--kh-bg:var(--e-global-color-khgroen);--kh-ink:var(--e-global-color-khwit);--kh-pad:2rem;--kh-tile:2.375rem;--kh-tile-gap:.3125rem}
.kh-contactformulier .e-form__buttons .elementor-button{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:auto;min-height:3.25rem;padding-block:0;padding-inline:var(--kh-pad) calc(var(--kh-tile) + var(--kh-tile-gap) + var(--kh-pad) * .7);background-color:var(--kh-bg);color:var(--kh-ink);border:2px solid var(--kh-bg);border-radius:999px;white-space:nowrap;transition:background-color .2s ease,border-color .2s ease,color .45s cubic-bezier(.77,0,.175,1),transform .14s cubic-bezier(.23,1,.32,1)}
.kh-contactformulier .e-form__buttons .elementor-button::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--kh-ink);clip-path:inset(calc(50% - var(--kh-tile) / 2) var(--kh-tile-gap) calc(50% - var(--kh-tile) / 2) calc(100% - var(--kh-tile-gap) - var(--kh-tile)) round 999px);transition:clip-path .45s cubic-bezier(.77,0,.175,1)}
.kh-contactformulier .e-form__buttons .elementor-button::after{--arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E");content:"";position:absolute;top:50%;right:var(--kh-tile-gap);width:var(--kh-tile);height:var(--kh-tile);translate:0 -50%;background:var(--kh-bg);pointer-events:none;-webkit-mask:var(--arrow) 50% 50% / 46% 46% no-repeat,var(--arrow) -40% 50% / 0% 0% no-repeat;mask:var(--arrow) 50% 50% / 46% 46% no-repeat,var(--arrow) -40% 50% / 0% 0% no-repeat;transition:-webkit-mask-position .45s cubic-bezier(.77,0,.175,1),-webkit-mask-size .45s cubic-bezier(.77,0,.175,1),mask-position .45s cubic-bezier(.77,0,.175,1),mask-size .45s cubic-bezier(.77,0,.175,1)}
.kh-contactformulier .e-form__buttons .elementor-button:is(:focus-visible,:active){color:var(--kh-bg)}
.kh-contactformulier .e-form__buttons .elementor-button:is(:focus-visible,:active)::before{clip-path:inset(0 round 999px)}
.kh-contactformulier .e-form__buttons .elementor-button:is(:focus-visible,:active)::after{-webkit-mask-position:140% 50%,50% 50%;mask-position:140% 50%,50% 50%;-webkit-mask-size:0% 0%,46% 46%;mask-size:0% 0%,46% 46%}
@media (hover:hover) and (pointer:fine){
.kh-contactformulier .e-form__buttons .elementor-button:hover{color:var(--kh-bg)}
.kh-contactformulier .e-form__buttons .elementor-button:hover::before{clip-path:inset(0 round 999px)}
.kh-contactformulier .e-form__buttons .elementor-button:hover::after{-webkit-mask-position:140% 50%,50% 50%;mask-position:140% 50%,50% 50%;-webkit-mask-size:0% 0%,46% 46%;mask-size:0% 0%,46% 46%}
}
.kh-contactformulier .e-form__buttons .elementor-button:active{transform:scale(.97)}
@media (prefers-reduced-motion:reduce){.kh-contactformulier .e-form__buttons .elementor-button,.kh-contactformulier .e-form__buttons .elementor-button::before,.kh-contactformulier .e-form__buttons .elementor-button::after{transition:none}}
/* ── sync_contact — end ── *//* End custom CSS */