Explore Brasil con GOL

Nuevo destino, nueva clase
Embárquese hacia Brasil
en una nueva experiencia
con GOL

Fundada en 2001, GOL es una de las principales aerolíneas brasileñas y acaba de actualizar no solo su mapa de destinos, sino también la flota de aviones que te lleva a ellos: vuela directamente desde Nueva York, Orlando, Lisboa y París hacia la ciudad de Río de Janeiro y explora más de 60 otras ciudades en Brasil, además de más de 10 destinos por América..

Ahora puedes tener una experiencia de viaje aún más completa con nuestra nueva clase Business INSIGNIA by GOL, donde la comodidad se encuentra con la alta gastronomía en una aeronave de doble pasillo, diseñada para cruzar océanos en un viaje acogedor.

INSIGNIA by GOL, nuestra nueva clase Business
Pensada para quienes valoran comodidad y privacidad en una experiencia de vuelo aún más
completa. Explora todas las ventajas de viajar con GOL:

Nueva aeronave en la flota
Aún más espacio para
aumentar su comodidad

Conoce el Airbus A330neo, nuestra nueva aeronave diseñada para ofrecer un viaje inteligente y cómodo en vuelos intercontinentales. Al volar en la clase Business INSIGNIA by GOL, disfrutas de un asiento 100% reclinable en posición horizontal, además de más espacio y privacidad para tus pertenencias. Todo esto mientras aprovechas entretenimiento individual y saboreas una experiencia de alta gastronomía.

Aeronave moderna con tecnología y comodidad
Entretenimiento con sistema de pantalla táctil en cada asiento
Asientos más espaciosos y totalmente reclinables
Encuentre tu boleto ahora
Busque y reserve tu viaje a Brasil con toda la comodidad y practicidad de los servicios de GOL.
/* DESIGN ORIGINAL GOL */ .form-gol-lp-novos-destinos { background-color: #fff; font-family: "GolSansDisplay", sans-serif; border: 1px solid #e0e0e0; border-radius: 24px; padding: 40px; max-width: 1000px; margin: 20px auto; box-sizing: border-box; } .form-gol-lp-novos-destinos h2 { margin-bottom: 15px; font-weight: normal; font-size: 28px; color: #100D0A; line-height: 1.2; margin-top: 0; } .form-gol-lp-novos-destinos .description { font-size: 14px; color: #444; margin-bottom: 30px; } /* Layout Base */ .form-gol-lp-novos-destinos .row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; margin: 0; align-items: start; } /* Layout Alternativo para 3 colunas quando não tiver CPF */ .form-gol-lp-novos-destinos .row.three-columns { grid-template-columns: repeat(3, 1fr); } .form-gol-lp-novos-destinos .input-wrapper { position: relative; width: 100%; } .form-gol-lp-novos-destinos input[type="text"], .form-gol-lp-novos-destinos input[type="email"], .form-gol-lp-novos-destinos input[type="hidden"] { width: 100%; padding: 15px; border: 1px solid transparent; border-radius: 12px; background: #F3F0ED; font-size: 14px; color: #100D0A; box-sizing: border-box; transition: all 0.2s ease; height: 55px; } .form-gol-lp-novos-destinos input:disabled { cursor: not-allowed; opacity: 0.6; background: #e0e0e0; } .form-gol-lp-novos-destinos input:focus { outline: none; border: 1px solid #ccc; background: #ebe7e4;} .form-gol-lp-novos-destinos .checkbox-group { display: flex; align-items: center; gap: 12px; margin: 25px 0; } .form-gol-lp-novos-destinos .checkbox-group input { width: 22px; height: 22px; accent-color: #ff7020; cursor: pointer; } .form-gol-lp-novos-destinos .checkbox-group label { font-size: 14px; color: #100D0A; } .form-gol-lp-novos-destinos button { padding: 15px 45px; border: none; border-radius: 30px; font-size: 16px; cursor: not-allowed; background-color: #f0eeec; color: #aaa; transition: all 0.2s; } .form-gol-lp-novos-destinos button.enabled { background-color: #ff7020; color: #100D0A; cursor: pointer; } .form-gol-lp-novos-destinos .feedback-msg { font-size: 14px; font-weight: 500; display: none; margin-left: 15px; vertical-align: middle; } /* Responsividade atualizada para cobrir o grid de 3 e 4 colunas */ @media (max-width: 900px) { .form-gol-lp-novos-destinos .row, .form-gol-lp-novos-destinos .row.three-columns { grid-template-columns: 1fr 1fr; } } @media (max-width: 600px) { .form-gol-lp-novos-destinos .row, .form-gol-lp-novos-destinos .row.three-columns { grid-template-columns: 1fr; } } </head> <body> <div class="form-gol-lp-novos-destinos"> <h2>Hay más destinos en camino. ¡Recibe un correo electrónico cuando salgan!</h2> <p class="description">Rellena el formulario para recibir ofertas y saber cuándo comienza la venta de boletos a destinos especiales en Brasil y en todo el mundo.</p> <form id="promoForm"> <input type="hidden" id="pageUrl" name="pageUrl" value="" /> <input type="hidden" id="dataCadastro" name="dataCadastro" value="" /> <div class="row" id="formRow"> <div class="input-wrapper"><input type="text" id="nome" placeholder="Nombre" required /></div> <div class="input-wrapper"><input type="email" id="email" placeholder="Correo electrónico" required /></div> <div class="input-wrapper"><input type="text" id="dataNascimento" placeholder="Fecha de nacimiento" maxlength="10" required /></div> <div class="input-wrapper" id="cpfWrapper"><input type="text" id="cpf" placeholder="CPF" maxlength="14" required /></div> </div> <div class="checkbox-group"> <input type="checkbox" id="consentimento" required /> <label for="consentimento">Acepto recibir novedades y ofertas en mi correo electrónico.</label> </div> <div class="submit-area"> <button type="submit" id="submitBtn" disabled>Enviar</button> <span id="feedbackMsg" class="feedback-msg"></span> </div> </form> </div> <script> document.addEventListener('DOMContentLoaded', () => { const form = document.getElementById('promoForm'); const nomeInput = document.getElementById('nome'); const emailInput = document.getElementById('email'); const dataInput = document.getElementById('dataNascimento'); const cpfInput = document.getElementById('cpf'); const cpfWrapper = document.getElementById('cpfWrapper'); const checkbox = document.getElementById('consentimento'); const submitBtn = document.getElementById('submitBtn'); const feedbackMsg = document.getElementById('feedbackMsg'); const formRow = document.getElementById('formRow'); const pageUrlInput = document.getElementById('pageUrl'); const dataCadastroInput = document.getElementById('dataCadastro'); const currentUrl = window.location.href; pageUrlInput.value = currentUrl; const urlLower = currentUrl.toLowerCase(); const isEstrangeiro = urlLower.includes('en') || urlLower.includes('es') || urlLower.includes('fr'); if (isEstrangeiro) { cpfWrapper.style.display = 'none'; cpfInput.removeAttribute('required'); formRow.classList.add('three-columns'); } const ehMaiorDe18 = (dataStr) => { if (dataStr.length < 10) return false; const [dia, mes, ano] = dataStr.split('/').map(Number); const dataNasc = new Date(ano, mes - 1, dia); const hoje = new Date(); let idade = hoje.getFullYear() - dataNasc.getFullYear(); const m = hoje.getMonth() - dataNasc.getMonth(); if (m < 0 || (m === 0 && hoje.getDate() < dataNasc.getDate())) { idade--; } return idade >= 18; }; const validaFormulario = () => { const emailOk = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(emailInput.value.trim()); const dataValida = ehMaiorDe18(dataInput.value); const cpfOk = isEstrangeiro ? true : cpfInput.value.length === 14; const isValido = nomeInput.value.trim().length > 2 && emailOk && dataValida && cpfOk && checkbox.checked; if (!nomeInput.disabled) { submitBtn.disabled = !isValido; submitBtn.classList.toggle('enabled', isValido); } }; cpfInput.addEventListener('input', e => { let v = e.target.value.replace(/\D/g, '').slice(0, 11); if (v.length > 9) v = v.replace(/(\d{3})(\d{3})(\d{3})(\d{0,2})/, (_, a, b, c, d) => `${a}.${b}.${c}${d ? '-' + d : ''}`); e.target.value = v; validaFormulario(); }); dataInput.addEventListener('input', e => { let v = e.target.value.replace(/\D/g, '').slice(0, 8); if (v.length > 2 && v.length <= 4) v = v.replace(/(\d{2})(\d{0,2})/, "$1/$2"); else if (v.length > 4) v = v.replace(/(\d{2})(\d{2})(\d{0,4})/, "$1/$2/$3"); e.target.value = v; validaFormulario(); }); [nomeInput, emailInput, checkbox].forEach(el => el.addEventListener('input', validaFormulario)); form.addEventListener('submit', async function (e) { e.preventDefault(); submitBtn.disabled = true; submitBtn.innerText = 'Enviando...'; feedbackMsg.style.display = 'none'; // Captura a data exata do preenchimento const dataHoraAtual = new Date().toISOString(); dataCadastroInput.value = dataHoraAtual; const DATA = { nome: nomeInput.value.trim(), email: emailInput.value.trim(), dataNascimento: dataInput.value.split('/').reverse().join('-'), cpf: isEstrangeiro ? '' : cpfInput.value, pageUrl: pageUrlInput.value, dataCadastro: dataHoraAtual, consentimento: checkbox.checked ? 'Sim' : 'Não' }; const siteGroupId = Liferay.ThemeDisplay.getSiteGroupId(); const authToken = Liferay.authToken; const urlEndpoint = `/o/c/novosdestinoses/scopes/${siteGroupId}?p_auth=${encodeURIComponent(authToken)}`; const HEADERS = { 'Accept': 'application/json', 'Accept-Language': Liferay.ThemeDisplay.getBCP47LanguageId(), 'Content-Type': 'application/json', 'x-csrf-token': authToken }; try { const res = await fetch(urlEndpoint, { method: 'POST', credentials: 'include', headers: HEADERS, body: JSON.stringify(DATA) }); feedbackMsg.style.display = 'inline'; if (res.ok) { feedbackMsg.innerText = '¡Correo electrónico registrado con éxito!'; feedbackMsg.style.color = '#1a7f37'; submitBtn.innerText = 'Enviado'; [nomeInput, emailInput, dataInput, cpfInput, checkbox].forEach(input => { input.value = ''; input.checked = false; input.disabled = true; }); submitBtn.disabled = true; submitBtn.classList.remove('enabled'); return; } if (res.status === 409) { feedbackMsg.innerText = 'Correo electrónico o CPF ya registrado.'; } else { feedbackMsg.innerText = `Error ${res.status}. Inténtalo de nuevo.`; } feedbackMsg.style.color = '#d93025'; submitBtn.disabled = false; submitBtn.innerText = 'Enviar'; } catch (err) { feedbackMsg.style.display = 'inline'; feedbackMsg.innerText = 'Error de conexión.'; feedbackMsg.style.color = '#d93025'; submitBtn.disabled = false; submitBtn.innerText = 'Enviar'; } }); }); </script> </body> </html>