I think the use of max() over() was intended to be against Numbers, not Option
select *
from (
select c_id,
option,
max(numbers) over (partition by c_id) as max_numbers
from tblCust
where c_id = 10
) t
where numbers = max_numbers;
If however the data is such that you have more than one record that is equal to the max(Numbers) - and you want only one result record - then use of row_number() may be a better option.
select *
from (
select c_id,
option,
row_number() over (partition by c_id order by Numbers DESC, Option DESC) as rn
from tblCust
where c_id = 10
) AS t
where rn=1
;
note the order by within the over() here, it places highest Numbers and Option first which is then given the row_number value of 1