Making a SharePoint site fully responsive while keeping all the collaboration functionality is very hard (if not impossible).
To overhaul the standard HTML you need to modify the master page and create custom page layouts. Even when doing a complete overhaul you will still have limited control over the HTML that the SharePoint webparts generate.
To make things worst Microsoft lately recommends not to adjust the master pages and leave them as is.
When I need to make a SharePoint site responsive, I use a 'publish - consumer' approach.
The 'content editors' use the standard SharePoint out of the box functionality for creating all the needed content. We generally call this the 'back-end'. Users in this (bank-end) site have access to all the SharePoint functionality (workflows, versioning, content approval, content types, lists, etc...) The master page is not modified.
A second website is created called 'front-end'. This site is the fully responsive site that most users will visit. This site can be a new SharePoint site collection or just a plain .NET website solution (MVC or aspx forms). This front-end 'consumes' the content coming from the back-end. When using SharePoint this is generally done by using the search and creating custom display templates. When using MVC as front-end you can fetch information by using the SharePoint web services or using CSOM.
I used this approach in several projects and have a preference for using an MVC application as front-end because it gives you 100% control over the generated HTML. In most cases creating an MVC site was faster than overhauling SharePoint.