:root { –db-green: #b3bc00; –db-black: #000000; –db-white: #FFFFFF; }.residence-hero { background: var(–db-black); color: var(–db-white); padding: 120px 5%; text-align: left; position: relative; border-left: 15px solid var(–db-green); }.residence-hero h1 { font-size: clamp(2.5rem, 6vw, 4.5rem); font-weight: 900; line-height: 1; text-transform: uppercase; margin-bottom: 30px; }.residence-hero span { color: var(–db-green); }.residence-hero .lead { font-size: 1.5rem; max-width: 700px; border-left: 2px solid var(–db-green); padding-left: 25px; opacity: 0.9; }

Votre Résidence
Votre Priorité.

Bien plus qu’un toit. Le socle de votre patrimoine et le sanctuaire de votre famille.

.pillars-section { display: grid; grid-template-columns: repeat(3, 1fr); background: var(–db-white); }.pillar { padding: 80px 10%; border-right: 1px solid #eee; transition: all 0.5s ease; }.pillar:hover { background: #fdfdfd; }.pillar-num { font-size: 4rem; font-weight: 900; color: #f0f0f0; line-height: 1; margin-bottom: -20px; }.pillar h3 { font-size: 1.5rem; font-weight: 900; color: var(–db-black); text-transform: uppercase; margin-bottom: 20px; position: relative; }.pillar h3::after { content:  »; display: block; width: 30px; height: 4px; background: var(–db-green); margin-top: 10px; }@media (max-width: 980px) { .pillars-section { grid-template-columns: 1fr; } .pillar { border-right: none; border-bottom: 1px solid #eee; } }
01

Valorisation

L’inflation vous permet de voir le prix de votre résidence principale progresser d’année en année.

02

Optimisation

Acheter un bien immobilier ou vous avez des travaux. Vous acheterez moins cher et vous aurez une plus values future non taxable.

03

Bien-être

Un bien personnel dans lequel vous vivez n’a pas de prix en compensation du bonheur qu’il peut vous procurer.

.db-grid-container { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; padding: 60px 5%; background: #FFFFFF; } .db-card { border: 2px solid #000000; padding: 30px; position: relative; } .db-card h3 { font-size: 1.4rem; font-weight: 900; margin-bottom: 15px; color: #000000; display: flex; align-items: center; } .db-card h3::before { content: «  »; width: 12px; height: 12px; background: #b3bc00; margin-right: 10px; } .db-card ul { list-style: none; padding: 0; } .db-card li { margin-bottom: 10px; padding-left: 20px; position: relative; } .db-card li::before { content: « → »; position: absolute; left: 0; color: #b3bc00; font-weight: bold; } @media (max-width: 768px) { .db-grid-container { grid-template-columns: 1fr; } }

1. Levier de l’épargne forcée

  • Capitalisation : Chaque mensualité transfère du cash vers votre patrimoine net.
  • Inflation alliée : Votre dette réelle diminue quand le coût de la vie augmente.

2. Levier Fiscal : Plus-value

  • Exonération totale : Zéro impôt sur la plus-value lors de la revente.
  • Stratégie rénovation : Générez des gains nets sans frottement fiscal.

3. Levier Crédit : Recharge

  • Crédibilité bancaire : Garantie préférée des banques pour vos futurs projets.
  • Prêt relais & Lombard : Utilisez la valeur acquise pour réinvestir immédiatement.

4. Levier de Revenus : m²

  • Location saisonnière : Générez du cash-flow pendant vos vacances.
  • Abattement total : Exonération d’impôt sur la location meublée d’une partie de votre RP.
.db-cta-section { padding: 80px 5%; text-align: center; background: #000000; color: #FFFFFF; } .db-cta-button { display: inline-block; background-color: #b3bc00; color: #000000 !important; padding: 20px 40px; font-weight: 900; font-size: 1.3rem; text-decoration: none; text-transform: uppercase; border: none; transition: background 0.3s; } .db-cta-button:hover { background-color: #FFFFFF; } .db-cta-phone { display: block; margin-top: 20px; font-size: 1.1rem; font-weight: bold; color: #b3bc00; }

Prêt à activer ces leviers sur votre projet ?

ACTIVER MON FINANCEMENT
/* CSS Scoped pour éviter les conflits avec Divi/WordPress */ #divi-sim-container { font-family: ‘Inter’, Helvetica, Arial, sans-serif; max-width: 900px; margin: 0 auto; color: #333; background-color: #fff; padding: 10px; }#divi-sim-container * { box-sizing: border-box; }/* Variables couleurs */ #divi-sim-container { –sim-primary: #b3bc00; /* Ta couleur verte */ –sim-primary-dark: #9ca300; –sim-bg-light: #f7f8f0; –sim-text-gray: #4b5563; –sim-border: #e5e7eb; –wa-green: #25D366; –wa-dark: #128C7E; }/* Cartes et Layout */ .sim-card { background: #fff; border-radius: 16px; box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1); padding: 30px; margin-bottom: 25px; border: 1px solid #f0f0f0; }.sim-header { text-align: center; margin-bottom: 30px; }.sim-title { color: var(–sim-primary); font-size: 2rem; font-weight: 700; margin-bottom: 10px; line-height: 1.2; }.sim-subtitle { color: var(–sim-text-gray); font-size: 1.1rem; }/* Section Steps */ .sim-step-title { font-size: 1.25rem; font-weight: 600; color: #1f2937; margin-bottom: 20px; display: flex; align-items: center; }.sim-badge { background-color: var(–sim-primary); color: white; width: 32px; height: 32px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 0.9rem; font-weight: bold; margin-right: 12px; }/* Grids – CORRECTION MOBILE */ .sim-grid-3 { display: grid; grid-template-columns: 1fr; gap: 15px; } .sim-grid-2 { display: grid; grid-template-columns: 1fr; gap: 15px; /* Gap ajouté pour mobile */ } @media (min-width: 768px) { .sim-grid-3 { grid-template-columns: repeat(3, 1fr); } .sim-grid-2 { grid-template-columns: repeat(2, 1fr); gap: 20px;} }/* Boutons de mode */ .sim-mode-btn { padding: 20px; border: 2px solid var(–sim-border); border-radius: 12px; background: transparent; cursor: pointer; transition: all 0.3s ease; text-align: center; width: 100%; }.sim-mode-btn:hover { border-color: var(–sim-primary); }.sim-mode-btn.active { border-color: var(–sim-primary); background-color: rgba(179, 188, 0, 0.1); }.sim-icon { font-size: 2rem; margin-bottom: 10px; display: block; } .sim-btn-title { font-weight: 600; color: #1f2937; display: block; } .sim-btn-desc { font-size: 0.85rem; color: var(–sim-text-gray); margin-top: 5px; display: block; }/* Inputs */ .sim-input-group { margin-bottom: 20px; } .sim-label { display: block; font-size: 0.9rem; font-weight: 500; color: #374151; margin-bottom: 8px; } .sim-input { width: 100%; padding: 12px 16px; border: 1px solid #d1d5db; border-radius: 8px; font-size: 1rem; transition: border-color 0.2s; outline: none; } .sim-input:focus { border-color: var(–sim-primary); box-shadow: 0 0 0 3px rgba(179, 188, 0, 0.1); }/* Toggle Type Financement */ .sim-toggle-container { background: #f3f4f6; padding: 4px; border-radius: 8px; display: inline-flex; margin-bottom: 20px; } .sim-toggle-btn { padding: 8px 20px; border-radius: 6px; border: none; background: transparent; color: #6b7280; font-weight: 500; cursor: pointer; transition: all 0.3s; } .sim-toggle-btn.active { background-color: var(–sim-primary); color: white; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }/* Placement Section */ .sim-placement-box { background-color: #eff6ff; border: 1px solid #dbeafe; border-radius: 8px; padding: 20px; margin-top: 20px; } .sim-placement-title { color: #1e40af; font-weight: 600; margin-bottom: 10px; display: flex; align-items: center; gap: 8px; } /* Action Button */ .sim-calc-btn { width: 100%; background-color: var(–sim-primary); color: white; border: none; padding: 16px; border-radius: 8px; font-size: 1.1rem; font-weight: 600; cursor: pointer; margin-top: 20px; transition: transform 0.2s, background-color 0.2s; } .sim-calc-btn:hover { background-color: var(–sim-primary-dark); transform: translateY(-2px); }/* Résultats */ .sim-result-card { background: linear-gradient(135deg, #b3bc00 0%, #9ca300 100%); color: white; border-radius: 12px; padding: 30px; text-align: center; margin-bottom: 20px; } .sim-result-value { font-size: 2.5rem; font-weight: 800; margin: 10px 0; } .sim-result-sub { font-size: 0.9rem; opacity: 0.9; }.sim-stats-grid { display: grid; grid-template-columns: repeat(1, 1fr); gap: 15px; margin-bottom: 20px; } @media (min-width: 600px) { .sim-stats-grid { grid-template-columns: repeat(3, 1fr); } } .sim-stat-box { background: #f9fafb; padding: 15px; border-radius: 8px; text-align: center; } .sim-stat-val { font-weight: 700; color: #1f2937; font-size: 1.1rem; } .sim-stat-label { font-size: 0.85rem; color: #6b7280; }/* Detail Box */ .sim-details-box { background-color: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 20px; } .sim-detail-row { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid #e0f2fe; font-size: 0.95rem; } .sim-detail-row.total { border-top: 2px solid #bae6fd; border-bottom: none; margin-top: 10px; padding-top: 15px; font-weight: bold; font-size: 1.1rem; } .sim-text-primary { color: var(–sim-primary-dark); } .sim-formule-box { background-color: #fefce8; border: 1px solid #fef08a; padding: 15px; border-radius: 6px; margin-top: 15px; font-size: 0.85rem; color: #854d0e; }/* — WHATSAPP SECTION — */ .sim-wa-container { margin-top: 25px; background-color: #ecfdf5; border: 1px solid #a7f3d0; border-radius: 12px; padding: 20px; text-align: center; animation: fadeIn 0.5s ease-in-out; } .sim-wa-title { color: #065f46; font-weight: 700; font-size: 1.1rem; margin-bottom: 15px; } .sim-wa-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background-color: var(–wa-green); color: white !important; padding: 12px 25px; border-radius: 50px; font-weight: bold; text-decoration: none; font-size: 1rem; transition: all 0.3s ease; box-shadow: 0 4px 6px -1px rgba(37, 211, 102, 0.4); } .sim-wa-btn:hover { background-color: var(–wa-dark); transform: translateY(-2px); box-shadow: 0 6px 8px -1px rgba(37, 211, 102, 0.5); } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }.hidden { display: none !important; } .opacity-50 { opacity: 0.5; pointer-events: none; }

💰 Simulateur de Financement

Calculez votre projet en quelques clics

1 Que souhaitez-vous calculer ?


2 Paramètres du financement

(function() { // Scoping strict pour éviter les conflits globaux WordPress const S = { mode: null, type: ‘amortissable’, els: {} };// Initialisation des éléments document.addEventListener(‘DOMContentLoaded’, function() { // Mapping des IDs const ids = [‘inp-montant’, ‘inp-mensualite’, ‘inp-duree’, ‘inp-taux’, ‘inp-assurance’, ‘field-montant’, ‘field-mensualite’, ‘field-duree’, ‘sim-step-2’, ‘section-placement’, ‘sim-results’, ‘btn-calculer’, ‘inp-cap-place’, ‘inp-mens-place’, ‘inp-rendement’, ‘out-cap-final’, ‘sim-wa-link’]; ids.forEach(id => S.els[id] = document.getElementById(id));// Event Listeners Modes document.querySelectorAll(‘.sim-mode-btn’).forEach(btn => { btn.addEventListener(‘click’, (e) => setMode(btn.dataset.mode, btn)); });// Event Listeners Types document.querySelectorAll(‘.sim-toggle-btn’).forEach(btn => { btn.addEventListener(‘click’, (e) => setType(btn.dataset.type, btn)); });// Event Calcul S.els[‘btn-calculer’].addEventListener(‘click’, calculate);// Event Placement [‘inp-cap-place’, ‘inp-rendement’, ‘inp-duree’, ‘inp-montant’].forEach(id => { const el = document.getElementById(id); if(el) el.addEventListener(‘input’, calcPlacementFromCapital); }); document.getElementById(‘inp-mens-place’).addEventListener(‘input’, calcPlacementFromMens);// Init par défaut setMode(‘mensualite’, document.querySelector(‘[data-mode= »mensualite »]’)); });function setMode(mode, btnElement) { S.mode = mode; // UI Boutons document.querySelectorAll(‘.sim-mode-btn’).forEach(b => b.classList.remove(‘active’)); if(btnElement) btnElement.classList.add(‘active’);// Activation section 2 S.els[‘sim-step-2’].classList.remove(‘opacity-50’); S.els[‘sim-step-2’].style.pointerEvents = ‘auto’;// Visibilité Champs S.els[‘field-montant’].classList.remove(‘hidden’); S.els[‘field-mensualite’].classList.remove(‘hidden’); S.els[‘field-duree’].classList.remove(‘hidden’);if(mode === ‘mensualite’) S.els[‘field-mensualite’].classList.add(‘hidden’); if(mode === ‘montant’) S.els[‘field-montant’].classList.add(‘hidden’); if(mode === ‘duree’) S.els[‘field-duree’].classList.add(‘hidden’);S.els[‘sim-results’].classList.add(‘hidden’); }function setType(type, btnElement) { S.type = type; // UI Boutons document.querySelectorAll(‘.sim-toggle-btn’).forEach(b => b.classList.remove(‘active’)); if(btnElement) btnElement.classList.add(‘active’);if(type === ‘fine’) { S.els[‘section-placement’].classList.remove(‘hidden’); calcPlacementFromCapital(); } else { S.els[‘section-placement’].classList.add(‘hidden’); } }function getVal(id) { return parseFloat(S.els[id].value) || 0; } function fmt(num) { return Math.round(num).toLocaleString(‘fr-FR’) + ‘ €’; }function calculate() { const C = getVal(‘inp-montant’); const M_souhaite = getVal(‘inp-mensualite’); let n_years = getVal(‘inp-duree’); const t_annuel = getVal(‘inp-taux’); const t_ass = getVal(‘inp-assurance’);const t_m = t_annuel / 100 / 12; const n_mois = n_years * 12; let result = 0, label =  », detail =  », capitalFinal = C, dureeFinal = n_years, mensFinal = 0; let assurance_mensuelle = 0;// — MODE 1 : Calcul MENSUALITÉ — if (S.mode === ‘mensualite’) { assurance_mensuelle = C * t_ass / 100 / 12; if (S.type === ‘amortissable’) { if(t_m === 0) result = C / n_mois; else result = C * (t_m * Math.pow(1+t_m, n_mois)) / (Math.pow(1+t_m, n_mois) – 1); } else { // In Fine result = C * t_m; } mensFinal = result + assurance_mensuelle; label = « Mensualité estimée »; detail = « Assurance incluse »; updateUI(mensFinal, fmt(mensFinal), label, detail, C, result, assurance_mensuelle, n_mois, n_years); }// — MODE 2 : Calcul CAPACITÉ (MONTANT) — else if (S.mode === ‘montant’) { const t_ass_m = t_ass / 100 / 12; let facteur = 0;if (S.type === ‘amortissable’) { if(t_m === 0) facteur = 1/n_mois; else facteur = (t_m * Math.pow(1+t_m, n_mois)) / (Math.pow(1+t_m, n_mois) – 1); } else { // In Fine facteur = t_m; }const denominateur = facteur + t_ass_m; if(denominateur === 0) result = 0; else result = M_souhaite / denominateur;capitalFinal = result; assurance_mensuelle = capitalFinal * t_ass_m; const mens_hors_ass = M_souhaite – assurance_mensuelle; label = « Montant empruntable »; detail = « Capacité d’emprunt »; updateUI(capitalFinal, fmt(capitalFinal), label, detail, capitalFinal, mens_hors_ass, assurance_mensuelle, n_mois, n_years); }// — MODE 3 : Calcul DURÉE — else if (S.mode === ‘duree’) { assurance_mensuelle = C * t_ass / 100 / 12; const mens_dispo_pret = M_souhaite – assurance_mensuelle;if(mens_dispo_pret <= 0) { alert("La mensualité est trop faible pour couvrir l'assurance."); return; }if (S.type === 'amortissable') { if (mens_dispo_pret <= C * t_m) { updateUI(0, "Impossible", "Durée", "Mensualité < Intérêts", C, mens_dispo_pret, assurance_mensuelle, 0, 0); return; } if(t_m === 0) { result = C / mens_dispo_pret; // en mois } else { result = -Math.log(1 – (C * t_m) / mens_dispo_pret) / Math.log(1 + t_m); // en mois } dureeFinal = result / 12; } else { // In Fine if (mens_dispo_pret Mensualité », C, mens_dispo_pret, assurance_mensuelle, 0, 0); return; } dureeFinal = 0; // Non pertinent label = « Durée libre »; }const n_mois_calc = Math.ceil(dureeFinal * 12); label = « Durée estimée »; detail = `${Math.floor(dureeFinal)} ans et ${Math.round((dureeFinal % 1)*12)} mois`;updateUI(dureeFinal, detail, label, «  », C, mens_dispo_pret, assurance_mensuelle, n_mois_calc, dureeFinal); } }function updateUI(mainVal, mainText, labelText, subText, capital, mens_hors, ass_mens, nb_mois, nb_annees) { document.getElementById(‘res-value’).textContent = typeof mainText === ‘string’ ? mainText : fmt(mainVal); document.getElementById(‘res-label’).textContent = labelText; document.getElementById(‘res-detail’).textContent = subText;// Stats let cout = 0, interets = 0, tot_ass = ass_mens * nb_mois; if (S.type === ‘amortissable’) { const tot_mens = (mens_hors + ass_mens) * nb_mois; cout = tot_mens – capital; interets = cout – tot_ass; } else { // In Fine interets = (capital * (getVal(‘inp-taux’)/100/12)) * nb_mois; cout = interets + tot_ass; }document.getElementById(‘res-cout’).textContent = fmt(cout); document.getElementById(‘res-interets’).textContent = fmt(interets); document.getElementById(‘res-assurance’).textContent = fmt(tot_ass);// Details document.getElementById(‘det-capital’).textContent = fmt(capital); document.getElementById(‘det-mens-hors’).textContent = fmt(mens_hors); document.getElementById(‘det-ass-mens’).textContent = fmt(ass_mens); document.getElementById(‘det-total’).textContent = fmt(mens_hors + ass_mens);// Formule display let fText = «  »; if(S.type === ‘amortissable’) fText = « Calcul classique Amortissable »; else fText = « Calcul In Fine (Capital remboursé à la fin) »; document.getElementById(‘det-formule’).textContent = fText;const phone = « 33662132626 »; // Construction du message dynamique let waMsg = `Bonjour, j’ai effectué une simulation de financement : `; waMsg += `- Type : ${S.type === ‘amortissable’ ? ‘Amortissable’ : ‘In Fine’} `; waMsg += `- ${labelText} : ${typeof mainText === ‘string’ ? mainText : fmt(mainVal)} `; if(S.mode === ‘mensualite’ || S.mode === ‘duree’) { waMsg += `- Montant emprunté : ${fmt(capital)} `; } waMsg += ` Pouvez-vous me recontacter pour en discuter ?`;S.els[‘sim-wa-link’].href = `https://wa.me/${phone}?text=${encodeURIComponent(waMsg)}`;S.els[‘sim-results’].classList.remove(‘hidden’); S.els[‘sim-results’].scrollIntoView({ behavior: ‘smooth’ }); }// Fonctions Placement function calcPlacementFromCapital() { if(S.type !== ‘fine’) return; const capInit = getVal(‘inp-cap-place’); const tx = getVal(‘inp-rendement’)/100/12; const n = getVal(‘inp-duree’) * 12; const target = getVal(‘inp-montant’);let pmt = 0; if(tx === 0) { pmt = (target – capInit) / n; } else { const capInitFV = capInit * Math.pow(1+tx, n); const remainder = target – capInitFV; if(remainder > 0) { pmt = remainder * tx / (Math.pow(1+tx, n) – 1); } }S.els[‘inp-mens-place’].value = Math.max(0, Math.round(pmt)); const finalCheck = (capInit * Math.pow(1+tx, n)) + (pmt * (Math.pow(1+tx, n) – 1) / tx); S.els[‘out-cap-final’].textContent = fmt(finalCheck); }function calcPlacementFromMens() { if(S.type !== ‘fine’) return; const pmt = getVal(‘inp-mens-place’); const tx = getVal(‘inp-rendement’)/100/12; const n = getVal(‘inp-duree’) * 12; const target = getVal(‘inp-montant’);let capInit = 0; if(tx === 0) { capInit = target – (pmt * n); } else { const seriesFV = pmt * (Math.pow(1+tx, n) – 1) / tx; capInit = (target – seriesFV) / Math.pow(1+tx, n); }S.els[‘inp-cap-place’].value = Math.max(0, Math.round(capInit)); const finalCheck = (capInit * Math.pow(1+tx, n)) + (pmt * (Math.pow(1+tx, n) – 1) / tx); S.els[‘out-cap-final’].textContent = fmt(finalCheck); }})();