{"id":22,"date":"2024-11-15T09:42:42","date_gmt":"2024-11-15T09:42:42","guid":{"rendered":"https:\/\/torofirenze.com.br\/home\/?page_id=22"},"modified":"2025-11-14T15:54:03","modified_gmt":"2025-11-14T15:54:03","slug":"contact","status":"publish","type":"page","link":"https:\/\/torofirenze.com\/home\/contact\/","title":{"rendered":"Contact"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"22\" class=\"elementor elementor-22\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-55d05cf e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-id=\"55d05cf\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-767b9e9 elementor-widget elementor-widget-html\" data-id=\"767b9e9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- TORO FIRENZE \u2013 CONTACT \/ SUPPORT WIDGET -->\r\n<div id=\"tf-contact\" class=\"tf-contact-wrap\"\r\n     data-rest=\"https:\/\/torofirenze.com\/home\/wp-json\/tf\/v1\/contact\"\r\n     aria-live=\"polite\">\r\n\r\n  <div class=\"tf-contact-card\">\r\n    <h2 class=\"tf-contact-title\">Contact Toro Firenze Support<\/h2>\r\n    <p class=\"tf-contact-sub\">\r\n      Send us a message and our team will contact you as soon as possible.\r\n    <\/p>\r\n\r\n    <form id=\"tf-contact-form\" class=\"tf-contact-form\" novalidate>\r\n      <div class=\"tf-row\">\r\n        <label>\r\n          <span>Name *<\/span>\r\n          <input type=\"text\" name=\"name\" required autocomplete=\"name\" placeholder=\"Your full name\">\r\n        <\/label>\r\n      <\/div>\r\n\r\n      <div class=\"tf-row\">\r\n        <label>\r\n          <span>Email *<\/span>\r\n          <input type=\"email\"\r\n                 name=\"email\"\r\n                 id=\"tf-contact-email\"\r\n                 required\r\n                 autocomplete=\"email\"\r\n                 inputmode=\"email\"\r\n                 placeholder=\"your@email.com\">\r\n        <\/label>\r\n        <div class=\"tf-hint\" id=\"tf-contact-email-hint\" style=\"display:none;\">\r\n          Please enter a valid email address.\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"tf-row tf-row-half\">\r\n        <label>\r\n          <span>WhatsApp (optional)<\/span>\r\n          <input type=\"tel\" name=\"whatsapp\" autocomplete=\"tel\" placeholder=\"+39 333 000 0000\">\r\n        <\/label>\r\n        <label>\r\n          <span>Order \/ Reference (optional)<\/span>\r\n          <input type=\"text\" name=\"order_id\" placeholder=\"Order number or reference\">\r\n        <\/label>\r\n      <\/div>\r\n\r\n      <div class=\"tf-row\">\r\n        <label>\r\n          <span>Subject (optional)<\/span>\r\n          <input type=\"text\" name=\"subject\" placeholder=\"Subject of your message\">\r\n        <\/label>\r\n      <\/div>\r\n\r\n      <div class=\"tf-row\">\r\n        <label>\r\n          <span>Message *<\/span>\r\n          <textarea name=\"message\" rows=\"5\" required placeholder=\"Tell us how we can help you\"><\/textarea>\r\n        <\/label>\r\n      <\/div>\r\n\r\n      <div class=\"tf-contact-consent\">\r\n        By submitting this form you agree to be contacted by Toro Firenze about your request.\r\n      <\/div>\r\n\r\n      <button type=\"submit\" class=\"tf-btn tf-btn-primary\" id=\"tf-contact-send\" disabled>\r\n        Send message\r\n      <\/button>\r\n\r\n      <div class=\"tf-msg\" id=\"tf-contact-msg\" role=\"status\" aria-live=\"polite\"><\/div>\r\n    <\/form>\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n  .tf-contact-wrap{\r\n    --gold:#d4af37; --gold-2:#f5d66b; --bg:#050505; --fg:#ffffff; --muted:#cfcfcf;\r\n    max-width:720px; margin:0 auto; padding:8px;\r\n  }\r\n  .tf-contact-card{\r\n    padding: clamp(20px, 3vw, 32px);\r\n    border-radius:20px;\r\n    background:\r\n      radial-gradient(1200px 200px at 50% -10%, rgba(212,175,55,.15), transparent 60%),\r\n      radial-gradient(900px 160px at 50% 120%, rgba(212,175,55,.10), transparent 60%),\r\n      #050505;\r\n    border:1px solid #222;\r\n    box-shadow:0 20px 60px rgba(0,0,0,.55);\r\n    color:var(--fg);\r\n  }\r\n  .tf-contact-title{\r\n    margin:0 0 6px;\r\n    font-size: clamp(22px, 3vw, 32px);\r\n    font-weight:700;\r\n    letter-spacing:-.01em;\r\n  }\r\n  .tf-contact-sub{\r\n    margin:0 0 18px;\r\n    font-size:14px;\r\n    color:var(--muted);\r\n  }\r\n\r\n  .tf-contact-form{\r\n    display:grid;\r\n    gap:12px;\r\n  }\r\n  .tf-row{\r\n    width:100%;\r\n  }\r\n  .tf-row-half{\r\n    display:grid;\r\n    grid-template-columns:1fr 1fr;\r\n    gap:10px;\r\n  }\r\n  @media (max-width:600px){\r\n    .tf-row-half{ grid-template-columns:1fr; }\r\n  }\r\n\r\n  .tf-row label{\r\n    display:block;\r\n    text-align:left;\r\n    font-size:12px;\r\n    letter-spacing:.08em;\r\n    text-transform:uppercase;\r\n    color:#bdbdbd;\r\n  }\r\n  .tf-row label span{\r\n    display:block;\r\n    margin-bottom:4px;\r\n  }\r\n  .tf-row input,\r\n  .tf-row textarea{\r\n    width:100%;\r\n    padding:10px 12px;\r\n    border-radius:12px;\r\n    border:1px solid rgba(255,255,255,.14);\r\n    background:rgba(10,10,10,.9);\r\n    color:#fff;\r\n    outline:none;\r\n    font-size:13px;\r\n    font-family:inherit;\r\n    resize:vertical;\r\n  }\r\n  .tf-row input::placeholder,\r\n  .tf-row textarea::placeholder{\r\n    color:#777;\r\n  }\r\n  .tf-row input:focus,\r\n  .tf-row textarea:focus{\r\n    border-color:var(--gold);\r\n    box-shadow:0 0 0 1px rgba(212,175,55,.4);\r\n  }\r\n\r\n  .tf-contact-consent{\r\n    font-size:11px;\r\n    color:#bdbdbd;\r\n    text-align:left;\r\n    margin-top:4px;\r\n  }\r\n\r\n  .tf-btn{\r\n    display:inline-flex;\r\n    align-items:center;\r\n    justify-content:center;\r\n    border-radius:999px;\r\n    padding:11px 20px;\r\n    font-weight:600;\r\n    text-decoration:none;\r\n    transition:transform .15s ease, box-shadow .15s ease, background .15s ease;\r\n    border:1px solid rgba(255,255,255,.16);\r\n    color:#111;\r\n    cursor:pointer;\r\n    margin-top:6px;\r\n  }\r\n  .tf-btn-primary{\r\n    background:linear-gradient(90deg,var(--gold),var(--gold-2));\r\n    border-color:transparent;\r\n    box-shadow:0 10px 24px rgba(212,175,55,.32);\r\n  }\r\n  .tf-btn:hover{\r\n    transform:translateY(-1px);\r\n  }\r\n  button[disabled]{\r\n    opacity:.6;\r\n    cursor:not-allowed;\r\n    box-shadow:none;\r\n  }\r\n\r\n  .tf-msg{\r\n    margin-top:6px;\r\n    font-size:13px;\r\n    color:#cfcfcf;\r\n  }\r\n  .tf-msg.ok{\r\n    color:#83f28f;\r\n  }\r\n  .tf-msg.err{\r\n    color:#ff9d9d;\r\n  }\r\n\r\n  \/* valida\u00e7\u00e3o e-mail *\/\r\n  .tf-row input.invalid{\r\n    border-color:#ff7a7a;\r\n    box-shadow:0 0 0 3px rgba(255,122,122,.15);\r\n  }\r\n  .tf-hint{\r\n    font-size:11px;\r\n    color:#ff9d9d;\r\n    margin-top:2px;\r\n    text-align:left;\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n(function(){\r\n  'use strict';\r\n\r\n  var root = document.getElementById('tf-contact') || document.querySelector('.tf-contact-wrap');\r\n  if (!root) return;\r\n\r\n  var form      = root.querySelector('#tf-contact-form');\r\n  var msg       = root.querySelector('#tf-contact-msg');\r\n  var btn       = root.querySelector('#tf-contact-send');\r\n  var emailInput = root.querySelector('#tf-contact-email');\r\n  var emailHint  = root.querySelector('#tf-contact-email-hint');\r\n  var nameInput  = root.querySelector('input[name=\"name\"]');\r\n  var messageInput = root.querySelector('textarea[name=\"message\"]');\r\n\r\n  function isValidEmail(v){\r\n    return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/.test(String(v || '').trim());\r\n  }\r\n\r\n  function updateButtonState(){\r\n    if (!btn || !nameInput || !emailInput || !messageInput) return;\r\n    var nameOk    = (nameInput.value || '').trim().length > 0;\r\n    var emailOk   = isValidEmail(emailInput.value);\r\n    var msgOk     = (messageInput.value || '').trim().length > 5;\r\n\r\n    btn.disabled = !(nameOk && emailOk && msgOk);\r\n\r\n    if (emailInput.value.length === 0){\r\n      emailInput.classList.remove('invalid');\r\n      if (emailHint) emailHint.style.display = 'none';\r\n    } else if (!emailOk){\r\n      emailInput.classList.add('invalid');\r\n      if (emailHint) emailHint.style.display = 'block';\r\n    } else {\r\n      emailInput.classList.remove('invalid');\r\n      if (emailHint) emailHint.style.display = 'none';\r\n    }\r\n  }\r\n\r\n  if (nameInput)    nameInput.addEventListener('input', updateButtonState);\r\n  if (emailInput)   emailInput.addEventListener('input', updateButtonState);\r\n  if (messageInput) messageInput.addEventListener('input', updateButtonState);\r\n  updateButtonState();\r\n\r\n  function postURLEnc(url, payload){\r\n    return fetch(url, {\r\n      method: 'POST',\r\n      headers: {\r\n        'Content-Type':'application\/x-www-form-urlencoded;charset=UTF-8',\r\n        'Accept':'application\/json'\r\n      },\r\n      body: new URLSearchParams(payload),\r\n      credentials:'same-origin'\r\n    }).then(function(res){\r\n      return res.text().then(function(text){\r\n        var data = null;\r\n        try{ data = JSON.parse(text); }catch(e){}\r\n        return { ok: res.ok && data && data.success, raw:text, data:data };\r\n      });\r\n    });\r\n  }\r\n\r\n  if (form && btn && msg){\r\n    form.addEventListener('submit', function(e){\r\n      e.preventDefault();\r\n      if (btn.disabled) return;\r\n\r\n      msg.className = 'tf-msg';\r\n      msg.textContent = '';\r\n      btn.disabled = true;\r\n      btn.textContent = 'Sending...';\r\n\r\n      var fd = new FormData(form);\r\n\r\n      var payload = {\r\n        name:     (fd.get('name') || '').toString().trim(),\r\n        email:    fd.get('email')    || '',\r\n        whatsapp: fd.get('whatsapp') || '',\r\n        order_id: fd.get('order_id') || '',\r\n        subject:  fd.get('subject')  || '',\r\n        message:  fd.get('message')  || '',\r\n      };\r\n\r\n      var origin = window.location.origin;\r\n      var restCandidates = [\r\n        root.getAttribute('data-rest') || (origin + '\/home\/wp-json\/tf\/v1\/contact'),\r\n        origin + '\/wp-json\/tf\/v1\/contact'\r\n      ];\r\n\r\n      (async function(){\r\n        try{\r\n          for (var i=0; i<restCandidates.length; i++){\r\n            var url = restCandidates[i];\r\n            var r = await postURLEnc(url, payload);\r\n            if (r.ok){\r\n              msg.className = 'tf-msg ok';\r\n              msg.textContent = 'Your message has been sent. We\u2019ve emailed you a confirmation.';\r\n              form.reset();\r\n              updateButtonState();\r\n              btn.textContent = 'Send message';\r\n              btn.disabled = false;\r\n              return;\r\n            }\r\n          }\r\n          throw new Error('No endpoint accepted the request');\r\n        }catch(err){\r\n          console.error('Contact error:', err);\r\n          msg.className = 'tf-msg err';\r\n          msg.textContent = 'Couldn\u2019t send your message right now. Please try again in a moment.';\r\n        }finally{\r\n          if (msg.className !== 'tf-msg ok'){\r\n            btn.textContent = 'Send message';\r\n            updateButtonState();\r\n          }\r\n        }\r\n      })();\r\n    });\r\n  }\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Contact Toro Firenze Support Send us a message and our team will contact you as soon as possible. Name * Email * Please enter a valid email address. WhatsApp (optional) Order \/ Reference (optional) Subject (optional) Message * By submitting this form you agree to be contacted by Toro Firenze about your request. Send message<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-22","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/torofirenze.com\/home\/wp-json\/wp\/v2\/pages\/22","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/torofirenze.com\/home\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/torofirenze.com\/home\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/torofirenze.com\/home\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/torofirenze.com\/home\/wp-json\/wp\/v2\/comments?post=22"}],"version-history":[{"count":43,"href":"https:\/\/torofirenze.com\/home\/wp-json\/wp\/v2\/pages\/22\/revisions"}],"predecessor-version":[{"id":7342,"href":"https:\/\/torofirenze.com\/home\/wp-json\/wp\/v2\/pages\/22\/revisions\/7342"}],"wp:attachment":[{"href":"https:\/\/torofirenze.com\/home\/wp-json\/wp\/v2\/media?parent=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}