Custom form from scratch in template
You can use Drupal's default contact form and customize the fields as per your need which will have all the required logic for form handling. Then you can check and apply the theme as per your need to it.