/* ==========================================================================
   Profilia - Texte des articles : paragraphes, intertitres, listes, images,
   citations, tableaux et blocs Profilia.
   Feuille partagée : sur le site elle s'applique à « .pf-art .pf-art-body » ;
   dans l'éditeur, pfl-article-edition.php remplace ce préfixe par
   « .editor-styles-wrapper ». Chaque sélecteur doit donc commencer par ce préfixe,
   et les couleurs sont écrites ici (pas de variable du thème).
   ========================================================================== */

.pf-art .pf-art-body {
  --a-teal: #062B31; --a-ink: #0D2B30; --a-ink-2: #3F5457; --a-sand: #F4F2EE; --a-mist: #E6ECEC;
  --a-soft: #DCF3F6; --a-dark: #087A88; --a-hover: #06636F; --a-light: #7FE3F0;
  --a-err: #B3261E; --a-err-soft: #FBEAE7; --a-line: rgba(13, 43, 48, .12);
  min-width: 0; font: 400 17.5px/1.75 Poppins, system-ui, sans-serif; color: var(--a-ink); overflow-wrap: break-word;
}
.pf-art .pf-art-body *, .pf-art .pf-art-body *::before, .pf-art .pf-art-body *::after { box-sizing: border-box; }

/* Texte courant */
.pf-art .pf-art-body p { margin: 0 0 18px; font: inherit; color: inherit; }
.pf-art .pf-art-body h2 { margin: 44px 0 14px; font: 600 30px/1.25 Poppins, system-ui, sans-serif; letter-spacing: -.025em; color: var(--a-ink); text-wrap: balance; scroll-margin-top: var(--pf-art-ancre, 96px); }
.pf-art .pf-art-body h3 { margin: 30px 0 10px; font: 600 21px/1.3 Poppins, system-ui, sans-serif; letter-spacing: -.01em; color: var(--a-ink); scroll-margin-top: var(--pf-art-ancre, 96px); }
.pf-art .pf-art-body h2:first-child, .pf-art .pf-art-body h3:first-child { margin-top: 0; }
.pf-art .pf-art-body h4, .pf-art .pf-art-body h5, .pf-art .pf-art-body h6 { margin: 26px 0 8px; font: 600 18px/1.35 Poppins, system-ui, sans-serif; color: var(--a-ink); }
.pf-art .pf-art-body a { color: var(--a-dark); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.pf-art .pf-art-body a:hover { color: var(--a-hover); }
.pf-art .pf-art-body strong, .pf-art .pf-art-body b { font-weight: 600; }
.pf-art .pf-art-body ul:not([class*="pf-b-"]), .pf-art .pf-art-body ol:not([class*="pf-b-"]) { margin: 0 0 18px; padding-left: 24px; }
.pf-art .pf-art-body ul:not([class*="pf-b-"]) { list-style: disc; }
.pf-art .pf-art-body ol:not([class*="pf-b-"]) { list-style: decimal; }
.pf-art .pf-art-body li { margin: 0; }
.pf-art .pf-art-body li + li { margin-top: 10px; }
.pf-art .pf-art-body li::marker { color: var(--a-dark); font-weight: 600; }
.pf-art .pf-art-body hr { height: 1px; margin: 36px 0; border: 0; background: var(--a-line); }

/* Images */
.pf-art .pf-art-body figure { margin: 36px 0; }
.pf-art .pf-art-body .wp-block-image img { display: block; width: 100%; max-width: 100%; height: auto; border-radius: 22px; background: var(--a-mist); }
.pf-art .pf-art-body figcaption { margin-top: 10px; font: 400 13px/1.5 Poppins, system-ui, sans-serif; color: var(--a-ink-2); text-align: left; }

/* Citation */
.pf-art .pf-art-body blockquote { margin: 36px 0; padding: 6px 0 6px 26px; border: 0; border-left: 4px solid var(--a-dark); background: none; quotes: none; }
.pf-art .pf-art-body blockquote p { margin: 0; font: 500 22px/1.5 Poppins, system-ui, sans-serif; letter-spacing: -.01em; color: var(--a-ink); }
.pf-art .pf-art-body blockquote p + p { margin-top: 12px; }
.pf-art .pf-art-body blockquote cite { display: block; margin-top: 10px; font: 400 14px/1.5 Poppins, system-ui, sans-serif; font-style: normal; color: var(--a-ink-2); }

/* Tableau */
.pf-art .pf-art-body .wp-block-table { margin: 28px 0; border: 1px solid var(--a-line); border-radius: 20px; overflow: auto; }
.pf-art .pf-art-body table { width: 100%; margin: 0; border: 0; border-collapse: collapse; font: 400 15px/1.5 Poppins, system-ui, sans-serif; background: #FFFFFF; }
.pf-art .pf-art-body table th, .pf-art .pf-art-body table td { padding: 14px 18px; border: 0; border-top: 1px solid rgba(13, 43, 48, .08); background: none; text-align: left; vertical-align: top; color: var(--a-ink); }
.pf-art .pf-art-body table thead { border: 0; }
.pf-art .pf-art-body table thead th { border-top: 0; background: var(--a-teal); color: #FFFFFF; font-weight: 600; }
.pf-art .pf-art-body table tbody tr:nth-child(even) > * { background: var(--a-sand); }
.pf-art .pf-art-body table tbody tr:nth-child(odd) > * { background: #FFFFFF; }
.pf-art .pf-art-body table tbody td:first-child { font-weight: 600; }
.pf-art .pf-art-body .wp-block-table figcaption { margin: 0; padding: 10px 18px; border-top: 1px solid rgba(13, 43, 48, .08); }

/* Bloc En bref */
.pf-art .pf-art-body .pf-b-brief { margin: 0 0 28px; padding: 24px 26px; border-radius: 22px; background: var(--a-sand); }
.pf-art .pf-art-body .pf-b-brief__t { margin: 0 0 12px; font: 600 15px/1.4 Poppins, system-ui, sans-serif; color: var(--a-ink); }
.pf-art .pf-art-body .pf-b-brief ul { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.pf-art .pf-art-body .pf-b-brief li { display: flex; gap: 12px; margin: 0; font: 400 15.5px/1.55 Poppins, system-ui, sans-serif; }
.pf-art .pf-art-body .pf-b-brief li::before { content: ""; flex: none; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; background: var(--a-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 12px no-repeat; }

/* Bloc Encadré */
.pf-art .pf-art-body .pf-b-callout { display: flex; gap: 14px; margin: 24px 0; padding: 18px 20px; border-radius: 18px; background: var(--a-soft); font: 400 15.5px/1.6 Poppins, system-ui, sans-serif; }
.pf-art .pf-art-body .pf-b-callout__i { flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--a-dark); color: #FFFFFF; font: 600 15px/30px Poppins, system-ui, sans-serif; text-align: center; }
.pf-art .pf-art-body .pf-b-callout > div { flex: 1; min-width: 0; padding-top: 2px; }
.pf-art .pf-art-body .pf-b-callout p { margin: 0; font: inherit; }
.pf-art .pf-art-body .pf-b-callout p + p { margin-top: 8px; }
.pf-art .pf-art-body .pf-b-callout__t { margin-bottom: 2px; }
.pf-art .pf-art-body .pf-b-callout.is-warning { background: var(--a-err-soft); }
.pf-art .pf-art-body .pf-b-callout.is-warning .pf-b-callout__i { background: var(--a-err); }
.pf-art .pf-art-body .pf-b-callout.is-warning a { color: #8F1D17; }

/* Bloc Étapes */
.pf-art .pf-art-body .pf-b-steps { margin: 24px 0; padding: 0; list-style: none; counter-reset: pf-etape; }
.pf-art .pf-art-body .pf-b-steps li { display: flex; gap: 18px; margin: 0; padding: 16px 0; border-top: 1px solid rgba(13, 43, 48, .1); counter-increment: pf-etape; }
.pf-art .pf-art-body .pf-b-steps li:first-child { border-top: 0; padding-top: 4px; }
.pf-art .pf-art-body .pf-b-steps li::before { content: counter(pf-etape); flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--a-teal); color: #FFFFFF; font: 600 15px/36px Poppins, system-ui, sans-serif; text-align: center; }
.pf-art .pf-art-body .pf-b-steps li > div { flex: 1; min-width: 0; padding-top: 4px; }
.pf-art .pf-art-body .pf-b-steps b { display: block; font: 600 17px/1.4 Poppins, system-ui, sans-serif; }
.pf-art .pf-art-body .pf-b-steps p { margin: 2px 0 0; font: 400 15.5px/1.6 Poppins, system-ui, sans-serif; color: var(--a-ink-2); }

/* Bloc Carte d'offres */
.pf-art .pf-art-body .pf-b-cta { position: relative; overflow: hidden; display: flex; align-items: center; gap: 20px; margin: 36px 0; padding: 24px 26px; border-radius: 22px; background: var(--a-teal); color: #FFFFFF; }
.pf-art .pf-art-body .pf-b-cta::before { content: ""; position: absolute; top: -70px; right: -60px; width: 180px; height: 180px; border: 32px solid rgba(15, 178, 198, .18); border-right-color: transparent; border-bottom-color: transparent; border-radius: 50%; pointer-events: none; }
.pf-art .pf-art-body .pf-b-cta > * { position: relative; }
.pf-art .pf-art-body .pf-b-cta p { flex: 1; min-width: 0; margin: 0; color: #FFFFFF; }
.pf-art .pf-art-body .pf-b-cta small { display: block; font: 600 12.5px/1.4 Poppins, system-ui, sans-serif; color: var(--a-light); }
.pf-art .pf-art-body .pf-b-cta b { display: block; margin-top: 4px; font: 600 20px/1.3 Poppins, system-ui, sans-serif; letter-spacing: -.01em; text-wrap: balance; }
.pf-art .pf-art-body .pf-b-cta a { display: flex; align-items: center; flex: none; min-height: 48px; padding: 0 18px; border-radius: 14px; background: #FFFFFF; color: var(--a-teal); font: 600 14.5px/1.2 Poppins, system-ui, sans-serif; text-decoration: none; white-space: nowrap; }
.pf-art .pf-art-body .pf-b-cta a:hover { background: var(--a-soft); color: var(--a-teal); }

/* Bloc Questions fréquentes */
.pf-art .pf-art-body .pf-b-faq { margin: 0 0 18px; }
.pf-art .pf-art-body .pf-b-faq details { margin: 0 0 10px; border: 1px solid var(--a-line); border-radius: 18px; background: #FFFFFF; overflow: hidden; }
.pf-art .pf-art-body .pf-b-faq summary { display: flex; align-items: center; gap: 14px; min-height: 60px; padding: 14px 20px; list-style: none; cursor: pointer; font: 600 16px/1.4 Poppins, system-ui, sans-serif; color: var(--a-ink); }
.pf-art .pf-art-body .pf-b-faq summary::-webkit-details-marker { display: none; }
.pf-art .pf-art-body .pf-b-faq summary::after { content: ""; flex: none; width: 8px; height: 8px; margin: 0 4px 4px auto; border-right: 2px solid var(--a-dark); border-bottom: 2px solid var(--a-dark); transform: rotate(45deg); }
.pf-art .pf-art-body .pf-b-faq details[open] summary::after { margin-bottom: -4px; transform: rotate(-135deg); }
.pf-art .pf-art-body .pf-b-faq summary:focus-visible { outline: 3px solid rgba(15, 178, 198, .55); outline-offset: -3px; border-radius: 18px; }
.pf-art .pf-art-body .pf-b-faq__r { padding: 0 20px 16px; }
.pf-art .pf-art-body .pf-b-faq__r p { margin: 0; font: 400 15.5px/1.6 Poppins, system-ui, sans-serif; color: var(--a-ink-2); }
.pf-art .pf-art-body .pf-b-faq__r p + p { margin-top: 8px; }

@media (max-width: 767px) {
  .pf-art .pf-art-body { font-size: 16.5px; line-height: 1.7; }
  .pf-art .pf-art-body h2 { margin-top: 30px; font-size: 23px; }
  .pf-art .pf-art-body h3 { margin-top: 24px; font-size: 19px; }
  .pf-art .pf-art-body figure { margin: 26px 0; }
  .pf-art .pf-art-body .wp-block-image img { border-radius: 18px; }
  .pf-art .pf-art-body blockquote { margin: 28px 0; padding-left: 20px; }
  .pf-art .pf-art-body blockquote p { font-size: 19px; }
  .pf-art .pf-art-body .pf-b-brief { padding: 18px; border-radius: 18px; }
  .pf-art .pf-art-body .pf-b-cta { flex-direction: column; align-items: stretch; gap: 16px; margin: 28px 0; padding: 20px 18px; }
  .pf-art .pf-art-body .pf-b-cta a { justify-content: center; white-space: normal; text-align: center; }
  .pf-art .pf-art-body .pf-b-faq summary { padding: 12px 16px; font-size: 15.5px; }
  .pf-art .pf-art-body .pf-b-faq__r { padding: 0 16px 14px; }

  /* Tableau avec en-tête : une carte par ligne, le nom de la colonne devant chaque valeur */
  .pf-art .pf-art-body .wp-block-table:has(table[data-cartes]) { border: 0; border-radius: 0; overflow: visible; }
  .pf-art .pf-art-body table[data-cartes], .pf-art .pf-art-body table[data-cartes] tbody { display: block; background: none; }
  .pf-art .pf-art-body table[data-cartes] thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .pf-art .pf-art-body table[data-cartes] tbody { display: flex; flex-direction: column; gap: 8px; }
  .pf-art .pf-art-body table[data-cartes] tr { display: block; padding: 12px 14px; border: 1px solid var(--a-line); border-radius: 14px; background: #FFFFFF; }
  .pf-art .pf-art-body table[data-cartes] tbody tr > * { display: block; padding: 0; border: 0; background: none; font-weight: 400; }
  .pf-art .pf-art-body table[data-cartes] tbody tr > * + * { margin-top: 6px; }
  .pf-art .pf-art-body table[data-cartes] tbody tr > :first-child { font: 600 16px/1.4 Poppins, system-ui, sans-serif; }
  .pf-art .pf-art-body table[data-cartes] tbody tr > [data-label]:not(:first-child)::before { content: attr(data-label) " : "; font-weight: 600; color: var(--a-ink-2); }
}

@media print {
  .pf-art .pf-art-body { font-size: 11.5pt; line-height: 1.55; }
  .pf-art .pf-art-body .pf-b-cta { display: none; }
  .pf-art .pf-art-body .pf-b-faq details > * { display: block; }
  .pf-art .pf-art-body a { color: inherit; }
}
