1) Use Joomla!'s Built-In ACL
I recommend defaulting your visitors to a login page and using Joomla!'s built-in ACL using Registered users.
Set a Top-Level Menu item with permissions to Registered users - and then each Menu item on that tree will be only visible and available to Registered users.
There is an excellent tutorial on ACL in the Joomla! Docs.
However, files and documents can still be downloaded by non-registered users (i.e. if they have the direct link).
In this case, you will have to use a 3rd party extension, if you wish to protect those docs, such as Akeeba Release Systems or SobiPro.
2) Password Protected Directories
The 'simplest' way to protect your site is to Password Protect your directory via .htaccess/
It's inelegant, but if you use cPanel, for example, go to Security -> Password Protected Directories and use the wizard to name directories, add or remove users and assign those users to the Password Protected Directory - you can give each user a unique name and password.
It's inelegant, but simple and used quite often in practice - however, I reiterate, it's probably best use ACL and if protecting docs from download, a 3rd party extension.
If you keep your files/docs under the Password Protected directory, then those will be protected as well - requiring a user with permissions trying to access that directory to login first.