Today, n-Tier/SOA architectures seem to fulfill your needs.
Never expose the database to the Internet, never send SQL requests over the Wire, but design Services, which would be consumed from your clients.
You may still use RAD for designing your UI, but you would better put your business logic, and your database away from your application.
You may try to use DataSnap (which may be in your edition of Delphi), or try some SOA frameworks, e.g. our Open Source mORMot framework. The exhaustive documentation has some chapters introducing those new concepts, like nTier/SOA/ORM/MVC. It uses HTTP and JSON over REST, so you could even use AJAX clients, if needed.

The mORMot framework has a quite unique master/slave replication feature, as part of its ORM abilities. It was designed to easily implement Main Office / Local Office data synchronization, as you need. This synchronization may be defined in real-time, using WebSockets.
As a side-effect benefit, since each local office has its own (SQLite3 self-hosted) database, the main server would be less solicited, and local offices could even continue to work if the Main Office server crashes, or in case of Internet connection loss.