Commit Graph

83 Commits

Author SHA1 Message Date
MVA Global Fret
e23cc9ee33 Switch parallax intro to Earth-from-space video, drop static photo overlay
Replace clouds video (Pexels 2098989) with actual Earth-from-space footage
(Pexels 854275 — Europe/Africa visible + orbiting satellite) and remove
the static Unsplash Earth photo layer that was overlaying the video.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-04 23:08:28 +02:00
MVA Global Fret
ff8baab8a0 Replace parallax intro with video bg + red Paris-Tana route
- Background video: aerial cloudscape (Pexels free video, 7.4 MB SD)
  autoplay, loop, muted; fastest mouse parallax (-45px). Hue-shifted
  toward navy and slightly desaturated.
- Earth-from-space photo overlaid in screen blend mode at 78%
  opacity so the cloud motion shows through; medium parallax.
- Navy night tint preserves brand palette and central legibility.
- New SVG route layer: thin red gradient stroke (1.5px) curving
  Paris → Antananarivo, with a glow filter, a soft halo path
  beneath, two fixed pin markers at each endpoint, and a white
  pulse traveling along the path on a 3.6s loop.
- Centered card content was stripped to JUST the gold "Accéder au
  site" button (continuous pulse ring + hover shine + lift).

The full text block (welcome / subtitle / 3 meta stats) is gone.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 22:37:10 +02:00
MVA Global Fret
ca8538b331 Redo parallax intro with real photos and mouse-only motion
Previous SVG illustrations and emojis were dropped per user feedback.
The new intro is a single fixed viewport (no scroll) where every
layer reacts to mouse movement only:

  Layer 1 — Real photo: Earth at night from space (NASA / Unsplash),
            slow parallax (-18px max).
  Layer 2 — Navy gradient tint to anchor the brand palette and
            ensure central card legibility.
  Layer 3 — Real photo: aerial sunset clouds (Unsplash), 28%
            opacity with mix-blend-mode soft-light, faster
            parallax (-32px max).
  Layer 4 — Gold radial glow that follows the cursor (mix-blend
            screen), giving an interactive "spotlight" feel.
  Layer 5 — 12 floating gold particles with continuous CSS
            animation, fastest parallax (-55px max).

Center card (glassmorphism, navy + gold border, blur 24px) tilts in
the OPPOSITE direction (+12px) for a 3D depth illusion. The CTA
button has a continuous pulse ring, hover lift + shine sweep, and
routes to accueil.html.

Mobile: device-orientation events drive the parallax instead of
mouse. prefers-reduced-motion kills all animations.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 22:27:17 +02:00
MVA Global Fret
1ddd7b12d8 Add cinematic parallax intro page as new landing
The new index.html is a 3-act scroll-driven storytelling intro:

  Act 1 (Tarmac at sunset)
    Sunset gradient sky, mountain silhouettes, hangar, runway with
    centerline lights. Inline SVG cargo plane (MVA-branded gold tail)
    sits on the ground while box emojis cycle up a loading ramp.

  Act 2 (Take-off at dusk)
    Dusk sky, two parallax cloud layers and distant mountains. The
    plane translates diagonally up-and-right with a slight tilt and
    a glowing contrail, sized down progressively.

  Act 3 (Arrival at night)
    Deep navy night sky with twinkling stars, a glowing moon, and
    the Madagascar coastline silhouette. A small plane fades in
    descending toward the island, then a centered CTA block reveals:
    "Bienvenue à bord" with the gold "Accéder au site" button that
    routes to accueil.html (the real homepage).

Implementation:
- Pure CSS layered scenes; no library
- Scroll progress driven by a single CSS custom property --scroll
  (0→1) updated via rAF, layers transform off it
- Mouse-move parallax on layers via --mx/--my (skipped on touch)
- Inline SVG plane reused across the 3 scenes
- All text is i18n-driven with a new `intro` section in FR/EN/MG

Architecture changes:
- index.html  → new parallax intro
- accueil.html → former index.html content (full homepage)
- All nav/logo/footer links updated index.html → accueil.html across
  the 8 existing pages
- Mobile-nav on accueil.html now also includes Service Commande

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 22:18:02 +02:00
MVA Global Fret
3ad606610b Replace generic icons with real payment brand logos
Bundle the actual SVG logos in images/payment-logos/ and reference
them with <img> instead of Font Awesome glyphs:

- mvola.svg (from mvola.mg, the green wordmark)
- orange.svg (Wikimedia Commons, square orange)
- airtel.svg (Wikimedia Commons, red wordmark)
- visa.svg (Wikimedia Commons)
- mastercard.svg (Wikimedia Commons)

New CSS block (.payment-logos-grid + .payment-logo-card) gives a
clean 4-column white-card layout with hover lift, gold border tint
on hover, and a 2-column responsive layout on mobile. The bank-card
slot now displays both Visa and Mastercard logos side-by-side.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 22:05:09 +02:00
MVA Global Fret
560a598d19 Fix uneven top border on Tarifs main pricing card
Same fix as for Service Commande: apply .pricing-card--flat modifier
so the gold ::before bar is hidden and the border is uniform 2px on
all sides instead of looking thicker at the top.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 21:45:27 +02:00
MVA Global Fret
db0a39db7d Extend CGV Article 8 with La Poste drop-off and 22000 Ar/kg cap
Two new clauses inserted into the loss-procedure article:

- Point 2: Drop-off at La Poste in France by a third party on behalf
  of the Client. The La Poste receipt is mandatory as proof of
  deposit; without it, no claim is processed.

- Point 4: When no prior declaration of the parcel contents was made
  to MVA Global Fret, the refund is a flat-rate capped at 22,000 Ar
  per kilogram lost. Encourages clients to declare valuable items.

Existing points renumbered (online purchase becomes 3, internal
verification 5, exclusions 6). Updated in all three CGV language
blocks (FR / EN / MG).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 21:44:44 +02:00
MVA Global Fret
53e9ef5e42 Rewrite CGV Article 8 with detailed loss procedure
Replace the short liability paragraph with a structured procedure
covering: third-party carrier proof for losses before Paris depot,
seller-refund-refusal proof for online purchases, MVA refund
commitment with invoice, internal verification clause, and explicit
exclusions (packaging, customs, prohibited items, force majeure).

Updated in all three CGV language blocks (FR / EN / MG).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 21:27:13 +02:00
MVA Global Fret
c44562257b Update CGV last-updated date to 04 May 2026
Bumped "Dernière mise à jour" footer in the three CGV language blocks:
- FR: 04 Mai 2026
- EN: May 4, 2026
- MG: 04 Mey 2026

The "En vigueur depuis le 1er janvier 2025" header is kept (initial
effective date does not change).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 21:23:00 +02:00
MVA Global Fret
245f28f76d Update copyright year from 2025 to 2026
Footer copyright bumped to 2026 across all 8 HTML pages and in the
three translation strings (FR/EN/MG) in translations.js.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 21:20:29 +02:00
MVA Global Fret
8031a8bf2e Add asterisk note for oversized parcels in shipping guide
"Dépasser les dimensions autorisées" now has an asterisk pointing to
a small italic note below the dos/donts grid: "Nous contacter pour
tout colis volumineux." (FR/EN/MG).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 21:17:57 +02:00
MVA Global Fret
0045a7d3b2 Fix uneven border on Service Commande pricing card
The default .pricing-card has both a 3px gold border AND a 6px gold
gradient bar on top (::before). On the Service Commande page that
combination made the top edge look much thicker than the sides.

Add a .pricing-card--flat modifier that hides the ::before bar and
trims the border to 2px, then apply it to the commission card.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 21:02:33 +02:00
MVA Global Fret
4a79136525 Add "Service Commande" page (personal shopper service)
New page service-commande.html explaining the order-on-behalf service:
- 10% commission on total order amount
- 50% deposit + 50% on order validation
- Right to request 100% upfront for large orders
- Standard 70,000 Ar/kg shipping fee on top, paid on receipt
- 5-question FAQ
- CTA to contact / Messenger

Trilingual content (FR / EN / MG) added to translations.js with full
serviceCommande section + nav.serviceCommande key.

Menu link inserted right after "Tarifs" in main nav, mobile nav and
footer links across all pages: index, about, tarifs, contact,
guide-envoi, application, cgv, service-commande.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 20:14:16 +02:00
MVA Global Fret
48664683e5 Send welcome-back email to clients already registered
When a client tries to re-register with an existing email:
- The form still shows the on-screen "already registered" message
- HubSpot data is still untouched (no duplicate, ref number preserved)
- NEW: a welcome-back email is now sent via EmailJS reminding them
  of their existing client reference number
- The internal MVA notification (Formspree) is preserved

Requires creating a new EmailJS template (id: template_welcome_back)
with variables: firstname, email, reference_client.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 18:18:22 +02:00
MVA Global Fret
ecb8760d83 Replace CGV hero image with cargo aircraft photo
Use a Boeing-style commercial airliner on the tarmac, more relevant to
the air-freight business than the previous unrelated image. Image is
new to the site (no duplicates with index/about/tarifs/guide/contact).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 18:13:30 +02:00
MVA Global Fret
39d3496758 Redesign contact map section with elegant card layout
- Replace the cramped map-container layout with a polished map-card
- Centered section header (h2 + gold-line + subtitle) above the card
- Navy gradient header inside the card with gold location icon
- Address displayed in the header alongside an "open in Google Maps" CTA
- Increased map height to 420px (320px on mobile)
- Soft shadow and gold-tinted border for premium feel
- Added mapSubtitle translation key (FR/EN/MG)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 17:58:39 +02:00
MVA Global Fret
b602e0d6f2 Fix remaining hardcoded French texts (i18n complete audit)
Critical fixes (user-reported):
- tarifs.html: delivery1Note "Livraison à domicile disponible"
- tarifs.html: delivery2Note "Retrait au bureau Cotisse de votre ville"
- contact.html: cgvLabel checkbox (with embedded CGV link, uses data-i18n-html)

Application page (mockup phone + payment methods section):
- mockupFlightTitle/Sub, mockupTab All/Transit/Delivered, mockupBadgeTransit
- mockupItemName/Ref, mockupStep1/3, mockupOrder1/2
- mockupPaymentTitle, mockupArrived
- paymentTitle, paymentSubtitle, cardLabel

Other pages:
- guide-envoi.html: warningContact callout paragraph
- about.html: channelMessenger/MessengerAction/PhoneMG/PhoneFR/Email labels

All keys added in FR/EN/MG.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 17:48:19 +02:00
MVA Global Fret
ec77737a9c Translate CGV page to EN/MG + full i18n audit fixes
- CGV page: added trilingual content (FR/EN/MG) using data-lang-block divs
- main.js: added data-lang-block toggle handler in applyLanguage()
- translations.js: added cgv.heroTitle/heroSubtitle for FR/EN/MG
- translations.js: fixed Malagasy (Fandefasana, Sarany), English (from Europe)
- translations.js: added delivery delay precision (depuis le dépôt Paris)
- translations.js: added 50+ missing i18n keys for tarifs/contact/guide/app/home
- All footer CGV links updated with data-i18n attributes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 17:39:55 +02:00
MVA Global Fret
ae85f2944b fix(i18n): traduire tous les textes codés en dur en français sur l'ensemble du site
Ajout de data-i18n sur tous les éléments non traduits (tarifs, contact, guide,
application, accueil) et ajout des clés correspondantes en FR/EN/MG dans
translations.js : détails tarifaires, cartes livraison, stats accueil, sections
CTA, récapitulatif contact, footer CGV.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 17:31:40 +02:00
MVA Global Fret
7e43b818d8 fix(mg): remplacer "vidiny/Vidinay" par "sarany/Sarany" partout en malgache
"Sarany" est le terme correct pour désigner les tarifs/prix dans ce contexte.
Corrige : heroTitle tarifs, heroSubtitle tarifs, nav pricing, heroCtaSecondary,
et value3Desc (about).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 17:20:16 +02:00
MVA Global Fret
f2b80d0e04 fix(en): corriger "between Europe and Madagascar" → "from Europe to Madagascar"
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 17:18:31 +02:00
MVA Global Fret
50e792ef96 fix(mg): remplacer toutes les occurrences de "fandefa" par "fandefasana" en malgache
"Fandefasana" est la forme correcte (nominalisée) en malgache pour désigner
le transport/fret aérien. Corrige le titre hero et 5 autres occurrences dans
les textes descriptifs, sous-titres et footer.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 17:16:06 +02:00
MVA Global Fret
1e2ee85b6e fix: préciser que le délai de 2 semaines est compté depuis l'arrivée au dépôt de Paris
Mise à jour de toutes les mentions du délai de livraison sur l'ensemble du site
(index, tarifs, contact) et dans les 3 langues (FR/EN/MG) pour indiquer clairement
que les 2 semaines sont comptées à compter de l'arrivée du colis au dépôt de Paris.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 17:12:20 +02:00
MVA Global Fret
169fe5f0fe fix: remplace "Prochainement" par "En attendant le lancement de l'application" dans la section CTA
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-04 17:06:15 +02:00
MVA Global Fret
15e98b9c32 feat: numérotation séquentielle MVA-XXX, texte succès corrigé, message email/spam 2026-05-04 16:28:28 +02:00
MVA Global Fret
eea5717143 fix: update EmailJS service ID to service_aeamo3x (Gmail connected) 2026-05-04 15:52:09 +02:00
MVA Global Fret
168a26ba32 feat: email de bienvenue automatique via EmailJS
- Ajout du SDK EmailJS (CDN) dans contact.html
- Initialisation EmailJS avec la clé publique dans form-handler.js
- Nouvelle fonction sendWelcomeEmail() : envoie au client son prénom,
  numéro de référence et l'adresse de dépôt Paris (AEIC Forwarding, Orly)
- Appel automatique dans showSuccess() après inscription réussie

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 15:15:44 +02:00
MVA Global Fret
7ea43c3b72 feat: activer le proxy Cloudflare pour la détection des doublons
Active WORKER_PROXY_URL pointant vers mva-hubspot-proxy.mvaglobalfret.workers.dev.
Le Worker interroge l'API CRM HubSpot côté serveur (contourne le CORS) et
retourne les données du contact si l'email est déjà enregistré.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 14:37:16 +02:00
MVA Global Fret
1970b10089 Sécurise form-handler : retire token côté client, prépare proxy Worker
- Supprime HUBSPOT_SERVICE_KEY du code JS public (évite l'exposition du token)
- Remplace l'appel CORS-bloqué vers api.hubapi.com par un appel au proxy
  Cloudflare Worker (WORKER_PROXY_URL, vide par défaut = sans blocage)
- Ajoute cloudflare-worker/hubspot-proxy.js : code complet du Worker à
  déployer gratuitement depuis dash.cloudflare.com (sans CLI ni Node.js)
- Quand WORKER_PROXY_URL est renseigné, la détection doublon est active :
  un client existant voit son message "déjà inscrit" sans re-soumission

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-04 14:13:17 +02:00
MVA Global Fret
fa4b49e1b8 Unicité référence client + détection doublon email
- generateRefNumber() basé sur timestamp : références jamais identiques
- checkExistingContact() : lecture HubSpot via clé de service (read-only)
- Si email déjà connu : affiche message 'déjà client' + référence existante,
  AUCUNE soumission envoyée (référence existante jamais modifiée)
- Notification interne Formspree si tentative double inscription
- Traductions FR/EN/MG pour les nouveaux messages
2026-05-03 16:23:49 +02:00
MVA Global Fret
64f5401112 feat: generate client reference number (MVA-YYYY-XXXX), save to HubSpot reference_client field, display in success message 2026-05-03 11:20:52 +02:00
MVA Global Fret
3641da12cf Fix: replace blank hero photo on guide-envoi page with working airport/cargo photo 2026-05-03 11:04:12 +02:00
MVA Global Fret
938efe582f Initial commit — Site MVA Global Fret 2026-05-02 22:23:48 +02:00