:root {
  --webelan-card-radius: 26px;
  --webelan-card-border: rgba(255, 255, 255, .105);
  --webelan-card-border-strong: rgba(225, 101, 57, .52);
  --webelan-card-bg: radial-gradient(circle at 86% 0%, rgba(225, 101, 57, .14), transparent 38%), linear-gradient(180deg, rgba(255, 255, 255, .078), rgba(255, 255, 255, .024));
  --webelan-card-bg-hover: radial-gradient(circle at 86% 0%, rgba(225, 101, 57, .22), transparent 42%), linear-gradient(180deg, rgba(255, 255, 255, .096), rgba(255, 255, 255, .032));
  --webelan-card-shadow: inset 0 1px 0 rgba(255, 255, 255, .095), 0 30px 90px rgba(0, 0, 0, .32);
  --webelan-card-shadow-hover: inset 0 1px 0 rgba(255, 255, 255, .13), 0 36px 110px rgba(0, 0, 0, .42), 0 0 46px rgba(225, 101, 57, .12);
}

.webelan-contact-copy,
.webelan-contact-card,
.webelan-services-section .service-card,
.pricing-card,
.webelan-detail-step,
.webelan-detail-proof,
.webelan-detail-visual,
.webelan-related-service,
.webelan-legal-card,
.blog-content,
.number-wrapper,
.team-wrapper,
.info-content,
.testimonials-small,
.webelan-choice-card {
  border: 1px solid var(--webelan-card-border) !important;
  border-radius: var(--webelan-card-radius) !important;
  background: var(--webelan-card-bg) !important;
  box-shadow: var(--webelan-card-shadow) !important;
}

.webelan-contact-copy,
.webelan-contact-card,
.pricing-card,
.webelan-services-section .service-card,
.webelan-legal-card {
  position: relative;
  overflow: hidden;
}

.webelan-contact-copy::after,
.webelan-contact-card::after,
.pricing-card::after,
.webelan-legal-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(135deg, rgba(255, 255, 255, .12), transparent 30%, rgba(225, 101, 57, .08) 100%);
  opacity: .32;
}

.webelan-contact-copy > *,
.webelan-contact-card > *,
.pricing-card > *,
.webelan-legal-card > * {
  position: relative;
  z-index: 1;
}

.pricing-card,
.webelan-legal-card,
.blog-content,
.number-wrapper,
.team-wrapper,
.info-content,
.webelan-detail-step,
.webelan-detail-proof,
.webelan-related-service {
  transition: transform .34s cubic-bezier(.33, 1, .68, 1), border-color .3s ease, background .3s ease, box-shadow .3s ease;
}

.pricing-card:hover,
.pricing-card:focus-within,
.webelan-legal-card:hover,
.blog-grid .w-dyn-item:hover .blog-content,
.blog-grid .w-dyn-item:focus-within .blog-content,
.number-wrapper:hover,
.team-wrapper:hover,
.info-content:hover,
.webelan-detail-step:hover,
.webelan-detail-proof:hover,
.webelan-related-service:hover,
.webelan-related-service:focus-visible {
  transform: translate3d(0, -6px, 0);
  border-color: var(--webelan-card-border-strong) !important;
  background: var(--webelan-card-bg-hover) !important;
  box-shadow: var(--webelan-card-shadow-hover) !important;
}

.webelan-services-section .service-card {
  border-radius: var(--webelan-card-radius) !important;
  background: var(--webelan-card-bg) !important;
}

.webelan-services-section .service-card:hover,
.webelan-services-section .service-card:focus-within,
.webelan-services-section .service-card:has(.webelan-blob-button:focus-visible) {
  border-color: var(--webelan-card-border-strong) !important;
  background: var(--webelan-card-bg-hover) !important;
  box-shadow: var(--webelan-card-shadow-hover) !important;
}

.pricing-card {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  padding: clamp(24px, 2.8vw, 38px) !important;
}

.pricing-card .feature-wrap-2 {
  border-color: rgba(255, 255, 255, .09) !important;
}

.pricing-card .feature-big-title,
.pricing-card .feature-second {
  color: rgba(255, 255, 255, .72) !important;
}

.pricing-card .main-pricing-title,
.pricing-card .paragraph-product {
  color: #fff !important;
}

.blog-image,
.work-wrapper,
.lightbox-wrapper,
.rounded-image {
  border-radius: var(--webelan-card-radius) !important;
}

.blog-image,
.work-wrapper,
.lightbox-wrapper {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .085) !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .018)) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07), 0 24px 80px rgba(0, 0, 0, .28) !important;
  transition: transform .42s cubic-bezier(.16, 1, .3, 1), border-color .32s ease, box-shadow .32s ease;
}

.blog-grid .w-dyn-item:hover .blog-image,
.blog-grid .w-dyn-item:focus-within .blog-image,
.work-wrapper:hover,
.work-wrapper:focus-within,
.lightbox-wrapper:hover,
.lightbox-wrapper:focus-within {
  transform: translate3d(0, -6px, 0);
  border-color: rgba(225, 101, 57, .36) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .09), 0 32px 98px rgba(0, 0, 0, .36), 0 0 42px rgba(225, 101, 57, .10) !important;
}

.blog-content {
  margin-top: 18px;
  padding: clamp(20px, 2.2vw, 30px) !important;
}

.blog-title {
  text-wrap: balance;
}

.number-wrapper,
.team-wrapper,
.info-content {
  padding: clamp(18px, 2vw, 26px) !important;
}

.webelan-detail-step,
.webelan-detail-proof,
.webelan-related-service {
  padding: clamp(20px, 2.2vw, 28px) !important;
}

.webelan-detail-step:last-child {
  border-bottom: 1px solid var(--webelan-card-border) !important;
}

.webelan-detail-proof strong,
.webelan-related-service strong,
.webelan-detail-step h3 {
  color: #fff !important;
}

.webelan-detail-proof span,
.webelan-detail-step p {
  color: rgba(255, 255, 255, .68) !important;
}

.section-logo .clients-grid .w-inline-block {
  border-radius: 18px !important;
  background: radial-gradient(circle at 82% 0%, rgba(225, 101, 57, .12), transparent 40%), linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .022)) !important;
  box-shadow: var(--webelan-card-shadow) !important;
}

.section-logo .clients-grid .w-inline-block:hover,
.section-logo .clients-grid .w-inline-block:focus-visible {
  border-color: var(--webelan-card-border-strong) !important;
  background: var(--webelan-card-bg-hover) !important;
  box-shadow: var(--webelan-card-shadow-hover) !important;
}

.testimonials-small {
  padding: clamp(22px, 2.4vw, 34px) !important;
}

.menu-big .navigation-link-move {
  gap: clamp(14px, 1.8vw, 26px) !important;
}

.menu-big .navigation-link-move .text-gray {
  font-size: clamp(13px, 1.15vw, 17px) !important;
}

.menu-big .navigation-link-move .text-full,
.menu-big .navigation-link-move .text-line {
  font-size: clamp(50px, 5.7vw, 94px) !important;
  line-height: .92 !important;
  letter-spacing: -.035em !important;
  text-wrap: balance;
}

.menu-big .navigation-link-move[href$="pricing.html"] .text-full,
.menu-big .navigation-link-move[href$="pricing.html"] .text-line {
  transition: transform .3s cubic-bezier(.645, .045, .355, 1);
  will-change: transform;
}

.menu-big .navigation-link-move[href$="pricing.html"]:hover .text-full,
.menu-big .navigation-link-move[href$="pricing.html"]:focus-visible .text-full,
.menu-big .navigation-link-move[href$="pricing.html"]:hover .text-line,
.menu-big .navigation-link-move[href$="pricing.html"]:focus-visible .text-line {
  transform: translate3d(0, -100%, 0) !important;
  transition-duration: .4s;
}

.hero.for-inner .display-1.biger,
.section.for-inner .display-1.center {
  font-size: clamp(46px, 6.8vw, 98px) !important;
  line-height: .92 !important;
  letter-spacing: -.04em !important;
  text-wrap: balance;
}

@media screen and (max-width: 991px) {
  .menu-big .navigation-link-move .text-full,
  .menu-big .navigation-link-move .text-line {
    font-size: clamp(38px, 9vw, 70px) !important;
    letter-spacing: -.03em !important;
  }

  .hero.for-inner .display-1.biger,
  .section.for-inner .display-1.center {
    font-size: clamp(40px, 9.4vw, 76px) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .menu-big .navigation-link-move[href$="pricing.html"] .text-full,
  .menu-big .navigation-link-move[href$="pricing.html"] .text-line {
    transition-duration: .01ms !important;
  }
}

@media screen and (max-width: 767px) {
  :root {
    --webelan-card-radius: 20px;
  }

  .pricing-card,
  .webelan-legal-card,
  .blog-content,
  .number-wrapper,
  .team-wrapper,
  .info-content,
  .webelan-detail-step,
  .webelan-detail-proof,
  .webelan-related-service {
    transform: none !important;
  }

  .blog-content {
    margin-top: 14px;
  }
}

/* ------------------------------------------------------------------ */
/* Menu plein écran : décaler les titres vers le bas.                  */
/* Le menu est centré verticalement (.menu-big). Avec 6 entrées, le    */
/* 1er titre (Accueil) arrivait trop près du logo. On décale tout le   */
/* bloc vers le bas, dans l'espace vide, de façon proportionnelle à    */
/* la hauteur d'écran et bornée pour ne jamais couper "Contact".       */
/* ------------------------------------------------------------------ */
.menu-big .menu-content {
  transform: translateY(clamp(24px, 5vh, 88px));
}

/* ------------------------------------------------------------------ */
/* Fil d'Ariane (breadcrumb) — pages projets & articles.              */
/* Complète le schema BreadcrumbList : maillage interne + repère UX.  */
/* ------------------------------------------------------------------ */
.webelan-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 22px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.webelan-breadcrumb.center { justify-content: center; }
.webelan-breadcrumb a {
  color: rgba(255, 255, 255, 0.66);
  text-decoration: none;
  transition: color 0.2s ease;
}
.webelan-breadcrumb a:hover,
.webelan-breadcrumb a:focus-visible { color: #ffffff; }
.webelan-breadcrumb .sep { color: rgba(255, 255, 255, 0.28); }
.webelan-breadcrumb [aria-current="page"] { color: rgba(225, 101, 57, 0.92); }

/* ------------------------------------------------------------------ */
/* Responsive : hero des pages "inner" (projets, zones) — éviter que   */
/* le fil d'Ariane / H1 passent sous le header fixe (logo + menu).     */
/* Hauteur header mesurée : ≤479px=205px, 480-767px=143px, 768-991=163.*/
/* ------------------------------------------------------------------ */
@media screen and (max-width: 991px) {
  .section.for-inner { padding-top: 185px; }
}
@media screen and (max-width: 767px) {
  .section.for-inner { padding-top: 165px; }
}
@media screen and (max-width: 479px) {
  .section.for-inner { padding-top: 225px; }
}

/* ------------------------------------------------------------------ */
/* Responsive : en-têtes de section (titre + sous-titre) empilés sur   */
/* mobile (la grille 1fr .7fr de .flex-between débordait à ~390px).    */
/* ------------------------------------------------------------------ */
@media screen and (max-width: 767px) {
  .flex-between { grid-template-columns: 1fr; }
}
/* Stats "À propos" : 1 colonne dès la tablette (libellés en grand      */
/* format type « Sur mesure » débordaient en 2 colonnes à 768px).       */
@media screen and (max-width: 991px) {
  .number-grid { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------------ */
/* Ergonomie tactile mobile : cibles d'au moins ~44px (Apple/Google).  */
/* Priorité au click-to-call (lien téléphone) — vital en local.        */
/* ------------------------------------------------------------------ */
@media screen and (max-width: 767px) {
  .header-contact-links a.header-contact-link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    font-size: 13px;
  }
  /* Liens du footer : zone de tap plus haute + police lisible */
  .webelan-footer-link,
  .footer .link-underline,
  .footer-title-tag {
    display: inline-block;
    padding-top: 6px;
    padding-bottom: 6px;
  }
  .footer-title-tag { font-size: 13px; }
}

/* ------------------------------------------------------------------ */
/* Footer : équilibrage de la mise en page (le fond reste inchangé).   */
/* Origine Webflow : .footer-grid = 1.8fr .4fr 1fr (colonne centrale   */
/* vide) et .visit-grid = 3 colonnes pour 5 blocs (case vide en bas).  */
/* On repasse le footer en 2 blocs alignés, et les adresses en 2       */
/* colonnes avec « Zones d'intervention » sur toute la largeur.         */
/* ------------------------------------------------------------------ */
.footer .footer-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) !important;
  grid-column-gap: clamp(40px, 6vw, 96px) !important;
  align-items: start !important;
}
/* colonne centrale d'origine = espaceur vide → supprimée */
.footer .footer-grid > div:nth-child(2) {
  display: none !important;
}
.footer .visit-grid {
  grid-template-columns: 1fr 1fr !important;
  grid-column-gap: clamp(24px, 3vw, 48px) !important;
  align-items: start !important;
}
/* « Zones d'intervention » (dernier bloc, contenu plus long) pleine largeur */
.footer .visit-grid > *:last-child {
  grid-column: 1 / -1 !important;
}

/* Tablette : on empile les deux blocs du footer */
@media screen and (max-width: 991px) {
  .footer .footer-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: clamp(28px, 5vw, 44px) !important;
  }
}
/* Mobile : adresses sur une seule colonne */
@media screen and (max-width: 767px) {
  .footer .visit-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ------------------------------------------------------------------ */
/* Header mobile (≤479px) : tout garder sur UNE ligne.                  */
/* La grille Webflow passait à 2 colonnes pour 3 éléments (contact /    */
/* logo / menu) → le bouton « Menu » tombait sur une 2e ligne et,       */
/* l'en-tête étant en position:fixed, débordait par-dessus le hero.     */
/* On force 3 colonnes (logo centré au milieu), et on masque le lien    */
/* « Contact » redondant (accès via le menu plein écran + le CTA du     */
/* hero) pour garder le téléphone (click-to-call) bien lisible.         */
/* ------------------------------------------------------------------ */
@media screen and (max-width: 479px) {
  .navigation-main {
    grid-template-columns: 1fr auto 1fr !important;
    grid-column-gap: 10px !important;
    align-items: center !important;
  }
  /* colonnes latérales égales (1fr/1fr) → logo au centre exact ;
     téléphone collé à gauche, menu collé à droite */
  .navigation-main > .hide-social { justify-self: start !important; }
  .navigation-main > .flex-cart { justify-self: end !important; }
  /* ne garder que le téléphone (peu importe l'URL du lien Contact :
     certaines pages utilisent contact.html#contact-form) */
  .header-contact-links a.header-contact-link:not(.header-phone-disperse) {
    display: none !important;
  }
}

/* ------------------------------------------------------------------ */
/* Casse normale pour le texte courant.                                */
/* Le template applique body { text-transform: uppercase } et chaque   */
/* composant doit le remettre à "none". Des pages de contenu (À propos, */
/* Réalisations, Tarifs) héritaient des MAJUSCULES sur leurs            */
/* paragraphes, intros et descriptions de blocs → illisible. On         */
/* rétablit la casse normale sur ces textes (les grands titres /        */
/* étiquettes gardent leur style).                                      */
/* ------------------------------------------------------------------ */
.rich-text-minus-20px,
.rich-text-minus-20px p,
.rich-text-minus-20px li,
.subhead,
.job-role,
.sub-text-about {
  text-transform: none !important;
}

/* ------------------------------------------------------------------ */
/* Mobile : masquer les formes décoratives flottantes (.shape-1/2).     */
/* Positionnées en absolu, elles chevauchaient le texte sur petit       */
/* écran (et Safari les rendait en image cassée). Purement décoratives  */
/* (alt=""), on les retire sous 767px.                                  */
/* ------------------------------------------------------------------ */
@media screen and (max-width: 767px) {
  .shape-1,
  .shape-2 {
    display: none !important;
  }
}

/* ------------------------------------------------------------------ */
/* Page À propos : typo alignée sur le style propre des cartes          */
/* « UNE MÉTHODE SÉLECTIVE ». Paragraphes lisibles (~17px), intro en     */
/* lead léger, et mots/numéros géants 01/02/03 (« LOCAL », « SUR         */
/* MESURE ») ramenés de 120px à une taille sobre. Scopé .webelan-about. */
/* ------------------------------------------------------------------ */
.webelan-about-page .rich-text-minus-20px p,
.webelan-about-page .rich-text-minus-20px li {
  font-size: 17px !important;
  line-height: 1.65 !important;
  font-weight: 450 !important;
}
.webelan-about-page .subhead {
  font-size: 19px !important;
  line-height: 1.55 !important;
}
.webelan-about-page .number-about {
  font-size: clamp(42px, 6.5vw, 68px) !important;
  line-height: 1.05 !important;
}

/* ------------------------------------------------------------------ */
/* Page Tarifs : cartes lisibles.                                       */
/* 1) Casse normale (au lieu des MAJUSCULES héritées du body).          */
/* 2) Mise en page CENTRÉE (demande client) : titre, prix, sous-titre,  */
/*    liste « Ce qui est inclus » et CTA tous centrés dans la carte.    */
/* Scopé via .pricing-card (présent uniquement sur la page Tarifs).     */
/* ------------------------------------------------------------------ */
.pricing-card .main-pricing-title,
.pricing-card .paragraph-product,
.pricing-card .feature-big-title,
.pricing-card .feature-second {
  text-transform: none !important;
}
.pricing-card .feature-grid {
  justify-items: stretch !important;
}
.pricing-card .feature-wrap-2,
.pricing-card .feature-big-title,
.pricing-card .feature-second {
  text-align: left !important;
}
/* bouton « Planifier un rendez-vous » poussé en bas de carte → tous alignés + centré */
.pricing-card .margin-20px {
  margin-top: auto !important;
  text-align: center !important;
}

/* ------------------------------------------------------------------ */
/* Pages projet : retirer le cercle « play » superposé sur le visuel.   */
/* Il faisait croire à une vidéo (le visuel est une maquette). Le CTA   */
/* « Discuter d'un projet similaire » assure déjà la prise de contact.  */
/* ------------------------------------------------------------------ */
.lightbox-wrapper .project-circle-text {
  display: none !important;
}

/* ------------------------------------------------------------------ */
/* Page Tarifs : ligne de valeur (le résultat client) sous le prix.    */
/* Lisible, centrée, casse normale (sinon héritage MAJUSCULES du body).*/
/* ------------------------------------------------------------------ */
.pricing-card .webelan-offer-value {
  margin: 14px 0 2px !important;
  font-size: 16.5px !important;
  line-height: 1.55 !important;
  font-weight: 600 !important;
  color: #ffffff !important;
  text-transform: none !important;
  text-align: left !important;
}

/* Boutons tarifs : dégradé orange premium (reprend le style des boutons accueil) */
.pricing-card .button.w-button {
  background: linear-gradient(120deg, #f65f5b 0%, #e16539 52%, #f98b2f 100%) !important;
  color: #fff !important;
  border: 1px solid rgba(249, 139, 47, 0.34) !important;
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.26), 0 0 30px rgba(225, 101, 57, 0.16) !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 54px !important;
}
.pricing-card .button.w-button:hover,
.pricing-card .button.w-button:focus-visible {
  transform: translate3d(0, -4px, 0) scale(1.03) !important;
  box-shadow: 0 22px 52px rgba(0, 0, 0, 0.34), 0 0 40px rgba(225, 101, 57, 0.28) !important;
}

/* ------------------------------------------------------------------ */
/* Carte tarifs — modèle "pricing pro" (réf. fournie) :                 */
/* aligné à GAUCHE, puces à coche orange, CTA pleine largeur centré.    */
/* Couleurs WebElan conservées (dégradé orange, cartes sombres).        */
/* ------------------------------------------------------------------ */
.pricing-card,
.pricing-card .top-part-grid,
.pricing-card .pricing-center-wrapper,
.pricing-card .pricing-center-wrapper > div,
.pricing-card .main-pricing-title,
.pricing-card .paragraph-product {
  text-align: left !important;
}
/* espace avant la liste (sans trait de séparation) */
.pricing-card .margin-15px {
  margin-top: 22px !important;
  padding-top: 0 !important;
  border-top: 0 !important;
}
.pricing-card .feature-grid {
  row-gap: 14px !important;
}
/* chaque item : coche orange ronde + texte, bien alignés à gauche */
.pricing-card .feature-second {
  display: flex !important;
  align-items: flex-start !important;
  gap: 11px !important;
  text-align: left !important;
  line-height: 1.45 !important;
}
.pricing-card .feature-second::before {
  content: "\2713" !important;
  flex: 0 0 auto !important;
  width: 21px !important;
  height: 21px !important;
  margin-top: 1px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1.5px solid rgba(249, 139, 47, 0.85) !important;
  border-radius: 50% !important;
  color: #f98b2f !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}
/* flèche → sur le CTA (comme la référence) */
.pricing-card .button.w-button::after {
  content: "\2192" !important;
  font-size: 1.05em !important;
}
/* Le CTA est imbriqué dans 2 <div> sans classe qui se dimensionnent au  */
/* CONTENU (d'où l'espacement gauche/droite inégal selon la longueur du  */
/* texte). On force toute la chaîne à la pleine largeur de la cellule.   */
.pricing-card .margin-20px,
.pricing-card .margin-20px > div,
.pricing-card .margin-20px > div > div {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* ------------------------------------------------------------------ */
/* Posts (blog) — rangée méta : fil d'Ariane + (catégorie + date).      */
/* Le fil d'Ariane et la pastille pouvaient se toucher/superposer.      */
/* On enveloppe proprement avec un espace garanti, et on empile sur     */
/* mobile (fil d'Ariane sur sa ligne, catégorie + date en dessous).     */
/* ------------------------------------------------------------------ */
.div-block:has(> .webelan-breadcrumb) {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px 24px !important;
  margin-bottom: 24px !important;
}
.div-block:has(> .webelan-breadcrumb) > .webelan-breadcrumb {
  margin-bottom: 0 !important;
}
.div-block:has(> .webelan-breadcrumb) > .button-flex {
  flex: 0 0 auto !important;
}
@media (max-width: 700px) {
  .div-block:has(> .webelan-breadcrumb) > .webelan-breadcrumb,
  .div-block:has(> .webelan-breadcrumb) > .button-flex {
    flex: 1 1 100% !important;
  }
}

/* ------------------------------------------------------------------ */
/* Articles de blog (.w-richtext) : CASSE NORMALE. Le body du template  */
/* impose des MAJUSCULES — illisible sur un texte long. On rétablit une */
/* casse normale pour tout le corps d'article (lisibilité).             */
/* ------------------------------------------------------------------ */
.w-richtext,
.w-richtext p,
.w-richtext li,
.w-richtext h2,
.w-richtext h3,
.w-richtext h4,
.w-richtext blockquote,
.w-richtext a,
.w-richtext strong,
.w-richtext em {
  text-transform: none !important;
}
/* confort de lecture : interligne et espacement des sections */
.w-richtext p,
.w-richtext li {
  line-height: 1.7 !important;
}
.w-richtext h2 {
  margin-top: 34px !important;
}
/* Images insérées dans le corps d'article : pleine largeur, arrondi.    */
.w-richtext figure {
  margin: 30px 0 !important;
}
.w-richtext img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
/* Liens dans l'article (section « Sources ») : visibles et cliquables.  */
.w-richtext a:not(.button) {
  color: rgba(240, 140, 90, 0.95) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}
