<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Programas de Intercambio al Exterior</title>
<!-- Fuentes de Google -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@700;800&family=Open+Sans:wght@400;600&display=swap" rel="stylesheet">
<style>
/* Variables de colores */
:root {
--naranja: #f6a00c;
--azul-claro: #1fa0db;
--azul-oscuro: #2a2a5b;
--fondo: #f9fbff;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: 'Open Sans', sans-serif;
background-color: var(--fondo);
color: #333;
line-height: 1.6;
overflow-x: hidden;
position: relative;
}
h1, h2, h3 {
font-family: 'Montserrat', sans-serif;
color: var(--azul-oscuro);
}
/* Cabecera y Logo */
header {
text-align: center;
padding: 40px 20px 20px;
position: relative;
z-index: 10;
}
.logo {
max-width: 250px;
height: auto;
}
/* Contenedor principal */
.container {
max-width: 900px;
margin: 0 auto;
padding: 20px;
position: relative;
z-index: 10;
}
/* Sección de contenido */
.content-section {
background: white;
padding: 40px;
border-radius: 20px;
box-shadow: 0 10px 30px rgba(42, 42, 91, 0.08);
margin-bottom: 40px;
}
h1 {
font-size: 2.2rem;
text-align: center;
margin-bottom: 20px;
text-transform: uppercase;
color: var(--azul-oscuro);
}
p {
font-size: 1.1rem;
margin-bottom: 15px;
text-align: justify;
}
.program-types {
margin-top: 30px;
background-color: rgba(31, 160, 219, 0.05);
padding: 25px;
border-left: 5px solid var(--azul-claro);
border-radius: 0 10px 10px 0;
}
.program-types h3 {
margin-bottom: 15px;
color: var(--azul-claro);
}
.program-types ul {
list-style-type: none;
}
.program-types li {
position: relative;
padding-left: 25px;
margin-bottom: 10px;
font-weight: 600;
}
.program-types li::before {
content: "✈";
position: absolute;
left: 0;
color: var(--naranja);
}
/* Formulario */
.form-section {
background: var(--azul-oscuro);
padding: 40px;
border-radius: 20px;
color: white;
box-shadow: 0 10px 30px rgba(0,0,0,0.15);
}
.form-section h2 {
color: white;
text-align: center;
margin-bottom: 25px;
}
.grid-form {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
.form-group {
display: flex;
flex-direction: column;
}
label {
font-weight: 600;
margin-bottom: 5px;
font-size: 0.9rem;
}
input {
padding: 12px 15px;
border: none;
border-radius: 8px;
font-family: 'Open Sans', sans-serif;
font-size: 1rem;
outline: none;
}
input:focus {
box-shadow: 0 0 0 3px var(--azul-claro);
}
.btn-submit {
grid-column: span 2;
background-color: var(--naranja);
color: white;
font-family: 'Montserrat', sans-serif;
font-size: 1.1rem;
font-weight: 700;
border: none;
padding: 15px;
border-radius: 8px;
cursor: pointer;
transition: background-color 0.3s, transform 0.2s;
margin-top: 10px;
}
.btn-submit:hover {
background-color: #d98a08;
transform: translateY(-2px);
}
.mensaje-estado {
grid-column: span 2;
text-align: center;
font-weight: bold;
padding: 10px;
border-radius: 5px;
display: none; /* Oculto por defecto */
}
.exito { background: #d4edda; color: #155724; }
.error { background: #f8d7da; color: #721c24; }
/* Elementos Decorativos (Inspirados en tu imagen) */
.decor {
position: absolute;
z-index: 1;
opacity: 0.8;
}
/* Mancha azul claro */
.decor-blob {
top: -50px;
right: -50px;
width: 300px;
height: 300px;
background-color: var(--azul-claro);
border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
animation: morph 8s ease-in-out infinite;
}
/* Anillo azul oscuro */
.decor-ring {
bottom: 20%;
left: -80px;
width: 150px;
height: 150px;
border: 35px solid var(--azul-oscuro);
border-radius: 50%;
}
/* Asterisco Naranja */
.decor-asterisk {
top: 40%;
right: 5%;
font-size: 120px;
color: var(--naranja);
font-family: sans-serif;
line-height: 1;
transform: rotate(15deg);
}
@keyframes morph {
0%, 100% { border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%; }
34% { border-radius: 70% 30% 50% 50% / 30% 30% 70% 70%; }
67% { border-radius: 100% 60% 60% 100% / 100% 100% 60% 60%; }
}
/* Responsivo para móviles */
@media (max-width: 768px) {
.grid-form {
grid-template-columns: 1fr;
}
.btn-submit, .mensaje-estado {
grid-column: span 1;
}
h1 { font-size: 1.8rem; }
.decor-blob { width: 150px; height: 150px; }
}
</style>
</head>
<body>
<!-- Elementos decorativos de fondo abstractos -->
<div class="decor decor-blob"></div>
<div class="decor decor-ring"></div>
<div class="decor decor-asterisk">✱</div>
<header>
<img src="https://ilearning.education/wp-content/uploads/2024/09/Logos-Uland-17.png" alt="Logotipo Uland" class="logo">
</header>
<main class="container">
<!-- Sección de Textos -->
<section class="content-section">
<h1>Programas de Intercambio al Exterior</h1>
<p>Hacer un campamento en el exterior es dar un gran salto en tu futuro académico y profesional, podrás practicar tus habilidades de expresión oral, gramática, comprensión auditiva, lectura y escritura y aprende vocabulario nuevo.</p>
<p>Los estudiantes podrán realizar variedad de actividades dentro de la ciudad elegida.</p>
<div class="program-types">
<h3>Tipo de programas:</h3>
<ul>
<li>Programas de inglés de 2 a 4 semanas</li>
<li>Clases de inglés nivel ESL A2 +.</li>
<li>Inmersión a programa curricular con chicos de su edad.</li>
<li>Actividades extracurricular con chicos de su edad.</li>
<li>Salida cultural los sábados a diferentes destinos.</li>
</ul>
</div>
</section>
<!-- Sección de Formulario -->
<section class="form-section">
<h2>¡Reserva tu cupo o pide más información!</h2>
<form id="formularioRegistro">
<div class="grid-form">
<div class="form-group">
<label for="nombre">Nombre(s)</label>
<input type="text" id="nombre" name="nombre" required placeholder="Ej. Juan">
</div>
<div class="form-group">
<label for="apellido">Apellido(s)</label>
<input type="text" id="apellido" name="apellido" required placeholder="Ej. Pérez">
</div>
<div class="form-group">
<label for="telefono">Teléfono</label>
<input type="tel" id="telefono" name="telefono" required placeholder="Ej. +57 300 0000000">
</div>
<div class="form-group">
<label for="correo">Correo Electrónico</label>
<input type="email" id="correo" name="correo" required placeholder="[email protected]">
</div>
<div class="form-group">
<label for="colegio">Colegio</label>
<input type="text" id="colegio" name="colegio" required placeholder="Nombre de la institución">
</div>
<div class="form-group">
<label for="curso">Curso actual</label>
<input type="text" id="curso" name="curso" required placeholder="Ej. 10mo, 11vo, etc.">
</div>
<button type="submit" class="btn-submit" id="btnEnviar">Enviar mis datos</button>
<div id="mensajeEstado" class="mensaje-estado"></div>
</div>
</form>
</section>
</main>
<!-- Script de conexión con Google Sheets -->
<script>
const scriptURL = 'https://script.google.com/macros/s/AKfycbykluA_sZxUuV-DoCyycHDP-iDk1EFaYE6E-EWBeQACNdvxdhUc1JMLrtqIvWply9pM/exec';
const form = document.getElementById('formularioRegistro');
const btnEnviar = document.getElementById('btnEnviar');
const mensajeEstado = document.getElementById('mensajeEstado');
form.addEventListener('submit', e => {
e.preventDefault();
btnEnviar.textContent = 'Enviando información...';
btnEnviar.disabled = true;
mensajeEstado.style.display = 'none';
// El parámetro mode: 'no-cors' soluciona el bloqueo local y de servidores
fetch(scriptURL, { method: 'POST', body: new FormData(form), mode: 'no-cors'})
.then(response => {
mensajeEstado.textContent = '¡Tus datos fueron enviados correctamente! Pronto nos contactaremos contigo.';
mensajeEstado.className = 'mensaje-estado exito';
mensajeEstado.style.display = 'block';
form.reset();
btnEnviar.textContent = 'Enviar mis datos';
btnEnviar.disabled = false;
})
.catch(error => {
console.error('Error!', error.message);
mensajeEstado.textContent = 'Hubo un error al enviar los datos. Por favor, intenta nuevamente.';
mensajeEstado.className = 'mensaje-estado error';
mensajeEstado.style.display = 'block';
btnEnviar.textContent = 'Enviar mis datos';
btnEnviar.disabled = false;
});
});
</script>
</body>
</html>