/* MOVISART photography standard - approved 2026-11-13.
 * Body/card photos: 85%. Cover photos: 65%.
 * Keep filters off text, logos, icons and decorative coats of arms.
 * Cover gradients remain separate from the photograph.
 */
:root {
 --mvt-photo-saturation: .85;
 --mvt-cover-saturation: .65;
 --mvt-cover-light-wash: linear-gradient(90deg,rgba(255,255,255,.94),rgba(255,255,255,.55));
 --mvt-cover-dark-wash: linear-gradient(90deg,rgba(40,53,103,.98) 40%,rgba(40,53,103,0) 80%);
}

/* Raster photographs in the content, including native/Atomic images and galleries.
 * SVGs and named brand/interface assets are deliberately excluded.
 */
body :is(.elementor,.mvt-portfolio) img:is([src*=".webp" i],[src*=".jpg" i],[src*=".jpeg" i],[src*=".png" i]):not(:where(
 .mvt-ui-icon,[class*="avatar"],[src*="logo" i],[src*="icon" i],[src*="icone" i],
 [src*="bras" i],[src*="brasão" i],[src*="escudo" i],[src*="selo" i],[src*="favicon" i],
 .elementor-location-header img,.elementor-location-footer img,.elementor-widget-theme-site-logo img,
 .quform img,.mvt-review-avatar img,.mvt-r-avatar img,
 [data-interaction-id="e61f0e2"],[data-interaction-id="460cc50"],[data-interaction-id="52ace3a2"]
)) {
 filter:saturate(var(--mvt-photo-saturation))!important;
}

/* The tips image is a background; filtering its parent and a nested layer
 * together would incorrectly multiply the saturation.
 */
body .elementor.elementor-3279.e-loop-item .elementor-element.elementor-element-59c9f38 {
 filter:saturate(var(--mvt-photo-saturation))!important;
}
body .elementor.elementor-3279.e-loop-item .elementor-element-59c9f38 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
 filter:none!important;
}

/* Atomic cover photographs. Icons in the same cover are not selected. */
body .elementor img.e-image-base[data-interaction-id="0f15783"],
body .elementor img.e-image-base[data-interaction-id="9a1c8a7"],
body .elementor img.e-image-base[data-interaction-id="beee04c"] {
 filter:saturate(var(--mvt-cover-saturation))!important;
}
body .elementor :is(
 [data-interaction-id="2213266"],
 [data-interaction-id="1bcb8bf"],
 [data-interaction-id="235b702"]
) {
 background-image:var(--mvt-cover-dark-wash)!important;
 opacity:1!important;
}

/* Legacy service/article cover: the dynamic photo is inherited by its own
 * layer. Never filter the container, which would also desaturate the text.
 */
body :is(
 .elementor-1555 .elementor-element.elementor-element-49f936c0,
 .elementor-1511 .elementor-element.elementor-element-d7e5bda
) {
 position:relative; isolation:isolate; filter:none!important;
}
body :is(
 .elementor-1555 .elementor-element.elementor-element-49f936c0,
 .elementor-1511 .elementor-element.elementor-element-d7e5bda
)::after {
 content:""; display:block; position:absolute; inset:0; z-index:0;
 background-image:inherit; background-size:inherit;
 background-position:inherit; background-repeat:inherit;
 filter:saturate(var(--mvt-cover-saturation))!important;
 opacity:1; pointer-events:none;
}
body :is(
 .elementor-1555 .elementor-element.elementor-element-49f936c0,
 .elementor-1511 .elementor-element.elementor-element-d7e5bda
)::before {
 content:""; display:block; position:absolute; inset:0; z-index:1;
 background:var(--mvt-cover-dark-wash)!important; opacity:1!important;
 pointer-events:none;
}
body :is(
 .elementor-1555 .elementor-element-49f936c0,
 .elementor-1511 .elementor-element-d7e5bda
) > .e-con-inner { position:relative; z-index:2; }
body :is(
 .elementor-1555 .elementor-element-49f936c0,
 .elementor-1511 .elementor-element-d7e5bda
) > .elementor-motion-effects-container { display:none!important; }

/* Light covers: one photo layer, wash, opacity and saturation across pages.
 * Existing dimensions and copy placement remain controlled by each template.
 */
body :is(
 .elementor-5174 .elementor-element.elementor-element-84caa70,
 .elementor-1087 .elementor-element.elementor-element-d4cc7d9,
 .elementor-8829 .elementor-element.elementor-element-d4cc7d9,
 .elementor-4054 .elementor-element.elementor-element-5bafc74,
 .elementor-8357 .elementor-element.elementor-element-302b150d
) {
 position:relative; isolation:isolate; background:#fdfdfd!important; filter:none!important;
}
body :is(
 .elementor-5174 .elementor-element.elementor-element-84caa70,
 .elementor-1087 .elementor-element.elementor-element-d4cc7d9,
 .elementor-8829 .elementor-element.elementor-element-d4cc7d9,
 .elementor-4054 .elementor-element.elementor-element-5bafc74,
 .elementor-8357 .elementor-element.elementor-element-302b150d
)::before {
 content:""; display:block!important; position:absolute; inset:0; z-index:-1;
 background:var(--mvt-cover-light-wash),url("https://movisart.pt/wp-content/uploads/mart26_eai__toppagebackgr-jpg.webp") right center / cover no-repeat!important;
 opacity:1!important; filter:saturate(var(--mvt-cover-saturation))!important;
 pointer-events:none;
}
body :is(
 .elementor-5174 .elementor-element-84caa70,
 .elementor-1087 .elementor-element-d4cc7d9,
 .elementor-8829 .elementor-element-d4cc7d9,
 .elementor-4054 .elementor-element-5bafc74,
 .elementor-8357 .elementor-element-302b150d
) > .elementor-motion-effects-container { display:none!important; }

/* These grid covers already use a background pseudo-element as a grid item.
 * Keep that geometry; filtering the parent would affect its heading.
 */
body .elementor-7860 [data-interaction-id="4165e8e7"]::before,
body .elementor-4057 .elementor-element.elementor-element-8895587 > .e-con-inner::before {
 background:var(--mvt-cover-light-wash),url("https://movisart.pt/wp-content/uploads/mart26_eai__toppagebackgr-jpg.webp") right center / cover no-repeat!important;
 opacity:1!important; filter:saturate(var(--mvt-cover-saturation))!important;
}
/* Contacts keeps its approved portrait and responsive edge mask. */
body .elementor-6486 .elementor-element.elementor-element-1525a567::before {
 filter:saturate(var(--mvt-cover-saturation))!important; opacity:1!important;
}

@media(max-width:767px) {
 :root {
  --mvt-cover-dark-wash:linear-gradient(90deg,rgba(40,53,103,.96),rgba(40,53,103,.78));
 }
}

/* Locality cover: keep the coat of arms separate from the filtered photo.
 * Parallax can move the photo into a motion layer; support both render paths.
 */
body .elementor-440 .elementor-element-4e79aaf:has(> .elementor-motion-effects-container)::before {
 display:none!important;
}
body :is(
 .elementor-440 .elementor-element-4e79aaf:not(:has(> .elementor-motion-effects-container)),
 .elementor-440 .elementor-element-4e79aaf > .elementor-motion-effects-container > .elementor-motion-effects-layer
) {
 isolation:isolate; filter:none!important;
}
body :is(
 .elementor-440 .elementor-element-4e79aaf:not(:has(> .elementor-motion-effects-container)),
 .elementor-440 .elementor-element-4e79aaf > .elementor-motion-effects-container > .elementor-motion-effects-layer
)::after {
 content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
 background-image:inherit; background-position:inherit; background-size:inherit; background-repeat:inherit;
 filter:saturate(var(--mvt-cover-saturation))!important;
}
body :is(
 .elementor-440 .elementor-element-4e79aaf:not(:has(> .elementor-motion-effects-container)),
 .elementor-440 .elementor-element-4e79aaf > .elementor-motion-effects-container > .elementor-motion-effects-layer
)::before {
 content:""; display:block; position:absolute; inset:0; z-index:1; pointer-events:none;
 background:var(--mvt-cover-dark-wash)!important; opacity:1!important;
}
