// SectionApproche — "Notre approche" — 4 valeurs
function SectionApproche() {
const isMobile = window.__dch_isMobile;
const values = [
{
icon: 'compass',
title: 'Exigence de sélection',
body: "Chaque véhicule proposé est évalué selon des critères stricts : historique d'entretien complet, état mécanique vérifié, cohérence entre le kilométrage et l'état général. Nous ne proposons que ce que nous recommanderions à notre propre famille.",
},
{
icon: 'lens',
title: 'Transparence totale',
body: "Rapport d'inspection, carnet d'entretien, relevé kilométrique certifié : vous achetez en connaissant tout. Pas de zone d'ombre, pas de mauvaise surprise après la signature. C'est notre engagement sur chaque véhicule de notre sélection.",
},
{
icon: 'handshake',
title: 'Service sur mesure',
body: "Vous n'êtes pas un numéro de dossier. Chaque rendez-vous est un échange entre passionnés — le temps de comprendre votre projet, votre usage et vos attentes — pour vous orienter vers le bon choix, pas vers le véhicule le plus cher du stock.",
},
{
icon: 'hourglass',
title: 'Valeur préservée',
body: "Une voiture bien choisie aujourd'hui, c'est une valeur qui se conserve demain. Les grandes marques premium — BMW, Audi, Mercedes, Mini, Alpine et bien d'autres — sont construites pour durer. Notre rôle est de vous aider à investir intelligemment dans un véhicule dont vous serez encore fiers dans dix ans.",
},
];
return (
CE QUI NOUS DÉFINIT
Notre approche
Quatre principes qui guident chaque échange, chaque dossier et chaque véhicule
qui passe entre nos mains.
{values.map((v, i) => (
))}
);
}
const approche = {
grid: { display: 'grid', marginTop: 56 },
cell: {
display: 'flex', flexDirection: 'column', gap: 14,
position: 'relative',
overflow: 'hidden',
transition: 'background 360ms ease-out',
},
bigNum: {
position: 'absolute',
top: -32,
right: -28,
fontFamily: "'Cormorant Garamond', serif",
fontStyle: 'italic',
fontWeight: 300,
fontSize: 340,
lineHeight: 0.85,
color: '#C4A45A',
opacity: 0.07,
pointerEvents: 'none',
letterSpacing: '-0.04em',
userSelect: 'none',
transition: 'opacity 500ms ease-out, transform 700ms cubic-bezier(0.22, 0.61, 0.36, 1)',
zIndex: 0,
},
bigNumOutline: {
/* outlined / stroke effect when hovered for max editorial feel */
WebkitTextStroke: '1px #C4A45A',
color: 'transparent',
},
cellInner: {
position: 'relative', zIndex: 1,
display: 'flex', flexDirection: 'column', gap: 14,
},
iconWrap: {
width: 44, height: 44, display: 'inline-flex', alignItems: 'center', justifyContent: 'center',
border: '1px solid #2A2A2A', borderRadius: 0, background: '#0A0A0A',
transition: 'border-color 320ms ease-out, box-shadow 320ms ease-out, transform 380ms cubic-bezier(0.22, 0.61, 0.36, 1)',
},
smallIdx: {
fontFamily: "'DM Mono', monospace", fontSize: 11, color: '#4A4540',
letterSpacing: '0.06em',
transition: 'color 320ms ease-out',
},
title: {
margin: 0, fontFamily: "'Cormorant Garamond', serif", fontStyle: 'italic',
fontWeight: 400, fontSize: 22, color: '#F5F0E8', letterSpacing: '0.005em',
marginTop: 4,
transition: 'color 320ms ease-out',
},
body: {
margin: 0, fontFamily: "'Inter', sans-serif", fontSize: 14.5, lineHeight: 1.7,
color: '#8A7F6E', letterSpacing: '0.01em',
transition: 'color 360ms ease-out, transform 500ms cubic-bezier(0.22, 0.61, 0.36, 1)',
},
bottomLine: {
position: 'absolute', left: 0, bottom: 0, height: 1, background: '#C4A45A',
width: '0%',
transition: 'width 500ms cubic-bezier(0.22, 0.61, 0.36, 1)',
},
};
function ApprocheCell({ value, index, last, isMobile }) {
const [hover, setHover] = React.useState(false);
const v = value;
return (
setHover(true)}
onMouseLeave={() => setHover(false)}
style={{
...approche.cell,
padding: isMobile ? '28px 4px' : '44px 28px',
borderRight: !isMobile && !last ? '1px solid #1A1A1A' : 'none',
borderBottom: isMobile && !last ? '1px solid #1A1A1A' : 'none',
background: hover ? 'rgba(196,164,90,0.025)' : 'transparent',
}}
>
{/* Big background number — outlined, positioned to the right of the icon */}
{!isMobile && (
{index + 1}
)}
{/* Bottom gold accent line that draws in on hover */}
{!isMobile && (
)}
);
}
// ----------------------------------------------------------------------------
// SectionServices — "Nos services" — 4 cartes, dépôt-vente en avant
function SectionServices() {
const isMobile = window.__dch_isMobile;
const services = [
{
key: 'achat',
title: 'Achat de véhicules',
body: "Vous vendez votre BMW, Audi, Mercedes, Mini ou tout autre véhicule premium ? Nous proposons un rachat cash au prix juste, avec une estimation sous 24 heures, sans délai artificiel.",
cta: 'En savoir plus',
href: '#',
external: false,
},
{
key: 'depot',
title: 'Dépôt-vente',
featured: true,
body: "Confiez-nous votre véhicule. Nous gérons l'intégralité de la mise en vente — de l'estimation aux photographies, de l'annonce à la signature. Vous touchez votre prix net, sans rien à gérer.",
cta: 'En savoir plus',
href: '#',
external: false,
},
{
key: 'vente',
title: 'Vente de véhicules',
body: "Notre sélection de véhicules premium en Essonne est disponible sur LaCentrale. Inspection, historique complet, annonces honnêtes.",
cta: 'Voir nos annonces',
href: 'https://pros.lacentrale.fr/C061148',
external: true,
},
{
key: 'import',
title: 'Import / Export',
body: "Un modèle introuvable en France ? Un acheteur à trouver en Europe ? Notre réseau vous ouvre les marchés européens, sans les contraintes administratives.",
cta: 'En savoir plus',
href: '#',
external: false,
},
];
return (
NOTRE SAVOIR-FAIRE
Nos services
Quatre métiers, une seule philosophie : un accompagnement à taille humaine,
de la première estimation à la remise des clés.
{services.map((s, i) => (
))}
);
}
function ServiceCard({ title, body, cta, href, external, featured, idx, isMobile }) {
const [hover, setHover] = React.useState(false);
const cardRef = React.useRef(null);
const ctaRef = React.useRef(null);
// Magnetic / 3D-tilt effect — desktop fine-pointer only
const handleMove = (e) => {
if (isMobile) return;
const card = cardRef.current;
if (!card) return;
const rect = card.getBoundingClientRect();
const cx = rect.left + rect.width / 2;
const cy = rect.top + rect.height / 2;
// Normalized offset from center, range -1..1
const dx = (e.clientX - cx) / (rect.width / 2);
const dy = (e.clientY - cy) / (rect.height / 2);
const tx = dx * 8; // magnetic translate (px)
const ty = dy * 6;
const rx = dy * -3; // tilt deg
const ry = dx * 4;
card.style.transform = `perspective(900px) translate3d(${tx}px, ${ty}px, 0) rotateX(${rx}deg) rotateY(${ry}deg)`;
if (ctaRef.current) {
ctaRef.current.style.transform = `translate3d(${dx * 6}px, 0, 0)`;
}
};
const handleLeave = () => {
if (cardRef.current) cardRef.current.style.transform = '';
if (ctaRef.current) ctaRef.current.style.transform = '';
setHover(false);
};
return (
setHover(true)}
onMouseLeave={handleLeave}
onMouseMove={handleMove}
style={{
position: 'relative',
background: featured ? '#171411' : '#0A0A0A',
border: featured
? '1px solid #C4A45A'
: (hover ? '1px solid #C4A45A' : '1px solid #2A2A2A'),
padding: isMobile ? '28px 22px' : '40px 36px',
textDecoration: 'none', color: '#F5F0E8',
display: 'flex', flexDirection: 'column', gap: 14,
boxShadow: featured
? '0 0 24px rgba(196,164,90,0.08)'
: (hover ? '0 24px 60px rgba(0,0,0,0.5), 0 0 24px rgba(196,164,90,0.12)' : 'none'),
}}
>
{featured && (
Notre offre phare
)}
{/* Big background number — outlined, top-right, bleeds off-frame */}
{!isMobile && (
)}
{title}
{body}
{cta}
{external
?
: }
);
}
// ----------------------------------------------------------------------------
// SectionPourquoi — "Pourquoi nous" — manifesto vertical layout, big numerals
function SectionPourquoi() {
const isMobile = window.__dch_isMobile;
const args = [
{
title: 'Sur rendez-vous uniquement',
body: "Chez Delta Cars Héritage, pas de hall d'exposition où vous êtes livré à vous-même. Chaque rendez-vous est un moment dédié à votre projet : une attention totale, du temps pour les bonnes questions, des réponses sans détour.",
},
{
title: 'Sélection exigeante, pas stock de masse',
body: "Nous ne cherchons pas à proposer le plus grand nombre de véhicules — nous cherchons les meilleurs. Chaque voiture dans notre catalogue a passé notre grille de contrôle avant d'être proposée.",
},
{
title: 'Acheteur cash, vendeur réactif',
body: "Estimation sous 24 heures. Paiement rapide. Si votre voiture correspond à nos critères, la transaction se conclut en quelques jours — sans l'attente incertaine d'un acquéreur particulier.",
},
];
return (
POURQUOI NOUS
Pourquoi Delta Cars Héritage
{args.map((a, i) => (
))}
);
}
function PourquoiRow({ item, index, isMobile, last }) {
const [hover, setHover] = React.useState(false);
return (
setHover(true)}
onMouseLeave={() => setHover(false)}
style={{
position: 'relative',
display: 'grid',
gridTemplateColumns: isMobile ? '1fr' : 'minmax(200px, 280px) 1fr',
gap: isMobile ? 16 : 60,
alignItems: 'center',
padding: isMobile ? '36px 0' : '56px 8px',
borderTop: '1px solid #1A1A1A',
borderBottom: last ? '1px solid #1A1A1A' : 'none',
transition: 'background 360ms ease-out',
background: hover ? 'rgba(196,164,90,0.018)' : 'transparent',
}}
>
{/* Huge numeral — outlined italic Cormorant */}
{index + 1}
{/* Content — title + body */}
);
}
// ----------------------------------------------------------------------------
// SectionClosing — Citation + closing CTA
function SectionClosing() {
const isMobile = window.__dch_isMobile;
return (
);
}
// Shared section styles
const sec = {
section: { position: 'relative' },
inner: { maxWidth: 1440, margin: '0 auto' },
heading: { display: 'flex', flexDirection: 'column', gap: 18 },
h2: {
margin: 0, fontFamily: "'Cormorant Garamond', serif",
fontWeight: 400, color: '#F5F0E8', letterSpacing: '-0.01em', lineHeight: 1,
},
heroLede: {
margin: 0, fontFamily: "'Inter', sans-serif", color: '#C8BFA8',
lineHeight: 1.7, letterSpacing: '0.01em', marginTop: 4,
},
};
window.SectionApproche = SectionApproche;
window.SectionServices = SectionServices;
window.SectionPourquoi = SectionPourquoi;
window.SectionClosing = SectionClosing;