DMARC passes when SPF or DKIM passes and aligns with the visible From domain. SPF alignment compares the envelope sender domain. DKIM alignment compares the signing domain in the d= tag.
A domain can have SPF pass but DMARC fail if SPF passes for a different return-path domain. A message can also have DKIM pass for a third-party domain that does not align with the visible From address.
Check the DMARC policy in DNS, then analyze a real message header to confirm whether SPF or DKIM alignment is actually passing.