/* v1.3.2: scoped Diensten images and grouped FAQ; no global layout changes. */
.xp-service-visual { position: relative; display: flex; align-items: flex-end; min-height: 420px; overflow: hidden; border: 2px solid rgba(41, 41, 41, .14); border-radius: 24px; background: #292929; box-shadow: 0 20px 52px rgba(41, 41, 41, .12); transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease; }
.xp-service-visual:hover { border-color: #ff5a00; box-shadow: 0 28px 64px rgba(41, 41, 41, .18); transform: translateY(-6px); }
.xp-service-visual img { width: 100%; height: 100%; min-height: inherit; object-fit: cover; transition: transform .65s cubic-bezier(.2,.8,.2,1); }
.xp-service-visual:hover img { transform: scale(1.035); }
.xp-service-visual__shade { position: absolute; right: 0; bottom: 0; left: 0; height: 46%; background: linear-gradient(transparent, rgba(41,41,41,.72)); pointer-events: none; }
.xp-service-visual__button { position: absolute; z-index: 1; bottom: 24px; left: 24px; }
.xp-faq-group { margin-bottom: 38px; }
.xp-faq-group h2 { margin: 0 0 12px; color: #292929; font-family: 'Manrope',sans-serif; font-size: clamp(30px,3vw,44px); font-weight: 800; letter-spacing: -.045em; }
.xp-faq-group__intro, .xp-faq-group__intro p { margin: 0 0 20px; color: rgba(41,41,41,.72); font-size: 17px; line-height: 1.7; }
.xp-faq-group__items { display: grid; gap: 10px; }
.xp-faq-group details { overflow: hidden; border: 1px solid rgba(41,41,41,.12); border-radius: 12px; background: #fff; transition: border-color .25s ease, box-shadow .25s ease; }
.xp-faq-group details:hover, .xp-faq-group details[open] { border-color: #ff5a00; box-shadow: 0 12px 28px rgba(41,41,41,.08); }
.xp-faq-group summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 24px; color: #292929; cursor: pointer; font-family: 'Manrope',sans-serif; font-size: 18px; font-weight: 800; list-style: none; }
.xp-faq-group summary::-webkit-details-marker { display: none; }
.xp-faq-group summary span { color: #ff5a00; font-size: 28px; font-weight: 400; transition: transform .25s ease; }
.xp-faq-group details[open] summary span { transform: rotate(45deg); }
.xp-faq-group__answer, .xp-faq-group__answer p { padding: 0 24px 24px; color: rgba(41,41,41,.72); font-size: 17px; line-height: 1.7; }
.xp-faq-group__answer p { margin: 0; }
@media (max-width: 620px) { .xp-service-visual { min-height: 320px; } .xp-service-visual__button { right: 18px; bottom: 18px; left: 18px; } .xp-faq-group summary { padding: 18px; font-size: 16px; } .xp-faq-group__answer, .xp-faq-group__answer p { padding: 0 18px 18px; font-size: 16px; } }

/* v1.3.4 replaces the old fake Diensten screens with core Elementor widgets. */
.xp-e-service-image-panel { position: relative; display: flex; min-height: 420px; overflow: hidden; border: 2px solid rgba(41,41,41,.14); border-radius: 24px; background: #292929; box-shadow: 0 20px 52px rgba(41,41,41,.12); transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease; }
.xp-e-service-image-panel:hover { border-color: #ff5a00; box-shadow: 0 28px 64px rgba(41,41,41,.18); transform: translateY(-6px); }
.xp-e-service-image-panel .xp-e-service-image, .xp-e-service-image-panel .elementor-widget-container, .xp-e-service-image-panel img { width: 100%; height: 100%; min-height: inherit; }
.xp-e-service-image-panel img { object-fit: cover; transition: transform .65s cubic-bezier(.2,.8,.2,1); }
.xp-e-service-image-panel:hover img { transform: scale(1.035); }
.xp-e-service-image-panel::after { position: absolute; right: 0; bottom: 0; left: 0; z-index: 1; height: 46%; background: linear-gradient(transparent,rgba(41,41,41,.72)); content: ''; pointer-events: none; }
.xp-e-service-image-button { position: absolute; bottom: 24px; left: 24px; z-index: 2; }
@media (max-width: 620px) { .xp-e-service-image-panel { min-height: 320px; } .xp-e-service-image-button { right: 18px; bottom: 18px; left: 18px; } }
