/* ============================================================
   ANTINEO — feuille de style des blocs reconstruits
   ------------------------------------------------------------
   A coller dans Elementor > Reglages du site > CSS personnalise.
   Une seule feuille pour les 110 pages reconstruites : une couleur
   se change ici, pas dans 110 pages.

   Les selecteurs visent le balisage qu'Elementor produit, jamais un
   balisage a nous. C'est ce qui permet de modifier un texte dans
   l'editeur sans jamais approcher le style.

   Charte relevee sur antineo.fr, pas proposee.
   ============================================================ */

:root{
  --primary:#663366;
  --secondary:#dfba84;
  --bg:#f6f6f6;
  --grey:#1b1e23;
  --text:#1b1e23;
  --text-ondark:#ecf1fb;
  --c1:#642C7A;
  --c2:#2F1639;
  --gradient:radial-gradient(85.31% 85.31% at 50% 100%,#1F0A1F 0%,rgba(31,10,31,0) 100%),#663366;
  --btn-gradient:linear-gradient(76.85deg,var(--c1) 5%,var(--c2) 45%,var(--c2) 55%,var(--c1) 95%);
  --radius:12px;
  --font-base:'Poppins',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --v-05:#faf5fa;
  --v-10:#f9f3f9;
  --v-20:#f0e0f0;
  --v-30:#e8d4e8;
  --line:rgba(102,51,102,.14);
  --line-dark:rgba(236,241,251,.16);
  --muted:#6a6472;
  --max:1200px;
}

/* ============================================================
   SOCLE DE BLOC
   Chaque bloc ACF devient un conteneur porteur d'une classe.
   Le rythme vertical vient d'ici, une seule fois, et non de
   marges posees widget par widget.
   ============================================================ */

.atn-bloc{
  font-family:var(--font-base);color:var(--text);
  padding:clamp(46px,6vw,88px) 24px
}
.atn-bloc>.e-con-inner,.atn-bloc .atn-wrap{
  width:100%;max-width:var(--max);margin-inline:auto
}

/* Deux blocs de meme fond qui se suivent ne doivent pas creer une
   double respiration : on ferme l'espace entre eux. */
.atn-bloc+.atn-bloc.atn-bg-fond,
.atn-bg-fond+.atn-bloc.atn-bg-fond{padding-top:0}

/* --- Palettes, valeurs du champ bg-palette ---------------- */

.atn-bg-fond{background:var(--bg)}
.atn-bg-white{background:#fff}
.atn-bg-secondary{background:var(--v-10)}
.atn-bg-primary{background:var(--gradient);color:var(--text-ondark)}
.atn-bg-primary h1,.atn-bg-primary h2,.atn-bg-primary h3,
.atn-bg-primary h4,.atn-bg-primary h5,.atn-bg-primary h6,
.atn-bg-primary .elementor-heading-title{color:#fff}
.atn-bg-primary a{color:var(--secondary)}
.atn-bg-primary strong{color:#fff}

/* ============================================================
   TYPOGRAPHIE DU CONTENU
   Le contenu vient de l'editeur classique du site actuel : il
   arrive en h2/h3/p/ul bruts, avec des styles en ligne herites
   du thème. On reprend la main sans les combattre.
   ============================================================ */

.atn-bloc .elementor-widget-text-editor{
  font-size:16.5px;line-height:1.75;color:var(--muted)
}
.atn-bg-primary .elementor-widget-text-editor{color:rgba(236,241,251,.84)}

.atn-bloc .elementor-widget-text-editor h1,
.atn-bloc .elementor-widget-text-editor h2,
.atn-bloc .elementor-widget-text-editor h3,
.atn-bloc .elementor-widget-text-editor h4{
  font-family:var(--font-base);color:var(--text);
  letter-spacing:-.02em;line-height:1.18;font-weight:600;
  margin:1.6em 0 .6em
}
.atn-bloc .elementor-widget-text-editor>*:first-child{margin-top:0}
.atn-bloc .elementor-widget-text-editor h2{font-size:clamp(25px,2.9vw,36px)}
.atn-bloc .elementor-widget-text-editor h3{font-size:clamp(18px,1.6vw,22px)}
.atn-bloc .elementor-widget-text-editor h4{font-size:17px}

/* Le violet en ligne du site actuel (#603e77) est proche de la
   charte sans l'etre : on le neutralise au profit de la variable. */
.atn-bloc .elementor-widget-text-editor h2 span[style*="color"],
.atn-bloc .elementor-widget-text-editor h3 span[style*="color"]{color:var(--primary) !important}
.atn-bg-primary .elementor-widget-text-editor h2 span[style*="color"],
.atn-bg-primary .elementor-widget-text-editor h3 span[style*="color"]{color:#fff !important}

.atn-bloc .elementor-widget-text-editor p{margin:0 0 1.1em}
.atn-bloc .elementor-widget-text-editor p:last-child{margin-bottom:0}
.atn-bloc .elementor-widget-text-editor strong{color:var(--text);font-weight:600}
.atn-bloc .elementor-widget-text-editor a{
  color:var(--primary);text-decoration:none;
  border-bottom:1px solid var(--v-30);transition:border-color .18s
}
.atn-bloc .elementor-widget-text-editor a:hover{border-bottom-color:var(--primary)}

/* Listes : la puce ronde violette du site actuel, reprise. */
.atn-bloc .elementor-widget-text-editor ul{list-style:none;padding:0;margin:0 0 1.2em}
.atn-bloc .elementor-widget-text-editor ul li{
  position:relative;padding:.35em 0 .35em 26px;line-height:1.6
}
.atn-bloc .elementor-widget-text-editor ul li::before{
  content:"";position:absolute;left:2px;top:.95em;width:8px;height:8px;
  border-radius:50%;background:var(--v-30);box-shadow:inset 0 0 0 2px var(--primary)
}
.atn-bg-primary .elementor-widget-text-editor ul li::before{
  background:rgba(223,186,132,.3);box-shadow:inset 0 0 0 2px var(--secondary)
}
/* Un titre seul dans une puce est un intertitre deguise : frequent
   sur les fiches modeles, ou h3 sert de sous-titre. */
.atn-bloc .elementor-widget-text-editor ul li>h3:only-child{margin:0;font-size:19px}

.atn-bloc .elementor-widget-text-editor ol{padding-left:1.3em;margin:0 0 1.2em}
.atn-bloc .elementor-widget-text-editor ol li{padding:.3em 0;line-height:1.6}

.atn-bloc .elementor-widget-text-editor img{
  max-width:100%;height:auto;border-radius:var(--radius)
}
.atn-bloc .elementor-widget-text-editor table{
  width:100%;border-collapse:collapse;margin:1.2em 0;font-size:15px
}
.atn-bloc .elementor-widget-text-editor th,
.atn-bloc .elementor-widget-text-editor td{
  padding:11px 14px;border:1px solid var(--line);text-align:left
}
.atn-bloc .elementor-widget-text-editor th{background:var(--v-10);color:var(--primary);font-weight:600}

/* ============================================================
   BLOC TEXTE
   ============================================================ */

.atn-b-texte .elementor-widget-image{margin-top:26px}
.atn-b-texte .elementor-widget-image img{
  border-radius:var(--radius);width:100%;height:auto;
  box-shadow:0 24px 54px -34px rgba(47,22,57,.4)
}

/* ============================================================
   BLOC TEXTE ET PHOTO
   ============================================================ */

.atn-b-texte-photo .atn-duo{
  display:grid;grid-template-columns:1.05fr .95fr;
  gap:clamp(26px,3.6vw,54px);align-items:center
}
@media(max-width:880px){.atn-b-texte-photo .atn-duo{grid-template-columns:1fr}}
/* `image_pos` vaut left ou right. La colonne image est a droite par
   construction : seule la valeur left demande une inversion, et elle
   tombe sous le point de rupture pour que le texte reste en premier. */
.atn-b-texte-photo.atn-img-gauche .atn-col-image{order:-1}
@media(max-width:880px){.atn-b-texte-photo.atn-img-gauche .atn-col-image{order:0}}
.atn-b-texte-photo .atn-col-image img{
  border-radius:var(--radius);width:100%;height:auto;
  box-shadow:0 28px 60px -34px rgba(47,22,57,.45)
}

/* ============================================================
   BLOC ACCORDEON
   Quinze occurrences, 4 461 mots : c'est le second porteur de
   contenu du site, et celui qui rendait les gabarits a jetons
   inutilisables, faute de nombre d'items fixe.
   ============================================================ */

.atn-b-accordeon .atn-intro{margin-bottom:22px}

.atn-b-accordeon .elementor-accordion{
  border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:#fff
}
.atn-b-accordeon .elementor-accordion-item{border:0;border-top:1px solid var(--line)}
.atn-b-accordeon .elementor-accordion-item:first-child{border-top:0}

.atn-b-accordeon .elementor-tab-title{
  padding:20px 24px;background:#fff;transition:background .18s;cursor:pointer
}
.atn-b-accordeon .elementor-tab-title:hover,
.atn-b-accordeon .elementor-tab-title.elementor-active{background:var(--v-10)}
.atn-b-accordeon .elementor-accordion-title{
  font-family:var(--font-base);font-size:17px;font-weight:600;
  color:var(--text);letter-spacing:-.01em;line-height:1.4
}
.atn-b-accordeon .elementor-tab-title.elementor-active .elementor-accordion-title{color:var(--primary)}
.atn-b-accordeon .elementor-accordion-icon{color:var(--primary);width:18px}

.atn-b-accordeon .elementor-tab-content{
  padding:4px 24px 26px;border:0;background:#fff;
  font-size:16px;line-height:1.75;color:var(--muted)
}
.atn-b-accordeon .elementor-tab-content h2,
.atn-b-accordeon .elementor-tab-content h3{
  font-size:19px;font-weight:600;color:var(--text);margin:1.3em 0 .5em
}
.atn-b-accordeon .elementor-tab-content>*:first-child{margin-top:0}
.atn-b-accordeon .elementor-tab-content img{max-width:100%;height:auto;border-radius:8px}

.atn-bg-primary.atn-b-accordeon .elementor-accordion{border-color:var(--line-dark)}

/* ============================================================
   BLOC APPEL A L'ACTION
   ============================================================ */

.atn-b-cta{text-align:center}
.atn-b-cta .atn-wrap{max-width:760px}
.atn-b-cta .elementor-widget-text-editor{font-size:18px}
.atn-b-cta .elementor-widget-button{margin-top:22px}

/* ============================================================
   BOUTONS
   L'esthetique des boutons est citee parmi les elements a
   conserver. Le degrade est etale sur 200 % et glisse au survol :
   c'est le balayage du site actuel, repris a l'identique.
   ============================================================ */

.atn-bloc .elementor-button{
  border-radius:8px;padding:15px 28px;font-family:var(--font-base);
  font-size:15.5px;font-weight:600;letter-spacing:-.01em;border:0;
  background:var(--btn-gradient);background-size:200% 100%;background-position-x:0;
  color:#fff;
  transition:background-position-x .45s ease,transform .18s,box-shadow .18s
}
.atn-bloc .elementor-button:hover{
  background-position-x:100%;transform:translateY(-2px);
  box-shadow:0 14px 30px -14px var(--c1)
}
.atn-bg-primary .elementor-button{
  background:var(--secondary);color:var(--grey)
}
.atn-bg-primary .elementor-button:hover{box-shadow:0 14px 30px -14px var(--secondary)}

/* ============================================================
   BLOC GRILLE DE LIENS
   ============================================================ */

.atn-b-grille .elementor-heading-title{
  font-family:var(--font-base);font-size:clamp(25px,2.9vw,36px);font-weight:600;
  letter-spacing:-.02em;margin:0 0 28px;color:var(--text)
}
.atn-grille{display:grid;gap:16px}
.atn-col-1{grid-template-columns:1fr}
.atn-col-2{grid-template-columns:repeat(2,1fr)}
.atn-col-3{grid-template-columns:repeat(3,1fr)}
.atn-col-4{grid-template-columns:repeat(4,1fr)}
.atn-col-5{grid-template-columns:repeat(5,1fr)}
.atn-col-6{grid-template-columns:repeat(6,1fr)}
@media(max-width:1000px){.atn-col-4,.atn-col-5,.atn-col-6{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.atn-grille{grid-template-columns:1fr !important}}

/* Une carte de navigation n'est pas un bouton : meme widget,
   autre role, donc autre traitement. */
.atn-carte-lien .elementor-button{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  width:100%;min-height:118px;text-align:left;padding:24px;
  border-radius:var(--radius);background:#fff;color:var(--text);
  box-shadow:0 0 0 1px var(--line) inset;font-size:17px;line-height:1.35
}
.atn-carte-lien .elementor-button::after{
  content:"→";color:var(--primary);font-size:20px;transition:transform .2s;flex:none
}
.atn-carte-lien .elementor-button:hover{
  background:#fff;transform:translateY(-3px);
  box-shadow:0 0 0 1px var(--v-30) inset,0 22px 46px -28px rgba(102,51,102,.42)
}
.atn-carte-lien .elementor-button:hover::after{transform:translateX(5px)}
.atn-bg-primary .atn-carte-lien .elementor-button{
  background:rgba(255,255,255,.06);color:#fff;box-shadow:0 0 0 1px var(--line-dark) inset
}
.atn-bg-primary .atn-carte-lien .elementor-button::after{color:var(--secondary)}

/* ============================================================
   BLOC CARTES
   Quatre occurrences, quatorze cartes. A ne pas confondre avec la
   grille de liens : une carte porte une icone et un texte, et son
   champ `more-link` est vide sur les quatorze. Ce n'est donc pas un
   lien deguise, c'est un encart.
   ============================================================ */

.atn-b-cartes .elementor-heading-title{
  font-family:var(--font-base);font-size:clamp(25px,2.9vw,36px);font-weight:600;
  letter-spacing:-.02em;margin:0 0 28px;color:var(--text)
}

.atn-carte{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(22px,2.4vw,30px);
  display:flex;flex-direction:column;gap:4px;
  transition:transform .2s,box-shadow .2s,border-color .2s
}
.atn-carte:hover{
  transform:translateY(-3px);border-color:var(--v-30);
  box-shadow:0 22px 46px -30px rgba(102,51,102,.42)
}

/* L'icone est une image d'attachement, pas une police d'icones : on
   la borne plutot que de la laisser prendre la largeur de la carte. */
.atn-carte-icone{text-align:left}
.atn-carte-icone img{
  width:auto;max-width:64px;max-height:64px;height:auto;
  margin:0 0 12px;display:block;border-radius:0
}

.atn-carte .elementor-widget-text-editor{font-size:16px;line-height:1.65;color:var(--muted)}
.atn-carte .elementor-widget-text-editor p:last-child{margin-bottom:0}
.atn-carte .elementor-widget:not(:last-child){margin-block-end:0}

/* Une carte qui porte un lien le pose en bas, aligne avec les autres. */
.atn-carte .atn-carte-lien{margin-top:auto;padding-top:16px}
.atn-carte .atn-carte-lien .elementor-button{min-height:0;padding:12px 16px}

.atn-bg-primary .atn-carte{
  background:rgba(255,255,255,.06);border-color:var(--line-dark)
}
.atn-bg-primary .atn-carte .elementor-widget-text-editor{color:rgba(236,241,251,.84)}

/* ============================================================
   BLOC TELECHARGEMENTS
   Deux occurrences dans le champ flexible, plus le repeteur
   historique `group` de quatre pages, soit quarante-cinq fiches
   PDF au total. Le contenu d'onglet est une liste de liens, pas
   du texte redactionnel : il se traite autrement.
   ============================================================ */

.atn-b-telechargements .atn-intro{margin-bottom:22px}

.atn-b-telechargements .elementor-accordion{
  border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:#fff
}
.atn-b-telechargements .elementor-accordion-item{border:0;border-top:1px solid var(--line)}
.atn-b-telechargements .elementor-accordion-item:first-child{border-top:0}
.atn-b-telechargements .elementor-tab-title{
  padding:18px 24px;background:#fff;transition:background .18s;cursor:pointer
}
.atn-b-telechargements .elementor-tab-title:hover,
.atn-b-telechargements .elementor-tab-title.elementor-active{background:var(--v-10)}
.atn-b-telechargements .elementor-accordion-title{
  font-family:var(--font-base);font-size:17px;font-weight:600;
  color:var(--text);letter-spacing:-.01em;line-height:1.4
}
.atn-b-telechargements .elementor-tab-title.elementor-active .elementor-accordion-title{color:var(--primary)}
.atn-b-telechargements .elementor-accordion-icon{color:var(--primary);width:18px}
.atn-b-telechargements .elementor-tab-content{padding:6px 24px 22px;border:0;background:#fff}

.atn-liste-pdf{list-style:none;margin:0;padding:0}
.atn-liste-pdf li{
  border-top:1px solid var(--line);
  font-size:15.5px;line-height:1.5;color:var(--muted)
}
.atn-liste-pdf li:first-child{border-top:0}

/* Une entree sans fichier reste lisible, sans faire croire a un lien. */
.atn-liste-pdf li{padding:12px 2px}
.atn-liste-pdf li:has(a){padding:0}

.atn-liste-pdf a{
  display:flex;align-items:center;gap:12px;
  padding:12px 2px;color:var(--text);text-decoration:none;
  border-bottom:0;transition:color .18s,padding-left .18s
}
.atn-liste-pdf a::before{
  content:"";flex:none;width:18px;height:22px;
  background:var(--v-20);border-radius:3px 3px 3px 0;
  box-shadow:inset 0 0 0 1.5px var(--primary)
}
.atn-liste-pdf a::after{
  content:"PDF";margin-left:auto;flex:none;
  font-size:11px;font-weight:600;letter-spacing:.06em;
  color:var(--primary);background:var(--v-10);
  padding:4px 8px;border-radius:99px
}
.atn-liste-pdf a:hover{color:var(--primary);padding-left:6px}

.atn-bg-primary.atn-b-telechargements .elementor-accordion{border-color:var(--line-dark)}

/* ============================================================
   BLOC EQUIPE
   ============================================================ */

.atn-b-equipe .atn-grille{margin-top:22px}

.atn-membre{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:22px;text-align:center;transition:transform .2s,box-shadow .2s
}
.atn-membre:hover{transform:translateY(-3px);box-shadow:0 22px 46px -30px rgba(102,51,102,.4)}
.atn-membre .elementor-widget-image img{
  width:104px;height:104px;object-fit:cover;border-radius:50%;
  margin:0 auto 14px;display:block;border:3px solid var(--v-20)
}
.atn-membre .elementor-heading-title{
  font-family:var(--font-base);font-size:17px;font-weight:600;color:var(--primary);margin:0 0 6px
}
.atn-membre .elementor-widget-text-editor{font-size:14px;line-height:1.55;color:var(--muted)}

/* ============================================================
   BANDEAU DE LOGOS
   ============================================================ */

.atn-b-logos{padding-block:clamp(34px,4vw,58px)}

.atn-bandeau-logos{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:clamp(24px,4vw,56px)
}
.atn-bandeau-logos .elementor-widget-image{flex:0 0 auto}
.atn-bandeau-logos img{
  max-height:56px;width:auto;
  filter:grayscale(1);opacity:.55;transition:filter .25s,opacity .25s
}
.atn-bandeau-logos img:hover{filter:grayscale(0);opacity:1}

/* ============================================================
   CARROUSEL
   ============================================================ */

.atn-rail{
  display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:14px;scrollbar-width:thin;scrollbar-color:var(--v-30) transparent
}
.atn-rail::-webkit-scrollbar{height:6px}
.atn-rail::-webkit-scrollbar-thumb{background:var(--v-30);border-radius:99px}
.atn-rail>*{scroll-snap-align:start;flex:0 0 min(460px,86%)}
.atn-rail img{border-radius:var(--radius);width:100%;height:auto}

/* ============================================================
   BLOC HTML
   Quatre pages seulement. La source EST du HTML, rendu par le
   thème actuel : ces blocs sont a remplacer par un Loop Grid une
   fois le thème retire. Ils sont marques pour ne pas etre oublies.
   ============================================================ */

.atn-b-html .SC-news .items{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:900px){.atn-b-html .SC-news .items{grid-template-columns:1fr}}
.atn-b-html .news-item{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;display:block
}
.atn-b-html .news-item img{width:100%;height:auto;display:block}
.atn-b-html .title{
  font-family:var(--font-base);font-size:clamp(25px,2.9vw,36px);
  font-weight:600;letter-spacing:-.02em;margin:0 0 24px
}

/* ============================================================
   FINITIONS ELEMENTOR
   Elementor pose ses propres marges sur les widgets : le rythme
   doit venir d'un seul endroit, sinon il se joue a deux.
   ============================================================ */

.atn-bloc .elementor-widget:not(:last-child){margin-block-end:18px}
.atn-bloc .elementor-widget-image{text-align:center}

/* Elementor borne ses conteneurs a une largeur de gabarit. On la libere,
   SAUF sur .atn-wrap, qui est justement la piece chargee de tenir la
   largeur de lecture : sans l'exception, cette regle annule la sienne,
   a poids egal et plus bas dans la feuille. */
.atn-bloc .e-con:not(.atn-wrap),
.atn-bloc .e-con-inner:not(.atn-wrap){max-width:100%}
