.elementor-153 .elementor-element.elementor-element-afa0812{--display:flex;}:root{--page-title-display:none;}/* Start custom CSS for html, class: .elementor-element-e130f89 *//* ================================================================
   SINEQUANONE ENGINEERING — Carrière / Offres d'emploi
   Feuille de style — à lier depuis carriere-sinequanone-engineering.html
   Seul le hero attend une vraie image : url("#") à remplacer.
   Tous les autres visuels sont des SVG inline dans le HTML.
   ================================================================ */

/* ---------- 1. Tokens ---------- */
:root{
  --blue:#027FFF;
  --navy:#034A77;
  --red:#990005;
  --text:#2E2E2E;
  --dark:#141414;
  --sky:#459CEC;
  --wash:#EFF5FC;
  --line:rgba(3,74,119,.18);
  --white:#fff;

  --ff-main:"Montserrat","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --ff-alt:"Outfit","Montserrat","Segoe UI",Roboto,Arial,sans-serif;

  --wrap:1220px;
  --wrap-wide:1200px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- 2. Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:40px;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--ff-main);
  font-size:16px;font-weight:400;line-height:1.7;
  color:var(--text);background:var(--white);
}
img{max-width:100%;height:auto;display:block;border:0}
a{color:var(--blue);text-decoration:none;transition:color .25s var(--ease)}
a:hover{color:var(--navy)}
ul{margin:0;padding:0;list-style:none}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
h1,h2,h3,h4{font-family:var(--ff-main);margin:0;line-height:1.25}
:focus-visible{outline:3px solid var(--sky);outline-offset:3px}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px;width:100%}
.wrap--wide{max-width:var(--wrap-wide)}

/* Titres récurrents de la maquette */
.h-section{font-size:34px;font-weight:600}
.h-section--blue{color:var(--blue)}
.h-section--center{text-align:center}
.h-culture{font-size:33px;font-weight:400;text-align:center}

/* Blocs de texte riche */
.rte ul{list-style:disc;padding-left:22px;margin:0 0 1em}
.rte li{margin-bottom:.35em}
.rte h3{font-size:20px;font-weight:600;color:var(--blue);margin:1.4em 0 .4em}
.rte .hl{color:#3366ff}

/* ---------- 3. Bouton ---------- */
.btn{
  display:inline-block;
  padding:12px 30px;
  font-size:16px;font-weight:500;
  color:var(--white);background:var(--blue);
  border:1px solid var(--blue);border-radius:30px;
  cursor:pointer;
  transition:background 1s var(--ease),color 1s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease);
}
.btn:hover{
  background:transparent;color:var(--blue);
  transform:translateY(-3px);
  box-shadow:0 12px 26px rgba(2,127,255,.22);
}
.btn-row{display:flex;justify-content:center}

/* ---------- 4. Hero ---------- */
.hero{
  position:relative;
  display:flex;flex-direction:column;
  justify-content:center;align-items:center;
  min-height:80vh;
  padding:20px;
  background-color:transparent;
  background-image:linear-gradient(180deg,#1C6AC5 0%,#439CED 70%);
  overflow:hidden;
}
/* Calque photo du hero : remplacer url("#") par l'image réelle */
.hero::before{
  content:"";position:absolute;inset:0;
  background-image:url("http://sinequanone-engineering.fr/wp-content/uploads/2026/08/d5593f35-e821-4b6f-98a1-44417fe66fdc.png");
  background-size:cover;background-position:center;background-repeat:no-repeat;
  opacity:.35;
}
.hero-inner{position:relative;max-width:var(--wrap);width:100%;text-align:center}
.hero h1{
  font-size:72px;font-weight:500;color:var(--white);
  text-shadow:2px 2px 2px rgba(0,0,0,.3);letter-spacing:1px;
}
.hero-sub{
  margin-top:-10px;
  font-size:20px;font-weight:500;letter-spacing:1.6px;color:var(--white);
  text-shadow:2px 2px 2px rgba(0,0,0,.3);
}

/* ---------- 5. Rangées texte / visuel ---------- */
.split{
  display:flex;flex-direction:row;align-items:stretch;
  justify-content:space-evenly;gap:20px;
  margin:40px auto;
}
.split--start{justify-content:space-between}
.split__copy{
  display:flex;flex-direction:column;justify-content:center;
  width:55%;
}
.split__copy h2{margin-bottom:.5em}

/* Conteneur de visuel : accueille un SVG inline */
.media{
  display:flex;align-items:center;justify-content:center;
  padding:20px;
  background:var(--wash);
  border-radius:15px;
  overflow:hidden;
  transition:box-shadow .5s var(--ease),transform .5s var(--ease);
}
.media:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(3,74,119,.14)}
.media svg{width:100%;height:auto;display:block}
.split__media{width:43%;min-height:288px;margin-top:30px}
.split__media--sm{width:36%;min-height:351px}
.split__media--md{width:40%;min-height:356px}
.split__media--xs{width:34%;min-height:283px}

/* ---------- 6. Offres d'emploi (accordéon) ---------- */
.offers{margin:90px auto}
.offers .h-section{margin-bottom:30px}

.accordion{width:100%;margin-bottom:30px}
.acc-item{border-bottom:1px solid var(--line)}
.acc-item h3{margin:0}
.acc-head{
  width:100%;
  display:flex;align-items:center;gap:14px;
  padding:18px 4px;
  background:none;border:0;cursor:pointer;
  font-family:inherit;font-size:16px;font-weight:700;
  color:var(--navy);text-align:left;
  transition:color .3s var(--ease);
}
.acc-head:hover{color:var(--blue)}
.acc-item.is-open .acc-head{color:var(--blue)}
.acc-chev{
  flex:0 0 auto;width:12px;height:12px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(-45deg);margin-top:-4px;
  transition:transform .35s var(--ease),margin .35s var(--ease);
}
.acc-item.is-open .acc-chev{transform:rotate(45deg);margin-top:4px}
.acc-panel{overflow:hidden;max-height:0;transition:max-height .5s var(--ease)}
.acc-panel-inner{padding:0 4px 26px;font-size:16px;line-height:28px}
.acc-panel-inner h4{font-size:17px;font-weight:700;color:var(--navy);margin:1.4em 0 .5em}
.job-meta{display:flex;flex-wrap:wrap;gap:8px 10px;margin-bottom:1.2em}
.job-meta li{
  font-size:14px;
  background:var(--wash);color:var(--navy);
  border-radius:20px;padding:5px 14px;
}
.acc-panel-inner ul:not(.job-meta){list-style:disc;padding-left:22px;margin:0 0 1em}
.acc-panel-inner ul:not(.job-meta) li{margin-bottom:.35em}

/* ---------- 7. Opportunités + candidature spontanée ---------- */
.opps{
  display:grid;grid-template-columns:repeat(2,1fr);gap:30px;
  align-items:start;margin:60px auto;
}
.opps__aside{
  display:flex;flex-direction:column;align-items:center;gap:24px;
  margin:75px 0;
}
.opps__visual{width:100%;min-height:200px}
.spontaneous{
  width:78.41%;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  padding:20px 10px;
  border:1px solid var(--blue);border-radius:30px;
  text-align:center;
  transition:box-shadow .35s var(--ease),transform .35s var(--ease);
}
.spontaneous:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(2,127,255,.16)}
.spontaneous h2{font-size:25px;font-weight:600;color:var(--blue)}
.spontaneous p{color:var(--dark)}

/* ---------- 8. Culture ---------- */
.culture{margin:60px auto}
.culture .h-culture{margin-bottom:30px}
.culture__banner{width:100%;padding:30px}

/* ---------- 9. Témoignages ---------- */
.testimonials{margin:60px auto}
.testimonials .h-section{margin-bottom:30px}
.carousel{position:relative;padding:0 44px}
.carousel__track{
  display:flex;gap:20px;
  overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;-ms-overflow-style:none;
  scroll-behavior:smooth;
  padding:6px 2px 10px;
}
.carousel__track::-webkit-scrollbar{display:none}
.quote{
  flex:0 0 calc(33.333% - 14px);
  scroll-snap-align:start;
  display:flex;flex-direction:column;gap:16px;
  background:var(--white);
  border:1px solid rgba(3,74,119,.12);border-radius:15px;
  padding:28px 26px;margin:0;
  transition:box-shadow .35s var(--ease),transform .35s var(--ease);
}
.quote:hover{transform:translateY(-5px);box-shadow:0 16px 36px rgba(3,74,119,.12)}
.quote__text{margin:0;font-size:16px;font-style:italic}
.quote__author{font-size:26px;font-weight:300;color:var(--blue);line-height:1.3;margin-top:auto}
.quote__role{display:block;font-size:15px;font-weight:500;color:var(--text);font-style:normal}
.carousel__btn{
  position:absolute;top:50%;transform:translateY(-50%);
  width:38px;height:38px;display:grid;place-items:center;
  background:var(--white);color:var(--blue);
  border:1px solid rgba(2,127,255,.35);border-radius:50%;
  cursor:pointer;font-size:20px;line-height:1;
  transition:background .3s var(--ease),color .3s var(--ease),opacity .3s var(--ease);
}
.carousel__btn:hover{background:var(--blue);color:var(--white)}
.carousel__btn--prev{left:0}
.carousel__btn--next{right:0}

/* ---------- 10. Processus de recrutement ---------- */
.process{margin:60px auto}
.process .h-section{margin-bottom:14px}
.process__intro{text-align:center;margin-bottom:34px}
.process__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.step{
  display:flex;flex-direction:column;align-items:center;gap:16px;
  background:var(--blue);color:var(--white);
  border-radius:15px;padding:34px 26px;text-align:center;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .35s var(--ease);
}
.step:hover{transform:translateY(-6px);background:var(--navy);box-shadow:0 16px 34px rgba(3,74,119,.28)}
.step__icon{width:52px;height:52px;color:var(--white)}
.step__icon svg{width:100%;height:100%}
.step h3{font-size:19px;font-weight:700}
.step p{font-size:15px}

/* ---------- 11. Diversité ---------- */
.diversity{margin:40px auto;display:flex;justify-content:space-evenly}
.diversity__copy{width:87.683%}
.diversity h2{margin-bottom:.5em}

/* ---------- 12. Formulaire de candidature ---------- */
.apply{margin-top:80px;padding:90px 20px;background:var(--wash)}
.apply__inner{max-width:800px;margin:0 auto;text-align:center}
.apply h2{font-size:34px;font-weight:600}
.apply__lead{margin:-16px 0 10px;font-size:24px;font-weight:500;color:var(--text)}
.apply__hint{margin:-6px 0 0;color:var(--dark)}

/* Carte du formulaire */
.apply-card{
  max-width:640px;margin:34px auto 0;
  padding:38px 38px 32px;
  background:var(--white);
  border-radius:20px;
  box-shadow:0 18px 50px rgba(3,74,119,.10);
  text-align:left;
}
.apply-form{display:block}

/* Grille des champs */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}
.field{display:flex;flex-direction:column;min-width:0}
.field--full{grid-column:1 / -1}
.field label{
  font-size:14px;font-weight:600;color:var(--navy);
  letter-spacing:.2px;padding-bottom:7px;
}
.field .req{color:var(--blue)}

/* Saisies */
.field input[type="text"],
.field input[type="email"],
.field input[type="tel"],
.field select,
.field textarea{
  width:100%;
  font-family:inherit;font-size:15.5px;color:var(--text);
  background:#FAFCFF;
  border:1.5px solid #DCE7F3;border-radius:10px;
  padding:12px 15px;
  transition:border-color .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease);
}
.field textarea{resize:vertical;min-height:118px;line-height:1.6}
.field input::placeholder,.field textarea::placeholder{color:#9AAABC}
.field input:hover,.field select:hover,.field textarea:hover{border-color:#BBD3EA}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:0;background:var(--white);
  border-color:var(--blue);
  box-shadow:0 0 0 4px rgba(2,127,255,.13);
}

/* Liste déroulante avec chevron dessiné */
.field select{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  padding-right:44px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23034A77' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 15px center;
  background-size:17px;
}

/* Zones de dépôt de fichier */
.drop{
  position:relative;
  display:flex;align-items:center;gap:14px;
  padding:16px 18px;
  background:#FAFCFF;
  border:1.5px dashed #C6DCF1;border-radius:12px;
  cursor:pointer;
  transition:border-color .25s var(--ease),background .25s var(--ease),transform .25s var(--ease);
}
.drop:hover{border-color:var(--blue);background:#F3F9FF}
.drop.is-dragover{border-color:var(--blue);background:#EAF4FF;transform:scale(1.01)}
.drop input[type="file"]{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0;cursor:pointer;
}
.drop__icon{
  flex:0 0 auto;width:40px;height:40px;
  display:grid;place-items:center;
  background:rgba(2,127,255,.10);color:var(--blue);
  border-radius:10px;
}
.drop__icon svg{width:20px;height:20px}
.drop__body{min-width:0;flex:1 1 auto}
.drop__title{
  display:block;font-size:14.5px;font-weight:600;color:var(--navy);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.drop__hint{display:block;font-size:12.5px;color:#7C8CA0;margin-top:2px}
.drop__clear{
  flex:0 0 auto;position:relative;z-index:2;
  width:28px;height:28px;display:none;place-items:center;
  background:none;border:0;border-radius:50%;
  color:#7C8CA0;font-size:18px;line-height:1;cursor:pointer;
  transition:background .25s var(--ease),color .25s var(--ease);
}
.drop__clear:hover{background:#FDECEC;color:var(--red)}
.drop.has-file{border-style:solid;border-color:var(--blue);background:#F3F9FF}
.drop.has-file .drop__icon{background:var(--blue);color:var(--white)}
.drop.has-file .drop__clear{display:grid}

/* États d'erreur */
.field .error{
  display:none;margin-top:6px;font-size:12.5px;font-weight:500;color:var(--red);
}
.field.has-error input[type="text"],
.field.has-error input[type="email"],
.field.has-error select,
.field.has-error textarea{border-color:var(--red);background:#FFF7F7}
.field.has-error .drop{border-color:var(--red);background:#FFF7F7}
.field.has-error .error{display:block}

/* Consentement */
.consent{
  display:flex;align-items:flex-start;gap:12px;
  margin:22px 0 4px;
  font-size:13.5px;line-height:1.6;color:#4A5A6A;
  cursor:pointer;
}
.consent input{
  flex:0 0 auto;width:19px;height:19px;margin-top:2px;
  accent-color:var(--blue);cursor:pointer;
}
.consent .req{color:var(--blue)}
.consent-error{display:none;margin:6px 0 0 31px;font-size:12.5px;font-weight:500;color:var(--red)}
.consent-error.is-shown{display:block}

/* Bouton d'envoi */
.form-actions{margin-top:24px}
.form-submit{
  width:100%;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 30px;
  font-family:inherit;font-size:16px;font-weight:600;
  color:var(--white);background:var(--blue);
  border:1px solid var(--blue);border-radius:30px;
  cursor:pointer;
  transition:background .4s var(--ease),color .4s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease);
}
.form-submit:hover{
  background:var(--navy);border-color:var(--navy);
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(3,74,119,.26);
}
.form-submit:disabled{opacity:.65;cursor:progress;transform:none;box-shadow:none}
.form-submit .spinner{
  width:17px;height:17px;display:none;
  border:2.5px solid rgba(255,255,255,.4);border-top-color:var(--white);
  border-radius:50%;
  animation:spin .7s linear infinite;
}
.form-submit.is-sending .spinner{display:block}
@keyframes spin{to{transform:rotate(360deg)}}

.form-note{margin-top:14px;font-size:12.5px;color:#7C8CA0;text-align:center}

/* Message d'état */
.form-status{
  margin-top:18px;padding:14px 18px;border-radius:12px;
  font-size:14.5px;text-align:center;
}
.form-status--ok{
  background:#E6F7E9;color:#0B7A25;
  font-weight:600;
  box-shadow:inset 0 0 0 1.5px rgba(11,122,37,.22);
}
.form-status--ko{background:#FDECEC;color:var(--red)}

/* Cadre technique d'envoi : présent mais invisible */
.sending-frame{
  position:absolute;
  width:0;height:0;border:0;
  visibility:hidden;
}

.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Formulaire — responsive */
@media (max-width:767px){
  .apply-card{padding:26px 20px;border-radius:16px;margin-top:26px}
  .form-grid{grid-template-columns:1fr;gap:16px}
  .field label{font-size:13.5px}
  .field input[type="text"],
  .field input[type="email"],
  .field input[type="tel"],
  .field select,
  .field textarea{font-size:16px;padding:12px 14px}  /* 16px : évite le zoom iOS */
  .drop{padding:14px;gap:12px}
  .drop__icon{width:36px;height:36px}
  .drop__title{font-size:13.5px}
  .form-submit{padding:14px 24px;font-size:15px}
}
@media (max-width:400px){
  .apply-card{padding:22px 16px}
  .drop__hint{font-size:11.5px}
}

/* ---------- 13. Nous contacter ---------- */
.contact-block{margin:40px auto 70px}
.contact-block h2{margin-bottom:.4em}
.contact-block h3{font-size:22px;font-weight:600;margin-bottom:.5em}

/* ---------- 14. Footer ---------- */
.site-footer{background:var(--dark);padding:40px 30px 25px;color:var(--white);font-family:var(--ff-alt)}
.footer-inner{max-width:1400px;margin:0 auto}
.footer-cols{
  display:flex;flex-wrap:wrap;gap:30px;
  padding:40px 0 30px;
  border-top:1px solid var(--blue);border-bottom:1px solid var(--blue);
}
.footer-col--brand{flex:0 0 29%}
.footer-col--nav{flex:1 1 180px}
.footer-col--contact{flex:0 0 22%;min-width:240px}
.footer-logo svg{width:260px;max-width:100%;height:auto}
.footer-col--brand p{margin-top:18px;font-size:14px;font-weight:500;text-align:justify}
.footer-col h4{
  font-family:var(--ff-alt);font-size:18px;font-weight:500;color:var(--white);
  text-decoration:underline;text-align:center;margin-bottom:18px;
  text-decoration-line:underline;text-underline-offset:3px;
}
.footer-list li{display:flex;align-items:flex-start;gap:10px;padding-bottom:5px;margin-top:5px}
.footer-list li .ico{flex:0 0 14px;width:14px;height:14px;margin-top:6px;color:var(--white)}
.footer-list li .ico svg{width:100%;height:100%;fill:currentColor}
.footer-list a,.footer-list span{font-size:14px;font-weight:500;color:var(--white);transition:color .3s var(--ease)}
.footer-list--nav a{text-transform:uppercase}
.footer-list a:hover{color:var(--blue)}
.social{display:flex;gap:12px;margin-top:16px}
.social a{
  display:grid;place-items:center;width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.1);color:var(--white);
  transition:background .3s var(--ease),transform .3s var(--ease);
}
.social a:hover{background:var(--blue);transform:translateY(-3px)}
.social svg{width:18px;height:18px;fill:currentColor}
.footer-bottom{margin-top:5px;padding-top:14px;display:flex;justify-content:center;font-size:14px;font-weight:500}

/* ---------- 15. Animations ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}
.reveal--left{transform:translateX(-40px)}
.reveal--right{transform:translateX(40px)}
.reveal--left.is-visible,.reveal--right.is-visible{transform:none}
.stagger>*{opacity:0;transform:translateY(26px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.stagger.is-visible>*{opacity:1;transform:none}
.stagger.is-visible>*:nth-child(1){transition-delay:.05s}
.stagger.is-visible>*:nth-child(2){transition-delay:.15s}
.stagger.is-visible>*:nth-child(3){transition-delay:.25s}

/* Animations propres aux illustrations SVG */
.svg-float{animation:float 6s ease-in-out infinite}
.svg-float--slow{animation-duration:9s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.svg-dash{stroke-dasharray:6 8;animation:dash 12s linear infinite}
@keyframes dash{to{stroke-dashoffset:-140}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.001ms!important}
  .reveal,.stagger>*{opacity:1!important;transform:none!important}
  .carousel__track{scroll-behavior:auto}
}

/* ================================================================
   16. RESPONSIVE — points de rupture Elementor (1024 / 767)
   ================================================================ */
@media (max-width:1024px){
  .hero{min-height:80vh}
  .hero h1{font-size:52px}

  .split{flex-direction:column-reverse;margin:30px auto}
  .split__copy{width:100%;padding:0 10px}
  .split__media,
  .split__media--sm,.split__media--md,.split__media--xs{width:100%;min-height:260px}

  .offers{margin:45px auto}
  .opps{grid-template-columns:1fr;margin:45px auto}
  .opps__aside{margin:45px 0}
  .spontaneous{width:100%;max-width:520px}

  .quote{flex:0 0 calc(50% - 10px)}

  .process__grid{grid-template-columns:1fr}
  .diversity__copy{width:100%}

  .apply{margin-top:40px;padding:80px 10px}

  .footer-col--brand,.footer-col--contact{flex:0 0 100%}
  .footer-col--nav{flex:1 1 46%}
  .footer-col h4{text-align:left}
}

@media (max-width:767px){
  body{font-size:14px}
  .hero{min-height:60vh}
  .hero::before{opacity:.3}
  .hero h1{font-size:38px}
  .hero-sub{font-size:12px}

  .h-section{font-size:24px}
  .h-culture{font-size:16px}
  .spontaneous h2{font-size:24px}
  .apply h2{font-size:24px}
  .apply__lead{font-size:18px}
  .rte h3{font-size:17px}

  .acc-head{font-size:14px}
  .acc-panel-inner{font-size:14px;line-height:26px}

  .quote{flex:0 0 100%}
  .quote__text{font-size:14px}
  .quote__author{font-size:22px}
  .carousel{padding:0 34px}

  /* Visuels masqués en mobile, comme dans la maquette */
  .opps__visual,
  .split__media--md,
  .split__media--xs{display:none}


  .site-footer{padding:40px 20px 25px}
  .footer-col--nav{flex:0 0 100%}
  .footer-logo svg{width:210px}
}

/* ================================================================
   NEUTRALISATION DU SOULIGNEMENT (thème + Elementor)
   ----------------------------------------------------------------
   Deux causes possibles, traitées ici toutes les deux :

   1. Ordre de chargement — le kit Elementor et le thème déclarent leur
      propre règle sur les liens et peuvent être chargés APRÈS cette
      feuille. À spécificité égale, la dernière règle gagne : le
      !important est le seul moyen fiable de reprendre la main.

   2. Propagation — text-decoration n'est pas héritée, elle est PEINTE
      par l'ancêtre sur toute sa descendance. Si un <p>, un <li> ou un
      conteneur Elementor porte un soulignement, écrire
      text-decoration:none sur le <a> enfant ne l'efface pas. Il faut
      couper la décoration sur les blocs porteurs — ce que fait le
      second groupe de sélecteurs.
   ================================================================ */

/* Liens et boutons : aucun soulignement, dans tous les états */
a,
a:link,
a:visited,
a:hover,
a:focus,
a:active,
button,
.btn,
.btn:link,
.btn:visited,
.btn:hover,
.btn:focus,
.elementor a,
.elementor-widget-container a,
.elementor-button,
.elementor-button:hover{
  text-decoration:none !important;
  -webkit-text-decoration:none !important;
  text-decoration-line:none !important;
  text-underline-offset:0;
}

/* Blocs porteurs : on coupe la décoration à la source, sinon elle
   continue d'être peinte sur les liens enfants */
p, li, ul, ol,
h1, h2, h3, h4, h5, h6,
span, address, blockquote, figcaption, label,
.elementor-widget-container{
  text-decoration:none;
}

/* Un élément inline-block ou inline-flex ne reçoit pas la décoration
   peinte par son parent. Les boutons de cette feuille sont déjà en
   inline-flex : on ne touche qu'aux boutons générés par Elementor,
   sinon on écraserait leur alignement d'icône. */
.elementor-button{display:inline-block}

/*
   Pour rétablir le soulignement sur les seuls liens en pleine phrase
   (recommandé en accessibilité : la couleur seule ne suffit pas à
   signaler un lien), décommenter ce bloc :

   p a:not(.btn), li a:not(.btn){
     text-decoration:underline !important;
     text-decoration-thickness:1px;
     text-underline-offset:3px;
   }
*//* End custom CSS */