/* Styles du contenu (articles et pages) et des blocs COM'AFRIK.
   Chargé sur le site et dans l'éditeur WordPress. */
:root{
  --bg:#FBF8FF; --surface:#FFFFFF; --ink:#1B1530; --muted:#5E5674; --line:#E6DFF2;
  --fuchsia:#D4006F; --saffron:#F5A300; --emerald:#00936B; --indigo:#3B1FA8;
  --on-accent:#FFFFFF; --on-saffron:#1B1530;
  --display:"Unbounded","Arial Black",system-ui,sans-serif;
  --body:"Figtree","Segoe UI",system-ui,sans-serif;
}
@media (prefers-color-scheme: dark){:root{
  --bg:#120E22; --surface:#1C1633; --ink:#F4EFFF; --muted:#B4AACB; --line:#2E2650;
  --fuchsia:#FF3D9A; --saffron:#FFB82E; --emerald:#2BD39F; --indigo:#8E7BFF; --on-accent:#120E22}}

/* Texte courant */
.entry-content{font-size:clamp(17px,1.4vw,19px);line-height:1.75}
.entry-content > *{margin-block:0 1.15em}
.entry-content h2,.entry-content h3{font-family:var(--display);letter-spacing:-.02em;line-height:1.15;margin-top:1.6em}
.entry-content h2{font-size:clamp(24px,3vw,34px)}
.entry-content h3{font-size:clamp(19px,2vw,23px)}
.entry-content a{color:var(--fuchsia);text-underline-offset:3px}
.entry-content strong{color:var(--fuchsia)}
.single .entry-content > p:first-child::first-letter{font-family:var(--display);font-weight:900;font-size:3.4em;float:left;line-height:.9;margin:6px 10px 0 0;color:var(--fuchsia)}
.entry-content figure{margin-inline:0}
.entry-content img{border-radius:20px}
.entry-content figcaption{color:var(--muted);font-size:14px;text-align:center;margin-top:8px}
.entry-content blockquote,.wp-block-quote{margin:1.6em 0;padding:18px 22px;border:0;border-radius:18px;background:color-mix(in srgb,var(--saffron) 18%,var(--surface));font-family:var(--display);font-weight:700;font-size:1.05em;line-height:1.4}
.wp-block-quote p{margin:0}
.wp-block-quote cite{display:block;margin-top:10px;font-family:var(--body);font-weight:500;font-size:14px;color:var(--muted);font-style:normal}
.entry-content ol{padding-left:0;list-style:none;counter-reset:s;display:grid;gap:12px}
.entry-content ol > li{counter-increment:s;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 18px}
.entry-content ol > li::before{content:counter(s);font-family:var(--display);font-weight:900;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--emerald);color:var(--on-accent);font-size:15px}
.entry-content ul{padding-left:1.2em}
.entry-content ul li::marker{color:var(--fuchsia)}
.wp-block-separator{border:0;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--fuchsia) 0 30%,var(--saffron) 30% 55%,var(--emerald) 55% 78%,var(--indigo) 78%);max-width:200px;margin-block:2em}
.wp-block-gallery img{border-radius:16px}
.wp-block-embed iframe{max-width:100%;border-radius:18px}

/* Boutons */
.wp-block-button__link{background:var(--fuchsia);color:var(--on-accent)!important;border-radius:999px;padding:14px 22px;font-weight:700;text-decoration:none;transition:transform .25s}
.wp-block-button__link:hover{transform:translateY(-3px)}
.is-style-outline .wp-block-button__link{background:transparent;color:var(--ink)!important;border:2px solid var(--ink)}
.wp-block-buttons{gap:12px}

/* Colonnes */
.entry-content .wp-block-columns{gap:20px;margin-bottom:1.6em}
.ca-steps .wp-block-column:nth-child(4n+1),.ca-audience .wp-block-column:nth-child(4n+1),.ca-roles .wp-block-column:nth-child(4n+1),.ca-facts .wp-block-column:nth-child(4n+1){--c:var(--fuchsia)}
.ca-steps .wp-block-column:nth-child(4n+2),.ca-audience .wp-block-column:nth-child(4n+2),.ca-roles .wp-block-column:nth-child(4n+2),.ca-facts .wp-block-column:nth-child(4n+2){--c:var(--saffron)}
.ca-steps .wp-block-column:nth-child(4n+3),.ca-audience .wp-block-column:nth-child(4n+3),.ca-roles .wp-block-column:nth-child(4n+3),.ca-facts .wp-block-column:nth-child(4n+3){--c:var(--emerald)}
.ca-steps .wp-block-column:nth-child(4n+4),.ca-audience .wp-block-column:nth-child(4n+4),.ca-roles .wp-block-column:nth-child(4n+4),.ca-facts .wp-block-column:nth-child(4n+4){--c:var(--indigo)}
.ca-audience .wp-block-column:nth-child(2){--c:var(--indigo)}

/* Citation forte */
.ca-statement{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:clamp(24px,4vw,44px) clamp(24px,4vw,44px) clamp(24px,4vw,44px) clamp(70px,9vw,120px)}
.ca-statement::before{content:"“";position:absolute;left:clamp(18px,3vw,34px);top:clamp(10px,2vw,22px);font-family:var(--display);font-weight:900;font-size:clamp(70px,9vw,120px);line-height:1;color:var(--saffron)}
.ca-statement p{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(19px,2.3vw,28px);line-height:1.35;letter-spacing:-.01em}

/* Étapes */
.ca-steps .wp-block-column{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:24px;transition:transform .3s}
.ca-steps .wp-block-column:hover{transform:translateY(-4px)}
.ca-steps .wp-block-column > *{margin:0 0 8px}
.ca-steps h3{font-size:18px;margin-top:0}
.ca-steps p{font-size:15.5px;color:var(--muted)}
.ca-steps p.ca-when{font-family:var(--display);font-weight:900;font-size:22px;color:var(--c)}

/* Piliers */
.ca-pillars .wp-block-column{border-radius:26px;padding:clamp(24px,3.5vw,40px);color:var(--on-accent);background:var(--indigo);transition:transform .35s}
.ca-pillars .wp-block-column:nth-child(2){background:var(--emerald)}
.ca-pillars .wp-block-column:nth-child(3){background:var(--fuchsia)}
.ca-pillars .wp-block-column:hover{transform:translateY(-4px) rotate(.4deg)}
.ca-pillars .wp-block-column > *{margin:0 0 12px;color:inherit}
.ca-pillars h3{margin-top:0}
.ca-pillars p.ca-num{font-family:var(--display);font-weight:900;font-size:56px;line-height:1;opacity:.9}

/* Publics */
.ca-audience .wp-block-column{border:2px solid var(--c);border-radius:24px;padding:clamp(22px,3vw,34px);position:relative;overflow:hidden}
.ca-audience .wp-block-column::after{content:"";position:absolute;right:-40px;bottom:-40px;width:140px;height:140px;border-radius:50%;background:var(--c);opacity:.12;transition:transform .5s}
.ca-audience .wp-block-column:hover::after{transform:scale(1.8)}
.ca-audience .wp-block-column > *{margin:0 0 10px}
.ca-audience h3{color:var(--c);margin-top:0}
.ca-audience p{color:var(--muted)}
.ca-audience p.ca-label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--c)}

/* Chiffres clés */
.ca-facts .wp-block-column{background:var(--c);color:var(--on-accent);border-radius:22px;padding:22px}
.ca-facts .wp-block-column:nth-child(4n+2){color:var(--on-saffron)}
.ca-facts .wp-block-column > *{margin:0 0 6px;color:inherit}
.ca-facts p.ca-big{font-family:var(--display);font-weight:900;font-size:clamp(28px,3.4vw,40px);line-height:1}
.ca-facts p{font-size:15px}

/* Casquettes */
.ca-roles .wp-block-column{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:24px 24px 24px 84px;position:relative}
.ca-roles .wp-block-column::before{content:"";position:absolute;left:26px;top:28px;width:34px;height:34px;border-radius:9px;background:var(--c);transform:rotate(45deg);transition:transform .4s}
.ca-roles .wp-block-column:hover::before{transform:rotate(225deg)}
.ca-roles .wp-block-column > *{margin:0 0 6px}
.ca-roles h3{font-size:18px;margin-top:0}
.ca-roles p{color:var(--muted);font-size:15.5px}

/* Encadré contact */
.ca-contact{background:var(--ink);color:var(--bg);border-radius:28px;padding:clamp(24px,4vw,44px)}
.ca-contact > *{margin:0 0 8px;color:inherit}
.ca-contact h2{margin-top:0}
.ca-contact a{color:var(--saffron)!important}
.ca-contact strong{color:var(--saffron)}
.page-content > p{max-width:72ch}

/* Images dans les articles et les pages : toujours entières, jamais plus larges que le texte.
   Même si une image est redimensionnée ou recadrée dans l'éditeur, elle garde ses proportions. */
.entry-content figure,.entry-content .wp-block-image,.entry-content .wp-block-gallery,.entry-content .wp-block-media-text,.entry-content .wp-block-cover{max-width:100%}
.entry-content img,.entry-content .wp-block-image img,.entry-content .wp-block-gallery img{max-width:100%!important;height:auto!important;max-height:85vh;object-fit:contain!important}
/* Recadrage choisi dans l'éditeur (ratio imposé) : annulé, l'image reste entière */
.entry-content img[style*="aspect-ratio"]{aspect-ratio:auto!important}
.entry-content .wp-block-image{display:block;text-align:center}
.entry-content .wp-block-image img{display:inline-block}
.entry-content .alignwide,.entry-content .alignfull{width:100%;max-width:100%;margin-inline:0}
.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image{align-self:center}
.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image img{width:100%}
.entry-content video,.entry-content iframe{max-width:100%}
.entry-content table{display:block;overflow-x:auto;max-width:100%}
@media (max-width:600px){
  .entry-content .alignleft,.entry-content .alignright{float:none;margin-inline:auto;max-width:100%}
}

/* Page L'auteur : portrait et présentation */
.ca-author-hero{align-items:center!important;background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:clamp(20px,3.5vw,40px)}
.ca-author-hero > .wp-block-column:first-child{flex:0 0 min(320px,100%)!important}
.ca-author-hero > .wp-block-column > *{margin:0 0 12px}
.ca-portrait{margin:0!important;padding:8px;border-radius:50%;background:conic-gradient(var(--fuchsia),var(--saffron),var(--emerald),var(--indigo),var(--fuchsia));animation:ca-spin 14s linear infinite;max-width:320px;margin-inline:auto!important}
.entry-content .ca-portrait.wp-block-image img{display:block;width:100%;aspect-ratio:1/1!important;object-fit:cover!important;border-radius:50%!important;animation:ca-spin 14s linear infinite reverse}
@keyframes ca-spin{to{transform:rotate(360deg)}}
.ca-author-hero p.ca-intro{font-size:clamp(18px,1.7vw,21px);line-height:1.6}
.ca-author-hero p.ca-label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--fuchsia)}
.ca-roles .wp-block-column p.ca-sub{font-size:13px;font-weight:700;color:var(--c)}
@media (prefers-reduced-motion: reduce){.ca-portrait,.ca-portrait img{animation:none}}
@media (max-width:781px){
  .entry-content .wp-block-columns.ca-facts{flex-wrap:wrap!important;gap:12px}
  .entry-content .wp-block-columns.ca-facts > .wp-block-column{flex-basis:calc(50% - 6px)!important;flex-grow:0;padding:18px}
}
