169 lines
6.3 KiB
Plaintext
169 lines
6.3 KiB
Plaintext
<!DOCTYPE html>
|
|
<html lang="es" class="scroll-smooth">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>{{ title or site.name }}</title>
|
|
<meta name="description" content="{{ description or site.description }}" />
|
|
<link rel="canonical" href="{{ site.url }}/" />
|
|
<link rel="icon" type="image/svg+xml" href="/assets/favicon.svg" />
|
|
<link rel="icon" type="image/png" sizes="512x512" href="/assets/isotipo-y-organica-preview.png" />
|
|
<link rel="apple-touch-icon" href="/assets/isotipo-y-organica-preview.png" />
|
|
|
|
<!-- Open Graph -->
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:site_name" content="{{ site.name }}" />
|
|
<meta property="og:url" content="{{ site.url }}/" />
|
|
<meta property="og:title" content="{{ title or site.name }}" />
|
|
<meta property="og:description" content="{{ description or site.description }}" />
|
|
<meta property="og:image" content="{{ site.url }}/assets/og-image.png" />
|
|
<meta property="og:image:width" content="1200" />
|
|
<meta property="og:image:height" content="630" />
|
|
<meta property="og:image:alt" content="{{ site.name }}" />
|
|
<meta property="og:locale" content="es_AR" />
|
|
|
|
<!-- Twitter Card -->
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<meta name="twitter:title" content="{{ title or site.name }}" />
|
|
<meta name="twitter:description" content="{{ description or site.description }}" />
|
|
<meta name="twitter:image" content="{{ site.url }}/assets/og-image.png" />
|
|
<script>
|
|
if (localStorage.getItem('theme') === 'dark' || (!localStorage.getItem('theme') && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
|
|
document.documentElement.classList.add('dark');
|
|
}
|
|
</script>
|
|
<script>
|
|
(function () {
|
|
function applyCurrency(currency) {
|
|
document.documentElement.setAttribute('data-currency', currency);
|
|
}
|
|
|
|
function countryFromTimeZone() {
|
|
try {
|
|
var tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
if (tz && tz.indexOf('America/Argentina') === 0) return 'AR';
|
|
} catch (e) {}
|
|
return null;
|
|
}
|
|
|
|
var country = countryFromTimeZone();
|
|
applyCurrency(country === 'AR' ? 'ars' : 'usd');
|
|
|
|
var controller = new AbortController();
|
|
var timer = setTimeout(function () { controller.abort(); }, 3000);
|
|
|
|
fetch('https://get.geojs.io/v1/ip/country.json', { signal: controller.signal })
|
|
.then(function (res) { return res.json(); })
|
|
.then(function (data) {
|
|
if (data && typeof data.country === 'string' && data.country) {
|
|
applyCurrency(data.country === 'AR' ? 'ars' : 'usd');
|
|
}
|
|
})
|
|
.catch(function () {})
|
|
.finally(function () { clearTimeout(timer); });
|
|
})();
|
|
</script>
|
|
<script async defer src="https://cloud.umami.is/script.js" data-website-id="5bd25a18-8076-49b2-83c0-2c6a5e16dec9"></script>
|
|
<script src="https://cdn.tailwindcss.com"></script>
|
|
<script>
|
|
tailwind.config = {
|
|
darkMode: 'class',
|
|
theme: {
|
|
extend: {
|
|
colors: {
|
|
brand: {
|
|
50: '#eef4ff',
|
|
100: '#dbe6fe',
|
|
200: '#bfd3fe',
|
|
300: '#93b4fd',
|
|
400: '#608afa',
|
|
500: '#3b63f5',
|
|
600: '#2544ea',
|
|
700: '#1d33d8',
|
|
800: '#1e2cb0',
|
|
900: '#1e2b8b',
|
|
950: '#171d54',
|
|
},
|
|
},
|
|
fontFamily: {
|
|
sans: ['Inter', 'ui-sans-serif', 'system-ui', 'sans-serif'],
|
|
},
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
<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;800;900&display=swap" rel="stylesheet" />
|
|
<style>
|
|
[x-cloak] { display: none !important; }
|
|
html { scroll-padding-top: 6rem; }
|
|
body { text-rendering: optimizeLegibility; }
|
|
input[type="range"] { accent-color: #3b63f5; }
|
|
.price-ars { display: none; }
|
|
html[data-currency="ars"] .price-ars { display: inline; }
|
|
html[data-currency="ars"] .price-usd { display: none; }
|
|
</style>
|
|
</head>
|
|
<body class="font-sans antialiased bg-white text-slate-900 dark:bg-slate-950 dark:text-slate-100 transition-colors duration-300">
|
|
|
|
{% include "partials/header.njk" %}
|
|
|
|
<main>
|
|
{{ content | safe }}
|
|
</main>
|
|
|
|
{% include "partials/footer.njk" %}
|
|
|
|
<script>
|
|
function setupThemeToggle(toggleId, sunId, moonId) {
|
|
const toggle = document.getElementById(toggleId);
|
|
const iconSun = document.getElementById(sunId);
|
|
const iconMoon = document.getElementById(moonId);
|
|
|
|
function syncIcons() {
|
|
const isDark = document.documentElement.classList.contains('dark');
|
|
iconSun.classList.toggle('hidden', !isDark);
|
|
iconMoon.classList.toggle('hidden', isDark);
|
|
}
|
|
|
|
toggle.addEventListener('click', () => {
|
|
const isDark = document.documentElement.classList.toggle('dark');
|
|
localStorage.setItem('theme', isDark ? 'dark' : 'light');
|
|
syncIcons();
|
|
});
|
|
|
|
syncIcons();
|
|
}
|
|
|
|
setupThemeToggle('theme-toggle', 'icon-sun', 'icon-moon');
|
|
setupThemeToggle('theme-toggle-mobile', 'icon-sun-mobile', 'icon-moon-mobile');
|
|
|
|
const menuToggle = document.getElementById('menu-toggle');
|
|
const mobileMenu = document.getElementById('mobile-menu');
|
|
const iconMenu = document.getElementById('icon-menu');
|
|
const iconClose = document.getElementById('icon-close');
|
|
|
|
function setMenu(open) {
|
|
mobileMenu.classList.toggle('hidden', !open);
|
|
iconMenu.classList.toggle('hidden', open);
|
|
iconClose.classList.toggle('hidden', !open);
|
|
menuToggle.setAttribute('aria-expanded', String(open));
|
|
menuToggle.setAttribute('aria-label', open ? 'Cerrar menú' : 'Abrir menú');
|
|
}
|
|
|
|
menuToggle.addEventListener('click', () => setMenu(mobileMenu.classList.contains('hidden')));
|
|
|
|
document.querySelectorAll('[data-menu-link]').forEach(link => {
|
|
link.addEventListener('click', () => setMenu(false));
|
|
});
|
|
|
|
document.addEventListener('keydown', (event) => {
|
|
if (event.key === 'Escape' && !mobileMenu.classList.contains('hidden')) {
|
|
setMenu(false);
|
|
menuToggle.focus();
|
|
}
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |