/* ===================================================================
   Leasing Social — Volt · composants éditoriaux .bl-*
   Re-skin du langage Boussole en peau Volt. Classes IDENTIQUES à
   Boussole pour rester compatible avec le skill leasing-social-article.
   Stylé défensivement : classes BEM (__num, __label, __item...) ET
   enfants génériques (strong, p, ul, li, h4), pour fonctionner quelle
   que soit la structure HTML interne exacte du composant.
   =================================================================== */

/* ---------- contenu d'article + drop cap ---------- */
.bl-article-content{font-size:1.07rem;color:var(--ink-2);line-height:1.72}
.bl-article-content > p,
.bl-article-content > ul,
.bl-article-content > ol{margin:0 0 1.25rem}
.bl-article-content h2{font-size:clamp(1.5rem,2.8vw,2rem);margin:2.4rem 0 1rem;line-height:1.15}
.bl-article-content h3{font-size:1.3rem;margin:1.8rem 0 .7rem}
.bl-article-content a{color:var(--brand-deep);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1.5px;font-weight:600}
.bl-article-content a:hover{color:var(--brand)}
.bl-article-content ul,.bl-article-content ol{padding-left:1.3rem}
.bl-article-content li{margin:.35rem 0}
.bl-article-content img{border-radius:var(--r);margin:1.4rem 0;box-shadow:var(--sh-sm)}
.bl-article-content strong{color:var(--ink);font-weight:700}
.bl-article-content > p:first-of-type::first-letter{
  font-family:var(--fd);font-weight:700;font-size:3.4rem;line-height:.8;
  float:left;margin:.18em .12em 0 0;color:var(--brand-deep)}
.bl-article-content blockquote{margin:1.6rem 0}

/* tous les blocs respirent */
.bl-keyfact,.bl-callout,.bl-pullquote,.bl-table,.bl-step-list,.bl-etapes,
.bl-timeline,.bl-stat-grid,.bl-stat-inline,.bl-compare,.bl-verdict,
.bl-summary,.bl-eligibility-check,.bl-cta-inline,.bl-cta-awin,.bl-faq{margin:2rem 0}

/* ---------- key-fact ---------- */
.bl-keyfact{display:flex;flex-direction:column;gap:.2rem;background:var(--surface);
  border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--r);
  padding:1.2rem 1.4rem;box-shadow:var(--sh-sm)}
.bl-keyfact__num,.bl-keyfact > strong:first-child,.bl-keyfact > b:first-child{
  font-family:var(--fd);font-weight:700;font-size:2.1rem;color:var(--brand-deep);line-height:1}
.bl-keyfact__label,.bl-keyfact > span:last-child,.bl-keyfact p{
  font-size:.92rem;color:var(--muted);font-weight:600;margin:0}

/* ---------- callouts ---------- */
.bl-callout{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--brand);
  border-radius:var(--r);padding:1.1rem 1.3rem;box-shadow:var(--sh-sm)}
.bl-callout > strong:first-child,.bl-callout__title{display:block;font-family:var(--fd);font-weight:600;
  font-size:1rem;margin-bottom:.3rem;color:var(--brand-deep)}
.bl-callout p{margin:0;color:var(--ink-2);font-size:.97rem}
.bl-callout p + p{margin-top:.6rem}
.bl-callout--info{border-left-color:var(--brand);background:rgba(0,196,106,.05)}
.bl-callout--info > strong:first-child,.bl-callout--info .bl-callout__title{color:var(--brand-deep)}
.bl-callout--warning{border-left-color:var(--gold);background:rgba(242,183,5,.08)}
.bl-callout--warning > strong:first-child,.bl-callout--warning .bl-callout__title{color:#9a7600}
.bl-callout--success{border-left-color:var(--positive);background:rgba(16,169,104,.06)}
.bl-callout--success > strong:first-child,.bl-callout--success .bl-callout__title{color:var(--positive)}
.bl-callout--tip{border-left-color:#0fb5b0;background:rgba(15,181,176,.07)}
.bl-callout--tip > strong:first-child,.bl-callout--tip .bl-callout__title{color:#0a8c88}

/* ---------- pull quote ---------- */
.bl-pullquote{border:none;text-align:center;padding:1.6rem 2rem;position:relative}
.bl-pullquote::before{content:"\201C";font-family:var(--fd);font-size:4rem;color:var(--lime);
  line-height:0;display:block;margin-bottom:.4rem}
.bl-pullquote p{font-family:var(--fd);font-weight:500;font-size:1.45rem;line-height:1.3;color:var(--ink);margin:0}
.bl-pullquote cite{display:block;margin-top:.7rem;font-size:.9rem;color:var(--faint);font-style:normal;font-weight:600}

/* ---------- tableau institutionnel ---------- */
.bl-table{overflow-x:auto;border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--sh-sm)}
.bl-table table{width:100%;border-collapse:collapse;min-width:480px}
.bl-table th,.bl-table td{padding:.9rem 1.1rem;text-align:left;font-size:.94rem;border-bottom:1px solid var(--line)}
.bl-table thead th{font-family:var(--fd);font-weight:600;background:var(--ink);color:#eafaf2}
.bl-table tbody tr:nth-child(even){background:var(--bg)}
.bl-table tbody tr:last-child td{border-bottom:none}
.bl-table td:first-child{font-weight:700;color:var(--ink-2)}

/* ---------- step list (numérotée) ---------- */
.bl-step-list{list-style:none;counter-reset:bl-step;padding:0;display:grid;gap:.7rem}
.bl-step-list li{counter-increment:bl-step;position:relative;padding:.9rem 1rem .9rem 3.4rem;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);font-weight:500;color:var(--ink-2)}
.bl-step-list li::before{content:counter(bl-step);position:absolute;left:.9rem;top:50%;transform:translateY(-50%);
  width:30px;height:30px;border-radius:9px;background:var(--lime-soft);color:var(--brand-deep);
  font-family:var(--fd);font-weight:700;display:grid;place-items:center;font-size:.95rem}

/* ---------- étapes en cartes ---------- */
.bl-etapes{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.bl-etape{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.2rem;box-shadow:var(--sh-sm)}
.bl-etape__n,.bl-etape > span:first-child{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;
  background:var(--lime-soft);color:var(--brand-deep);font-family:var(--fd);font-weight:700;margin-bottom:.7rem}
.bl-etape h4{font-size:1.05rem;margin-bottom:.3rem}
.bl-etape p{font-size:.88rem;color:var(--muted);margin:0}

/* ---------- timeline ---------- */
.bl-timeline{position:relative;padding-left:1.6rem;display:grid;gap:1.3rem}
.bl-timeline::before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background:var(--line-strong)}
.bl-timeline__item{position:relative}
.bl-timeline__item::before{content:"";position:absolute;left:-1.6rem;top:5px;width:14px;height:14px;border-radius:50%;
  background:var(--brand);border:3px solid var(--bg);box-shadow:0 0 0 2px var(--brand)}
.bl-timeline__date,.bl-timeline__item > strong:first-child{display:block;font-family:var(--fd);font-weight:600;color:var(--brand-deep);font-size:.95rem;margin-bottom:.2rem}
.bl-timeline__item p{margin:0;color:var(--muted);font-size:.95rem}

/* ---------- stat grid ---------- */
.bl-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.bl-stat,.bl-stat-grid > div{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:1.2rem;text-align:center;box-shadow:var(--sh-sm)}
.bl-stat b,.bl-stat-grid > div b{font-family:var(--fd);font-weight:700;font-size:1.8rem;color:var(--brand-deep);display:block;line-height:1}
.bl-stat span,.bl-stat-grid > div span{font-size:.82rem;color:var(--muted);font-weight:600}

/* ---------- stat inline ---------- */
.bl-stat-inline{display:flex;flex-wrap:wrap;gap:0;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-sm)}
.bl-stat-inline > div{flex:1;min-width:120px;padding:1.1rem;text-align:center;border-right:1px solid var(--line)}
.bl-stat-inline > div:last-child{border-right:none}
.bl-stat-inline b{font-family:var(--fd);font-weight:700;font-size:1.4rem;color:var(--brand-deep);display:block;line-height:1}
.bl-stat-inline span{font-size:.78rem;color:var(--muted);font-weight:600}

/* ---------- compare 3 cards ---------- */
.bl-compare{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-left:0}
.bl-compare__col{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:1.4rem;box-shadow:var(--sh-sm);position:relative;display:flex;flex-direction:column}
.bl-compare__col--best{border:2px solid var(--brand);box-shadow:var(--sh-md)}
.bl-compare__badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--brand);
  color:#03301d;font-weight:700;font-size:.72rem;padding:.3rem .8rem;border-radius:var(--r-pill);white-space:nowrap}
.bl-compare__col h4{font-size:1.15rem;margin:.3rem 0 .4rem}
.bl-compare__price{font-family:var(--fd);font-weight:700;font-size:1.4rem;color:var(--brand-deep);margin:0 0 .8rem}
.bl-compare__col ul{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}
.bl-compare__col li{position:relative;padding-left:1.5rem;font-size:.9rem;color:var(--ink-2)}
.bl-compare__col li::before{content:"";position:absolute;left:0;top:.5em;width:7px;height:7px;border-radius:50%;background:var(--brand)}

/* ---------- verdict ---------- */
.bl-verdict{background:linear-gradient(135deg,var(--lime-soft),#fff);border:1px solid var(--line-strong);
  border-radius:var(--r-xl);padding:1.6rem 1.8rem;box-shadow:var(--sh-sm)}
.bl-verdict__head{display:flex;align-items:center;gap:1rem;margin-bottom:.8rem}
.bl-verdict__score{flex:none;width:58px;height:58px;border-radius:16px;background:var(--brand);color:#03301d;
  font-family:var(--fd);font-weight:700;font-size:1.5rem;display:grid;place-items:center;box-shadow:var(--sh-brand)}
.bl-verdict__stars{color:var(--gold);font-size:1.05rem;letter-spacing:2px;display:block}
.bl-verdict__head strong{font-family:var(--fd);font-weight:600;color:var(--ink)}
.bl-verdict p{margin:0;color:var(--ink-2);font-size:.98rem}

/* ---------- summary ---------- */
.bl-summary{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.4rem 1.6rem}
.bl-summary > strong:first-child,.bl-summary__title{display:block;font-family:var(--fd);font-weight:600;
  font-size:1.1rem;margin-bottom:.7rem;color:var(--ink)}
.bl-summary ul{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.bl-summary li{position:relative;padding-left:1.7rem;color:var(--ink-2);font-size:.96rem}
.bl-summary li::before{content:"";position:absolute;left:0;top:.15em;width:18px;height:18px;border-radius:50%;
  background:var(--lime-soft);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23048049' stroke-width='3'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  background-size:12px;background-repeat:no-repeat;background-position:center}

/* ---------- eligibility checklist (signature) ---------- */
.bl-eligibility-check{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--brand);
  border-radius:var(--r-lg);padding:1.5rem 1.7rem;box-shadow:var(--sh-sm)}
.bl-eligibility-check > strong:first-child,.bl-eligibility-check__title{display:block;font-family:var(--fd);
  font-weight:600;font-size:1.15rem;margin-bottom:.9rem;color:var(--ink)}
.bl-eligibility-check ul{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.bl-eligibility-check li{position:relative;padding-left:2rem;color:var(--ink-2);font-size:.97rem;font-weight:500}
.bl-eligibility-check li::before{content:"";position:absolute;left:0;top:0;width:22px;height:22px;border-radius:7px;
  background:var(--lime-soft);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23048049' stroke-width='3'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  background-size:14px;background-repeat:no-repeat;background-position:center}

/* ---------- CTA simulateur (interne) ---------- */
.bl-cta-inline{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap;background:var(--lime-soft);
  border:1px solid var(--line-strong);border-radius:var(--r-lg);padding:1.3rem 1.5rem}
.bl-cta-inline__ic{flex:none;width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,var(--lime),var(--brand));
  display:grid;place-items:center;box-shadow:var(--sh-brand)}
.bl-cta-inline__ic svg{width:23px;height:23px;color:#06301c}
.bl-cta-inline__txt{flex:1;min-width:180px}
.bl-cta-inline__txt strong{display:block;font-family:var(--fd);font-weight:600;font-size:1.08rem;color:var(--ink)}
.bl-cta-inline__txt p{margin:.2rem 0 0;font-size:.9rem;color:var(--brand-ink)}
.bl-cta-inline .btn{flex:none}

/* ---------- CTA assurance (Awin, monétisation) ---------- */
.bl-cta-awin{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap;
  background:linear-gradient(135deg,var(--ink),var(--ink-2));border-radius:var(--r-lg);
  padding:1.5rem 1.7rem;position:relative;overflow:hidden}
.bl-cta-awin::before{content:"";position:absolute;inset:0;
  background:radial-gradient(360px 200px at 88% 20%,rgba(0,196,106,.32),transparent 60%),
  radial-gradient(280px 180px at 6% 100%,rgba(194,242,61,.16),transparent 60%)}
.bl-cta-awin > *{position:relative}
.bl-cta-awin__ic{flex:none;width:46px;height:46px;border-radius:12px;background:rgba(194,242,61,.16);
  display:grid;place-items:center}
.bl-cta-awin__ic svg{width:24px;height:24px;color:var(--lime)}
.bl-cta-awin__txt{flex:1;min-width:200px}
.bl-cta-awin__txt strong{display:block;font-family:var(--fd);font-weight:600;font-size:1.12rem;color:#fff}
.bl-cta-awin__txt p{margin:.2rem 0 0;font-size:.9rem;color:#bfe7d3}
.bl-cta-awin .btn{flex:none;background:var(--lime);color:#06301c}
.bl-cta-awin .btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(194,242,61,.4)}

/* ---------- FAQ éditoriale (accordéon) ---------- */
.bl-faq{display:grid;gap:.7rem;max-width:none}
.bl-faq__item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:.2s}
.bl-faq__item.open{border-color:var(--brand);box-shadow:var(--sh-sm)}
.bl-faq__q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left;
  background:none;border:none;padding:1.05rem 1.2rem;font-family:var(--fd);font-weight:600;font-size:1.02rem;
  color:var(--ink);cursor:pointer}
.bl-faq__plus{flex:none;width:26px;height:26px;border-radius:8px;background:var(--lime-soft);color:var(--brand-deep);
  display:grid;place-items:center;transition:.25s;font-weight:700}
.bl-faq__item.open .bl-faq__plus{background:var(--brand);color:#fff;transform:rotate(45deg)}
.bl-faq__a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.bl-faq__a p{padding:0 1.2rem 1.1rem;margin:0;color:var(--muted);font-size:.95rem}

@media (max-width:760px){
  .bl-etapes,.bl-stat-grid{grid-template-columns:repeat(2,1fr)}
  .bl-compare{grid-template-columns:1fr}
}
