/* Déménagement KCI — système de design 2026 (v2). Couleurs tirées du logo. */
.kci{
  --or:#E8500A; --or-hover:#CF4708; --or-fonce:#B93F08; --or-clair:#FDF0E9; --or-pale:#FFB489;
  --bleu:#1E6FC0; --bleu-clair:#E9F2FC;
  --vert:#2E8B20; --vert-clair:#EAF5E7;
  --ambre:#B8760C; --ambre-clair:#FDF3E3;
  --violet:#4F4FB0; --violet-clair:#EDEDF9;
  --magenta:#C02060; --magenta-clair:#FBEAF1;
  --encre:#14141A; --texte:#4F4F59; --texte-doux:#74747E;
  --ligne:#E4E4E9; --ligne-sombre:rgba(255,255,255,.14); --gris:#F6F6F8; --blanc:#FFF;
  --e1:4px; --e2:8px; --e3:16px; --e4:24px; --e5:40px; --e6:64px; --e7:96px; --e8:128px;
  --r1:4px; --r2:8px; --r3:16px; --r4:999px;
  --ombre-1:0 1px 2px rgba(20,20,26,.05);
  --ombre-2:0 12px 32px -12px rgba(20,20,26,.14);
  --ombre-3:0 24px 64px -20px rgba(20,20,26,.28);
  --t:180ms cubic-bezier(.4,0,.2,1);
  --contenu:1200px; --gouttiere:24px;
  --titre:'Cal Sans','Golos Text',system-ui,sans-serif;
  --corps:'Golos Text',system-ui,sans-serif;
}
.kci,.kci *,.kci *::before,.kci *::after{box-sizing:border-box}

.kci-sec{padding-block:var(--e7)}
.kci-sec--serre{padding-block:var(--e6)}
.kci-sec--gris{background:var(--gris)}
.kci-sec--blanc{background:var(--blanc)}
.kci-sec--sombre{background:var(--encre)}
.kci-wrap{width:100%;max-width:var(--contenu);margin:0 auto;padding-inline:var(--gouttiere)}
.kci-tete{max-width:660px;margin:0 0 var(--e6)}
.kci-tete--centre{margin-inline:auto;text-align:center}

/* Sur-titre : aucun tiret décoratif, il faisait trop généré par IA. */
.kci .kci-eyebrow{display:block!important;margin:0 0 var(--e3)!important;font-family:var(--corps)!important;font-size:.8rem!important;font-weight:700!important;letter-spacing:.18em!important;line-height:1.4!important;text-transform:uppercase!important;color:var(--or-fonce)!important}
.kci .kci-h1{font-family:var(--titre)!important;font-size:clamp(2.4rem,5.4vw,3.9rem)!important;line-height:1.06!important;font-weight:400!important;letter-spacing:-.02em!important;color:var(--encre)!important;margin:0 0 var(--e4)!important;text-transform:none!important;text-wrap:balance}
.kci .kci-h2{font-family:var(--titre)!important;font-size:clamp(1.9rem,4vw,2.9rem)!important;line-height:1.14!important;font-weight:400!important;letter-spacing:-.015em!important;color:var(--encre)!important;margin:0 0 var(--e3)!important;text-transform:none!important;text-wrap:balance}
.kci .kci-h3{font-family:var(--titre)!important;font-size:clamp(1.2rem,2vw,1.5rem)!important;line-height:1.3!important;font-weight:400!important;letter-spacing:-.01em!important;color:var(--encre)!important;margin:0 0 var(--e2)!important;text-transform:none!important}
.kci .kci-lead{font-family:var(--corps)!important;font-size:clamp(1.05rem,1.5vw,1.18rem)!important;line-height:1.7!important;font-weight:400!important;color:var(--texte)!important;margin:0!important;max-width:60ch}
.kci .kci-p{font-family:var(--corps)!important;font-size:1rem!important;line-height:1.7!important;font-weight:400!important;color:var(--texte)!important;margin:0!important}
.kci .kci-accent{color:var(--or)!important;font-style:normal!important}
.kci-sur-sombre .kci-h1,.kci-sur-sombre .kci-h2,.kci-sur-sombre .kci-h3{color:#fff!important}
.kci-sur-sombre .kci-lead,.kci-sur-sombre .kci-p{color:rgba(255,255,255,.82)!important}
.kci-sur-sombre .kci-eyebrow{color:var(--or-pale)!important}

.kci .kci-btn{display:inline-flex!important;align-items:center;justify-content:center;gap:10px;padding:16px 30px!important;border-radius:var(--r2);border:2px solid var(--or);background:var(--or);font-family:var(--corps)!important;font-size:1rem!important;font-weight:600!important;line-height:1.2!important;color:#fff!important;text-decoration:none!important;cursor:pointer;transition:background var(--t),border-color var(--t),transform var(--t),box-shadow var(--t)}
.kci .kci-btn:hover{background:var(--or-hover);border-color:var(--or-hover);color:#fff!important;transform:translateY(-2px);box-shadow:var(--ombre-2)}
.kci .kci-btn svg{width:16px;height:16px;flex:none}
.kci .kci-btn--ghost{background:0 0;border-color:var(--ligne);color:var(--encre)!important}
.kci .kci-btn--ghost:hover{background:var(--or-clair);border-color:var(--or);color:var(--or-fonce)!important}
.kci-sur-sombre .kci-btn--ghost{border-color:rgba(255,255,255,.34);color:#fff!important}
.kci-sur-sombre .kci-btn--ghost:hover{background:rgba(255,255,255,.1);border-color:#fff;color:#fff!important}

.kci-badge{display:inline-flex;align-items:center;gap:10px;padding:9px 18px 9px 14px;border-radius:var(--r4);border:1px solid var(--ligne);background:var(--blanc);font-family:var(--corps);font-size:.875rem;font-weight:600;color:var(--encre);margin:0 0 var(--e4)}
.kci-badge svg{width:16px;height:16px;flex:none;color:var(--or)}
.kci-badge b{font-weight:700;color:var(--encre)}
.kci-badge span{color:var(--texte-doux);font-weight:500}
.kci-sur-sombre .kci-badge{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:#fff;backdrop-filter:blur(8px)}
.kci-sur-sombre .kci-badge b{color:#fff}
.kci-sur-sombre .kci-badge span{color:rgba(255,255,255,.68)}

/* Hero : formulaire dès le début, à droite. Les 3 points passent en bande pleine largeur. */
.kci-hero{position:relative;isolation:isolate;background-color:var(--encre);background-position:center;background-size:cover;background-repeat:no-repeat;padding:var(--e7) 0 var(--e6);overflow:hidden;padding-top:clamp(130px,14vw,155px);background-image:url('https://demenagement-kci.ca/wp-content/uploads/2026/04/Demenagement-KCI-Home-Slider-1-opt.jpg')}
.kci-hero::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(14,14,19,.95) 0%,rgba(14,14,19,.88) 42%,rgba(14,14,19,.66) 76%,rgba(14,14,19,.5) 100%)}
.kci-hero__grid{display:grid;grid-template-columns:1.02fr .98fr;gap:var(--e6);align-items:center}
.kci-hero__copy{min-width:0;max-width:600px}
.kci-hero .kci-lead{max-width:50ch}
.kci-hero__cta{display:flex;flex-wrap:wrap;gap:var(--e3);margin-top:var(--e5)}
.kci-hero__form{display:flex;justify-content:flex-end;min-width:0}
.kci-hero__points{display:flex;flex-wrap:nowrap;justify-content:space-between;gap:var(--e4);margin:var(--e6) 0 0!important;padding:var(--e4) 0 0!important;list-style:none!important;border-top:1px solid var(--ligne-sombre)}
.kci-hero__points li{display:flex;align-items:center;gap:10px;margin:0!important;padding:0!important;list-style:none!important;font-family:var(--corps)!important;font-size:.9375rem!important;font-weight:500!important;line-height:1.3!important;color:rgba(255,255,255,.9)!important;white-space:nowrap}
.kci-hero__points li::before,.kci-hero__points li::marker{content:none!important}
.kci-hero__points svg{width:18px;height:18px;flex:none;color:var(--or)}

.kci-chiffres{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--e4)}
.kci-chiffre{text-align:center;padding:var(--e4) var(--e3);border-right:1px solid var(--ligne)}
.kci-chiffre:last-child{border-right:0}
.kci .kci-chiffre b{display:block;font-family:var(--titre)!important;font-size:clamp(2.2rem,4vw,3.1rem)!important;font-weight:400!important;line-height:1!important;letter-spacing:.01em!important;color:var(--or)!important;margin:0 0 var(--e2)!important;font-variant-numeric:tabular-nums}
.kci-chiffre:nth-child(2) b{color:var(--bleu)!important}
.kci-chiffre:nth-child(3) b{color:var(--vert)!important}
.kci-chiffre:nth-child(4) b{color:var(--violet)!important}
.kci .kci-chiffre span{display:block;font-family:var(--corps)!important;font-size:.875rem!important;font-weight:600!important;line-height:1.4!important;letter-spacing:.04em!important;color:var(--texte)!important}

/* Cartes de service : chaque service porte une couleur du logo. */
.kci-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--e4)}
.kci .kci-carte{display:flex!important;flex-direction:column;background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r3);padding:var(--e5) var(--e4) var(--e4);text-decoration:none!important;transition:border-color var(--t),transform var(--t),box-shadow var(--t)}
.kci .kci-carte:hover{border-color:var(--c,var(--or));transform:translateY(-4px);box-shadow:var(--ombre-2)}
.kci-carte__ico{width:54px;height:54px;border-radius:var(--r3);background:var(--ct,var(--or-clair));color:var(--c,var(--or));display:grid;place-items:center;margin:0 0 var(--e4);flex:none;transition:background var(--t),color var(--t)}
.kci .kci-carte:hover .kci-carte__ico{background:var(--c,var(--or));color:#fff}
.kci-carte__ico svg{width:26px;height:26px}
.kci .kci-carte p{flex:1;margin:0 0 var(--e4)!important}
.kci-carte__go{display:inline-flex;align-items:center;gap:8px;font-family:var(--corps)!important;font-size:.875rem!important;font-weight:600!important;letter-spacing:.02em!important;color:var(--c,var(--or-fonce))!important}
.kci-carte__go svg{width:14px;height:14px;transition:transform var(--t)}
.kci .kci-carte:hover .kci-carte__go svg{transform:translateX(4px)}

.kci-duo{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--e6);align-items:center}
.kci-duo__media{position:relative;min-width:0}
.kci-duo__media img{width:100%;max-height:520px;object-fit:cover;border-radius:var(--r3);display:block}
.kci-duo__etiquette{position:absolute;right:calc(var(--e4) * -1);bottom:var(--e4);background:var(--or);border-radius:var(--r3);padding:var(--e4) var(--e5);box-shadow:var(--ombre-3)}
.kci .kci-duo__etiquette b{display:block;font-family:var(--titre)!important;font-size:2.25rem!important;font-weight:400!important;line-height:1!important;letter-spacing:.02em!important;color:#fff!important;margin:0 0 var(--e1)!important;font-variant-numeric:tabular-nums}
.kci .kci-duo__etiquette span{display:block;font-family:var(--corps)!important;font-size:.75rem!important;font-weight:600!important;letter-spacing:.1em!important;text-transform:uppercase;color:#fff!important}

.kci-raisons{display:grid!important;grid-template-columns:1fr 1fr;gap:var(--e5) var(--e4);margin:var(--e5) 0!important;padding:0!important;list-style:none!important}
.kci-raisons li{display:flex;gap:var(--e3);margin:0!important;padding:0!important;list-style:none!important}
.kci-raisons li::before,.kci-raisons li::marker{content:none!important}
.kci-raisons i{flex:none;width:44px;height:44px;border-radius:var(--r2);background:var(--ct,var(--or-clair));color:var(--c,var(--or));display:grid;place-items:center}
.kci-raisons i svg{width:21px;height:21px}
.kci .kci-raisons strong{display:block;font-family:var(--titre)!important;font-size:1.0625rem!important;font-weight:400!important;line-height:1.35!important;color:var(--encre)!important;margin:0 0 var(--e2)!important;font-style:normal}
.kci .kci-raisons p{font-size:.9375rem!important;line-height:1.65!important;margin:0!important}

/* Recommandations : fond blanc, carte sobre. Plus de fond gris bizarre. */
.kci-avis{display:flex!important;flex-direction:column;background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r3);padding:var(--e4);box-shadow:none}
.kci-avis__citation{flex:1;margin:0 0 var(--e4)!important;border:0!important;padding:0!important;background:0 0!important;quotes:none}
.kci-avis__citation::before,.kci-avis__citation::after{content:none!important}
.kci .kci-avis__citation p{font-family:var(--corps)!important;font-size:1rem!important;line-height:1.75!important;color:var(--encre)!important;margin:0!important;background:0 0!important}
.kci-avis__pouce{width:38px;height:38px;border-radius:var(--r2);background:var(--bleu-clair);color:var(--bleu);display:grid;place-items:center;margin:0 0 var(--e3)}
.kci-avis__pouce svg{width:19px;height:19px}
.kci-avis__pied{display:flex;align-items:center;gap:12px;padding-top:var(--e3);border-top:1px solid var(--ligne)}
.kci .kci-avis__pied b{display:block;font-family:var(--corps)!important;font-size:.9375rem!important;font-weight:700!important;color:var(--encre)!important;line-height:1.3!important}
.kci .kci-avis__pied span{display:block;font-family:var(--corps)!important;font-size:.8125rem!important;font-weight:400!important;color:var(--texte-doux)!important;margin-top:2px;line-height:1.3!important}

.kci-bande{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--e4) var(--e5)}
.kci-bande__txt{display:flex;align-items:center;gap:var(--e3);min-width:0;flex:1 1 460px}
.kci-bande__txt i{flex:none;width:52px;height:52px;border-radius:var(--r3);background:var(--vert-clair);color:var(--vert);display:grid;place-items:center}
.kci-bande__txt i svg{width:24px;height:24px}
.kci .kci-bande__txt strong{display:block;font-family:var(--titre)!important;font-size:1.3125rem!important;font-weight:400!important;line-height:1.35!important;color:var(--encre)!important;margin:0 0 var(--e1)!important}
.kci .kci-bande__txt p{font-size:.9375rem!important;line-height:1.6!important;color:var(--texte)!important;margin:0!important}

/* Soumission : plus de photo de fond, un aplat sombre qui charge instantanément. */
.kci-soum-sec{background:var(--encre);padding-block:var(--e7)}
.kci-soum{display:grid;grid-template-columns:1fr .92fr;gap:var(--e6);align-items:center}
.kci-soum__info,.kci-soum__form{min-width:0}
.kci-soum__form{display:flex;justify-content:flex-end}
.kci-coord{display:grid!important;gap:var(--e3);margin:var(--e5) 0 0!important;padding:0!important;list-style:none!important}
.kci-coord li{display:flex;gap:var(--e3);align-items:flex-start;margin:0!important;padding:var(--e3) var(--e4)!important;border:1px solid var(--ligne-sombre);border-radius:var(--r2);background:rgba(255,255,255,.05);list-style:none!important}
.kci-coord li::before,.kci-coord li::marker{content:none!important}
.kci-coord i{flex:none;width:40px;height:40px;border-radius:var(--r2);background:rgba(255,255,255,.1);color:var(--or-pale);display:grid;place-items:center}
.kci-coord i svg{width:18px;height:18px}
.kci .kci-coord strong{display:block;font-family:var(--corps)!important;font-size:.6875rem!important;font-weight:700!important;letter-spacing:.12em!important;text-transform:uppercase;color:rgba(255,255,255,.5)!important;margin:0 0 var(--e1)!important;font-style:normal}
.kci .kci-coord span{display:block;font-family:var(--corps)!important;font-size:.9375rem!important;font-weight:600!important;line-height:1.6!important;color:#fff!important}
.kci .kci-coord a{color:#fff!important;text-decoration:none!important}
.kci .kci-coord a:hover{color:var(--or-pale)!important}

.rstb-site-logo img{max-height:74px!important;width:auto!important}
@media(max-width:1400px){.rstb-site-logo img{max-height:64px!important}}
@media(max-width:1024px){.rstb-site-logo img{max-height:56px!important}}

@media(max-width:1100px){
 .kci-sec{padding-block:var(--e6)}
 .kci-hero{padding-bottom:var(--e6)}
 .kci-soum-sec{padding-block:var(--e6)}
 .kci-hero__grid,.kci-duo,.kci-soum{grid-template-columns:1fr;gap:var(--e5)}
 .kci-hero__copy{max-width:100%}
 .kci-hero__form,.kci-soum__form{justify-content:flex-start}
 .kci-hero__points{flex-wrap:wrap;justify-content:flex-start;gap:var(--e3) var(--e5);margin-top:var(--e5)!important}
 .kci-grille{grid-template-columns:repeat(2,1fr)}
 .kci-duo__etiquette{right:var(--e4)}
 .kci-chiffres{grid-template-columns:repeat(2,1fr);gap:0}
 .kci-chiffre:nth-child(2n){border-right:0}
 .kci-chiffre:nth-child(-n+2){border-bottom:1px solid var(--ligne)}
}
@media(max-width:767px){
 .kci{--gouttiere:20px}
 .kci-hero{padding-bottom:var(--e5)}
 .kci-tete{margin-bottom:var(--e5)}
 .kci-grille,.kci-raisons{grid-template-columns:1fr}
 .kci-raisons{gap:var(--e4)}
 .kci-hero__cta .kci-btn{flex:1 1 100%}
 .kci-hero__points li{white-space:normal}
 .kci-duo__media img{max-height:300px}
 .kci-duo__etiquette{right:var(--e3);bottom:var(--e3);padding:var(--e3) var(--e4)}
 .kci .kci-duo__etiquette b{font-size:1.75rem!important}
 .kci-bande{flex-direction:column;align-items:flex-start}
 .kci-bande__txt{align-items:flex-start;flex:1 1 auto}
 .kci .kci-carte{padding:var(--e4)}
}
@media(prefers-reduced-motion:reduce){.kci *{animation:none!important;transition:none!important}}


/* ---------- Bouton Nous joindre dans l'en-tete ---------- */
.kci-joindre{position:relative;display:inline-flex;align-items:center;z-index:60}
.kci-joindre__btn{display:inline-flex;align-items:center;gap:9px;padding:13px 18px;border-radius:var(--r2);border:1.5px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);backdrop-filter:blur(8px);font-family:var(--corps);font-size:.9375rem;font-weight:600;line-height:1.2;color:#fff;cursor:pointer;white-space:nowrap;transition:background var(--t),border-color var(--t)}
.kci-joindre__btn:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.5)}
.kci-joindre__btn>svg{width:17px;height:17px;flex:none;color:var(--or-pale)}
.kci-joindre__chev{display:inline-flex;transition:transform var(--t)}
.kci-joindre__chev svg{width:14px;height:14px;display:block}
.kci-joindre.is-open .kci-joindre__chev{transform:rotate(180deg)}
.kci-joindre__menu{position:absolute;top:calc(100% + 10px);right:0;min-width:290px;padding:var(--e2);background:#fff;border:1px solid var(--ligne);border-radius:var(--r3);box-shadow:var(--ombre-3);display:grid;gap:var(--e1);animation:kciJoindreOuvre 180ms cubic-bezier(0,0,.2,1) both}
@keyframes kciJoindreOuvre{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}
.kci-joindre__menu[hidden]{display:none}
.kci-joindre__item{display:flex;align-items:center;gap:var(--e3);padding:var(--e3);border-radius:var(--r2);text-decoration:none;transition:background var(--t)}
.kci-joindre__item:hover{background:var(--or-clair)}
.kci-joindre__item i{flex:none;width:40px;height:40px;border-radius:var(--r2);background:var(--or-clair);color:var(--or);display:grid;place-items:center}
.kci-joindre__item:hover i{background:var(--or);color:#fff}
.kci-joindre__item i svg{width:19px;height:19px}
.kci-joindre__item b{display:block;font-family:var(--corps);font-size:.9375rem;font-weight:700;color:var(--encre);line-height:1.3}
.kci-joindre__item em{display:block;font-family:var(--corps);font-size:.8125rem;font-weight:500;font-style:normal;color:var(--texte-doux);margin-top:2px;line-height:1.3}
@media(max-width:1024px){.kci-joindre__btn>span{display:none}.kci-joindre__btn{padding:13px 14px}
.kci-joindre__menu{right:0;left:auto;min-width:min(280px,calc(100vw - 32px))}}
@media(prefers-reduced-motion:reduce){.kci-joindre__menu{animation:none}}

/* ==========================================================================
   EN-TETE : meme largeur que le contenu du site (il etait a 1800 px)
   ========================================================================== */
/* Copie exacte de .kci-wrap : meme max-width ET meme gouttiere, sinon le logo
   se retrouve decale de 24 px par rapport au texte de la page. */
header .elementor-element-e534776,
header .elementor-element-5b3a388{padding-inline:0!important}
header .elementor-element-5b3a388 > .e-con-inner{max-width:1200px!important;padding-inline:24px!important}
@media(max-width:767px){header .elementor-element-5b3a388 > .e-con-inner{padding-inline:20px!important}}
header .elementor-element-aa1ec0f{gap:20px!important;padding-inline:0!important}
header .elementor-element-95ec34e{flex:0 0 auto!important;padding-inline:0!important}
/* hauteur fixe : en flex, un max-height laisse le logo s'ecraser quand la place manque */
header .rstb-site-logo img{height:56px!important;width:auto!important;max-width:none!important;max-height:none!important}
@media(max-width:1024px){header .rstb-site-logo img{height:46px!important}}
header .elementor-element-4b8e638{flex:1 1 auto!important;min-width:0;justify-content:center!important}
header .elementor-element-4b8e638 > .elementor-widget-container,
header .elementor-element-4b8e638 .rstb-nav-menu{width:100%;justify-content:center}
header .elementor-element-818f6b3{flex:0 0 auto!important;gap:10px!important}
header .elementor-element-818f6b3 .rs-btn{white-space:nowrap!important;padding-inline:22px!important}

/* ---------- Menu : soulignement anime aux couleurs du logo ---------- */
header ul.primary-menu{justify-content:center!important;gap:2px}
header ul.primary-menu > li > a.menu-item-link{position:relative;display:inline-block;padding:9px 15px!important;font-family:var(--corps)!important;font-size:.9375rem!important;font-weight:600!important;color:rgba(255,255,255,.86)!important;text-decoration:none!important;transition:color 200ms ease,transform 200ms ease}
header ul.primary-menu > li > a.menu-item-link::after{content:'';position:absolute;left:15px;right:15px;bottom:1px;height:2px;border-radius:2px;pointer-events:none;background:linear-gradient(90deg,#E8500A 0%,#C02060 26%,#4F4FB0 50%,#1E6FC0 74%,#2E8B20 100%);transform:scaleX(0);transform-origin:left center;transition:transform 300ms cubic-bezier(.2,.8,.2,1)}
header ul.primary-menu > li > a.menu-item-link:hover,
header ul.primary-menu > li > a.menu-item-link:focus-visible{color:#fff!important;transform:translateY(-1px)}
header ul.primary-menu > li > a.menu-item-link:hover::after,
header ul.primary-menu > li > a.menu-item-link:focus-visible::after{transform:scaleX(1)}
header ul.primary-menu > li.current-menu-item > a.menu-item-link,
header ul.primary-menu > li.current_page_item > a.menu-item-link{color:#fff!important}
header ul.primary-menu > li.current-menu-item > a.menu-item-link::after,
header ul.primary-menu > li.current_page_item > a.menu-item-link::after{transform:scaleX(1)}
@media(prefers-reduced-motion:reduce){header ul.primary-menu > li > a.menu-item-link,header ul.primary-menu > li > a.menu-item-link::after{transition:none}}


/* PAGES INTERIEURES */
.kci-shero{position:relative;overflow:hidden;background:var(--encre);padding-block:var(--e7)}
.kci-shero::before{content:'';position:absolute;inset:0;background-size:cover;background-position:center;background-image:var(--photo);opacity:.28}
.kci-shero::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,rgba(20,20,26,.94) 0%,rgba(20,20,26,.82) 46%,rgba(20,20,26,.55) 100%)}
.kci-shero > .kci-wrap{position:relative;z-index:2}
.kci-fil{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e2);margin:0 0 var(--e4);padding:0;list-style:none}
.kci-fil li{margin:0;padding:0;list-style:none;font-family:var(--corps);font-size:.8125rem;font-weight:500;color:rgba(255,255,255,.6)}
.kci-fil li::before,.kci-fil li::marker{content:none}
.kci-fil a{color:rgba(255,255,255,.72);text-decoration:none;transition:color var(--t)}
.kci-fil a:hover{color:#fff}
.kci-fil li + li::before{content:'/';display:inline-block;margin-right:var(--e2);color:rgba(255,255,255,.35)}
.kci .kci-shero h1{max-width:16ch}
.kci .kci-shero .kci-lead{max-width:54ch;margin-top:var(--e3)!important}
.kci-shero__cta{display:flex;flex-wrap:wrap;gap:var(--e3);margin-top:var(--e5)}
.kci-shero__rappel{display:flex;flex-wrap:wrap;gap:var(--e3) var(--e5);margin-top:var(--e5);padding-top:var(--e4);border-top:1px solid rgba(255,255,255,.14)}
.kci-shero__rappel span{display:inline-flex;align-items:center;gap:var(--e2);font-family:var(--corps);font-size:.875rem;font-weight:500;color:rgba(255,255,255,.78)}
.kci-shero__rappel svg{width:17px;height:17px;flex:none;color:var(--or-pale)}
@media(max-width:900px){.kci-shero{padding-block:var(--e6)}.kci .kci-shero h1{max-width:none}}

.kci-cite{position:relative;margin:var(--e5) 0 0;padding:var(--e4) var(--e4) var(--e4) var(--e5);background:var(--or-clair);border-radius:var(--r3);border-left:3px solid var(--or)}
.kci .kci-cite p{font-family:var(--titre)!important;font-size:1.1875rem!important;font-weight:400!important;line-height:1.55!important;color:var(--encre)!important;margin:0!important;font-style:normal}
@media(max-width:600px){.kci-cite{padding:var(--e4)}.kci .kci-cite p{font-size:1.0625rem!important}}

.kci-cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--e4)}
.kci-col{background:#fff;border:1px solid var(--ligne);border-radius:var(--r3);padding:var(--e5);box-shadow:var(--ombre-1)}
.kci-col--gris{background:var(--gris);border-color:transparent;box-shadow:none}
.kci-col__t{display:flex;align-items:center;gap:var(--e3);margin:0 0 var(--e4)}
.kci-col__t i{flex:none;width:40px;height:40px;border-radius:var(--r2);background:var(--ct,var(--or-clair));color:var(--c,var(--or));display:grid;place-items:center}
.kci-col__t i svg{width:20px;height:20px}
.kci .kci-col__t strong{font-family:var(--titre)!important;font-size:1.1875rem!important;font-weight:400!important;line-height:1.2!important;color:var(--encre)!important;font-style:normal}
.kci-check{margin:0!important;padding:0!important;list-style:none!important;display:grid;gap:var(--e3)}
.kci-check li{display:flex;gap:var(--e3);align-items:flex-start;margin:0!important;padding:0!important;list-style:none!important}
.kci-check li::before,.kci-check li::marker{content:none!important}
.kci-check svg{flex:none;width:20px;height:20px;margin-top:2px;color:var(--c,var(--or))}
.kci .kci-check span{font-family:var(--corps)!important;font-size:.9375rem!important;line-height:1.6!important;color:var(--texte)!important}
@media(max-width:820px){.kci-cols{grid-template-columns:1fr}.kci-col{padding:var(--e4)}}

.kci-autres{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--e3)}
.kci-autre{display:flex;align-items:center;justify-content:space-between;gap:var(--e3);background:#fff;border:1px solid var(--ligne);border-radius:var(--r2);padding:var(--e3) var(--e4);text-decoration:none;transition:border-color var(--t),transform var(--t),box-shadow var(--t)}
.kci-autre:hover{border-color:var(--or);transform:translateY(-2px);box-shadow:var(--ombre-2)}
.kci .kci-autre b{font-family:var(--titre)!important;font-size:1rem!important;font-weight:400!important;line-height:1.3!important;color:var(--encre)!important;font-style:normal}
.kci-autre svg{flex:none;width:18px;height:18px;color:var(--or);transition:transform var(--t)}
.kci-autre:hover svg{transform:translateX(3px)}
@media(max-width:860px){.kci-autres{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.kci-autres{grid-template-columns:1fr}}

/* Le menu ne doit jamais passer sur deux lignes : la 2e ligne retombait sur le titre. */
header ul.primary-menu{flex-wrap:nowrap!important}
header ul.primary-menu > li{flex:0 0 auto!important}
header ul.primary-menu > li > a.menu-item-link{white-space:nowrap!important}
header .elementor-element-4b8e638{flex:0 1 auto!important;min-width:auto!important}

/* Le hero interieur passe sous l'en-tete transparent, meme reglage que l'accueil. */
.kci-shero{padding-top:clamp(130px,14vw,155px);padding-bottom:var(--e6)}
@media(max-width:900px){.kci-shero{padding-top:clamp(112px,16vw,130px);padding-bottom:var(--e5)}}

/* Sur les pages de service, la photo remplit sa colonne au lieu de flotter au centre. */
.kci-duo--svc{align-items:stretch}
.kci-duo--svc .kci-duo__media img{height:100%;min-height:360px;max-height:none;object-fit:cover}
@media(max-width:900px){.kci-duo--svc{grid-template-columns:1fr}.kci-duo--svc .kci-duo__media img{min-height:260px;max-height:340px}}

/* Vitrine des services : carte photo, page Services. */
.kci-vitrine{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--e4)}
.kci-vitrine__c{display:flex;flex-direction:column;background:#fff;border:1px solid var(--ligne);border-radius:var(--r3);overflow:hidden;text-decoration:none;transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
.kci-vitrine__c:hover{transform:translateY(-4px);box-shadow:var(--ombre-2);border-color:var(--c,var(--or))}
.kci-vitrine__img{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--ct,var(--gris))}
.kci-vitrine__img img{width:100%;height:100%;max-width:100%;object-fit:cover;display:block;transition:transform 420ms cubic-bezier(.2,.8,.2,1)}
.kci-vitrine__c:hover .kci-vitrine__img img{transform:scale(1.045)}
.kci-vitrine__img::after{content:'';position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--c,var(--or))}
.kci-vitrine__t{display:flex;flex-direction:column;gap:var(--e2);padding:var(--e4);flex:1}
.kci .kci-vitrine__t b.kci-h3{margin:0!important;font-style:normal}
.kci .kci-vitrine__t span.kci-p{margin:0 0 var(--e3)!important;font-size:.9375rem!important;line-height:1.62!important;flex:1}
.kci .kci-vitrine__t .kci-carte__go{margin-top:auto;color:var(--c,var(--or))!important}
.kci-vitrine__c:hover .kci-carte__go svg{transform:translateX(3px)}
@media(max-width:980px){.kci-vitrine{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.kci-vitrine{grid-template-columns:1fr}}

/* Page A propos : trio de piliers et blocs d'engagement alternes. */
.kci-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--e4)}
@media(max-width:900px){.kci-trio{grid-template-columns:1fr}}
.kci-trio .kci-col__t{margin-bottom:var(--e3)}
.kci .kci-trio .kci-p{margin:0 0 var(--e4)!important;font-size:.9375rem!important;line-height:1.65!important}

.kci-duo--eng{margin-top:var(--e6)}
.kci-duo--eng + .kci-duo--eng{margin-top:var(--e6)}
.kci-duo--inv .kci-duo__media{order:2}
.kci .kci-h2--petit{font-size:clamp(1.4rem,2.4vw,1.75rem)!important;line-height:1.22!important;margin:0 0 var(--e3)!important}
.kci-check--duo{grid-template-columns:1fr 1fr;gap:var(--e2) var(--e4);margin-top:var(--e4)!important}
@media(max-width:900px){.kci-duo--inv .kci-duo__media{order:0}.kci-duo--eng{margin-top:var(--e5)}.kci-check--duo{grid-template-columns:1fr}}
.kci-duo--eng .kci-check svg{color:var(--c,var(--or))}
.kci-duo--eng .kci-eyebrow{color:var(--c,var(--or))!important}

/* Bloc inverse : on echange aussi la largeur des colonnes, sinon la photo grossit. */
.kci-duo--inv{grid-template-columns:1.1fr .9fr}
@media(max-width:900px){.kci-duo--inv{grid-template-columns:1fr}}

/* Le theme impose img{height:auto} : la photo laissait une bande vide sous elle.
   En absolu, elle remplit toujours le cadre 16/10. */
.kci .kci-vitrine__img img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important}
.kci .kci-duo--svc .kci-duo__media img{height:100%!important;min-height:360px}
@media(max-width:900px){.kci .kci-duo--svc .kci-duo__media img{min-height:260px;height:auto!important;max-height:340px}}

/* Aucun mot orphelin sur la derniere ligne, peu importe la langue.
   pretty evite la veuve, balance equilibre les titres courts. */
.kci p, .kci li, .kci blockquote p, .kci .kci-lead, .kci .kci-p{text-wrap:pretty}
.kci h1, .kci h2, .kci h3, .kci .kci-h1, .kci .kci-h2, .kci .kci-h3{text-wrap:balance}
.kci .kci-hero__copy .kci-lead{max-width:52ch}

/* Selecteur de langue dans l'en-tete. */
.kci-lang{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);flex:0 0 auto}
.kci-lang__b{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:28px;padding:0 9px;border-radius:999px;font-family:'Golos Text',system-ui,sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.04em;line-height:1;color:rgba(255,255,255,.72);text-decoration:none;transition:color 180ms ease,background-color 180ms ease}
.kci-lang__b:hover{color:#fff}
.kci-lang__b.is-on{background:#E8500A;color:#fff}
@media(max-width:1024px){.kci-lang{margin-right:4px}.kci-lang__b{min-width:30px;height:26px;padding:0 7px;font-size:.7rem}}

/* Mention sous un avis traduit. */
.kci .kci-avis__trad{margin:var(--e2) 0 0!important;font-family:var(--corps)!important;font-size:.75rem!important;font-style:italic;color:var(--texte-doux)!important;letter-spacing:.01em}

/* Hero : le titre doit tenir sur deux lignes, pas trois.
   On elargit la colonne de gauche et on calme un peu la taille. */
.kci-hero__grid{grid-template-columns:1.2fr .8fr}
.kci-hero__copy{max-width:680px}
.kci .kci-hero__copy .kci-h1{font-size:clamp(2.3rem,1.35rem + 3.3vw,3.55rem)!important;margin-bottom:var(--e3)!important}
.kci .kci-hero__copy .kci-lead{max-width:46ch;margin-bottom:var(--e4)!important}

/* Le badge passe sous le texte : il donne l'air au titre au lieu de lui voler sa place. */
.kci-hero__copy .kci-badge{margin:0!important}
@media(max-width:1100px){.kci-hero__grid{grid-template-columns:1fr}.kci-hero__copy{max-width:none}}

/* Le selecteur FR/EN a ajoute 80 px dans l'en-tete : le bouton Soumission
   sortait du rail de 1200 px. On resserre tout le rang pour que ca rentre. */
header .elementor-element-aa1ec0f{gap:12px!important}
header .elementor-element-818f6b3{gap:8px!important}
header ul.primary-menu{gap:0}
header ul.primary-menu > li > a.menu-item-link{padding:9px 10px!important}
header ul.primary-menu > li > a.menu-item-link::after{left:10px;right:10px}
header .elementor-element-818f6b3 .rs-btn{padding-inline:15px!important}
.kci-lang{padding:2px;gap:1px}
.kci-lang__b{min-width:28px;height:26px;padding:0 6px}
.kci-joindre__btn{padding-inline:12px!important}

@media(max-width:1340px){
  header ul.primary-menu > li > a.menu-item-link{padding:9px 7px!important;font-size:.875rem!important}
  header ul.primary-menu > li > a.menu-item-link::after{left:7px;right:7px}
  header .elementor-element-818f6b3 .rs-btn{padding-inline:12px!important;font-size:.8125rem!important}
}

/* Le widget du bouton Soumission etait ecrase a 0 px de large par le flex :
   le bouton en inline-flex debordait alors de son propre parent et sortait du rail.
   Aucun enfant de ce groupe ne doit retrecir. */
header .elementor-element-818f6b3 > *{flex:0 0 auto!important;min-width:max-content}
header .elementor-element-818f6b3 .rs-button,
header .elementor-element-818f6b3 .elementor-widget-container{width:max-content!important}

/* Le selecteur vit maintenant a cote du logo : il y avait 120 px de vide la,
   et zero a droite ou il ecrasait le menu. */
header .elementor-element-95ec34e{display:flex!important;align-items:center;gap:14px!important;width:max-content!important}
header .elementor-element-818f6b3{width:max-content!important;flex:0 0 auto!important}
header .elementor-element-4b8e638{flex:1 1 auto!important;min-width:0!important}
header ul.primary-menu{max-width:100%}

/* Le conteneur du logo est en colonne : le selecteur tombait sous le logo. */
header .elementor-element-95ec34e{flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important}
header .elementor-element-95ec34e > *{flex:0 0 auto!important}
@media(max-width:520px){header .elementor-element-95ec34e{gap:10px!important}}

/* Le rang de l'en-tete etait deja plein avant le selecteur : il faut reprendre
   les 66 px quelque part. On les prend sur les rembourrages, pas sur le contenu. */
@media(min-width:1025px){
  header ul.primary-menu > li > a.menu-item-link{padding:9px 7px!important;font-size:.875rem!important}
  header ul.primary-menu > li > a.menu-item-link::after{left:7px;right:7px}
  header .elementor-element-aa1ec0f{gap:10px!important}
  header .elementor-element-95ec34e{gap:10px!important}
  header .elementor-element-818f6b3{gap:6px!important}
  header .elementor-element-818f6b3 .rs-btn{padding-inline:13px!important;font-size:.8125rem!important}
  .kci-joindre__btn{padding-inline:10px!important;font-size:.8125rem!important}
  .kci-lang__b{min-width:26px;height:24px;padding:0 5px;font-size:.6875rem}
}
@media(min-width:1500px){
  header ul.primary-menu > li > a.menu-item-link{padding:9px 12px!important;font-size:.9375rem!important}
  header ul.primary-menu > li > a.menu-item-link::after{left:12px;right:12px}
  header .elementor-element-aa1ec0f{gap:16px!important}
  header .elementor-element-818f6b3 .rs-btn{padding-inline:18px!important;font-size:.875rem!important}
}

/* === EN-TETE PLUS LARGE ET PLUS SERRE === */
/* Le rail du haut passe a 1400 px : le contenu reste a 1200, mais le menu respire. */
header .elementor-element-5b3a388 > .e-con-inner{max-width:1400px!important}
@media(max-width:1480px){header .elementor-element-5b3a388 > .e-con-inner{max-width:calc(100% - 48px)!important}}

/* Les categories se rapprochent. */
@media(min-width:1025px){
  header ul.primary-menu{gap:0!important}
  header ul.primary-menu > li > a.menu-item-link{padding:9px 11px!important;font-size:.9375rem!important}
  header ul.primary-menu > li > a.menu-item-link::after{left:11px;right:11px}
  header .elementor-element-aa1ec0f{gap:20px!important}
  header .elementor-element-818f6b3{gap:10px!important}
  header .elementor-element-818f6b3 .rs-btn{padding-inline:18px!important;font-size:.875rem!important}
}

/* Nous joindre devient une pastille telephone : l'icone et le chevron, rien d'autre. */
.kci-joindre__txt{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.kci-joindre__btn{padding:0 10px 0 12px!important;gap:5px!important}
.kci-joindre__btn > svg:first-child{width:18px;height:18px}
.kci-joindre__chev svg{width:15px;height:15px}

/* ============================================================
   REPRISE DES ARRONDIS ET DE L'EN-TETE
   Cinq rayons differents et cinq hauteurs differentes dans la
   meme barre : c'est ca qui ne se tenait pas ensemble.
   ============================================================ */

/* Un seul jeu d'arrondis, plus genereux. */
.kci{--r1:6px;--r2:10px;--r3:20px;--r4:999px;--r-ctrl:14px}

/* --- La barre du haut devient une vraie barre flottante --- */
header .elementor-element-aa1ec0f{
  border-radius:20px!important;
  background:rgba(20,20,26,.82)!important;
  backdrop-filter:blur(14px) saturate(1.2);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  border:1px solid rgba(255,255,255,.10)!important;
  box-shadow:0 18px 40px -24px rgba(0,0,0,.75);
  padding:0 20px 0 22px!important;
  min-height:76px;
}

/* Le logo respire. */
header .elementor-element-95ec34e{gap:16px!important}
header .rstb-site-logo img{height:44px!important}
@media(max-width:1024px){header .rstb-site-logo img{height:38px!important}}

/* --- Tous les controles a la meme hauteur et au meme arrondi --- */
.kci-lang{height:40px;padding:4px;gap:2px;border-radius:var(--r4);
  border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.07)}
.kci-lang__b{min-width:32px;height:32px;padding:0 9px;border-radius:var(--r4);font-size:.75rem}

.kci-joindre__btn{height:40px!important;border-radius:var(--r4)!important;
  padding:0 14px!important;gap:7px!important;
  border:1px solid rgba(255,255,255,.12)!important;background:rgba(255,255,255,.07)!important}
.kci-joindre__btn:hover{background:rgba(255,255,255,.13)!important}

header .elementor-element-818f6b3 .rs-btn{
  height:40px!important;min-height:40px!important;border-radius:var(--r4)!important;
  padding:0 20px!important;display:inline-flex!important;align-items:center;justify-content:center}

header .offcanvas-toggle{width:40px!important;height:40px!important;border-radius:var(--r4)!important;
  border:1px solid rgba(255,255,255,.12)!important;background:rgba(255,255,255,.07)!important;
  transition:background 180ms ease}
header .offcanvas-toggle:hover{background:rgba(255,255,255,.14)!important}

/* --- Le menu : soulignement plus court, arrondi, moins bavard --- */
header ul.primary-menu > li > a.menu-item-link::after{
  left:12px;right:12px;bottom:0;height:2.5px;border-radius:99px}
header ul.primary-menu > li > a.menu-item-link{padding:9px 12px!important}

/* --- Le menu deroulant du telephone suit la meme famille --- */
.kci-joindre__menu{border-radius:var(--r3)!important;overflow:hidden}
.kci-joindre__item{border-radius:0}

/* --- Les coins du reste du site, plus generreux --- */
.kci-badge{border-radius:var(--r4)}
.kci-carte,.kci-col,.kci-vitrine__c,.kci-cite,.kci-autre{border-radius:var(--r3)}
.kci-duo__media img,.kci-duo__etiquette{border-radius:var(--r3)}
.kci-vitrine__img{border-radius:var(--r3) var(--r3) 0 0}
.kci-carte__ico,.kci-col__t i,.kci-raisons i{border-radius:var(--r2)}
.kci-btn,.kci-btn--ghost{border-radius:var(--r4)}
.kci-avis{border-radius:var(--r3)}

/* Les sections sombres ne doivent pas couper net sous la barre flottante. */
.kci-hero,.kci-shero{border-radius:0}

/* Les controles de l'en-tete vivent HORS de tout .kci : les jetons n'y
   arrivaient pas et les arrondis retombaient a zero. On les publie a la racine. */
:root{--r1:6px;--r2:10px;--r3:20px;--r4:999px;--r-ctrl:14px;
  --or:#E8500A;--or-hover:#CF4708;--encre:#14141A}

.kci-lang{border-radius:999px}
.kci-lang__b{border-radius:999px}
.kci-joindre__btn{border-radius:999px!important}
.kci-joindre__menu{border-radius:20px!important}
header .elementor-element-818f6b3 .rs-btn{border-radius:999px!important}
header .offcanvas-toggle{border-radius:999px!important}

/* Les derniers coins carres du theme : boutons du pied de page, du panneau
   lateral, et les pastilles d'icone. Tout passe dans la meme famille. */
.rs-btn,.rs-button .rs-btn,.rstb-offcanvas-panel .rs-btn{border-radius:999px!important}
.icon-wrapper,.rs-contact-box .icon-wrapper{border-radius:12px!important}
footer .rs-btn,.rstb-footer .rs-btn{border-radius:999px!important}
.rs-service-grid,.rs-iconbox,.rs-contact-box{border-radius:14px}

/* Au telephone, la barre passait sur deux rangees et le bouton telephone
   se retrouvait empile au-dessus du menu. Une seule rangee, bien repartie. */
@media(max-width:767px){
  header .elementor-element-aa1ec0f{
    flex-wrap:nowrap!important;min-height:64px;padding:0 12px 0 14px!important;
    justify-content:space-between!important;gap:8px!important;border-radius:18px!important}
  header .elementor-element-95ec34e{gap:10px!important;flex:0 1 auto!important;min-width:0}
  header .elementor-element-4b8e638{display:none!important}
  header .elementor-element-818f6b3{flex-direction:row!important;gap:8px!important;align-items:center!important;flex:0 0 auto!important}
  header .rstb-site-logo img{height:34px!important}
  .kci-lang{height:34px;padding:3px}
  .kci-lang__b{min-width:28px;height:28px;padding:0 7px;font-size:.6875rem}
  .kci-joindre__btn{height:34px!important;padding:0 11px!important}
  header .offcanvas-toggle{width:34px!important;height:34px!important}
  header .elementor-element-818f6b3 .rs-btn{display:none!important}
}
@media(max-width:400px){
  header .rstb-site-logo img{height:30px!important}
  header .elementor-element-aa1ec0f{padding:0 10px!important}
}

/* Le theme a DEUX rangees d'en-tete : une pour le bureau (aa1ec0f) et une
   pour le telephone (d0a8f58). Il fallait habiller la bonne. */
@media(max-width:767px){
  header .elementor-element-d0a8f58{
    border-radius:18px!important;
    background:rgba(20,20,26,.82)!important;
    backdrop-filter:blur(14px) saturate(1.2);
    -webkit-backdrop-filter:blur(14px) saturate(1.2);
    border:1px solid rgba(255,255,255,.10)!important;
    box-shadow:0 16px 34px -22px rgba(0,0,0,.75);
    margin:0 16px!important;width:calc(100% - 32px)!important;
    min-height:60px!important;padding:0 10px 0 14px!important;
    display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;
    align-items:center!important;justify-content:space-between!important;gap:10px!important}
  header .elementor-element-f906d4b{
    flex-direction:row!important;align-items:center!important;gap:12px!important;
    width:auto!important;flex:0 1 auto!important;min-width:0}
  header .elementor-element-b2bdb7d{flex:0 0 auto!important;width:auto!important}
  header .elementor-element-d0a8f58 .rstb-site-logo img{height:32px!important;width:auto!important}
  header .menu-toggler{width:36px!important;height:36px!important;border-radius:999px!important;
    border:1px solid rgba(255,255,255,.12)!important;background:rgba(255,255,255,.07)!important;
    display:inline-flex!important;align-items:center;justify-content:center}
  header .elementor-element-d0a8f58 .kci-lang{height:32px;padding:3px}
  header .elementor-element-d0a8f58 .kci-lang__b{min-width:26px;height:26px;padding:0 6px;font-size:.6875rem}
}

/* La rangee du haut au telephone : une seule ligne, le telephone et le menu
   a droite, jamais empiles. */
@media(max-width:767px){
  header .elementor-element-aa1ec0f{
    display:flex!important;flex-wrap:nowrap!important;
    justify-content:space-between!important;align-items:center!important;
    min-height:60px!important;padding:0 10px 0 14px!important;
    border-radius:18px!important;gap:10px!important}
  header .elementor-element-818f6b3{
    display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;
    align-items:center!important;gap:8px!important;flex:0 0 auto!important;width:auto!important}
  header .elementor-element-818f6b3 > *{margin:0!important}
  header .elementor-element-43db893{display:block!important;width:auto!important}
  header .offcanvas-toggle{width:36px!important;height:36px!important}
  header .elementor-element-95ec34e{flex:0 1 auto!important;min-width:0;gap:10px!important}
}

/* 34 px contre 36 px : deux pixels, mais ca se voit. */
@media(max-width:767px){
  .kci-lang{height:36px!important;padding:3px!important}
  .kci-lang__b{min-width:28px!important;height:30px!important;padding:0 8px!important}
  .kci-joindre__btn{height:36px!important}
  header .offcanvas-toggle,header .menu-toggler{width:36px!important;height:36px!important}
}

/* ============================================================
   CORRECTIF : le panneau lateral sortait de l'ecran.
   backdrop-filter sur la barre creait un bloc conteneur, donc le
   panneau en position:fixed se calait sur la barre, pas sur l'ecran.
   Le flou passe sur un pseudo-element : meme rendu, plus d'effet de bord.
   ============================================================ */
header .elementor-element-aa1ec0f{
  position:relative;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  background:transparent!important;border:0!important;box-shadow:none!important}
header .elementor-element-aa1ec0f::before{
  content:'';position:absolute;inset:0;z-index:0;border-radius:inherit;pointer-events:none;
  background:rgba(20,20,26,.82);
  backdrop-filter:blur(14px) saturate(1.2);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 18px 40px -24px rgba(0,0,0,.75)}
header .elementor-element-aa1ec0f > *{position:relative;z-index:1}

@media(max-width:767px){
  header .elementor-element-d0a8f58{
    position:relative;
    backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
    background:transparent!important;border:0!important;box-shadow:none!important}
  header .elementor-element-d0a8f58::before{
    content:'';position:absolute;inset:0;z-index:0;border-radius:inherit;pointer-events:none;
    background:rgba(20,20,26,.82);
    backdrop-filter:blur(14px) saturate(1.2);
    -webkit-backdrop-filter:blur(14px) saturate(1.2);
    border:1px solid rgba(255,255,255,.10);
    box-shadow:0 16px 34px -22px rgba(0,0,0,.75)}
  header .elementor-element-d0a8f58 > *{position:relative;z-index:1}
}

/* --- Le panneau lateral aux couleurs du site --- */
/* On laisse le theme placer le panneau : le probleme etait le bloc conteneur,
   pas ses regles. Moins on touche, moins on casse. */
.offcanvas-overly{background:rgba(10,10,14,.62)!important}

.offcanvas-container{
  width:min(420px,calc(100vw - 32px))!important;
  background:#14141A!important;
  border-left:1px solid rgba(255,255,255,.10)!important;
  border-radius:24px 0 0 24px!important;
  box-shadow:-30px 0 70px -30px rgba(0,0,0,.8)!important;
  overflow-y:auto!important;overscroll-behavior:contain}
@media(max-width:520px){.offcanvas-container{border-radius:0!important;width:100vw!important}}

/* Le bouton de fermeture : jaune carre du theme -> pastille de la marque. */
.offcanvas-close{
  width:40px!important;height:40px!important;
  top:20px!important;right:20px!important;left:auto!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.08)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  color:#fff!important;
  display:inline-flex!important;align-items:center;justify-content:center;
  transition:background 180ms ease,transform 180ms ease}
.offcanvas-close:hover{background:var(--or,#E8500A)!important;border-color:transparent!important;transform:rotate(90deg)}
.offcanvas-close svg,.offcanvas-close i,.offcanvas-close span{color:#fff!important;fill:currentColor}
.offcanvas-close svg{width:17px;height:17px}

/* Le contenu du panneau : texte clair sur fond sombre, respiration. */
.offcanvas-container .elementor{padding:76px 28px 32px!important}
.rstb-offcanvas-panel .rstb-site-logo img{height:44px!important;width:auto!important}
.rstb-offcanvas-panel p,
.rstb-offcanvas-panel .rs-heading p,
.rstb-offcanvas-panel .rs-contact-box,
.rstb-offcanvas-panel .rs-contact-box *{color:rgba(255,255,255,.74)!important}
.rstb-offcanvas-panel h1,.rstb-offcanvas-panel h2,.rstb-offcanvas-panel h3,
.rstb-offcanvas-panel h4,.rstb-offcanvas-panel strong,.rstb-offcanvas-panel b{color:#fff!important}
.rstb-offcanvas-panel a{color:rgba(255,255,255,.86)!important;transition:color 180ms ease}
.rstb-offcanvas-panel a:hover{color:var(--or,#E8500A)!important}
.rstb-offcanvas-panel .rs-btn{color:#fff!important}
.rstb-offcanvas-panel .rs-social-icons a,
.rstb-offcanvas-panel .social-icon a{
  width:40px;height:40px;border-radius:999px;
  border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);
  display:inline-flex;align-items:center;justify-content:center;
  transition:background 180ms ease,border-color 180ms ease}
.rstb-offcanvas-panel .rs-social-icons a:hover,
.rstb-offcanvas-panel .social-icon a:hover{background:var(--or,#E8500A);border-color:transparent}

/* Le contenu du panneau gardait les largeurs prevues pour un panneau plus large :
   le texte sortait sur 947 px dans une colonne de 420 px. */
.offcanvas-container .elementor,
.offcanvas-container .elementor *{max-width:100%!important;box-sizing:border-box}
.offcanvas-container .e-con,
.offcanvas-container .e-con-inner,
.offcanvas-container .elementor-element,
.offcanvas-container .elementor-widget-container,
.offcanvas-container .prelements-heading,
.offcanvas-container .title-inner,
.offcanvas-container .description{width:100%!important;min-width:0!important;flex-basis:auto!important}
.offcanvas-container p,
.offcanvas-container .description,
.offcanvas-container .title-inner{overflow-wrap:anywhere;white-space:normal!important}
.offcanvas-container .rs-contact-box,
.offcanvas-container .rs-contact-box *{white-space:normal!important;word-break:break-word}
.offcanvas-container .e-con{padding-inline:0!important}

/* Le conteneur interne du panneau peignait son propre gris #313131 par-dessus
   l'encre, sur 363 px seulement : d'ou la bande claire et les bords visibles. */
.offcanvas-container .elementor-element-21792d9{
  background:transparent!important;width:100%!important;max-width:100%!important;
  padding:76px 28px 36px!important;gap:22px!important}
.offcanvas-container .icon-wrapper{
  background:rgba(255,255,255,.07)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  color:#fff!important}
.offcanvas-container .icon-wrapper svg,
.offcanvas-container .icon-wrapper i{color:#fff!important;fill:currentColor}
.offcanvas-container .elementor{padding:0!important}

/* Le bouton du panneau reprend la pastille de la marque. */
.offcanvas-container .rs-btn{width:100%!important;justify-content:center!important;height:46px!important}

/* Le pied de page n'a plus qu'une colonne de liens : elle s'etirait sur 618 px
   avec du vide a droite. Elle se cale maintenant sur son contenu. */
.elementor-element-108d1b1{justify-content:flex-end!important}
.elementor-element-305b93a{width:max-content!important;min-width:200px;flex:0 0 auto!important}
@media(max-width:767px){
  .elementor-element-108d1b1{justify-content:flex-start!important}
  .elementor-element-305b93a{width:100%!important}
}

/* ============================================================
   Le panneau qui s'ouvre vraiment en tablette et au telephone est
   .mobile-panel-content, pas l'offcanvas. Meme traitement.
   ============================================================ */
.mobile-panel-overly{background:rgba(10,10,14,.62)!important}

.mobile-panel-content{
  width:min(360px,calc(100vw - 24px))!important;
  background:#14141A!important;
  border-left:1px solid rgba(255,255,255,.10)!important;
  border-radius:24px 0 0 24px!important;
  box-shadow:-30px 0 70px -30px rgba(0,0,0,.8)!important;
  padding:76px 24px 32px!important;
  overflow-y:auto!important;overscroll-behavior:contain}
@media(max-width:520px){.mobile-panel-content{border-radius:0!important;width:100vw!important}}

.mobile-panel-close{
  width:40px!important;height:40px!important;
  top:20px!important;right:20px!important;left:auto!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.08)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  color:#fff!important;
  display:inline-flex!important;align-items:center;justify-content:center;
  transition:background 180ms ease,transform 180ms ease}
.mobile-panel-close:hover{background:var(--or,#E8500A)!important;border-color:transparent!important;transform:rotate(90deg)}
.mobile-panel-close svg,.mobile-panel-close i{color:#fff!important;fill:currentColor;width:17px;height:17px}

/* Le logo et les liens du panneau mobile. */
.mobile-panel-content .rstb-site-logo img{height:40px!important;width:auto!important}
.mobile-panel-content a{color:rgba(255,255,255,.86)!important;transition:color 180ms ease}
.mobile-panel-content a:hover,
.mobile-panel-content .current-menu-item > a{color:var(--or,#E8500A)!important}
.mobile-panel-content li{border-color:rgba(255,255,255,.08)!important}
.mobile-panel-content .menu-item-link{padding-block:11px!important;font-size:1rem!important}

/* ============================================================
   HERO : on reprend l'air perdu au-dessus du titre et sous la pastille
   ============================================================ */
.kci-hero{padding-top:clamp(104px,10.5vw,124px)!important;padding-bottom:var(--e5)!important}
.kci-hero__grid{gap:var(--e5)!important;align-items:center}
.kci .kci-hero__copy .kci-h1{margin-bottom:var(--e3)!important}
.kci .kci-hero__copy .kci-lead{margin-bottom:var(--e4)!important}
.kci-hero__points{margin-top:var(--e4)!important;padding-top:var(--e4)!important}

/* Les crochets : 1, 2 puis 3, serres entre eux. */
.kci-hero__cocs{display:inline-flex;align-items:center;gap:1px;flex:none}
.kci-hero__points li svg{margin:0}
.kci-hero__cocs svg{width:17px;height:17px}
.kci-hero__cocs svg + svg{margin-left:-5px}

/* Les chiffres collent a leur unite : espace fine insecable dans le texte,
   et aucun ecart supplementaire ajoute par la police. */
.kci .kci-chiffre b,.kci .kci-duo__etiquette b{letter-spacing:0!important;font-variant-numeric:tabular-nums}

/* ============================================================
   Survol de Soumission gratuite : le texte respire, rien ne glisse.
   Le theme faisait entrer un aplat en biais par-dessus le bouton.
   ============================================================ */
header .elementor-element-818f6b3 .rs-btn::before,
header .elementor-element-818f6b3 .rs-btn::after{display:none!important;content:none!important}
header .elementor-element-818f6b3 .rs-btn{
  background:var(--or,#E8500A)!important;
  overflow:visible!important;
  transition:background 200ms ease,box-shadow 260ms ease!important}
header .elementor-element-818f6b3 .rs-btn > *{
  display:inline-flex;align-items:center;gap:7px;
  transition:transform 260ms cubic-bezier(.34,1.4,.5,1)}
header .elementor-element-818f6b3 .rs-btn:hover{
  background:var(--or-hover,#CF4708)!important;
  box-shadow:0 8px 22px -10px rgba(232,80,10,.75)}
header .elementor-element-818f6b3 .rs-btn:hover > *{transform:scale(1.07)}
header .elementor-element-818f6b3 .rs-btn:active > *{transform:scale(.98)}
@media (prefers-reduced-motion:reduce){
  header .elementor-element-818f6b3 .rs-btn > *{transition:none}
  header .elementor-element-818f6b3 .rs-btn:hover > *{transform:none}
}

/* ============================================================
   PIED DE PAGE
   ============================================================ */
/* La ligne blanche entre le bloc logo et la colonne de droite. */
.elementor-element-6f065ef{border-right:0!important;border-left:0!important}

/* La colonne Services se recentre au lieu d'etre collee au bord. */
.elementor-element-8d1482a{flex:1 1 auto!important;display:flex!important;justify-content:center!important}
.elementor-element-108d1b1{justify-content:center!important;width:100%!important}
.elementor-element-305b93a{width:auto!important;min-width:220px;flex:0 0 auto!important}
@media(max-width:767px){
  .elementor-element-8d1482a,.elementor-element-108d1b1{justify-content:flex-start!important}
  .elementor-element-305b93a{width:100%!important;min-width:0}
}

/* Icones du menu du pied de page : une par categorie, a la place du chevron
   jaune du theme. Masque SVG, donc la couleur reste pilotable. */
.elementor-element-305b93a .menu-prefix-icon{width:17px;height:17px;flex:none;display:inline-block;
  background-color:currentColor;color:rgba(255,255,255,.55);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;transition:color 180ms ease,transform 180ms ease}
.elementor-element-305b93a .menu-prefix-icon svg{display:none!important}
.elementor-element-305b93a .menu-item-link{display:inline-flex;align-items:center;gap:10px}
.elementor-element-305b93a .menu-item-link:hover .menu-prefix-icon,
.elementor-element-305b93a .current-menu-item .menu-prefix-icon{color:#E8500A;transform:translateX(1px)}

.elementor-element-305b93a a.menu-item-link[href$="demenagement-kci.ca/"] .menu-prefix-icon,
.elementor-element-305b93a a.menu-item-link[href$="/en/"] .menu-prefix-icon{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M3%2010.6%2012%203l9%207.6V21h-6.4v-6.2H9.4V21H3z%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M3%2010.6%2012%203l9%207.6V21h-6.4v-6.2H9.4V21H3z%22%2F%3E%3C%2Fsvg%3E")}
.elementor-element-305b93a a.menu-item-link[href*="/services/"] .menu-prefix-icon{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M2%206.5h11.2v8.8H2zM13.9%209.6h3.6l2.9%203.1v2.6h-6.5zM6.6%2019.2a2%202%200%201%200%200-4%202%202%200%200%200%200%204zM17.8%2019.2a2%202%200%201%200%200-4%202%202%200%200%200%200%204z%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M2%206.5h11.2v8.8H2zM13.9%209.6h3.6l2.9%203.1v2.6h-6.5zM6.6%2019.2a2%202%200%201%200%200-4%202%202%200%200%200%200%204zM17.8%2019.2a2%202%200%201%200%200-4%202%202%200%200%200%200%204z%22%2F%3E%3C%2Fsvg%3E")}
.elementor-element-305b93a a.menu-item-link[href*="/a-propos/"] .menu-prefix-icon,
.elementor-element-305b93a a.menu-item-link[href*="/about/"] .menu-prefix-icon{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%202.6A9.4%209.4%200%201%200%2012%2021.4%209.4%209.4%200%200%200%2012%202.6zm0%203.9a1.35%201.35%200%201%201%200%202.7%201.35%201.35%200%200%201%200-2.7zM13.3%2017.5h-2.6v-6.6h2.6z%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%202.6A9.4%209.4%200%201%200%2012%2021.4%209.4%209.4%200%200%200%2012%202.6zm0%203.9a1.35%201.35%200%201%201%200%202.7%201.35%201.35%200%200%201%200-2.7zM13.3%2017.5h-2.6v-6.6h2.6z%22%2F%3E%3C%2Fsvg%3E")}
.elementor-element-305b93a a.menu-item-link[href*="/blog"] .menu-prefix-icon{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M6.4%202.6h10.4a2.1%202.1%200%200%201%202.1%202.1v16.7l-3.5-2.3-3.4%202.3-3.4-2.3-3.4%202.3V4.7a2.1%202.1%200%200%201%202.1-2.1zm1.7%205.2h7v2.2h-7zm0%204.2h7v2.2h-7z%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M6.4%202.6h10.4a2.1%202.1%200%200%201%202.1%202.1v16.7l-3.5-2.3-3.4%202.3-3.4-2.3-3.4%202.3V4.7a2.1%202.1%200%200%201%202.1-2.1zm1.7%205.2h7v2.2h-7zm0%204.2h7v2.2h-7z%22%2F%3E%3C%2Fsvg%3E")}
.elementor-element-305b93a a.menu-item-link[href*="/contact/"] .menu-prefix-icon{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M5%203.4h4.2l2.1%205.2-2.6%201.6a11.5%2011.5%200%200%200%205.2%205.2l1.6-2.6%205.2%202.1v4.2a1%201%200%200%201-1%201A16.7%2016.7%200%200%201%204%204.4a1%201%200%200%201%201-1z%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M5%203.4h4.2l2.1%205.2-2.6%201.6a11.5%2011.5%200%200%200%205.2%205.2l1.6-2.6%205.2%202.1v4.2a1%201%200%200%201-1%201A16.7%2016.7%200%200%201%204%204.4a1%201%200%200%201%201-1z%22%2F%3E%3C%2Fsvg%3E")}

/* Le hero se resserre encore : la barre flotte par-dessus, le contenu peut
   remonter sous elle sans se faire couper. */
.kci-hero{padding-top:clamp(92px,9vw,108px)!important;padding-bottom:var(--e4)!important}
.kci-hero__points{margin-top:var(--e3)!important;padding-top:var(--e3)!important}

/* Le hero reste serre, mais la carte du formulaire ne doit pas passer sous la
   barre flottante : on decale la colonne de droite seulement. */
.kci-hero__form{margin-top:44px}
@media(max-width:1100px){.kci-hero__form{margin-top:0}}

/* Le jaune du theme gagnait encore sur les icones du pied de page. */
.elementor-element-305b93a .menu-prefix-icon{
  background-color:rgba(255,255,255,.55)!important;color:rgba(255,255,255,.55)!important}
.elementor-element-305b93a .menu-item-link:hover .menu-prefix-icon,
.elementor-element-305b93a .current-menu-item > .menu-item-link .menu-prefix-icon{
  background-color:#E8500A!important;color:#E8500A!important}

/* La colonne de liens se rapproche du bloc logo et s'etale sur deux colonnes :
   une liste de 89 px perdue dans 708 px de vide, ca faisait desert. */
.elementor-element-8d1482a{justify-content:flex-start!important;align-items:flex-start!important}
.elementor-element-305b93a{width:auto!important;min-width:320px!important}
.elementor-element-305b93a ul.primary-menu{
  display:block!important;columns:2;column-gap:36px}
.elementor-element-305b93a ul.primary-menu > li{break-inside:avoid;display:block}
.elementor-element-305b93a .menu-item-link{padding-block:7px!important}
@media(max-width:900px){
  .elementor-element-305b93a{min-width:0!important;width:100%!important}
  .elementor-element-305b93a ul.primary-menu{columns:1}
}

/* La rangee intermediaire recentrait encore la colonne loin a droite. */
.elementor-element-108d1b1{justify-content:flex-start!important;width:auto!important}
@media(max-width:900px){.elementor-element-108d1b1{width:100%!important}}

/* ------------------------------------------------------------------
   Pied de page, passe finale. Le vide du bas ne venait pas de la liste
   mais des 230 px de marge basse des deux colonnes. On remonte le bloc,
   puis la liste se cale au centre de sa moitie, sur une seule colonne,
   pour tenir la meme hauteur que le bloc logo a gauche.
   ------------------------------------------------------------------ */
.elementor-element-6f065ef,
.elementor-element-8d1482a{padding-top:76px!important;padding-bottom:76px!important}
.elementor-element-8d1482a{
  padding-left:0!important;justify-content:flex-start!important;align-items:center!important}
.elementor-element-108d1b1{justify-content:center!important;width:100%!important}
.elementor-element-305b93a{width:auto!important;min-width:0!important;flex:0 0 auto!important}
.elementor-element-305b93a ul.primary-menu{display:block!important;columns:1!important;column-gap:0!important}
.elementor-element-305b93a .menu-item-link{padding-block:9px!important}
@media(max-width:1024px){
  .elementor-element-6f065ef,
  .elementor-element-8d1482a{padding-top:54px!important;padding-bottom:54px!important}
  .elementor-element-8d1482a{align-items:flex-start!important}
  .elementor-element-108d1b1{justify-content:flex-start!important}
  .elementor-element-305b93a{width:100%!important}
}

/* ------------------------------------------------------------------
   Le survol des boutons, partout : le volet orange qui glissait sur du
   orange ne donnait rien. Le contenu respire d'un cran, le fond fonce.
   Vaut pour l'entete (desktop et mobile), le pied et le corps.
   ------------------------------------------------------------------ */
.rs-btn::before,
.rs-btn::after{display:none!important;content:none!important}
.rs-btn > span,
.rs-btn > em{transition:transform 260ms cubic-bezier(.34,1.4,.5,1)}
.rs-btn:hover > span,
.rs-btn:focus-visible > span,
.rs-btn:hover > em,
.rs-btn:focus-visible > em{transform:scale(1.07)}
.rs-btn{transition:background-color 200ms ease,box-shadow 200ms ease}
.rs-btn:hover{background-color:#CF4708!important}
@media(prefers-reduced-motion:reduce){
  .rs-btn > span,.rs-btn > em{transition:none}
  .rs-btn:hover > span,.rs-btn:focus-visible > span,
  .rs-btn:hover > em,.rs-btn:focus-visible > em{transform:none}
}

/* ==================================================================
   Passe du 11 septembre, fin de journee.
   1. Le menu de l'entete : un seul geste, une seule couleur
   2. La navigation du panneau lateral
   3. Le bloc de liens du pied de page, nettement plus grand
   ================================================================== */

/* --- 1. Entete --------------------------------------------------- */
/* Le theme peignait un degrade a cinq couleurs sous la categorie active.
   On le retire : une pastille blanche tres pale suffit, elle se fond dans
   le verre de la barre, et le survol devient un mouvement plutot qu'une
   couleur de plus. */
header .primary-menu > li > a::after,
header .primary-menu > li > a::before{display:none!important;content:none!important}

header .primary-menu > li > a{
  position:relative;border-radius:999px;
  color:rgba(255,255,255,.76)!important;
  transition:color 200ms ease,background-color 200ms ease}
header .primary-menu > li > a .menu-item-text{
  display:inline-block;
  transition:transform 240ms cubic-bezier(.34,1.4,.5,1)}
header .primary-menu > li > a:hover .menu-item-text,
header .primary-menu > li > a:focus-visible .menu-item-text{transform:translateY(-2px)}
header .primary-menu > li > a:hover,
header .primary-menu > li > a:focus-visible{
  color:#fff!important;background:rgba(255,255,255,.09)}
header .primary-menu > li.current-menu-item > a,
header .primary-menu > li.current-menu-ancestor > a,
header .primary-menu > li.current-menu-parent > a,
header .primary-menu > li.current_page_item > a{
  color:#fff!important;background:rgba(255,255,255,.12)}
@media(prefers-reduced-motion:reduce){
  header .primary-menu > li > a .menu-item-text{transition:none}
  header .primary-menu > li > a:hover .menu-item-text{transform:none}
}

/* --- 2. Navigation du panneau lateral ---------------------------- */
.kci-pan-nav{margin:2px 0 4px}
.kci-pan-nav__liste,
.kci-pan-nav__sous{list-style:none!important;margin:0!important;padding:0!important}
.kci-pan-nav__liste li,
.kci-pan-nav__sous li{margin:0!important;padding:0!important;list-style:none!important}
.kci-pan-nav__liste li::before,
.kci-pan-nav__sous li::before,
.kci-pan-nav__liste li::marker,
.kci-pan-nav__sous li::marker{content:none!important}

.kci-pan-nav__l{
  display:flex;align-items:center;gap:13px;
  padding:11px 12px;border-radius:12px;text-decoration:none;
  font-size:1.0625rem;line-height:1.25;font-weight:500;
  color:rgba(255,255,255,.88);
  transition:background-color 180ms ease,color 180ms ease,transform 180ms ease}
.kci-pan-nav__l:hover{background:rgba(255,255,255,.08);color:#fff;transform:translateX(3px)}
.kci-pan-nav__l.est-ici{background:rgba(255,255,255,.12);color:#fff}
.kci-pan-nav__i{flex:none;width:21px;height:21px;display:grid;place-items:center;
  color:rgba(255,255,255,.55);transition:color 180ms ease}
.kci-pan-nav__i svg{width:21px;height:21px;fill:currentColor;display:block}
.kci-pan-nav__l:hover .kci-pan-nav__i,
.kci-pan-nav__l.est-ici .kci-pan-nav__i{color:#fff}

.kci-pan-nav__sur{
  margin:18px 0 6px!important;padding:0 12px;
  font-size:.75rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:rgba(255,255,255,.42)}
.kci-pan-nav__s{
  display:block;padding:8px 12px;border-radius:10px;text-decoration:none;
  font-size:.9375rem;line-height:1.35;color:rgba(255,255,255,.66);
  transition:background-color 180ms ease,color 180ms ease,transform 180ms ease}
.kci-pan-nav__s:hover{background:rgba(255,255,255,.07);color:#fff;transform:translateX(3px)}
.kci-pan-nav__s.est-ici{background:rgba(255,255,255,.10);color:#fff}

/* Le panneau porte maintenant plus de contenu : il doit pouvoir defiler
   sur un ecran court, sans barre visible. */
.offcanvas-container .elementor-element-21792d9{
  max-height:100vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;
  padding-top:52px!important;padding-bottom:28px!important;gap:12px!important}
.offcanvas-container .elementor-element-21792d9::-webkit-scrollbar{width:6px}
.offcanvas-container .elementor-element-21792d9::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.16);border-radius:999px}
/* L'accroche de presentation sort du panneau : c'est exactement le « texte
   general » qui y tenait la place de la navigation. Elle reste au pied de page.
   Seul le bloc de titre du widget disparaît, pas la navigation qu'il porte. */
.offcanvas-container .elementor-element-b773284 .prelements-heading{display:none!important}

/* --- 3. Bloc de liens du pied de page ---------------------------- */
/* Le chevron du theme vivait dans la gouttiere (margin-left:-25px). Avec une
   vraie icone, la liste se retrouvait decalee de 25 px par rapport a son
   titre. On ramene l'icone dans le lien : titre et icones sur la meme verticale. */
.elementor-element-305b93a{min-width:264px!important}
.elementor-element-305b93a .menu-prefix-icon{
  margin-left:0!important;width:24px!important;height:24px!important}
.elementor-element-305b93a .menu-item-link{
  display:flex!important;align-items:center;gap:14px!important;
  width:100%;padding:12px 14px!important;margin-left:-14px;
  border-radius:12px;font-size:1.125rem!important;line-height:1.3!important;
  color:rgba(255,255,255,.84)!important;
  transition:background-color 180ms ease,color 180ms ease,transform 180ms ease}
.elementor-element-305b93a .menu-item-link:hover{
  background:rgba(255,255,255,.07);color:#fff!important;transform:translateX(3px)}
.elementor-element-305b93a .current-menu-item > .menu-item-link{
  background:rgba(255,255,255,.10);color:#fff!important}
.elementor-element-305b93a .menu-prefix-icon{
  background-color:rgba(255,255,255,.58)!important;color:rgba(255,255,255,.58)!important}
.elementor-element-305b93a .menu-item-link:hover .menu-prefix-icon,
.elementor-element-305b93a .current-menu-item > .menu-item-link .menu-prefix-icon{
  background-color:#fff!important;color:#fff!important}
/* Le titre de la colonne se cale sur la verticale des icones : les liens ont
   14 px de retrait interne pour leur pastille de survol, le titre les prend
   aussi, sinon il flotte 14 px a gauche de la premiere icone. */
.elementor-element-108d1b1 .prelements-heading,
.elementor-element-305b93a .prelements-heading{
  font-size:1.5rem!important;line-height:1.25!important;color:#fff!important;
  padding-left:14px!important;margin:0 0 10px!important}
.elementor-element-108d1b1 .prelements-heading .title,
.elementor-element-305b93a .prelements-heading .title{
  font-size:inherit!important;line-height:inherit!important;margin:0!important;color:inherit!important}
.elementor-element-305b93a .elementor-widget-container > *:first-child{margin-top:0!important}

@media(max-width:1024px){
  .elementor-element-305b93a{min-width:0!important;width:100%!important}
}

/* ==================================================================
   Les petites scenes de passage entre les sections de l'accueil.
   Une bande fine, une ligne de sol, une silhouette qui traverse une
   fois quand la section entre dans l'ecran, puis s'arrete. Rien qui
   bouge en boucle : ca fatigue et ca tire la batterie.
   ================================================================== */
.kci-scene{
  position:relative;overflow:hidden;
  height:88px;display:flex;align-items:flex-end;
  contain:paint}
.kci-scene--gris{background:var(--gris,#F4F4F6)}
.kci-scene--blanc{background:#fff}
.kci-scene__w{
  width:100%;max-width:1200px;margin:0 auto;padding:0 24px;
  display:flex;align-items:flex-end}
.kci-scene[data-scene="diable"] .kci-scene__w{justify-content:flex-start}
.kci-scene[data-scene="duo"] .kci-scene__w{justify-content:center}
.kci-scene[data-scene="caisses"] .kci-scene__w{justify-content:flex-end}
.kci-scene__d{display:block;width:152px;height:auto;overflow:visible}

/* La ligne de sol tient lieu de separateur entre les deux sections. */
.kci-scene__sol{stroke:currentColor;stroke-width:1.5;opacity:.14;color:var(--encre,#14141A)}

/* Les traits du personnage. */
.kci-scene__co,
.kci-scene__br,
.kci-scene__jm{fill:none;stroke:var(--encre,#14141A);stroke-linecap:round}
.kci-scene__co{stroke-width:9}
.kci-scene__br{stroke-width:6}
.kci-scene__jm{stroke-width:7}
.kci-scene__te{fill:var(--encre,#14141A)}
.kci-scene__cq{fill:var(--or,#E8500A)}
.kci-scene__tr{fill:var(--encre,#14141A);opacity:.85}
.kci-scene__pt{fill:#fff}

/* La charge : frigo, caisses. Orange de la marque, pose legere. */
.kci-scene__ca{fill:rgba(232,80,10,.16);stroke:var(--or,#E8500A);stroke-width:2.5}
.kci-scene__cl{fill:none;stroke:var(--or,#E8500A);stroke-width:2;opacity:.55;stroke-linecap:round}

/* ---- Au repos : hors champ, a gauche. ---- */
.kci-scene__mob{transform:translateX(-230px)}
.kci-scene__j1,
.kci-scene__j2,
.kci-scene__roue,
.kci-scene__pile{transform-box:fill-box}
.kci-scene__j1,.kci-scene__j2{transform-origin:50% 0}
.kci-scene__roue{transform-origin:50% 50%}
.kci-scene__pile{transform-origin:50% 100%}

/* ---- A l'entree dans l'ecran : une seule traversee. ---- */
.kci-scene.joue .kci-scene__mob{
  animation:kci-traverse 2400ms cubic-bezier(.22,.72,.28,1) forwards}
.kci-scene.joue .kci-scene__j1{animation:kci-pas-a 600ms ease-in-out 4}
.kci-scene.joue .kci-scene__j2{animation:kci-pas-b 600ms ease-in-out 4}
.kci-scene.joue .kci-scene__roue{animation:kci-roule 2400ms linear forwards}
.kci-scene.joue .kci-scene__pile{animation:kci-dodeline 600ms ease-in-out 4}

@keyframes kci-traverse{to{transform:translateX(0)}}
@keyframes kci-pas-a{0%,100%{transform:rotate(16deg)}50%{transform:rotate(-16deg)}}
@keyframes kci-pas-b{0%,100%{transform:rotate(-16deg)}50%{transform:rotate(16deg)}}
@keyframes kci-roule{to{transform:rotate(900deg)}}
@keyframes kci-dodeline{0%,100%{transform:rotate(1.6deg)}50%{transform:rotate(-1.6deg)}}

@media(max-width:900px){
  .kci-scene{height:68px}
  .kci-scene__d{width:118px}
  .kci-scene__w{padding:0 20px}
}
@media(max-width:520px){
  .kci-scene{height:58px}
  .kci-scene__d{width:102px}
  .kci-scene[data-scene="caisses"] .kci-scene__w{justify-content:center}
}

/* Le visiteur qui demande moins d'animation voit la scene posee, immobile. */
@media(prefers-reduced-motion:reduce){
  .kci-scene__mob{transform:none}
  .kci-scene.joue .kci-scene__mob,
  .kci-scene.joue .kci-scene__j1,
  .kci-scene.joue .kci-scene__j2,
  .kci-scene.joue .kci-scene__roue,
  .kci-scene.joue .kci-scene__pile{animation:none}
}

/* ------------------------------------------------------------------
   La coupure des titres.
   text-wrap:balance egalisait la longueur des lignes sans regarder le
   sens : « Ce que nous / accomplissons pour vous ». On repasse au
   remplissage normal, qui monte les mots porteurs sur la premiere
   ligne et laisse le complement court en bas. Les deux defauts que
   balance evitait (un mot outil en fin de ligne, un dernier mot seul)
   sont traites en amont, par des espaces insecables posees au rendu :
   voir kci-titres.php.
   ------------------------------------------------------------------ */
.kci h1,.kci h2,.kci h3,
.kci .kci-h1,.kci .kci-h2,.kci .kci-h3,
.kci-shero h1,.kci-hero h1{text-wrap-style:auto}

/* Fin de titre gardee d'un seul tenant, pour que le dernier mot ne se
   retrouve pas seul sur sa ligne. On relache au telephone, ou la colonne
   est trop etroite pour un groupe insecable. Le titre concerne descend
   d'un cran pour que le groupe entre dans sa colonne. */
.kci-nb{white-space:nowrap}
.kci h1:has(.kci-nb),
.kci h2:has(.kci-nb),
.kci .kci-h2:has(.kci-nb){font-size:clamp(1.75rem,3.5vw,2.55rem)!important}
@media(max-width:1100px){
  .kci-nb{white-space:normal}
  .kci h1:has(.kci-nb),
  .kci h2:has(.kci-nb),
  .kci .kci-h2:has(.kci-nb){font-size:clamp(1.9rem,4vw,2.9rem)!important}
}
