/* Start custom CSS *//* Hero font-stack: Neutiva zodra die (gelicentieerd) als Custom Font is toegevoegd; tot die tijd Archivo / Hanken Grotesk als fallback. */
.elementor .elementor-element-6ea800 h1 { font-family: "Neutiva", "Archivo", sans-serif; }
.elementor .elementor-element-6ea800 p { font-family: "Neutiva", "Hanken Grotesk", sans-serif; }

/* Stitch: de stippellijn groeit mee met de scrollpositie; de naald pulseert. JS-fallback staat in Custom Code 'Stitch scroll fallback'. */
@supports (animation-timeline: scroll()) {
  .elementor .elementor-element-38d9c0f9 { animation: ts-stitch-grow linear both; animation-timeline: scroll(root block); }
}
@keyframes ts-stitch-grow { from { height: 46px; } to { height: calc(100vh - 179px); } }
.elementor .elementor-element-7dbcf1ba::after { content: ""; position: absolute; inset: -3px; border-radius: 50%; border: 3px solid #D4CFC4; animation: ts-stitch-pulse 2s ease-out infinite; pointer-events: none; }
@keyframes ts-stitch-pulse { 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(1.75); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .elementor .elementor-element-7dbcf1ba::after { animation: none; opacity: 0; } }

/* Sectie 3: nieuwskaarten hover */
.elementor .ts-news-card:hover .ts-news-excerpt { border-bottom-color: #C4241A; }
.elementor .ts-news-card .ts-news-title { transition: color .2s ease; }
.elementor .ts-news-card:hover .ts-news-title { color: #C4241A; }

/* Sectie 3: logo-slider (track bevat de logo's 2x; -50% = naadloze loop) */
.elementor .elementor-element-206644d2 { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 64px, #000 calc(100% - 64px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 64px, #000 calc(100% - 64px), transparent 100%); }
.elementor .elementor-element-74c2d87e { width: max-content; animation: ts-logo-marquee 40s linear infinite; will-change: transform; }
.elementor .elementor-element-206644d2:hover .elementor-element-74c2d87e { animation-play-state: paused; }
@keyframes ts-logo-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .elementor .elementor-element-74c2d87e { animation: none; } }

/* Sectie 5: sectorkaarten hover (foto zoomt, onderkant donkerder, pijl wordt rood en schuift op) */
.elementor .ts-sector-card, .elementor .ts-pf-card { isolation: isolate; -webkit-mask-image: -webkit-radial-gradient(white, black); }
.elementor .ts-sector-card::after, .elementor .ts-pf-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,9,0) 30%, rgba(10,10,9,.35) 100%); opacity: 0; transition: opacity .4s ease; pointer-events: none; }
.elementor .ts-sector-card:hover .ts-sector-img, .elementor .ts-sector-card:focus-visible .ts-sector-img,
.elementor .ts-pf-card:hover .ts-sector-img, .elementor .ts-pf-card:focus-visible .ts-sector-img { transform: scale(1.07); }
.elementor .ts-sector-card:hover::after, .elementor .ts-sector-card:focus-visible::after,
.elementor .ts-pf-card:hover::after, .elementor .ts-pf-card:focus-visible::after { opacity: 1; }
.elementor .ts-sector-card:hover .ts-sector-arrow, .elementor .ts-sector-card:focus-visible .ts-sector-arrow { background-color: #C4241A; transform: translateX(4px); }
.elementor .ts-sector-card:focus-visible, .elementor .ts-pf-card:focus-visible { outline: 2px solid #C4241A; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .elementor .ts-sector-img, .elementor .ts-sector-arrow, .elementor .ts-pf-arrow { transition: none; } .elementor .ts-sector-card:hover .ts-sector-img, .elementor .ts-pf-card:hover .ts-sector-img { transform: none; } }

/* Sectie 7: portfolio-carrousel (horizontaal scrollen, snap per kaart, rechts tot de schermrand; pijlen + slepen via Custom Code 5339) */
.elementor .ts-pf-scroller { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain; scroll-padding-inline: max(24px, calc((100% - 1184px) / 2)); scrollbar-width: none; cursor: grab; }
.elementor .ts-pf-scroller::-webkit-scrollbar { display: none; }
.elementor .ts-pf-scroller.is-dragging { scroll-snap-type: none; scroll-behavior: auto; cursor: grabbing; user-select: none; }
.elementor .ts-pf-scroller img { -webkit-user-drag: none; user-select: none; }
.elementor .ts-pf-card { scroll-snap-align: start; }
.elementor .ts-pf-card:hover .ts-pf-arrow, .elementor .ts-pf-card:focus-visible .ts-pf-arrow { background-color: #C4241A; color: #ffffff; transform: translateX(4px); }
.elementor .ts-pf-nav.is-disabled { opacity: .35; cursor: default; }
.elementor .ts-pf-nav:focus-visible { outline: 2px solid #C4241A; outline-offset: 3px; }
@media (max-width: 767px) { .elementor .ts-pf-scroller { scroll-padding-inline: 20px; } }
@media (prefers-reduced-motion: reduce) { .elementor .ts-pf-scroller { scroll-behavior: auto; } }

/* Sectie 8: MVO-jaarverslag als zwevend 3D-boek (vlakken in preserve-3d; diepte 26px) */
.elementor .ts-mvo-art { perspective: 1800px; perspective-origin: 62% 38%; cursor: pointer; }
.elementor .ts-mvo-art:focus-visible { outline: 2px solid #C4241A; outline-offset: 6px; border-radius: 34px; }
.elementor .ts-mvo-book { transform-style: preserve-3d; transform-origin: 50% 55% 13px; transform: rotateX(3deg) rotateY(-12deg); animation: ts-book-float 9s ease-in-out infinite; will-change: transform; }
.elementor .ts-mvo-book .ts-mvo-face, .elementor .ts-mvo-book .ts-mvo-front { backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.elementor .ts-mvo-book .ts-mvo-front { transform: translateZ(26px); box-shadow: 0 1px 1px rgba(16, 26, 18, .10), 0 10px 22px -8px rgba(16, 26, 18, .30), 0 34px 60px -24px rgba(16, 26, 18, .45); background-image: linear-gradient(90deg, rgba(8, 20, 11, .42) 0, rgba(8, 20, 11, .16) 9px, rgba(255, 255, 255, .06) 19px, rgba(8, 20, 11, .14) 23px, rgba(8, 20, 11, 0) 27px), linear-gradient(155deg, rgba(255, 255, 255, .07) 0%, rgba(255, 255, 255, 0) 38%, rgba(0, 0, 0, .10) 100%); }
.elementor .ts-mvo-book .ts-mvo-back { transform: rotateY(180deg); }
.elementor .ts-mvo-book .ts-mvo-spine { transform-origin: 0 50%; transform: rotateY(-90deg); background-image: linear-gradient(90deg, rgba(0, 0, 0, .25), rgba(255, 255, 255, .06) 45%, rgba(0, 0, 0, .2)); }
.elementor .ts-mvo-book .ts-mvo-pages { left: 385px; transform-origin: 100% 50%; transform: rotateY(90deg); background-image: repeating-linear-gradient(90deg, #F4F1EA 0, #F4F1EA 1px, #DCD7CB 1px, #DCD7CB 2px), linear-gradient(90deg, rgba(0, 0, 0, .12), rgba(0, 0, 0, 0) 40%); background-blend-mode: multiply; }
.elementor .ts-mvo-book .ts-mvo-top { transform-origin: 50% 0; transform: rotateX(90deg); background-image: repeating-linear-gradient(0deg, #F4F1EA 0, #F4F1EA 1px, #E2DDD2 1px, #E2DDD2 2px); }
.elementor .ts-mvo-book .ts-mvo-bottom { top: 559px; transform-origin: 50% 100%; transform: rotateX(-90deg); }
.elementor .ts-mvo-ground { filter: blur(7px); transform-origin: 50% 50%; animation: ts-book-ground 9s ease-in-out infinite; }
@keyframes ts-book-float {
  0%, 100% { transform: translate3d(0, 0, 0) rotateX(4deg) rotateY(-17deg) rotateZ(-.7deg); }
  50% { transform: translate3d(0, -16px, 0) rotateX(1.5deg) rotateY(-6deg) rotateZ(.5deg); }
}
@keyframes ts-book-ground {
  0%, 100% { transform: scale(1); opacity: .95; }
  50% { transform: scale(.84, .8); opacity: .58; }
}
@media (prefers-reduced-motion: reduce) { .elementor .ts-mvo-book, .elementor .ts-mvo-ground { animation: none; } }
@media (max-width: 1024px) { .elementor .ts-mvo-art { zoom: .86; } }
@media (max-width: 767px) { .elementor .ts-mvo-art { zoom: .6; } }

/* Sectie 8: 'Bekijk de hoofdpunten' klapt het paneel open (JS in Custom Code 5339 zet .is-open op de sectie) */
.elementor .ts-mvo [data-id="f04dedd"] { display: none; }
.elementor .ts-mvo.is-open [data-id="682598cb"] { display: none; }
.elementor .ts-mvo.is-open [data-id="f04dedd"] { display: block; }
.elementor .ts-mvo [data-id="1d7f2284"] { transition: transform .35s ease; }
.elementor .ts-mvo.is-open [data-id="1d7f2284"] { transform: rotate(-90deg); }
.elementor .ts-mvo.is-open .elementor-element-245e0126 { border-color: #141211; }
.elementor .ts-mvo .elementor-element-5f3e193f { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .6s cubic-bezier(.2, .7, .2, 1); }
.elementor .ts-mvo.is-open .elementor-element-5f3e193f { grid-template-rows: 1fr; }
.elementor .ts-mvo .elementor-element-69228e66 { opacity: 0; transform: translateY(-8px); transition: opacity .35s ease, transform .5s cubic-bezier(.2, .7, .2, 1); }
.elementor .ts-mvo.is-open .elementor-element-69228e66 { opacity: 1; transform: none; transition-delay: .12s; }
.elementor .ts-mvo .elementor-element-5dfcb62f:focus-visible, .elementor .ts-mvo .elementor-element-389e5fa5:focus-visible { outline: 2px solid #C4241A; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .elementor .ts-mvo .elementor-element-5f3e193f, .elementor .ts-mvo .elementor-element-69228e66 { transition: none; } }

/* Sectie 9: contactformulier (select-pijl, focusring, pijl-rondje in verzendknop) */
.elementor .ts-form-field::placeholder { color: #767676; opacity: 1; }
.elementor .ts-form-field:focus { box-shadow: 0 0 0 3px rgba(196, 36, 26, .12); }
.elementor select.ts-form-field { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23141211' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 20px center; background-size: 11px 7px; }
.elementor [data-id="2fb898bf"]::after { content: "→"; width: 25px; height: 25px; border-radius: 50%; background-color: rgba(255, 255, 255, .22); display: flex; align-items: center; justify-content: center; font-size: 13px; line-height: 1; transition: transform .25s ease; }
.elementor [data-id="2fb898bf"]:hover::after { transform: translateX(3px); }
.elementor [data-id="2fb898bf"]:focus-visible { outline: 2px solid #C4241A; outline-offset: 3px; }/* End custom CSS */