/**
 * Ezzat Services Pro — clean homepage background runtime.
 * This file is loaded after the legacy stylesheet and is the only authority
 * for builder backgrounds and overlays.
 */
.ezsp-background-system {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background-color: var(--dhb-block-bg, transparent) !important;
    background-image: none !important;
}

/* Remove every historical pseudo veil from the builder wrapper. */
.ezsp-background-system::before,
.ezsp-background-system::after {
    content: none !important;
    display: none !important;
    opacity: 0 !important;
    background: none !important;
}

.ezsp-background-system > .ezsp-background-layers {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
    border-radius: inherit;
}

.ezsp-background-system > :not(.ezsp-background-layers) {
    position: relative;
    z-index: 2;
}

.ezsp-static-background,
.ezsp-slider-background,
.ezsp-background-overlay {
    position: absolute;
    inset: 0;
    display: block;
    pointer-events: none;
}

.ezsp-static-background {
    z-index: 0;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.ezsp-slider-background {
    z-index: 2;
    overflow: hidden;
}

.ezsp-background-overlay {
    z-index: 5;
    background: var(--ezsp-overlay-color, #000000);
    opacity: var(--ezsp-overlay-opacity, 0);
}

/* The visible sections must never paint their own old backgrounds or gradients. */
.ezsp-background-system > .dhb-home-hero,
.ezsp-background-system > .dhb-home-cta,
.ezsp-background-system > .dhb-section {
    background-color: transparent !important;
    background-image: none !important;
}

.ezsp-background-system > .dhb-home-hero::before,
.ezsp-background-system > .dhb-home-hero::after,
.ezsp-background-system > .dhb-home-cta::before,
.ezsp-background-system > .dhb-home-cta::after,
.ezsp-background-system > .dhb-section::before,
.ezsp-background-system > .dhb-section::after {
    content: none !important;
    display: none !important;
    background: none !important;
    opacity: 0 !important;
}

/* Compatibility: old overlay elements can never display inside the new renderer. */
.ezsp-background-system .dhb-static-overlay,
.ezsp-background-system .dhb-slider-overlay {
    display: none !important;
    opacity: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
    .ezsp-background-system .dhb-bg-slide {
        transition: none !important;
    }
}

/* v8.3.2 — keep service-card images perfectly centered inside their frames. */
.dhb-builder-services .dhb-service-photo,
.dhb-home-services .dhb-service-photo {
    display: grid !important;
    place-items: center !important;
    align-content: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

.dhb-builder-services .dhb-service-photo picture,
.dhb-home-services .dhb-service-photo picture {
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
}

.dhb-builder-services .dhb-service-photo img,
.dhb-home-services .dhb-service-photo img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: 0 auto !important;
    object-fit: cover !important;
    object-position: 50% 50% !important;
    transform: none !important;
}


/* v8.4.1 — image fills the configured frame exactly. */
.dhb-builder-services .dhb-service-photo,
.dhb-home-services .dhb-service-photo {
    padding: 0 !important;
    border-radius: var(--dhb-service-image-radius, 17px) !important;
}

.dhb-builder-services .dhb-service-photo picture,
.dhb-home-services .dhb-service-photo picture,
.dhb-builder-services .dhb-service-photo img,
.dhb-home-services .dhb-service-photo img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    border-radius: inherit !important;
}

/* Homepage entry animations */
.dhb-entry-enabled,.dhb-card-entry-enabled{--dhb-entry-duration:700ms;--dhb-entry-delay:0ms;}
.dhb-entry-target{opacity:0;will-change:transform,opacity,filter;transition-property:opacity,transform,filter;transition-duration:var(--dhb-anim-duration,700ms);transition-delay:var(--dhb-anim-delay,0ms);transition-timing-function:cubic-bezier(.22,1,.36,1);}
.dhb-entry-target.is-visible{opacity:1;transform:none!important;filter:none!important;}
.dhb-anim-fade{transform:none}.dhb-anim-fade-up{transform:translate3d(0,42px,0)}.dhb-anim-fade-down{transform:translate3d(0,-42px,0)}.dhb-anim-fade-left{transform:translate3d(-52px,0,0)}.dhb-anim-fade-right{transform:translate3d(52px,0,0)}
.dhb-anim-slide-up{transform:translate3d(0,90px,0)}.dhb-anim-slide-down{transform:translate3d(0,-90px,0)}.dhb-anim-slide-left{transform:translate3d(-110px,0,0)}.dhb-anim-slide-right{transform:translate3d(110px,0,0)}
.dhb-anim-zoom-in{transform:scale(.82)}.dhb-anim-zoom-out{transform:scale(1.16)}.dhb-anim-scale-up{transform:scale(.94)}.dhb-anim-flip-x{transform:perspective(900px) rotateX(70deg);transform-origin:center bottom}.dhb-anim-flip-y{transform:perspective(900px) rotateY(70deg);transform-origin:center}.dhb-anim-rotate-in{transform:scale(.88) rotate(-7deg)}.dhb-anim-blur-in{transform:translate3d(0,20px,0);filter:blur(12px)}.dhb-anim-bounce-in{transform:scale(.7);transition-timing-function:cubic-bezier(.34,1.56,.64,1)}
@media (prefers-reduced-motion:reduce){.dhb-entry-target{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}}
