feat: sitio hostingdelsur.net v2 con Astro 5, Tailwind v4, soporte light/dark, i18n es/en, Keystatic CMS, reCAPTCHA v3

- Arista Pro Alternate Regular self-hosted (font corporativa)
- Toggle theme con CSS variables y @custom-variant dark
- 6 servicios en 3 categorías (Hosting & Correo / Diseño & Contenido / Infraestructura)
- 3 planes destacados (Básico USD 59, Institucional USD 129, E-commerce USD 219)
- Datacenters en 4 países (Canadá, USA, Alemania, Uruguay) sin ciudades en el sitio
- Sede operativa en Maldonado, Uruguay
- i18n es/en con contenido duplicado en Keystatic
- Endpoint PHP para form de contacto con PHPMailer + reCAPTCHA v3 + honeypot + rate limit
- WorldMap con animación SVG de los 4 países
- 29 páginas generadas, 0 JS por default
- Sitemap auto + robots.txt
- JSON-LD Organization + ProfessionalService con areaServed
This commit is contained in:
Mauri
2026-06-08 22:32:23 -03:00
commit 393f6b0dc3
73 changed files with 15399 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
---
import type { TranslationKey } from '@/i18n/ui';
interface Props {
t: (key: TranslationKey) => string;
whatsappUrl: string;
}
const { t, whatsappUrl } = Astro.props;
---
<section class="relative overflow-hidden pt-24 pb-32 md:pt-32 md:pb-40">
<div class="absolute inset-0 particle-grid" aria-hidden="true"></div>
<div class="absolute inset-0" style="background: linear-gradient(180deg, transparent 0%, var(--hds-bg) 100%);" aria-hidden="true"></div>
<div class="relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="max-w-4xl">
<div class="eyebrow mb-7">
<span>Premium hosting · Desde 2000</span>
</div>
<h1 class="font-display leading-[0.98] mb-8" style="font-size: clamp(2.75rem, 7vw, 5.5rem); color: var(--hds-fg); letter-spacing: -0.025em; font-weight: 400;">
Alojamiento en la nube<br/>
que te <span style="color: var(--color-hds-naranja); font-style: italic;">conoce</span>.
</h1>
<p class="text-lg md:text-xl leading-relaxed mb-10 max-w-2xl" style="color: var(--hds-fg-soft);">
{t('hero.body')}
</p>
<div class="flex flex-col sm:flex-row gap-4 mb-14">
<a href="#planes" class="btn-primary">
{t('hero.ctaPrimary')}
</a>
<a href={whatsappUrl} target="_blank" rel="noopener noreferrer" class="btn-secondary">
{t('hero.ctaSecondary')}
</a>
</div>
<div class="flex flex-wrap items-center gap-x-8 gap-y-3 text-sm" style="color: var(--hds-fg-muted);">
<span class="flex items-center gap-2">
<span style="color: var(--color-hds-naranja);">●</span>
26+ años
</span>
<span class="flex items-center gap-2">
<span style="color: var(--color-hds-naranja);">●</span>
Uptime 99.9%
</span>
<span class="flex items-center gap-2">
<span style="color: var(--color-hds-naranja);">●</span>
{t('diff.support.title')}
</span>
<span class="flex items-center gap-2">
<span style="color: var(--color-hds-naranja);">●</span>
Maldonado, Uruguay
</span>
</div>
</div>
</div>
</section>