@charset "UTF-8";
/* ==========================================================================
   ASCENT CAPITAL — PAGE ARTICLE (modèle Single Post, Elementor Pro)
   --------------------------------------------------------------------------
   Habille les widgets : Fil d'Ariane, Titre, Contenu, Image mise en avant,
   Table des matières, Suivi de progression, Galerie, Boutons de partage,
   Navigation d'articles, Loop Grid.

   Classes préfixées .aca- : aucune collision avec .ac- (Expertises) ni
   .acn- (Actualités).

   DÉPENDANCE : les articles liés réutilisent le modèle « Ascent — Carte
   actualité » de la page Actualités. Chargez donc aussi
   ascent-actualites-elementor.css sur les articles (voir la notice).
   --------------------------------------------------------------------------
   SOMMAIRE
     1.  Charte et socle
     2.  Barre de progression de lecture
     3.  Fil d'Ariane
     4.  En-tête d'article
     5.  Sommaire collant
     6.  Corps de l'article (widget Contenu)
     7.  Galerie
     8.  Partage, encart, navigation, articles liés
     9.  Responsive
   ========================================================================== */

/* ==========================================================================
   1. CHARTE ET SOCLE
   ========================================================================== */
:root{
  --navy:#3C2A70;
  --navy-800:#1b2a63;
  --navy-600:#2b3d80;
  --gold:#7E70DF;
  --gold-light:#BFB2F8;
  --ink:#1c2230;
  --muted:#5b6478;
  --line:#e6e9f0;
  --bg:#f4f6f9;
  --white:#fff;
  --radius:10px;
  --shadow-sm:0 2px 10px rgba(21,34,82,.06);
  --shadow-md:0 14px 34px rgba(21,34,82,.13);
  --ease:cubic-bezier(.22,.8,.28,1);

  --accent:var(--gold);
  --accent-soft:var(--gold-light);
  --tint:rgba(126,112,223,.10);
  --tint-soft:rgba(126,112,223,.06);
  --deep:#241a4a;

  --cat-ascent:#3C2A70;
  --cat-ci:#1d7a5f;
  --cat-monde:#9c5b1f;

  /* Largeur de la colonne de lecture : environ 69 caractères.
     C'est le réglage qui gouverne tout le confort de lecture. */
  --mesure:62ch;
}

.aca-page{
  font-family:"Poppins","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,
              "Montserrat","Asap",Helvetica,Arial,sans-serif;
  color:var(--ink);
  line-height:1.6;
  overflow-x:hidden;
}
@supports (overflow:clip){.aca-page{overflow-x:clip}}

/* --------------------------------------------------------------------------
   Ossature : largeurs et gouttières définies ici plutôt que dans les réglages
   de conteneur, pour que la mise en page ne dépende pas d'une saisie manuelle.
   .aca-cards n'a volontairement pas de règle : c'est un point d'accroche
   laissé disponible, les cartes venant du modèle « Ascent — Carte actualité ».
   -------------------------------------------------------------------------- */
.aca-wrap{padding-inline:clamp(20px,3vw,44px)!important}

.aca-head__body{flex:1 1 auto;min-width:0}
.aca-head__media{flex:0 0 42%}

/* Un conteneur « boxed » d'Elementor porte sa disposition sur .e-con-inner :
   les deux doivent être visés, sinon les replis responsive restent sans effet. */
.aca-body,
.aca-body > .e-con-inner{
  gap:clamp(28px,4vw,72px)!important;
  align-items:flex-start;
}
.aca-body{padding:clamp(30px,3.6vw,56px) 0 clamp(24px,3vw,44px)!important}
.aca-toc-col{flex:0 0 230px;padding:0!important}
.aca-content-col{flex:1 1 auto;min-width:0;padding:0!important}
.aca-nav-col{padding:0!important}

/* ==========================================================================
   2. BARRE DE PROGRESSION — widget Suivi de progression
   ========================================================================== */
.aca-progress{
  position:sticky;top:0;z-index:99;
  padding:0!important;
  pointer-events:none;
}
.aca-progress .elementor-widget-container{line-height:0}
/* La piste reste invisible, seule la portion parcourue est colorée. */
.aca-progress .elementor-progress-tracker{
  height:3px!important;border-radius:0!important;background:transparent!important;
}
.aca-progress .current-progress-bar,
.aca-progress .elementor-progress-tracker > *{
  height:100%!important;border-radius:0!important;
  background:linear-gradient(90deg,var(--navy),var(--accent))!important;
}

/* ==========================================================================
   3. FIL D'ARIANE — widget Fil d'Ariane
   ========================================================================== */
.aca-crumb{padding:22px 0 0!important}
.aca-crumb,.aca-crumb p{
  margin:0;
  font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);
}
.aca-crumb a{color:var(--muted);text-decoration:none;transition:color .35s var(--ease)}
.aca-crumb a:hover{color:var(--accent)}
.aca-crumb .breadcrumb_last,
.aca-crumb [aria-current]{color:var(--navy)}

/* ==========================================================================
   4. EN-TÊTE D'ARTICLE
   ========================================================================== */
.aca-head{background:var(--bg);margin-top:18px}

.aca-head__body{padding:clamp(26px,3.4vw,50px) clamp(22px,2.6vw,44px)!important}

/* Badge de catégorie (widget Informations sur l'article → Termes) */
.aca-badge{align-self:flex-start}
.aca-badge .elementor-widget-container,
.aca-badge .elementor-post-info__terms-list,
.aca-badge .elementor-heading-title{
  display:inline-block;padding:5px 12px;border-radius:99px;
  background:var(--cat-ascent);color:var(--white);
  font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  line-height:1.4;margin:0;
}
.aca-badge a{color:inherit;text-decoration:none}

/* La couleur suit la catégorie de l'article, via la classe posée sur <body>
   par WordPress. Aucun réglage par article. */
body.category-cote-divoire  .aca-badge .elementor-widget-container{background:var(--cat-ci)}
body.category-international .aca-badge .elementor-widget-container{background:var(--cat-monde)}

.aca-title .elementor-heading-title{
  margin:16px 0;max-width:22ch;
  font-size:clamp(23px,2.9vw,38px);font-weight:700;line-height:1.22;
  color:var(--navy);
}

/* Métadonnées (widget Informations sur l'article, affichage en ligne) */
.aca-meta .elementor-inline-items,
.aca-meta .elementor-icon-list-items,
.aca-badge .elementor-icon-list-items{list-style:none;margin:0;padding:0}
.aca-meta .elementor-post-info__item{
  font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);
}
.aca-meta .elementor-post-info__item-prefix,
.aca-meta .elementor-post-info__terms-list-item{color:var(--muted)}
.aca-meta .elementor-inline-item:not(:last-child)::after{
  content:"";display:inline-block;width:3px;height:3px;border-radius:50%;
  background:var(--accent);margin:0 4px 0 10px;vertical-align:middle;
}

/* Visuel en diagonale */
.aca-head__media{
  position:relative;overflow:hidden;padding:0!important;
  background:var(--deep);
  clip-path:polygon(11% 0,100% 0,100% 100%,0 100%);
  margin-left:-6%;
}
.aca-head__media .elementor-widget-image,
.aca-head__media .elementor-widget-container,
.aca-head__media figure{height:100%;margin:0}
.aca-head__media img{
  width:100%;height:100%;min-height:300px;object-fit:cover;display:block;
  transform:scale(1.04);
  transition:transform 1.2s var(--ease);
}
.aca-head__media::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background:linear-gradient(115deg,rgba(36,26,74,.42) 0%,rgba(36,26,74,.06) 55%,transparent 100%);
}
.aca-head__media:hover img{transform:scale(1.09)}

/* ==========================================================================
   5. SOMMAIRE — widget Table des matières
   ========================================================================== */
.aca-toc{align-self:start}
.aca-toc .elementor-widget-container{
  border:0!important;background:transparent!important;padding:0!important;
}
.aca-toc .elementor-toc__header{
  padding:0 0 14px;border:0;background:transparent;
}
.aca-toc .elementor-toc__header-title{
  font-size:11px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--navy);
}
.aca-toc .elementor-toc__body{padding:0;max-height:none}
.aca-toc .elementor-toc__list-wrapper{margin:0;padding:0;list-style:none}
.aca-toc .elementor-toc__list-item{margin:0 0 2px}
.aca-toc .elementor-toc__list-item-text{
  position:relative;display:block;
  padding:8px 10px 8px 16px;border-radius:6px;
  font-size:12.5px;line-height:1.45;color:var(--muted);text-decoration:none;
  transition:color .35s var(--ease),background .35s var(--ease);
}
.aca-toc .elementor-toc__list-item-text::before{
  content:"";position:absolute;left:0;top:20%;width:2px;height:0;
  background:var(--accent);border-radius:2px;
  transition:height .4s var(--ease);
}
.aca-toc .elementor-toc__list-item-text:hover{color:var(--navy);background:var(--tint-soft)}
.aca-toc .elementor-toc__list-item.elementor-item-active > .elementor-toc__list-item-text,
.aca-toc .elementor-toc__list-item-text.elementor-item-active{
  color:var(--navy);font-weight:600;background:var(--tint-soft);
}
.aca-toc .elementor-toc__list-item.elementor-item-active > .elementor-toc__list-item-text::before,
.aca-toc .elementor-toc__list-item-text.elementor-item-active::before{height:60%}

/* ==========================================================================
   6. CORPS DE L'ARTICLE — widget Contenu de l'article
   Les styles portent sur le HTML produit par l'éditeur WordPress : aucune
   classe à poser lors de la rédaction, hormis l'encadré « À retenir ».
   ========================================================================== */
.aca-content{
  max-width:var(--mesure);
  font-size:15.5px;color:var(--ink);
}
.aca-content .elementor-widget-container > *:first-child{margin-top:0}

.aca-content p{margin:0 0 20px;color:var(--muted);line-height:1.75}
.aca-content strong{color:var(--navy);font-weight:600}

/* Chapô : le premier paragraphe de l'article */
.aca-content .elementor-widget-container > p:first-of-type{
  font-size:17px;line-height:1.6;font-weight:500;color:var(--navy-800);
  padding-left:18px;border-left:3px solid var(--accent);
  margin-bottom:26px;
}

/* Titres, avec le filet d'accent des titres de colonne */
.aca-content h2{
  position:relative;
  margin:44px 0 16px;padding-top:22px;
  font-size:clamp(18px,1.9vw,23px);font-weight:700;line-height:1.3;color:var(--navy);
  scroll-margin-top:40px;
}
.aca-content h2::before{
  content:"";position:absolute;left:0;top:0;width:38px;height:3px;
  background:var(--accent);border-radius:2px;
}
.aca-content h3{
  margin:30px 0 12px;font-size:15.5px;font-weight:700;color:var(--navy-800);
  scroll-margin-top:40px;
}

/* Listes : coche violette, sans classe à poser dans l'éditeur */
.aca-content ul{list-style:none;margin:0 0 20px;padding:0}
.aca-content ul li{
  position:relative;
  padding:9px 10px 9px 34px;border-radius:6px;
  font-size:14.5px;line-height:1.6;color:var(--ink);
  transition:padding-left .4s var(--ease),background .4s var(--ease);
}
.aca-content ul li::before{
  content:"";position:absolute;left:4px;top:12px;width:17px;height:17px;
  background:var(--accent);
  -webkit-mask:var(--check) center/contain no-repeat;
          mask:var(--check) center/contain no-repeat;
  transition:transform .45s var(--ease);
}
.aca-content ul li:hover{padding-left:42px;background:var(--tint-soft)}
.aca-content ul li:hover::before{transform:scale(1.15) rotate(-8deg)}
:root{
  --check:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m8 12.4 2.7 2.7L16.3 9.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.aca-content ol{margin:0 0 20px;padding-left:22px;color:var(--muted)}
.aca-content ol li{margin-bottom:8px;line-height:1.7}

/* Citation */
.aca-content blockquote{
  margin:36px 0;padding:22px 24px;
  border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;
  background:var(--tint-soft);
}
.aca-content blockquote p{
  margin:0;font-size:16px;line-height:1.65;font-style:italic;color:var(--navy-800);
}
.aca-content blockquote cite{
  display:block;margin-top:10px;
  font-size:11.5px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);font-style:normal;
}

/* Encadré « À retenir » : seule classe à poser dans l'éditeur (aca-note) */
.aca-content .aca-note{
  margin:36px 0;padding:22px 24px;
  border:1px solid var(--line);border-left:3px solid var(--accent);
  border-radius:var(--radius);background:#fbfbfe;
}
.aca-content .aca-note > *:first-child{
  margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--navy);
}
.aca-content .aca-note p{margin:0;font-size:14px}

/* Images insérées dans le corps */
.aca-content figure{margin:36px 0}
.aca-content figure img{
  width:100%;display:block;border-radius:var(--radius);
  aspect-ratio:16/9;object-fit:cover;background:#e9eaf2;
}
.aca-content figcaption{
  margin-top:10px;font-size:12px;color:var(--muted);
  padding-left:14px;border-left:2px solid var(--line);text-align:left;
}

/* Liens dans le texte */
.aca-content a{
  color:var(--navy);text-decoration:none;
  box-shadow:inset 0 -2px 0 var(--accent-soft);
  transition:box-shadow .35s var(--ease),color .35s var(--ease);
}
.aca-content a:hover{color:var(--accent);box-shadow:inset 0 -22px 0 var(--tint-soft)}

/* ==========================================================================
   7. GALERIE — widget Galerie (avec visionneuse native)
   ========================================================================== */
.aca-gallery{padding:clamp(26px,3vw,44px) 0!important;border-top:1px solid var(--line)}
.aca-gallery__title .elementor-heading-title{
  margin:0 0 4px;font-size:13px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--navy);
}
.aca-gallery__lead{font-size:12.5px;color:var(--muted);margin-bottom:22px}
.aca-gallery__lead p{margin:0}

.aca-shots .e-gallery-item,
.aca-shots .elementor-gallery-item{
  overflow:hidden;border-radius:var(--radius);
  border:1px solid var(--line);background:#e9eaf2;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);
}
.aca-shots .e-gallery-item:hover,
.aca-shots .elementor-gallery-item:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}
.aca-shots .e-gallery-image{transition:transform .9s var(--ease)}
.aca-shots .e-gallery-item:hover .e-gallery-image{transform:scale(1.06)}

/* ==========================================================================
   8. PARTAGE, ENCART, NAVIGATION, ARTICLES LIÉS
   ========================================================================== */

/* --- Boutons de partage --- */
.aca-share{padding:22px 0!important;border-top:1px solid var(--line)}
.aca-share .elementor-share-btn{
  width:38px;height:38px;border:1px solid var(--line);border-radius:50%;
  background:var(--white);color:var(--navy);
  transition:background .35s var(--ease),color .35s var(--ease),
             border-color .35s var(--ease),transform .35s var(--ease);
}
.aca-share .elementor-share-btn:hover{
  background:var(--navy);color:var(--white);border-color:var(--navy);
  transform:translateY(-3px);
}
.aca-share .elementor-share-btn__icon{background:transparent}
.aca-share__label .elementor-heading-title{
  margin:0;font-size:11.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--navy);
}

/* --- Encart Ascent + appel à l'action --- */
.aca-cta-band{
  position:relative;overflow:hidden;
  padding:clamp(26px,3vw,42px)!important;
  border-radius:var(--radius);
  color:var(--white);
  background:
    radial-gradient(120% 90% at 100% 0%,#4a3688 0%,transparent 62%),
    linear-gradient(150deg,#33245f 0%,var(--deep) 100%);
}
.aca-cta-band::before{
  content:"";position:absolute;right:-25%;bottom:-30%;width:80%;height:130%;
  background:repeating-linear-gradient(58deg,rgba(255,255,255,.06) 0 2px,transparent 2px 20px);
  transition:transform .9s var(--ease);pointer-events:none;
}
.aca-cta-band:hover::before{transform:translate(-14px,-14px)}
.aca-cta-band > *{position:relative;z-index:1}
.aca-cta-band__title .elementor-heading-title{
  margin:0 0 8px;font-size:clamp(16px,1.7vw,21px);font-weight:700;color:var(--white);
}
.aca-cta-band__text{max-width:56ch;font-size:13.5px;color:#cfc7ec}
.aca-cta-band__text p{margin:0}

.aca-cta .elementor-button{
  position:relative;isolation:isolate;overflow:hidden;
  display:inline-flex;align-items:center;gap:28px;white-space:nowrap;
  padding:15px 26px;border:0;border-radius:0;
  background:var(--accent);color:var(--white);
  font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.aca-cta .elementor-button:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(0,0,0,.3)}
.aca-cta .elementor-button-icon{transition:transform .45s var(--ease)}
.aca-cta .elementor-button:hover .elementor-button-icon{transform:translateX(7px)}

/* --- Navigation précédent / suivant --- */
.aca-nav{margin-top:clamp(24px,3vw,40px)!important}
.aca-nav .elementor-post-navigation{border:0}
.aca-nav .elementor-post-navigation__prev,
.aca-nav .elementor-post-navigation__next{
  position:relative;overflow:hidden;
  padding:20px 22px;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--white);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s var(--ease);
}
.aca-nav .elementor-post-navigation__prev::after,
.aca-nav .elementor-post-navigation__next::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:var(--accent);transform:scaleX(0);transform-origin:left;
  transition:transform .45s var(--ease);
}
.aca-nav .elementor-post-navigation__next::after{transform-origin:right}
.aca-nav .elementor-post-navigation__prev:hover,
.aca-nav .elementor-post-navigation__next:hover{
  transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:transparent;
}
.aca-nav .elementor-post-navigation__prev:hover::after,
.aca-nav .elementor-post-navigation__next:hover::after{transform:scaleX(1)}
.aca-nav .elementor-post-navigation__link a{display:block;text-decoration:none}
.aca-nav .post-navigation__prev--label,
.aca-nav .post-navigation__next--label{
  display:block;margin-bottom:8px;
  font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent);
}
.aca-nav .post-navigation__prev--title,
.aca-nav .post-navigation__next--title{
  display:block;
  font-size:14px;font-weight:700;line-height:1.4;color:var(--navy);
  transition:color .35s var(--ease);
}
.aca-nav .elementor-post-navigation__prev:hover .post-navigation__prev--title,
.aca-nav .elementor-post-navigation__next:hover .post-navigation__next--title{color:var(--accent)}
.aca-nav .elementor-post-navigation__separator{background:transparent}

/* --- Articles liés --- */
.aca-related{
  padding:clamp(28px,3.4vw,50px) 0 clamp(34px,4vw,60px)!important;
  margin-top:clamp(24px,3vw,40px);
  border-top:1px solid var(--line);
}
.aca-related__title .elementor-heading-title{
  margin:0 0 22px;font-size:13px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--navy);
}
/* Les cartes elles-mêmes viennent du modèle « Ascent — Carte actualité »
   et de ascent-actualites-elementor.css : rien à redéfinir ici. */

/* ==========================================================================
   9. RESPONSIVE
   Elementor empile les conteneurs selon ses propres réglages : on ne corrige
   que ce qui lui échappe (diagonale, mesure de la colonne de lecture).
   ========================================================================== */
@media (max-width:1100px){
  /* !important assumé : le CSS généré par Elementor pour chaque élément est
     imprimé après les feuilles du thème et écraserait sinon ces replis. */
  .aca-body,
  .aca-body > .e-con-inner{flex-direction:column!important}
  .aca-toc-col{flex:1 1 auto;width:100%}
  /* La colonne de lecture garde sa mesure et se centre : sans cela le texte
     reprendrait toute la largeur et redeviendrait illisible. */
  .aca-content{margin-inline:auto}
  .aca-toc{position:static!important}
  .aca-toc .elementor-widget-container{
    padding:18px 20px!important;border:1px solid var(--line)!important;
    border-radius:var(--radius);background:#fbfbfe!important;
  }
}
@media (max-width:900px){
  .aca-head,
  .aca-head > .e-con-inner{flex-direction:column!important}
  .aca-head__media{clip-path:none;margin-left:0;flex:1 1 auto}
}
@media (max-width:680px){
  .aca-cta-band,
  .aca-cta-band > .e-con-inner{flex-direction:column!important;align-items:stretch}
  .aca-cta .elementor-button{width:100%;justify-content:space-between}
}
@media (prefers-reduced-motion:reduce){
  .aca-page *,.aca-page *::before,.aca-page *::after{
    transition-duration:.01ms!important;animation-duration:.01ms!important;
  }
  .aca-progress{display:none}
}
