src/ApplicationBundle/Modules/HoneybeeWeb/Resources/views/pages/contact.html.twig line 1

Open in your IDE?
  1. {% include '@Application/inc/central_header.html.twig' %}
  2. <style>
  3. :root {
  4.     --n-cream: #F7F5F0;
  5.     --n-dark:  #1A1D2E;
  6.     --n-amber: #C07D2A;
  7.     --n-sage:  #3D6B52;
  8.     --n-slate: #3D4F72;
  9.     --n-muted: #6B7280;
  10.     --n-border: rgba(26,29,46,.08);
  11. }
  12. .n-page-hero {
  13.     background: var(--n-cream);
  14.     padding: 80px 0 56px;
  15.     text-align: center;
  16. }
  17. .n-page-hero .n-eyebrow {
  18.     display: inline-block;
  19.     font-size: .75rem;
  20.     font-weight: 700;
  21.     letter-spacing: .12em;
  22.     text-transform: uppercase;
  23.     color: var(--n-amber);
  24.     margin-bottom: 14px;
  25. }
  26. .n-page-hero h1 {
  27.     font-family: 'Montserrat', sans-serif;
  28.     font-size: clamp(2rem, 4vw, 2.8rem);
  29.     font-weight: 700;
  30.     color: var(--n-dark);
  31.     margin: 0 0 14px;
  32.     line-height: 1.2;
  33. }
  34. .n-page-hero p {
  35.     font-size: 1.05rem;
  36.     color: var(--n-muted);
  37.     max-width: 520px;
  38.     margin: 0 auto;
  39.     line-height: 1.7;
  40. }
  41. /* ── Contact Section ── */
  42. .n-contact-section {
  43.     background: #fff;
  44.     padding: 72px 0 96px;
  45. }
  46. .n-contact-inner {
  47.     display: grid;
  48.     grid-template-columns: 1fr 1fr;
  49.     gap: 64px;
  50.     align-items: center;
  51.     max-width: 960px;
  52.     margin: 0 auto;
  53.     padding: 0 24px;
  54. }
  55. @media(max-width:768px) {
  56.     .n-contact-inner { grid-template-columns: 1fr; gap: 32px; }
  57.     .n-contact-img { display: none; }
  58. }
  59. .n-contact-img img {
  60.     width: 100%;
  61.     max-width: 380px;
  62.     display: block;
  63.     margin: 0 auto;
  64.     opacity: .92;
  65. }
  66. /* form */
  67. .n-contact-form h2 {
  68.     font-family: 'Montserrat', sans-serif;
  69.     font-size: 1.6rem;
  70.     font-weight: 700;
  71.     color: var(--n-dark);
  72.     margin: 0 0 6px;
  73. }
  74. .n-contact-form .n-form-sub {
  75.     font-size: .9rem;
  76.     color: var(--n-muted);
  77.     margin: 0 0 28px;
  78. }
  79. .n-field {
  80.     margin-bottom: 18px;
  81. }
  82. .n-field label {
  83.     display: block;
  84.     font-size: .82rem;
  85.     font-weight: 600;
  86.     color: var(--n-dark);
  87.     margin-bottom: 6px;
  88.     letter-spacing: .02em;
  89. }
  90. .n-field input,
  91. .n-field textarea {
  92.     width: 100%;
  93.     padding: 11px 14px;
  94.     border: 1.5px solid var(--n-border);
  95.     border-radius: 8px;
  96.     font-size: .95rem;
  97.     color: var(--n-dark);
  98.     background: var(--n-cream);
  99.     transition: border-color .2s;
  100.     font-family: 'DM Sans', sans-serif;
  101.     outline: none;
  102.     box-sizing: border-box;
  103. }
  104. .n-field input:focus,
  105. .n-field textarea:focus {
  106.     border-color: var(--n-amber);
  107.     background: #fff;
  108. }
  109. .n-field textarea {
  110.     resize: vertical;
  111.     min-height: 110px;
  112. }
  113. .n-submit-btn {
  114.     display: inline-flex;
  115.     align-items: center;
  116.     gap: 8px;
  117.     padding: 12px 32px;
  118.     background: var(--n-amber);
  119.     color: #fff;
  120.     border: none;
  121.     border-radius: 8px;
  122.     font-family: 'DM Sans', sans-serif;
  123.     font-size: .95rem;
  124.     font-weight: 600;
  125.     cursor: pointer;
  126.     transition: background .2s, transform .15s;
  127. }
  128. .n-submit-btn:hover { background: #a86d24; transform: translateY(-1px); }
  129. /* ── 3-step wizard ── */
  130. .n-step {
  131.     margin-bottom: 30px;
  132. }
  133. .n-step-head {
  134.     display: flex;
  135.     align-items: center;
  136.     gap: 12px;
  137.     margin-bottom: 16px;
  138. }
  139. .n-step-num {
  140.     flex: 0 0 auto;
  141.     width: 30px;
  142.     height: 30px;
  143.     border-radius: 50%;
  144.     background: var(--n-amber);
  145.     color: #fff;
  146.     font-family: 'Montserrat', sans-serif;
  147.     font-weight: 700;
  148.     font-size: .9rem;
  149.     display: inline-flex;
  150.     align-items: center;
  151.     justify-content: center;
  152. }
  153. .n-step-title {
  154.     font-family: 'Montserrat', sans-serif;
  155.     font-size: 1.05rem;
  156.     font-weight: 700;
  157.     color: var(--n-dark);
  158.     margin: 0;
  159.     line-height: 1.3;
  160. }
  161. .n-field select {
  162.     width: 100%;
  163.     padding: 11px 14px;
  164.     border: 1.5px solid var(--n-border);
  165.     border-radius: 8px;
  166.     font-size: .95rem;
  167.     color: var(--n-dark);
  168.     background: var(--n-cream);
  169.     transition: border-color .2s;
  170.     font-family: 'DM Sans', sans-serif;
  171.     outline: none;
  172.     box-sizing: border-box;
  173. }
  174. .n-field select:focus { border-color: var(--n-amber); background: #fff; }
  175. .n-field input[type=file] {
  176.     padding: 9px 14px;
  177.     background: var(--n-cream);
  178. }
  179. .n-help {
  180.     font-size: .78rem;
  181.     color: var(--n-muted);
  182.     line-height: 1.5;
  183.     margin: 6px 0 0;
  184. }
  185. </style>
  186. <!-- Page Hero -->
  187. <section class="n-page-hero">
  188.     <div class="n-wrap">
  189.         <span class="n-eyebrow">Get in Touch</span>
  190.         <h1>Find the right HoneyBee setup for your company.</h1>
  191.         <p>Tell us what you need, what kind of company you are, and a little about your current workflow or site requirement — we will respond with a recommended HoneyBee setup.</p>
  192.         <p style="max-width:520px;margin:10px auto 0;font-size:.9rem;color:var(--n-muted);line-height:1.7;">For more specific technical or project discussions, you can also book an online meeting with our team.</p>
  193.     </div>
  194. </section>
  195. <!-- Contact Form Section -->
  196. <section class="n-contact-section">
  197.     <div class="n-contact-inner">
  198.         <div class="n-contact-img">
  199.             <img src="{{ absolute_url(path('dashboard')) }}honeybee_web_assets/images/about/contact-robot.svg?version={{ constant('ApplicationBundle\\Constants\\GeneralConstant::ENTITY_APP_VERSION') }}" alt="Contact HoneyBee">
  200.         </div>
  201.         <div class="n-contact-form">
  202.             <h2>Get your HoneyBee recommendation</h2>
  203.             <p class="n-form-sub">Three quick steps. We typically respond within one business day, and for complex or project-related queries we may follow up with a call or meeting.</p>
  204.             <form id="newsletter-form" method="post" enctype="multipart/form-data">
  205.                 <!-- Step 1 -->
  206.                 <div class="n-step">
  207.                     <div class="n-step-head">
  208.                         <span class="n-step-num">1</span>
  209.                         <p class="n-step-title">What do you need?</p>
  210.                     </div>
  211.                     <div class="n-field">
  212.                         <label for="enquiry_need">Select what you are looking for</label>
  213.                         <select id="enquiry_need" name="enquiry_need" onchange="document.getElementById('subject').value=this.value">
  214.                             <option value="" disabled selected>Choose an option…</option>
  215.                             <option value="Project-Based ERP">Project-Based ERP</option>
  216.                             <option value="General Business ERP">General Business ERP</option>
  217.                             <option value="HoneyCore Edge+ Design and Quotation">HoneyCore Edge+ Design and Quotation</option>
  218.                             <option value="HoneyCore Edge EMS Site Intelligence">HoneyCore Edge EMS Site Intelligence</option>
  219.                             <option value="Customization">Customization</option>
  220.                             <option value="Partner Application">Partner Application</option>
  221.                             <option value="Enterprise / Private Cloud">Enterprise / Private Cloud</option>
  222.                             <option value="Research / innovation partnership">Research / innovation partnership</option>
  223.                             <option value="Not sure yet">Not sure yet</option>
  224.                         </select>
  225.                     </div>
  226.                 </div>
  227.                 <!-- Step 2 -->
  228.                 <div class="n-step">
  229.                     <div class="n-step-head">
  230.                         <span class="n-step-num">2</span>
  231.                         <p class="n-step-title">What type of company are you?</p>
  232.                     </div>
  233.                     <div class="n-field">
  234.                         <label for="company_type">Select your company type</label>
  235.                         <select id="company_type" name="company_type">
  236.                             <option value="" disabled selected>Choose an option…</option>
  237.                             <option value="EPC">EPC</option>
  238.                             <option value="Engineering / construction">Engineering / construction</option>
  239.                             <option value="Solar / renewable energy">Solar / renewable energy</option>
  240.                             <option value="IoT / industrial automation / HoneyCore Edge+ system integrator">IoT / industrial automation / HoneyCore Edge+ system integrator</option>
  241.                             <option value="System integrator">System integrator</option>
  242.                             <option value="Trading / distribution">Trading / distribution</option>
  243.                             <option value="Service company">Service company</option>
  244.                             <option value="Factory / industrial operator">Factory / industrial operator</option>
  245.                             <option value="IPP / OPEX / PPA">IPP / OPEX / PPA</option>
  246.                             <option value="General SME">General SME</option>
  247.                             <option value="University / research organization">University / research organization</option>
  248.                             <option value="Investor / bank / grant stakeholder">Investor / bank / grant stakeholder</option>
  249.                             <option value="Other">Other</option>
  250.                         </select>
  251.                     </div>
  252.                 </div>
  253.                 <!-- Step 3 -->
  254.                 <div class="n-step">
  255.                     <div class="n-step-head">
  256.                         <span class="n-step-num">3</span>
  257.                         <p class="n-step-title">Describe or upload your current workflow or site requirement</p>
  258.                     </div>
  259.                     <div class="n-field">
  260.                         <label for="message">Describe your workflow or requirement</label>
  261.                         <textarea id="message" name="message" placeholder="Tell us about your current workflow, project, or site requirement…" required></textarea>
  262.                     </div>
  263.                     <div class="n-field">
  264.                         <label for="workflow_file">Upload a document <span style="font-weight:400;color:var(--n-muted)">(optional)</span></label>
  265.                         <input type="file" id="workflow_file" name="workflow_file">
  266.                         <p class="n-help">You can upload a quotation, cost sheet, workflow doc, project sheet, SLD, technical doc, ERP export, HoneyCore Edge+ requirement list, meter / sensor list, data point list, site layout, or research brief.</p>
  267.                     </div>
  268.                     <!-- Contact details -->
  269.                     <div class="n-field">
  270.                         <label for="name">Full Name</label>
  271.                         <input type="text" id="name" name="name" placeholder="Your full name" required>
  272.                     </div>
  273.                     <div class="n-field">
  274.                         <label for="email">Email Address</label>
  275.                         <input type="email" id="email" name="email" placeholder="your@company.com" required>
  276.                     </div>
  277.                     <div class="n-field">
  278.                         <label for="phone">Phone <span style="font-weight:400;color:var(--n-muted)">(optional)</span></label>
  279.                         <input type="text" id="phone" name="phone" placeholder="Optional — include country code">
  280.                     </div>
  281.                     <!-- Preserved subject field (mirrors Step 1 selection for the existing submission contract) -->
  282.                     <input type="hidden" id="subject" name="subject" value="HoneyBee Recommendation Request">
  283.                 </div>
  284.                 <button type="submit" class="n-submit-btn">
  285.                     <i class="fa fa-paper-plane"></i> Get My HoneyBee Recommendation
  286.                 </button>
  287.             </form>
  288.             <div style="margin-top:32px;padding-top:24px;border-top:1.5px solid var(--n-border)">
  289.                 <p style="font-size:.9rem;font-weight:700;color:var(--n-dark);margin-bottom:6px;">Need to speak directly?</p>
  290.                 <p style="font-size:.85rem;color:var(--n-muted);line-height:1.65;margin-bottom:14px;">You can also book an online meeting for detailed discussions on your project, HoneyCore Edge+ deployment, IoT integration, or enterprise rollout.</p>
  291.                 <a href="{{ url('book_demo_page') }}" style="display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border-radius:8px;border:1.5px solid var(--n-border);background:var(--n-cream);font-size:.85rem;font-weight:600;color:var(--n-dark);text-decoration:none;transition:border-color .2s;" onmouseover="this.style.borderColor='var(--n-amber)'" onmouseout="this.style.borderColor='var(--n-border)'">
  292.                     <i class="fa fa-calendar"></i> Book Online Meeting
  293.                 </a>
  294.             </div>
  295.             <div style="margin-top:28px;padding:20px 22px;background:var(--n-cream);border-radius:10px;border:1px solid var(--n-border)">
  296.                 <p style="font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--n-muted);margin-bottom:10px;">What happens after you submit?</p>
  297.                 <p style="font-size:.85rem;color:var(--n-muted);line-height:1.6;margin-bottom:8px;">We review your message and respond by email. Depending on your request, we may:</p>
  298.                 <ul style="font-size:.85rem;color:var(--n-muted);line-height:1.8;padding-left:18px;margin:0;">
  299.                     <li>Answer directly</li>
  300.                     <li>Suggest a product demo</li>
  301.                     <li>Propose a technical discussion</li>
  302.                     <li>Recommend a HoneyCore Edge+ or deployment approach</li>
  303.                     <li>Share a quotation or next steps</li>
  304.                 </ul>
  305.             </div>
  306.         </div>
  307.     </div>
  308. </section>
  309. <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
  310. <script>
  311.     $(document).ready(function () {
  312.         $('#newsletter-form').on('submit', function (e) {
  313.             e.preventDefault();
  314.             $.ajax({
  315.                 url: "{{ path('honeybee_contact') }}",
  316.                 type: "POST",
  317.                 data: new FormData(this),
  318.                 processData: false,
  319.                 contentType: false,
  320.                 success: function (response) {
  321.                     if (response.success) {
  322.                         Swal.fire({
  323.                             icon: 'success',
  324.                             title: 'Thanks for Reaching Out!',
  325.                             text: response.message,
  326.                             timer: 2000,
  327.                             showConfirmButton: false
  328.                         });
  329.                         $('#newsletter-form')[0].reset();
  330.                     } else {
  331.                         Swal.fire('Error', response.message, 'error');
  332.                     }
  333.                 },
  334.                 error: function () {
  335.                     Swal.fire('Oops!', 'Something went wrong. Please try again.', 'error');
  336.                 }
  337.             });
  338.         });
  339.     });
  340. </script>
  341. {% include '@HoneybeeWeb/footer/central_footer.html.twig' %}