Files
gloria_app/mockup/index.html
Marco Gallegos 5f651f2a9d ajuste de docu
2026-01-29 15:41:24 -06:00

382 lines
14 KiB
HTML

<!doctype html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" type="image/png" href="./src/logo.png" />
<title>Gloria Niño - Sanación Integral</title>
<!-- Google Fonts -->
<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=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Fira+Code:wght@300;400;500;600&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<!-- Header -->
<header class="header">
<div class="container header-inner">
<a href="#" class="logo">
<img src="./src/logo.svg" alt="Gloria Niño" style="height: 50px; width: auto;">
</a>
<!-- Hamburger Menu Button -->
<button class="menu-toggle" id="menuToggle" aria-label="Abrir menú">
<span></span>
<span></span>
<span></span>
</button>
<nav class="nav" id="navMenu">
<ul>
<li><a href="#inicio">Inicio</a></li>
<li><a href="#sobre-mi">Sobre mí</a></li>
<li><a href="#servicios">Servicios</a></li>
<li><a href="#testimonios">Testimonios</a></li>
<li><a href="#contacto">Contacto</a></li>
</ul>
</nav>
<a
href="#agendar"
class="btn btn-primary header-cta"
style="padding: 0.5rem 1.5rem; font-size: 0.9rem"
>Agendar</a
>
</div>
</header>
<script>
// Mobile Menu Toggle
const menuToggle = document.getElementById('menuToggle');
const navMenu = document.getElementById('navMenu');
menuToggle.addEventListener('click', () => {
menuToggle.classList.toggle('active');
navMenu.classList.toggle('active');
});
// Close menu when clicking a link
document.querySelectorAll('.nav a').forEach(link => {
link.addEventListener('click', () => {
menuToggle.classList.remove('active');
navMenu.classList.remove('active');
});
});
// Scroll Animation Observer
const observerOptions = {
root: null,
rootMargin: '0px',
threshold: 0.1
};
const observer = new IntersectionObserver((entries, observer) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
}, observerOptions);
document.addEventListener('DOMContentLoaded', () => {
// Fade In Animation
const sections = document.querySelectorAll('.fade-in');
sections.forEach(section => {
observer.observe(section);
});
// Carousel Logic
const track = document.querySelector('.carousel-track');
const slides = Array.from(track.children);
const nextButton = document.querySelector('.carousel-btn.next');
const prevButton = document.querySelector('.carousel-btn.prev');
const dotsNav = document.querySelector('.carousel-nav');
const dots = Array.from(dotsNav.children);
const slideWidth = slides[0].getBoundingClientRect().width;
// Arrange the slides next to one another
const setSlidePosition = (slide, index) => {
slide.style.left = slideWidth * index + 'px';
};
slides.forEach(setSlidePosition);
const moveToSlide = (track, currentSlide, targetSlide) => {
track.style.transform = 'translateX(-' + targetSlide.style.left + ')';
currentSlide.classList.remove('current-slide');
targetSlide.classList.add('current-slide');
}
const updateDots = (currentDot, targetDot) => {
currentDot.classList.remove('current-slide');
targetDot.classList.add('current-slide');
}
// Click Left
prevButton.addEventListener('click', e => {
const currentSlide = track.querySelector('.current-slide');
const prevSlide = currentSlide.previousElementSibling;
const currentDot = dotsNav.querySelector('.current-slide');
const prevDot = currentDot.previousElementSibling;
if (prevSlide) {
moveToSlide(track, currentSlide, prevSlide);
updateDots(currentDot, prevDot);
}
});
// Click Right
nextButton.addEventListener('click', e => {
const currentSlide = track.querySelector('.current-slide');
const nextSlide = currentSlide.nextElementSibling;
const currentDot = dotsNav.querySelector('.current-slide');
const nextDot = currentDot.nextElementSibling;
if (nextSlide) {
moveToSlide(track, currentSlide, nextSlide);
updateDots(currentDot, nextDot);
}
});
// Click Nav Indicators
dotsNav.addEventListener('click', e => {
const targetDot = e.target.closest('button');
if (!targetDot) return;
const currentSlide = track.querySelector('.current-slide');
const currentDot = dotsNav.querySelector('.current-slide');
const targetIndex = dots.findIndex(dot => dot === targetDot);
const targetSlide = slides[targetIndex];
moveToSlide(track, currentSlide, targetSlide);
updateDots(currentDot, targetDot);
});
// Auto Rotate
setInterval(() => {
const currentSlide = track.querySelector('.current-slide');
const nextSlide = currentSlide.nextElementSibling || slides[0];
const currentDot = dotsNav.querySelector('.current-slide');
const nextDot = currentDot.nextElementSibling || dots[0];
moveToSlide(track, currentSlide, nextSlide);
updateDots(currentDot, nextDot);
}, 5000);
});
</script>
<!-- Hero Section -->
<section class="hero" id="inicio">
<div class="container hero-grid">
<div class="hero-content">
<h1>Gloria Niño<br><span style="font-size: 0.6em; font-weight: 400; display: block; margin-top: 0.2rem;">Terapeuta Emocional</span></h1>
<p>
Te acompaño a sanar tus heridas emocionales y transformar tu vida a través de un proceso terapéutico profundo, cálido y profesional.
</p>
<div class="hero-actions">
<a href="#agendar" class="btn btn-primary">Agenda tu Cita</a>
<a href="#servicios" class="btn btn-secondary">Ver Servicios</a>
</div>
</div>
<div class="hero-image">
<img
src="./src/gloria.png"
alt="Gloria Niño - Terapeuta Emocional"
/>
</div>
</div>
</section>
<!-- Sobre Mí (Breve) -->
<section class="section-about fade-in" id="sobre-mi">
<div class="container">
<div class="section-title">
<h2>Sobre Mí</h2>
</div>
<div class="about-content">
<div class="about-image">
<img
src="./src/gloria_2.png"
alt="Gloria Niño en sesión"
>
</div>
<div class="about-text">
<p>
Soy Gloria Niño, terapeuta emocional con amplia experiencia en el acompañamiento de procesos de duelo, ansiedad y crecimiento personal. Creo firmemente que la sanación comienza cuando nos permitimos sentir y validar nuestras emociones en un espacio seguro.
</p>
<div class="about-actions">
<a href="#servicios" class="btn btn-primary">Ver Servicios</a>
<a href="#contacto" class="btn btn-secondary">Contactar</a>
</div>
</div>
</div>
</div>
</section>
<!-- Services -->
<section class="section-services fade-in" id="servicios">
<div class="container">
<div class="section-title">
<h2>Mis Servicios</h2>
<p>Enfoques adaptados a tus necesidades actuales.</p>
</div>
<div class="services-grid">
<!-- Service 1 -->
<div class="service-card">
<img src="./src/services/icons/t_ind.png" alt="Terapia Individual" style="width: 80px; height: 80px; margin-bottom: 1.5rem;">
<h3>Terapia Individual</h3>
<p>
Sesiones uno a uno enfocadas en ansiedad, depresión, trauma o
crecimiento personal.
</p>
</div>
<!-- Service 2 -->
<div class="service-card">
<img src="./src/services/icons/t_pareja.png" alt="Terapia de Pareja" style="width: 80px; height: 80px; margin-bottom: 1.5rem;">
<h3>Terapia de Pareja</h3>
<p>
Espacios para mejorar la comunicación, resolver conflictos y
reconectar.
</p>
</div>
<!-- Service 3 -->
<div class="service-card">
<img src="./src/services/icons/t_fam.png" alt="Talleres y Grupos" style="width: 80px; height: 80px; margin-bottom: 1.5rem;">
<h3>Talleres y Grupos</h3>
<p>Experiencias colectivas de sanación y aprendizaje emocional.</p>
</div>
</div>
</div>
</section>
<!-- Testimonials -->
<section class="section-testimonials fade-in" id="testimonios">
<div class="container">
<div class="section-title">
<h2>Lo que dicen mis pacientes</h2>
</div>
<div class="carousel-container">
<button class="carousel-btn prev" aria-label="Anterior">&#10094;</button>
<div class="carousel-track-container">
<ul class="carousel-track">
<!-- Testimonio 1 -->
<li class="carousel-slide current-slide">
<div class="testimonial-card">
<p class="testimonial-quote">
"Gloria me ayudó a encontrar claridad en un momento muy difícil de mi vida. Su calidez y profesionalismo son inigualables. Me sentí escuchada y comprendida desde la primera sesión."
</p>
<p class="testimonial-author">— María G.</p>
</div>
</li>
<!-- Testimonio 2 -->
<li class="carousel-slide">
<div class="testimonial-card">
<p class="testimonial-quote">
"Gracias a la terapia con Gloria pude sanar heridas de mi infancia que afectaban mis relaciones actuales. Es una terapeuta excepcionalmente empática."
</p>
<p class="testimonial-author">— Carlos R.</p>
</div>
</li>
<!-- Testimonio 3 -->
<li class="carousel-slide">
<div class="testimonial-card">
<p class="testimonial-quote">
"El enfoque integral que utiliza es muy efectivo. No solo hablamos, sino que me dio herramientas prácticas para manejar mi ansiedad en el día a día."
</p>
<p class="testimonial-author">— Ana Sofía L.</p>
</div>
</li>
</ul>
</div>
<button class="carousel-btn next" aria-label="Siguiente">&#10095;</button>
</div>
<div class="carousel-nav">
<button class="carousel-indicator current-slide"></button>
<button class="carousel-indicator"></button>
<button class="carousel-indicator"></button>
</div>
</div>
</section>
<!-- Contact Form Section -->
<section class="section-contact fade-in" id="contacto-form" style="background-color: white;">
<div class="container">
<div class="section-title">
<h2>Contáctame</h2>
<p>¿Tienes alguna duda? Escríbeme y te responderé lo antes posible.</p>
</div>
<div class="contact-form-container">
<form class="contact-form" onsubmit="event.preventDefault(); alert('Mensaje enviado (simulado)');">
<div class="form-group">
<label for="name">Nombre</label>
<input type="text" id="name" name="name" placeholder="Tu nombre" required>
</div>
<div class="form-group">
<label for="phone">Teléfono / WhatsApp</label>
<input type="tel" id="phone" name="phone" placeholder="Tu número de contacto" required>
</div>
<div class="form-group">
<label for="message">Mensaje</label>
<textarea id="message" name="message" rows="4" placeholder="¿En qué puedo ayudarte?" required></textarea>
</div>
<button type="submit" class="btn btn-primary" style="width: 100%;">Enviar Mensaje</button>
</form>
<div class="contact-info-cards">
<div class="info-card">
<h3>Ubicación</h3>
<p>Consultorio Virtual & Presencial<br>Ciudad de México</p>
</div>
<div class="info-card">
<h3>Horarios</h3>
<p>Lunes a Viernes<br>9:00 AM - 7:00 PM</p>
</div>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="footer" id="contacto">
<div class="container">
<div class="footer-grid">
<div class="footer-col">
<h4>Gloria Niño</h4>
<p>Terapeuta Emocional.</p>
</div>
<div class="footer-col">
<h4>Enlaces</h4>
<ul>
<li><a href="#inicio">Inicio</a></li>
<li><a href="#servicios">Servicios</a></li>
<li><a href="#privacidad">Política de Privacidad</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Contacto</h4>
<ul>
<li>
<a href="mailto:contacto@glorianino.com">contacto@glorianino.com</a>
</li>
<li><a href="tel:+525512345678">+52 55 1234 5678</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>&copy; 2026 Gloria App. Todos los derechos reservados.</p>
</div>
</div>
</footer>
</body>
</html>