feat: improve seo, trust signals, and performance

This commit is contained in:
Manuel
2026-07-20 12:07:23 +02:00
parent 49f391ee49
commit faed590a66
27 changed files with 1444 additions and 153 deletions
+88
View File
@@ -0,0 +1,88 @@
---
interface Props {
name:
| 'architecture'
| 'arrow-forward'
| 'auto-awesome'
| 'call'
| 'chat'
| 'history-edu'
| 'language'
| 'local-florist'
| 'restaurant-menu'
| 'verified';
class?: string;
size?: number;
}
const { name, class: className, size = 20 } = Astro.props;
const icons: Record<Props['name'], { viewBox: string; markup: string }> = {
architecture: {
viewBox: '0 0 24 24',
markup:
'<path d="M3 21h18" /><path d="M5 21V9" /><path d="M19 21V9" /><path d="M8 21v-5" /><path d="M12 21v-5" /><path d="M16 21v-5" /><path d="M4 9h16" /><path d="M12 3 3 9h18L12 3Z" />',
},
'arrow-forward': {
viewBox: '0 0 24 24',
markup: '<path d="M5 12h14" /><path d="m13 6 6 6-6 6" />',
},
'auto-awesome': {
viewBox: '0 0 24 24',
markup:
'<path d="m12 3 1.6 4.4L18 9l-4.4 1.6L12 15l-1.6-4.4L6 9l4.4-1.6L12 3Z" /><path d="m19 14 .8 2.2L22 17l-2.2.8L19 20l-.8-2.2L16 17l2.2-.8L19 14Z" /><path d="m5 14 .8 2.2L8 17l-2.2.8L5 20l-.8-2.2L2 17l2.2-.8L5 14Z" />',
},
call: {
viewBox: '0 0 24 24',
markup:
'<path d="M4.5 6.8c0 7 5.7 12.7 12.7 12.7h1.9a1.4 1.4 0 0 0 1.4-1.4v-2.4a1.4 1.4 0 0 0-1.2-1.4l-3.2-.4a1.4 1.4 0 0 0-1.4.8l-.7 1.4a11.4 11.4 0 0 1-6.1-6.1l1.4-.7a1.4 1.4 0 0 0 .8-1.4l-.4-3.2A1.4 1.4 0 0 0 8.3 3.5H5.9A1.4 1.4 0 0 0 4.5 4.9v1.9Z" />',
},
chat: {
viewBox: '0 0 24 24',
markup:
'<path d="M7 18H4a1 1 0 0 1-1-1V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v6a4 4 0 0 1-4 4H9l-4 4v-3Z" /><path d="M8 9h8" /><path d="M8 13h5" />',
},
'history-edu': {
viewBox: '0 0 24 24',
markup:
'<path d="M4 5.5A2.5 2.5 0 0 1 6.5 3H20v16H6.5A2.5 2.5 0 0 0 4 21.5V5.5Z" /><path d="M8 7h7" /><path d="M8 11h8" /><path d="M8 15h5" /><path d="M4 21.5A2.5 2.5 0 0 1 6.5 19" />',
},
language: {
viewBox: '0 0 24 24',
markup:
'<path d="M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18Z" /><path d="M3 12h18" /><path d="M12 3a14.5 14.5 0 0 1 0 18" /><path d="M12 3a14.5 14.5 0 0 0 0 18" />',
},
'local-florist': {
viewBox: '0 0 24 24',
markup:
'<path d="M12 13.5c1.8-2.1 4.5-2.7 5.8-1.4 1.3 1.3.7 4-1.4 5.8-2.1 1.8-4.8 2.2-6.1.9-1.3-1.3-.9-4 .9-6.1.2-.2.5-.5.8-.7Z" /><path d="M12 13.5c-1.8-2.1-4.5-2.7-5.8-1.4-1.3 1.3-.7 4 1.4 5.8 2.1 1.8 4.8 2.2 6.1.9 1.3-1.3.9-4-.9-6.1-.2-.2-.5-.5-.8-.7Z" /><path d="M12 13.5c2.7-.8 4.4-2.9 3.8-4.7-.6-1.8-3.4-2.5-6.1-1.7-2.7.8-4.4 2.9-3.8 4.7.6 1.8 3.4 2.5 6.1 1.7Z" /><path d="M12 13.5V21" /><path d="M10 21h4" />',
},
'restaurant-menu': {
viewBox: '0 0 24 24',
markup:
'<path d="M6 3v7" /><path d="M9 3v7" /><path d="M6 7h3" /><path d="M7.5 10v11" /><path d="M15 3c1.7 2 2.5 4.1 2.5 6.3V21" /><path d="M15 10.5c-1.4 0-2.5-1.1-2.5-2.5S13.6 5.5 15 5.5" />',
},
verified: {
viewBox: '0 0 24 24',
markup:
'<path d="m9 12 2 2 4-4" /><path d="M12 3.5 14.6 5l3-.2 1 2.8 2.4 1.8-1 2.8 1 2.8-2.4 1.8-1 2.8-3-.2-2.6 1.5-2.6-1.5-3 .2-1-2.8L3 15.9l1-2.8-1-2.8 2.4-1.8 1-2.8 3 .2L12 3.5Z" />',
},
};
const icon = icons[name];
---
<svg
class:list={['icon', className]}
style={`--icon-size:${size}px;`}
viewBox={icon.viewBox}
fill="none"
xmlns="http://www.w3.org/2000/svg"
stroke="currentColor"
stroke-width="1.8"
stroke-linecap="round"
stroke-linejoin="round"
aria-hidden="true"
focusable="false"
set:html={icon.markup}
/>
+13 -2
View File
@@ -1,3 +1,7 @@
---
const whatsappAriaLabel = 'Contactar con MNQ por WhatsApp';
---
<footer class="site-footer">
<div class="page-wrap">
<div class="footer-inner">
@@ -5,12 +9,18 @@
<div class="footer-brand">
<a href="/" aria-label="MNQ Catering y Eventos">
<img
src="/images/logo-secondary.png"
src="/images/logo-secondary.webp"
alt="MNQ Catering y Eventos"
width="224"
height="224"
style="height: 3.5rem; width: auto; mix-blend-mode: multiply; margin-bottom: 1rem;"
/>
</a>
<p>© 2025 MNQ Catering y Evento. Excelencia culinaria para los momentos más importantes de su vida.</p>
<div style="display:flex;flex-direction:column;gap:0.35rem;margin-top:var(--space-4);">
<a href="tel:+34678171513" class="footer-link" style="width:fit-content;">+34 678 17 15 13</a>
<a href="https://mnq.elkazurrotaberna.es" class="footer-link" style="width:fit-content;">mnq.elkazurrotaberna.es</a>
</div>
</div>
<div class="footer-links">
@@ -29,6 +39,7 @@
class="footer-link"
target="_blank"
rel="noreferrer"
aria-label={whatsappAriaLabel}
>WhatsApp</a>
<a href="/privacidad" class="footer-link">Privacidad</a>
<a href="/cookies" class="footer-link">Cookies</a>
@@ -38,7 +49,7 @@
</div>
<div class="footer-bottom">
<p class="text-body-sm text-muted opacity-60">
<p class="text-body-sm">
Excelencia culinaria · Diseño de eventos · Gastronomía de autor
</p>
</div>
+5 -2
View File
@@ -3,6 +3,7 @@ interface Props {
activeNav?: string;
}
const { activeNav } = Astro.props;
const whatsappAriaLabel = 'Contactar con MNQ por WhatsApp';
const links = [
{ href: '/bodas-reales', label: 'Bodas', key: 'bodas' },
@@ -21,8 +22,8 @@ const links = [
src="/images/logo-nav-dark.webp"
alt="MNQ Catering y Eventos"
class="site-logo-banner"
width="220"
height="85"
width="600"
height="232"
/>
</a>
@@ -42,6 +43,7 @@ const links = [
class="btn btn-pill nav-wa"
target="_blank"
rel="noreferrer"
aria-label={whatsappAriaLabel}
>
WhatsApp
</a>
@@ -69,6 +71,7 @@ const links = [
class="btn btn-primary mobile-wa"
target="_blank"
rel="noreferrer"
aria-label={whatsappAriaLabel}
style="width: 100%; justify-content: center; margin-top: 0.5rem;"
>
Consultar por WhatsApp
+7 -3
View File
@@ -1,12 +1,16 @@
---
import Icon from './Icon.astro';
---
<a
class="whatsapp-float"
href="https://wa.me/34678171513?text=Hola%20MNQ%2C%20quiero%20cotizar%20mi%20evento"
target="_blank"
rel="noreferrer"
aria-label="Consultar por WhatsApp"
aria-label="Contactar con MNQ por WhatsApp"
>
<span>Consultar via WhatsApp</span>
<span>Contactar por WhatsApp</span>
<span class="whatsapp-float-icon" aria-hidden="true">
<span class="material-symbols-outlined" style="font-variation-settings: 'FILL' 1;">chat</span>
<Icon name="chat" size={18} />
</span>
</a>