Yes, it is possible. You would set up CRS with as many VLANs as necessary for LAN side, set IP address on corresponding vlan interfaces, set up L3HW offloading … and configure all devices to use CRS’ IP addresses as their default gateway (e.g. make appropriate changes to DHCP server settings).
Then you’d add another VLAN on CRS with port, connecting firewall/router, set as access port of that VLAN. Set up IP address on CRS and router from same (can be small, /30 would do) IP subnet. Set up CRS to use router as default gateway. This way CRS would wirespeed route also towards firewall/router.
On router, in addition to the “LAN” IP address from same (/30) subnet as CRS, you will have to add static routes towards your other LAN subnets via CRS’ /30 IP address. Then make sure that NAT on firewall/router covers all the LAN subnets, firewall rules as well.
As to running firewall on CRS: I’d try to avoid doing it. Some CRS models can offload fasttrack traffic to switch chip, some can not. And even if they support offload, CPU will still have to process a few packets of each connection. Depending on device model and average “longevity” of connections this can pose a significant burden on switch’s CPU. OTOH without firewall you can only affect traffic between different VLANs by using routing rules / ACLs. So whether you have to run firewall on CRS or not really depends on what kind of inter-VLAN traffic control you absolutely need.
CRS317 is an absolute beast for L3 HW offloading, it would do offloaded firewall as well. The CRS326-24S is a very decent device as well, but not a beast.
I’d definitely consider doing L3 HW offload routing. One benefit is wirespeed (i.e. 10Gbps) routing … you’d need a serious device to do it in software. What does the OPNsense device offer in this department?