Modern TLS is enough to prevent others from eavesdropping everything except domain names when on public WiFi. Domain names are sent in clear text if your client supports SNI.
All SNIs are passed as plain text to your ISP/VPN, even with DoH/TLS secure DNS enabled.