commit 938efe582f1752fcf55e363c131ddd85d0c5c3fe Author: MVA Global Fret Date: Sat May 2 22:23:48 2026 +0200 Initial commit — Site MVA Global Fret diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..be7390d --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,20 @@ +{ + "permissions": { + "allow": [ + "mcp__Claude_in_Chrome__tabs_context_mcp", + "mcp__Claude_in_Chrome__browser_batch", + "mcp__Claude_in_Chrome__computer", + "mcp__Claude_in_Chrome__read_console_messages", + "mcp__Claude_in_Chrome__navigate", + "mcp__Claude_in_Chrome__javascript_tool", + "mcp__Claude_in_Chrome__switch_browser", + "WebSearch", + "WebFetch(domain:unsplash.com)", + "Bash(gh auth *)", + "Bash(git --version)", + "Bash(git config *)", + "PowerShell(git config --global user.name)", + "PowerShell(git config --global user.email)" + ] + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..71c5423 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.DS_Store +Thumbs.db +*.log diff --git a/PNG MVA GLOBAL FRET.png b/PNG MVA GLOBAL FRET.png new file mode 100644 index 0000000..2436caf Binary files /dev/null and b/PNG MVA GLOBAL FRET.png differ diff --git a/about.html b/about.html new file mode 100644 index 0000000..5aa6e89 --- /dev/null +++ b/about.html @@ -0,0 +1,237 @@ + + + + + + Qui Sommes-Nous — MVA Global Fret + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

Qui Sommes-Nous

+

Une entreprise à taille humaine au service de la diaspora

+
+
+ + +
+
+ +
+
+ Avion cargo en vol — fret aérien MVA Global Fret +
+
+

Notre Mission

+
+
+ MVA Global Fret est née d'une conviction simple : le transport de colis entre l'Europe et Madagascar mérite un service d'excellence, accessible à tous. Nous sommes le pont entre deux continents, facilitant les échanges entre les familles, les entrepreneurs et les communautés. +

+ Notre expertise dans le fret aérien nous permet de garantir des délais de livraison rapides et une prise en charge attentive de chaque colis qui nous est confié. +
+
+
+ +
+
+ Entrepôt logistique — MVA Global Fret +
+
+

Notre Engagement

+
+
+ Ce qui nous distingue, c'est notre approche humaine. Chez MVA Global Fret, chaque client est unique et chaque colis est important. Nous ne sommes pas une grande multinationale anonyme : nous sommes une équipe soudée de 7 personnes passionnées qui connaissent leurs clients par leur nom. +

+ Notre priorité absolue est la qualité du service client. Disponibles tous les jours, nous répondons à vos questions via Messenger, par téléphone ou par email. +
+
+
+ +
+
+ + +
+
+
+

Nos Valeurs

+
+

Les principes qui guident chacune de nos actions

+
+
+
+ +

Fiabilité

+

Chaque colis est traité avec le plus grand soin. Nous respectons nos engagements de délais et de qualité.

+
+
+ +

Proximité

+

Une relation de confiance avec chaque client. Nous sommes à votre écoute, tous les jours.

+
+
+ +

Transparence

+

Des tarifs clairs, sans surprise. Paiement uniquement à la réception après contre-pesée.

+
+
+ +

Engagement

+

Nous mettons tout en œuvre pour que vos colis arrivent en parfait état, dans les meilleurs délais.

+
+
+
+
+ + +
+
+
7
+

membres dévoués à votre service

+

Disponibles tous les jours pour vous accompagner dans vos envois. Sur Messenger, par téléphone ou par email — nous sommes toujours là pour vous.

+
+
+ + +
+
+
+

Contactez-nous

+
+

Plusieurs canaux pour vous répondre au plus vite

+
+
+
+ +

Messenger

+

Discuter sur Messenger

+
+
+ +

Madagascar

+

+261 38 49 737 51

+
+
+ +

France

+

+33 7 80 97 08 25

+
+
+ +

Email

+

mvaglobalfret@gmail.com

+
+
+
+
+ + +
+
+

Prêt à envoyer vos colis ?

+

Inscrivez-vous dès maintenant et recevez votre numéro de référence client.

+ + + S'inscrire + +
+
+ +
+ + + + + + + diff --git a/application.html b/application.html new file mode 100644 index 0000000..ef82177 --- /dev/null +++ b/application.html @@ -0,0 +1,313 @@ + + + + + + Application Mobile — MVA Global Fret + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+ + +
+
+ + Bientôt Disponible +
+ +

L'Application MVA Global Fret

+
+

Bientôt, commandez depuis Madagascar sur les sites internet européens et payez en mobile money.

+ +
+
+ +
+

E-commerce Européen

+

Accédez aux sites de vente en ligne européens directement depuis Madagascar.

+
+
+
+ +
+

Paiement Mobile Money

+

Payez avec MVola, Orange Money ou Airtel Money en toute simplicité.

+
+
+
+ +
+

Suivi en Temps Réel

+

Suivez l'avancement de votre commande et de la livraison en direct.

+
+
+
+ +
+ + +
+
+ + +
+
+
+
En vol vers Madagascar
+
Arrivée estimée · 5 avril
+
+ Orly +
+ Tana +
+
+
+ + +
+
+ +
+
+
+ +
+ + +
+ +
+ + +
+
+ 9:41 + ●●● ▌ +
+
+
+
MVA Global Fret
+
France → Madagascar
+
+
H
+
+
+ Tout + En transit + Livrées +
+
+
EN TRANSIT
+
+ + + + + + + +
+
Paire de sneakers
+
Boutique France · CMD-0847
+
485 000 Ar
+
+ + + + + + + +
+
AchatOrlyVolTana
+
+
+ + Livrée · Vêtement + 195 000 Ar +
+
+ + Livrée · Sport + 78 000 Ar +
+
+
+
+
+ + +
+
+
+
Paiement confirmé
+
MVola · 485 000 Ar
+
+
+ + +
+ Arrivé au dépôt Orly +
+ +
+
+ +
+
+
+ + +
+
+
+

Moyens de Paiement Acceptés

+
+

Payez avec votre portefeuille mobile, en toute sécurité

+
+
+
+ + MVola + Yas Madagascar +
+
+ + Orange Money + Orange Madagascar +
+
+ + Airtel Money + Airtel Madagascar +
+
+ + Carte Bancaire + Visa / Mastercard +
+
+
+
+ + +
+
+

Prochainement

+

Notre service de fret aérien est disponible dès maintenant. Inscrivez-vous et commencez à envoyer vos colis.

+
+ + S'inscrire maintenant + + + Voir les tarifs + +
+
+
+ +
+ + + + + + + + diff --git a/cgv.html b/cgv.html new file mode 100644 index 0000000..e9234b6 --- /dev/null +++ b/cgv.html @@ -0,0 +1,301 @@ + + + + + + Conditions Générales de Vente — MVA Global Fret + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Conditions Générales de Vente

+

Lire et accepter avant toute inscription

+
+
+ +
+
+
+ +
+ MVA Global Fret + Antananarivo 101, Madagascar + mvaglobalfret@gmail.com + En vigueur depuis le 1er janvier 2025 +
+ + +

Article 1 — Objet et champ d'application

+

Les présentes Conditions Générales de Vente (CGV) régissent l'ensemble des relations contractuelles entre MVA Global Fret (ci-après « le Prestataire ») et toute personne physique ou morale (ci-après « le Client ») souhaitant bénéficier des services de fret aérien proposés.

+

MVA Global Fret est un service de transport de colis par voie aérienne entre la France (Paris) et Madagascar (Antananarivo). Tout envoi de colis, toute inscription ou toute utilisation des services implique l'acceptation pleine et entière des présentes CGV.

+

Ces CGV prévalent sur tout autre document du Client, sauf accord écrit préalable.

+ +
+ + +

Article 2 — Inscription et création de compte

+

Pour utiliser les services de MVA Global Fret, le Client doit s'inscrire via le formulaire disponible sur le site en fournissant :

+
    +
  • Son nom et prénom
  • +
  • Un numéro de téléphone valide
  • +
  • Une adresse email valide
  • +
  • Une adresse de livraison complète à Antananarivo
  • +
+

Le Client s'engage à fournir des informations exactes et à les maintenir à jour. En cas d'informations erronées ou incomplètes, MVA Global Fret ne pourra être tenu responsable de tout retard ou de toute impossibilité de livraison.

+
+ Acceptation des CGV : En s'inscrivant, le Client reconnaît avoir lu, compris et accepté l'intégralité des présentes Conditions Générales de Vente. +
+ +
+ + +

Article 3 — Tarifs et modalités de paiement

+

Le tarif en vigueur est de 70 000 Ariary (Ar) par kilogramme. Ce tarif peut être révisé sans préavis ; le tarif applicable est celui en vigueur au moment de l'envoi.

+

Règle d'arrondi : Le poids est arrondi au kilogramme supérieur. Exemple : un colis de 1,2 kg est facturé au tarif de 2 kg.

+

Frais de livraison :

+
    +
  • Livraison à Antananarivo (Tana) : +6 000 Ar
  • +
  • Livraison en province : +6 000 Ar jusqu'au dépôt Cotisse de la ville la plus proche, puis frais Cotisse à la charge du destinataire
  • +
+

Modalités de paiement : Le paiement s'effectue exclusivement à la réception du colis, après contre-pesée officielle réalisée par nos soins à Antananarivo.

+
+ Non-paiement : Si le Client ne règle pas le montant dû correspondant au poids de son colis, le colis ne lui sera pas remis. MVA Global Fret conservera le colis pendant une durée de 45 jours calendaires à compter de la date d'arrivée à Antananarivo. Passé ce délai, sans règlement de la part du Client, le colis sera mis en vente afin de couvrir les frais de transport engagés. MVA Global Fret ne pourra être tenu responsable de la perte, de la dégradation ou de la vente des articles dans ce cadre. +
+ +
+ + +

Article 4 — Délais de livraison

+

MVA Global Fret effectue deux envois par semaine au départ de Paris vers Antananarivo. Le délai de livraison est estimé à environ 2 semaines à compter de la prise en charge du colis à Paris.

+

Ces délais sont donnés à titre indicatif et peuvent être allongés en cas de :

+
    +
  • Contrôle douanier ou blocage par les autorités compétentes
  • +
  • Grèves, intempéries ou cas de force majeure
  • +
  • Informations incomplètes fournies par le Client
  • +
+

MVA Global Fret ne pourra être tenu responsable des retards occasionnés par des facteurs extérieurs à son contrôle.

+ +
+ + +

Article 5 — Politique de retour et de remboursement

+
+ Absence de retour vers la France : MVA Global Fret est un service de transport unidirectionnel : Paris → Antananarivo uniquement. +
+

Certains sites de vente en ligne européens offrent la possibilité d'effectuer un retour article en cas d'insatisfaction. Toutefois, MVA Global Fret ne propose pas de service de retour vers la France. Dans le cas où un Client souhaiterait retourner un article à un vendeur européen, il lui appartient de trouver et d'organiser lui-même les modalités de renvoi, à ses frais exclusifs.

+

MVA Global Fret ne peut être impliqué dans aucune procédure de retour, de remboursement ou de litige entre le Client et un vendeur tiers.

+ +
+ + +

Article 6 — Articles autorisés et interdits

+

Le transport est soumis à la réglementation IATA (Association Internationale du Transport Aérien). Il est strictement interdit d'expédier :

+
    +
  • Explosifs, munitions et matières dangereuses
  • +
  • Gaz comprimés ou liquéfiés
  • +
  • Liquides et solides inflammables
  • +
  • Batteries lithium non conformes
  • +
  • Substances toxiques, corrosives ou radioactives
  • +
  • Tout article dont le transport est interdit par la loi malgache ou française
  • +
+

En cas de non-respect de ces restrictions, le Client assume l'entière responsabilité des conséquences légales, financières et pénales qui pourraient en découler. MVA Global Fret se réserve le droit de refuser tout colis suspect ou non conforme.

+ +
+ + +

Article 7 — Comportement du Client et respect des équipes

+

MVA Global Fret accorde une importance primordiale au respect mutuel entre ses équipes et ses clients. Toute relation commerciale doit se dérouler dans un cadre courtois et respectueux.

+
+ Comportements prohibés : Il est strictement interdit d'insulter, d'harceler, de menacer ou de dégrader — sous quelque forme que ce soit (orale, écrite, par messagerie ou sur les réseaux sociaux) — les membres de l'équipe MVA Global Fret. +
+

En cas de manquement à cette règle, MVA Global Fret se réserve le droit de :

+
    +
  • Suspendre ou supprimer définitivement le compte du Client concerné
  • +
  • Mettre fin à toute collaboration commerciale sans préavis ni remboursement
  • +
  • Engager les poursuites légales appropriées conformément au droit malgache en vigueur, notamment les dispositions relatives aux injures, diffamations et menaces
  • +
+

Le Client reconnaît que les lois malgaches s'appliquent à toute relation commerciale avec MVA Global Fret depuis Madagascar, et que des sanctions pénales peuvent être encourues en cas d'infractions constatées.

+ +
+ + +

Article 8 — Responsabilité

+

MVA Global Fret s'engage à traiter chaque colis avec le plus grand soin. En cas de perte ou d'endommagement avéré d'un colis imputable à MVA Global Fret, la responsabilité du Prestataire sera limitée à la valeur déclarée du colis, dans la limite du tarif de transport payé.

+

MVA Global Fret décline toute responsabilité en cas de :

+
    +
  • Dommages causés par un emballage insuffisant du Client
  • +
  • Retards ou pertes dus aux douanes ou aux autorités aéroportuaires
  • +
  • Saisie ou destruction d'articles interdits déclarés incorrectement
  • +
  • Force majeure (grèves, catastrophes naturelles, pandémies, etc.)
  • +
+ +
+ + +

Article 9 — Protection des données personnelles

+

Les données personnelles collectées lors de l'inscription (nom, prénom, téléphone, email, adresse) sont utilisées exclusivement dans le cadre de la relation commerciale avec MVA Global Fret. Elles ne sont ni vendues, ni partagées avec des tiers à des fins commerciales.

+

Conformément aux réglementations en vigueur, le Client dispose d'un droit d'accès, de rectification et de suppression de ses données en contactant MVA Global Fret à l'adresse mvaglobalfret@gmail.com.

+ +
+ + +

Article 10 — Droit applicable et litiges

+

Les présentes CGV sont soumises au droit malgache. Tout litige relatif à leur interprétation ou à leur exécution sera soumis, à défaut de résolution amiable, aux tribunaux compétents d'Antananarivo, Madagascar.

+

Pour toute réclamation ou question relative aux présentes CGV, le Client peut contacter MVA Global Fret :

+ + +
+ +

+ + Dernière mise à jour : 1er janvier 2025 — MVA Global Fret se réserve le droit de modifier les présentes CGV à tout moment. +

+ + + +
+
+
+ +
+ + + + + + + diff --git a/contact.html b/contact.html new file mode 100644 index 0000000..e4173dd --- /dev/null +++ b/contact.html @@ -0,0 +1,277 @@ + + + + + + Contact & Inscription — MVA Global Fret + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

Contactez-Nous

+

Inscrivez-vous et commencez à envoyer vos colis dès aujourd'hui

+
+
+ + +
+
+
+ + +
+

Formulaire d'inscription

+
+

Remplissez ce formulaire pour recevoir votre numéro de référence client et l'adresse de dépôt à Paris.

+ + + +
+
+
+ + +
+
+
+ + +
+
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+
+ + +
+ +
+
+ + + + +
+
+ + +
+

Nos Coordonnées

+
+ +
+
+
+ + Disponible tous les jours +
+
+ +
+ +
+ Numéro Madagascar + +261 38 49 737 51 +
+
+
+ +
+ Numéro France + +33 7 80 97 08 25 +
+
+
+ + +
+
+ +
+ Adresse + Antananarivo 101, Madagascar +
+
+
+ +
+ Facebook + MVA Global Fret +
+
+
+ +
+ Messenger + Discuter sur Messenger +
+
+
+ + +
+

+ Rappel tarifaire +

+
    +
  • 70 000 Ar / kg
  • +
  • Paiement à la réception
  • +
  • 2 envois / semaine
  • +
  • Livraison en 2 semaines
  • +
+
+
+ +
+ + +
+

Notre Localisation

+ +
+ +
+
+ +
+ + + + + + + + + + diff --git a/css/style.css b/css/style.css new file mode 100644 index 0000000..b85f9f8 --- /dev/null +++ b/css/style.css @@ -0,0 +1,2014 @@ +/* ============================================ + MVA GLOBAL FRET — Stylesheet + ============================================ */ + +/* --- Reset & Custom Properties --- */ +:root { + --navy: #1a1a3e; + --navy-light: #2a2a5e; + --navy-dark: #0f0f2a; + --gold: #c5a55a; + --gold-light: #d4ba7a; + --gold-dark: #a8893e; + --white: #ffffff; + --light-gray: #f7f7f9; + --mid-gray: #e0e0e5; + --text-dark: #2d2d3d; + --text-light: #6b6b80; + --red: #d9534f; + --green: #5cb85c; + --amber: #f0ad4e; + + --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; + --font-heading: 'Poppins', 'Inter', sans-serif; + + --space-xs: 4px; + --space-sm: 8px; + --space-md: 16px; + --space-lg: 24px; + --space-xl: 40px; + --space-2xl: 64px; + --space-3xl: 96px; + + --radius-sm: 6px; + --radius-md: 12px; + --radius-lg: 20px; + --radius-full: 50%; + + --shadow-sm: 0 2px 8px rgba(26, 26, 62, 0.08); + --shadow-md: 0 4px 20px rgba(26, 26, 62, 0.12); + --shadow-lg: 0 8px 40px rgba(26, 26, 62, 0.16); + + --transition: 0.3s ease; + --header-height: 80px; +} + +*, *::before, *::after { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +html { + scroll-behavior: smooth; + font-size: 16px; +} + +body { + font-family: var(--font-body); + color: var(--text-dark); + line-height: 1.7; + background: var(--white); + overflow-x: hidden; +} + +img { + max-width: 100%; + height: auto; + display: block; +} + +a { + color: var(--gold); + text-decoration: none; + transition: color var(--transition); +} + +a:hover { + color: var(--gold-dark); +} + +ul, ol { + list-style: none; +} + +/* --- Skip to content (accessibility) --- */ +.skip-link { + position: absolute; + top: -100%; + left: 50%; + transform: translateX(-50%); + background: var(--gold); + color: var(--navy); + padding: var(--space-sm) var(--space-md); + border-radius: var(--radius-sm); + z-index: 10000; + font-weight: 600; +} + +.skip-link:focus { + top: var(--space-sm); +} + +/* --- Typography --- */ +h1, h2, h3, h4, h5, h6 { + font-family: var(--font-heading); + font-weight: 700; + line-height: 1.2; + color: var(--navy); +} + +h1 { font-size: clamp(2rem, 5vw, 3.5rem); } +h2 { font-size: clamp(1.6rem, 4vw, 2.5rem); } +h3 { font-size: clamp(1.2rem, 3vw, 1.5rem); } +h4 { font-size: 1.125rem; } + +p { + margin-bottom: var(--space-md); +} + +.text-gold { color: var(--gold); } +.text-navy { color: var(--navy); } +.text-white { color: var(--white); } +.text-center { text-align: center; } + +/* --- Layout --- */ +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 var(--space-lg); +} + +.section { + padding: var(--space-2xl) 0; +} + +.section-header { + text-align: center; + margin-bottom: var(--space-xl); +} + +.section-header h2 { + margin-bottom: var(--space-sm); +} + +.section-header p { + color: var(--text-light); + max-width: 600px; + margin: 0 auto; + font-size: 1.05rem; +} + +.section-header .gold-line { + width: 60px; + height: 3px; + background: var(--gold); + margin: var(--space-md) auto; + border-radius: 2px; +} + +/* Grid system */ +.grid-2 { + display: grid; + grid-template-columns: 1fr; + gap: var(--space-lg); +} + +.grid-3 { + display: grid; + grid-template-columns: 1fr; + gap: var(--space-lg); +} + +.grid-4 { + display: grid; + grid-template-columns: 1fr; + gap: var(--space-lg); +} + +@media (min-width: 768px) { + .grid-2 { grid-template-columns: repeat(2, 1fr); } + .grid-3 { grid-template-columns: repeat(2, 1fr); } + .grid-4 { grid-template-columns: repeat(2, 1fr); } +} + +@media (min-width: 1024px) { + .grid-3 { grid-template-columns: repeat(3, 1fr); } + .grid-4 { grid-template-columns: repeat(4, 1fr); } +} + +/* --- Buttons --- */ +.btn { + display: inline-flex; + align-items: center; + gap: var(--space-sm); + padding: 14px 32px; + border-radius: var(--radius-sm); + font-family: var(--font-body); + font-size: 1rem; + font-weight: 600; + cursor: pointer; + border: 2px solid transparent; + transition: all var(--transition); + text-decoration: none; +} + +.btn-primary { + background: var(--gold); + color: var(--navy); + border-color: var(--gold); +} + +.btn-primary:hover { + background: var(--gold-dark); + border-color: var(--gold-dark); + color: var(--navy); + transform: translateY(-2px); + box-shadow: var(--shadow-md); +} + +.btn-secondary { + background: transparent; + color: var(--gold); + border-color: var(--gold); +} + +.btn-secondary:hover { + background: var(--gold); + color: var(--navy); + transform: translateY(-2px); +} + +.btn-white { + background: var(--white); + color: var(--navy); + border-color: var(--white); +} + +.btn-white:hover { + background: var(--light-gray); + border-color: var(--light-gray); + color: var(--navy); + transform: translateY(-2px); +} + +.btn-sm { + padding: 10px 20px; + font-size: 0.9rem; +} + +/* --- Header --- */ +.header { + position: fixed; + top: 0; + left: 0; + right: 0; + height: var(--header-height); + background: #2b2b6e; + border-bottom: 2px solid rgba(197, 165, 90, 0.35); + z-index: 1000; + transition: all var(--transition); +} + +.header.scrolled { + height: 64px; + box-shadow: 0 4px 24px rgba(0,0,0,0.4); + background: #1e1e52; + border-bottom-color: rgba(197, 165, 90, 0.5); +} + +.header-inner { + display: flex; + align-items: center; + justify-content: space-between; + height: 100%; +} + +.logo img { + height: 68px; + transition: height var(--transition); +} + +.header.scrolled .logo img { + height: 52px; +} + +.nav { + display: none; + gap: var(--space-lg); +} + +.nav a { + color: var(--white); + font-weight: 500; + font-size: 0.95rem; + position: relative; + padding: var(--space-xs) 0; +} + +.nav a::after { + content: ''; + position: absolute; + bottom: -2px; + left: 0; + width: 0; + height: 2px; + background: var(--gold); + transition: width var(--transition); +} + +.nav a:hover, +.nav a.active { + color: var(--gold); +} + +.nav a:hover::after, +.nav a.active::after { + width: 100%; +} + +.header-right { + display: flex; + align-items: center; + gap: var(--space-md); +} + +/* Language switcher */ +.lang-switcher { + display: flex; + gap: 4px; + background: rgba(255,255,255,0.1); + border-radius: var(--radius-sm); + padding: 3px; +} + +.lang-switcher button { + background: none; + border: none; + color: rgba(255,255,255,0.6); + font-size: 0.8rem; + font-weight: 600; + padding: 4px 10px; + border-radius: 4px; + cursor: pointer; + transition: all var(--transition); + font-family: var(--font-body); +} + +.lang-switcher button.active, +.lang-switcher button:hover { + background: var(--gold); + color: var(--navy); +} + +/* Mobile menu toggle */ +.menu-toggle { + display: flex; + flex-direction: column; + gap: 5px; + background: none; + border: none; + cursor: pointer; + padding: var(--space-sm); + z-index: 1001; +} + +.menu-toggle span { + display: block; + width: 24px; + height: 2px; + background: var(--white); + transition: all var(--transition); + border-radius: 2px; +} + +.menu-toggle.open span:nth-child(1) { + transform: rotate(45deg) translate(5px, 5px); +} + +.menu-toggle.open span:nth-child(2) { + opacity: 0; +} + +.menu-toggle.open span:nth-child(3) { + transform: rotate(-45deg) translate(5px, -5px); +} + +/* Mobile nav overlay */ +.mobile-nav { + position: fixed; + top: 0; + right: -100%; + width: 80%; + max-width: 360px; + height: 100vh; + background: var(--navy-dark); + z-index: 999; + padding: calc(var(--header-height) + var(--space-xl)) var(--space-xl) var(--space-xl); + transition: right var(--transition); + display: flex; + flex-direction: column; + gap: var(--space-lg); +} + +.mobile-nav.open { + right: 0; +} + +.mobile-nav a { + color: var(--white); + font-size: 1.2rem; + font-weight: 500; + padding: var(--space-sm) 0; + border-bottom: 1px solid rgba(255,255,255,0.1); + display: block; +} + +.mobile-nav a:hover, +.mobile-nav a.active { + color: var(--gold); +} + +.overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0,0,0,0.5); + z-index: 998; + opacity: 0; + visibility: hidden; + transition: all var(--transition); +} + +.overlay.open { + opacity: 1; + visibility: visible; +} + +@media (min-width: 1024px) { + .nav { + display: flex; + } + .menu-toggle { + display: none; + } + .mobile-nav, + .overlay { + display: none !important; + } +} + +/* --- Hero Section --- */ +.hero { + position: relative; + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + text-align: center; + background-size: cover; + background-position: center; + background-repeat: no-repeat; + padding: calc(var(--header-height) + var(--space-xl)) var(--space-lg) var(--space-xl); +} + +.hero::before { + content: ''; + position: absolute; + inset: 0; + background: linear-gradient(135deg, rgba(26,26,62,0.85) 0%, rgba(26,26,62,0.7) 100%); + z-index: 1; +} + +.hero-content { + position: relative; + z-index: 2; + max-width: 800px; +} + +.hero h1 { + color: var(--white); + margin-bottom: var(--space-md); + font-size: clamp(2.2rem, 6vw, 4rem); +} + +.hero h1 .highlight { + color: var(--gold); +} + +.hero p { + color: rgba(255,255,255,0.85); + font-size: clamp(1rem, 2.5vw, 1.25rem); + margin-bottom: var(--space-xl); + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +.hero-buttons { + display: flex; + gap: var(--space-md); + justify-content: center; + flex-wrap: wrap; +} + +/* Sub-page hero (shorter) */ +.hero-sub { + min-height: 45vh; + padding-top: calc(var(--header-height) + var(--space-2xl)); +} + +.hero-sub::before { + background: linear-gradient(135deg, rgba(26,26,62,0.72) 0%, rgba(26,26,62,0.55) 100%) !important; +} + + +.hero-sub h1 { + font-size: clamp(2rem, 5vw, 3rem); +} + +/* --- Cards --- */ +.card { + background: var(--white); + border-radius: var(--radius-md); + padding: var(--space-xl); + box-shadow: var(--shadow-sm); + transition: all var(--transition); + border: 1px solid var(--mid-gray); +} + +.card:hover { + transform: translateY(-6px); + box-shadow: var(--shadow-lg); + border-color: var(--gold); +} + +.card-icon { + width: 64px; + height: 64px; + border-radius: var(--radius-full); + background: linear-gradient(135deg, var(--navy), var(--navy-light)); + display: flex; + align-items: center; + justify-content: center; + margin-bottom: var(--space-lg); + color: var(--gold); + font-size: 1.5rem; +} + +.card h3 { + margin-bottom: var(--space-sm); +} + +.card p { + color: var(--text-light); + font-size: 0.95rem; +} + +/* --- Icon boxes (services) --- */ +.icon-box { + text-align: center; + padding: var(--space-xl) var(--space-lg); +} + +.icon-box .card-icon { + margin: 0 auto var(--space-lg); +} + +/* --- Steps (how it works) --- */ +.steps { + display: flex; + flex-direction: column; + gap: var(--space-xl); + position: relative; +} + +.step { + display: flex; + align-items: flex-start; + gap: var(--space-lg); +} + +.step-number { + flex-shrink: 0; + width: 56px; + height: 56px; + border-radius: var(--radius-full); + background: var(--gold); + color: var(--navy); + display: flex; + align-items: center; + justify-content: center; + font-family: var(--font-heading); + font-weight: 700; + font-size: 1.5rem; +} + +.step-content h3 { + margin-bottom: var(--space-xs); +} + +.step-content p { + color: var(--text-light); +} + +@media (min-width: 768px) { + .steps { + flex-direction: row; + align-items: flex-start; + } + .step { + flex-direction: column; + align-items: center; + text-align: center; + flex: 1; + } +} + +/* --- About section preview --- */ +.about-preview { + display: grid; + grid-template-columns: 1fr; + gap: var(--space-xl); + align-items: center; +} + +.about-preview-img { + border-radius: var(--radius-md); + overflow: hidden; + aspect-ratio: 4/3; + background: var(--light-gray); +} + +.about-preview-img img { + width: 100%; + height: 100%; + object-fit: cover; +} + +@media (min-width: 768px) { + .about-preview { + grid-template-columns: 1fr 1fr; + } +} + +/* --- CTA Banner --- */ +.cta-banner { + background: var(--navy); + padding: var(--space-2xl) 0; + text-align: center; +} + +.cta-banner h2 { + color: var(--white); + margin-bottom: var(--space-sm); +} + +.cta-banner p { + color: rgba(255,255,255,0.75); + margin-bottom: var(--space-lg); + max-width: 500px; + margin-left: auto; + margin-right: auto; +} + +/* --- Pricing --- */ +.pricing-card { + background: var(--white); + border: 3px solid var(--gold); + border-radius: var(--radius-lg); + padding: var(--space-2xl); + text-align: center; + max-width: 500px; + margin: 0 auto var(--space-xl); + position: relative; + overflow: hidden; +} + +.pricing-card::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 6px; + background: linear-gradient(90deg, var(--gold), var(--gold-light), var(--gold)); +} + +.pricing-amount { + font-family: var(--font-heading); + font-size: clamp(2.5rem, 6vw, 4rem); + font-weight: 700; + color: var(--navy); + line-height: 1; + margin-bottom: var(--space-xs); +} + +.pricing-unit { + color: var(--text-light); + font-size: 1.1rem; + margin-bottom: var(--space-lg); +} + +.pricing-details { + text-align: left; + padding: 0 var(--space-md); +} + +.pricing-details li { + display: flex; + align-items: flex-start; + gap: var(--space-sm); + padding: var(--space-sm) 0; + border-bottom: 1px solid var(--light-gray); + font-size: 0.95rem; +} + +.pricing-details li:last-child { + border-bottom: none; +} + +.pricing-details li i { + color: var(--gold); + margin-top: 4px; + flex-shrink: 0; +} + +.pricing-note { + background: var(--light-gray); + border-left: 4px solid var(--gold); + padding: var(--space-md) var(--space-lg); + border-radius: 0 var(--radius-sm) var(--radius-sm) 0; + margin-top: var(--space-lg); + font-size: 0.9rem; + color: var(--text-light); + text-align: left; +} + +/* Delivery cards */ +.delivery-card { + background: var(--white); + border-radius: var(--radius-md); + padding: var(--space-xl); + border: 1px solid var(--mid-gray); + box-shadow: var(--shadow-sm); +} + +.delivery-card h3 { + display: flex; + align-items: center; + gap: var(--space-sm); + margin-bottom: var(--space-md); +} + +.delivery-card h3 i { + color: var(--gold); +} + +.delivery-price { + font-family: var(--font-heading); + font-size: 1.5rem; + font-weight: 700; + color: var(--gold); + margin-bottom: var(--space-sm); +} + +/* Schedule */ +.schedule-grid { + display: grid; + grid-template-columns: 1fr; + gap: var(--space-lg); + margin-top: var(--space-xl); +} + +.schedule-item { + text-align: center; + padding: var(--space-xl); + background: var(--navy); + border-radius: var(--radius-md); + color: var(--white); +} + +.schedule-item i { + font-size: 2rem; + color: var(--gold); + margin-bottom: var(--space-md); +} + +.schedule-item .number { + font-family: var(--font-heading); + font-size: 2.5rem; + font-weight: 700; + color: var(--gold); + display: block; +} + +@media (min-width: 768px) { + .schedule-grid { + grid-template-columns: repeat(2, 1fr); + } +} + +/* --- FAQ Accordion --- */ +.faq-list { + max-width: 700px; + margin: 0 auto; +} + +.faq-item { + border-bottom: 1px solid var(--mid-gray); +} + +.faq-question { + width: 100%; + background: none; + border: none; + padding: var(--space-lg) 0; + font-family: var(--font-body); + font-size: 1rem; + font-weight: 600; + color: var(--navy); + cursor: pointer; + display: flex; + justify-content: space-between; + align-items: center; + text-align: left; +} + +.faq-question i { + transition: transform var(--transition); + color: var(--gold); +} + +.faq-item.open .faq-question i { + transform: rotate(180deg); +} + +.faq-answer { + max-height: 0; + overflow: hidden; + transition: max-height 0.4s ease; +} + +.faq-answer-inner { + padding-bottom: var(--space-lg); + color: var(--text-light); + line-height: 1.8; +} + +/* --- Contact page --- */ +.contact-grid { + display: grid; + grid-template-columns: 1fr; + gap: var(--space-xl); +} + +@media (min-width: 768px) { + .contact-grid { + grid-template-columns: 1.2fr 1fr; + } +} + +/* Form styles */ +.form-group { + margin-bottom: var(--space-lg); +} + +.form-group label { + display: block; + font-weight: 600; + margin-bottom: var(--space-sm); + color: var(--navy); + font-size: 0.95rem; +} + +.form-group input, +.form-group textarea, +.form-group select { + width: 100%; + padding: 14px var(--space-md); + border: 2px solid var(--mid-gray); + border-radius: var(--radius-sm); + font-family: var(--font-body); + font-size: 1rem; + color: var(--text-dark); + transition: border-color var(--transition); + background: var(--white); +} + +.form-group input:focus, +.form-group textarea:focus, +.form-group select:focus { + outline: none; + border-color: var(--gold); + box-shadow: 0 0 0 3px rgba(197, 165, 90, 0.15); +} + +.form-group textarea { + min-height: 120px; + resize: vertical; +} + +.form-group input.error, +.form-group textarea.error { + border-color: var(--red); +} + +.form-error { + color: var(--red); + font-size: 0.85rem; + margin-top: var(--space-xs); +} + +.form-success { + background: #eafbe7; + border: 1px solid var(--green); + color: #2d6a2d; + padding: var(--space-lg); + border-radius: var(--radius-sm); + text-align: center; + font-weight: 500; + display: none; +} + +.form-success.show { + display: block; +} + +.form-loading .btn { + opacity: 0.7; + pointer-events: none; +} + +/* Contact info card */ +.contact-info-card { + background: var(--navy); + border-radius: var(--radius-md); + padding: var(--space-xl); + color: var(--white); +} + +.contact-info-item { + display: flex; + align-items: flex-start; + gap: var(--space-md); + padding: var(--space-md) 0; + border-bottom: 1px solid rgba(255,255,255,0.1); +} + +.contact-info-item:last-child { + border-bottom: none; +} + +.contact-info-item i { + color: var(--gold); + font-size: 1.2rem; + margin-top: 2px; + flex-shrink: 0; + width: 24px; + text-align: center; +} + +.contact-info-item a { + color: var(--white); +} + +.contact-info-item a:hover { + color: var(--gold); +} + +.contact-info-item .label { + font-size: 0.85rem; + color: rgba(255,255,255,0.6); + display: block; + margin-bottom: 2px; +} + +/* Map */ +.map-container { + margin-top: var(--space-xl); + border-radius: var(--radius-md); + overflow: hidden; + box-shadow: var(--shadow-md); +} + +.map-container iframe { + width: 100%; + height: 350px; + border: none; +} + +/* --- Guide page --- */ +.prohibited-grid { + display: grid; + grid-template-columns: 1fr; + gap: var(--space-md); +} + +@media (min-width: 768px) { + .prohibited-grid { + grid-template-columns: repeat(2, 1fr); + } +} + +@media (min-width: 1024px) { + .prohibited-grid { + grid-template-columns: repeat(4, 1fr); + } +} + +.prohibited-item { + background: #fff5f5; + border: 1px solid #ffdddd; + border-radius: var(--radius-md); + padding: var(--space-lg); + text-align: center; +} + +.prohibited-item i { + font-size: 2rem; + color: var(--red); + margin-bottom: var(--space-sm); +} + +.prohibited-item h4 { + color: var(--red); + margin-bottom: var(--space-xs); + font-size: 0.95rem; +} + +.prohibited-item p { + font-size: 0.85rem; + color: var(--text-light); + margin-bottom: 0; +} + +/* Warning items (special declaration) */ +.warning-item { + background: #fffbf0; + border: 1px solid #ffe0a0; + border-radius: var(--radius-md); + padding: var(--space-lg); + text-align: center; +} + +.warning-item i { + font-size: 2rem; + color: var(--amber); + margin-bottom: var(--space-sm); +} + +.warning-item h4 { + color: #8a6d1b; + margin-bottom: var(--space-xs); + font-size: 0.95rem; +} + +/* Packaging steps */ +.packaging-steps { + counter-reset: packaging; +} + +.packaging-step { + display: flex; + gap: var(--space-lg); + padding: var(--space-xl) 0; + border-bottom: 1px solid var(--mid-gray); + align-items: flex-start; +} + +.packaging-step:last-child { + border-bottom: none; +} + +.packaging-step-icon { + flex-shrink: 0; + width: 72px; + height: 72px; + border-radius: var(--radius-md); + background: linear-gradient(135deg, var(--navy), var(--navy-light)); + display: flex; + align-items: center; + justify-content: center; + color: var(--gold); + font-size: 1.5rem; +} + +.packaging-step h3 { + margin-bottom: var(--space-sm); +} + +.packaging-step p { + color: var(--text-light); + margin-bottom: 0; +} + +/* Do / Don't columns */ +.do-dont { + display: grid; + grid-template-columns: 1fr; + gap: var(--space-lg); +} + +@media (min-width: 768px) { + .do-dont { + grid-template-columns: 1fr 1fr; + } +} + +.do-list, .dont-list { + padding: var(--space-xl); + border-radius: var(--radius-md); +} + +.do-list { + background: #eafbe7; + border: 1px solid #c3e6c3; +} + +.dont-list { + background: #fff5f5; + border: 1px solid #ffdddd; +} + +.do-list h3, .dont-list h3 { + display: flex; + align-items: center; + gap: var(--space-sm); + margin-bottom: var(--space-md); +} + +.do-list h3 { color: var(--green); } +.dont-list h3 { color: var(--red); } + +.do-list li, .dont-list li { + display: flex; + align-items: flex-start; + gap: var(--space-sm); + padding: var(--space-sm) 0; + font-size: 0.95rem; +} + +.do-list li i { color: var(--green); margin-top: 4px; } +.dont-list li i { color: var(--red); margin-top: 4px; } + +/* --- Application teaser page --- */ +.app-teaser { + min-height: calc(100vh - var(--header-height)); + display: flex; + align-items: center; + padding: calc(var(--header-height) + var(--space-2xl)) 0 var(--space-2xl); +} + +.app-content { + display: grid; + grid-template-columns: 1fr; + gap: var(--space-2xl); + align-items: center; +} + +@media (min-width: 768px) { + .app-content { + grid-template-columns: 1fr 1fr; + } +} + +.app-badge { + display: inline-flex; + align-items: center; + gap: var(--space-sm); + background: linear-gradient(135deg, var(--gold), var(--gold-light)); + color: var(--navy); + padding: var(--space-sm) var(--space-lg); + border-radius: var(--radius-full); + font-weight: 700; + font-size: 0.9rem; + margin-bottom: var(--space-lg); +} + +.phone-mockup { + background: var(--navy); + border-radius: 36px; + padding: 12px; + max-width: 280px; + margin: 0 auto; + box-shadow: var(--shadow-lg); +} + +.phone-screen { + background: var(--white); + border-radius: 28px; + overflow: hidden; + aspect-ratio: 9/16; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + gap: var(--space-md); + padding: var(--space-xl); + text-align: center; +} + +.phone-screen img { + width: 80px; + height: auto; +} + +.phone-screen p { + color: var(--text-light); + font-size: 0.85rem; +} + +.app-features { + margin-top: var(--space-xl); +} + +.app-feature { + display: flex; + align-items: flex-start; + gap: var(--space-md); + padding: var(--space-md) 0; +} + +.app-feature i { + color: var(--gold); + font-size: 1.2rem; + margin-top: 2px; + flex-shrink: 0; +} + +.app-feature h4 { + margin-bottom: 2px; +} + +.app-feature p { + color: var(--text-light); + font-size: 0.9rem; + margin-bottom: 0; +} + +/* Notify form */ +.notify-form { + display: flex; + gap: var(--space-sm); + margin-top: var(--space-lg); + max-width: 400px; +} + +.notify-form input { + flex: 1; + padding: 14px var(--space-md); + border: 2px solid var(--mid-gray); + border-radius: var(--radius-sm); + font-family: var(--font-body); + font-size: 1rem; +} + +.notify-form input:focus { + outline: none; + border-color: var(--gold); +} + +/* --- Values grid (about) --- */ +.values-grid { + display: grid; + grid-template-columns: 1fr; + gap: var(--space-lg); +} + +@media (min-width: 768px) { + .values-grid { + grid-template-columns: repeat(2, 1fr); + } +} + +@media (min-width: 1024px) { + .values-grid { + grid-template-columns: repeat(4, 1fr); + } +} + +.value-card { + text-align: center; + padding: var(--space-xl); + background: var(--white); + border-radius: var(--radius-md); + border: 1px solid var(--mid-gray); + transition: all var(--transition); +} + +.value-card:hover { + border-color: var(--gold); + transform: translateY(-4px); + box-shadow: var(--shadow-md); +} + +.value-card i { + font-size: 2.5rem; + color: var(--gold); + margin-bottom: var(--space-md); +} + +.value-card h3 { + margin-bottom: var(--space-sm); +} + +.value-card p { + color: var(--text-light); + font-size: 0.9rem; +} + +/* Team counter */ +.team-section { + background: var(--navy); + padding: var(--space-2xl) 0; + text-align: center; + color: var(--white); +} + +.team-counter { + font-family: var(--font-heading); + font-size: clamp(4rem, 10vw, 8rem); + font-weight: 700; + color: var(--gold); + line-height: 1; + margin-bottom: var(--space-sm); +} + +.team-section p { + color: rgba(255,255,255,0.8); + max-width: 500px; + margin: 0 auto; +} + +/* Communication channels */ +.channels-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: var(--space-md); +} + +@media (min-width: 768px) { + .channels-grid { + grid-template-columns: repeat(4, 1fr); + } +} + +.channel-card { + text-align: center; + padding: var(--space-lg); + background: var(--white); + border-radius: var(--radius-md); + border: 1px solid var(--mid-gray); + transition: all var(--transition); +} + +.channel-card:hover { + border-color: var(--gold); + box-shadow: var(--shadow-sm); +} + +.channel-card i { + font-size: 2rem; + color: var(--gold); + margin-bottom: var(--space-sm); +} + +.channel-card p { + font-size: 0.85rem; + color: var(--text-light); + margin-bottom: 0; +} + +.channel-card a { + font-size: 0.85rem; +} + +/* --- About story section --- */ +.story-block { + display: grid; + grid-template-columns: 1fr; + gap: var(--space-xl); + align-items: center; + margin-bottom: var(--space-2xl); +} + +@media (min-width: 768px) { + .story-block { + grid-template-columns: 1fr 1fr; + } + .story-block.reverse { + direction: rtl; + } + .story-block.reverse > * { + direction: ltr; + } +} + +.story-img { + border-radius: var(--radius-md); + overflow: hidden; + aspect-ratio: 4/3; +} + +.story-img img { + width: 100%; + height: 100%; + object-fit: cover; +} + +/* --- Footer --- */ +.footer { + background: var(--navy-dark); + color: var(--white); + padding: var(--space-2xl) 0 0; +} + +.footer-grid { + display: grid; + grid-template-columns: 1fr; + gap: var(--space-xl); + padding-bottom: var(--space-xl); +} + +@media (min-width: 768px) { + .footer-grid { + grid-template-columns: 1.5fr 1fr 1fr; + } +} + +.footer-brand p { + color: rgba(255,255,255,0.7); + font-size: 0.95rem; + margin-top: var(--space-md); + max-width: 300px; +} + +.footer-brand .logo img { + height: 60px; +} + +.footer h4 { + color: var(--gold); + margin-bottom: var(--space-lg); + font-size: 1rem; + text-transform: uppercase; + letter-spacing: 1px; +} + +.footer-links a { + display: block; + color: rgba(255,255,255,0.7); + padding: var(--space-xs) 0; + font-size: 0.95rem; +} + +.footer-links a:hover { + color: var(--gold); +} + +.footer-contact-item { + display: flex; + align-items: center; + gap: var(--space-sm); + padding: var(--space-xs) 0; + color: rgba(255,255,255,0.7); + font-size: 0.9rem; +} + +.footer-contact-item i { + color: var(--gold); + width: 20px; + text-align: center; +} + +.footer-contact-item a { + color: rgba(255,255,255,0.7); +} + +.footer-contact-item a:hover { + color: var(--gold); +} + +.social-links { + display: flex; + gap: var(--space-md); + margin-top: var(--space-lg); +} + +.social-links a { + width: 40px; + height: 40px; + border-radius: var(--radius-full); + background: rgba(255,255,255,0.1); + display: flex; + align-items: center; + justify-content: center; + color: var(--white); + font-size: 1.1rem; + transition: all var(--transition); +} + +.social-links a:hover { + background: var(--gold); + color: var(--navy); +} + +.footer-bottom { + border-top: 1px solid rgba(255,255,255,0.1); + padding: var(--space-lg) 0; + text-align: center; + color: rgba(255,255,255,0.5); + font-size: 0.85rem; +} + +/* --- Animations --- */ +.animate-on-scroll { + opacity: 0; + transform: translateY(30px); + transition: opacity 0.6s ease, transform 0.6s ease; +} + +.animate-on-scroll.visible { + opacity: 1; + transform: translateY(0); +} + +.animate-on-scroll.delay-1 { transition-delay: 0.1s; } +.animate-on-scroll.delay-2 { transition-delay: 0.2s; } +.animate-on-scroll.delay-3 { transition-delay: 0.3s; } +.animate-on-scroll.delay-4 { transition-delay: 0.4s; } + +@media (prefers-reduced-motion: reduce) { + .animate-on-scroll { + opacity: 1; + transform: none; + transition: none; + } +} + +/* --- Focus styles (accessibility) --- */ +:focus-visible { + outline: 3px solid var(--gold); + outline-offset: 2px; +} + +button:focus-visible, +a:focus-visible { + outline: 3px solid var(--gold); + outline-offset: 2px; +} + +/* --- Background section variant --- */ +.section-gray { + background: var(--light-gray); +} + +.section-navy { + background: var(--navy); +} + +/* ================================================ + Application page — iPhone mockup (copie exacte mva.mind4solutions.com) + ================================================ */ + +.app-mockup-outer { + display: flex; + justify-content: center; + padding: 40px 130px 60px 80px; + overflow: visible; +} + +.app-mockup-wrapper { + position: relative; + flex-shrink: 0; +} + +/* Outer phone wrapper — 3D perspective + rotation comme le site de référence */ +.iphone-mockup { + width: 290px; + position: relative; + z-index: 3; + transform: perspective(1200px) rotateY(6deg) rotateX(-2deg) rotateZ(-1.5deg); + transition: transform .8s cubic-bezier(.4,0,.2,1); +} + +.iphone-mockup:hover { + transform: perspective(1200px) rotateY(2deg) rotateX(0deg) rotateZ(0deg); +} + +/* Cadre aluminium sombre */ +.iphone-bezel { + position: relative; + width: 100%; + background: linear-gradient(145deg, #1a1a1f 0%, #2d2d35 50%, #1a1a1f 100%); + border-radius: 52px; + padding: 12px; + box-shadow: + 0 2px 4px rgba(15,24,41,0.08), + 0 8px 20px rgba(15,24,41,0.12), + 0 25px 50px rgba(15,24,41,0.18), + 0 50px 100px rgba(15,24,41,0.12), + inset 0 1px 0 rgba(255,255,255,0.06), + inset 0 -1px 0 rgba(0,0,0,0.2); + overflow: visible; +} + +/* Boutons latéraux */ +.iphone-btn { + position: absolute; + background: linear-gradient(#2a2a32, #1a1a1f); + border-radius: 2px; +} +.iphone-btn--silent { left: -3px; top: 110px; width: 3px; height: 28px; } +.iphone-btn--vol-up { left: -3px; top: 155px; width: 3px; height: 52px; } +.iphone-btn--vol-dn { left: -3px; top: 215px; width: 3px; height: 52px; } +.iphone-btn--power { right: -3px; top: 170px; width: 3px; height: 68px; } + +/* Écran */ +.iphone-screen { + background: #fffeF9; + border-radius: 42px; + overflow: hidden; + position: relative; + box-shadow: inset 0 0 0 0.5px rgba(255,255,255,0.1); +} + +/* Reflet écran */ +.iphone-screen::before { + content: ''; + position: absolute; + inset: 0; + z-index: 20; + pointer-events: none; + background: linear-gradient(125deg, rgba(255,255,255,0.12) 0%, transparent 40%, transparent 60%, rgba(255,255,255,0.04) 100%); + border-radius: inherit; +} + +/* Dynamic Island */ +.iphone-di { + width: 126px; + height: 36px; + background: #000; + border-radius: 20px; + margin: 12px auto 0; + position: relative; + z-index: 25; + box-shadow: inset 0 -1px 2px rgba(255,255,255,0.05), 0 1px 4px rgba(0,0,0,0.3); +} + +.iphone-di::before { + content: ''; + position: absolute; + right: 22px; + top: 50%; + transform: translateY(-50%); + width: 10px; + height: 10px; + border-radius: 50%; + background: radial-gradient(circle, #1a3a2a 30%, #0a1a12 60%, #000 100%); + box-shadow: inset 0 0 2px rgba(255,255,255,0.15), 0 0 0 1.5px rgba(255,255,255,0.06); +} + +/* Contenu de l'app à l'intérieur de l'écran */ +.iphone-content { + padding: 8px 14px 80px; + display: flex; + flex-direction: column; +} + +.iphone-status { + display: flex; + justify-content: space-between; + font-size: 0.62rem; + font-weight: 700; + padding: 6px 2px 8px; + color: #0F1829; +} + +.iphone-hdr { + display: flex; + justify-content: space-between; + align-items: center; + padding-bottom: 10px; +} + +.iphone-app-title { + font-weight: 800; + font-size: 0.85rem; + color: #0F1829; + line-height: 1.2; +} + +.iphone-app-route { + font-size: 0.62rem; + color: #C9A84C; + font-weight: 600; +} + +.iphone-avatar { + width: 28px; + height: 28px; + background: #C9A84C; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + color: white; + font-size: 0.68rem; + font-weight: 800; + flex-shrink: 0; +} + +.iphone-tabs { + display: flex; + border-bottom: 1px solid #f0ebe4; + margin-bottom: 10px; +} + +.itab { + font-size: 0.62rem; + padding: 5px 10px 7px; + color: #9A8B7E; + border-bottom: 2px solid transparent; + margin-bottom: -1px; + font-weight: 500; +} + +.itab--active { + color: #C9A84C; + border-bottom-color: #C9A84C; + font-weight: 700; +} + +/* Package card */ +.iphone-pkg { + background: #F5EDE0; + border-radius: 12px; + padding: 10px 11px; + margin-bottom: 8px; +} + +.ipkg-badge { + display: inline-flex; + align-items: center; + gap: 5px; + background: #C9A84C; + color: white; + font-size: 0.52rem; + font-weight: 800; + padding: 3px 9px; + border-radius: 20px; + letter-spacing: 0.6px; + margin-bottom: 6px; + text-transform: uppercase; +} + +.ipkg-dot { + width: 5px; + height: 5px; + background: white; + border-radius: 50%; + display: inline-block; +} + +.ipkg-icon { + text-align: center; + padding: 6px 0 8px; +} + +.ipkg-icon svg { + width: 40px; + height: 40px; +} + +.ipkg-name { + font-weight: 800; + font-size: 0.72rem; + color: #0F1829; +} + +.ipkg-ref { + font-size: 0.57rem; + color: #9A8B7E; + margin-bottom: 4px; +} + +.ipkg-price { + font-size: 1rem; + font-weight: 800; + color: #0F1829; + margin-bottom: 8px; + display: flex; + align-items: baseline; + gap: 4px; +} + +.ipkg-price em { + font-style: italic; + font-size: 0.65rem; + color: #C9A84C; + font-weight: 600; +} + +/* Tracking bar */ +.ipkg-track { + display: flex; + align-items: center; + margin: 0 0 4px; +} + +.itrack-dot { + width: 8px; + height: 8px; + border-radius: 50%; + background: #ddd; + flex-shrink: 0; +} + +.itrack-dot.done { background: #059669; } +.itrack-dot.current { background: #C9A84C; box-shadow: 0 0 0 3px rgba(201,168,76,0.25); } + +.itrack-line { flex: 1; height: 2px; background: #ddd; } +.itrack-line.done { background: #059669; } + +.ipkg-labels { + display: flex; + justify-content: space-between; + font-size: 0.52rem; + color: #9A8B7E; + font-weight: 500; +} + +/* Delivery items */ +.iphone-order { + display: flex; + align-items: center; + gap: 6px; + font-size: 0.62rem; + padding: 5px 0; + border-bottom: 1px solid #f0ebe4; + color: #6B5D52; +} + +.iphone-order:last-child { border-bottom: none; } + +.iphone-order .iorder-price { + margin-left: auto; + font-weight: 700; + color: #0F1829; +} + +.iorder-dot { + width: 7px; + height: 7px; + border-radius: 50%; + background: #059669; + flex-shrink: 0; +} + +/* ---- Floating notification cards ---- */ +@keyframes iFloatY { + 0%, 100% { transform: translateY(0); } + 50% { transform: translateY(-10px); } +} + +@keyframes iFadeIn { + from { opacity: 0; transform: translateY(14px); } + to { opacity: 1; transform: translateY(0); } +} + +.float-notif { + position: absolute; + background: #fff; + border-radius: 14px; + padding: 10px 14px; + box-shadow: 0 4px 20px rgba(58,40,32,0.12), 0 1px 4px rgba(58,40,32,0.06); + display: flex; + align-items: flex-start; + gap: 10px; + z-index: 20; + opacity: 0; + animation: iFadeIn 0.6s ease forwards, iFloatY 3.5s ease-in-out infinite; +} + +.float-notif--flight { + top: 60px; + left: -150px; + animation-delay: 0.4s, 1.1s; +} + +.float-notif--payment { + bottom: 140px; + right: -130px; + animation-delay: 0.8s, 1.6s; +} + +.float-notif-icon { + width: 32px; + height: 32px; + border-radius: 50%; + background: rgba(201,168,76,0.15); + display: flex; + align-items: center; + justify-content: center; + color: #C9A84C; + font-size: 0.8rem; + flex-shrink: 0; +} + +.float-notif-check { + width: 32px; + height: 32px; + border-radius: 50%; + background: #d1fae5; + display: flex; + align-items: center; + justify-content: center; + color: #059669; + font-size: 0.8rem; + flex-shrink: 0; +} + +.float-notif-title { + font-size: 0.72rem; + font-weight: 700; + color: #0F1829; + white-space: nowrap; +} + +.float-notif-sub { + font-size: 0.62rem; + color: #9A8B7E; + margin-top: 2px; + white-space: nowrap; +} + +.fnp-bar-wrap { + display: flex; + align-items: center; + gap: 5px; + margin-top: 5px; + font-size: 0.56rem; + color: #9A8B7E; +} + +.fnp-bar { + width: 60px; + height: 4px; + background: #eee; + border-radius: 4px; + overflow: hidden; +} + +.fnp-fill { + width: 72%; + height: 100%; + background: linear-gradient(90deg, #059669, #047857); + border-radius: 4px; +} + +/* Floating pill */ +.float-pill { + position: absolute; + bottom: 60px; + left: -80px; + background: #0F1829; + color: #fff; + font-size: 0.67rem; + font-weight: 600; + padding: 8px 16px; + border-radius: 50px; + display: flex; + align-items: center; + gap: 8px; + z-index: 20; + box-shadow: 0 4px 20px rgba(15,24,41,0.25); + white-space: nowrap; + opacity: 0; + animation: iFadeIn 0.6s ease 1.2s forwards, iFloatY 3.5s ease-in-out 1.9s infinite; +} + +.float-pill-dot { + width: 7px; + height: 7px; + background: #C9A84C; + border-radius: 50%; +} + +@media (prefers-reduced-motion: reduce) { + .float-notif, .float-pill { + animation: iFadeIn 0.6s ease forwards !important; + } +} + +@media (max-width: 900px) { + .app-mockup-outer { + padding: 60px 20px 60px 20px; + } + .float-notif--flight { left: -10px; top: 10px; } + .float-notif--payment { right: -10px; bottom: 100px; } + .float-pill { left: 0; bottom: 10px; } +} + +@media (max-width: 767px) { + .iphone-mockup { + transform: none; + width: 240px; + } + .iphone-mockup:hover { transform: none; } + .float-notif, .float-pill { display: none; } + .app-mockup-outer { padding: 20px; } +} diff --git a/guide-envoi.html b/guide-envoi.html new file mode 100644 index 0000000..c26681e --- /dev/null +++ b/guide-envoi.html @@ -0,0 +1,288 @@ + + + + + + Guide d'Envoi — MVA Global Fret + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

Guide d'Envoi

+

Tout ce que vous devez savoir avant d'envoyer un colis

+
+
+ + +
+
+
+

Articles Interdits

+
+

Ces articles ne peuvent pas être transportés par fret aérien (réglementation IATA)

+
+ +
+
+ +

Explosifs

+

Dynamite, munitions, feux d'artifice, pétards

+
+
+ +

Gaz comprimés

+

Bouteilles de gaz, aérosols pressurisés, butane, propane

+
+
+ +

Liquides inflammables

+

Essence, alcool, peintures, solvants, acétone

+
+
+ +

Solides inflammables

+

Allumettes, briquets, charbon actif, poudres

+
+
+ +

Batteries lithium

+

Piles lithium seules, hoverboards, certains appareils

+
+
+ +

Substances toxiques

+

Poisons, pesticides, substances infectieuses

+
+
+ +

Matières corrosives

+

Acides, mercure, soude caustique

+
+
+ +

Matières radioactives

+

Éléments radioactifs, matières magnétiques puissantes

+
+
+
+
+ + +
+
+
+

Articles Nécessitant une Déclaration

+
+

Ces articles peuvent être envoyés sous conditions

+
+
+
+ +

Parfums & cosmétiques

+

En quantité limitée, bien emballés

+
+
+ +

Appareils électroniques

+

Avec petites batteries intégrées, éteints

+
+
+ +

Médicaments

+

Avec ordonnance, en quantité personnelle

+
+
+
+ +

En cas de doute sur un article, n'hésitez pas à nous contacter avant d'envoyer votre colis. Notre équipe vous répondra dans les plus brefs délais.

+
+
+
+ + +
+
+
+

Comment Bien Emballer

+
+

Suivez ces étapes pour que vos colis arrivent en parfait état

+
+ +
+
+ +
+

01. Choisissez le bon carton

+

Utilisez un carton neuf à double paroi, adapté à la taille de votre envoi. Évitez les cartons usagés ou fragilisés.

+
+
+
+ +
+

02. Protégez le contenu

+

Emballez chaque article individuellement avec du papier bulle ou de la mousse. Comblez les espaces vides pour éviter les mouvements.

+
+
+
+ +
+

03. Scellez correctement

+

Utilisez du ruban adhésif épais et de haute qualité. Scellez toutes les ouvertures et renforcez les bords.

+
+
+
+ +
+

04. Étiquetez clairement

+

Indiquez lisiblement le nom et l'adresse du destinataire. Ajoutez la mention "FRAGILE" si nécessaire.

+
+
+
+
+
+ + +
+
+
+

Bonnes Pratiques

+
+
+
+
+

À Faire

+
    +
  • Utiliser un carton neuf et solide
  • +
  • Emballer chaque objet individuellement
  • +
  • Combler les vides avec du matériel de calage
  • +
  • Indiquer clairement l'adresse du destinataire
  • +
  • Peser votre colis avant l'envoi
  • +
+
+
+

À Ne Pas Faire

+
    +
  • Utiliser des cartons usagés ou fragilisés
  • +
  • Laisser des espaces vides dans le colis
  • +
  • Envoyer des produits interdits par l'IATA
  • +
  • Oublier d'étiqueter les objets fragiles
  • +
  • Dépasser les dimensions autorisées
  • +
+
+
+
+
+ + +
+
+

Une question sur votre envoi ?

+

Notre équipe est disponible tous les jours pour vous aider.

+ + Nous contacter + +
+
+ +
+ + + + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..64b8fa2 --- /dev/null +++ b/index.html @@ -0,0 +1,271 @@ + + + + + + MVA Global Fret — Fret Aérien Paris Antananarivo Madagascar + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

+ Fret Aérien
+ Paris — Antananarivo +

+

Votre partenaire de confiance pour l'envoi de colis entre la France et Madagascar. Rapide, fiable et à taille humaine.

+ +
+
+ + +
+
+
+

Nos Services

+
+

Un service de fret aérien premium entre l'Europe et Madagascar

+
+
+
+
+ +
+

2 Envois par Semaine

+

Deux départs hebdomadaires de Paris vers Antananarivo pour une flexibilité maximale.

+
+
+
+ +
+

Livraison en 2 Semaines

+

Vos colis arrivent à destination en seulement deux semaines.

+
+
+
+ +
+

Service Client 7j/7

+

Une équipe dédiée disponible tous les jours pour répondre à vos questions.

+
+
+
+
+ + +
+
+
+
+ Équipe MVA Global Fret — fret aérien entre l'Europe et Madagascar +
+
+

Qui sommes-nous ?

+
+

MVA Global Fret est une entreprise à taille humaine spécialisée dans le fret aérien entre l'Europe et Madagascar. Notre priorité : la qualité du service et la satisfaction de nos clients.

+ + + En savoir plus + +
+
+
+
+ + +
+
+
+

Comment ça marche ?

+
+

Trois étapes simples pour envoyer vos colis

+
+
+
+ +
+

Inscription

+

Inscrivez-vous en ligne et recevez votre numéro de référence client ainsi que l'adresse de dépôt à Paris.

+
+
+
+ +
+

Envoi du Colis

+

Déposez ou faites livrer votre colis à notre adresse parisienne. Nous nous occupons du reste.

+
+
+
+ +
+

Réception

+

Votre colis arrive à Antananarivo en 2 semaines. Paiement à la réception après contre-pesée.

+
+
+
+
+
+ + +
+
+
+
+
2
+

Envois / semaine

+
+
+
2
+

Semaines de délai

+
+
+
7
+

Personnes dédiées

+
+
+
+
+ + +
+
+

Prêt à envoyer vos colis ?

+

Inscrivez-vous dès maintenant et recevez votre numéro de référence client.

+ + + S'inscrire + +
+
+ +
+ + + + + + + + diff --git a/js/form-handler.js b/js/form-handler.js new file mode 100644 index 0000000..118968c --- /dev/null +++ b/js/form-handler.js @@ -0,0 +1,194 @@ +// ============================================ +// MVA Global Fret — Form Handler +// HubSpot Portal ID : 148163754 +// HubSpot Form GUID : 1d9b75c9-8b60-4966-aa18-4bf503452e9a +// ============================================ + +const HUBSPOT_PORTAL_ID = '148163754'; +const HUBSPOT_FORM_GUID = '1d9b75c9-8b60-4966-aa18-4bf503452e9a'; +// Create a free account at formspree.io and replace this ID to enable email backup +const FORMSPREE_ID = 'mojrvokp'; + +document.addEventListener('DOMContentLoaded', () => { + const form = document.getElementById('contactForm'); + if (form) setupContactForm(form); +}); + +function setupContactForm(form) { + form.addEventListener('submit', async (e) => { + e.preventDefault(); + if (!validateForm(form)) return; + + setLoading(true); + + const data = { + firstname: form.firstname.value.trim(), + lastname: form.lastname.value.trim(), + phone: form.phone.value.trim(), + email: form.email.value.trim(), + address: form.address.value.trim(), + }; + + const results = await Promise.allSettled([ + submitToHubSpot(data), + submitToFormspree(data), + ]); + + const hubspotOk = results[0].status === 'fulfilled'; + const formspreeOk = results[1].status === 'fulfilled'; + + setLoading(false); + + if (hubspotOk || formspreeOk) { + showSuccess(); + } else { + showError(); + } + }); +} + +async function submitToHubSpot(data) { + const payload = { + fields: [ + { name: 'firstname', value: data.firstname }, + { name: 'lastname', value: data.lastname }, + { name: 'phone', value: data.phone }, + { name: 'email', value: data.email }, + { name: 'address', value: data.address }, + ], + context: { + pageUri: window.location.href, + pageName: document.title, + }, + }; + + const res = await fetch( + `https://api.hsforms.com/submissions/v3/integration/submit/${HUBSPOT_PORTAL_ID}/${HUBSPOT_FORM_GUID}`, + { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), + } + ); + + if (!res.ok) throw new Error(`HubSpot error: ${res.status}`); + return res.json(); +} + +async function submitToFormspree(data) { + if (FORMSPREE_ID === 'YOUR_FORMSPREE_ID') return; + + const res = await fetch(`https://formspree.io/f/${FORMSPREE_ID}`, { + method: 'POST', + headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, + body: JSON.stringify({ + nom: data.lastname, + prenom: data.firstname, + telephone: data.phone, + email: data.email, + adresse_antananarivo: data.address, + }), + }); + + if (!res.ok) throw new Error(`Formspree error: ${res.status}`); + return res.json(); +} + +function validateForm(form) { + let valid = true; + const lang = localStorage.getItem('mva-lang') || 'fr'; + const t = translations?.[lang]?.contact || {}; + + const requiredMsg = t.required || 'Ce champ est obligatoire'; + const invalidEmail = t.invalidEmail || 'Adresse email invalide'; + const invalidPhone = t.invalidPhone || 'Numéro de téléphone invalide'; + + const fields = ['firstname', 'lastname', 'phone', 'email', 'address']; + fields.forEach(name => clearError(name)); + clearError('cgv'); + + fields.forEach(name => { + const el = form[name]; + if (!el.value.trim()) { + showFieldError(name, requiredMsg); + valid = false; + } + }); + + const cgvBox = form['cgv']; + if (cgvBox && !cgvBox.checked) { + showFieldError('cgv', t.cgvRequired || 'Vous devez accepter les Conditions Générales de Vente.'); + valid = false; + } + + if (form.email.value.trim() && !isValidEmail(form.email.value.trim())) { + showFieldError('email', invalidEmail); + valid = false; + } + + if (form.phone.value.trim() && !isValidPhone(form.phone.value.trim())) { + showFieldError('phone', invalidPhone); + valid = false; + } + + return valid; +} + +function isValidEmail(email) { + return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email); +} + +function isValidPhone(phone) { + return /^[+\d][\d\s\-().]{6,20}$/.test(phone); +} + +function showFieldError(name, msg) { + const el = document.getElementById(`error-${name}`); + const input = document.getElementById(name) || document.querySelector(`[name="${name}"]`); + if (el) el.textContent = msg; + if (input) input.classList.add('error'); +} + +function clearError(name) { + const el = document.getElementById(`error-${name}`); + const input = document.getElementById(name) || document.querySelector(`[name="${name}"]`); + if (el) el.textContent = ''; + if (input) input.classList.remove('error'); +} + +function setLoading(isLoading) { + const btn = document.getElementById('submitBtn'); + const txt = document.getElementById('submitText'); + const form = document.getElementById('contactForm'); + const lang = localStorage.getItem('mva-lang') || 'fr'; + const t = translations?.[lang]?.contact || {}; + + if (!btn) return; + btn.disabled = isLoading; + if (txt) { + txt.textContent = isLoading + ? (t.submitLoading || 'Envoi en cours...') + : (t.submitBtn || "S'inscrire"); + } + form?.classList.toggle('form-loading', isLoading); +} + +function showSuccess() { + const successEl = document.getElementById('formSuccess'); + const form = document.getElementById('contactForm'); + if (successEl) { + successEl.classList.add('show'); + successEl.scrollIntoView({ behavior: 'smooth', block: 'center' }); + } + if (form) form.style.display = 'none'; +} + +function showError() { + const errEl = document.getElementById('formErrorGlobal'); + const lang = localStorage.getItem('mva-lang') || 'fr'; + const t = translations?.[lang]?.contact || {}; + if (errEl) { + errEl.style.display = 'block'; + errEl.textContent = t.errorMsg || 'Une erreur est survenue. Veuillez réessayer ou nous contacter directement.'; + } +} diff --git a/js/main.js b/js/main.js new file mode 100644 index 0000000..5edb94d --- /dev/null +++ b/js/main.js @@ -0,0 +1,152 @@ +document.addEventListener('DOMContentLoaded', () => { + const lang = localStorage.getItem('mva-lang') || 'fr'; + applyLanguage(lang); + setupNav(); + setupScrollEffects(); + setupAnimations(); + setupFAQ(); + setActiveNavLink(); +}); + +function applyLanguage(lang) { + document.documentElement.lang = lang; + localStorage.setItem('mva-lang', lang); + + document.querySelectorAll('.lang-switcher button').forEach(btn => { + btn.classList.toggle('active', btn.dataset.lang === lang); + }); + + const t = translations[lang]; + if (!t) return; + + document.querySelectorAll('[data-i18n]').forEach(el => { + const keys = el.dataset.i18n.split('.'); + let val = t; + for (const k of keys) { + val = val?.[k]; + } + if (val !== undefined && val !== null) { + el.textContent = val; + } + }); + + document.querySelectorAll('[data-i18n-html]').forEach(el => { + const keys = el.dataset.i18nHtml.split('.'); + let val = t; + for (const k of keys) { + val = val?.[k]; + } + if (val !== undefined && val !== null) { + el.innerHTML = val.replace(/\n/g, '
'); + } + }); + + document.querySelectorAll('[data-i18n-placeholder]').forEach(el => { + const keys = el.dataset.i18nPlaceholder.split('.'); + let val = t; + for (const k of keys) { + val = val?.[k]; + } + if (val !== undefined && val !== null) { + el.placeholder = val; + } + }); +} + +function setupNav() { + document.querySelectorAll('.lang-switcher button').forEach(btn => { + btn.addEventListener('click', () => { + applyLanguage(btn.dataset.lang); + }); + }); + + const menuToggle = document.getElementById('menuToggle'); + const mobileNav = document.getElementById('mobileNav'); + const overlay = document.getElementById('overlay'); + + if (menuToggle && mobileNav) { + menuToggle.addEventListener('click', () => { + menuToggle.classList.toggle('open'); + mobileNav.classList.toggle('open'); + overlay?.classList.toggle('open'); + document.body.style.overflow = mobileNav.classList.contains('open') ? 'hidden' : ''; + }); + + overlay?.addEventListener('click', () => { + menuToggle.classList.remove('open'); + mobileNav.classList.remove('open'); + overlay.classList.remove('open'); + document.body.style.overflow = ''; + }); + + mobileNav.querySelectorAll('a').forEach(link => { + link.addEventListener('click', () => { + menuToggle.classList.remove('open'); + mobileNav.classList.remove('open'); + overlay?.classList.remove('open'); + document.body.style.overflow = ''; + }); + }); + } +} + +function setupScrollEffects() { + const header = document.querySelector('.header'); + if (!header) return; + + let lastScroll = 0; + window.addEventListener('scroll', () => { + const scrollY = window.scrollY; + header.classList.toggle('scrolled', scrollY > 50); + lastScroll = scrollY; + }, { passive: true }); +} + +function setupAnimations() { + const elements = document.querySelectorAll('.animate-on-scroll'); + if (!elements.length) return; + + const observer = new IntersectionObserver((entries) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + entry.target.classList.add('visible'); + observer.unobserve(entry.target); + } + }); + }, { threshold: 0.1, rootMargin: '0px 0px -50px 0px' }); + + elements.forEach(el => observer.observe(el)); +} + +function setupFAQ() { + document.querySelectorAll('.faq-question').forEach(btn => { + btn.addEventListener('click', () => { + const item = btn.closest('.faq-item'); + const answer = item.querySelector('.faq-answer'); + const isOpen = item.classList.contains('open'); + + document.querySelectorAll('.faq-item.open').forEach(openItem => { + openItem.classList.remove('open'); + openItem.querySelector('.faq-answer').style.maxHeight = '0'; + }); + + if (!isOpen) { + item.classList.add('open'); + answer.style.maxHeight = answer.scrollHeight + 'px'; + } + }); + }); +} + +function setActiveNavLink() { + const path = window.location.pathname; + const filename = path.split('/').pop() || 'index.html'; + + document.querySelectorAll('.nav a, .mobile-nav a').forEach(link => { + const href = link.getAttribute('href'); + if (href === filename || (filename === '' && href === 'index.html')) { + link.classList.add('active'); + link.setAttribute('aria-current', 'page'); + } + }); +} diff --git a/js/translations.js b/js/translations.js new file mode 100644 index 0000000..a9bfc76 --- /dev/null +++ b/js/translations.js @@ -0,0 +1,613 @@ +const translations = { + fr: { + nav: { + home: "Accueil", + about: "Qui sommes-nous", + pricing: "Tarifs", + guide: "Guide d'envoi", + contact: "Contact", + app: "Prochainement" + }, + home: { + heroTitle: "Fret Aérien", + heroTitleHighlight: "Paris — Antananarivo", + heroSubtitle: "Votre partenaire de confiance pour l'envoi de colis entre la France et Madagascar. Rapide, fiable et à taille humaine.", + heroCta: "S'inscrire maintenant", + heroCtaSecondary: "Nos tarifs", + servicesTitle: "Nos Services", + servicesSubtitle: "Un service de fret aérien premium entre l'Europe et Madagascar", + service1Title: "2 Envois par Semaine", + service1Desc: "Deux départs hebdomadaires de Paris vers Antananarivo pour une flexibilité maximale.", + service2Title: "Livraison en 2 Semaines", + service2Desc: "Vos colis arrivent à destination en seulement deux semaines.", + service3Title: "Service Client 7j/7", + service3Desc: "Une équipe dédiée disponible tous les jours pour répondre à vos questions.", + aboutTitle: "Qui sommes-nous ?", + aboutText: "MVA Global Fret est une entreprise à taille humaine spécialisée dans le fret aérien entre l'Europe et Madagascar. Notre priorité : la qualité du service et la satisfaction de nos clients.", + aboutCta: "En savoir plus", + howTitle: "Comment ça marche ?", + howSubtitle: "Trois étapes simples pour envoyer vos colis", + step1Title: "Inscription", + step1Desc: "Inscrivez-vous en ligne et recevez votre numéro de référence client ainsi que l'adresse de dépôt à Paris.", + step2Title: "Envoi du Colis", + step2Desc: "Déposez ou faites livrer votre colis à notre adresse parisienne. Nous nous occupons du reste.", + step3Title: "Réception", + step3Desc: "Votre colis arrive à Antananarivo en 2 semaines. Paiement à la réception après contre-pesée.", + ctaTitle: "Prêt à envoyer vos colis ?", + ctaSubtitle: "Inscrivez-vous dès maintenant et recevez votre numéro de référence client.", + ctaCta: "S'inscrire" + }, + about: { + heroTitle: "Qui Sommes-Nous", + heroSubtitle: "Une entreprise à taille humaine au service de la diaspora", + story1Title: "Notre Mission", + story1Text: "MVA Global Fret est née d'une conviction simple : le transport de colis entre l'Europe et Madagascar mérite un service d'excellence, accessible à tous. Nous sommes le pont entre deux continents, facilitant les échanges entre les familles, les entrepreneurs et les communautés.\n\nNotre expertise dans le fret aérien nous permet de garantir des délais de livraison rapides et une prise en charge attentive de chaque colis qui nous est confié.", + story2Title: "Notre Engagement", + story2Text: "Ce qui nous distingue, c'est notre approche humaine. Chez MVA Global Fret, chaque client est unique et chaque colis est important. Nous ne sommes pas une grande multinationale anonyme : nous sommes une équipe soudée de 7 personnes passionnées qui connaissent leurs clients par leur nom.\n\nNotre priorité absolue est la qualité du service client. Disponibles tous les jours, nous répondons à vos questions via Messenger, par téléphone ou par email.", + valuesTitle: "Nos Valeurs", + valuesSubtitle: "Les principes qui guident chacune de nos actions", + value1Title: "Fiabilité", + value1Desc: "Chaque colis est traité avec le plus grand soin. Nous respectons nos engagements de délais et de qualité.", + value2Title: "Proximité", + value2Desc: "Une relation de confiance avec chaque client. Nous sommes à votre écoute, tous les jours.", + value3Title: "Transparence", + value3Desc: "Des tarifs clairs, sans surprise. Paiement uniquement à la réception après contre-pesée.", + value4Title: "Engagement", + value4Desc: "Nous mettons tout en œuvre pour que vos colis arrivent en parfait état, dans les meilleurs délais.", + teamCount: "7", + teamTitle: "membres dévoués à votre service", + teamDesc: "Disponibles tous les jours pour vous accompagner dans vos envois. Sur Messenger, par téléphone ou par email — nous sommes toujours là pour vous.", + channelsTitle: "Contactez-nous", + channelsSubtitle: "Plusieurs canaux pour vous répondre au plus vite" + }, + tarifs: { + heroTitle: "Nos Tarifs", + heroSubtitle: "Des prix transparents pour un service de qualité", + priceAmount: "70 000", + priceUnit: "Ariary / kilogramme", + pricingTitle: "Tarif d'envoi", + note1: "Pas d'arrondi à l'inférieur : si un colis pèse 1,2 kg, il sera facturé 2 kg.", + note2: "Paiement uniquement à la réception du colis à Madagascar, après la contre-pesée.", + deliveryTitle: "Options de Livraison", + deliverySubtitle: "À Antananarivo et dans toute Madagascar", + delivery1Title: "Livraison à Antananarivo", + delivery1Price: "+ 6 000 Ar", + delivery1Desc: "Supplément de livraison pour toute adresse dans Antananarivo.", + delivery2Title: "Livraison en Province", + delivery2Price: "+ 6 000 Ar + frais Cotisse", + delivery2Desc: "6 000 Ar de livraison jusqu'à Cotisse, puis frais Cotisse à prévoir. Le client récupère son colis au Cotisse de sa ville.", + scheduleTitle: "Fréquence d'envoi", + schedule1Label: "envois par semaine", + schedule1Number: "2", + schedule2Label: "semaines de délai", + schedule2Number: "2", + faqTitle: "Questions Fréquentes", + faq1Q: "Comment est calculé le poids ?", + faq1A: "Le poids est mesuré au kilogramme supérieur. Si votre colis pèse 1,2 kg, il sera facturé 2 kg. Il n'y a pas d'arrondi à l'inférieur.", + faq2Q: "Quand dois-je payer ?", + faq2A: "Le paiement se fait uniquement à la réception du colis à Madagascar, après une contre-pesée. Aucun paiement à l'avance n'est demandé.", + faq3Q: "Comment fonctionne la livraison en province ?", + faq3A: "Nous livrons votre colis au transporteur Cotisse à Antananarivo (6 000 Ar). Ensuite, les frais Cotisse vers votre ville sont à votre charge. Vous récupérez votre colis au bureau Cotisse de votre ville.", + faq4Q: "Que se passe-t-il si mon colis est fragile ?", + faq4A: "Nous vous recommandons d'emballer soigneusement vos objets fragiles. Consultez notre guide d'envoi pour les meilleures pratiques d'emballage.", + ctaText: "Des questions ? Contactez-nous", + ctaBtn: "Nous contacter" + }, + contact: { + heroTitle: "Contactez-Nous", + heroSubtitle: "Inscrivez-vous et commencez à envoyer vos colis dès aujourd'hui", + formTitle: "Formulaire d'inscription", + formSubtitle: "Remplissez ce formulaire pour recevoir votre numéro de référence client et l'adresse de dépôt à Paris.", + labelNom: "Nom", + labelPrenom: "Prénom", + labelTel: "Numéro de téléphone", + labelEmail: "Adresse email", + labelAdresse: "Adresse de livraison", + placeholderNom: "Votre nom de famille", + placeholderPrenom: "Votre prénom", + placeholderTel: "+261 38 00 000 00", + placeholderEmail: "votre@email.com", + placeholderAdresse: "Adresse complète...", + submitBtn: "S'inscrire", + submitLoading: "Envoi en cours...", + successTitle: "Inscription envoyée !", + successMsg: "Merci ! Nous avons bien reçu votre demande. Notre équipe vous contactera dans les plus brefs délais avec votre numéro de référence client.", + errorMsg: "Une erreur est survenue. Veuillez réessayer ou nous contacter directement.", + required: "Ce champ est obligatoire", + invalidEmail: "Adresse email invalide", + invalidPhone: "Numéro de téléphone invalide", + infoTitle: "Nos Coordonnées", + infoAvailable: "Disponible tous les jours", + phoneMG: "Numéro Madagascar", + phoneFR: "Numéro France", + email: "Email", + address: "Adresse", + addressValue: "Antananarivo 101, Madagascar", + facebook: "Facebook", + mapTitle: "Notre Localisation" + }, + guide: { + heroTitle: "Guide d'Envoi", + heroSubtitle: "Tout ce que vous devez savoir avant d'envoyer un colis", + prohibitedTitle: "Articles Interdits", + prohibitedSubtitle: "Ces articles ne peuvent pas être transportés par fret aérien (réglementation IATA)", + cat1Title: "Explosifs", + cat1Desc: "Dynamite, munitions, feux d'artifice, pétards", + cat2Title: "Gaz comprimés", + cat2Desc: "Bouteilles de gaz, aérosols pressurisés, butane, propane", + cat3Title: "Liquides inflammables", + cat3Desc: "Essence, alcool, peintures, solvants, acétone", + cat4Title: "Solides inflammables", + cat4Desc: "Allumettes, briquets, charbon actif, poudres", + cat5Title: "Batteries lithium", + cat5Desc: "Piles lithium seules, hoverboards, certains appareils", + cat6Title: "Substances toxiques", + cat6Desc: "Poisons, pesticides, substances infectieuses", + cat7Title: "Matières corrosives", + cat7Desc: "Acides, mercure, soude caustique", + cat8Title: "Matières radioactives", + cat8Desc: "Éléments radioactifs, matières magnétiques puissantes", + warningTitle: "Articles Nécessitant une Déclaration", + warningSubtitle: "Ces articles peuvent être envoyés sous conditions", + warn1Title: "Parfums & cosmétiques", + warn1Desc: "En quantité limitée, bien emballés", + warn2Title: "Appareils électroniques", + warn2Desc: "Avec petites batteries intégrées, éteints", + warn3Title: "Médicaments", + warn3Desc: "Avec ordonnance, en quantité personnelle", + packagingTitle: "Comment Bien Emballer", + packagingSubtitle: "Suivez ces étapes pour que vos colis arrivent en parfait état", + pack1Title: "Choisissez le bon carton", + pack1Desc: "Utilisez un carton neuf à double paroi, adapté à la taille de votre envoi. Évitez les cartons usagés ou fragilisés.", + pack2Title: "Protégez le contenu", + pack2Desc: "Emballez chaque article individuellement avec du papier bulle ou de la mousse. Comblez les espaces vides pour éviter les mouvements.", + pack3Title: "Scellez correctement", + pack3Desc: "Utilisez du ruban adhésif épais et de haute qualité. Scellez toutes les ouvertures et renforcez les bords.", + pack4Title: "Étiquetez clairement", + pack4Desc: "Indiquez lisiblement le nom et l'adresse du destinataire. Ajoutez la mention \"FRAGILE\" si nécessaire.", + dosTitle: "À Faire", + dontsTitle: "À Ne Pas Faire", + do1: "Utiliser un carton neuf et solide", + do2: "Emballer chaque objet individuellement", + do3: "Combler les vides avec du matériel de calage", + do4: "Indiquer clairement l'adresse du destinataire", + do5: "Peser votre colis avant l'envoi", + dont1: "Utiliser des cartons usagés ou fragilisés", + dont2: "Laisser des espaces vides dans le colis", + dont3: "Envoyer des produits interdits par l'IATA", + dont4: "Oublier d'étiqueter les objets fragiles", + dont5: "Dépasser les dimensions autorisées" + }, + app: { + badge: "Bientôt Disponible", + title: "L'Application MVA Global Fret", + subtitle: "Bientôt, commandez depuis Madagascar sur les sites internet européens et payez en mobile money.", + feature1Title: "E-commerce Européen", + feature1Desc: "Accédez aux sites de vente en ligne européens directement depuis Madagascar.", + feature2Title: "Paiement Mobile Money", + feature2Desc: "Payez avec MVola, Orange Money ou Airtel Money en toute simplicité.", + feature3Title: "Suivi en Temps Réel", + feature3Desc: "Suivez l'avancement de votre commande et de la livraison en direct.", + notifyTitle: "Soyez informé du lancement", + notifyPlaceholder: "Votre adresse email", + notifyBtn: "Me notifier", + notifySuccess: "Merci ! Vous serez informé du lancement.", + phoneLabel: "MVA Global Fret", + phoneDesc: "Votre passerelle vers l'Europe" + }, + footer: { + desc: "Votre partenaire de confiance pour le fret aérien entre l'Europe et Madagascar.", + linksTitle: "Liens Rapides", + contactTitle: "Contact", + copyright: "© 2025 MVA Global Fret. Tous droits réservés." + } + }, + + en: { + nav: { + home: "Home", + about: "About Us", + pricing: "Pricing", + guide: "Shipping Guide", + contact: "Contact", + app: "Coming Soon" + }, + home: { + heroTitle: "Air Freight", + heroTitleHighlight: "Paris — Antananarivo", + heroSubtitle: "Your trusted partner for shipping parcels between France and Madagascar. Fast, reliable and with a human touch.", + heroCta: "Register Now", + heroCtaSecondary: "Our Pricing", + servicesTitle: "Our Services", + servicesSubtitle: "Premium air freight service between Europe and Madagascar", + service1Title: "2 Shipments per Week", + service1Desc: "Two weekly departures from Paris to Antananarivo for maximum flexibility.", + service2Title: "2-Week Delivery", + service2Desc: "Your parcels arrive at their destination in just two weeks.", + service3Title: "24/7 Customer Service", + service3Desc: "A dedicated team available every day to answer your questions.", + aboutTitle: "Who Are We?", + aboutText: "MVA Global Fret is a human-scale company specializing in air freight between Europe and Madagascar. Our priority: quality service and customer satisfaction.", + aboutCta: "Learn More", + howTitle: "How Does It Work?", + howSubtitle: "Three simple steps to send your parcels", + step1Title: "Registration", + step1Desc: "Register online and receive your client reference number and the Paris drop-off address.", + step2Title: "Send Your Parcel", + step2Desc: "Drop off or have your parcel delivered to our Paris address. We take care of the rest.", + step3Title: "Reception", + step3Desc: "Your parcel arrives in Antananarivo in 2 weeks. Payment upon receipt after counter-weighing.", + ctaTitle: "Ready to Send Your Parcels?", + ctaSubtitle: "Register now and receive your client reference number.", + ctaCta: "Register" + }, + about: { + heroTitle: "About Us", + heroSubtitle: "A human-scale company serving the diaspora", + story1Title: "Our Mission", + story1Text: "MVA Global Fret was born from a simple conviction: parcel transport between Europe and Madagascar deserves an excellent, accessible service. We are the bridge between two continents, facilitating exchanges between families, entrepreneurs and communities.\n\nOur expertise in air freight allows us to guarantee fast delivery times and attentive care for every parcel entrusted to us.", + story2Title: "Our Commitment", + story2Text: "What sets us apart is our human approach. At MVA Global Fret, every client is unique and every parcel matters. We're not a large anonymous multinational: we are a close-knit team of 7 passionate people who know their clients by name.\n\nOur absolute priority is the quality of customer service. Available every day, we answer your questions via Messenger, by phone or by email.", + valuesTitle: "Our Values", + valuesSubtitle: "The principles that guide each of our actions", + value1Title: "Reliability", + value1Desc: "Every parcel is handled with the greatest care. We respect our commitments on deadlines and quality.", + value2Title: "Proximity", + value2Desc: "A relationship of trust with every client. We are at your disposal, every day.", + value3Title: "Transparency", + value3Desc: "Clear pricing, no surprises. Payment only upon receipt after counter-weighing.", + value4Title: "Commitment", + value4Desc: "We do everything to ensure your parcels arrive in perfect condition, as quickly as possible.", + teamCount: "7", + teamTitle: "team members dedicated to your service", + teamDesc: "Available every day to assist you with your shipments. On Messenger, by phone or by email — we are always there for you.", + channelsTitle: "Contact Us", + channelsSubtitle: "Multiple channels to respond to you as quickly as possible" + }, + tarifs: { + heroTitle: "Our Pricing", + heroSubtitle: "Transparent prices for quality service", + priceAmount: "70,000", + priceUnit: "Ariary / kilogram", + pricingTitle: "Shipping Rate", + note1: "No rounding down: if a parcel weighs 1.2 kg, it will be billed at 2 kg.", + note2: "Payment only upon receipt of the parcel in Madagascar, after counter-weighing.", + deliveryTitle: "Delivery Options", + deliverySubtitle: "In Antananarivo and throughout Madagascar", + delivery1Title: "Delivery in Antananarivo", + delivery1Price: "+ 6,000 Ar", + delivery1Desc: "Delivery supplement for any address in Antananarivo.", + delivery2Title: "Provincial Delivery", + delivery2Price: "+ 6,000 Ar + Cotisse fees", + delivery2Desc: "6,000 Ar delivery to Cotisse, plus Cotisse fees to be expected. Customer picks up the parcel at their city's Cotisse office.", + scheduleTitle: "Shipping Frequency", + schedule1Label: "shipments per week", + schedule1Number: "2", + schedule2Label: "weeks delivery time", + schedule2Number: "2", + faqTitle: "Frequently Asked Questions", + faq1Q: "How is weight calculated?", + faq1A: "Weight is measured to the next full kilogram. If your parcel weighs 1.2 kg, it will be billed at 2 kg. There is no rounding down.", + faq2Q: "When do I pay?", + faq2A: "Payment is made only upon receipt of the parcel in Madagascar, after counter-weighing. No advance payment is required.", + faq3Q: "How does provincial delivery work?", + faq3A: "We deliver your parcel to the Cotisse carrier in Antananarivo (6,000 Ar). Then, the Cotisse fees to your city are at your expense. You pick up your parcel at the Cotisse office in your city.", + faq4Q: "What if my parcel is fragile?", + faq4A: "We recommend carefully packaging your fragile items. Check our shipping guide for packaging best practices.", + ctaText: "Have questions? Contact us", + ctaBtn: "Contact Us" + }, + contact: { + heroTitle: "Contact Us", + heroSubtitle: "Register and start sending your parcels today", + formTitle: "Registration Form", + formSubtitle: "Fill out this form to receive your client reference number and the Paris drop-off address.", + labelNom: "Last Name", + labelPrenom: "First Name", + labelTel: "Phone Number", + labelEmail: "Email Address", + labelAdresse: "Delivery Address", + placeholderNom: "Your last name", + placeholderPrenom: "Your first name", + placeholderTel: "+261 38 00 000 00", + placeholderEmail: "your@email.com", + placeholderAdresse: "Full address...", + submitBtn: "Register", + submitLoading: "Sending...", + successTitle: "Registration Sent!", + successMsg: "Thank you! We have received your request. Our team will contact you shortly with your client reference number.", + errorMsg: "An error occurred. Please try again or contact us directly.", + required: "This field is required", + invalidEmail: "Invalid email address", + invalidPhone: "Invalid phone number", + infoTitle: "Our Contact Details", + infoAvailable: "Available every day", + phoneMG: "Madagascar Number", + phoneFR: "France Number", + email: "Email", + address: "Address", + addressValue: "Antananarivo 101, Madagascar", + facebook: "Facebook", + mapTitle: "Our Location" + }, + guide: { + heroTitle: "Shipping Guide", + heroSubtitle: "Everything you need to know before sending a parcel", + prohibitedTitle: "Prohibited Items", + prohibitedSubtitle: "These items cannot be transported by air freight (IATA regulations)", + cat1Title: "Explosives", + cat1Desc: "Dynamite, ammunition, fireworks, firecrackers", + cat2Title: "Compressed Gases", + cat2Desc: "Gas cylinders, pressurized aerosols, butane, propane", + cat3Title: "Flammable Liquids", + cat3Desc: "Gasoline, alcohol, paints, solvents, acetone", + cat4Title: "Flammable Solids", + cat4Desc: "Matches, lighters, activated charcoal, powders", + cat5Title: "Lithium Batteries", + cat5Desc: "Loose lithium batteries, hoverboards, certain devices", + cat6Title: "Toxic Substances", + cat6Desc: "Poisons, pesticides, infectious substances", + cat7Title: "Corrosive Materials", + cat7Desc: "Acids, mercury, caustic soda", + cat8Title: "Radioactive Materials", + cat8Desc: "Radioactive elements, powerful magnetic materials", + warningTitle: "Items Requiring Declaration", + warningSubtitle: "These items can be sent under conditions", + warn1Title: "Perfumes & Cosmetics", + warn1Desc: "In limited quantities, well packaged", + warn2Title: "Electronic Devices", + warn2Desc: "With small built-in batteries, turned off", + warn3Title: "Medications", + warn3Desc: "With prescription, in personal quantities", + packagingTitle: "How to Pack Properly", + packagingSubtitle: "Follow these steps to ensure your parcels arrive in perfect condition", + pack1Title: "Choose the Right Box", + pack1Desc: "Use a new double-walled cardboard box, suitable for the size of your shipment. Avoid used or weakened boxes.", + pack2Title: "Protect the Contents", + pack2Desc: "Wrap each item individually with bubble wrap or foam. Fill empty spaces to prevent movement.", + pack3Title: "Seal Properly", + pack3Desc: "Use thick, high-quality packing tape. Seal all openings and reinforce the edges.", + pack4Title: "Label Clearly", + pack4Desc: "Clearly write the recipient's name and address. Add 'FRAGILE' marking if necessary.", + dosTitle: "Do", + dontsTitle: "Don't", + do1: "Use a new and sturdy box", + do2: "Wrap each item individually", + do3: "Fill voids with cushioning material", + do4: "Clearly indicate the recipient's address", + do5: "Weigh your parcel before shipping", + dont1: "Use old or weakened boxes", + dont2: "Leave empty spaces in the parcel", + dont3: "Send products prohibited by IATA", + dont4: "Forget to label fragile items", + dont5: "Exceed the authorized dimensions" + }, + app: { + badge: "Coming Soon", + title: "The MVA Global Fret App", + subtitle: "Soon, order from Madagascar on European websites and pay with mobile money.", + feature1Title: "European E-commerce", + feature1Desc: "Access European online shopping sites directly from Madagascar.", + feature2Title: "Mobile Money Payment", + feature2Desc: "Pay with MVola, Orange Money or Airtel Money with ease.", + feature3Title: "Real-Time Tracking", + feature3Desc: "Track your order and delivery progress in real time.", + notifyTitle: "Be notified at launch", + notifyPlaceholder: "Your email address", + notifyBtn: "Notify Me", + notifySuccess: "Thank you! You will be notified at launch.", + phoneLabel: "MVA Global Fret", + phoneDesc: "Your gateway to Europe" + }, + footer: { + desc: "Your trusted partner for air freight between Europe and Madagascar.", + linksTitle: "Quick Links", + contactTitle: "Contact", + copyright: "© 2025 MVA Global Fret. All rights reserved." + } + }, + + mg: { + nav: { + home: "Fandraisana", + about: "Momba anay", + pricing: "Vidiny", + guide: "Toromarika fandefasana", + contact: "Fifandraisana", + app: "Avy tsy ho ela" + }, + home: { + heroTitle: "Fandefa Entana an'habakabaka", + heroTitleHighlight: "Paris — Antananarivo", + heroSubtitle: "Mpiara-miasa azo itokisana amin'ny fandefasana entana eo anelanelan'i Frantsa sy Madagasikara. Haingana, azo itokisana ary mifandray akaiky.", + heroCta: "Hisoratra anarana", + heroCtaSecondary: "Ny vidinay", + servicesTitle: "Ny Tolotra", + servicesSubtitle: "Serivisy fandefa entana an'habakabaka avo lenta eo anelanelan'i Eoropa sy Madagasikara", + service1Title: "Fandefasana 2 isan-kerinandro", + service1Desc: "Fiaingana indroa isan-kerinandro avy any Paris mankany Antananarivo.", + service2Title: "Tonga ao anatin'ny 2 herinandro", + service2Desc: "Tonga any amin'ny toerana haleha ny entanareo ao anatin'ny roa herinandro monja.", + service3Title: "Serivisy mpanjifa 7j/7", + service3Desc: "Ekipa voatokana ho anareo isan'andro mba hamaliana ny fanontanianareo.", + aboutTitle: "Iza izahay?", + aboutText: "MVA Global Fret dia orinasa madinika manokana amin'ny fandefa entana an'habakabaka eo anelanelan'i Eoropa sy Madagasikara. Ny laharam-pahamehana : ny kalitaon'ny serivisy sy ny fahafaham-pon'ny mpanjifa.", + aboutCta: "Fantaro bebe kokoa", + howTitle: "Ahoana ny fomba fiasa?", + howSubtitle: "Dingana tsotra telo mba handefasana ny entanareo", + step1Title: "Fisoratana anarana", + step1Desc: "Misoratra anarana an-tserasera ary mandray ny laharan'ny mpanjifa sy ny adiresy fametrahana any Paris.", + step2Title: "Fandefasana ny entana", + step2Desc: "Apetraho na alefaso any amin'ny adiresy any Paris ny entanareo. Izahay no miandraikitra ny ambiny.", + step3Title: "Fandraisana", + step3Desc: "Tonga any Antananarivo ao anatin'ny 2 herinandro ny entanareo. Fandoavana rehefa voaray rehefa avy nolaniana.", + ctaTitle: "Vonona handefa ny entanareo ve?", + ctaSubtitle: "Misoratra anarana dieny izao ary mandray ny laharan'ny mpanjifa.", + ctaCta: "Hisoratra anarana" + }, + about: { + heroTitle: "Momba Anay", + heroSubtitle: "Orinasa madinika manompo ny diaspora", + story1Title: "Ny Andraikitr'ay", + story1Text: "MVA Global Fret dia teraka tamin'ny faharesen-dahatra tsotra: ny fitaterana entana eo anelanelan'i Eoropa sy Madagasikara dia mendrika serivisy tsara, azon'ny rehetra. Tetezana eo anelanelan'ny kaontinanta roa izahay, manamora ny fifanakalozana eo amin'ny fianakaviana, ny mpandraharaha ary ny fiarahamonina.\n\nNy fahaiza-manao amin'ny fandefa entana an'habakabaka no ahafahanay manome antoka fe-potoana fanaterana haingana sy fikarakarana tsara ny entana rehetra napetraka taminay.", + story2Title: "Ny Fanoloran-tenanay", + story2Text: "Ny manavaka anay dia ny fomba fijerinay maha-olona. Ao amin'ny MVA Global Fret, samy manokana ny mpanjifa tsirairay ary samy manan-danja ny entana tsirairay. Tsy orinasa multinationaly lehibe tsy fantatra izahay: ekipa mifanaraka tsara 7 miisa izahay, mazoto sy mahafantatra ny mpanjifa amin'ny anarany.\n\nNy laharam-pahamehana fara tampony dia ny kalitaon'ny serivisy ho an'ny mpanjifa. Azo antsoina isan'andro, mamaly ny fanontanianareo amin'ny Messenger, an-telefaonina na amin'ny mailaka izahay.", + valuesTitle: "Ny Soatoavinay", + valuesSubtitle: "Ny fitsipika mitari-dalana ny asanay tsirairay", + value1Title: "Fahatokiana", + value1Desc: "Ny entana tsirairay dia karakaraina amim-pitandremana. Manaja ny toky nataonay momba ny fe-potoana sy ny kalitao izahay.", + value2Title: "Fifandraisana akaiky", + value2Desc: "Fifampitokisana amin'ny mpanjifa tsirairay. Mihaino anareo izahay, isan'andro.", + value3Title: "Mangarahara", + value3Desc: "Vidiny mazava, tsy misy zavatra tsy nampoizina. Fandoavana rehefa voaray ny entana fotsiny rehefa avy nolaniana.", + value4Title: "Fanoloran-tena", + value4Desc: "Manao izay rehetra azo atao izahay mba ho tonga soa aman-tsara ny entanareo, amin'ny fotoana tsara indrindra.", + teamCount: "7", + teamTitle: "mpikambana manolo-tena ho anareo", + teamDesc: "Azo antsoina isan'andro mba hanampy anareo amin'ny fandefasana. Amin'ny Messenger, an-telefaonina na amin'ny mailaka — eo foana izahay ho anareo.", + channelsTitle: "Mifandraisa aminay", + channelsSubtitle: "Lalana maro mba hamaliana anareo haingana indrindra" + }, + tarifs: { + heroTitle: "Ny Vidinay", + heroSubtitle: "Vidiny mangarahara ho an'ny serivisy tsara kalitao", + priceAmount: "70 000", + priceUnit: "Ariary / kilao", + pricingTitle: "Saran'ny fandefasana", + note1: "Tsy misy fanakelezana : raha 1,2 kg ny entana, 2 kg no aloa.", + note2: "Fandoavana rehefa tonga ny entana any Madagasikara fotsiny, rehefa avy nolaniana.", + deliveryTitle: "Safidy Fanaterana", + deliverySubtitle: "Any Antananarivo sy manerana an'i Madagasikara", + delivery1Title: "Fanaterana ao Antananarivo", + delivery1Price: "+ 6 000 Ar", + delivery1Desc: "Fanampiny fanaterana ho an'ny adiresy rehetra ao Antananarivo.", + delivery2Title: "Fanaterana any amin'ny faritra", + delivery2Price: "+ 6 000 Ar + saran'ny Cotisse", + delivery2Desc: "6 000 Ar fanaterana mankany Cotisse, ary ny saran'ny Cotisse koa. Ny mpanjifa no maka ny entany any amin'ny biraon'ny Cotisse ao amin'ny tanànany.", + scheduleTitle: "Hatetika ny fandefasana", + schedule1Label: "fandefasana isan-kerinandro", + schedule1Number: "2", + schedule2Label: "herinandro fotoana fanaterana", + schedule2Number: "2", + faqTitle: "Fanontaniana Matetika", + faq1Q: "Ahoana ny fomba fikajiana ny lanja?", + faq1A: "Ny lanja dia refesina amin'ny kilao manontolo manaraka. Raha 1,2 kg ny entanareo, 2 kg no aloa. Tsy misy fanakelezana.", + faq2Q: "Rahoviana no mandoa?", + faq2A: "Ny fandoavana dia atao rehefa tonga ny entana any Madagasikara fotsiny, rehefa avy nolaniana. Tsy misy fandoavana mialoha.", + faq3Q: "Ahoana ny fanaterana any amin'ny faritra?", + faq3A: "Alefanay any amin'ny Cotisse any Antananarivo ny entanareo (6 000 Ar). Ny saran'ny Cotisse mankany amin'ny tanànanareo dia tompon'andraikitrareo. Alaina any amin'ny biraon'ny Cotisse ao amin'ny tanànanareo ny entana.", + faq4Q: "Ahoana raha mora vaky ny entako?", + faq4A: "Manoro hevitra anareo izahay mba hamono entana mora vaky tsara. Jereo ny toromarika fandefasana ho an'ny fomba tsara indrindra.", + ctaText: "Manana fanontaniana? Mifandraisa aminay", + ctaBtn: "Mifandraisa aminay" + }, + contact: { + heroTitle: "Mifandraisa Aminay", + heroSubtitle: "Misoratra anarana ary manomboha mandefa ny entanareo anio", + formTitle: "Taratasy fisoratana anarana", + formSubtitle: "Fenoy ity taratasy ity mba handraisana ny laharan'ny mpanjifa sy ny adiresy fametrahana any Paris.", + labelNom: "Anarana", + labelPrenom: "Fanampiny", + labelTel: "Laharan-telefaonina", + labelEmail: "Adiresy mailaka", + labelAdresse: "Adiresy fanaterana", + placeholderNom: "Ny anaranareo", + placeholderPrenom: "Ny fanampin'anaranareo", + placeholderTel: "+261 38 00 000 00", + placeholderEmail: "anareo@mailaka.com", + placeholderAdresse: "Adiresy feno...", + submitBtn: "Hisoratra anarana", + submitLoading: "Alefa...", + successTitle: "Lasa ny fisoratana anarana!", + successMsg: "Misaotra! Voaray ny fangatahanareo. Hifandray aminareo ny ekipanay amin'ny fotoana fohy indrindra miaraka amin'ny laharan'ny mpanjifa.", + errorMsg: "Nisy olana nitranga. Andramo indray na mifandraisa mivantana aminay.", + required: "Tsy maintsy fenoina ity saha ity", + invalidEmail: "Tsy mety ny adiresy mailaka", + invalidPhone: "Tsy mety ny laharan-telefaonina", + infoTitle: "Ny Mombamomba Anay", + infoAvailable: "Azo antsoina isan'andro", + phoneMG: "Laharana Madagasikara", + phoneFR: "Laharana Frantsa", + email: "Mailaka", + address: "Adiresy", + addressValue: "Antananarivo 101, Madagasikara", + facebook: "Facebook", + mapTitle: "Ny Toeranay" + }, + guide: { + heroTitle: "Toromarika Fandefasana", + heroSubtitle: "Izay rehetra tokony ho fantatrao alohan'ny handefa entana", + prohibitedTitle: "Entana Voarara", + prohibitedSubtitle: "Ireto entana ireto dia tsy azo alefa amin'ny fandefa entana an'habakabaka (fitsipika IATA)", + cat1Title: "Zavatra mipoaka", + cat1Desc: "Dynamita, bala, afo artifisialy, petarada", + cat2Title: "Gazy voatery", + cat2Desc: "Tavoahangy gazy, aérosol misy tsindry, butane, propane", + cat3Title: "Ranoka mampirehitra", + cat3Desc: "Lasensy, toaka, loko, solvants, acétone", + cat4Title: "Zavatra stereo mampirehitra", + cat4Desc: "Afokasoka, briquet, charbon, vovoka", + cat5Title: "Bateria lithium", + cat5Desc: "Bateria lithium irery, hoverboards, fitaovana sasany", + cat6Title: "Zava-mahapoizina", + cat6Desc: "Poizina, fanafody bibikely, zava-mifindra", + cat7Title: "Zava-mandevona", + cat7Desc: "Asida, mercure, soude caustique", + cat8Title: "Zava-misy radioactivité", + cat8Desc: "Singa radioactif, zavatra magnétique matanjaka", + warningTitle: "Entana Mila Fanambarana", + warningSubtitle: "Ireto entana ireto dia azo alefa miaraka amin'ny fepetra", + warn1Title: "Menaka manitra sy kosmetika", + warn1Desc: "Amin'ny habetsaka voafetra, voafonosa tsara", + warn2Title: "Fitaovana elektronika", + warn2Desc: "Misy bateria kely ao anatiny, voakatona", + warn3Title: "Fanafody", + warn3Desc: "Miaraka amin'ny taratasy dokotera, amin'ny habetsaka manokana", + packagingTitle: "Ahoana ny Famonosana Tsara", + packagingSubtitle: "Araho ireto dingana ireto mba ho tonga soa aman-tsara ny entanareo", + pack1Title: "Mifidiana karton tsara", + pack1Desc: "Mampiasa karton vaovao rindrina roa, mifanaraka amin'ny haben'ny entana. Aza mampiasa karton efa nampiasaina na simba.", + pack2Title: "Arovy ny ao anatiny", + pack2Desc: "Fonosy tsirairay ny entana amin'ny papier bulle na mousse. Fenoy ny banga mba tsy hihetsika.", + pack3Title: "Hidio tsara", + pack3Desc: "Mampiasa scotch matevina sy tsara kalitao. Hidio ny varavarana rehetra ary hamafiso ny sisiny.", + pack4Title: "Mariho mazava", + pack4Desc: "Soraty mazava ny anarana sy adiresin'ny mpandray. Ampio ny soratra 'FRAGILE' raha ilaina.", + dosTitle: "Tokony Hatao", + dontsTitle: "Tsy Tokony Hatao", + do1: "Mampiasa karton vaovao sy matanjaka", + do2: "Mamonosa tsirairay ny zavatra", + do3: "Mameno ny banga amin'ny fitaovana fiarovana", + do4: "Manoratra mazava ny adiresin'ny mpandray", + do5: "Mandanja ny entana alohan'ny fandefasana", + dont1: "Mampiasa karton efa nampiasaina na simba", + dont2: "Mamela banga ao anaty entana", + dont3: "Mandefa entana voararan'ny IATA", + dont4: "Manadino manisy marika amin'ny entana mora vaky", + dont5: "Mihoatra ny refin-javatra voafetra" + }, + app: { + badge: "Ho Avy Tsy Ho Ela", + title: "Ny Rindranasan'ny MVA Global Fret", + subtitle: "Tsy ho ela, mibaiko avy any Madagasikara amin'ny tranokalan'i Eoropa ary mandoa amin'ny mobile money.", + feature1Title: "E-commerce Eoropeana", + feature1Desc: "Midira amin'ny tranonkala fivarotana eoropeana mivantana avy any Madagasikara.", + feature2Title: "Fandoavana Mobile Money", + feature2Desc: "Mandoava amin'ny MVola, Orange Money na Airtel Money mora foana.", + feature3Title: "Fanaraha-maso amin'ny fotoana tena izy", + feature3Desc: "Araho ny fandrosoan'ny baikoanareo sy ny fanaterana amin'ny fotoana tena izy.", + notifyTitle: "Aoka ho voampilaza amin'ny fanombohana", + notifyPlaceholder: "Ny adiresy mailakareo", + notifyBtn: "Ampahafantaro ahy", + notifySuccess: "Misaotra! Ho voampilaza amin'ny fanombohana ianao.", + phoneLabel: "MVA Global Fret", + phoneDesc: "Ny vavahadinao mankany Eoropa" + }, + footer: { + desc: "Mpiara-miasa azo itokisana amin'ny fandefa entana an'habakabaka eo anelanelan'i Eoropa sy Madagasikara.", + linksTitle: "Rohy Haingana", + contactTitle: "Fifandraisana", + copyright: "© 2025 MVA Global Fret. Zo rehetra voatahiry." + } + } +}; diff --git a/tarifs.html b/tarifs.html new file mode 100644 index 0000000..8665632 --- /dev/null +++ b/tarifs.html @@ -0,0 +1,276 @@ + + + + + + Nos Tarifs — MVA Global Fret + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

Nos Tarifs

+

Des prix transparents pour un service de qualité

+
+
+ + +
+
+
+

Tarif d'envoi

+
+
+ +
+
+ Fret Aérien +
+
70 000 Ar
+
Ariary / kilogramme
+ +
    +
  • + + 2 envois par semaine depuis Paris +
  • +
  • + + Délai de livraison : 2 semaines +
  • +
  • + + Poids mesuré à la réception à Madagascar (contre-pesée) +
  • +
  • + + Paiement uniquement à la réception +
  • +
+ +
+ + Pas d'arrondi à l'inférieur : si un colis pèse 1,2 kg, il sera facturé 2 kg. +
+ + +
+
+
+ + +
+
+
+

Options de Livraison

+
+

À Antananarivo et dans toute Madagascar

+
+
+
+

Récupération au siège

+
Gratuit
+

Récupérez votre colis directement à notre siège à Antananarivo, sans frais supplémentaires.

+
+ Aucun frais de livraison +
+
+
+

Livraison à Antananarivo

+
+ 6 000 Ar
+

Supplément de livraison pour toute adresse dans Antananarivo.

+
+ Livraison à domicile disponible +
+
+
+

Livraison en Province

+
+ 6 000 Ar + frais Cotisse
+

6 000 Ar de livraison jusqu'à Cotisse (transporteur vers les autres villes), puis frais Cotisse à prévoir. Le client récupère son colis au Cotisse de sa ville.

+
+ Retrait au bureau Cotisse de votre ville +
+
+
+
+
+ + +
+
+
+

Fréquence d'envoi

+
+
+
+
+ + 2 +

envois par semaine

+
+
+ + 2 +

semaines de délai

+
+
+
+
+ + +
+
+
+

Questions Fréquentes

+
+
+
+
+ +
+
Le poids est mesuré au kilogramme supérieur. Si votre colis pèse 1,2 kg, il sera facturé 2 kg. Il n'y a pas d'arrondi à l'inférieur.
+
+
+
+ +
+
Le paiement se fait uniquement à la réception du colis à Madagascar, après une contre-pesée. Aucun paiement à l'avance n'est demandé.
+
+
+
+ +
+
Nous livrons votre colis au transporteur Cotisse à Antananarivo (6 000 Ar). Ensuite, les frais Cotisse vers votre ville sont à votre charge. Vous récupérez votre colis au bureau Cotisse de votre ville.
+
+
+
+ +
+
Nous vous recommandons d'emballer soigneusement vos objets fragiles. Consultez notre guide d'envoi pour les meilleures pratiques d'emballage.
+
+
+
+
+
+ + +
+
+

Des questions ? Contactez-nous

+

Notre équipe est disponible tous les jours pour vous répondre.

+ + + Nous contacter + +
+
+ +
+ + + + + + +