diff --git a/src/assets/img/program-osteopatia.jpg b/src/assets/img/program-osteopatia.jpg
index 56e716e..1766f67 100644
Binary files a/src/assets/img/program-osteopatia.jpg and b/src/assets/img/program-osteopatia.jpg differ
diff --git a/src/assets/img/program-pilates-flow.jpg b/src/assets/img/program-pilates-flow.jpg
deleted file mode 100644
index ebd5028..0000000
Binary files a/src/assets/img/program-pilates-flow.jpg and /dev/null differ
diff --git a/src/assets/img/program-profilazione.jpg b/src/assets/img/program-profilazione.jpg
new file mode 100644
index 0000000..65c6c3e
Binary files /dev/null and b/src/assets/img/program-profilazione.jpg differ
diff --git a/src/assets/img/program-rehab.jpg b/src/assets/img/program-rehab.jpg
index 56e716e..abca300 100644
Binary files a/src/assets/img/program-rehab.jpg and b/src/assets/img/program-rehab.jpg differ
diff --git a/src/assets/img/training-rehab.jpg b/src/assets/img/training-rehab.jpg
index 56e716e..abca300 100644
Binary files a/src/assets/img/training-rehab.jpg and b/src/assets/img/training-rehab.jpg differ
diff --git a/src/components/Footer.astro b/src/components/Footer.astro
index 5e32f4c..7698657 100644
--- a/src/components/Footer.astro
+++ b/src/components/Footer.astro
@@ -11,7 +11,7 @@ const year = new Date().getFullYear();
-
{t('global.contact.phone')}
{t('global.contact.address')}, {t('global.contact.city-line')}
+ {t('global.contact.address')}, {t('global.contact.city-line')}
{t('global.contact.phone')}
{t('global.contact.email')}
{t('global.hours.1')}
{t('global.hours.2')}
diff --git a/src/data/content-seed.ts b/src/data/content-seed.ts
index a3e0077..5075c6d 100644
--- a/src/data/content-seed.ts
+++ b/src/data/content-seed.ts
@@ -23,6 +23,7 @@ export const contentSeed: SeedEntry[] = [
T('global.contact.email', site.email, []),
T('global.contact.address', site.address, []),
T('global.contact.city-line', site.cityLine, []),
+ T('global.contact.map-query', site.mapQuery, []),
T('global.hours.1', site.hours[0], []),
T('global.hours.2', site.hours[1], []),
T('global.nav.1.label', site.navigation[0].label, []),
@@ -278,10 +279,6 @@ export const contentSeed: SeedEntry[] = [
T('training.meta.description', 'One to One, Small Group, Rehab, Holistic Class, Reformer Class e Coaching: trova il training InsanityLab più adatto a te.', []),
T('training.hero.title', 'training', []),
T('training.intro.subtitle', 'Porta i tuoi allenamenti al livello successivo: programmi completi e percorsi su misura. Trova il training più adatto alle tue esigenze.'),
- T('training.trial.title', 'Prenota la lezione di prova'),
- T('training.trial.body', "La lezione di prova è l'occasione perfetta per conoscere il metodo, vivere l'esperienza in prima persona e capire il percorso più adatto a te. Inizia oggi il tuo percorso: prenota la tua lezione di prova."),
- T('training.trial.cta', 'Prenota', []),
- I('training.trial.image'),
// --- Contact ---
T('contact.meta.title', 'Contatti', []),
diff --git a/src/data/service-icons.ts b/src/data/service-icons.ts
index 024e19d..9133f43 100644
--- a/src/data/service-icons.ts
+++ b/src/data/service-icons.ts
@@ -1,9 +1,9 @@
// Path SVG (stroke, viewBox 0 0 24 24) delle icone servizi, condivisi tra griglia home e sidebar
export const serviceIcons: Record = {
- 'personal-training': 'M4 12h3m10 0h3M9 8v8m6-8v8M7 10v4m10-4v4',
+ 'one-to-one': 'M4 12h3m10 0h3M9 8v8m6-8v8M7 10v4m10-4v4',
+ 'small-group': 'M4 12h3m10 0h3M9 8v8m6-8v8M7 10v4m10-4v4',
'performance-class': 'M13 3l-2 7h4l-6 11 2-8H7l4-10z',
'coaching': 'M12 3a4 4 0 110 8 4 4 0 010-8zm-7 18a7 7 0 0114 0',
- 'pilates-flow': 'M12 4a2 2 0 110 4 2 2 0 010-4zM6 20c2-6 10-6 12 0M12 8v6',
'rehab': 'M12 21C7 17 3 13 3 9a5 5 0 019-3 5 5 0 019 3c0 4-4 8-9 12z',
'nutrition': 'M12 3c4 0 7 3 7 8s-3 10-7 10-7-5-7-10 3-8 7-8zm0-1v4',
// Servizi rinominati (modifiche 02): profilazione (grafico/analisi), osteopatia (mani)
diff --git a/src/data/site.ts b/src/data/site.ts
index 86073e8..285fa45 100644
--- a/src/data/site.ts
+++ b/src/data/site.ts
@@ -2,8 +2,10 @@ export const site = {
name: "InsanityLab",
phone: "351 7535977",
email: "info@insanitylab.it",
- address: "Via Leandro Alberti, 76",
+ // Due ingressi dello stesso stabile. address = testo mostrato; mapQuery = punto geolocalizzabile per Google Maps.
+ address: "Via Leandro Alberti 76 e Via De Mattiolo 5",
cityLine: "40139 Bologna",
+ mapQuery: "Via Leandro Alberti 76, 40139 Bologna",
hours: ["Lun – Ven 6.00 – 21.00", "Sab 8.00 – 19.00 · Dom chiuso"],
socials: [
{ label: "Instagram", url: "https://www.instagram.com/insanitylab" },
diff --git a/src/lib/db.ts b/src/lib/db.ts
index 36c22a6..a2104ad 100644
--- a/src/lib/db.ts
+++ b/src/lib/db.ts
@@ -150,6 +150,11 @@ export function createDb(path?: string): Database.Database {
const upd02Tx = db.transaction(() => { for (const [tag, oldV, newV] of SERVIZI_02) upd02.run(newV, tag, oldV); });
upd02Tx();
+ // Modifiche 03: due ingressi dello stesso stabile → indirizzo esteso in footer e contatti.
+ // Il tag global.contact.map-query è nuovo (inserito dal seed); qui si aggiorna solo l'indirizzo
+ // già esistente, se non modificato dal pannello. Idempotente.
+ db.prepare("UPDATE content_blocks SET value = 'Via Leandro Alberti 76 e Via De Mattiolo 5' WHERE tag = 'global.contact.address' AND value = 'Via Leandro Alberti, 76'").run();
+
// Modifiche 02 (pagina Insanitylab/about): testi riscritti. Guardia via frammento LIKE
// distintivo del vecchio testo → robusto agli apostrofi tipografici, idempotente e
// rispettoso delle eventuali riscritture da pannello (se il frammento non c'è più, salta).
diff --git a/src/pages/contact.astro b/src/pages/contact.astro
index 911f313..6cd30eb 100644
--- a/src/pages/contact.astro
+++ b/src/pages/contact.astro
@@ -6,15 +6,14 @@ import contactHero from '../assets/img/contact-hero.jpg';
import T from '../components/content/T.astro';
import { t, getImageOverride } from '../lib/content';
export const prerender = false;
-const mapsQuery = encodeURIComponent(`${t('global.contact.address')}, ${t('global.contact.city-line')}`);
+const mapsQuery = encodeURIComponent(t('global.contact.map-query'));
---
-
-
-
{t('contact.map.note')}
+
+
@@ -40,18 +39,10 @@ const mapsQuery = encodeURIComponent(`${t('global.contact.address')}, ${t('globa
-
-
diff --git a/src/pages/promo-eventi.astro b/src/pages/promo-eventi.astro
index 601483e..4b0227b 100644
--- a/src/pages/promo-eventi.astro
+++ b/src/pages/promo-eventi.astro
@@ -139,10 +139,6 @@ export const prerender = false;
-
-
@@ -225,10 +221,6 @@ export const prerender = false;
.lp .validity-note { text-align: center; font-size: 12px; color: #8A8980; margin: 22px 0 0; }
- /* CONTACT BAR */
- .lp .contact-bar { padding: 20px 64px 40px; text-align: center; }
- .lp .contact-bar p { margin: 0; font-size: 11.5px; line-height: 1.6; color: #8A8980; }
-
/* FAQ */
.lp .faq-wrap { padding: 72px 64px; }
.lp .faq-wrap h1 { margin: 0 0 40px; font-size: 34px; line-height: 1.25; font-weight: 700; color: #2D2D2D; max-width: 480px; }
@@ -248,7 +240,7 @@ export const prerender = false;
.lp .faq-a .hl { color: #8A6E3F; }
@media (max-width: 700px) {
- .lp .hero, .lp .launch, .lp .why5, .lp .cards-wrap, .lp .faq-wrap, .lp .contact-bar { padding-left: 28px; padding-right: 28px; }
+ .lp .hero, .lp .launch, .lp .why5, .lp .cards-wrap, .lp .faq-wrap { padding-left: 28px; padding-right: 28px; }
.lp .cards { grid-template-columns: 1fr; }
.lp .hero h1 { font-size: 32px; }
.lp .launch h1 { font-size: 28px; }
diff --git a/src/pages/training.astro b/src/pages/training.astro
index d211e2c..de1c3d0 100644
--- a/src/pages/training.astro
+++ b/src/pages/training.astro
@@ -5,9 +5,7 @@ import TrainingCards from '../components/home/TrainingCards.astro';
import Agenda from '../components/Agenda.astro';
import { Image } from 'astro:assets';
import { trainings } from '../data/trainings';
-import trialImg from '../assets/img/trial-class.jpg';
import T from '../components/content/T.astro';
-import TImg from '../components/content/TImg.astro';
import { t } from '../lib/content';
const images = import.meta.glob<{ default: ImageMetadata }>('../assets/img/training-*.{jpg,png}', { eager: true });
const imgOf = (name: string) => Object.entries(images).find(([p]) => p.includes(name))?.[1]?.default;
@@ -29,7 +27,7 @@ export const prerender = false;
{imgOf(tr.image) &&
}
-
{t(`training.${tr.id}.title`).toLowerCase()}
+
{t(`training.${tr.id}.title`)}
@@ -39,25 +37,11 @@ export const prerender = false;
-
-