Query SQL SERVER – Doble Condicional

tengo el siguiente problema.

Necesito asignar la fecha a un registro en donde tengo que elegir la menor, y luego seleccionar la mayor dentro de las fechas que son menor.

Para aclarar el problema, por ejemplo tengo la siguiente situación:

Datos de ejemplo:

CREATE TABLE dbo.Movimiento(Cod varchar(3), Cantidad int, Fecha date);
CREATE TABLE dbo.Unitario(Cod varchar(3), Costo int, Fecha date);

INSERT INTO dbo.Movimiento 
VALUES  ('AAA',2,'20180125'),
        ('AAA',3,'20190426'),
        ('BBB',4,'20200527'),
        ('BBB',4,'20210527');


INSERT INTO dbo.Unitario 
VALUES  ('AAA',200,'20180125'),
        ('AAA',300,'20191231'),
        ('BBB',500,'20191231'),
        ('BBB',1000,'20201231');

Cómo puedo asignar el costo Unitario ( tabla Unitario) al código de tabla Movimiento, en donde la fecha del Movimiento debe ser menor o igual a la de la tabla de costo Unitario, y luego tomar la mayor fecha unitaria dentro de las menores?

He estado buenas horas con el problema y aún no se me ocurre una solución. Les agradecería si me ayudan con un par de ideas.