At the resource level, you can configure fixed duration or fixed time slots.
But changing the duration depending on selected price options and fields is not supported.
Initially, the customer selects the start and end time.
And only after that he chooses price options and additional fields.
However, you can validate the selected duration.
If the customer chooses the wrong combination of duration, price options or fields, he will see your validation error on the widget.
To do this, create a reaction having a type - Error.
Then, in the Conditions tab set the duration limits and price options that will cause the error.
The configuration will look like this:
You can try to book a different duration for different price options: