Il <p> reso da <T> collassava i newline (white-space: normal). Aggiunto
white-space: pre-line al paragrafo, ancorato al contenitore col cid via :global.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Aggiornato il seed del label nav (site.ts). Il valore renderizzato viene dal
blocco taggato global.nav.1.label, aggiornato anche in produzione.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rimosso il render di <Agenda /> (e l'import) da /training. Il componente
Agenda.astro resta disponibile per riuso.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- ServicesGrid: filtra grid !== false come /services (via Small Group, Rehab,
Holistic Class, Reformer Class dalla griglia Servizi in home)
- promo-eventi: badge "solo per apertura nuova sede Settembre 2026"
- MethodSteps e about: .tcard/.method__circle usano :global(img) così gli
override <img> di <TImg> (senza cid) ricevono border-radius/object-fit
- about: griglia team a flex centrato, ultima riga incompleta non piu a sinistra
- team: rimosso Antonello D'Alessandro (staff about e homeTeam)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sostituita la foto piccola (770px) con la versione HD della stessa scena
reformer (1600x1066) dagli asset Figma.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
La foto di Holistic Class mostrava macchinari Reformer (era la stessa immagine
di Reformer Class). Sostituita con una foto Pilates/Yoga a corpo libero (due
persone di età diverse, coerente con 'adatta a tutti i livelli'), dagli asset Figma.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Gli step del blocco Metodo (home) erano stati riscritti dal pannello ma solo nel
DB di sviluppo: il database non è versionato, quindi non erano mai arrivati in
produzione (che mostrava ancora i default del seed). Aggiornato il seed method.ts
(Check-up fisico, Insanity plan, Monitoraggio costante + testi) e aggiunta
migrazione idempotente che allinea le righe di prod ancora ai vecchi default.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Conclusa la migrazione al dominio ufficiale: il sottodominio di transizione
non serve più il sito ma redirige permanentemente a insanitylab.it.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Mappa Google su /contact ripristinata a click-to-load (consenso esplicito):
nessun dato inviato a Google prima del click dell'utente
- Nuove pagine /privacy e /cookie-policy (informativa art. 13 GDPR e cookie),
compilate con i dati del titolare IN-SANITY LAB S.R.L. (P.IVA 03927341200)
- Footer: ragione sociale + P.IVA e link a Privacy e Cookie Policy
- Form contatti: link all'informativa privacy sotto l'invio
- sitemap: aggiunte /privacy e /cookie-policy
Testi legali da far validare; base tecnica conforme (no analytics/tracker,
solo cookie tecnici, font self-hosted).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- README riscritto come documentazione viva e completa: stack, funzionalita'
(contenuti taggati + GUID + modifica inline, 3 ruoli admin/superuser/user,
blog ownership, gestione utenti), env SMTP Aruba, deploy Docker/Traefik,
dominio insanitylab.it, migrazioni DB e trappole tecniche note
- rimossi docs/superpowers/plans e docs/superpowers/specs: piani gia' eseguiti
e spec di design ora accorpati nel README (restano nella storia git)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- astro.config: site=https://insanitylab.it, allowedDomains apex+www+tielogic
- compose/Traefik: router serve insanitylab.it e (in transizione) tielogic.xyz;
www.insanitylab.it redirige 301 all'apex. TLS Let's Encrypt via certresolver.
tielogic resta servito per non avere downtime finché il DNS non propaga;
il suo redirect all'apex verra' attivato dopo la conferma che il dominio e' live.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Lo span .hero__line è reso dal componente <T> e non riceve il data-astro-cid
di HeroSlider, quindi le regole scoped .hero__line (display:block e animazioni)
non lo colpivano e le righe restavano inline. Ancorato a .hero__text/h1 (che il
cid ce l'hanno) con :global(.hero__line), come già fatto per .prog__desc.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Tolte da index.astro le sezioni <Agenda> e <TeamSection> con i relativi import.
I componenti restano nel codice (riutilizzabili altrove). Modifica isolata su
branch dedicato per valutazione col cliente.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Grafica di brand (barre di progressione, curva, checklist protocolli) al posto
della vecchia foto, coerente col testo aggiornato dello step 3.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
smtps.aruba.it:465 con casella autenticata del dominio (il mittente deve
coincidere con la casella SMTP). Il dominio invia già la posta via Aruba
(SPF include:aruba.it). Credenziali reali solo nel .env (git-ignored) e sul VPS.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Rimossa la sezione "Prenota la lezione di prova" da /training (markup,
import, CSS, seed e blocchi DB relativi)
- Titoli dei riquadri Training non più forzati in minuscolo: rispettano il
testo del DB (One to One, Small Groups, ecc.)
- Footer e pagina Contatti con i due ingressi dello stesso stabile
(Via Leandro Alberti 76 e Via De Mattiolo 5) più l'email; nuovo tag
global.contact.map-query e migrazione DB idempotente dell'indirizzo
- Mappa Google in /contact caricata automaticamente e a piena dimensione
(rimosso il bottone e il relativo script)
- Landing Promo ed eventi: rimossa la barra contatti in fondo
- service-icons allineate agli slug attuali (one-to-one, small-group;
rimosse le chiavi obsolete personal-training e pilates-flow)
- Immagini: foto Rehab corretta (prima era di osteopatia) su program-rehab
e training-rehab; bande nere letterbox rimosse dalla foto di osteopatia;
nuova immagine grafica per Profilazione con grafici HRV (ECG, tacogramma
R-R, Poincaré plot)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Servizi:
- Personal Training rinominato "One to One" (slug /services/one-to-one) con
redirect 301 dal vecchio URL e migrazione DB idempotente dei contenuti taggati
- Nuova pagina "Small Group" (slug /services/small-group, fuori dalla griglia)
- Rimossi i titoli intro di /training e /services e le liste feature di One to
One, Small Group, Rehab e Osteopatia; la lista feature ora è condizionale
- Fix elenco puntato nel long-description (white-space: pre-line, selettore
ancorato al container per gli elementi resi dal componente <T>)
- Immagine di Performance Class aggiornata
- Nella griglia Servizi i riquadri "One to One" e "Performance Class" rimandano
a /training; nella pagina Training i riquadri One to One e Small Group aprono
le rispettive schede servizio
Landing:
- Pagina "Promo ed eventi" (slug /promo-eventi) integrata nel sito con header e
footer condivisi, basata sul nuovo mockup di lancio
- Card a 5 incontri con prezzi edizione apertura, FAQ ad accordion e acquisto
tramite gestionale bsport
- Nuova voce di menu "Promo ed eventi"
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Testi riscritti da documento cliente: about.about.body, convenzioni.item1/item2
(rimosso "gratuita"), studios.body1 (versione breve). Seed + migrazione DB
idempotente (guardia via frammento LIKE, rispetta le modifiche da pannello).
- Rimosse dalla pagina le sezioni marcate "LEVARE" nel documento: Timeline/StoryLab,
Metodo (presente in home) e Vision. I tag restano nel seed per un eventuale ripristino.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017rUFjLYZ1TZ7DgxwTR5q9K
- trainings.ts: da 4 a 6 riquadri (One to One, Small Group max 4, Rehab,
Holistic Class ex Performance Class, Reformer Class nuova, Coaching ex Fit
Remote); anche in Homepage. CTA "Scopri" verso le pagine dettaglio.
- services.ts: aggiunte pagine dettaglio rehab/holistic-class/reformer-class con
flag grid:false (fuori dalla griglia /services ma raggiungibili come
approfondimento dai riquadri Training). Rehab torna consultabile su /services/rehab.
- index/[slug] servizi filtrano grid!==false; rimosso redirect /services/rehab.
- Footer Training portato a 6 voci con ancore aggiornate; TrainingCards tone-safe.
- Foto Reformer dal documento cliente; card Rehab/Holistic/Coaching con
immagini placeholder (da confermare). Migrazione DB idempotente per label/meta.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017rUFjLYZ1TZ7DgxwTR5q9K
- services.ts: nuovi servizi profilazione (copy bozza dal metodo ISL) e
osteopatia (copy dal documento cliente); rehab esce da Servizi (va in Training).
- Redirect 301 dai vecchi slug: pilates-flow -> profilazione, rehab -> training.
- Footer, icone, sitemap e meta aggiornati; migrazione DB idempotente per le
label footer e la meta description (contenuti live in SQLite).
- Immagine osteopatia riusa la foto rehab (come da mockup cliente).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017rUFjLYZ1TZ7DgxwTR5q9K