/* NS Motion for Divi – Linolie Edition */
html.nsmfd-disable-divi-animations .et_animated,
html.nsmfd-disable-divi-animations .et-waypoint,
html.nsmfd-disable-divi-animations [class*="et_pb_animation_"] {
  animation: none !important;
  animation-delay: 0s !important;
  opacity: 1;
  visibility: visible;
}

/* Prevent initial text flicker before GSAP prepares the targets. Content/body only. */
html.nsmfd-js.nsmfd-unified-text:not(.nsmfd-initialized) :is(#main-content,.et-l--body) :is(
  h1,h2,h3,h4,h5,h6,
  .et_pb_fullwidth_header_subhead,
  .et_pb_text_inner > p,.et_pb_text_inner > ul,.et_pb_text_inner > ol,.et_pb_text_inner > blockquote,
  .et_pb_blurb_description,.et_pb_testimonial_description,.et_pb_promo_description,.et_pb_cta_description,
  .et_pb_header_content_wrapper > p,.et_pb_team_member_description > p,.et_pb_pricing_content > ul,.et_pb_toggle_content,
  .et_pb_post_content > p,.et_pb_post_content > ul,.et_pb_post_content > ol,.et_pb_post_content > blockquote,
  .et_pb_post_content article p,.et_pb_post_content article li,
  .dsm_card_carousel_child_description,.dsm_card_carousel_child_subtitle,.dsm_card_carousel_child_badge_text,
  .dsm_flipbox_child_description,.dsm_content_toggle_content,.dsm_icon_list_text,.dsm_pricelist_description,
  .dsm_business_hours_child_description,.dsm_team_member_description,.dsm_testimonial_description,
  .et_pb_module[class*="dsm_"] p,.et_pb_module[class*="dsm_"] li,
  .dp-dfg-title,.dp-dfg-excerpt,.dp-dfg-content,.dp-dfg-meta,.dp-dfg-custom-content,.dp-dfg-item p,.dp-dfg-item li
):not(.ns-motion-disable *):not(.ns-motion-no-above-fold *) {
  opacity: 0;
  visibility: hidden;
  transition: none !important;
}

html.nsmfd-js.nsmfd-button-fade:not(.nsmfd-initialized) :is(#main-content,.et-l--body) :is(
  .et_pb_button,.et_pb_button_module_wrapper a,.et_pb_more_button,.et_pb_newsletter_button,
  .et_pb_contact_submit,.et_pb_searchsubmit,.dsm_button,.dsm_button_one,.dsm_button_two,
  .et_pb_module[class*="dsm_"] .et_pb_button,.dp-dfg-more-button,.dp-dfg-load-more-button
):not(.ns-motion-disable *):not(.ns-motion-no-above-fold *) {
  opacity: 0;
  visibility: hidden;
  transition: none !important;
}

/* Page transition is content-only; fail-safe class is removed by the early script if JS fails. */
html.nsmfd-js.nsmfd-page-transition:not(.nsmfd-initialized) #main-content { opacity: 0; }

.ns-motion-reveal-left,.ns-motion-reveal-right,.ns-motion-reveal-up,.ns-motion-image-reveal { overflow: hidden; }
html.nsmfd-js:not(.nsmfd-initialized) .ns-motion-fade-up { opacity:0; visibility:hidden; transition:none!important; }
html.nsmfd-js:not(.nsmfd-initialized) .ns-motion-reveal-left,
html.nsmfd-js:not(.nsmfd-initialized) .ns-motion-image-reveal { clip-path:inset(0 100% 0 0); visibility:hidden; transition:none!important; }
html.nsmfd-js:not(.nsmfd-initialized) .ns-motion-reveal-right { clip-path:inset(0 0 0 100%); visibility:hidden; transition:none!important; }
html.nsmfd-js:not(.nsmfd-initialized) .ns-motion-reveal-up { clip-path:inset(100% 0 0 0); visibility:hidden; transition:none!important; }

/* Background reveal overlay: background stays untouched, only a cover layer moves away. */
.nsmfd-bg-host { position: relative; isolation: isolate; }
.nsmfd-bg-host > .nsmfd-bg-cover { position:absolute; inset:0; z-index:1; pointer-events:none; will-change:clip-path; }
.nsmfd-bg-host > :not(.nsmfd-bg-cover) { position:relative; z-index:2; }

[data-nsm-text="1"],[data-nsm-button="1"] { will-change: transform, opacity; }

@media (prefers-reduced-motion: reduce) {
  #main-content,[class*="ns-motion-"],[data-nsm-text],[data-nsm-button],[data-nsm-bg] {
    animation:none!important; transition:none!important; transform:none!important; opacity:1!important;
    visibility:visible!important; clip-path:none!important;
  }
  .nsmfd-bg-cover { display:none!important; }
}
