Tul xxx Tul
User / IP
:
216.73.216.227
Host / Server
:
45.84.207.204 / aircan.me
System
:
Linux lt-bnk-web1726.main-hosting.eu 5.14.0-611.36.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 3 11:23:52 EST 2026 x86_64
Command
|
Upload
|
Create
Mass Deface
|
Jumping
|
Symlink
|
Reverse Shell
Ping
|
Port Scan
|
DNS Lookup
|
Whois
|
Header
|
cURL
:
/
home
/
u931257429
/
domains
/
aircan.me
/
public_html
/
hoteluribia
/
Viewing: index.html
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Hotel Piscina Uribia</title> <meta name="description" content="Hotel Piscina Uribia: piscina y restaurante familiar con experiencias inolvidables. Reserva entradas, servicios y disfruta del mejor ambiente." /> <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=Inter:wght@400;500;600;700&family=Poppins:wght@500;600;700&display=swap" rel="stylesheet"> <script src="https://cdn.tailwindcss.com?plugins=forms,typography,aspect-ratio"></script> <script> tailwind.config = { theme: { extend: { colors: { primary: '#0284c7', accent: '#06b6d4', }, fontFamily: { sans: ['Inter', 'system-ui', 'sans-serif'], display: ['Poppins', 'Inter', 'sans-serif'], }, }, }, }; </script> <link rel="stylesheet" href="./site_publico/css/tailwind.css"> <link rel="stylesheet" href="https://unpkg.com/aos@2.3.4/dist/aos.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" crossorigin="anonymous" referrerpolicy="no-referrer" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.4/css/lightbox.min.css" referrerpolicy="no-referrer" /> <link rel="icon" type="image/png" href="./public/img/logo.png" /> <!-- PWA Meta Tags --> <link rel="manifest" href="./manifest.json"> <meta name="theme-color" content="#0284c7"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="default"> <meta name="apple-mobile-web-app-title" content="Hotel Piscina Uribia"> <link rel="apple-touch-icon" href="./public/img/logo.png"> </head> <body class="antialiased bg-slate-50 text-slate-900"> <!-- Navbar --> <header id="navbar" class="fixed inset-x-0 top-0 z-40 transition-all"> <div class="relative mx-auto flex max-w-7xl items-center justify-between px-6 py-4 text-slate-900 overflow-hidden"> <a href="#inicio" class="flex items-center gap-3 text-xl font-semibold tracking-tight text-slate-900 group" data-branding-link> <span class="relative inline-flex h-12 w-12 items-center justify-center rounded-full bg-gradient-to-br from-cyan-50 to-blue-50 shadow-lg ring-2 ring-cyan-100"> <img src="./public/img/logo.png" alt="Hotel Piscina Uribia" class="h-10 w-10 rounded-full object-cover" data-branding-logo> <span class="absolute -top-1 -right-1 h-3 w-3 rounded-full bg-gradient-to-r from-cyan-500 to-blue-500 animate-pulse ring-2 ring-white"></span> </span> <span class="hidden sm:inline" data-branding-name>Hotel Piscina Uribia</span> </a> <nav class="hidden items-center gap-7 text-sm font-medium lg:flex"> <a href="#inicio" class="nav-link">Inicio</a> <a href="#piscina" class="nav-link">Piscina</a> <a href="#hotel" class="nav-link">Hotel</a> <a href="#servicios" class="nav-link">Servicios</a> <a href="./restaurante.html" class="nav-link menu-highlight"> <i class="fa-solid fa-utensils"></i> <span>Menú</span> </a> <a href="#galeria" class="nav-link">Galería</a> <a href="#ubicacion" class="nav-link">Ubicación</a> <a href="#contacto" class="nav-link">Contacto</a> </nav> <div class="hidden lg:flex items-center gap-3"> <a href="./login" class="btn-primary rounded-full px-6 py-3 text-sm font-semibold text-white shadow-lg shadow-cyan-500/25 flex items-center gap-2"> <i class="fa-solid fa-arrow-right-to-bracket"></i> <span>Iniciar sesión</span> </a> </div> <button id="mobile-toggle" class="rounded-full bg-slate-50 border-2 border-slate-200 px-4 py-2.5 text-base font-semibold text-slate-900 lg:hidden hover:bg-slate-100"> <i class="fa-solid fa-bars"></i> </button> </div> <div id="mobile-menu" class="lg:hidden fixed inset-0 z-50 hidden"> <div class="absolute inset-0 bg-black/30"></div> <nav class="relative space-y-2 bg-white px-6 py-6 text-slate-700 shadow-2xl border-t border-slate-100 h-full overflow-y-auto overscroll-contain pb-8"> <a href="#inicio" class="block px-4 py-3 text-base font-semibold rounded-xl hover:bg-cyan-50 hover:text-cyan-700 transition-colors"><i class="fa-solid fa-home w-5"></i> Inicio</a> <a href="#piscina" class="block px-4 py-3 text-base font-semibold rounded-xl hover:bg-cyan-50 hover:text-cyan-700 transition-colors"><i class="fa-solid fa-water w-5"></i> Piscina</a> <a href="#hotel" class="block px-4 py-3 text-base font-semibold rounded-xl hover:bg-cyan-50 hover:text-cyan-700 transition-colors"><i class="fa-solid fa-bed w-5"></i> Hotel</a> <a href="#servicios" class="block px-4 py-3 text-base font-semibold rounded-xl hover:bg-cyan-50 hover:text-cyan-700 transition-colors"><i class="fa-solid fa-spa w-5"></i> Servicios</a> <a href="./restaurante.html" class="menu-highlight-mobile block px-4 py-4 text-base font-semibold rounded-2xl"><i class="fa-solid fa-utensils w-5"></i> <span class="pl-1">Menú</span> </a> <a href="#galeria" class="block px-4 py-3 text-base font-semibold rounded-xl hover:bg-cyan-50 hover:text-cyan-700 transition-colors"><i class="fa-solid fa-images w-5"></i> Galería</a> <a href="#ubicacion" class="block px-4 py-3 text-base font-semibold rounded-xl hover:bg-cyan-50 hover:text-cyan-700 transition-colors"><i class="fa-solid fa-map-marker-alt w-5"></i> Ubicación</a> <a href="#contacto" class="block px-4 py-3 text-base font-semibold rounded-xl hover:bg-cyan-50 hover:text-cyan-700 transition-colors"><i class="fa-solid fa-envelope w-5"></i> Contacto</a> <a href="./login" class="btn-primary mt-3 flex items-center justify-center gap-2 rounded-full px-5 py-3 text-center font-semibold text-white shadow-lg shadow-cyan-500/25"> <i class="fa-solid fa-arrow-right-to-bracket"></i> Iniciar sesión </a> <button id="pwa-install-btn-mobile" class="hidden mt-2 w-full items-center justify-center gap-2 rounded-xl bg-gradient-to-r from-purple-500 to-pink-500 px-4 py-2.5 text-center text-sm font-semibold text-white shadow-md hover:from-purple-600 hover:to-pink-600 transition-all active:scale-95"> <i class="fa-solid fa-download text-sm"></i> <span>Instalar App</span> </button> </nav> </div> </header> <main id="inicio"> <!-- Hero --> <section class="relative overflow-hidden min-h-screen flex items-center"> <!-- Video Background --> <div class="absolute inset-0"> <video id="hero-video" autoplay loop muted playsinline preload="auto" class="h-full w-full object-cover" poster="https://images.unsplash.com/photo-1540544661899-ff98d6e05a1b?auto=format&fit=crop&w=1600&q=80"> <source src="./public/img/hero.mp4" type="video/mp4"> Su navegador no soporta el video. </video> <div class="hero-overlay absolute inset-0 bg-gradient-to-b from-black/60 via-black/40 to-black/70"> </div> </div> <div class="relative mx-auto flex max-w-6xl flex-col items-center gap-6 px-4 py-20 sm:px-6 sm:py-28 text-white z-10" data-aos="fade-up" data-aos-duration="1000"> <h1 class="text-center text-3xl font-bold leading-tight sm:text-4xl md:text-5xl lg:text-6xl"> Complejo Hotelero con Restaurante y Piscina </h1> <div class="grid w-full gap-3 sm:gap-4 rounded-2xl sm:rounded-3xl border border-white/20 bg-white/10 p-4 sm:p-6 backdrop-blur-xl md:grid-cols-3"> <div class="flex items-center gap-2 sm:gap-3"> <div class="rounded-full bg-white/20 p-2.5 sm:p-3 text-xl sm:text-2xl"><i class="fa-solid fa-person-swimming"></i></div> <div> <p class="text-xs sm:text-sm text-cyan-100">Ocupación actual</p> <p id="hero-aforo" class="text-base sm:text-xl font-semibold">0 personas</p> <div class="mt-1 h-1.5 w-24 sm:w-32 rounded-full bg-white/20"> <div id="hero-aforo-bar" class="h-1.5 rounded-full bg-emerald-300" style="width:0%"> </div> </div> </div> </div> <div class="flex items-center gap-2 sm:gap-3"> <div class="rounded-full bg-white/20 p-2.5 sm:p-3 text-xl sm:text-2xl"><i class="fa-solid fa-bed"></i></div> <div> <p class="text-xs sm:text-sm text-cyan-100">Hotel</p> <p id="hero-habitaciones" class="text-base sm:text-xl font-semibold">0 habitaciones</p> </div> </div> <div class="flex items-center gap-2 sm:gap-3"> <div class="rounded-full bg-white/20 p-2.5 sm:p-3 text-xl sm:text-2xl"><i class="fa-solid fa-burger"></i></div> <div> <p class="text-xs sm:text-sm text-cyan-100">Restaurante</p> <p class="text-base sm:text-xl font-semibold">Carta gourmet</p> </div> </div> </div> </div> </section> <!-- Piscina --> <section id="piscina" class="relative overflow-hidden py-16 sm:py-20 md:py-24"> <div class="absolute inset-0 -z-10 bg-gradient-to-b from-white via-slate-50 to-white"></div> <div class="mx-auto max-w-6xl px-4 sm:px-6"> <div class="mx-auto mb-10 sm:mb-14 max-w-3xl text-center" data-aos="fade-up"> <h2 class="section-title mt-4 text-2xl sm:text-3xl font-bold md:text-4xl">Entradas y pases diarios </h2> <p class="mt-4 text-base sm:text-lg text-slate-600"> Precios actualizados en tiempo real. Elige la opción ideal para tu visita y reserva al instante. </p> </div> <div data-aos="fade-up" data-aos-delay="150"> <div class="blur-card rounded-3xl p-8 shadow-soft ring-1 ring-cyan-100 bg-gradient-to-br from-white/80 to-cyan-50/60"> <div class="flex items-center justify-between gap-3"> <div> <h3 class="text-xl font-semibold text-cyan-700">Tarifas diarias</h3> </div> <span class="hidden h-12 w-12 items-center justify-center rounded-full bg-gradient-to-br from-cyan-500 to-blue-600 text-white shadow-lg lg:flex"> <i class="fa-solid fa-ticket"></i> </span> </div> <div id="tarifas-grid" class="mt-6 grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3"> <div class="animate-pulse rounded-2xl border border-cyan-100/40 bg-white/20 p-6 backdrop-blur"> <div class="flex items-center justify-between"> <span class="h-3 w-24 rounded-full bg-white/40"></span> <span class="h-3 w-14 rounded-full bg-white/30"></span> </div> <span class="mt-4 block h-2 w-full rounded-full bg-white/20"></span> </div> </div> </div> </div> </div> </section> <!-- Servicios --> <section id="servicios" class="bg-white py-16 sm:py-20 md:py-24"> <div class="mx-auto max-w-6xl px-4 sm:px-6"> <div class="mx-auto mb-10 sm:mb-14 max-w-3xl text-center" data-aos="fade-up"> <span class="badge-soft">Experiencias</span> <h2 class="section-title mt-4 text-2xl sm:text-3xl font-bold md:text-4xl">Servicios exclusivos</h2> <p class="mt-4 text-base sm:text-lg text-slate-600"> Descubre paquetes personalizados para consentirte: masajes, terapias acuáticas, jacuzzis privados y más, disponibles todo el año. </p> </div> <div id="servicios-grid" class="grid grid-cols-1 gap-6 md:grid-cols-2 xl:grid-cols-3" data-aos="fade-up" data-aos-delay="150"> <div class="animate-pulse rounded-3xl border border-cyan-100/40 bg-cyan-50/40 p-6 backdrop-blur"> <div class="flex items-center justify-between"> <span class="h-3 w-24 rounded-full bg-cyan-200/70"></span> <span class="h-3 w-14 rounded-full bg-cyan-200/50"></span> </div> <span class="mt-4 block h-2 w-full rounded-full bg-cyan-100/60"></span> </div> </div> </div> </section> <!-- Hotel Section --> <section id="hotel" class="bg-gradient-to-b from-white via-blue-50/30 to-white py-16 sm:py-20 md:py-24"> <div class="mx-auto max-w-6xl px-4 sm:px-6"> <div class="mx-auto mb-10 sm:mb-14 max-w-3xl text-center" data-aos="fade-up"> <h2 class="section-title mt-4 text-2xl sm:text-3xl font-bold md:text-4xl bg-gradient-to-r from-blue-600 to-cyan-600 bg-clip-text text-transparent"> Nuestras Habitaciones</h2> <p class="mt-4 text-base sm:text-lg text-slate-600"> Descansa en habitaciones diseñadas para tu confort, con vistas espectaculares y todas las comodidades que necesitas. </p> </div> <!-- Habitaciones Grid --> <div id="habitaciones-grid" class="grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3" data-aos="fade-up" data-aos-delay="150"> <!-- Las habitaciones se cargarán dinámicamente aquí --> <div class="animate-pulse"> <div class="rounded-3xl overflow-hidden bg-white shadow-xl"> <div class="h-56 bg-gradient-to-br from-slate-200 to-slate-300"></div> <div class="p-6 space-y-3"> <div class="h-4 bg-slate-200 rounded w-3/4"></div> <div class="h-3 bg-slate-200 rounded w-full"></div> <div class="h-3 bg-slate-200 rounded w-2/3"></div> </div> </div> </div> </div> <!-- Servicios del Hotel --> <div class="mt-16 sm:mt-20"> <div class="mx-auto mb-10 max-w-3xl text-center" data-aos="fade-up"> <h3 class="text-xl sm:text-2xl font-bold text-slate-800">Servicios del Hotel</h3> <p class="mt-3 text-base text-slate-600"> Complementa tu estadía con servicios exclusivos diseñados para tu bienestar. </p> </div> <div id="hotel-servicios-grid" class="grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4" data-aos="fade-up" data-aos-delay="200"> <!-- Los servicios se cargarán dinámicamente aquí --> </div> </div> </div> </section> <div id="restaurante"></div> <!-- Galería --> <section id="galeria" class="bg-white py-16 sm:py-20 md:py-24"> <div class="mx-auto max-w-6xl px-4 sm:px-6"> <div class="mx-auto mb-10 sm:mb-14 max-w-3xl text-center" data-aos="fade-up"> <h2 class="section-title mt-4 text-2xl sm:text-3xl font-bold md:text-4xl">Galería</h2> <p class="mt-4 text-base sm:text-lg text-slate-600"> Recorré nuestras instalaciones y visualiza el ambiente perfecto para tu próxima visita. </p> </div> <div id="galeria-grid" class="gallery-grid grid grid-cols-2 gap-3 sm:gap-4 md:grid-cols-3" data-aos="fade-up" data-aos-delay="150"></div> </div> </section> <!-- Ubicación --> <section id="ubicacion" class="relative overflow-hidden py-16 sm:py-20 md:py-24"> <div class="absolute inset-0 -z-10 bg-gradient-to-b from-white via-slate-50 to-white"></div> <div class="mx-auto max-w-6xl px-4 sm:px-6"> <div class="grid gap-8 sm:gap-12 lg:grid-cols-2" data-aos="fade-up"> <div> <span class="badge-soft">Visítanos</span> <h2 class="mt-4 text-2xl sm:text-3xl font-bold md:text-4xl">Ubicación y horarios</h2> <p class="mt-4 text-base sm:text-lg text-slate-600" data-branding-direccion> Uribia, La Guajira, Colombia. </p> <dl class="mt-6 space-y-4 text-slate-700"> <!-- <div> <dt class="text-sm font-semibold uppercase tracking-wide text-cyan-600">Horario</dt> <dd id="ubicacion-horario" class="mt-1">Lunes a Domingo · 08:00 - 22:00</dd> </div> --> <div> <dt class="text-sm font-semibold uppercase tracking-wide text-cyan-600">Teléfono</dt> <dd class="mt-1" data-branding-telefono>+50586590252</dd> </div> <div class="flex gap-4 pt-2 text-2xl text-cyan-600"> <a href="#" target="_blank" aria-label="Facebook" class="hidden" data-branding-facebook><i class="fa-brands fa-facebook"></i></a> <a href="#" target="_blank" aria-label="Instagram" class="hidden" data-branding-instagram><i class="fa-brands fa-instagram"></i></a> <a href="#" target="_blank" aria-label="TikTok" class="hidden" data-branding-tiktok><i class="fa-brands fa-tiktok"></i></a> <a href="https://wa.me/50586590252" target="_blank" aria-label="WhatsApp" data-branding-whatsapp-link><i class="fa-brands fa-whatsapp"></i></a> </div> </dl> </div> <div id="google-maps-container" class="overflow-hidden rounded-2xl sm:rounded-3xl shadow-soft" data-aos="fade-up" data-aos-delay="150"> <iframe class="h-64 sm:h-80 lg:h-96 w-full" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3902.92383181818!2d-72.2642647!3d11.7134373!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x8e8b010000000000%3A0x0!2zMTHCsDQyJzQ4LjQiTiA3MsKwMTUnNTEuNCJX!5e0!3m2!1ses!2sco!4v1710000000000!5m2!1ses!2sco" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe> </div> </div> </div> </section> <!-- Contacto --> <section id="contacto" class="bg-white py-16 sm:py-20 md:py-24"> <div class="mx-auto max-w-6xl px-3 sm:px-6"> <div class="rounded-3xl bg-gradient-to-b from-white via-cyan-50/60 to-white p-4 sm:p-6 lg:p-10 shadow-soft ring-1 ring-cyan-100 overflow-hidden" data-aos="fade-up"> <div class="flex flex-col gap-8 lg:gap-10 w-full"> <div class="space-y-4 text-center lg:text-left"> <p class="inline-flex items-center gap-2 rounded-full bg-white/70 px-4 py-1 text-xs font-semibold tracking-[0.2em] text-cyan-600 uppercase"> Contacto</p> <h2 class="text-2xl sm:text-3xl font-bold md:text-4xl">Escríbenos y reserva tu experiencia </h2> <p class="text-base sm:text-lg text-slate-600"> Nuestro equipo responderá en minutos. Coordinamos cumpleaños, eventos corporativos, planes románticos y cualquier experiencia personalizada. </p> </div> <div class="grid grid-cols-1 gap-8 md:gap-10 lg:grid-cols-2"> <div class="space-y-6"> <div class="grid gap-4 sm:gap-5 md:grid-cols-2"> <div class="rounded-2xl border border-white/60 bg-white/90 p-4 shadow-sm"> <p class="text-xs uppercase tracking-wide text-slate-500">Tiempo de respuesta </p> <p class="mt-1 text-2xl font-semibold text-cyan-700">< 15 min</p> <p class="mt-1 text-sm text-slate-500">WhatsApp o llamada</p> </div> <div class="rounded-2xl border border-white/60 bg-white/90 p-4 shadow-sm"> <p class="text-xs uppercase tracking-wide text-slate-500">Eventos atendidos</p> <p class="mt-1 text-2xl font-semibold text-cyan-700">+120</p> <p class="mt-1 text-sm text-slate-500">Cumpleaños, bodas y corporativos</p> </div> </div> <div class="space-y-4 rounded-2xl border border-white/70 bg-white/90 p-4 sm:p-6 shadow-lg"> <div class="flex flex-wrap items-start gap-3"> <span class="rounded-2xl bg-cyan-100/80 p-3 text-cyan-600"><i class="fa-solid fa-phone"></i></span> <div class="flex-1"> <p class="text-sm text-slate-500">Central telefónica</p> <p class="text-lg font-semibold text-slate-800" data-branding-telefono> +50586590252</p> </div> </div> <div class="flex flex-wrap items-start gap-3"> <span class="rounded-2xl bg-cyan-100/80 p-3 text-cyan-600"><i class="fa-solid fa-location-dot"></i></span> <div class="flex-1"> <p class="text-sm text-slate-500">Dirección</p> <p class="text-lg font-semibold text-slate-800" data-branding-direccion> Uribia, La Guajira, Colombia.</p> </div> </div> <!-- <div class="flex flex-wrap items-start gap-3"> <span class="rounded-2xl bg-cyan-100/80 p-3 text-cyan-600"><i class="fa-solid fa-envelope"></i></span> <div class="flex-1 min-w-0"> <p class="text-sm text-slate-500">Correo</p> <p class="text-lg font-semibold text-slate-800 break-all sm:break-normal" style="word-break: break-word;">reservas@hotelmacchupicchuroatan.com</p> </div> </div> --> </div> </div> <form id="contact-form" class="rounded-2xl bg-white/95 p-4 sm:p-6 md:p-8 shadow-xl ring-1 ring-cyan-100 w-full" data-aos="fade-up" data-aos-delay="150"> <div class="grid gap-4 sm:gap-5 md:grid-cols-2"> <div> <label for="nombre" class="text-sm font-semibold text-slate-600">Nombre</label> <input id="nombre" name="nombre" type="text" placeholder="Tu nombre" required class="mt-2 w-full rounded-xl border border-slate-200 bg-white px-4 py-3 text-slate-900 focus:border-cyan-400 focus:outline-none focus:ring-2 focus:ring-cyan-100"> </div> <div> <label for="telefono" class="text-sm font-semibold text-slate-600">Teléfono</label> <input id="telefono" name="telefono" type="tel" placeholder="Tu número" required class="mt-2 w-full rounded-xl border border-slate-200 bg-white px-4 py-3 text-slate-900 focus:border-cyan-400 focus:outline-none focus:ring-2 focus:ring-cyan-100"> </div> </div> <div class="mt-5"> <label for="tipo" class="text-sm font-semibold text-slate-600">Tipo de reserva</label> <select id="tipo" name="tipo" required class="mt-2 w-full rounded-xl border border-slate-200 bg-white px-4 py-3 text-slate-900 focus:border-cyan-400 focus:outline-none focus:ring-2 focus:ring-cyan-100"> <option value="Entrada">Entrada Piscina</option> <option value="Hotel">Habitación Hotel</option> <option value="Servicio">Servicio</option> <option value="Restaurante">Restaurante</option> <option value="Otro">Otro</option> </select> </div> <div class="mt-5"> <label for="mensaje" class="text-sm font-semibold text-slate-600">Mensaje</label> <textarea id="mensaje" name="mensaje" rows="4" required placeholder="Cuéntanos qué necesitas" class="mt-2 w-full rounded-xl border border-slate-200 bg-white px-4 py-3 text-slate-900 focus:border-cyan-400 focus:outline-none focus:ring-2 focus:ring-cyan-100"></textarea> </div> <div class="mt-4 sm:mt-6 flex flex-col gap-3 sm:flex-row"> <a id="whatsapp-link" href="https://wa.me/50586590252" target="_blank" class="flex-1 rounded-full border-2 border-cyan-300 px-4 py-3 text-center text-xs sm:text-sm font-semibold uppercase tracking-wide text-cyan-700 hover:bg-cyan-50 transition-colors touch-manipulation" data-branding-whatsapp-link>Reservar por WhatsApp</a> </div> <p id="form-feedback" class="mt-4 hidden rounded-xl bg-emerald-100 px-4 py-3 text-sm font-semibold text-emerald-700"> ¡Mensaje enviado! Te contactaremos en breve.</p> </form> </div> </div> </div> </div> </section> </main> <!-- Floating WhatsApp Button --> <a href="https://wa.me/50586590252?text=Hola%2C%20me%20gustar%C3%ADa%20hacer%20una%20reserva" target="_blank" class="fixed bottom-6 right-6 z-50 flex h-14 w-14 items-center justify-center rounded-full bg-gradient-to-br from-green-500 to-green-600 text-white shadow-2xl shadow-green-500/40 transition-all hover:scale-110 hover:shadow-green-500/60 touch-manipulation lg:hidden" aria-label="Contactar por WhatsApp" data-branding-whatsapp-link> <i class="fa-brands fa-whatsapp text-3xl"></i> <span class="absolute -top-1 -right-1 h-4 w-4 rounded-full bg-red-500 animate-ping"></span> <span class="absolute -top-1 -right-1 h-4 w-4 rounded-full bg-red-500"></span> </a> <!-- Footer --> <footer class="bg-white py-8 sm:py-10"> <div class="mx-auto max-w-5xl px-4 sm:px-6"> <div class="rounded-2xl sm:rounded-3xl bg-gradient-to-r from-cyan-50 via-white to-blue-50 p-6 sm:p-8 text-center shadow-soft ring-1 ring-cyan-100/60"> <button id="pwa-install-btn-desktop" class="hidden mb-4 mx-auto items-center gap-2 rounded-full bg-gradient-to-r from-purple-500 to-pink-500 px-6 py-3 text-sm font-semibold text-white shadow-lg hover:from-purple-600 hover:to-pink-600 transition-all touch-manipulation"> <i class="fa-solid fa-download"></i> <span>Instalar Aplicación</span> </button> <p class="text-sm text-slate-600"> © 2025 <span data-branding-name>Hotel Piscina Uribia</span>. Creado por <a href="https://aircan.me/" target="_blank" rel="noopener" class="font-semibold text-cyan-600 underline decoration-cyan-400 underline-offset-4 transition-colors hover:text-cyan-700">Aircan</a>. Todos los derechos reservados. </p> </div> </div> </footer> <script src="https://unpkg.com/aos@2.3.4/dist/aos.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.4/js/lightbox-plus-jquery.min.js" referrerpolicy="no-referrer"></script> <script> (function () { const endpoint = './site_publico/api/branding.php'; const applyBranding = (payload) => { if (!payload || payload.ok === false) return; const nombre = (payload.nombre || '').toString().trim(); const logoUrl = (payload.logo_url || '').toString().trim(); const telefono = (payload.telefono || '').toString().trim(); const direccion = (payload.direccion || '').toString().trim(); const whatsappNumber = (payload.whatsapp_number || '').toString().trim(); const facebook = (payload.facebook || '').toString().trim(); const instagram = (payload.instagram || '').toString().trim(); const tiktok = (payload.tiktok || '').toString().trim(); const mapsIframe = (payload.maps_iframe || '').toString().trim(); if (nombre) { window.__BRANDING_NAME = nombre; window.__BRANDING = { nombre, logoUrl }; document.title = `${nombre} | Sitio oficial`; const appleTitle = document.querySelector('meta[name="apple-mobile-web-app-title"]'); if (appleTitle) appleTitle.setAttribute('content', nombre); document.querySelectorAll('[data-branding-name]').forEach((el) => (el.textContent = nombre)); } if (logoUrl) { document.querySelectorAll('link[rel="icon"]').forEach((el) => el.setAttribute('href', logoUrl)); const appleIcon = document.querySelector('link[rel="apple-touch-icon"]'); if (appleIcon) appleIcon.setAttribute('href', logoUrl); document.querySelectorAll('[data-branding-logo]').forEach((img) => { img.setAttribute('src', logoUrl); if (nombre) img.setAttribute('alt', nombre); }); } if (direccion) { document.querySelectorAll('[data-branding-direccion]').forEach((el) => (el.textContent = direccion)); } if (telefono) { document.querySelectorAll('[data-branding-telefono]').forEach((el) => { const nodeName = (el.nodeName || '').toLowerCase(); if (nodeName === 'a') { el.textContent = telefono; el.setAttribute('href', `tel:${telefono.replace(/\s+/g, '')}`); } else { el.textContent = telefono; } }); } if (whatsappNumber) { window.__WHATSAPP_NUMBER = whatsappNumber; document.querySelectorAll('[data-branding-whatsapp-link]').forEach((a) => { const href = a.getAttribute('href') || ''; const hasText = href.includes('?text='); const text = hasText ? href.split('?text=')[1] : ''; const nextHref = text ? `https://wa.me/${whatsappNumber}?text=${text}` : `https://wa.me/${whatsappNumber}`; a.setAttribute('href', nextHref); }); } // Social Media if (facebook) { document.querySelectorAll('[data-branding-facebook]').forEach(el => { el.setAttribute('href', facebook); el.classList.remove('hidden'); }); } if (instagram) { document.querySelectorAll('[data-branding-instagram]').forEach(el => { el.setAttribute('href', instagram); el.classList.remove('hidden'); }); } if (tiktok) { document.querySelectorAll('[data-branding-tiktok]').forEach(el => { el.setAttribute('href', tiktok); el.classList.remove('hidden'); }); } // Maps Iframe if (mapsIframe) { const container = document.getElementById('google-maps-container'); if (container) { if (mapsIframe.trim().startsWith('<iframe')) { // Si es un iframe completo, usar lógica previa const parser = new DOMParser(); const doc = parser.parseFromString(mapsIframe, 'text/html'); const iframe = doc.querySelector('iframe'); if (iframe) { iframe.className = 'h-64 sm:h-80 lg:h-96 w-full'; iframe.setAttribute('loading', 'lazy'); container.innerHTML = ''; container.appendChild(iframe); } } else if (mapsIframe.trim().startsWith('http')) { // Si es un link, intentar convertirlo o usarlo como src let src = mapsIframe.trim(); // Si es un link de compartir normal (no embed), intentar extraer coordenadas if (!src.includes('embed')) { const coordsMatch = src.match(/@(-?\d+\.\d+),(-?\d+\.\d+)/); if (coordsMatch) { src = `https://www.google.com/maps?q=${coordsMatch[1]},${coordsMatch[2]}&z=15&output=embed`; } else { // Fallback: usar el link con output=embed const joinChar = src.includes('?') ? '&' : '?'; src = `${src}${joinChar}output=embed`; } } const iframe = document.createElement('iframe'); iframe.src = src; iframe.className = 'h-64 sm:h-80 lg:h-96 w-full'; iframe.setAttribute('loading', 'lazy'); iframe.setAttribute('referrerpolicy', 'no-referrer-when-downgrade'); container.innerHTML = ''; container.appendChild(iframe); } } } }; fetch(endpoint, { cache: 'no-store' }) .then((r) => (r.ok ? r.json() : null)) .then(applyBranding) .catch(() => { }); })(); </script> <script src="./site_publico/js/app.js?v=services-2" type="module"></script> </body> </html>
Coded With 💗 by
0x6ick