/* =============================================================================
   MA Cyber : feuille de style unique du site.
   Les valeurs reprennent exactement celles du thème WordPress d'origine (Neve)
   pour un rendu identique. Points de rupture : 576 px, 782 px (colonnes), 960 px.
   ========================================================================== */

/* ---- Police : Montserrat ------------------------------------------------
   Un seul fichier (police variable) par jeu de caractères, déclaré en 4 graisses fixes
   comme sur l'ancien site : le gras (700) s'y affiche en 800, ce qui conserve la largeur des textes. */
@font-face { font-family: Montserrat; font-style: normal; font-weight: 400; font-display: swap; src: url("../polices/montserrat-latin-ext.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Montserrat; font-style: normal; font-weight: 400; font-display: swap; src: url("../polices/montserrat-latin.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Montserrat; font-style: normal; font-weight: 500; font-display: swap; src: url("../polices/montserrat-latin-ext.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Montserrat; font-style: normal; font-weight: 500; font-display: swap; src: url("../polices/montserrat-latin.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Montserrat; font-style: normal; font-weight: 600; font-display: swap; src: url("../polices/montserrat-latin-ext.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Montserrat; font-style: normal; font-weight: 600; font-display: swap; src: url("../polices/montserrat-latin.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Montserrat; font-style: normal; font-weight: 800; font-display: swap; src: url("../polices/montserrat-latin-ext.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Montserrat; font-style: normal; font-weight: 800; font-display: swap; src: url("../polices/montserrat-latin.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ---- Variables ----------------------------------------------------------- */
:root {
  --bleu: #0073aa;          /* liens, boutons */
  --bleu-clair: #38a7dc;    /* survol des liens, focus des champs */
  --texte: #153b57;         /* texte et fonds sombres des bandeaux */
  --fond: #ffffff;
  --fond-clair: #f8f8f8;
  --fond-sombre: #202527;   /* pied de page */
  --police: Montserrat, Arial, Helvetica, sans-serif;

  --conteneur: 748px;
  --contenu-large: 718px;   /* intérieur des bandeaux pleine largeur */
  --taille-texte: 15px;
  --interligne: 1.6em;
  --h1: 32px; --h1-interligne: 1.2em;
  --h2: 24px; --h2-interligne: 1.3em;
  --h3: 20px; --h3-interligne: 1.4em;
  --h4: 18px; --h4-interligne: 1.6em;
  --bouton-padding: 10px 15px;
  --bouton-taille: var(--taille-texte);
  --logo: 60px;
}
@media (min-width: 576px) {
  :root {
    --conteneur: 992px;
    --contenu-large: 962px;
    --taille-texte: 16px;
    --h1: 40px;
    --h2: 32px; --h2-interligne: 1.2em;
    --h3: 24px;
    --h4: 20px; --h4-interligne: 1.5em;
    --logo: 120px;
  }
}
@media (min-width: 960px) {
  :root {
    --conteneur: 1060px;
    --contenu-large: 1030px;
    --interligne: 1.7em;
    --h1-interligne: 1.3em;
    --h3: 28px;
    --h4: 24px;
    --bouton-padding: 13px 15px;
    --bouton-taille: 16px;
    --logo: 100px;
  }
}

/* ---- Base ---------------------------------------------------------------- */
*, ::before, ::after { box-sizing: border-box; }
html { font-size: 100%; }
body, h1, h2, h3, h4, p, ul, ol, li, figure, blockquote, details, iframe, textarea { margin: 0; padding: 0; }
body {
  font-family: var(--police);
  font-size: var(--taille-texte);
  font-weight: 500;
  line-height: var(--interligne);
  color: var(--texte);
  background: var(--fond);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, p { margin-bottom: 30px; }
h1, h2, h3, h4 { font-family: var(--police); font-weight: 800; color: inherit; }
h1 { font-size: var(--h1); line-height: var(--h1-interligne); }
h2 { font-size: var(--h2); line-height: var(--h2-interligne); }
h3 { font-size: var(--h3); line-height: var(--h3-interligne); }
h4 { font-size: var(--h4); line-height: var(--h4-interligne); }
ul { list-style: none; }
img { max-width: 100%; height: auto; }
iframe { border: 0; max-width: 100%; }
a { color: var(--bleu); text-decoration: none; cursor: pointer; }
a:hover, a:focus { color: var(--bleu-clair); }
button, input, textarea { font: inherit; margin: 0; line-height: inherit; }
::placeholder { color: inherit; opacity: .7; }

/* Structure générale : le pied de page reste en bas sur les pages courtes */
.site { display: flex; flex-direction: column; min-height: 100vh; overflow: hidden; }
.principal { flex: 1 1 auto; }
.conteneur { width: 100%; max-width: var(--conteneur); margin: 0 auto; padding: 0 15px; }

/* Accessibilité */
.visuellement-cache {
  position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip-path: inset(50%); border: 0; white-space: nowrap;
}
.lien-evitement {
  position: absolute; top: 32px; left: 0; z-index: 999999; padding: 10px 15px;
  background: var(--fond); clip-path: inset(50%);
}
.lien-evitement:focus { clip-path: none; }

/* ---- Utilitaires de mise en forme du contenu ---------------------------- */
.centre { text-align: center; }
.justifie { text-align: justify; }
.justifie-cesure { text-align: justify; text-justify: inter-character; word-spacing: normal; hyphens: auto; }
.texte-blanc { color: #fff !important; }
.capitalise { text-transform: capitalize; }
.t16 { font-size: 16px; }
.souligne { text-decoration: underline; }
@media (max-width: 736px) { .masque-mobile { display: none !important; } }

/* ---- Boutons ------------------------------------------------------------- */
.bouton {
  display: inline-block;
  padding: var(--bouton-padding);
  border: 0;
  border-radius: 3px;
  background: var(--bleu);
  color: #fff;
  font-size: var(--bouton-taille);
  font-weight: 600;
  line-height: 1.6em;
  text-align: center;
  cursor: pointer;
}
.bouton:hover, .bouton:focus { color: #fff; }
.bouton-contour {
  display: block;
  width: calc(75% - .125em);
  padding: .667em 1.33em;
  border: 2px solid currentColor;
  border-radius: 3px;
  color: inherit;
  font-size: var(--bouton-taille);
  font-weight: 600;
  line-height: 1.6em;
  text-align: center;
}
.boutons { display: flex; flex-wrap: wrap; gap: .5em; justify-content: center; align-items: center; }

/* =============================================================================
   En-tête
   ========================================================================== */
.entete { position: relative; box-shadow: 0 -1px 3px rgba(0, 0, 0, .1); background: var(--fond); }
.entete a:not(.bouton) { color: var(--texte); }
.entete-ligne { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; margin: 0 -15px; }
.entete-ligne > * { margin: 4px 0; padding: 0 15px; min-height: 1px; display: flex; align-items: center; }
.entete-ligne > :empty { margin: 0; padding: 0; }
.entete-ligne > .a-droite { justify-content: flex-end; }
.entete-ligne > .au-centre { justify-content: center; }
.logo img { display: block; width: var(--logo); max-width: var(--logo); margin: 0 auto; }
.entete-mobile .logo { padding: 10px 0; }

/* Menus horizontaux (principal sur ordinateur, secondaire partout) */
.menu { display: flex; flex-wrap: wrap; margin: 0 -10px; }
.menu > li { position: relative; display: block; margin: 0 10px; }
.menu-ligne { position: relative; display: flex; align-items: center; padding: 0 4px; }
.menu-ligne > a { display: flex; align-items: center; min-height: 25px; padding-top: 1px; line-height: 1.6; }
/* Soulignement animé au survol */
.menu-ligne::after {
  content: ""; position: absolute; right: 0; bottom: 0; left: 0;
  width: 0; height: 2px; margin: 0 auto;
  background: var(--texte); transition: .3s; pointer-events: none;
}
.menu-ligne:hover::after { width: 100%; }
.fleche {
  display: flex; justify-content: center; align-items: center;
  margin-left: 5px; padding: 0; border: 0; background: none; color: inherit;
  line-height: 0; cursor: pointer;
}
.fleche svg { width: .5em; height: .5em; transition: transform .3s; }

/* Sous-menus déroulants (ordinateur) */
.sous-menu {
  position: absolute; top: 100%; right: 0; z-index: 100;
  background: var(--fond); box-shadow: rgba(149, 157, 165, .2) 0 8px 24px;
  visibility: hidden; opacity: 0;
}
.menu > li:hover > .sous-menu, .menu > li:focus-within > .sous-menu, .sous-menu.ouvert { visibility: visible; opacity: 1; }
.sous-menu li { min-width: 150px; }
/* La marge est autour du lien, pas dedans : seul le texte est cliquable, comme sur l'ancien site */
.sous-menu li { display: flex; padding: 10px 20px; white-space: nowrap; }
.sous-menu a { display: flex; align-items: center; width: 100%; min-height: 25px; line-height: 1.6; }

/* Bureau / mobile */
.entete-bureau { display: none; }
.entete-bureau .entete-ligne > * { margin: 8px 0; }
.entete-bureau .logo { margin: -10px; }
.entete-bureau .bouton { display: block; margin-left: 20px; padding: 8px 12px; font-size: var(--taille-texte); }
.entete-bureau .bouton:hover { background: var(--fond-sombre); }
@media (min-width: 960px) {
  .entete-bureau { display: block; }
  .entete-mobile { display: none; }
}

/* Bouton du menu mobile (trois barres, croix quand le menu est ouvert) */
.bouton-menu {
  display: flex; align-items: center; padding: 10px 15px;
  border: 1px solid currentColor; border-radius: 0; background: transparent;
  color: var(--texte); cursor: pointer;
}
.barres span { position: relative; display: block; width: 15px; height: 2px; background: currentColor; transition: .1s; }
.barres span:nth-child(2) { margin: 3px 0; }
.menu-ouvert .barres span:nth-child(1) { top: 5px; transform: rotate(45deg); }
.menu-ouvert .barres span:nth-child(2) { opacity: 0; }
.menu-ouvert .barres span:nth-child(3) { bottom: 5px; transform: rotate(-45deg); }

/* Panneau latéral du menu mobile */
.panneau-menu {
  position: fixed; top: 0; left: 0; z-index: 999900;
  display: flex; flex-direction: column;
  width: 360px; max-width: 100%; height: 100vh;
  background: var(--fond); overflow-wrap: break-word;
  visibility: hidden; transform: translateX(-100%);
  transition: .3s cubic-bezier(.79, .14, .15, .86);
}
.panneau-fermer { display: flex; justify-content: flex-end; padding: 8px 10px; }
.panneau-interieur { height: 100%; padding: 20px 15px; overflow-x: hidden; display: none; }
.voile {
  position: fixed; inset: 0; z-index: 999899;
  background: rgba(0, 0, 0, .5); visibility: hidden; opacity: 0; transition: .3s linear;
}
.menu-ouvert .panneau-menu { visibility: visible; transform: none; }
.menu-ouvert .panneau-interieur { display: block; }
.menu-ouvert .voile { visibility: visible; opacity: 1; }
.panneau-menu a { color: var(--texte); }
.menu-mobile { flex-direction: column; width: 100%; margin: 4px 0; }
.menu-mobile li { width: 100%; margin: 0; }
.menu-mobile .menu-ligne > a { flex-grow: 1; padding: 15px 0; }
.menu-mobile .menu-ligne::after { display: none; }
.menu-mobile .fleche { margin: -15px 0; padding: 15px; }
.menu-mobile .fleche svg { width: 1em; height: 1em; }
.menu-mobile .fleche[aria-expanded="true"] svg { transform: rotateX(180deg); }
.menu-mobile .sous-menu { position: relative; display: none; margin-left: 10px; box-shadow: none; background: none; visibility: visible; opacity: 1; }
.menu-mobile .sous-menu.ouvert { display: block; }
.menu-mobile .sous-menu li { padding: 0 4px; }
.menu-mobile .sous-menu a { padding: 15px 0; white-space: normal; }
@media (prefers-reduced-motion: reduce) {
  .panneau-menu, .voile { transition: none; }
}

/* =============================================================================
   Pied de page
   ========================================================================== */
.pied { position: relative; z-index: 11; background: var(--fond-sombre); color: #fff; }
.pied a { color: #fff; }
.pied p a { text-decoration: underline; }
.pied p a:hover { text-decoration: none; }
.pied-grille { display: grid; grid-template-columns: 1fr; align-items: start; margin: 0 -15px; }
.pied-col { width: 100%; min-height: 1px; margin: 4px 0; padding: 0 15px; }
.pied-zone-1 { padding: 20px; }
.pied-bloc { margin-bottom: 40px; }
.pied-bloc:last-child { margin: 0; }
.pied p:last-child { margin-bottom: 0; }
.pied-bas { padding: 8px 0; }
.pied-bas::after { content: "\00a0"; display: block; }
.pied-boutons { display: flex; flex-direction: column; align-items: center; gap: 50px; margin-bottom: 1.75em; }
@media (min-width: 960px) {
  .pied-grille { grid-template-columns: repeat(4, 1fr); min-height: 450px; }
  .pied-col { margin: 8px 0; }
  .pied-zone-1 { padding: 20px 10px 0; }
  .pied-zone-2 { padding: 20px 0 0; }
  .pied-zone-3 { padding: 20px; }
  .pied-zone-4 { padding: 20px 5px 0; }
  .pied-bas { padding: 12px 0; }
}

/* Bouton « retour en haut » */
.retour-haut {
  position: fixed; right: 20px; bottom: 30px; z-index: 999;
  display: flex; align-items: center; justify-content: center;
  padding: 8px 10px; border: 0; border-radius: 3px;
  background: var(--bleu); color: #fff; cursor: pointer;
  visibility: hidden; opacity: 0; transition: opacity .3s ease-in-out, visibility .3s ease-in-out;
}
.retour-haut.visible { visibility: visible; opacity: 1; }
.retour-haut svg { width: 16px; height: 16px; }

/* =============================================================================
   Titre de page et contenu
   ========================================================================== */
.titre-page { margin-top: 60px; }
.fil-ariane { display: block; margin-bottom: 30px; font-size: 14px; }
.fil-ariane a { color: #676767; }

/* Lien /#confiance (page À propos) : arrêt un peu au-dessus du titre, pour voir le haut du bandeau */
#confiance { scroll-margin-top: 80px; }

.contenu ul, .contenu ol { margin: 30px 0; padding-left: 20px; list-style: disc; }
.contenu li { margin-top: 10px; }
.contenu a:not([class]) { text-decoration: underline; }
.contenu a:not([class]):hover { text-decoration: none; }

/* Espacements verticaux */
.espace { clear: both; }
.e10 { height: 10px; } .e20 { height: 20px; } .e25 { height: 25px; } .e30 { height: 30px; }
.e40 { height: 40px; } .e50 { height: 50px; } .e60 { height: 60px; } .e100 { height: 100px; }
.e254 { height: 254px; } .e500 { height: 500px; }

/* Colonnes : empilées sous 782 px */
.colonnes { display: flex; flex-wrap: wrap; gap: 2em; margin-bottom: 1.75em; }
.colonne { flex-grow: 1; min-width: 0; overflow-wrap: break-word; word-break: break-word; }
.colonne.centre-v { align-self: center; width: 100%; }
.colonne.haut { align-self: flex-start; width: 100%; }
@media (max-width: 781px) {
  .colonne { flex-basis: 100% !important; }
}
@media (min-width: 782px) {
  .colonnes { flex-wrap: nowrap; }
  .colonne { flex-basis: 0; }
  .colonne[class*=" l-"] { flex-grow: 0; }
  .colonne.l-20 { flex-basis: 20%; }
  .colonne.l-25 { flex-basis: 25%; }
  .colonne.l-33 { flex-basis: 33.33%; }
  .colonne.l-66 { flex-basis: 66.66%; }
  .colonne.l-66p { flex-basis: 66%; }
  .colonne.l-75 { flex-basis: 75%; }
  .colonne.l-80 { flex-basis: 80%; }
  .colonne.l-100 { flex-basis: 100%; }
  .colonne.l-90px { flex-basis: 90px; }
  .colonne.l-160px { flex-basis: 160px; }
  .colonne.l-400px { flex-basis: 400px; }
}
.colonne.degrade-bleu { background: linear-gradient(45deg, rgb(21, 59, 87) 0%, rgb(82, 182, 250) 100%); color: #fff; }

/* Images */
.image img { vertical-align: bottom; }
.image > a { display: inline-block; }
.image.centre { display: table; margin-left: auto; margin-right: auto; }
.image.large img { width: 100%; }
.ombre img { box-shadow: rgba(0, 0, 0, .1) 0 4px 6px -1px, rgba(0, 0, 0, .06) 0 2px 4px -1px; }
.ombre img:hover { box-shadow: rgba(0, 0, 0, .1) 0 10px 15px -3px, rgba(0, 0, 0, .05) 0 4px 6px -2px; }

/* Bandeaux pleine largeur */
.bandeau {
  position: relative; display: flex; align-items: center; justify-content: center;
  min-height: 430px; overflow: clip; color: #fff;
}
.bandeau.compact { min-height: 20px; }
.pleine-largeur {
  width: 100vw; max-width: 100vw;
  margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  padding: 0 7.5px;
}
.large { width: 98vw; max-width: 98vw; margin-left: calc(50% - 49vw); margin-right: calc(50% - 49vw); }
@media (min-width: 960px) {
  .large { width: 70vw; max-width: 70vw; margin-left: calc(50% - 35vw); margin-right: calc(50% - 35vw); }
}
.bandeau-image {
  position: absolute; inset: 0; width: 100%; height: 100%; max-width: none;
  object-fit: cover; object-position: 0% 86%;
}
.bandeau-fond { position: absolute; inset: 0; }
.fond-sombre .bandeau-fond { background: var(--texte); }
.bandeau-fond.degrade { background: linear-gradient(300deg, rgb(0, 149, 255) 0%, rgb(21, 59, 87) 100%); opacity: .4; }
.bandeau-interieur { position: relative; width: 100%; max-width: var(--contenu-large); }

/* FAQ, citations, tableaux, fichiers à télécharger, cadres */
summary { cursor: pointer; }
blockquote { margin: 40px 0; padding-left: 20px; border-left: 4px solid var(--texte); overflow-wrap: break-word; }
blockquote p { margin-bottom: 10px; font-size: 1.25em; font-style: italic; }
.tableau { margin: 30px 0; overflow-x: auto; }
.tableau table { width: 100%; margin-bottom: 20px; border-collapse: collapse; }
.tableau td, .tableau th { padding: .5em; border: 1px solid; font-size: .9em; text-align: left; }
.tableau th { font-weight: 700; }
.fichier { font-size: .8em; text-align: center; }
.cadre-pdf { width: 100%; height: 1000px; }
.cadre-rdv { width: 100%; height: 1800px; }

/* Carte interactive (page À propos) : Leaflet et tuiles Google, repris de l'ancien site (assets/tiers/carte/) */
.carte-interactive { width: 100%; height: 500px; }
.contenu .carte-interactive a:not([class]) { text-decoration: none; }

/* =============================================================================
   Accueil : carrousel de logos
   ========================================================================== */
/* Effet « machine à écrire » du titre : la largeur visible s'anime (voir site.js) */
.machine-a-ecrire { display: inline-block; overflow: hidden; vertical-align: bottom; white-space: nowrap; }
.machine-a-ecrire.anime { transition: width 1.4s ease-in-out; }

/* touch-action : le glissé horizontal pilote le carrousel, le défilement vertical de la page reste possible */
.carrousel { overflow: hidden; cursor: grab; touch-action: pan-y; }
.carrousel.saisi { cursor: grabbing; user-select: none; }
.carrousel-piste { display: flex; transition: transform .3s ease; }
.carrousel-piste > * { flex-shrink: 0; width: 100%; margin-right: 15px; }
/* Largeurs avant le démarrage du script (ou sans JavaScript) */
@media (min-width: 577px) { .carrousel-piste > * { width: calc((100% - 15px) / 2); } }
@media (min-width: 769px) { .carrousel-piste > * { width: calc((100% - 30px) / 3); } }
@media (min-width: 993px) { .carrousel-piste > * { width: calc((100% - 45px) / 4); } }
@media (min-width: 1201px) { .carrousel-piste > * { width: calc((100% - 60px) / 5); } }
.carrousel img { display: block; width: 100%; height: auto; transition: transform .2s ease-in-out; }
/* Survol d'un logo : léger zoom et voile sombre, comme sur l'ancien site */
.carrousel figure { position: relative; overflow: hidden; }
.carrousel figure::after {
  content: ""; position: absolute; inset: 0;
  background: rgba(0, 0, 0, .2); opacity: 0; transition: opacity .2s ease-in-out; pointer-events: none;
}
.carrousel figure:hover img { transform: scale(1.05); }
.carrousel figure:hover::after { opacity: 1; }


/* Carte de l'offre de stage (page Recrutement), reprise de la carte « embed » de WordPress */
/* En ligne, comme le cadre d'origine : garde le même petit espace en dessous */
.carte-offre {
  position: relative; display: inline-block; width: 100%; vertical-align: baseline;
  max-width: 600px; padding: 25px; overflow: auto;
  border: 1px solid #dcdcde; background: #fff; color: #8c8f94;
  font: 400 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
  -webkit-font-smoothing: auto;   /* l'ancien cadre n'héritait pas du lissage de la page */
}
/* .contenu : doit l'emporter sur le soulignement général des liens du contenu */
.carte-offre a { color: #8c8f94; }
.contenu .carte-offre a { text-decoration: none; }
.contenu .carte-offre a:hover { text-decoration: underline; }
.carte-offre p { margin: 0; }
.carte-offre .carte-offre-titre { margin: 0 0 15px; font-size: 22px; font-weight: 600; line-height: 1.3; }
.carte-offre-titre a { color: #2c3338; }
.carte-offre .carte-offre-suite { color: #c3c4c7; }
.carte-offre-pied { display: flex; justify-content: space-between; align-items: center; margin-top: 30px; font-weight: 600; line-height: 1.78571428; }
.carte-offre-pied a { position: relative; display: inline-block; padding-left: 35px; }
.carte-offre-pied img { position: absolute; top: 50%; left: 0; width: 25px; height: 25px; transform: translateY(-50%); }
/* Bouton « partager » et sa fenêtre (même apparence que la carte WordPress d'origine, sans ses options WordPress) */
.carte-offre-ouvrir-partage, .carte-offre-fermer-partage { display: flex; padding: 4px; border: 0; background: none; color: #82878c; cursor: pointer; }
/* Comme dans la carte d'origine : le bouton déborde de la ligne sans l'agrandir */
.carte-offre-ouvrir-partage { margin: -8px 0 -4px; }
.carte-offre-ouvrir-partage:hover { color: #2271b1; }
.carte-offre-ouvrir-partage:focus-visible, .carte-offre-fermer-partage:focus-visible { border-radius: 100%; box-shadow: 0 0 0 2px #2271b1; outline: 2px solid transparent; }
.carte-offre-partage { position: absolute; inset: 0; padding: 45px 20px 20px; background: rgba(0, 0, 0, .9); color: #fff; }
.carte-offre-partage[hidden] { display: none; }
.carte-offre-fermer-partage { position: absolute; top: 20px; right: 20px; color: #fff; }
.carte-offre-partage label { display: block; margin-bottom: 10px; font-size: 16px; line-height: 1.3; }
.carte-offre-copie { display: flex; gap: 10px; }
.carte-offre-copie input { flex: 1; min-width: 0; height: 28px; padding: 0 5px; border: none; font: inherit; font-size: 14px; color: #1d2327; }
.carte-offre-copier { padding: 0 12px; border: 1px solid #fff; border-radius: 3px; background: none; color: #fff; font: inherit; font-size: 14px; cursor: pointer; white-space: nowrap; }
.carte-offre-copier:hover, .carte-offre-copier:focus-visible { background: #fff; color: #1d2327; }

/* =============================================================================
   Blog : liste des articles, article, barre latérale
   ========================================================================== */
/* flow-root : les marges internes s'additionnent au lieu de fusionner, comme dans le thème d'origine */
.liste-articles { display: flow-root; margin: 0 0 60px; }
.liste-articles .titre-page { margin-top: 60px; }
.articles { display: flex; flex-wrap: wrap; margin: 0 -15px 40px; }
.articles > article { width: 100%; margin-bottom: 30px; padding: 0 15px; }
@media (min-width: 960px) { .articles > article { width: 50%; } }
@media (min-width: 960px) { .articles > .carte-article { padding: 20px 35px; } }
.carte-article > * { margin-bottom: 20px; }
.carte-article > :last-child { margin-bottom: 0; }
.titre-article a { color: inherit; }
.titre-article {
  margin-bottom: 10px; font-size: var(--h3); line-height: var(--h3-interligne); overflow-wrap: break-word;
}
.carte-article > .titre-article { margin-bottom: 10px; }
.extrait p { margin-bottom: 0; }
.meta { margin-bottom: 20px; padding: 0; font-size: .9em; list-style: none; }
.meta li { display: inline-block; margin: 0; }
.meta li:not(:last-child)::after { content: "/"; padding: 0 8px; }

.mise-en-page-article { display: flex; flex-wrap: wrap; margin: 0 -15px; }
.mise-en-page-article > * { flex-grow: 1; max-width: 100%; margin: 0 auto; padding: 0 15px; }
.article { margin-bottom: 60px; padding-bottom: 30px; }
.article-entete { margin-top: 60px; margin-bottom: 60px; }
.article-entete h1 { margin-bottom: 10px; font-size: 32px; overflow-wrap: break-word; }
.article > .contenu { margin-bottom: 60px; }
.barre-laterale { margin-bottom: 20px; padding: 60px 15px; }
@media (min-width: 576px) {
  .article-entete { text-align: center; }
  .article-entete h1 { font-size: 42px; }
}
@media (min-width: 960px) {
  .mise-en-page-article { flex-wrap: nowrap; }
  .article { max-width: 70%; }
  .barre-laterale { max-width: 30%; padding-left: 45px; }
  .article-entete h1 { font-size: 62px; }
}
.widget { margin-bottom: 40px; }
.widget:last-child { margin: 0; }
.widget-titre { margin-bottom: 10px; font-size: var(--h4); font-weight: 700; }
.widget li { margin-top: 10px; }
.widget li a { color: var(--texte); }
.date-article { display: block; font-size: .9em; opacity: .7; }

