fix: mobile-first responsive improvements across all pages

This commit is contained in:
Manuel
2026-05-10 16:09:26 +02:00
parent f1c1f54ef9
commit cc55641edf
6 changed files with 242 additions and 81 deletions
+24 -7
View File
@@ -103,7 +103,7 @@ import MainLayout from '../layouts/MainLayout.astro';
</p> </p>
</div> </div>
<div class="grid-3" style="align-items: start;"> <div class="grid-3 arte-mesa-grid" style="align-items: start;">
<div style="text-align: center;"> <div style="text-align: center;">
<div class="img-zoom overflow-hidden rounded-lg reveal reveal-scale" style="--reveal-delay: 100; aspect-ratio:4/5;margin-bottom:var(--space-6);"> <div class="img-zoom overflow-hidden rounded-lg reveal reveal-scale" style="--reveal-delay: 100; aspect-ratio:4/5;margin-bottom:var(--space-6);">
<img src="/images/generated/gallery-4.webp" alt="Texturas nobles" style="width:100%;height:100%;object-fit:cover;" loading="lazy" /> <img src="/images/generated/gallery-4.webp" alt="Texturas nobles" style="width:100%;height:100%;object-fit:cover;" loading="lazy" />
@@ -112,7 +112,7 @@ import MainLayout from '../layouts/MainLayout.astro';
<p class="text-body-sm text-muted">Linos y sedas seleccionados por su caída y tacto excepcional.</p> <p class="text-body-sm text-muted">Linos y sedas seleccionados por su caída y tacto excepcional.</p>
</div> </div>
<div style="text-align: center; margin-top: var(--space-12);"> <div class="arte-stagger" style="text-align: center;">
<div class="img-zoom overflow-hidden rounded-lg reveal reveal-scale" style="--reveal-delay: 250; aspect-ratio:4/5;margin-bottom:var(--space-6);"> <div class="img-zoom overflow-hidden rounded-lg reveal reveal-scale" style="--reveal-delay: 250; aspect-ratio:4/5;margin-bottom:var(--space-6);">
<img src="/images/foto-canapes.jpg" alt="Canapés premium" style="width:100%;height:100%;object-fit:cover;" loading="lazy" /> <img src="/images/foto-canapes.jpg" alt="Canapés premium" style="width:100%;height:100%;object-fit:cover;" loading="lazy" />
</div> </div>
@@ -120,7 +120,7 @@ import MainLayout from '../layouts/MainLayout.astro';
<p class="text-body-sm text-muted">Detalles metálicos que aportan un brillo atemporal a su celebración.</p> <p class="text-body-sm text-muted">Detalles metálicos que aportan un brillo atemporal a su celebración.</p>
</div> </div>
<div style="text-align: center; margin-top: var(--space-24);"> <div class="arte-stagger-2" style="text-align: center;">
<div class="img-zoom overflow-hidden rounded-lg reveal reveal-scale" style="--reveal-delay: 400; aspect-ratio:4/5;margin-bottom:var(--space-6);"> <div class="img-zoom overflow-hidden rounded-lg reveal reveal-scale" style="--reveal-delay: 400; aspect-ratio:4/5;margin-bottom:var(--space-6);">
<img src="/images/generated/gallery-3.webp" alt="Platos de autor" style="width:100%;height:100%;object-fit:cover;" loading="lazy" /> <img src="/images/generated/gallery-3.webp" alt="Platos de autor" style="width:100%;height:100%;object-fit:cover;" loading="lazy" />
</div> </div>
@@ -190,15 +190,28 @@ import MainLayout from '../layouts/MainLayout.astro';
<style> <style>
.bento-grid { .bento-grid {
display: grid; display: grid;
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr;
gap: var(--space-4); gap: var(--space-4);
} }
.bento-large { .bento-large {
position: relative; position: relative;
min-height: 22rem; min-height: 18rem;
grid-column: span 2; grid-column: span 1;
}
.bento-small { position: relative; min-height: 12rem; }
/* Staggered art-de-la-mesa cards — remove on mobile */
.arte-stagger { margin-top: 0; }
.arte-stagger-2 { margin-top: 0; }
@media (min-width: 40rem) {
.bento-grid {
grid-template-columns: 1fr 1fr;
gap: var(--space-4);
}
.bento-large { grid-column: span 2; }
.bento-small { min-height: 16rem; }
} }
.bento-small { position: relative; min-height: 14rem; }
@media (min-width: 48rem) { @media (min-width: 48rem) {
.bento-grid { .bento-grid {
@@ -214,5 +227,9 @@ import MainLayout from '../layouts/MainLayout.astro';
.bento-small { min-height: 23rem; } .bento-small { min-height: 23rem; }
.col-5 { grid-column: span 5 !important; } .col-5 { grid-column: span 5 !important; }
.col-7 { grid-column: span 7 !important; } .col-7 { grid-column: span 7 !important; }
/* Art de la mesa stagger only on desktop */
.arte-stagger { margin-top: var(--space-12); }
.arte-stagger-2 { margin-top: var(--space-24); }
} }
</style> </style>
+12 -5
View File
@@ -147,13 +147,13 @@ import MainLayout from '../layouts/MainLayout.astro';
<style> <style>
/* Hero */ /* Hero */
.contacto-hero { .contacto-hero {
padding-top: calc(var(--nav-h) + var(--space-section)); padding-top: calc(var(--nav-h) + var(--space-8));
padding-bottom: var(--space-section); padding-bottom: var(--space-8);
} }
.contacto-hero-grid { .contacto-hero-grid {
display: grid; display: grid;
gap: var(--space-12); gap: var(--space-8);
} }
.contacto-hero-img { .contacto-hero-img {
@@ -163,24 +163,31 @@ import MainLayout from '../layouts/MainLayout.astro';
/* Contact layout */ /* Contact layout */
.contacto-grid { .contacto-grid {
display: grid; display: grid;
gap: var(--space-16); gap: var(--space-10);
} }
.contacto-info { .contacto-info {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: var(--space-10); gap: var(--space-8);
} }
@media (min-width: 48rem) { @media (min-width: 48rem) {
.contacto-hero {
padding-top: calc(var(--nav-h) + var(--space-section));
padding-bottom: var(--space-section);
}
.contacto-hero-grid { .contacto-hero-grid {
grid-template-columns: 7fr 5fr; grid-template-columns: 7fr 5fr;
align-items: center; align-items: center;
gap: var(--space-12);
} }
.contacto-grid { .contacto-grid {
grid-template-columns: 2fr 3fr; grid-template-columns: 2fr 3fr;
align-items: start; align-items: start;
gap: var(--space-16);
} }
} }
</style> </style>
+25 -9
View File
@@ -8,32 +8,33 @@ import MainLayout from '../layouts/MainLayout.astro';
activeNav="corporativo" activeNav="corporativo"
> >
<!-- ─── HERO ─── --> <!-- ─── HERO ─── -->
<header style="padding-top:calc(var(--nav-h) + var(--space-section));padding-bottom:var(--space-section);overflow:hidden;"> <header style="padding-top:calc(var(--nav-h) + var(--space-8));padding-bottom:var(--space-8);overflow:hidden;">
<div class="page-wrap"> <div class="page-wrap">
<div class="grid-12" style="align-items:center;gap:var(--space-8);"> <div class="grid-12" style="align-items:center;gap:var(--space-8);">
<div style="grid-column:span 12;z-index:10;"> <div style="grid-column:span 12;z-index:10;">
<p class="section-eyebrow reveal">Excelencia en Eventos</p> <p class="section-eyebrow reveal">Excelencia en Eventos</p>
<h1 class="text-display reveal" style="--reveal-delay: 150;margin-bottom:var(--space-8);">Corporativo<br />&amp; Business</h1> <h1 class="text-display reveal" style="--reveal-delay: 150;margin-bottom:var(--space-6);">Corporativo<br />&amp; Business</h1>
<p class="text-muted reveal" style="--reveal-delay: 250;max-width:32rem;line-height:1.7;margin-bottom:var(--space-10);"> <p class="text-muted reveal" style="--reveal-delay: 250;max-width:32rem;line-height:1.7;margin-bottom:var(--space-8);">
Elevamos la imagen de su empresa a través de experiencias gastronómicas impecables. Desde lanzamientos de marca disruptivos hasta galas institucionales de alto nivel. Elevamos la imagen de su empresa a través de experiencias gastronómicas impecables. Desde lanzamientos de marca disruptivos hasta galas institucionales de alto nivel.
</p> </p>
<div style="display:flex;gap:var(--space-6);flex-wrap:wrap;align-items:center;"> <div class="corp-hero-actions">
<a href="https://wa.me/34678171513?text=Hola%20MNQ%2C%20quiero%20propuesta%20corporativa" class="btn btn-primary" target="_blank" rel="noreferrer">Solicitar Propuesta</a> <a href="https://wa.me/34678171513?text=Hola%20MNQ%2C%20quiero%20propuesta%20corporativa" class="btn btn-primary" target="_blank" rel="noreferrer">Solicitar Propuesta</a>
<a href="#servicios" class="btn-underline">Ver Servicios</a> <a href="#servicios" class="btn-underline">Ver Servicios</a>
</div> </div>
</div> </div>
<div style="grid-column:span 12;position:relative;height:28rem;" class="reveal" style="--reveal-delay: 350;"> <div style="grid-column:span 12;position:relative;" class="reveal" style="--reveal-delay: 350;">
<div style="aspect-ratio: 16/9;" class="overflow-hidden rounded-lg border-outline-soft">
<img <img
src="/images/foto-corporativo.jpg" src="/images/foto-corporativo.jpg"
alt="Eventos corporativos premium — MNQ" alt="Eventos corporativos premium — MNQ"
class="rounded-lg border-outline-soft"
style="width:100%;height:100%;object-fit:cover;object-position:center top;" style="width:100%;height:100%;object-fit:cover;object-position:center top;"
loading="eager" loading="eager"
/> />
</div> </div>
</div>
</div> </div>
</div> </div>
@@ -146,7 +147,22 @@ import MainLayout from '../layouts/MainLayout.astro';
grid-template-columns: 1fr; grid-template-columns: 1fr;
gap: var(--space-4); gap: var(--space-4);
} }
.corp-wide, .corp-tall { position: relative; min-height: 18rem; } .corp-wide, .corp-tall { position: relative; min-height: 14rem; }
/* Hero actions stack on mobile */
.corp-hero-actions {
display: flex;
flex-direction: column;
gap: var(--space-4);
align-items: flex-start;
}
@media (min-width: 30rem) {
.corp-hero-actions {
flex-direction: row;
align-items: center;
}
}
@media (min-width: 48rem) { @media (min-width: 48rem) {
.corp-bento { .corp-bento {
@@ -156,7 +172,7 @@ import MainLayout from '../layouts/MainLayout.astro';
} }
.corp-wide { grid-column: span 2; } .corp-wide { grid-column: span 2; }
.corp-tall { grid-row: span 2; min-height: auto; } .corp-tall { grid-row: span 2; min-height: auto; }
.corp-wide, .corp-tall { min-height: 20rem; }
[style*="grid-column:span 12"] { grid-column: span 6 !important; } [style*="grid-column:span 12"] { grid-column: span 6 !important; }
[style*="height:28rem"] { height: 36rem !important; }
} }
</style> </style>
+16 -10
View File
@@ -241,45 +241,51 @@ import MainLayout from '../layouts/MainLayout.astro';
<style> <style>
.hero-card-glass { .hero-card-glass {
width: 100%; width: 100%;
max-width: 36rem; background: rgb(255 248 240 / 95%);
background: rgb(255 248 240 / 92%);
backdrop-filter: blur(8px); backdrop-filter: blur(8px);
padding: var(--space-8); padding: var(--space-6);
border: 1px solid rgb(208 197 175 / 20%); border: 1px solid rgb(208 197 175 / 20%);
border-radius: var(--radius-lg); border-radius: var(--radius-lg);
box-shadow: var(--shadow-lg); box-shadow: var(--shadow-lg);
} }
@media (min-width: 48rem) {
.hero-card-glass { padding: var(--space-12); }
}
.servicios-header { .servicios-header {
display: grid; display: grid;
gap: var(--space-8); gap: var(--space-6);
margin-bottom: var(--space-16); margin-bottom: var(--space-12);
} }
.platos-grid { .platos-grid {
display: grid; display: grid;
gap: var(--space-8); gap: var(--space-6);
} }
@media (max-width: 47.9rem) { @media (max-width: 47.9rem) {
.card-stagger { margin-top: 0 !important; } .card-stagger { margin-top: 0 !important; }
} }
@media (min-width: 30rem) {
.hero-card-glass { padding: var(--space-8); }
}
@media (min-width: 48rem) { @media (min-width: 48rem) {
.hero-card-glass {
padding: var(--space-12);
max-width: 36rem;
}
.card-stagger { margin-top: var(--space-24); } .card-stagger { margin-top: var(--space-24); }
.servicios-header { .servicios-header {
grid-template-columns: 5fr 7fr; grid-template-columns: 5fr 7fr;
align-items: flex-end; align-items: flex-end;
gap: var(--space-8);
margin-bottom: var(--space-16);
} }
.platos-grid { .platos-grid {
grid-template-columns: 8fr 4fr; grid-template-columns: 8fr 4fr;
align-items: start; align-items: start;
gap: var(--space-8);
} }
} }
</style> </style>
+7
View File
@@ -285,3 +285,10 @@ body.page-ready {
display: none; display: none;
} }
} }
/* Hide on very small screens to save space */
@media (max-width: 23rem) {
.scroll-progress {
display: none;
}
}
+151 -43
View File
@@ -462,6 +462,8 @@
transition: border-color 200ms; transition: border-color 200ms;
outline: none; outline: none;
appearance: none; appearance: none;
/* Ensure min touch target */
min-height: 44px;
} }
.form-input:focus, .form-input:focus,
@@ -478,16 +480,19 @@
.form-textarea { .form-textarea {
resize: none; resize: none;
/* Taller on mobile for easier typing */
min-height: 120px;
} }
.form-grid { .form-grid {
display: grid; display: grid;
gap: var(--space-12); gap: var(--space-8);
} }
@media (min-width: 48rem) { @media (min-width: 48rem) {
.form-grid { .form-grid {
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr 1fr;
gap: var(--space-12);
} }
.form-span-full { .form-span-full {
@@ -501,24 +506,27 @@
.whatsapp-float { .whatsapp-float {
position: fixed; position: fixed;
right: var(--space-4); right: var(--space-3);
bottom: var(--space-4); bottom: var(--space-3);
z-index: 60; z-index: 55;
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
gap: var(--space-3); justify-content: center;
background: var(--color-primary); background: var(--color-primary);
color: var(--color-on-primary); color: var(--color-on-primary);
padding: var(--space-3) var(--space-4); padding: var(--space-3);
border-radius: var(--radius-full); border-radius: var(--radius-full);
box-shadow: var(--shadow-lg); box-shadow: var(--shadow-lg);
font-family: var(--font-sans); font-family: var(--font-sans);
font-size: 0.65rem; font-size: 0;
font-weight: 600; font-weight: 600;
letter-spacing: 0.12em; letter-spacing: 0.12em;
text-transform: uppercase; text-transform: uppercase;
text-decoration: none; text-decoration: none;
transition: transform 200ms, box-shadow 200ms; transition: transform 200ms, box-shadow 200ms;
/* Ensure minimum 44px touch target */
min-width: 48px;
min-height: 48px;
} }
.whatsapp-float:hover { .whatsapp-float:hover {
@@ -541,6 +549,32 @@
flex-shrink: 0; flex-shrink: 0;
} }
.whatsapp-float span:first-child {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0 0 0 0);
}
@media (min-width: 30rem) {
.whatsapp-float {
font-size: 0.65rem;
gap: var(--space-3);
padding: var(--space-3) var(--space-4);
min-width: unset;
min-height: unset;
}
.whatsapp-float span:first-child {
position: static;
width: auto;
height: auto;
overflow: visible;
clip: auto;
font-size: inherit;
}
}
@media (min-width: 48rem) { @media (min-width: 48rem) {
.whatsapp-float { .whatsapp-float {
right: var(--space-8); right: var(--space-8);
@@ -568,43 +602,49 @@
.footer-inner { .footer-inner {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: var(--space-8); gap: var(--space-6);
padding-block: var(--space-section); padding-block: var(--space-12);
} }
.footer-brand h3 { .footer-brand {
font-family: var(--font-serif);
font-size: var(--text-headline-lg);
color: var(--color-on-surface);
margin-bottom: var(--space-4);
}
.footer-brand p {
font-size: var(--text-sm);
color: var(--color-on-surface-variant);
max-width: 20rem;
}
.footer-links {
display: flex;
flex-wrap: wrap;
gap: var(--space-16);
}
.footer-col {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: var(--space-4); gap: var(--space-4);
} }
.footer-brand img {
height: 2.5rem;
width: auto;
}
.footer-brand p {
font-size: var(--text-sm);
color: var(--color-on-surface-variant);
max-width: 100%;
line-height: 1.5;
}
.footer-links {
display: flex;
flex-wrap: wrap;
gap: var(--space-6);
}
.footer-col {
display: flex;
flex-direction: column;
gap: var(--space-3);
min-width: 8rem;
}
.footer-col-title { .footer-col-title {
font-family: var(--font-sans); font-family: var(--font-sans);
font-size: var(--text-label-caps); font-size: 0.625rem;
font-weight: 600; font-weight: 600;
letter-spacing: 0.15em; letter-spacing: 0.15em;
text-transform: uppercase; text-transform: uppercase;
color: var(--color-primary); color: var(--color-primary);
margin-bottom: var(--space-2); margin-bottom: var(--space-1);
} }
.footer-link { .footer-link {
@@ -626,11 +666,44 @@
align-items: flex-start; align-items: flex-start;
} }
.footer-bottom p {
font-size: var(--text-sm);
color: var(--color-on-surface-variant);
opacity: 0.6;
line-height: 1.4;
}
@media (min-width: 48rem) { @media (min-width: 48rem) {
.footer-inner { .footer-inner {
flex-direction: row; flex-direction: row;
justify-content: space-between; justify-content: space-between;
align-items: flex-start; align-items: flex-start;
gap: var(--space-16);
padding-block: var(--space-section);
}
.footer-brand {
max-width: 20rem;
}
.footer-brand img {
height: 3.5rem;
}
.footer-brand p {
max-width: 20rem;
}
.footer-links {
gap: var(--space-16);
}
.footer-col {
gap: var(--space-4);
}
.footer-col-title {
margin-bottom: var(--space-2);
} }
.footer-bottom { .footer-bottom {
@@ -648,30 +721,65 @@
background: var(--color-inverse-surface); background: var(--color-inverse-surface);
color: var(--color-inverse-on-surface); color: var(--color-inverse-on-surface);
border-radius: var(--radius-lg); border-radius: var(--radius-lg);
padding: var(--space-16) var(--space-8); padding: var(--space-10) var(--space-6);
position: relative; position: relative;
overflow: hidden; overflow: hidden;
text-align: center; text-align: center;
} }
/* Reduce ring sizes on mobile */
.cta-dark-ring {
position: absolute;
border: 1px solid rgb(255 224 136 / 8%);
border-radius: var(--radius-full);
pointer-events: none;
}
.cta-dark-ring:first-child {
width: 10rem;
height: 10rem;
top: -2rem;
left: -2rem;
}
.cta-dark-ring:last-child {
width: 16rem;
height: 16rem;
bottom: -3rem;
right: -3rem;
}
.cta-gold {
background: var(--color-primary);
color: var(--color-on-primary);
padding: var(--space-10) var(--space-6);
text-align: center;
}
@media (min-width: 48rem) { @media (min-width: 48rem) {
.cta-dark { .cta-dark {
padding: var(--space-24) var(--space-20); padding: var(--space-24) var(--space-20);
} }
}
.cta-dark-ring { .cta-dark-ring:first-child {
position: absolute; width: 16rem;
border: 2px solid rgb(255 224 136 / 10%); height: 16rem;
border-radius: var(--radius-full); top: -4rem;
pointer-events: none; left: -4rem;
} border-width: 2px;
}
.cta-gold { .cta-dark-ring:last-child {
background: var(--color-primary); width: 24rem;
color: var(--color-on-primary); height: 24rem;
bottom: -6rem;
right: -6rem;
border-width: 2px;
}
.cta-gold {
padding: var(--space-16) var(--space-8); padding: var(--space-16) var(--space-8);
text-align: center; }
} }
/* ───────────────────────────────────────────── /* ─────────────────────────────────────────────