 .eq-wrapper {
  font-family: 'Segoe UI', Roboto, sans-serif;
  background: #f4f7f9;
  padding: 30px;
  border-radius: 15px;
  /* Thème (valeurs par défaut, surchargées en inline via le shortcode) */
  --eq-text: #444444;
  --eq-primary: #0A66C2;
  --eq-btn: #0A66C2;
  --eq-btn-text: #ffffff;
  --eq-checkbox: #0A66C2;
  --eq-range: #0A66C2;
  color: var(--eq-text);
}
.eq-grid{ display: flex !important; gap: 25px; align-items: flex-start; flex-wrap: nowrap; }
.eq-inputs { flex: 0 0 380px; min-width: 320px; }
.eq-results { flex: 1 1 auto; min-width: 360px; }

@media (max-width: 520px) { .eq-grid{ flex-direction: column; } .eq-inputs, .eq-results { min-width: 0; flex: 1 1 auto; } } }

.eq-card { background: #fff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.05); margin-bottom: 20px; }
.eq-title { color: var(--eq-primary); margin-top: 0; font-size: 20px; border-bottom: 2px solid #eee; padding-bottom: 10px; }

.eq-subtitle{
  margin: 6px 0 10px;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .2px;
}

/* Tooltip "?" */
.eq-tip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  height:16px;
  border-radius:50%;
  border:1px solid rgba(0,0,0,0.25);
  font-size:12px;
  line-height:1;
  margin-left:6px;
  color:var(--eq-primary);
  cursor:help;
  user-select:none;
}

.eq-field { margin-bottom: 20px; }
.eq-field label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 8px; color: var(--eq-text); }
.eq-field input[type="number"], .eq-field select { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }

.eq-tri-labels { display: flex; justify-content: space-between; font-size: 10px; color: #999; margin-top: 5px; }
.eq-btn { width: 100%; padding: 15px; background: var(--eq-btn); color: var(--eq-btn-text); border: none; border-radius: 8px; font-weight: bold; cursor: pointer; transition: 0.2s; position: relative; overflow: hidden; isolation: isolate; }
.eq-btn > span { position: relative; z-index: 2; }
.eq-btn::after { content:""; position:absolute; inset:0; background: var(--eq-btn-overlay); opacity:0; transition:0.2s; z-index:1; pointer-events:none; }
.eq-btn:hover::after { opacity:0.18; }
/* Overlay au survol, piloté via --eq-btn-overlay */
.eq-btn { position: relative; overflow: hidden; }
.eq-btn::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--eq-btn-overlay, rgba(0,0,0,0.12));
  opacity: 0;
  transition: opacity 0.2s;
  pointer-events: none;
}
.eq-btn:hover::after { opacity: 0.18; }

/* Compliance */
.eq-compliance {
  margin-top: 12px;
  line-height: 1.35;
  white-space: pre-wrap;
}

/* Checkboxes */
.eq-wrapper input[type="checkbox"] { accent-color: var(--eq-checkbox); }

/* Range slider (barre échelle) */
.eq-wrapper input[type="range"].eq-range {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 6px;
  border-radius: 999px;
  background: #d1d5db; /* fallback, sera surchargé en inline via JS (gradient) */
  outline: none;
}
.eq-wrapper input[type="range"].eq-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: var(--eq-range);
  border: 2px solid #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  cursor: pointer;
}
.eq-wrapper input[type="range"].eq-range::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: var(--eq-range);
  border: 2px solid #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  cursor: pointer;
}
.eq-wrapper input[type="range"].eq-range::-moz-range-track {
  height: 6px;
  border-radius: 999px;
  background: #d1d5db;
}

.eq-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 20px; }
.eq-stat { background: #fff; padding: 15px; border-radius: 10px; text-align: center; border: 1px solid #eef2f6; }
.eq-label { display: block; font-size: 11px; color: #777; text-transform: uppercase; }
.eq-val { font-size: 20px; font-weight: bold; color: var(--eq-primary); }
.eq-green { color: #27ae60; }

.eq-credit-section { background: #f9fafb; padding: 15px; border-radius: 8px; margin-bottom: 20px; }

/* Front credit box (module immobilier) */
.eq-credit-box{
  background: linear-gradient(180deg, rgba(10,102,194,.07), rgba(0,0,0,0));
  border: 1px solid rgba(0,0,0,0.08);
  padding: 14px;
  border-radius: 16px;
  margin: 10px 0 14px;
}
.eq-mini-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }

/* Responsive */
@media (max-width: 600px) {
   .eq-wrapper { padding: 16px; border-radius: 12px; }
  .eq-card { padding: 16px; }
  .eq-summary { grid-template-columns: 1fr; }
  .eq-mini-grid { grid-template-columns: 1fr; }
  .eq-title { font-size: 18px; }
}

.eq-lead-block { width: 100%; }
.eq-lead-inner { border: 1px solid #eee; border-radius: 10px; padding: 14px; }
.eq-lead-form { display:flex; flex-direction:column; gap:10px; margin-top:10px; }
.eq-lead-name{ display:flex; gap:10px; align-items:center; }
.eq-lead-name input[type="text"]{ flex:1; padding:10px; border:1px solid #ddd; border-radius:8px; min-width:0; }
.eq-lead-emailrow{ display:flex; gap:10px; align-items:center; }
.eq-lead-emailrow input[type="email"]{ flex:1; padding:10px; border:1px solid #ddd; border-radius:8px; min-width:0; }
.eq-lead-form .eq-btn{ width:auto; padding: 12px 18px; border-radius: 10px; }
@media (max-width: 520px){
  .eq-lead-name{ flex-direction:column; align-items:stretch; }
  .eq-lead-emailrow{ flex-direction:column; align-items:stretch; }
  .eq-lead-form .eq-btn{ width:100%; }
}

/* Small UI helpers */
.eq-divider{
  height:1px;
  background:rgba(0,0,0,0.08);
  margin:14px 0;
}

.eq-btn.eq-btn-small{
  padding:8px 12px;
  font-size:13px;
  border-radius:12px;
}


/* --- Immobilier (cartes premium) --- */
.eq-rents-results { margin-top: 14px; }
.eq-properties { margin-top: 14px; }
.eq-props-title{
  font-weight: 800;
  letter-spacing: .2px;
  margin-bottom: 10px;
  color: var(--eq-primary);
}
.eq-props-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
}
.eq-prop-card{
  border: 1px solid rgba(0,0,0,.08);
  background: #fff;
  border-radius: 16px;
  padding: 12px;
  overflow: hidden;
  box-shadow: 0 10px 26px rgba(0,0,0,.05);
}
.eq-prop-img{
  width: 100%;
  height: 140px;
  object-fit: cover;
  border-radius: 12px;
  display:block;
  margin-bottom: 10px;
}
.eq-prop-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom: 6px;
}
.eq-prop-type{
  font-weight: 900;
  font-size: 14px;
}
.eq-prop-badge{
  font-size: 12px;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(10,102,194,.08);
  color: var(--eq-primary);
  font-weight: 700;
  white-space: nowrap;
}
.eq-prop-meta{
  font-size: 13px;
  opacity: .9;
  line-height: 1.35;
  margin-top: 4px;
}

/* SCPI card */
.eq-scpi-card{
  border: 1px solid rgba(0,0,0,.08);
  background: linear-gradient(180deg, rgba(10,102,194,.06), rgba(0,0,0,0));
  border-radius: 16px;
  padding: 12px 14px;
  box-shadow: 0 10px 26px rgba(0,0,0,.04);
  margin-bottom: 12px;
}
.eq-scpi-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
}

/* --- Results: 2 blocs (Financier / Immobilier) --- */
.eq-modules-results{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap: 16px;
}
.eq-module-card{
  background:#fff;
  border:1px solid rgba(0,0,0,0.08);
  border-radius: 16px;
  box-shadow: 0 12px 30px rgba(0,0,0,0.05);
  overflow:hidden;
}
.eq-module-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  padding: 14px 16px;
  background: linear-gradient(180deg, rgba(10,102,194,.08), rgba(0,0,0,0));
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.eq-module-kicker{
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: rgba(0,0,0,0.55);
}
.eq-module-title{
  font-size: 18px;
  font-weight: 900;
  color: var(--eq-primary);
  margin-top: 2px;
}
.eq-chart-wrap{
  padding: 12px 16px 6px;
}
.eq-module-stats{
  padding: 10px 16px 14px;
  display:grid;
  gap: 10px;
}
.eq-statline{
  display:flex;
  justify-content:space-between;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 12px;
  background: #fafafa;
  font-size: 13px;
}
.eq-statline strong{ font-size: 13px; }

@media (max-width: 520px){
  .eq-modules-results{ grid-template-columns: 1fr; }
  .eq-chart-wrap{ padding: 10px 12px 6px; }
  .eq-module-stats{ padding: 10px 12px 14px; }
}
.eq-scpi-title{ font-weight: 900; }
.eq-scpi-rate{ font-size:12px; opacity:.8; }
.eq-scpi-sub{ font-size:12px; opacity:.75; margin-top:6px; line-height:1.35; }

/* --- Sélection immobilier (front) --- */
.eq-re-type{
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  cursor:pointer;
  font-weight:700;
  font-size:13px;
}
.eq-re-type--active{
  border-color: var(--eq-primary);
  box-shadow: 0 0 0 3px rgba(10,102,194,.12);
}
.eq-re-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap:12px;
}
.eq-re-card{
  text-align:left;
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
  border-radius:16px;
  padding:10px;
  cursor:pointer;
  box-shadow: 0 10px 26px rgba(0,0,0,.05);
}
.eq-re-card--active{
  border-color: var(--eq-primary);
  box-shadow: 0 0 0 3px rgba(10,102,194,.12), 0 10px 26px rgba(0,0,0,.05);
}
.eq-re-img{
  width:100%;
  height:120px;
  object-fit:cover;
  border-radius:12px;
  display:block;
  margin-bottom:10px;
}
.eq-re-name{
  font-weight:900;
  margin-bottom:6px;
}
.eq-re-meta{
  font-size:12px;
  opacity:.8;
  margin:2px 0;
}


/* --- Strong visual separation between modules --- */
.eq-card-fin { border-left: 6px solid var(--eq-primary); }
.eq-card-immo { border-left: 6px solid var(--eq-secondary, var(--eq-primary)); }
.eq-card-fin .eq-module-title,
.eq-card-immo .eq-module-title { margin: 0 0 10px; font-weight: 800; letter-spacing: .2px; }

.eq-inputs .eq-card + .eq-card { margin-top: 14px; }
.eq-card-fin { background: rgba(0,0,0,0.012); }
.eq-card-immo { background: rgba(0,0,0,0.012); }


/* Stronger module separation */
.eq-card-fin { border-left: 6px solid var(--eq-primary); }
.eq-card-immo { border-left: 6px solid #7c3aed; }
.eq-module-title { font-size: 18px; margin: 0 0 10px; }
.eq-card-fin .eq-module-title { color: var(--eq-primary); }
.eq-card-immo .eq-module-title { color: #7c3aed; }



/* v28: module-specific buttons + cleaner separation */
#eq-calc-fin, #eq-calc-immo{
  width: 100%;
  margin-top: 14px;
}
.eq-card-fin{ margin-top: 14px; }
.eq-card-immo{ margin-top: 18px; }


/* === v29: premium clean modules === */

.eq-card{background:#fff !important;}
.eq-module{background:transparent !important; border-left:none !important; padding-left:0 !important;}
.eq-card-fin, .eq-card-immo{border:1px solid rgba(0,0,0,.08) !important; box-shadow:0 12px 30px rgba(0,0,0,.06) !important;}
.eq-card-fin{border-top:4px solid rgba(122,0,60,.9) !important;}
.eq-card-immo{border-top:4px solid rgba(15,118,110,.9) !important;}
.eq-card h3{font-size:18px !important; margin:0 0 8px !important;}
.eq-divider{display:none !important;}
.eq-btn{border-radius:12px !important;}
/* real estate cards */
.eq-re-card{border-radius:14px !important; box-shadow:0 8px 18px rgba(0,0,0,.06) !important; border:1px solid rgba(0,0,0,.08) !important;}
.eq-re-card--active{outline:2px solid rgba(122,0,60,.8) !important;}


/* v31 whitespace & premium spacing */

.eq-grid{padding:18px 14px;}
.eq-grid .eq-col-left, .eq-grid .eq-col-right{padding:6px;}
.eq-card{background:#fff;}
.eq-grid .eq-card{margin:0 0 14px 0;}
@media(max-width:860px){
  .eq-grid{padding:14px 10px;}
}


/* v32: add outer breathing room (Divi fullwidth fix) */
.eq-wrapper{padding:22px 18px !important; box-sizing:border-box !important;}
.eq-grid{margin:0 auto !important;}
@media(max-width:520px){.eq-wrapper{padding:14px 10px !important;}}


/* v33 not centered: keep full column width, add breathing room */

/* Keep the module as wide as its container (Divi column), do NOT clamp to a max-width */
.eq-grid{max-width:none !important; width:100% !important; margin:0 !important;}
/* Add whitespace around the whole simulator without shrinking it */
.eq-wrapper{padding:24px !important;}
@media(max-width:860px){ .eq-wrapper{padding:14px !important;} }
/* Optional: ensure cards have internal spacing and don't touch container edges */
.eq-card{margin:0 0 16px 0;}


/* v34: outer whitespace around whole simulator without shrinking columns */

.eq-wrapper{padding:0 !important;}
.eq-grid{max-width:none !important; margin:24px !important; width:calc(100% - 48px) !important;}
@media(max-width:860px){
  .eq-grid{margin:14px !important; width:calc(100% - 28px) !important;}
}


/* v35: visible whitespace shell (robust vs Divi) */

.eq-wrapper{background:transparent !important; padding:24px !important; box-sizing:border-box;}
.eq-shell{background:#fff; border-radius:18px; padding:24px; box-shadow:0 10px 30px rgba(0,0,0,.06); border:1px solid rgba(0,0,0,.06);}
.eq-shell .eq-grid{margin:0 !important; width:100% !important; max-width:none !important;}
@media(max-width:860px){
  .eq-wrapper{padding:14px !important;}
  .eq-shell{padding:14px; border-radius:16px;}
}


/* v36: internal vertical rhythm (white space between functional blocks) */

/* Ensure cards in the left column breathe */
.eq-inputs .eq-card{margin-bottom:18px;}
/* Section titles inside modules (Répartition / Comparer / etc.) */
.eq-module-fin p, .eq-module-immo p{
  margin:22px 0 12px !important;
}
.eq-module-fin p strong, .eq-module-immo p strong{
  display:block;
  font-size:14px;
  letter-spacing:.01em;
}
/* Allocation lines: add air */
.eq-module-fin .eq-asset-input{margin-left:10px;}
/* The 'Total' bar: more spacing and softer */
#total-pct{font-variant-numeric:tabular-nums;}
.eq-module-fin div[style*="Total :"]{
  margin:16px 0 18px !important;
  border-radius:10px;
}
/* Compare labels */
.eq-module-fin label[style*="display:block"]{
  margin:8px 0 !important;
}
/* Button spacing */
#eq-calc-fin, #eq-calc-immo{
  margin-top:18px !important;
}
/* Strong separation between Financier and Immobilier blocks in inputs column */
.eq-card-fin{margin-bottom:26px !important;}


/* v37: force internal spacing (Divi override safe) */

/* Give modules breathing room */
.eq-card .eq-module{padding:18px 18px 16px !important;}
.eq-card .eq-module .eq-field{margin-bottom:16px !important;}
.eq-card .eq-module .eq-field label{display:block; margin-bottom:8px !important;}
/* Space before section headings like 'Répartition de l'apport' */
.eq-card .eq-module p{margin:26px 0 14px !important; padding:0 !important;}
.eq-card .eq-module p strong{display:block; margin-bottom:6px !important;}
/* Inline allocation rows: add vertical rhythm */
.eq-card .eq-module div[style*="margin-bottom:8px"]{margin-bottom:12px !important;}
/* Total bar spacing */
.eq-card .eq-module div[style*="Total :"], .eq-card .eq-module #total-pct{margin-top:14px !important;}
/* Compare checkboxes spacing */
.eq-card .eq-module label[style*="display:block"]{margin:10px 0 !important;}
/* Buttons */
#eq-calc-fin, #eq-calc-immo{margin-top:18px !important;}

/* SCPI choice pills */
.eq-scpi-choice{display:flex;gap:12px;margin-top:8px;flex-wrap:wrap}
.eq-radio{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #e5e7eb;border-radius:999px;background:#fff;cursor:pointer}
.eq-radio input{accent-color:var(--eq-primary);}


/* v44 grid fix: ensure results cards layout is applied */

.eq-modules-results{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap:16px;
}
@media(max-width:860px){
  .eq-modules-results{grid-template-columns: 1fr;}
}
.eq-module-card{
  background:#fff;
  border:1px solid rgba(0,0,0,0.08);
  border-radius:16px;
  box-shadow:0 12px 30px rgba(0,0,0,0.05);
  overflow:hidden;
}
