/* ==========================================================================
   VA techniek v2 — Elementor-blokken in de VA-stijl
   Klassen staan in Elementor bij Geavanceerd → CSS-klassen. Wat u in Elementor zelf
   instelt (kleur, marge, lettergrootte) gaat altijd voor op deze standaardstijl.
   ========================================================================== */

/* ---------- Basis: secties, rijen en kolommen ---------- */
.e-con.va-sectie {
  --padding-top: var(--section);
  --padding-bottom: var(--section);
  --padding-left: var(--gutter);
  --padding-right: var(--gutter);
  --content-width: min(100%, calc(var(--container) - 2 * var(--gutter)));
}
.e-con.va-zonder-boven { --padding-top: 0px; }
.e-con.va-rij, .e-con.va-kolom, .e-con.va-vol {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
}
.va-elementor { display: block; }
.elementor .va-donker { color: var(--text-on-dark); }

/* Afstanden */
.elementor .elementor-widget.va-mt { margin-top: 32px; }
.elementor .elementor-widget.va-mt-s { margin-top: 18px; }
.elementor .e-con.va-mt { --margin-top: 32px; }
.elementor .e-con.va-mt-20 { --margin-top: 20px; }

/* ---------- Typografie ---------- */
.elementor .elementor-heading-title { font-family: var(--font); }
.elementor .va-eyebrow .elementor-heading-title {
  display: inline-flex; align-items: center; gap: 10px; margin-bottom: 18px;
  font-size: .8125rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; line-height: 1.4;
  color: var(--orange-text);
}
.elementor .va-eyebrow .elementor-heading-title::before { content: ""; width: 28px; height: 2px; background: currentColor; flex: none; }
.elementor .va-h2 .elementor-heading-title {
  font-size: clamp(2rem, 4.4vw, 3.5rem); font-stretch: 88%; font-weight: 850; line-height: 1.05; letter-spacing: -.02em; color: var(--text);
}
.elementor .va-display .elementor-heading-title {
  font-size: clamp(2.6rem, 7.2vw, 6rem); font-stretch: 85%; font-weight: 900; letter-spacing: -.035em; line-height: .95; color: #fff;
  margin-bottom: 24px;
}
.elementor .va-hero--pagina .va-display .elementor-heading-title { font-size: clamp(2.4rem, 6vw, 4.75rem); }
.elementor .va-display--klein .elementor-heading-title { font-size: clamp(2.6rem, 6vw, 4.5rem); color: var(--text); margin-bottom: 0; }
.elementor .elementor-heading-title .accent { color: var(--orange-text); }
.elementor .va-hero .elementor-heading-title .accent, .elementor .va-donker .elementor-heading-title .accent { color: var(--orange); }
.elementor .elementor-heading-title small { font-size: .45em; font-weight: 700; letter-spacing: 0; }

.elementor .va-lead, .elementor .va-lead p { font-size: clamp(1.125rem, 1.6vw, 1.3rem); color: var(--text-muted); line-height: 1.6; }
.elementor .va-lead--hero, .elementor .va-lead--hero p { color: #d8d4cf; max-width: 600px; }
.elementor .va-prose, .elementor .va-prose p { color: var(--text-muted); }
.elementor .va-prose p + p, .elementor .va-lead p + p { margin-top: 1em; }
.elementor .va-prose a { color: var(--orange-text); font-weight: 700; }
.elementor .va-klein, .elementor .va-klein p { color: var(--text-muted); font-size: .9375rem; }
.elementor .va-sectiekop__tekst { max-width: 720px; }

/* Donkere secties */
.elementor .va-donker .elementor-heading-title { color: #fff; }
.elementor .va-donker .va-lead, .elementor .va-donker .va-lead p, .elementor .va-donker .va-prose p { color: var(--text-on-dark-muted); }
.elementor .va-donker .va-eyebrow .elementor-heading-title, .elementor .va-hero .va-eyebrow .elementor-heading-title { color: var(--orange); }

/* ---------- Knoppen ---------- */
.elementor .va-btn .elementor-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 24px; font-family: var(--font); font-weight: 700; font-size: 1rem; line-height: 1.2;
  border-radius: 999px; border: 1.5px solid transparent; white-space: nowrap;
  background-color: var(--ink); color: #fff;
  transition: background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);
}
.elementor .va-btn .elementor-button:hover { transform: translateY(-2px); }
.elementor .va-btn--primary .elementor-button { background-color: var(--orange); color: #111; }
.elementor .va-btn--primary .elementor-button:hover { background-color: var(--orange-600); color: #111; }
.elementor .va-btn--dark .elementor-button { background-color: var(--ink); color: #fff; }
.elementor .va-btn--dark .elementor-button:hover { background-color: #000; color: #fff; }
.elementor .elementor-widget.va-btn--ghost .elementor-button { background-color: transparent; color: var(--text); border-color: currentColor; }
.elementor .va-btn--ghost .elementor-button:hover { background-color: rgba(127,127,127,.12); color: var(--text); }
.elementor .va-hero .va-btn--ghost .elementor-button, .elementor .va-donker .va-btn--ghost .elementor-button,
.va-blok--footer-balk .va-btn--ghost .elementor-button { color: #fff; }
.elementor .va-cta-band .va-btn--ghost .elementor-button { color: #111; }
.elementor .va-cta-band .va-btn--ghost .elementor-button:hover { background-color: rgba(0,0,0,.08); }
.elementor .va-btn--lg .elementor-button { padding: 18px 30px; font-size: 1.0625rem; }
.elementor .va-btn--blok, .elementor .va-btn--blok .elementor-button-wrapper, .elementor .va-btn--blok .elementor-button { width: 100%; }

/* ---------- Lijsten met vinkjes, badges ---------- */
.elementor .va-checks { margin-top: 28px; }
.elementor .va-checks .elementor-icon-list-items { display: grid; gap: 14px; }
.elementor .va-checks .elementor-icon-list-item { align-items: flex-start; margin: 0 !important; padding: 0 !important; }
.elementor .va-checks .elementor-icon-list-icon {
  flex: none; display: grid; place-items: center; width: 24px; height: 24px; margin-top: 1px; padding: 0 !important; margin-right: 14px;
  border-radius: 50%; background: var(--orange-text); --e-icon-list-icon-size: 12px; --e-icon-list-icon-align: center;
}
.elementor .va-checks .elementor-icon-list-icon svg { fill: #fff; width: 12px; height: 12px; }
.elementor .va-checks .elementor-icon-list-icon i { color: #fff; font-size: 12px; }
.elementor .va-checks .elementor-icon-list-text { font-weight: 600; color: var(--text); padding-left: 0 !important; }
.elementor .va-donker .va-checks .elementor-icon-list-text, .elementor .va-hero .va-checks .elementor-icon-list-text { color: #fff; }
.elementor .va-cta-band .va-checks .elementor-icon-list-icon { background: #111; }
.elementor .va-cta-band .va-checks .elementor-icon-list-icon svg { fill: var(--orange); }
.elementor .va-cta-band .va-checks .elementor-icon-list-icon i { color: var(--orange); }
.elementor .va-cta-band .va-checks .elementor-icon-list-text { color: #111; }

.elementor .va-badges { margin-top: 48px; }
.elementor .va-badges .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px; }
.elementor .va-badges .elementor-icon-list-item {
  margin: 0 !important; padding: 8px 14px !important; border-radius: 999px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); backdrop-filter: blur(8px);
}
.elementor .va-badges .elementor-icon-list-icon { padding: 0 !important; margin-right: 8px; --e-icon-list-icon-size: 7px; }
.elementor .va-badges .elementor-icon-list-icon svg { fill: var(--orange); width: 7px; height: 7px; filter: drop-shadow(0 0 3px rgba(255,97,1,.6)); }
.elementor .va-badges .elementor-icon-list-icon i { color: var(--orange); font-size: 7px; }
.elementor .va-badges .elementor-icon-list-text { color: #fff; font-size: .875rem; font-weight: 600; padding-left: 0 !important; }

.elementor .va-dealer { margin-bottom: 24px; }
.elementor .va-dealer .elementor-icon-list-item {
  display: inline-flex; padding: 10px 18px 10px 10px !important; border-radius: 999px;
  background: var(--white); border: 1px solid var(--line);
}
.elementor .va-wit .va-dealer .elementor-icon-list-item { background: var(--paper); }
.elementor .va-dealer .elementor-icon-list-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--orange); margin-right: 12px; padding: 0 !important; }
.elementor .va-dealer .elementor-icon-list-icon svg { fill: #111; width: 14px; height: 14px; }
.elementor .va-dealer .elementor-icon-list-icon i { color: #111; font-size: 14px; }
.elementor .va-dealer .elementor-icon-list-text { font-weight: 700; font-size: .9375rem; color: var(--text); padding-left: 0 !important; }

/* ---------- Hero ---------- */
.e-con.va-hero {
  --padding-top: clamp(120px, 16vw, 200px);
  --padding-bottom: clamp(56px, 7vw, 96px);
  --min-height: min(88vh, 860px);
  isolation: isolate; overflow: hidden; color: #fff;
}
.e-con.va-hero--pagina { --padding-top: clamp(110px, 14vw, 180px); --padding-bottom: clamp(56px, 7vw, 88px); --min-height: 0px; }
.e-con.va-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1; display: block; opacity: 1;
  background:
    linear-gradient(90deg, rgba(10,10,10,.92) 0%, rgba(10,10,10,.72) 45%, rgba(10,10,10,.25) 100%),
    linear-gradient(0deg, rgba(10,10,10,.85) 0%, transparent 45%);
}
.e-con.va-hero__inhoud { --width: min(100%, 820px); }
.elementor .va-hero .breadcrumbs { color: #bdb8b2; }
.elementor .va-kruimel--licht .breadcrumbs { color: var(--text-muted); }
.elementor .va-kruimel--licht .breadcrumbs a:hover { color: var(--orange-text); }

.e-con.va-hero .e-con.va-knoppen { --margin-top: 36px; }

/* Lopende band */
.e-con.va-vol { --gap: 0px; }

/* ---------- Tekst + beeld ---------- */
.elementor .va-foto img { width: 100%; border-radius: var(--radius); object-fit: cover; }
.elementor .va-ratio-4-3 img { aspect-ratio: 4/3; }
.elementor .va-ratio-4-5 img { aspect-ratio: 4/5; }
.e-con.va-stapel { --padding-right: 12%; --padding-bottom: 18%; position: relative; }
.elementor .va-stapel__groot img { aspect-ratio: 4/3; }
.elementor .e-con .va-stapel__klein { position: absolute; right: 0; bottom: 0; width: 52%; max-width: 52%; }
.elementor .va-stapel__klein img { aspect-ratio: 1; border: 8px solid var(--paper); box-shadow: var(--shadow); }
.elementor .va-wit .va-stapel__klein img { border-color: var(--white); }
.e-con.va-media { position: relative; }
.elementor .e-con .va-media-tag { position: absolute; left: 20px; top: 20px; z-index: 2; width: auto; }
.elementor .va-media-tag .elementor-heading-title {
  display: inline-block; background: var(--orange); color: #111; font-weight: 800; font-size: .875rem; line-height: 1.2;
  padding: 10px 16px; border-radius: 999px; box-shadow: var(--shadow);
}

/* ---------- Sectiekop ---------- */
.e-con.va-sectiekop { --margin-bottom: clamp(40px, 5vw, 64px); }

/* ---------- Dienstkaarten ---------- */
.e-con.va-card {
  --padding-top: clamp(28px, 3vw, 40px); --padding-bottom: clamp(28px, 3vw, 40px);
  --padding-left: clamp(28px, 3vw, 40px); --padding-right: clamp(28px, 3vw, 40px);
  --border-radius: var(--radius);
  background-color: var(--white); box-shadow: 0 0 0 1px var(--line); text-decoration: none; color: inherit; overflow: hidden;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.elementor .va-wit .e-con.va-card { background-color: var(--paper); }
.e-con.va-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.elementor .va-card__num .elementor-heading-title { font-size: .875rem; font-weight: 800; letter-spacing: .1em; color: var(--orange-text); }
.elementor .va-card__icon { margin: 28px 0 24px; }
.elementor .va-card__icon .elementor-icon-wrapper { text-align: left; }
.elementor .elementor-widget.va-card__icon .elementor-icon {
  display: grid; place-items: center; width: 56px; height: 56px; border-radius: 14px; font-size: 26px;
  background: var(--orange-050); color: var(--orange-text); fill: var(--orange-text); transition: background .35s, color .35s;
}
.elementor .elementor-widget.va-card__icon .elementor-icon svg, .elementor .elementor-widget.va-contact__icoon .elementor-icon svg { width: 1em; height: 1em; fill: currentColor; }
.elementor .elementor-widget.va-card__icon .elementor-icon i, .elementor .elementor-widget.va-contact__icoon .elementor-icon i { color: currentColor; }
.elementor .e-con.va-card:hover .va-card__icon .elementor-icon { background: var(--orange); color: #111; fill: #111; }
.elementor .va-card__titel .elementor-heading-title { font-size: 1.5rem; font-weight: 800; line-height: 1.15; color: var(--text); margin-bottom: 12px; }
.elementor .va-card__tekst, .elementor .va-card__tekst p { color: var(--text-muted); }
.elementor .e-con .va-link-arrow { margin-top: auto; padding-top: 28px; }
.elementor .va-link-arrow .elementor-heading-title { display: inline-flex; align-items: center; gap: 8px; font-size: 1rem; font-weight: 700; color: var(--orange-text); }
.elementor .va-link-arrow .elementor-heading-title::after { content: "→"; transition: transform .25s var(--ease); }
.e-con:hover > .va-link-arrow .elementor-heading-title::after { transform: translateX(4px); }

/* ---------- Kerncijfers (bento) ---------- */
.e-con.va-bento {
  --padding-top: clamp(28px, 3vw, 44px); --padding-bottom: clamp(28px, 3vw, 44px);
  --padding-left: clamp(28px, 3vw, 44px); --padding-right: clamp(28px, 3vw, 44px);
  --border-radius: var(--radius); --min-height: 260px;
  background-color: var(--ink-2); color: var(--text-on-dark); overflow: hidden; isolation: isolate; text-decoration: none;
}
.e-con.va-bento--oranje { background-color: var(--orange); color: #111; }
.e-con.va-bento--foto { --min-height: 420px; transition: transform .5s var(--ease); }
.e-con.va-bento--foto::before {
  content: ""; position: absolute; inset: 0; z-index: -1; display: block; opacity: 1;
  background: linear-gradient(0deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.6) 40%, transparent 75%);
}
.e-con.va-bento--foto:hover { transform: translateY(-4px); }
.elementor .va-bento .elementor-heading-title { color: #fff; }
.elementor .va-bento .va-eyebrow .elementor-heading-title { color: var(--orange); }
.elementor .va-bento__titel .elementor-heading-title { font-size: clamp(1.5rem, 2.4vw, 2rem); font-weight: 800; line-height: 1.1; margin-bottom: 10px; }
.elementor .va-bento__groot .elementor-heading-title { font-size: clamp(2.6rem, 5vw, 4.25rem); font-weight: 900; font-stretch: 80%; line-height: 1; letter-spacing: -.03em; }
.elementor .va-bento__label, .elementor .va-bento__label p { margin-top: 10px; color: var(--text-on-dark-muted); font-weight: 600; }
.elementor .va-bento--oranje .elementor-heading-title, .elementor .va-bento--oranje .va-bento__label p { color: #111; }

/* ---------- Diensten: panelen die zijwaarts schuiven ---------- */
.e-con.va-hscroll { --padding-top: var(--section); --padding-bottom: var(--section); --padding-left: 0px; --padding-right: 0px; overflow: hidden; color: var(--text-on-dark); }
.e-con.va-hscroll__kop, .e-con.va-hscroll__track {
  --padding-left: max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter)));
  --padding-right: max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter)));
}
.e-con.va-hscroll__kop { --margin-bottom: clamp(36px, 5vw, 60px); }
.elementor .va-hscroll .elementor-heading-title { color: #fff; }
.elementor .va-hscroll .va-eyebrow .elementor-heading-title { color: var(--orange); }
.e-con.va-hscroll__track { --flex-wrap: nowrap; --flex-direction: row; }
.e-con.va-paneel {
  --width: min(78vw, 520px); --min-height: clamp(440px, 62vh, 600px); --flex-shrink: 0;
  --padding-top: clamp(26px, 3vw, 40px); --padding-bottom: clamp(26px, 3vw, 40px);
  --padding-left: clamp(26px, 3vw, 40px); --padding-right: clamp(26px, 3vw, 40px);
  --border-radius: var(--radius); --gap: 14px; --row-gap: 14px;
  overflow: hidden; isolation: isolate; text-decoration: none; color: #fff;
  background-size: cover; transition: background-size .9s var(--ease);
}
.e-con.va-paneel::before {
  content: ""; position: absolute; inset: 0; z-index: -1; display: block; opacity: 1;
  background: linear-gradient(0deg, rgba(8,8,9,.95) 10%, rgba(8,8,9,.25) 65%); transition: opacity .5s;
}
.e-con.va-paneel:hover::before { opacity: .85; }
.elementor .e-con .va-paneel__num { position: absolute; top: clamp(22px, 3vw, 36px); left: clamp(26px, 3vw, 40px); width: auto; }
.elementor .va-paneel__num .elementor-heading-title { font-size: 4rem; font-weight: 900; line-height: 1; color: transparent; -webkit-text-stroke: 1.5px var(--orange); }
.elementor .va-paneel__titel .elementor-heading-title {
  font-size: clamp(2.2rem, 3.6vw, 3.2rem); font-weight: 900; font-stretch: 75%; text-transform: uppercase; line-height: .92; letter-spacing: -.01em; color: #fff;
}
.elementor .va-paneel__tekst, .elementor .va-paneel__tekst p { color: #cfcbc5; max-width: 40ch; }
.elementor .va-paneel .va-link-arrow { padding-top: 6px; margin-top: 0; }
.elementor .va-paneel .va-link-arrow .elementor-heading-title { color: var(--orange); }
.e-con.va-paneel--eind { color: #111; }
.e-con.va-paneel--eind::before { display: none; }
.elementor .va-paneel--eind .elementor-heading-title, .elementor .va-paneel--eind .va-paneel__tekst p { color: #111; }
.elementor .va-paneel--eind .va-paneel__titel .elementor-heading-title { font-size: clamp(2.6rem, 4.6vw, 4.2rem); }
@media (max-width: 1023px) {
  .e-con.va-hscroll__track { --flex-direction: column; }
  .e-con.va-paneel { --width: 100%; --min-height: 420px; }
}
@media (min-width: 1024px) {
  .va-hscroll.is-pinned .va-hscroll__track { width: max-content; }
  /* Zonder animatie (minder beweging): zijwaarts scrollen met de hand */
  .va-hscroll:not(.is-pinned) .va-hscroll__track { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--orange) transparent; --padding-bottom: 16px; }
  .va-hscroll:not(.is-pinned) .va-paneel { scroll-snap-align: start; }
}

/* ---------- Catalogus-tegels (met foto) ---------- */
/* Flex met gecentreerde laatste rij: werkt met elk aantal categorieën. */
.cats { --cols: 5; --gap: 14px; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--gap); perspective: 1200px; }
.cats > .cat-tile { flex: 0 0 calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols)); }
.cat-tile {
  --va-rx: 0deg; --va-ry: 0deg;
  position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 12px;
  aspect-ratio: 3/4; padding: 18px; border-radius: var(--radius); overflow: hidden; isolation: isolate;
  background: #fff; color: var(--ink); text-decoration: none; box-shadow: 0 0 0 1px var(--line);
  transform: rotateX(var(--va-rx)) rotateY(var(--va-ry)); transform-style: preserve-3d;
  transition: transform .5s var(--ease), box-shadow .5s var(--ease);
}
.cat-tile:hover { box-shadow: 0 30px 60px -20px rgba(255,97,1,.45); }
.cat-tile img { position: absolute; inset: 14% 8% 26%; z-index: -1; width: 84%; height: 60%; object-fit: contain; transition: transform .8s var(--ease); }
.cat-tile:hover img { transform: translateZ(40px) scale(1.08) rotate(-3deg); }
.cat-tile__count { align-self: flex-start; font-size: .75rem; font-weight: 800; padding: 5px 10px; border-radius: 999px; background: var(--paper); }
.cat-tile__name {
  padding-right: 0; font-weight: 900; font-stretch: 75%; text-transform: uppercase; line-height: 1;
  font-size: clamp(1.05rem, 1.35vw, 1.35rem); transform: translateZ(30px); hyphens: auto; -webkit-hyphens: auto;
}
.cat-tile::after {
  content: "→"; position: absolute; right: 14px; top: 14px; width: 34px; height: 34px; border-radius: 50%;
  display: grid; place-items: center; background: var(--ink); color: #fff; transition: background .3s, color .3s, transform .4s var(--ease);
}
.cat-tile:hover::after { background: var(--orange); color: #111; transform: rotate(-45deg); }
.va-donker .cat-tile { box-shadow: none; }
@media (max-width: 1100px) { .cats { --cols: 3; } }
@media (max-width: 640px) {
  .cats { --cols: 2; --gap: 10px; }
  .cat-tile { padding: 14px; }
  .cat-tile__name { font-size: 1.15rem; }
  .cat-tile::after { width: 30px; height: 30px; right: 10px; top: 10px; }
}

/* ---------- Galerij en carrousel ---------- */
.elementor .va-carrousel img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: var(--radius-sm); }
.elementor .va-carrousel .elementor-swiper-button { width: 52px; height: 52px; border-radius: 50%; background: rgba(17,17,17,.8); color: #fff; display: grid; place-items: center; font-size: 18px; }
.elementor .va-carrousel .elementor-swiper-button:hover { background: var(--orange); color: #111; }
.elementor .va-carrousel .elementor-swiper-button svg { fill: currentColor; width: 18px; height: 18px; }
.elementor .va-galerij .gallery-item { margin: 0; }
.elementor .va-galerij .gallery-item img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius-sm); border: 0 !important; transition: transform .7s var(--ease); }
.elementor .va-galerij .gallery-icon { overflow: hidden; border-radius: var(--radius-sm); }
.elementor .va-galerij .gallery-item:hover img { transform: scale(1.06); }

/* ---------- Oranje actieblok ---------- */
.e-con.va-cta-band {
  --padding-top: clamp(40px, 6vw, 80px); --padding-bottom: clamp(40px, 6vw, 80px);
  --padding-left: clamp(28px, 6vw, 80px); --padding-right: clamp(28px, 6vw, 80px);
  --border-radius: calc(var(--radius) + 6px);
  overflow: hidden; isolation: isolate; color: #111;
}
.e-con.va-cta-band::before {
  content: "VA"; position: absolute; right: -2%; bottom: -28%; z-index: -1; display: block; opacity: 1;
  font-size: clamp(12rem, 26vw, 22rem); font-weight: 900; font-stretch: 75%; line-height: 1; letter-spacing: -.06em;
  color: rgba(0,0,0,.07); width: auto; height: auto; top: auto; left: auto;
}
.elementor .va-cta-band .elementor-heading-title { color: #111; }
.elementor .va-cta-band .va-eyebrow .elementor-heading-title { color: #111; }
.elementor .va-cta-band .va-h2 .elementor-heading-title { margin-bottom: 16px; }
.elementor .va-cta-band__tekst, .elementor .va-cta-band__tekst p { color: rgba(17,17,17,.86); font-size: 1.125rem; }

/* ---------- Specificaties ---------- */
.e-con.va-specs { --border-radius: var(--radius); background-color: var(--line-dark); overflow: hidden; box-shadow: 0 0 0 1px var(--line-dark); }
.e-con.va-spec {
  --padding-top: clamp(24px, 3vw, 36px); --padding-bottom: clamp(24px, 3vw, 36px);
  --padding-left: clamp(24px, 3vw, 36px); --padding-right: clamp(24px, 3vw, 36px);
  --flex-grow: 1; background-color: var(--ink-2);
}
.elementor .va-spec__waarde .elementor-heading-title { font-size: clamp(1.9rem, 3.4vw, 2.75rem); font-weight: 900; font-stretch: 80%; line-height: 1; letter-spacing: -.02em; color: #fff; }
.elementor .va-spec__waarde .elementor-heading-title small { font-size: .5em; color: var(--orange); }
.elementor .va-spec__label, .elementor .va-spec__label p { margin-top: 12px; color: var(--text-on-dark-muted); font-weight: 600; }
@media (max-width: 1024px) { .e-con.va-spec { --width: calc(50% - 1px); } }
@media (max-width: 420px) { .e-con.va-spec { --width: 100%; } }

/* ---------- Contact ---------- */
.e-con.va-contact {
  --padding-top: 18px; --padding-bottom: 18px; --padding-left: 20px; --padding-right: 20px; --border-radius: 14px;
  background-color: var(--white); box-shadow: 0 0 0 1px var(--line); text-decoration: none; color: var(--text);
  transition: box-shadow .2s, transform .25s var(--ease);
}
.e-con.va-contact:hover { box-shadow: 0 0 0 1.5px var(--orange); transform: translateX(4px); }
.elementor .va-contact__icoon { flex: none; width: auto; }
.elementor .elementor-widget.va-contact__icoon .elementor-icon {
  display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; font-size: 18px;
  background: var(--orange-050); color: var(--orange-text); fill: var(--orange-text);
}
.elementor .va-contact__label .elementor-heading-title { display: block; color: var(--text-muted); font-size: .8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; line-height: 1.4; }
.elementor .va-contact__waarde .elementor-heading-title { font-size: 1.0625rem; font-weight: 700; color: var(--text); line-height: 1.35; }
.e-con.va-contactlijst { --margin-top: 32px; }

/* Formulierkaart */
.e-con.va-formkaart {
  --padding-top: clamp(24px, 4vw, 48px); --padding-bottom: clamp(24px, 4vw, 48px);
  --padding-left: clamp(24px, 4vw, 48px); --padding-right: clamp(24px, 4vw, 48px);
  --border-radius: var(--radius);
  background-color: var(--white); box-shadow: 0 0 0 1px var(--line), var(--shadow);
}
.elementor .va-formkaart__titel .elementor-heading-title { font-size: clamp(1.6rem, 2.6vw, 2.1rem); font-weight: 800; color: var(--text); margin-bottom: 8px; }
.elementor .va-formkaart__tekst, .elementor .va-formkaart__tekst p { color: var(--text-muted); margin-bottom: 28px; }
.form-card.va-form-embed { background: none; border: 0; padding: 0; box-shadow: none; border-radius: 0; }

/* Kaart */
.elementor .va-kaartje iframe { display: block; border-radius: var(--radius); border: 1px solid var(--line); filter: grayscale(.35) contrast(1.05); }

/* ---------- Vaste blokken ---------- */
.va-blok .elementor { width: 100%; }
.pd-aside-wrap { position: sticky; top: 100px; }
@media (max-width: 880px) { .pd-aside-wrap { position: static; } }
.e-con.va-aside {
  --padding-top: 32px; --padding-bottom: 32px; --padding-left: 32px; --padding-right: 32px; --border-radius: var(--radius);
  color: var(--text-on-dark);
}
.elementor .va-aside__titel .elementor-heading-title { font-size: 1.5rem; font-weight: 800; color: #fff; line-height: 1.15; }
.elementor .va-aside__tekst, .elementor .va-aside__tekst p { color: var(--text-on-dark-muted); }
.elementor .va-aside__regels p { line-height: 2; }
.elementor .va-aside__regels a { color: #fff; text-decoration: none; font-weight: 700; }
.elementor .va-aside__regels a:hover { color: var(--orange); }

.e-con.va-footer-cta > .e-con.va-knoppen { --width: auto; --flex-shrink: 0; }
@media (max-width: 1024px) { .e-con.va-footer-cta > .e-con.va-knoppen { --width: 100%; } }
.e-con.va-footer-cta { --padding-bottom: clamp(48px, 6vw, 72px); border-bottom: 1px solid var(--line-dark); }
.elementor .va-footer-cta .va-eyebrow .elementor-heading-title { color: var(--orange); }
.elementor .va-footer-cta__titel .elementor-heading-title { color: #fff; font-size: clamp(2rem, 4.4vw, 3.5rem); font-stretch: 85%; font-weight: 900; line-height: 1.05; margin-bottom: 10px; }
.elementor .va-footer-cta__tekst, .elementor .va-footer-cta__tekst p { color: var(--text-on-dark-muted); }

/* ---------- Beweging ---------- */
@media (prefers-reduced-motion: reduce) {
  .elementor .elementor-invisible { visibility: visible !important; }
  .elementor .animated { animation: none !important; }
  .cat-tile, .cat-tile img, .e-con.va-card, .e-con.va-contact { transition: none; }
}

/* ---------- Lopende band: rustig (donker, zachte tekst, oranje alleen als accent) ---------- */
.marquee { background: #161616; color: rgba(255, 255, 255, .55); border-top: 1px solid var(--line-dark); padding-block: 16px; }
.marquee li { font-size: clamp(1rem, 1.6vw, 1.25rem); }
.marquee li::after { color: var(--orange); opacity: .9; }

/* ---------- WhatsApp-knoppen: altijd WhatsApp-groen (op link-adres, dus ook nieuwe knoppen) ---------- */
.elementor .elementor-widget.va-btn .elementor-button[href*="wa.me"],
.elementor .elementor-widget.va-btn .elementor-button[href*="whatsapp"] {
  background-color: #25d366; border-color: #25d366; color: #0b2e17;
}
.elementor .elementor-widget.va-btn .elementor-button[href*="wa.me"]:hover,
.elementor .elementor-widget.va-btn .elementor-button[href*="whatsapp"]:hover {
  background-color: #1ebe5b; border-color: #1ebe5b; color: #0b2e17;
}
/* In de kopfoto naast de oranje knop: wit (rustiger naast oranje). */
.elementor .va-hero .elementor-widget.va-btn .elementor-button[href*="wa.me"],
.elementor .va-hero .elementor-widget.va-btn .elementor-button[href*="whatsapp"] {
  background-color: #fff; border-color: #fff; color: #111;
}
.elementor .va-hero .elementor-widget.va-btn .elementor-button[href*="wa.me"]:hover,
.elementor .va-hero .elementor-widget.va-btn .elementor-button[href*="whatsapp"]:hover {
  background-color: #ece9e4; border-color: #ece9e4; color: #111;
}

/* ---------- Routeknop onder de kaart (Contact) ---------- */
.e-con.va-route { --margin-top: 20px; padding: 18px 22px !important; border-radius: var(--radius); background: var(--white); box-shadow: 0 0 0 1px var(--line); }
.elementor .va-btn--route .elementor-button-content-wrapper { gap: 10px; align-items: center; }
.elementor .va-btn--route .elementor-button-icon svg { width: 1.1em; height: 1.1em; fill: currentColor; }
.elementor .va-route__adres, .elementor .va-route__adres p { color: var(--text-muted); line-height: 1.5; }
.elementor .va-route__adres strong { color: var(--text); }

/* ---------- Mobiel ---------- */
@media (max-width: 767px) {
  .e-con.va-bento { --min-height: 150px; }
  .e-con.va-bento--foto { --min-height: 340px; }
}
@media (max-width: 1024px) {
  .e-con.va-footer-cta > .e-con.va-knoppen { --justify-content: flex-start !important; }
}

/* Zijwaarts schuivende panelen: ruimte achter het vastgezette blok ook donker (geen witte flits). */
.pin-spacer:has(> .va-hscroll) { background-color: #111111; }
.va-hscroll.is-pinned { background-color: #111111; backface-visibility: hidden; }
.va-hscroll.is-pinned .va-hscroll__track { will-change: transform; }
/* Tegels direct onder de panelen meteen tonen (geen leeg wit vlak bij snel scrollen). */
.elementor .e-con.va-bento.elementor-invisible { visibility: visible !important; }
.elementor .e-con.va-bento.animated { animation: none !important; }
