1522d97f54
Riporta nel codice le modifiche fatte da Adriano nel canvas di Claude Design: la freccia dei bottoni diventa decorazione CSS (::after) invece di far parte del testo del tag. I tag promo.hero.cta e promo.buy-label perdono la freccia e il maiuscolo forzato (gestiti dal CSS .btn). promo-eventi2 usa la ::after globale di .btn; promo-eventi (.lp) aggiunge ::after ai suoi bottoni custom per non perdere la freccia. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
382 lines
26 KiB
TypeScript
382 lines
26 KiB
TypeScript
import type { StyleGroup } from '../lib/style-presets';
|
||
import { site } from './site';
|
||
import { trainings } from './trainings';
|
||
import { team } from './team';
|
||
import { methodIntro, methodExtraNote, methodSteps } from './method';
|
||
import { partners } from './partners';
|
||
import { disciplines, days, slots } from './agenda';
|
||
import { services } from './services';
|
||
import { performanceClassPricing } from './pricing';
|
||
|
||
export type ContentType = 'text' | 'html' | 'image';
|
||
export interface SeedEntry { tag: string; type: ContentType; value: string; styleOptions?: StyleGroup[] }
|
||
|
||
const T = (tag: string, value: string, styleOptions: StyleGroup[] = ['size', 'color', 'weight', 'style', 'align']): SeedEntry =>
|
||
({ tag, type: 'text', value, styleOptions });
|
||
const H = (tag: string, value: string, styleOptions: StyleGroup[] = ['size', 'color', 'align']): SeedEntry =>
|
||
({ tag, type: 'html', value, styleOptions });
|
||
const I = (tag: string): SeedEntry => ({ tag, type: 'image', value: '' });
|
||
|
||
export const contentSeed: SeedEntry[] = [
|
||
// --- Globali (site.ts) ---
|
||
T('global.contact.phone', site.phone, []),
|
||
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.whatsapp', '351 753 5977', []),
|
||
T('global.hours.1', site.hours[0], []),
|
||
T('global.hours.2', site.hours[1], []),
|
||
T('global.nav.1.label', site.navigation[0].label, []),
|
||
T('global.nav.2.label', site.navigation[1].label, []),
|
||
T('global.nav.3.label', site.navigation[2].label, []),
|
||
T('global.nav.4.label', site.navigation[3].label, []),
|
||
T('global.nav.5.label', site.navigation[4].label, []),
|
||
T('global.nav.6.label', site.navigation[5].label, []),
|
||
T('global.nav.7.label', site.navigation[6].label, []),
|
||
|
||
// --- Header ---
|
||
T('header.logo.alt', 'InsanityLab', []),
|
||
I('header.logo.image'),
|
||
|
||
// --- Footer ---
|
||
I('footer.logo.image'),
|
||
H('footer.tagline', 'PERFORMANCE. BALANCE. LONGEVITY.'),
|
||
T('footer.about', 'Promuoviamo il movimento come cura di sé. Abitudini sostenibili per benessere fisico e mentale.'),
|
||
T('footer.col.training-title', 'Training'),
|
||
T('footer.col.services-title', 'Servizi'),
|
||
T('footer.col.contact-title', 'Contact'),
|
||
H('footer.copyright', '<strong>Insanitylab</strong>, All Rights Reserved'),
|
||
T('footer.social-label', 'Seguici', []),
|
||
T('footer.training.1.label', site.footerTraining[0].label, []),
|
||
T('footer.training.2.label', site.footerTraining[1].label, []),
|
||
T('footer.training.3.label', site.footerTraining[2].label, []),
|
||
T('footer.training.4.label', site.footerTraining[3].label, []),
|
||
T('footer.training.5.label', site.footerTraining[4].label, []),
|
||
T('footer.training.6.label', site.footerTraining[5].label, []),
|
||
T('footer.services.1.label', site.footerServices[0].label, []),
|
||
T('footer.services.2.label', site.footerServices[1].label, []),
|
||
T('footer.services.3.label', site.footerServices[2].label, []),
|
||
T('footer.services.4.label', site.footerServices[3].label, []),
|
||
T('footer.services.5.label', site.footerServices[4].label, []),
|
||
T('footer.services.6.label', site.footerServices[5].label, []),
|
||
|
||
// --- Contact form ---
|
||
T('form.field.first-name', 'Nome', []),
|
||
T('form.field.last-name', 'Cognome', []),
|
||
T('form.field.phone', 'Telefono', []),
|
||
T('form.field.email', 'E-mail', []),
|
||
T('form.field.message', 'Messaggio', []),
|
||
T('form.submit', 'Invia messaggio'),
|
||
T('form.msg.success', 'Messaggio inviato, ti ricontatteremo al più presto.', []),
|
||
T('form.msg.error-generic', 'Errore di invio, riprova più tardi.', []),
|
||
T('form.msg.error-network', 'Errore di rete, riprova più tardi.', []),
|
||
|
||
// --- Home: meta, training heading ---
|
||
T('home.meta.title', 'Performance. Balance. Longevity.', []),
|
||
T('home.training.title', 'Training'),
|
||
T('home.training.subtitle', 'Porta i tuoi allenamenti al livello successivo: trova il percorso più adatto alle tue esigenze.'),
|
||
|
||
// --- Home: hero ---
|
||
T('home.hero.title-line-1', 'PERFORMANCE.'),
|
||
T('home.hero.title-line-2', 'BALANCE.'),
|
||
T('home.hero.title-line-3', 'LONGEVITY.'),
|
||
T('home.hero.cta', 'Scopri'),
|
||
I('home.hero.image'),
|
||
|
||
// --- Home: info columns ---
|
||
T('home.info.col1.title', 'PERFORMANCE.'),
|
||
T('home.info.col2.title', 'BALANCE.'),
|
||
T('home.info.col3.title', 'LONGEVITY.'),
|
||
I('home.info.col1.image'),
|
||
I('home.info.col2.image'),
|
||
I('home.info.col3.image'),
|
||
|
||
// --- Home: feature blocks ---
|
||
T('home.feature.performance.title', 'PERFORMANCE'),
|
||
T('home.feature.performance.body', 'Allenamenti progettati su misura per adattarsi ai tuoi obiettivi e al tuo livello. Programmi mirati che sviluppano forza, resistenza e funzionalità in modo equilibrato. Un metodo efficace per migliorare le performance e ottenere risultati concreti e duraturi.'),
|
||
T('home.feature.performance.cta', 'Scopri'),
|
||
T('home.feature.balance.title', 'BALANCE'),
|
||
T('home.feature.balance.body', 'L’equilibrio tra corpo e mente è la base di ogni performance duratura. Attraverso movimento, recupero e gestione dello stress, costruiamo stabilità e controllo. Un approccio integrato che sostiene benessere, energia e continuità nel tempo.'),
|
||
T('home.feature.balance.cta', 'Scopri'),
|
||
T('home.feature.longevity.title', 'LONGEVITY'),
|
||
T('home.feature.longevity.body', 'Benessere completo tra movimento, nutrizione e stile di vita. Un percorso personalizzato che unisce prevenzione, recupero ed equilibrio. Investi nella tua salute e qualità della vita nel tempo.'),
|
||
T('home.feature.longevity.cta', 'Scopri'),
|
||
I('home.feature.performance.image'),
|
||
I('home.feature.balance.image'),
|
||
I('home.feature.longevity.image'),
|
||
|
||
// --- Home: quote banner ---
|
||
H('home.quote.text', '<strong>PERFORMANCE</strong> È SPINGERE OLTRE I PROPRI LIMITI, <strong>BALANCE</strong> È SAPERLI ASCOLTARE, <strong>LONGEVITY</strong> È COSTRUIRE NEL TEMPO CIÒ CHE DAVVERO CONTA.'),
|
||
T('home.quote.cite', 'Insanitylab', []),
|
||
I('home.quote.image'),
|
||
|
||
// --- Home: training cards (data-driven da trainings.ts) ---
|
||
T('home.training-cards.link-label', 'Scopri', []),
|
||
...trainings.flatMap((tr) => [
|
||
T(`training.${tr.id}.title`, tr.title),
|
||
T(`training.${tr.id}.caption`, tr.caption),
|
||
T(`training.${tr.id}.description`, tr.description),
|
||
T(`training.${tr.id}.cta-label`, tr.cta.label, []),
|
||
I(`training.${tr.id}.image`),
|
||
]),
|
||
|
||
// --- Home: servizi ---
|
||
T('home.services.title', 'Servizi'),
|
||
T('home.services.body', 'Questi sono i servizi delle classi di Insanity Lab selezionati per voi. Abbiamo scelto i migliori percorsi per offrirvi un’esperienza di allenamento completa e mirata.'),
|
||
|
||
// --- Home: team (data-driven da team.ts) ---
|
||
H('home.team.title', 'Team<br />Trainer'),
|
||
T('home.team.cta', 'Scopri team', []),
|
||
...team.flatMap((m) => {
|
||
const slug = m.shortName.toLowerCase();
|
||
return [
|
||
T(`team.${slug}.name`, m.name, []),
|
||
T(`team.${slug}.short-name`, m.shortName),
|
||
T(`team.${slug}.role`, m.role, []),
|
||
T(`team.${slug}.bio`, m.bio),
|
||
I(`team.${slug}.image`),
|
||
I(`team.${slug}.image-about`),
|
||
];
|
||
}),
|
||
|
||
// --- Home: metodo (data-driven da method.ts) ---
|
||
H('home.method.title', 'Il metodo<br />InsanityLab'),
|
||
T('home.method.cta', 'Contattaci', []),
|
||
H('method.intro', methodIntro.replace('Metodo Insanitylab', '<strong>Metodo Insanitylab</strong>')),
|
||
T('method.extra-note', methodExtraNote, []),
|
||
...methodSteps.flatMap((s) => [
|
||
T(`method.step.${s.n}.title`, s.title),
|
||
T(`method.step.${s.n}.text`, s.text),
|
||
I(`method.step.${s.n}.image`),
|
||
]),
|
||
|
||
// --- Home: partner (data-driven da partners.ts) ---
|
||
...partners.flatMap((p, i) => [
|
||
T(`partner.${i + 1}.name`, p.name, []),
|
||
I(`partner.${i + 1}.image`),
|
||
]),
|
||
|
||
// --- Agenda (scope limitato: titolo, discipline, giorni, slot — celle escluse) ---
|
||
T('agenda.title', 'Agenda'),
|
||
...disciplines.map((d, i) => T(`agenda.discipline.${i + 1}`, d, [])),
|
||
...days.map((d, i) => T(`agenda.day.${i + 1}`, d, [])),
|
||
...slots.map((s, i) => T(`agenda.slot.${i + 1}`, s, [])),
|
||
|
||
// --- About: meta, hero ---
|
||
T('about.meta.title', 'Insanitylab', []),
|
||
T('about.meta.description', 'Mission, storia, team e metodo di InsanityLab: un laboratorio esclusivo dove movimento, prevenzione e performance convivono in un approccio personalizzato.', []),
|
||
T('about.hero.title', 'Insanitylab', []),
|
||
|
||
// --- About: mission ---
|
||
T('about.mission.title', 'Mission'),
|
||
T('about.mission.body', 'In InsanityLab crediamo che il movimento non debba essere vissuto come un obbligo o un sacrificio, ma come una forma autentica di cura di sé. La nostra missione è accompagnare ogni persona in un percorso di consapevolezza, aiutandola a riscoprire il benessere fisico e mentale attraverso un approccio sostenibile, concreto e duraturo.'),
|
||
I('about.mission.image'),
|
||
|
||
// --- About: direzione + approccio ---
|
||
T('about.direzione.title', 'Direzione'),
|
||
T('about.direzione.body', 'Non ci limitiamo ad allenare il corpo: creiamo percorsi personalizzati che uniscono movimento, equilibrio e benessere, attraverso il supporto di professionisti qualificati, programmi su misura e un approccio centrato sulla persona e su risultati duraturi.'),
|
||
T('about.direzione.cta', 'Scopri'),
|
||
T('about.approccio.title', 'Approccio'),
|
||
T('about.approccio.body', 'InsanityLab si distingue per un approccio serio e personalizzato al benessere, basato su competenze specializzate, costanza e cura quotidiana, rivolto a chiunque voglia migliorare il proprio stile di vita in modo consapevole e duraturo.'),
|
||
T('about.approccio.cta', 'Contattaci'),
|
||
|
||
// --- About: about ---
|
||
T('about.about.title', 'About'),
|
||
T('about.about.body', "InsanityLab nasce dalla visione di creare uno spazio dove il fitness incontrasse la salute in modo reale e profondo, non superficiale. L'idea di partenza era semplice ma rivoluzionaria nel settore: il movimento non dovrebbe essere vissuto come un sacrificio estetico, ma come un atto di cura verso se stessi. Da questa convinzione è nato un laboratorio esclusivo di benessere, pensato da chi conosce il corpo in profondità — non solo come semplici trainer, ma come osteopati e chinesiologi esperti del movimento."),
|
||
I('about.about.image'),
|
||
|
||
// --- About: convenzioni ---
|
||
T('about.convenzioni.title', 'Convenzioni'),
|
||
T('about.convenzioni.body', "InsanityLab collabora con aziende, enti e organizzazioni che desiderano investire concretamente nel benessere delle proprie persone, attraverso programmi dedicati alla salute, al movimento e alla qualità della vita. Le convenzioni nascono con l'obiettivo di portare il valore del benessere anche all'interno del contesto professionale, creando percorsi che favoriscano equilibrio fisico, prevenzione e performance quotidiana."),
|
||
T('about.convenzioni.item1', 'Le realtà convenzionate possono accedere a programmi di welfare aziendale personalizzati.'),
|
||
T('about.convenzioni.item2', 'Ogni collaborazione parte da una consulenza preliminare per analizzare esigenze e obiettivi, così da sviluppare soluzioni efficaci e sostenibili.'),
|
||
T('about.convenzioni.item3', "Le convenzioni vengono definite su misura insieme a InsanityLab, in base alle caratteristiche e alle necessità dell'azienda partner."),
|
||
T('about.convenzioni.cta-text', 'Per ricevere maggiori informazioni o attivare una convenzione:', []),
|
||
I('about.convenzioni.image'),
|
||
|
||
// --- About: team ---
|
||
T('about.team.title', 'Team'),
|
||
T('about.team.body', 'Il team di InsanityLab riunisce professionisti specializzati in allenamento, salute e benessere, con un approccio multidisciplinare basato su competenza, personalizzazione e attenzione alla persona.'),
|
||
T('about.team.staff-intro', 'Accanto ai fondatori opera un team in continua crescita composto da trainer e professionisti con specializzazioni complementari:'),
|
||
|
||
// --- About: metodo ---
|
||
T('about.metodo.title', 'Metodo'),
|
||
T('about.metodo.body', 'Il team InsanityLab lavora con un approccio empatico e personalizzato, seguendo ogni persona in un percorso continuo e su misura. Unisce competenze multidisciplinari in allenamento, prevenzione, riabilitazione e performance, supportate da formazione costante. Il metodo si basa su sinergia, condivisione e qualità, per generare risultati concreti e duraturi.'),
|
||
T('about.metodo.closing', 'In poche parole, il team di InsanityLab è composto da professionisti che credono profondamente in ciò che fanno: un gruppo unito da valori condivisi, formato per eccellere e guidato dalla convinzione che il movimento sia uno strumento di benessere, equilibrio e qualità della vita.'),
|
||
I('about.metodo.image'),
|
||
|
||
// --- About: studios ---
|
||
T('about.studios.title', 'In-Sanity Studios'),
|
||
T('about.studios.body1', "IN-SANITY STUDIOS è il nuovo spazio professionale nato dall'evoluzione di InsanityLab, dedicato ai professionisti della salute e del benessere."),
|
||
T('about.studios.body2', "Il progetto nasce con l'obiettivo di offrire a liberi professionisti uno spazio elegante, riservato e già attrezzato, in cui poter svolgere la propria attività all'interno di un contesto consolidato e altamente qualificato, senza dover affrontare i costi e le complessità di una struttura indipendente."),
|
||
T('about.studios.body3', 'IN-SANITY STUDIOS si rivolge a figure specializzate nel settore salute e wellness, come fisioterapisti, osteopati, psicologi, nutrizionisti, massaggiatori e altri professionisti dedicati alla cura della persona. Ogni studio è progettato per garantire comfort, professionalità e continuità operativa, all\'interno di un ambiente coerente con la filosofia di InsanityLab: mettere il benessere globale della persona al centro del percorso.'),
|
||
I('about.studios.image'),
|
||
|
||
// --- About: vision ---
|
||
T('about.vision.title', 'Vision'),
|
||
T('about.vision.body1', "InsanityLab nasce con l'obiettivo di aiutare le persone a ritrovare energia ed equilibrio attraverso il movimento, promuovendo un approccio autentico, scientifico e umano al benessere. La sua visione va oltre l'estetica e la performance: allenarsi significa prendersi cura di sé, costruendo abitudini sane, sostenibili e orientate alla longevità, alla prevenzione e alla qualità della vita."),
|
||
T('about.vision.body2', "L'obiettivo è diventare un punto di riferimento capace di lasciare un impatto reale nella comunità, trasformando il movimento in uno strumento di salute, consapevolezza e identità."),
|
||
I('about.vision.image'),
|
||
|
||
// --- About: storylab + timeline (Timeline.astro) ---
|
||
T('about.storylab.title', 'Storylab'),
|
||
T('about.storylab.body', 'Scopri la nostra storia: come nasce InsanityLab, perché abbiamo deciso di creare qualcosa di diverso e chi sono i visionari che hanno trasformato questa idea in un nuovo modo di vivere benessere, movimento e salute.'),
|
||
T('about.timeline.label', 'INSANITYLAB 2021-2024', []),
|
||
T('about.timeline.open-text', "Il percorso di crescita di InsanityLab si è sviluppato attraverso tappe precise e coerenti con la visione iniziale. Nato nel 2021 con un piccolo team e grandi ambizioni, il progetto ha conosciuto una forte evoluzione nel 2024, anno in cui il servizio si è ampliato attraverso nuovi format come gli small group e una sempre maggiore specializzazione nella profilazione fisica del cliente, grazie a sistemi avanzati di valutazione e monitoraggio. Parallelamente, anche l'area dedicata alla riabilitazione e all'esercizio preventivo si è consolidata, ponendo le basi per un importante salto di qualità."),
|
||
T('about.timeline.stage1.label', 'INSANITYLAB 2025', []),
|
||
T('about.timeline.stage1.text', 'Contenuto in arrivo: il cliente fornirà il testo di questa tappa.'),
|
||
T('about.timeline.stage2.label', 'INSANITYLAB 2026', []),
|
||
T('about.timeline.stage2.text', 'Contenuto in arrivo: il cliente fornirà il testo di questa tappa.'),
|
||
T('about.timeline.stage3.label', 'INSANITYLAB OGGI', []),
|
||
T('about.timeline.stage3.text', 'Contenuto in arrivo: il cliente fornirà il testo di questa tappa.'),
|
||
// --- Services: lista (/services) ---
|
||
T('services.meta.title', 'Servizi', []),
|
||
T('services.meta.description', 'I servizi InsanityLab: Personal Training, Performance Class, Coaching, Profilazione, Osteopatia e Nutrizione.', []),
|
||
T('services.hero.title', 'Servizi', []),
|
||
T('services.intro.body', "Questi sono i servizi delle classi di Insanity Lab selezionati per voi. Abbiamo scelto i migliori percorsi per offrirvi un'esperienza di allenamento completa e mirata."),
|
||
T('services.card.more-label', 'Per saperne di più →', []),
|
||
|
||
// --- Services: dettaglio (data-driven da services.ts) ---
|
||
...services.flatMap((p) => [
|
||
T(`service.${p.slug}.title`, p.title),
|
||
T(`service.${p.slug}.subtitle`, p.subtitle),
|
||
T(`service.${p.slug}.excerpt`, p.excerpt),
|
||
T(`service.${p.slug}.long-description`, p.longDescription),
|
||
...p.features.map((f, i) => T(`service.${p.slug}.feature.${i + 1}`, f)),
|
||
...p.faq.flatMap((item, i) => [
|
||
T(`service.${p.slug}.faq.${i + 1}.q`, item.q),
|
||
T(`service.${p.slug}.faq.${i + 1}.a`, item.a),
|
||
]),
|
||
I(`service.${p.slug}.image`),
|
||
]),
|
||
|
||
// --- Services: dettaglio, template ---
|
||
T('service.side.categories-label', 'Categorie'),
|
||
T('service.side.category.1', 'Fitness', []),
|
||
T('service.side.category.2', 'Salute', []),
|
||
T('service.side.category.3', 'Stile di vita', []),
|
||
T('service.side.category.4', 'Nutrizione', []),
|
||
T('service.side.others-label', 'Altri servizi'),
|
||
H('service.pricing.empty-note', 'Contattaci per i dettagli di questo servizio. <a href="/contact">Scrivici →</a>'),
|
||
T('service.pricing.per', 'al mese, semestrale', []),
|
||
T('service.pricing.entries-singular', 'ingresso settimanale', []),
|
||
T('service.pricing.entries-plural', 'ingressi settimanali', []),
|
||
T('service.pricing.buy-cta', 'Acquista', []),
|
||
|
||
// --- Pricing performance class (data-driven da pricing.ts; monthly/entries restano nel data file) ---
|
||
T('pricing.heading', performanceClassPricing.heading),
|
||
T('pricing.intro', performanceClassPricing.intro),
|
||
...performanceClassPricing.groups.flatMap((g, gi) => [
|
||
T(`pricing.group.${gi + 1}.label`, g.label),
|
||
...g.plans.flatMap((plan, pi) => [
|
||
T(`pricing.group.${gi + 1}.plan.${pi + 1}.note`, plan.note, []),
|
||
T(`pricing.group.${gi + 1}.plan.${pi + 1}.installments`, plan.installments, []),
|
||
T(`pricing.group.${gi + 1}.plan.${pi + 1}.best`, plan.best, []),
|
||
]),
|
||
]),
|
||
|
||
// --- Training: meta, hero, intro, trial ---
|
||
T('training.meta.title', 'Training', []),
|
||
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.'),
|
||
|
||
// --- Contact ---
|
||
T('contact.meta.title', 'Contatti', []),
|
||
T('contact.meta.description', 'Contatta InsanityLab: Via Leandro Alberti 76, Bologna. Compila il form o chiamaci per una consulenza iniziale.', []),
|
||
T('contact.hero.title', 'Contattaci', []),
|
||
I('contact.hero.image'),
|
||
T('contact.map.button', 'Carica la mappa (Google Maps)', []),
|
||
T('contact.map.note', 'La mappa viene caricata da Google solo dopo il tuo consenso.', []),
|
||
T('contact.info.address-label', 'Indirizzo'),
|
||
T('contact.info.phone-label', 'Telefono'),
|
||
T('contact.info.email-label', 'E-mail'),
|
||
T('contact.invite', 'Per informazioni o per richiedere una consulenza iniziale, compila il form. Un team specializzato ti accoglierà e ti ricontatterà al più presto, oppure lasciaci il tuo contatto.'),
|
||
|
||
// --- 404 ---
|
||
T('notfound.meta.title', 'Pagina non trovata', []),
|
||
T('notfound.eyebrow', 'Errore 404', []),
|
||
T('notfound.title', 'Pagina non trovata'),
|
||
T('notfound.body', 'La pagina che cerchi non esiste o è stata spostata.'),
|
||
T('notfound.cta', 'Torna alla home', []),
|
||
|
||
// --- Promo ed eventi (promo-eventi.astro) ---
|
||
// Titolo del banner PageHero (usato dalla variante promo-eventi2)
|
||
T('promo.pagehero.title', 'Promo ed eventi'),
|
||
// Hero
|
||
T('promo.hero.badge', 'insanity.lab · bologna savena'),
|
||
T('promo.hero.title1', 'Allenati con metodo.'),
|
||
T('promo.hero.accent', 'Scegli come'),
|
||
T('promo.hero.title2', 'vuoi farlo.'),
|
||
H('promo.hero.desc', 'Allenati con flessibilità, senza vincoli, da subito.<br>Acquisto online in pochi secondi, pagamento sicuro via Stripe.'),
|
||
T('promo.hero.cta', 'Le nostre proposte', []),
|
||
// Launch
|
||
T('promo.launch.badge', 'solo per apertura nuova sede Settembre 2026'),
|
||
T('promo.launch.title', 'Il nostro metodo nasce per durare.'),
|
||
T('promo.launch.accent', "Per l'apertura, un'eccezione. Solo per poco."),
|
||
T('promo.launch.desc', "In-Sanity Lab lavora per percorsi strutturati — trimestrali, semestrali — perché i risultati veri si costruiscono nel tempo. Per la nuova apertura, ci sarà un'eccezione: 5 incontri pensati come un vero mini-percorso, non semplici lezioni sciolte."),
|
||
// Perché 5
|
||
T('promo.why5.text', 'Non è una prova. È un percorso in miniatura — per capire come lavoriamo prima di impegnarti su un programma trimestrale o semestrale.'),
|
||
// Label bottone acquisto (condivisa dalle 4 card)
|
||
T('promo.buy-label', 'Acquista', []),
|
||
// Card 1 — One to One
|
||
T('promo.card.1.eyebrow', 'Personal training', []),
|
||
T('promo.card.1.title', 'One to One'),
|
||
T('promo.card.1.price', '163 €', []),
|
||
T('promo.card.1.price-old', '300 €', []),
|
||
T('promo.card.1.unit', '5 incontri', []),
|
||
T('promo.card.1.feature.1', 'Screening iniziale, definizione dei tuoi obiettivi'),
|
||
T('promo.card.1.feature.2', 'Check-up con profilazione fisica, il tuo punto di partenza'),
|
||
T('promo.card.1.feature.3', 'PT dedicato, presente a ogni sessione'),
|
||
T('promo.card.1.feature.4', 'In-sanity plan, il tuo programma personalizzato'),
|
||
// Card 2 — Small Group (in evidenza)
|
||
T('promo.card.2.badge', 'Più scelto', []),
|
||
T('promo.card.2.eyebrow', 'Personal training', []),
|
||
T('promo.card.2.title', 'Small Group'),
|
||
T('promo.card.2.price', '110 €', []),
|
||
T('promo.card.2.price-old', '220 €', []),
|
||
T('promo.card.2.unit', '5 incontri', []),
|
||
T('promo.card.2.feature.1', 'Screening iniziale, definizione dei tuoi obiettivi'),
|
||
T('promo.card.2.feature.2', 'Check-up con profilazione fisica, il tuo punto di partenza'),
|
||
T('promo.card.2.feature.3', 'PT dedicato, presente a ogni sessione'),
|
||
T('promo.card.2.feature.4', 'In-sanity plan, il tuo programma personalizzato'),
|
||
// Card 3 — Reformer
|
||
T('promo.card.3.eyebrow', 'Pilates class', []),
|
||
T('promo.card.3.title', 'Reformer'),
|
||
T('promo.card.3.price', '100 €', []),
|
||
T('promo.card.3.price-old', '140 €', []),
|
||
T('promo.card.3.unit', '5 incontri', []),
|
||
T('promo.card.3.feature.1', 'Core, postura e mobilità su macchina Reformer'),
|
||
T('promo.card.3.feature.2', 'Lavoro a basso impatto sulle articolazioni'),
|
||
T('promo.card.3.feature.3', 'Percorso breve, non lezioni isolate'),
|
||
// Card 4 — Holistic class
|
||
T('promo.card.4.eyebrow', 'Holistic class', []),
|
||
T('promo.card.4.title', 'Pilates Mat, Mobility, Yoga'),
|
||
T('promo.card.4.price', '50 €', []),
|
||
T('promo.card.4.price-old', '100 €', []),
|
||
T('promo.card.4.unit', '5 incontri', []),
|
||
T('promo.card.4.feature.1', 'Mobilità articolare, respirazione, equilibrio'),
|
||
T('promo.card.4.feature.2', 'Da solo, o integrato nei tuoi allenamenti'),
|
||
T('promo.card.4.feature.3', 'Adatto a tutti i livelli'),
|
||
// Nota validità
|
||
T('promo.validity-note', 'Disponibile solo per l\'apertura · Valido entro 2 mesi dal primo incontro e comunque non oltre il 1° dicembre 2026', []),
|
||
// FAQ — le risposte usano il segnaposto {{whatsapp}}, sostituito a runtime con global.whatsapp
|
||
T('promo.faq.title', 'Tutto quello che vuoi sapere prima di acquistare.'),
|
||
T('promo.faq.1.q', 'Come funziona il pacchetto a incontri per One to One e Small Group?'),
|
||
H('promo.faq.1.a', 'Acquisti il pacchetto online con pagamento sicuro via <span class="hl">Stripe</span>. Ricevi una conferma via email. Poi ci scrivi su <span class="hl">WhatsApp ({{whatsapp}})</span> per prenotare le singole sessioni in base agli orari disponibili. Verrai ricontattato subito tramite messaggio o chiamata! Gli incontri sono validi 2 mesi dalla data del primo incontro e comunque non oltre il 1° dicembre 2026.'),
|
||
T('promo.faq.2.q', 'Come funziona il percorso Reformer o Holistic Class?'),
|
||
H('promo.faq.2.a', 'Acquisti il pacchetto online con pagamento sicuro via <span class="hl">Stripe</span>. Ricevi una conferma via email. Poi vai nella schermata Home, clicca il servizio che hai acquistato e seleziona autonomamente la class nel giorno e nell\'orario che desideri. In caso di problemi contattaci su <span class="hl">WhatsApp ({{whatsapp}})</span>! Gli incontri sono validi 2 mesi dalla data del primo incontro e comunque non oltre il 1° dicembre 2026.'),
|
||
T('promo.faq.3.q', 'Posso usare gli incontri su servizi diversi?'),
|
||
H('promo.faq.3.a', 'Ogni pacchetto è dedicato a un singolo servizio (<span class="hl">One to One</span>, <span class="hl">Small Group</span>, <span class="hl">Reformer</span> o <span class="hl">Holistic Class</span>). Se vuoi accedere a più servizi puoi acquistare pacchetti separati per ciascuno.'),
|
||
T('promo.faq.4.q', 'Posso regalare un pacchetto a qualcun altro?'),
|
||
H('promo.faq.4.a', 'Sì. Puoi acquistare il pacchetto a tuo nome — per la fatturazione — e farlo utilizzare a un\'altra persona: perfetto se vuoi fare un regalo a un amico o un familiare. Ti basterà comunicarci chi userà gli incontri quando ci scriverai su <span class="hl">WhatsApp ({{whatsapp}})</span> per organizzare le sessioni.'),
|
||
T('promo.faq.5.q', 'Il pagamento è sicuro?'),
|
||
H('promo.faq.5.a', 'Sì. Il pagamento avviene tramite <span class="hl">Stripe</span>, una delle piattaforme di pagamento online più sicure al mondo. I tuoi dati bancari non vengono mai condivisi con insanity.lab — tutto è gestito in modo cifrato da Stripe.'),
|
||
T('promo.faq.6.q', 'Posso chiedere un rimborso?'),
|
||
H('promo.faq.6.a', 'Per richieste di rimborso o problemi con l\'acquisto scrivici su <span class="hl">WhatsApp</span> o via email. Valutiamo ogni situazione in modo diretto e umano.'),
|
||
|
||
];
|
||
|
||
export const seedByTag = new Map(contentSeed.map((e) => [e.tag, e]));
|