/* ═══════════════════════════════════════════════════════════
   STYLE CLASSIQUE — Typographie soignée
═══════════════════════════════════════════════════════════ */
.cms-content {
  font-size: 16px;
  line-height: 1.4;
  color: #2D3836;
  font-feature-settings: "kern" 1, "liga" 1;
}



/* Titres */
.cms-content h2 {
  font-size: 22px !important;
  font-weight: 700;
  color: #0B3D2E;
  margin: 36px 0 14px;
  padding: 8px 14px;
  letter-spacing: -.02em;
  border-left: 4px solid #008774;
  background: #F8FAF9;
  border-radius: 0 6px 6px 0;
  text-transform: uppercase;
}
.cms-content h3 {
  font-size: 15px;
  font-weight: 700;
  color: #0B3D2E;
  margin: 28px 0 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 80Px;
  text-transform: uppercase;
}
.cms-content h3::before {
  content: '';
  display: inline-block;
  width: 4px;
  height: 1em;
  background: #E8871E;
  border-radius: 2px;
  flex-shrink: 0;
}
.cms-content h4 {
  font-size: 15.5px;
  font-weight: 700;
  color: #1A2620;
  margin: 22px 0 8px;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 13px;
  color: #5A6560;
}
.cms-content p { margin-bottom: 18px; text-align: justify; }
.cms-content ul, .cms-content ol {
  margin: 14px 0 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.cms-content li { line-height: 1.7; }
.cms-content ul li::marker { color: #008774; }
.cms-content blockquote {
  border-left: 5px solid #008774;
  padding: 18px 22px;
  background: linear-gradient(135deg,#F0FDF9,#E8F5F1);
  border-radius: 0 12px 12px 0;
  margin: 24px 0;
  font-style: italic;
  color: #0B3D2E;
  font-size: 17px;
  line-height: 1.7;
}
.cms-content blockquote::before {
  content: '"';
  font-size: 48px;
  color: #C8E6E0;
  line-height: .4;
  display: block;
  margin-bottom: 8px;
  font-weight: 700;
}
.cms-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 24px 0;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 0 0 1px #E4EBE7;
}
.cms-content th {
  background: #0B3D2E;
  color: #fff;
  padding: 13px 18px;
  text-align: left;
  font-size: 13.5px;
  font-weight: 600;
}
.cms-content td {
  padding: 12px 18px;
  border-bottom: 1px solid #F0F4F2;
  font-size: 14.5px;
}
.cms-content tr:last-child td { border-bottom: none; }
.cms-content tr:hover td { background: #F8FAF9; }
.cms-content img {
  max-width: 100%;
  border-radius: 12px;
  margin: 20px 0;
  display: block;
}
.cms-content a { color: #008774; text-underline-offset: 3px; }
.cms-content a:hover { color: #0B3D2E; }
.cms-content hr {
  border: none;
  border-top: 2px solid #E4EBE7;
  margin: 36px 0;
}
.cms-content figure { margin: 24px 0; }
.cms-content figcaption {
  font-size: 12.5px;
  color: #7A8A82;
  text-align: center;
  margin-top: 8px;
  font-style: italic;
}
.cms-content code {
  background: #F0F4F2;
  padding: 2px 7px;
  border-radius: 5px;
  font-size: 13.5px;
  font-family: 'Fira Code', monospace;
}
.cms-content pre {
  background: #1A2620;
  color: #CDE7DF;
  padding: 18px 22px;
  border-radius: 12px;
  overflow-x: auto;
  font-size: 13px;
  line-height: 1.6;
}

/* ─── Blocs builder ─── */
.cms-content .grid  { display: grid; gap: 20px; }
.cms-content .g2    { grid-template-columns: 1fr 1fr; }
.cms-content .g3    { grid-template-columns: repeat(3,1fr); }
.cms-content .g4    { grid-template-columns: repeat(4,1fr); }
.cms-content .card  { background:#fff;border:1px solid #EAE5DB;border-radius:16px;padding:12px; height: 270px; display: flex; justify-content: center; align-items: center; flex-direction: column;}
.cms-content .ico   { display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:linear-gradient(145deg,#E8F5F1,#D6EDE6);color:#008774;margin-bottom:14px;font-size:24px; }
.cms-content .kicker{ color:#E8871E;font-weight:600;letter-spacing:.09em;text-transform:uppercase;font-size:13px; }
.cms-content .cta   { display:grid;grid-template-columns:1.3fr .7fr;gap:32px;align-items:center; }
.cms-content .doc   { display:flex;align-items:center;gap:14px;padding:15px 18px;border-bottom:1px solid #F0ECE2;color:#2B2F33;text-decoration:none; }
.cms-content .doc:hover { background:#FAF8F3; }
.cms-content .doc:last-child { border-bottom:none; }
.cms-content .di    { display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:10px;background:#E8F5F1;color:#008774;flex-shrink:0; }

