:root {
–navy: #0b1b32;
–navy-2: #102b4b;
–blue: #2f6f9f;
–ink: #172334;
–slate: #5e6b7a;
–muted: #748091;
–line: #dfe5eb;
–soft: #f5f7f9;
–white: #ffffff;
–max: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(–ink); background: var(–white); font-family: Arial, Helvetica, sans-serif; line-height: 1.5; overflow-x: hidden; -webkit-text-size-adjust: 100%; }
body { padding-bottom: 0; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
picture { display: block; width: 100%; height: 100%; }
.container { width: min(var(–max), calc(100% – 48px)); margin: 0 auto; }
.utility { background: var(–navy); color: #d4dce6; font-size: 12px; letter-spacing: .04em; }
.utility .container { min-height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.utility strong { color: #fff; font-weight: 700; }
.site-header { border-bottom: 1px solid var(–line); background: var(–white); }
.nav { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 11px; white-space: nowrap; font-size: 15px; font-weight: 700; letter-spacing: .07em; }
.brand-mark { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; background: var(–navy); color: #fff; font-size: 19px; font-weight: 700; }
.nav-links { display: flex; align-items: center; gap: 22px; color: var(–slate); font-size: 14px; }
.nav-links a:hover, .text-link:hover { color: var(–blue); }
.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(–navy); border-radius: 5px; padding: 0 20px; font-size: 14px; font-weight: 700; text-align: center; }
.button.primary { color: #fff; background: var(–navy); }
.button.secondary { color: var(–navy); background: #fff; }
.button.large { min-height: 56px; padding: 0 24px; font-size: 15px; }
.button.whatsapp { color: #fff; background: #168c66; border-color: #168c66; }
.button.whatsapp:hover { background: #0e7353; border-color: #0e7353; }
.button.whatsapp-outline { color: #9ee8c8; background: transparent; border-color: #3a725f; }
.button.whatsapp-outline:hover { color: #fff; border-color: #9ee8c8; }
.header-actions { display: flex; align-items: center; gap: 10px; }
.language-switch { min-height: 42px; padding: 0 10px; border: 1px solid var(–line); border-radius: 5px; color: var(–navy); background: #fff; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.hero { padding: 62px 0 70px; background: #fff; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(390px, .86fr); gap: 68px; align-items: center; }
.kicker { margin: 0 0 16px; color: var(–blue); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
h1, h2, h3 { margin: 0; color: var(–navy); font-weight: 700; }
h1 { max-width: 720px; font-size: clamp(42px, 6vw, 72px); line-height: 1.04; letter-spacing: -.055em; }
h2 { font-size: clamp(30px, 4vw, 46px); line-height: 1.08; letter-spacing: -.04em; }
h3 { font-size: 20px; line-height: 1.2; }
.hero-copy { max-width: 610px; }
.hero-copy p { max-width: 560px; margin: 24px 0 0; color: var(–slate); font-size: 18px; line-height: 1.7; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.hero-note { display: flex; flex-wrap: wrap; gap: 20px; margin: 28px 0 0; color: var(–muted); font-size: 13px; }
.hero-note span { display: inline-flex; align-items: center; gap: 7px; }
.hero-note span::before { content: ”; width: 7px; height: 7px; border-radius: 50%; background: var(–blue); }
.hero-visual { position: relative; min-height: 475px; overflow: hidden; background: var(–navy-2); border-radius: 10px; }
.hero-visual img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: 72% center; opacity: .88; }
.hero-visual::after { content: ”; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,27,50,.08), rgba(11,27,50,.72)); }
.visual-label { position: absolute; z-index: 1; left: 24px; right: 24px; bottom: 24px; color: #fff; }
.visual-label strong { display: block; font-size: 22px; }
.visual-label span { display: block; margin-top: 5px; color: #d7e0ea; font-size: 13px; }
.section { padding: 88px 0; }
.section.soft { background: var(–soft); }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 34px; }
.section-head p { max-width: 490px; margin: 0; color: var(–slate); line-height: 1.7; }
.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.product-card { overflow: hidden; border: 1px solid var(–line); background: #fff; }
.product-image { position: relative; height: 310px; overflow: hidden; background: #e9eef3; }
.product-image picture { position: relative; z-index: 0; transform: scale(1.08); transform-origin: center center; }
.product-image img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 28%; filter: grayscale(.16) saturate(.72) brightness(.95) contrast(1.05); }
.product-image::after { content: ”; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(11,27,50,.14), rgba(11,27,50,.07)); mix-blend-mode: multiply; }
.product-body { padding: 22px; }
.product-body p { min-height: 72px; margin: 12px 0 18px; color: var(–slate); font-size: 14px; line-height: 1.65; }
.product-link { color: var(–blue); font-size: 14px; font-weight: 700; }
.advantage-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.advantage { padding: 26px; border-top: 2px solid var(–navy); background: #fff; }
.advantage .number { color: var(–blue); font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.advantage h3 { margin-top: 30px; }
.advantage p { margin: 12px 0 0; color: var(–slate); font-size: 14px; line-height: 1.7; }
.trust-strip { padding: 20px 0; border-top: 1px solid var(–line); border-bottom: 1px solid var(–line); background: #fff; }
.trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.trust-item { padding: 8px 22px; border-right: 1px solid var(–line); }
.trust-item:first-child { padding-left: 0; }
.trust-item:last-child { border-right: 0; }
.trust-item strong { display: block; color: var(–navy); font-size: 14px; }
.trust-item span { display: block; margin-top: 4px; color: var(–muted); font-size: 12px; }
.africa-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }
.africa-copy p { max-width: 560px; margin: 18px 0 0; color: var(–slate); line-height: 1.7; }
.africa-list { display: grid; gap: 12px; }
.africa-item { padding: 18px 20px; border: 1px solid var(–line); background: #fff; }
.africa-item strong { display: block; color: var(–navy); font-size: 14px; }
.africa-item span { display: block; margin-top: 6px; color: var(–slate); font-size: 13px; line-height: 1.6; }
.spec-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 60px; align-items: start; }
.spec-intro p { margin: 18px 0 0; color: var(–slate); line-height: 1.7; }
.table-wrap { width: 100%; overflow-x: auto; }
.spec-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.spec-table th, .spec-table td { padding: 16px 14px; border-bottom: 1px solid var(–line); text-align: left; vertical-align: top; }
.spec-table th { color: var(–navy); background: #eef2f6; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.spec-table td { color: var(–slate); }
.spec-table td:first-child { color: var(–navy); font-weight: 700; }
.case-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.case-card, .case-card.tall { position: relative; min-height: 0; aspect-ratio: 16 / 10; overflow: hidden; background: var(–navy-2); }
.case-card img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.case-card::after { content: ”; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 42%, rgba(7,18,32,.82)); }
.case-label { position: absolute; z-index: 1; right: 20px; bottom: 18px; left: 20px; color: #fff; }
.case-label strong { display: block; font-size: 19px; }
.case-label span { display: block; margin-top: 4px; color: #dbe5ee; font-size: 13px; }
.contact { color: #fff; background: var(–navy); }
.contact h2 { color: #fff; }
.contact .section-head p { color: #c7d2de; }
.contact-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 50px; align-items: start; }
.contact-brief { max-width: 530px; color: #c7d2de; }
.contact-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 24px; }
.contact-item { padding: 18px; border: 1px solid #2d4661; }
.contact-item strong { display: block; color: #fff; font-size: 14px; }
.contact-item span { display: block; margin-top: 5px; color: #c7d2de; font-size: 13px; }
.contact-item a { display: inline-block; margin-top: 5px; color: #9ee8c8; font-size: 13px; font-weight: 700; }
.contact .button.primary { color: var(–navy); background: #fff; border-color: #fff; }
.contact .button.secondary { color: #fff; background: transparent; border-color: #8ca0b4; }
.enquiry-form { margin-top: 20px; padding: 24px; border: 1px solid #2d4661; background: rgba(255,255,255,.04); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-field { display: grid; gap: 7px; }
.form-field.full { grid-column: 1 / -1; }
.form-field label { color: #dbe5ee; font-size: 12px; font-weight: 700; }
.form-field input, .form-field select, .form-field textarea { width: 100%; border: 1px solid #536b82; border-radius: 4px; padding: 12px 13px; color: #fff; background: #102b4b; font: inherit; font-size: 14px; }
.form-field input::placeholder, .form-field textarea::placeholder { color: #a9b9c8; }
.form-field textarea { min-height: 106px; resize: vertical; }
.form-field select option { color: var(–ink); }
.form-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.form-hint { color: #aebccc; font-size: 12px; line-height: 1.5; }
.form-status { min-height: 20px; margin: 12px 0 0; color: #9ee8c8; font-size: 12px; }
.footer { padding: 28px 0; color: #aebccc; background: #071323; font-size: 13px; }
.footer .container { display: flex; justify-content: space-between; gap: 25px; }
.footer strong { color: #fff; }
.mobile-cta { display: none; }
@media (max-width: 860px) {
.container { width: min(var(–max), calc(100% – 36px)); }
.nav { min-height: 68px; }
.nav-links { display: none; }
.nav .button { min-height: 44px; padding: 0 14px; font-size: 13px; }
.hero { padding: 42px 0 48px; }
.hero-grid, .spec-layout, .contact-grid, .africa-layout { grid-template-columns: 1fr; gap: 34px; }
.hero-visual { min-height: 330px; }
.section { padding: 62px 0; }
.section-head { display: block; margin-bottom: 26px; }
.section-head p { margin-top: 16px; }
.product-grid, .advantage-grid { grid-template-columns: 1fr; }
.trust-grid { grid-template-columns: 1fr 1fr; }
.trust-item, .trust-item:first-child { padding: 12px 14px; border-right: 0; border-bottom: 1px solid var(–line); }
.trust-item:nth-child(odd) { padding-left: 0; border-right: 1px solid var(–line); }
.trust-item:nth-child(3), .trust-item:nth-child(4) { border-bottom: 0; }
.product-image { height: 270px; }
.case-grid { grid-template-columns: 1fr 1fr; }
.case-card, .case-card.tall { aspect-ratio: 16 / 10; }
.contact-grid { gap: 22px; }
.footer .container { display: block; }
.footer .container span { display: block; margin-top: 8px; }
body { padding-bottom: 76px; }
.mobile-cta { display: block; position: fixed; z-index: 10; right: 0; bottom: 0; left: 0; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: rgba(11,27,50,.98); }
.mobile-cta .button { width: 100%; min-height: 56px; color: var(–navy); background: #fff; border-color: #fff; }
}
@media (max-width: 520px) {
.utility .container { min-height: 32px; font-size: 10px; }
.utility .container span:last-child { display: none; }
.brand { font-size: 13px; letter-spacing: .04em; }
.brand-mark { width: 30px; height: 30px; font-size: 17px; }
h1 { font-size: 45px; }
.hero-copy p { font-size: 16px; }
.hero-actions .button { width: 100%; }
.hero-note { display: block; }
.hero-note span { margin-top: 8px; }
.hero-visual { min-height: 275px; }
.case-grid { grid-template-columns: 1fr; }
.contact-list, .form-grid { grid-template-columns: 1fr; }
.form-field.full { grid-column: auto; }
.enquiry-form { padding: 18px; }
.table-wrap { margin-right: -2px; }
.spec-table { min-width: 650px; white-space: nowrap; }
}
/* Self-hosted WordPress shell normalization */
.wp-site-blocks > header, .wp-site-blocks > footer, header.wp-block-template-part, footer.wp-block-template-part { display:none !important; }
.wp-site-blocks > main, .wp-site-blocks > .wp-block-group { margin-top:0 !important; padding-top:0 !important; }
{
“@context”: “https://schema.org”,
“@graph”: [
{
“@type”: “Organization”,
“@id”: “https://asiafushi.cn/#organization”,
“name”: “Asia Fuji Elevator”,
“url”: “https://asiafushi.cn/”,
“description”: “Elevator systems and replacement parts for overseas projects.”,
“areaServed”: [“Africa”, “Middle East”],
“availableLanguage”: [“English”, “French”],
“contactPoint”: {
“@type”: “ContactPoint”,
“contactType”: “sales”,
“telephone”: “+852 9471 6490”,
“availableLanguage”: [“English”, “French”]
}
},
{
“@type”: “WebSite”,
“@id”: “https://asiafushi.cn/#website”,
“url”: “https://asiafushi.cn/”,
“name”: “Asia Fuji Elevator”,
“publisher”: { “@id”: “https://asiafushi.cn/#organization” }
},
{
“@type”: “WebPage”,
“@id”: “https://asiafushi.cn/#webpage”,
“url”: “https://asiafushi.cn/”,
“name”: “Asia Fuji Elevator | Passenger, Home & Freight Elevators”,
“isPartOf”: { “@id”: “https://asiafushi.cn/#website” },
“about”: { “@id”: “https://asiafushi.cn/#organization” },
“primaryImageOfPage”: {
“@type”: “ImageObject”,
“url”: “https://asiafushi.cn/public/assets/site/og-cover.jpg”,
“width”: 1200,
“height”: 630
}
},
{
“@type”: “Product”,
“name”: “Passenger elevators”,
“description”: “Passenger elevator systems for residential, commercial and public buildings, with configuration matched to the building and traffic needs.”,
“image”: “https://asiafushi.cn/https://asiafushi.cn/wp-content/uploads/2026/10/product-detail-passenger-blue-hd.jpg”,
“category”: “Passenger elevator”,
“brand”: { “@id”: “https://asiafushi.cn/#organization” }
},
{
“@type”: “Product”,
“name”: “Home and villa lifts”,
“description”: “Space-conscious home and villa elevator solutions for low-rise buildings, with flexible shaft and interior requirements.”,
“image”: “https://asiafushi.cn/https://asiafushi.cn/wp-content/uploads/2026/10/product-detail-villa-warm-hd.jpg”,
“category”: “Home elevator”,
“brand”: { “@id”: “https://asiafushi.cn/#organization” }
},
{
“@type”: “Product”,
“name”: “Hospital and freight lifts”,
“description”: “Large-cabin hospital and freight elevator applications for hospitals, factories, warehouses and vehicle loading.”,
“image”: “https://asiafushi.cn/https://asiafushi.cn/wp-content/uploads/2026/10/product-detail-medical-freight-car-orange-hd.jpg”,
“category”: “Freight elevator”,
“brand”: { “@id”: “https://asiafushi.cn/#organization” }
}
]
}
Elevator systems · replacement parts · Africa project matching
The right elevator for the building.
Passenger, home, hospital and freight elevator solutions for African projects. Share the site conditions or original part details; we help narrow the workable configuration.

01 / Products
Start with the application.
Choose the product direction first. We then confirm load, speed, stops, shaft conditions, finishes and electrical requirements.

Passenger elevators
For residential, commercial and public buildings, with configuration matched to the building and traffic needs.

Home & villa lifts
Space-conscious solutions for villas and low-rise buildings, with flexible shaft and interior requirements.

Hospital & freight lifts
Large-cabin applications for hospitals, factories, warehouses and vehicle loading requirements.
02 / Advantages
Information buyers can act on.
No decoration for its own sake. The focus is on technical fit, supply clarity and the next decision.
Technical matching
Confirm model, dimensions, voltage, interface and application before recommending a replacement part or system.
Factory capability
Use the production base and workshop evidence to understand how the equipment is made, checked and prepared.
Clear export handover
Move from enquiry to quotation with product details, packing information and destination requirements in one thread.
03 / Africa project fit
Designed around local project conditions.
A workable elevator proposal starts with the destination, not a generic catalogue. Share the country, building type and site conditions so we can check the electrical, climate, standards and service requirements before quotation.
04 / Specifications
Tell us what needs to fit.
For a useful first response, send the country, application, quantity, lift model and photos of the original component or nameplate.
| Product direction | Typical application | We confirm |
|---|---|---|
| Passenger | Residential · commercial · public | Load · speed · stops · cabin · door |
| Home / villa | Villa · low-rise building | Shaft · pit · overhead · finish |
| Hospital / freight | Hospital · factory · warehouse | Cabin · opening · loading · control |
| Spare parts | Replacement · modernization | Model · voltage · dimensions · interface |
05 / Company & production evidence
See the base behind the supply.
Our manufacturing campus, engineering and test tower, and production workshop — the base behind every system and part we supply.



Technical document pack
Request the relevant product files, drawings and certificates for your project review.
Destination review
We review country, voltage, climate and project requirements before issuing a quotation.
After-sales parts path
Keep model, nameplate and replacement-part information in the same enquiry thread.
06 / Contact & enquiry
Send the problem.
Get a workable next step.
Tell us the product type, destination country, quantity, lift model and what needs to be replaced or built. Add drawings or photos when available.
const translations = {
en: {
utilityAudience: ‘For African contractors, distributors and developers’,
navProducts: ‘Products’, navAdvantages: ‘Advantages’, navAfrica: ‘Africa fit’, navCases: ‘Cases’,
ctaQuote: ‘Request a quote’, ctaWhatsapp: ‘WhatsApp us’, ctaProducts: ‘Review products’, visualTitle: ‘Passenger elevator systems’, visualBody: ‘For residential, commercial and public buildings’,
tableDirection: ‘Product direction’, tableApplication: ‘Typical application’, tableConfirm: ‘We confirm’,
caseCampusTitle: ‘Manufacturing campus’, caseCampusBody: ‘Production base and engineering facilities’, caseTowerTitle: ‘Engineering & testing’, caseTowerBody: ‘Factory front and elevator test tower’, caseWorkshopTitle: ‘Production workshop’, caseWorkshopBody: ‘Organised workflows for component supply’,
optionPassenger: ‘Passenger elevator’, optionHome: ‘Home / villa lift’, optionFreight: ‘Hospital / freight lift’, optionParts: ‘Replacement parts’,
heroKicker: ‘Elevator systems · replacement parts · Africa project matching’,
heroTitle: ‘The right elevator for the building.’,
heroBody: ‘Passenger, home, hospital and freight elevator solutions for African projects. Share the site conditions or original part details; we help narrow the workable configuration.’,
heroNoteSystems: ‘Complete elevator systems’, heroNoteMatching: ‘Technical part matching’, heroNoteExport: ‘Export coordination’, heroNoteSupport: ‘Parts & after-sales support’,
trustDocsTitle: ‘Documents ready’, trustDocsBody: ‘Certificates and technical files available on request’, trustPartsTitle: ‘Parts support’, trustPartsBody: ‘Replacement matching for maintenance and modernization’, trustProjectsTitle: ‘Project evidence’, trustProjectsBody: ‘Factory, engineering and production visuals’, trustAfricaTitle: ‘Africa-ready’, trustAfricaBody: ‘Voltage, climate and local standard checks before quote’,
productsTitle: ‘Start with the application.’, productsIntro: ‘Choose the product direction first. We then confirm load, speed, stops, shaft conditions, finishes and electrical requirements.’,
productPassengerTitle: ‘Passenger elevators’, productPassengerBody: ‘For residential, commercial and public buildings, with configuration matched to the building and traffic needs.’, productPassengerLink: ‘Ask for passenger specs →’,
productHomeTitle: ‘Home & villa lifts’, productHomeBody: ‘Space-conscious solutions for villas and low-rise buildings, with flexible shaft and interior requirements.’, productHomeLink: ‘Ask for home lift specs →’,
productFreightTitle: ‘Hospital & freight lifts’, productFreightBody: ‘Large-cabin applications for hospitals, factories, warehouses and vehicle loading requirements.’, productFreightLink: ‘Ask for heavy-duty specs →’,
advantagesTitle: ‘Information buyers can act on.’, advantagesIntro: ‘No decoration for its own sake. The focus is on technical fit, supply clarity and the next decision.’,
advantageMatchingTitle: ‘Technical matching’, advantageMatchingBody: ‘Confirm model, dimensions, voltage, interface and application before recommending a replacement part or system.’,
advantageFactoryTitle: ‘Factory capability’, advantageFactoryBody: ‘Use the production base and workshop evidence to understand how the equipment is made, checked and prepared.’,
advantageHandoverTitle: ‘Clear export handover’, advantageHandoverBody: ‘Move from enquiry to quotation with product details, packing information and destination requirements in one thread.’,
africaTitle: ‘Designed around local project conditions.’, africaBody: ‘A workable elevator proposal starts with the destination, not a generic catalogue. Share the country, building type and site conditions so we can check the electrical, climate, standards and service requirements before quotation.’, ctaAfrica: ‘Check my project’,
africaVoltageTitle: ‘Voltage & frequency’, africaVoltageBody: ‘Confirm local supply, phase, frequency, backup power and control requirements before configuration.’, africaClimateTitle: ‘Climate & site conditions’, africaClimateBody: ‘Consider heat, humidity, dust, coastal exposure, shaft ventilation and installation access.’, africaStandardsTitle: ‘Standards & approvals’, africaStandardsBody: ‘Match the project specification and local inspection requirements; final compliance is confirmed per destination.’, africaAfterSalesTitle: ‘Spare parts & after-sales’, africaAfterSalesBody: ‘Keep the maintenance conversation open with model data, replacement parts and remote technical coordination.’,
specTitle: ‘Tell us what needs to fit.’, specBody: ‘For a useful first response, send the country, application, quantity, lift model and photos of the original component or nameplate.’, ctaDetails: ‘Send project details’,
casesTitle: ‘See the base behind the supply.’, casesIntro: ‘Our manufacturing campus, engineering and test tower, and production workshop — the base behind every system and part we supply.’,
trustPackTitle: ‘Technical document pack’, trustPackBody: ‘Request the relevant product files, drawings and certificates for your project review.’, trustReviewTitle: ‘Destination review’, trustReviewBody: ‘We review country, voltage, climate and project requirements before issuing a quotation.’, trustSupportTitle: ‘After-sales parts path’, trustSupportBody: ‘Keep model, nameplate and replacement-part information in the same enquiry thread.’,
contactTitle: ‘Send the problem.
Get a workable next step.’, contactBody: ‘Tell us the product type, destination country, quantity, lift model and what needs to be replaced or built. Add drawings or photos when available.’,
contactBestTitle: ‘Best enquiry content’, contactBestBody: ‘Application · quantity · model · photos’, contactBuyerTitle: ‘Buyer fit’, contactBuyerBody: ‘Distributor · contractor · developer’, contactResponseTitle: ‘Response materials’, contactResponseBody: ‘Configuration · matching · quotation’, contactDirectTitle: ‘WhatsApp direct’,
formNameLabel: ‘Name’, formCompanyLabel: ‘Company’, formCountryLabel: ‘Destination country’, formProductLabel: ‘Product need’, formDetailsLabel: ‘Project details’, formSubmit: ‘Send enquiry via WhatsApp’, formHint: ‘The form opens WhatsApp with a prepared message. You review and send it yourself.’,
formNamePlaceholder: ‘Your name’, formCompanyPlaceholder: ‘Company name’, formCountryPlaceholder: ‘e.g. Kenya, Ghana, Nigeria’, formDetailsPlaceholder: ‘Load, speed, stops, shaft size, voltage, quantity or part model’, footerNote: ‘Product information should be confirmed against the project and original equipment data.’
},
fr: {
utilityAudience: ‘Pour les entrepreneurs, distributeurs et promoteurs africains’,
navProducts: ‘Produits’, navAdvantages: ‘Atouts’, navAfrica: ‘Adaptation Afrique’, navCases: ‘Réalisations’,
ctaQuote: ‘Demander un devis’, ctaWhatsapp: ‘Nous écrire sur WhatsApp’, ctaProducts: ‘Voir les produits’, visualTitle: ‘Systèmes d’ascenseurs passagers’, visualBody: ‘Pour bâtiments résidentiels, commerciaux et publics’,
tableDirection: ‘Famille de produit’, tableApplication: ‘Application courante’, tableConfirm: ‘À confirmer’,
caseCampusTitle: ‘Campus de fabrication’, caseCampusBody: ‘Base de production et installations d’ingénierie’, caseTowerTitle: ‘Ingénierie & essais’, caseTowerBody: ‘Façade de l’usine et tour d’essai’, caseWorkshopTitle: ‘Atelier de production’, caseWorkshopBody: ‘Flux organisés pour l’approvisionnement des composants’,
optionPassenger: ‘Ascenseur passagers’, optionHome: ‘Ascenseur privatif / villa’, optionFreight: ‘Ascenseur hospitalier / de charge’, optionParts: ‘Pièces de rechange’,
heroKicker: ‘Systèmes d’ascenseur · pièces détachées · projets africains’,
heroTitle: ‘Le bon ascenseur pour chaque bâtiment.’,
heroBody: ‘Solutions d’ascenseurs passagers, privatifs, hospitaliers et de charge pour les projets africains. Partagez les conditions du site ou les détails de la pièce à remplacer ; nous vous aidons à définir la configuration adaptée.’,
heroNoteSystems: ‘Systèmes complets’, heroNoteMatching: ‘Appairage technique des pièces’, heroNoteExport: ‘Coordination export’, heroNoteSupport: ‘Pièces et service après-vente’,
trustDocsTitle: ‘Documents disponibles’, trustDocsBody: ‘Certificats et dossiers techniques sur demande’, trustPartsTitle: ‘Support pièces’, trustPartsBody: ‘Appairage pour maintenance et modernisation’, trustProjectsTitle: ‘Preuves projet’, trustProjectsBody: ‘Usine, ingénierie et production’, trustAfricaTitle: ‘Adapté à l’Afrique’, trustAfricaBody: ‘Vérification électrique, climatique et normative avant devis’,
productsTitle: ‘Commencez par l’application.’, productsIntro: ‘Choisissez d’abord la famille de produit. Nous vérifions ensuite la charge, la vitesse, les arrêts, la gaine, les finitions et les besoins électriques.’,
productPassengerTitle: ‘Ascenseurs passagers’, productPassengerBody: ‘Pour les bâtiments résidentiels, commerciaux et publics, avec une configuration adaptée au bâtiment et au trafic.’, productPassengerLink: ‘Demander les spécifications →’,
productHomeTitle: ‘Ascenseurs privatifs & villas’, productHomeBody: ‘Des solutions compactes pour villas et bâtiments bas, avec des exigences de gaine et de finition flexibles.’, productHomeLink: ‘Demander les spécifications →’,
productFreightTitle: ‘Ascenseurs hospitaliers & de charge’, productFreightBody: ‘Cabines de grande capacité pour hôpitaux, usines, entrepôts et véhicules.’, productFreightLink: ‘Demander les spécifications →’,
advantagesTitle: ‘Les informations utiles à l’acheteur.’, advantagesIntro: ‘Une approche centrée sur l’adéquation technique, la clarté de l’approvisionnement et la prochaine décision.’,
advantageMatchingTitle: ‘Appairage technique’, advantageMatchingBody: ‘Vérification du modèle, des dimensions, de la tension, de l’interface et de l’application avant recommandation.’,
advantageFactoryTitle: ‘Capacité industrielle’, advantageFactoryBody: ‘Une base de production et un atelier documentés pour comprendre la fabrication, le contrôle et la préparation.’,
advantageHandoverTitle: ‘Passation export claire’, advantageHandoverBody: ‘Des informations produit, emballage et destination réunies dans le même échange.’,
africaTitle: ‘Conçu selon les conditions locales du projet.’, africaBody: ‘Une proposition fiable commence par la destination, pas par un catalogue générique. Indiquez le pays, le type de bâtiment et les conditions du site pour vérifier l’électricité, le climat, les normes et le service avant devis.’, ctaAfrica: ‘Vérifier mon projet’,
africaVoltageTitle: ‘Tension & fréquence’, africaVoltageBody: ‘Vérification de l’alimentation, des phases, de la fréquence, du secours et du contrôle.’, africaClimateTitle: ‘Climat & site’, africaClimateBody: ‘Prise en compte de la chaleur, de l’humidité, de la poussière, du littoral, de la ventilation et de l’accès.’, africaStandardsTitle: ‘Normes & approbations’, africaStandardsBody: ‘Alignement sur les spécifications et contrôles locaux ; la conformité finale est confirmée par destination.’, africaAfterSalesTitle: ‘Pièces & après-vente’, africaAfterSalesBody: ‘Suivi de maintenance avec données modèle, pièces de rechange et coordination technique à distance.’,
specTitle: ‘Dites-nous ce qui doit s’adapter.’, specBody: ‘Pour une première réponse utile, indiquez le pays, l’application, la quantité, le modèle et les photos de la pièce ou de la plaque signalétique.’, ctaDetails: ‘Envoyer les détails du projet’,
casesTitle: ‘Découvrez la base industrielle.’, casesIntro: ‘Campus de fabrication, tour d’essai et atelier de production : la base de nos systèmes et pièces.’,
trustPackTitle: ‘Dossier technique’, trustPackBody: ‘Demandez les fichiers produit, plans et certificats utiles à l’étude.’, trustReviewTitle: ‘Revue de destination’, trustReviewBody: ‘Vérification du pays, de la tension, du climat et des exigences projet avant devis.’, trustSupportTitle: ‘Parcours pièces après-vente’, trustSupportBody: ‘Modèle, plaque signalétique et pièces de rechange dans le même échange.’,
contactTitle: ‘Décrivez le besoin.
Recevez la prochaine étape.’, contactBody: ‘Indiquez le type de produit, le pays, la quantité, le modèle et ce qui doit être remplacé ou construit. Ajoutez plans ou photos si disponibles.’,
contactBestTitle: ‘Contenu conseillé’, contactBestBody: ‘Application · quantité · modèle · photos’, contactBuyerTitle: ‘Acheteurs concernés’, contactBuyerBody: ‘Distributeur · entrepreneur · promoteur’, contactResponseTitle: ‘Réponse fournie’, contactResponseBody: ‘Configuration · appairage · devis’, contactDirectTitle: ‘WhatsApp direct’,
formNameLabel: ‘Nom’, formCompanyLabel: ‘Entreprise’, formCountryLabel: ‘Pays de destination’, formProductLabel: ‘Besoin produit’, formDetailsLabel: ‘Détails du projet’, formSubmit: ‘Envoyer la demande sur WhatsApp’, formHint: ‘Le formulaire ouvre WhatsApp avec un message préparé. Vous le vérifiez et l’envoyez vous-même.’,
formNamePlaceholder: ‘Votre nom’, formCompanyPlaceholder: ‘Nom de l’entreprise’, formCountryPlaceholder: ‘ex. Kenya, Ghana, Nigeria’, formDetailsPlaceholder: ‘Charge, vitesse, arrêts, dimensions de gaine, tension, quantité ou modèle de pièce’, footerNote: ‘Les informations produit doivent être confirmées selon le projet et l’équipement d’origine.’
}
};
let currentLanguage = ‘en’;
const languageSwitch = document.getElementById(‘language-switch’);
function applyLanguage(language) {
currentLanguage = language;
document.documentElement.lang = language;
document.querySelectorAll(‘[data-i18n]’).forEach((element) => {
const value = translations[language][element.dataset.i18n];
if (value) element.innerHTML = value;
});
document.querySelectorAll(‘[data-i18n-placeholder]’).forEach((element) => {
const value = translations[language][element.dataset.i18nPlaceholder];
if (value) element.placeholder = value;
});
languageSwitch.textContent = language === ‘en’ ? ‘FR’ : ‘EN’;
languageSwitch.setAttribute(‘aria-label’, language === ‘en’ ? ‘Passer au français’ : ‘Switch to English’);
}
languageSwitch.addEventListener(‘click’, () => applyLanguage(currentLanguage === ‘en’ ? ‘fr’ : ‘en’));
applyLanguage(‘en’);
const enquiryForm = document.getElementById(‘enquiry-form’);
const formStatus = document.getElementById(‘form-status’);
enquiryForm.addEventListener(‘submit’, (event) => {
event.preventDefault();
const formData = new FormData(enquiryForm);
const message = [
‘Hello Asia Fuji Elevator, I need an elevator project quotation.’,
`Name: ${formData.get(‘name’)}`,
`Company: ${formData.get(‘company’) || ‘-‘}`,
`Destination: ${formData.get(‘country’)}`,
`Product: ${formData.get(‘product’)}`,
`Details: ${formData.get(‘details’)}`
].join(‘n’);
window.open(`https://wa.me/85294716490?text=${encodeURIComponent(message)}`, ‘_blank’, ‘noopener’);
formStatus.textContent = currentLanguage === ‘en’ ? ‘WhatsApp opened with your enquiry draft.’ : ‘WhatsApp a été ouvert avec votre demande préparée.’;
});