/* =========================================================================
   EFISITY — feuille de style du thème
   Reprise de la maquette v6 validée le 20/08/2026.
   Les notes de travail de la maquette ont été retirées.
   ========================================================================= */

:root{
  --paper:#FBFAF7; --paper-2:#F3F1EC; --sand:#EDE8DF;
  --ink:#16171A; --ink-2:#3A3D44; --grey:#6B6F78; --grey-l:#9CA1AA;
  --line:#E2DED6; --line-2:#D6D0C5;
  --blue:#2E5BD6; --blue-d:#1E3E9B; --deep:#141A24;
  --r:20px;
}

/* ---------- la police ----------
   Inter, embarquee dans le theme et servie depuis notre propre domaine.
   Jamais depuis Google Fonts : cela transmettrait l'adresse IP de chaque
   visiteur a Google, ce qui a valu des condamnations en Europe et
   obligerait a le declarer dans la politique de confidentialite.
   Fichier variable unique : toutes les graisses de 100 a 900 en une requete.
   font-display:swap — le texte s'affiche tout de suite en police systeme,
   puis bascule sur Inter. Jamais de page blanche en attendant. */
@font-face{
  font-family:'InterVar';
  src:url('../fonts/InterVariable.woff2') format('woff2');
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}

/* ---------- base ---------- */
/* ATTENTION : ne poser overflow-x NI sur <html> NI sur <body>.
   La regle de propagation CSS veut que l'overflow de l'element racine — et,
   s'il est visible, celui du body — devienne celui de la fenetre elle-meme.
   Une fenetre en overflow:clip n'est plus defilable par programme : la
   navigation par ancre cesse de fonctionner (#servicios, #opiniones… ne
   defilent plus, ni au chargement, ni au clic, ni meme par scrollIntoView()).
   Le debordement horizontal des cartes animees se coupe donc sur le
   conteneur de page, qui n'est pas un element racine et ne propage rien.
   scroll-padding-top : hauteur de la barre de navigation, pour que le titre
   d'une section ne se retrouve pas cache dessous a l'arrivee sur une ancre. */
html{scroll-behavior:smooth;scroll-padding-top:92px}
.wp-site-blocks{overflow-x:clip}
body{
  font-family:'InterVar','Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-optical-sizing:auto;
  color:var(--ink);background:var(--paper);line-height:1.62;
  -webkit-font-smoothing:antialiased;font-weight:400;margin:0;
}
/* WordPress ajoute un ecart de bloc (24px) entre les enfants de .wp-site-blocks.
   Applique au <main>, il glissait une bande claire AU-DESSUS du hero : la nav
   se retrouvait posee dessus au lieu d'etre sur l'image. On le neutralise en
   haut de page uniquement — l'ecart reste disponible partout ailleurs. */
.wp-site-blocks>main.efi{margin-block-start:0}
.efi>*:first-child,.efi .wp-block-post-content>*:first-child{margin-block-start:0}
/* un commentaire HTML pose entre deux blocs est enveloppe dans un <p> vide par
   WordPress : il occupe la place du premier enfant et decale tout de 24px. */
.efi .wp-block-post-content>p:empty{display:none}
.efi-hero{margin-block-start:0}

.efi h1,.efi h2,.efi h3{font-weight:500;letter-spacing:-.035em;line-height:1.06;margin:0}
.efi h2{font-size:clamp(2rem,4.4vw,5.2rem)}
.efi p{color:var(--grey);margin:0}
.efi img{max-width:100%;height:auto}

/* conteneur — remplace .wrap de la maquette */
.efi-wrap{max-width:1300px;margin-left:auto;margin-right:auto;padding-left:clamp(22px,4vw,56px);padding-right:clamp(22px,4vw,56px)}
.efi-section{padding-top:clamp(84px,11vw,168px);padding-bottom:clamp(84px,11vw,168px)}

.efi-big{font-size:clamp(1.02rem,1.35vw,1.26rem);line-height:1.68;color:var(--ink-2);font-weight:400}

.efi-eye{font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);display:flex;align-items:center;gap:12px;margin-bottom:24px}
.efi-eye::before{content:"";width:26px;height:1.5px;background:var(--blue)}

/* ---------- apparitions au défilement ---------- */
.rv{opacity:0;transform:translateY(30px);transition:opacity .95s cubic-bezier(.16,1,.3,1),transform 1.05s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.16s}.rv.d3{transition-delay:.24s}.rv.d4{transition-delay:.32s}
@media(prefers-reduced-motion:reduce){.rv{opacity:1!important;transform:none!important;transition:none}}
/* dans l'éditeur, tout doit rester visible */
.editor-styles-wrapper .rv{opacity:1;transform:none}

/* ---------- navigation ---------- */
.efi-nav{position:fixed;top:0;left:0;right:0;z-index:200;padding:22px 0;transition:background .45s,padding .45s,box-shadow .45s}
.efi-nav.stuck{background:rgba(251,250,247,.94);backdrop-filter:saturate(180%) blur(14px);padding:12px 0;box-shadow:0 1px 0 var(--line)}
.efi-nv{display:flex;align-items:center;justify-content:space-between;gap:16px}
.efi-lg{display:flex;align-items:center;gap:13px;text-decoration:none}
.efi-lgm{width:62px;height:62px;border-radius:17px;background:var(--blue);display:flex;align-items:center;justify-content:center;flex:0 0 62px;transition:width .45s,height .45s,flex-basis .45s}
.efi-lgm svg{width:31px;height:31px;transition:width .45s,height .45s}
.efi-lgt{color:#fff;font-weight:600;letter-spacing:.15em;font-size:1.78rem;transition:color .45s,font-size .45s}
.efi-nav.stuck .efi-lgt{color:var(--ink);font-size:1.42rem}
.efi-nav.stuck .efi-lgm{width:50px;height:50px;flex-basis:50px}
.efi-nav.stuck .efi-lgm svg{width:25px;height:25px}
@media(max-width:560px){.efi-lgt{font-size:1.3rem;letter-spacing:.12em}.efi-lgm{width:46px;height:46px;flex-basis:46px}.efi-lgm svg{width:23px;height:23px}}
.efi-nvm{display:flex;gap:30px}
.efi-nvm a{color:rgba(255,255,255,.96);text-decoration:none;font-size:.85rem;font-weight:500;transition:color .45s;position:relative;text-shadow:0 1px 14px rgba(20,26,36,.5)}
.efi-nav.stuck .efi-nvm a{color:var(--grey);font-weight:400;text-shadow:none}
.efi-nvm a::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:currentColor;transition:width .4s cubic-bezier(.16,1,.3,1)}
.efi-nvm a:hover::after{width:100%}
.efi-nvr{display:flex;align-items:center}
.efi-nvb{background:var(--paper);color:var(--ink);padding:11px 22px;border-radius:40px;font-size:.83rem;font-weight:500;text-decoration:none;transition:background .35s,color .35s,transform .35s;white-space:nowrap}
.efi-nav.stuck .efi-nvb{background:var(--blue);color:#fff}
.efi-nvb:hover{transform:translateY(-2px)}
@media(max-width:960px){.efi-nvm{display:none}}
@media(max-width:640px){.efi-nvb{display:none}}

/* ---------- hero ---------- */
.efi-hero{height:100svh;min-height:580px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}
.efi-hero-media{position:absolute;inset:-8% 0;will-change:transform}
.efi-hero-media img{width:100%;height:100%;object-fit:cover;object-position:70% center;animation:efi-kb 20s ease-out forwards}
@media(max-width:820px){.efi-hero-media img{object-position:78% center}}
@keyframes efi-kb{from{transform:scale(1.1)}to{transform:scale(1)}}
.efi-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,26,36,.58) 0%,rgba(20,26,36,.1) 36%,rgba(20,26,36,.5) 70%,rgba(20,26,36,.88) 100%)}
.efi-hc{position:relative;z-index:5;color:#fff;padding:0 22px;max-width:1080px}
.efi-hc h1{font-size:clamp(2.5rem,8.4vw,7.6rem);font-weight:300;letter-spacing:-.03em;line-height:1;color:#fff}
.efi-hc .efi-sub{font-size:clamp(1rem,1.95vw,1.62rem);font-weight:300;color:rgba(255,255,255,.9);margin-top:16px;letter-spacing:-.015em}
.efi-hstat{position:absolute;bottom:clamp(32px,7vh,72px);left:0;right:0;z-index:6;padding:0 22px;text-align:center}
.efi-hstat .l{display:inline-flex;align-items:baseline;gap:14px;flex-wrap:wrap;justify-content:center;color:#fff}
.efi-hstat .n{font-size:clamp(2.1rem,4.4vw,3.6rem);font-weight:300;letter-spacing:-.045em;line-height:1;white-space:nowrap}
.efi-hstat .x{font-size:clamp(.88rem,1.3vw,1.1rem);font-weight:300;color:rgba(255,255,255,.82);max-width:34ch;text-align:left;line-height:1.4}
@media(max-width:640px){.efi-hstat .x{text-align:center}}
.efi-scrl{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:6;width:1px;height:42px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.6));animation:efi-sc 2.4s ease-in-out infinite}
@keyframes efi-sc{0%,100%{opacity:.25;height:28px}50%{opacity:.9;height:50px}}

/* ---------- le problème ---------- */
.efi-state{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(38px,7vw,104px);align-items:start}
@media(max-width:980px){.efi-state{grid-template-columns:1fr;gap:34px}}
.efi-state h2{max-width:15ch}
.efi-fear{list-style:none;display:grid;gap:14px;margin:4px 0 0;padding:0}
.efi-fear li{padding-left:25px;position:relative;color:var(--grey);font-size:1rem}
.efi-fear li::before{content:"";position:absolute;left:0;top:13px;width:11px;height:1px;background:var(--grey-l)}
.efi-ans{margin-top:36px;padding-left:24px;border-left:2px solid var(--blue)}
.efi-ans p{color:var(--ink);font-size:1.05rem;line-height:1.62}

/* ---------- citation client ---------- */
.efi-said{margin-top:clamp(38px,4.5vw,58px);max-width:52ch}
.efi-said q{display:block;quotes:none;font-size:clamp(1.18rem,1.9vw,1.6rem);font-weight:300;letter-spacing:-.02em;line-height:1.42;color:var(--ink)}
.efi-said .by{margin-top:16px;font-size:.82rem;color:var(--grey-l);letter-spacing:.02em}
.efi-said .by b{font-weight:500;color:var(--grey)}
.efi-said.on-dark q{color:#fff}
.efi-said.on-dark .by{color:rgba(255,255,255,.5)}
.efi-said.on-dark .by b{color:rgba(255,255,255,.8)}
.efi-rph{border-radius:14px;overflow:hidden;aspect-ratio:760/494;margin-bottom:20px;background:var(--paper-2)}
.efi-rph img{width:100%;height:100%;object-fit:cover;display:block}
.efi-said .efi-rph{max-width:430px;margin-bottom:26px}

/* ---------- image pleine largeur ---------- */
.efi-bleed{position:relative;height:clamp(340px,68vh,660px);overflow:hidden;display:flex;align-items:flex-end}
.efi-bleed .m{position:absolute;inset:-12% 0;will-change:transform}
.efi-bleed .m img{width:100%;height:100%;object-fit:cover}
.efi-bleed::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,26,36,.08),rgba(20,26,36,.7))}
.efi-bleed .cap{position:relative;z-index:3;width:100%;padding-bottom:clamp(32px,6vw,68px)}
.efi-bleed .cap h3{color:#fff;font-size:clamp(1.45rem,3.2vw,2.8rem);font-weight:300;max-width:19ch;letter-spacing:-.032em;line-height:1.12}
.efi-bleed .cap p{color:rgba(255,255,255,.74);margin-top:15px;max-width:48ch;font-size:1rem;font-weight:300}

/* ---------- étapes ---------- */
.efi-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:clamp(42px,5vw,68px)}
@media(max-width:1050px){.efi-steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.efi-steps{grid-template-columns:1fr}}
.efi-step{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:32px 28px 36px;position:relative;transition:transform .55s cubic-bezier(.16,1,.3,1),box-shadow .55s}
.efi-step:hover{transform:translateY(-6px);box-shadow:0 20px 44px -22px rgba(20,26,36,.2)}
.efi-step .n{position:absolute;top:28px;right:28px;font-size:.72rem;font-weight:500;color:var(--grey-l);letter-spacing:.08em}
.efi-step .ic{width:54px;height:54px;border-radius:15px;background:var(--sand);display:flex;align-items:center;justify-content:center;margin-bottom:36px;transition:background .45s}
.efi-step:hover .ic{background:var(--blue)}
.efi-step:hover .ic svg{stroke:#fff}
.efi-step .ic svg{transition:stroke .45s}
.efi-step h3{font-size:1.1rem;font-weight:500;margin-bottom:12px}
.efi-step p{font-size:.89rem;line-height:1.6}

/* ---------- section technique sombre ---------- */
.efi-mon{background:var(--deep);color:#fff}
.efi-mon h2,.efi-mon h3{color:#fff}
.efi-mon p{color:rgba(255,255,255,.62)}
.efi-mon .efi-eye{color:#8FA9F0}.efi-mon .efi-eye::before{background:#8FA9F0}
.efi-mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:clamp(44px,5vw,72px);border-top:1px solid rgba(255,255,255,.14)}
@media(max-width:900px){.efi-mgrid{grid-template-columns:1fr}}
.efi-mi{padding:34px 30px 38px;border-bottom:1px solid rgba(255,255,255,.14);border-right:1px solid rgba(255,255,255,.14)}
.efi-mi:nth-child(3n){border-right:none}
@media(max-width:900px){.efi-mi{border-right:none}}
.efi-mi h3{font-size:1.06rem;font-weight:500;margin-bottom:11px;letter-spacing:-.02em}
.efi-mi p{font-size:.9rem;line-height:1.62}
.efi-mi .k{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.34);display:block;margin-bottom:16px}

/* ---------- garanties ---------- */
.efi-gar{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:clamp(42px,5vw,68px)}
@media(max-width:1150px){.efi-gar{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.efi-gar{grid-template-columns:1fr}}
.efi-g{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:36px 32px 38px;transition:border-color .5s,transform .55s cubic-bezier(.16,1,.3,1)}
.efi-g:hover{border-color:var(--blue);transform:translateY(-5px)}
.efi-g .y{font-size:clamp(2.4rem,4.2vw,3.6rem);font-weight:300;letter-spacing:-.05em;color:var(--blue);line-height:1}
.efi-g .y i{font-style:normal;font-size:.88rem;font-weight:400;color:var(--grey);margin-left:8px;letter-spacing:0}
.efi-g h3{font-size:1.12rem;font-weight:500;margin:22px 0 12px}
.efi-g p{font-size:.91rem;line-height:1.62}
.efi-g p b{color:var(--ink);font-weight:500}

/* ---------- réalisations ---------- */
.efi-chead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.efi-arrows{display:flex;gap:10px}
.efi-ar{width:50px;height:50px;border-radius:50%;border:1px solid var(--line-2);background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .35s,border-color .35s,transform .35s}
.efi-ar:hover{background:var(--ink);border-color:var(--ink);transform:translateY(-2px)}
.efi-ar:hover svg{stroke:#fff}
.efi-ar svg{stroke:var(--ink);fill:none;transition:stroke .35s}
.efi-rail{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-top:clamp(36px,4.5vw,58px);padding-bottom:6px}
.efi-rail::-webkit-scrollbar{display:none}
.efi-ob{flex:0 0 clamp(262px,30vw,410px);scroll-snap-align:start}
.efi-ob .ph{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3.4;background:var(--paper-2)}
.efi-ob .ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.3s cubic-bezier(.16,1,.3,1)}
.efi-ob:hover .ph img{transform:scale(1.05)}
.efi-ob .m{display:flex;justify-content:space-between;align-items:baseline;margin-top:18px;gap:12px}
.efi-ob .mu{font-size:1.12rem;font-weight:500;letter-spacing:-.022em}
.efi-ob .dt{font-size:.77rem;color:var(--grey-l);white-space:nowrap}
.efi-ob p{font-size:.87rem;margin-top:4px}
.efi-zones{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(36px,4vw,52px)}
.efi-zones span{border:1px solid var(--line-2);border-radius:40px;padding:9px 18px;font-size:.84rem;transition:border-color .35s,background .35s}
.efi-zones span:hover{border-color:var(--ink);background:#fff}
.efi-lastwork{margin-top:22px;font-size:.86rem;color:var(--grey)}
.efi-lastwork b{color:var(--ink);font-weight:500}

/* ---------- quiénes somos ---------- */
.efi-people{background:var(--paper-2)}
.efi-pgrid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,6vw,84px);align-items:center}
@media(max-width:980px){.efi-pgrid{grid-template-columns:1fr}}
.efi-pph{border-radius:var(--r);overflow:hidden;aspect-ratio:604/943;background:var(--sand);max-height:74vh;margin:0 auto}
.efi-pph img{width:100%;height:100%;object-fit:cover;display:block}
.efi-quote{font-size:clamp(1.3rem,2.55vw,2.25rem);font-weight:300;letter-spacing:-.032em;line-height:1.3;color:var(--ink)}
.efi-sign{margin-top:32px;font-size:.88rem;color:var(--grey)}
.efi-sign b{display:block;color:var(--ink);font-weight:500;font-size:1.04rem;letter-spacing:-.01em;margin-bottom:2px}
.efi-chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:34px}
.efi-chips span{border:1px solid var(--line-2);border-radius:40px;padding:9px 17px;font-size:.82rem;color:var(--ink-2)}

/* ---------- boutons ---------- */
.efi-btn,.efi .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:16px 30px;border-radius:40px;font-size:.95rem;font-weight:500;font-family:inherit;text-decoration:none;cursor:pointer;border:none;transition:transform .35s,background .35s,color .35s,border-color .35s;white-space:nowrap;line-height:1.2}
.efi-btn:hover,.efi .wp-block-button__link:hover{transform:translateY(-2px)}
.efi-btn-p,.is-style-efisity-primary .wp-block-button__link{background:var(--blue);color:#fff}
.efi-btn-p:hover,.is-style-efisity-primary .wp-block-button__link:hover{background:var(--blue-d);color:#fff}
.efi-btn-g,.is-style-efisity-ghost .wp-block-button__link{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.42)}
.efi-btn-g:hover,.is-style-efisity-ghost .wp-block-button__link:hover{background:#fff;color:var(--ink);border-color:#fff}
.efi-btn-d,.is-style-efisity-dark .wp-block-button__link{background:transparent;color:var(--ink);border:1px solid var(--line-2)}
.efi-btn-d:hover,.is-style-efisity-dark .wp-block-button__link:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.efi-btns{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.efi-hcta{margin-top:clamp(26px,3.4vw,40px)}
@media(max-width:520px){.efi-btn,.efi .wp-block-button__link{padding:14px 22px;font-size:.9rem}}

/* ---------- bande de rappel ---------- */
.efi-cband{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper)}
.efi-cband .in2{display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;padding:clamp(30px,4vw,48px) 0}
.efi-cband h3{font-size:clamp(1.3rem,2.4vw,2rem);font-weight:400;letter-spacing:-.03em;max-width:24ch;line-height:1.2}
.efi-cband p{font-size:.92rem;margin-top:8px;max-width:46ch}
.efi-cband.dark{background:var(--deep);border-color:rgba(255,255,255,.12)}
.efi-cband.dark h3{color:#fff}.efi-cband.dark p{color:rgba(255,255,255,.6)}

/* ---------- barre collante mobile ---------- */
.efi-sticky{position:fixed;left:0;right:0;bottom:0;z-index:190;display:none;gap:9px;padding:11px 14px calc(11px + env(safe-area-inset-bottom));background:rgba(251,250,247,.96);backdrop-filter:blur(14px);border-top:1px solid var(--line)}
.efi-sticky a{flex:1;padding:14px 10px;border-radius:40px;font-size:.9rem;font-weight:500;text-decoration:none;text-align:center;display:flex;align-items:center;justify-content:center;gap:7px}
.efi-sticky .c{background:#fff;color:var(--ink);border:1px solid var(--line-2)}
.efi-sticky .e{background:var(--blue);color:#fff}
@media(max-width:820px){.efi-sticky{display:flex}body{padding-bottom:76px}}

/* ---------- servicios ---------- */
.efi-serv{background:var(--paper-2)}
.efi-sgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:clamp(44px,5vw,72px);border-top:1px solid var(--line-2)}
@media(max-width:1100px){.efi-sgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.efi-sgrid{grid-template-columns:1fr}}
.efi-sv{padding:30px 24px 34px;border-bottom:1px solid var(--line-2);border-right:1px solid var(--line-2);position:relative;transition:background .5s}
.efi-sv:last-child{border-right:none}
@media(max-width:1100px){.efi-sv:nth-child(2n){border-right:none}}
@media(max-width:620px){.efi-sv{border-right:none}}
.efi-sv:hover{background:var(--paper)}
.efi-sv .n{font-size:.7rem;font-weight:600;letter-spacing:.16em;color:var(--grey-l);display:block;margin-bottom:18px}
.efi-sv .ic{width:44px;height:44px;border-radius:12px;background:var(--sand);display:flex;align-items:center;justify-content:center;margin-bottom:22px;transition:background .45s}
.efi-sv:hover .ic{background:var(--blue)}
.efi-sv:hover .ic svg{stroke:#fff}
.efi-sv .ic svg{transition:stroke .45s}
.efi-sv h3{font-size:1.06rem;font-weight:500;margin-bottom:10px;letter-spacing:-.02em}
.efi-sv p{font-size:.87rem;line-height:1.58}
.efi-sv a{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:.82rem;font-weight:500;color:var(--blue);text-decoration:none;transition:gap .3s}
.efi-sv a:hover{gap:11px}
.efi-sarrow{display:flex;align-items:center;gap:11px;margin-top:clamp(30px,3.5vw,44px);font-size:.9rem;color:var(--grey)}
.efi-sarrow b{color:var(--ink);font-weight:500}

/* ---------- idiomas ---------- */
.efi-idio{background:var(--sand)}
.efi-igrid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(38px,6vw,88px);align-items:center}
@media(max-width:980px){.efi-igrid{grid-template-columns:1fr;gap:36px}}
.efi-ilist{display:grid;gap:10px}
.efi-il{display:flex;align-items:center;gap:18px;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:18px 22px;transition:transform .5s cubic-bezier(.16,1,.3,1),border-color .5s}
.efi-il:hover{transform:translateX(5px);border-color:var(--blue)}
.efi-il .ic{flex:0 0 46px;height:46px;border-radius:12px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:600;letter-spacing:.06em}
.efi-il b{display:block;font-weight:500;font-size:1.02rem;letter-spacing:-.015em}
.efi-il span{font-size:.86rem;color:var(--grey)}

/* ---------- opiniones ---------- */
.efi-revs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:clamp(38px,4.5vw,58px)}
@media(max-width:980px){.efi-revs{grid-template-columns:1fr}}
.efi-rev{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px;transition:transform .55s cubic-bezier(.16,1,.3,1),box-shadow .55s}
.efi-rev:hover{transform:translateY(-5px);box-shadow:0 20px 44px -24px rgba(20,26,36,.18)}
.efi-st{color:#E0A32B;letter-spacing:1.5px;font-size:1.12rem;line-height:1}
.efi-rev p{margin-top:16px;color:var(--ink);font-size:.99rem;line-height:1.6}
.efi-rev .w{margin-top:20px;font-size:.82rem;color:var(--grey-l)}
.efi-glink{display:inline-flex;align-items:center;gap:9px;margin-top:28px;font-size:.87rem;color:var(--grey);text-decoration:none;border-bottom:1px solid var(--line-2);padding-bottom:4px;transition:color .3s,border-color .3s}
.efi-glink:hover{color:var(--ink);border-color:var(--ink)}

/* ---------- FAQ ---------- */
.efi-faq{max-width:900px;margin-top:clamp(40px,4.5vw,60px)}
.efi-q{border-top:1px solid var(--line)}
.efi-q:last-child{border-bottom:1px solid var(--line)}
.efi-q button{width:100%;background:none;border:none;text-align:left;padding:26px 44px 26px 0;font-family:inherit;font-size:clamp(1rem,1.4vw,1.14rem);font-weight:500;color:var(--ink);cursor:pointer;position:relative;letter-spacing:-.015em;line-height:1.4}
.efi-q button::after{content:"";position:absolute;right:8px;top:50%;width:11px;height:11px;border-right:1.5px solid var(--grey);border-bottom:1.5px solid var(--grey);transform:translateY(-70%) rotate(45deg);transition:transform .4s}
.efi-q.open button::after{transform:translateY(-20%) rotate(225deg)}
.efi-q .a{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.16,1,.3,1)}
.efi-q .a p{padding:0 60px 28px 0;font-size:.97rem;line-height:1.68}
@media(max-width:600px){.efi-q .a p{padding-right:0}}

/* ---------- formulaire ---------- */
.efi-form{background:var(--deep);color:#fff;position:relative;overflow:hidden}
.efi-form::before{content:"";position:absolute;bottom:-45%;left:-12%;width:58vw;height:58vw;border-radius:50%;background:radial-gradient(circle,rgba(46,91,214,.22),transparent 62%)}
.efi-form > *{position:relative;z-index:2}
.efi-form h2{color:#fff}.efi-form p{color:rgba(255,255,255,.68)}
.efi-form .efi-eye{color:#8FA9F0}.efi-form .efi-eye::before{background:#8FA9F0}
.efi-fgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(38px,6vw,80px);align-items:start}
@media(max-width:980px){.efi-fgrid{grid-template-columns:1fr}}
.efi-fc{background:var(--paper);border-radius:var(--r);padding:clamp(26px,3vw,40px);box-shadow:0 40px 80px -40px rgba(0,0,0,.6)}
.efi-fc .gform_wrapper,.efi-fc form{margin:0}
.efi-fc label,.efi-fc .gfield_label{display:block;font-size:.75rem;font-weight:500;color:var(--ink);margin-bottom:7px}
.efi-fc input[type=text],.efi-fc input[type=tel],.efi-fc input[type=email],.efi-fc input[type=number],.efi-fc select,.efi-fc textarea{
  width:100%;padding:14px 15px;border:1px solid var(--line-2);border-radius:12px;font-size:.94rem;font-family:inherit;color:var(--ink);background:#fff;transition:border-color .3s}
.efi-fc input:focus,.efi-fc select:focus,.efi-fc textarea:focus{outline:none;border-color:var(--blue)}
.efi-fc .gform_footer input[type=submit],.efi-fc button[type=submit],.efi-submit{
  width:100%;background:var(--blue);color:#fff;border:none;padding:17px;border-radius:40px;font-size:1rem;font-weight:500;font-family:inherit;cursor:pointer;margin-top:10px;transition:transform .35s,background .35s}
.efi-fc .gform_footer input[type=submit]:hover,.efi-submit:hover{transform:translateY(-2px);background:var(--blue-d)}
.efi-fn{font-size:.73rem;color:var(--grey-l);margin-top:14px}
.efi-fl{list-style:none;margin:36px 0 0;padding:0;display:grid;gap:18px}
.efi-fl li{font-size:1.01rem;font-weight:300;color:rgba(255,255,255,.92);padding-left:30px;position:relative}
.efi-fl li::before{content:"";position:absolute;left:0;top:12px;width:16px;height:1px;background:rgba(255,255,255,.5)}
.efi-tel{display:inline-block;margin-top:36px;font-size:clamp(1.45rem,2.3vw,2rem);font-weight:300;letter-spacing:-.032em;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.28);padding-bottom:5px}

/* ---------- pied de page ---------- */
.efi-footer{padding:72px 0 34px;background:#0C1017;color:rgba(255,255,255,.72)}
.efi-footer p{font-size:.88rem;color:rgba(255,255,255,.72);margin:0}
.efi-footer a{color:rgba(255,255,255,.78);text-decoration:none;transition:color .3s}
.efi-footer a:hover{color:#fff}

/* quatre colonnes : la marque, le site, le contact, le legal */
.efi-fcols{display:grid;grid-template-columns:1.55fr 1fr 1.15fr .9fr;gap:clamp(28px,4vw,64px)}
@media(max-width:900px){.efi-fcols{grid-template-columns:1fr 1fr;gap:38px 28px}}
@media(max-width:520px){.efi-fcols{grid-template-columns:1fr;gap:32px}}
.efi-fcol-1{max-width:34ch}
.efi-fbaseline{margin-top:18px!important;line-height:1.65;color:rgba(255,255,255,.62)!important;font-size:.86rem!important}
.efi-ftitle{
  font-size:.68rem!important;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.5)!important;margin:0 0 15px!important
}
.efi-flist{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.efi-flist a{font-size:.92rem;line-height:1.4}
.efi-flist b{font-weight:500;color:#fff}
.efi-fadr{margin-top:18px!important;font-size:.84rem!important;line-height:1.6;color:rgba(255,255,255,.55)!important}

/* la barre du bas */
.efi-fbar{
  margin-top:clamp(38px,5vw,58px);padding-top:22px;border-top:1px solid rgba(255,255,255,.14);
  display:flex;flex-wrap:wrap;gap:8px 26px;justify-content:space-between;align-items:baseline
}
.efi-fbar p{font-size:.82rem!important;color:rgba(255,255,255,.5)!important}
.efi-fbar a{color:rgba(255,255,255,.62)}

/* ---------- emplacement photo en attente ---------- */
.efi-ph-todo{background:repeating-linear-gradient(45deg,#E9E5DC,#E9E5DC 12px,#E2DED6 12px,#E2DED6 24px);display:flex;align-items:center;justify-content:center;color:var(--grey);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;min-height:180px;width:100%;height:100%}

/* ---------- images du hero, deux formats ---------- */
.efi-hero-media picture{display:block;width:100%;height:100%}
.efi-hero-media picture img{width:100%;height:100%;object-fit:cover}
.efi-bleed .m img{display:block}

/* ---------- citations avec photo : deux colonnes ----------
   Sans ça, le bloc reste collé à gauche et laisse les deux tiers
   de la largeur vides. La photo occupe la colonne de gauche,
   la citation garde sa largeur de lecture à droite. */
.efi-said:has(.efi-rph){
  display:grid;
  grid-template-columns:minmax(240px,400px) minmax(0,52ch);
  grid-template-rows:auto auto;
  gap:0 clamp(28px,4vw,60px);
  align-content:center;
  max-width:none;
}
.efi-said:has(.efi-rph) .efi-rph{grid-row:1/3;align-self:center;max-width:none;margin:0}
.efi-said:has(.efi-rph) .by{margin-top:16px}
@media(max-width:900px){
  .efi-said:has(.efi-rph){grid-template-columns:1fr;gap:0}
  .efi-said:has(.efi-rph) .efi-rph{grid-row:auto;max-width:430px;margin-bottom:26px}
}

/* ---------- services : icônes sans caisson ----------
   Le carré beige enfermait une icône trop petite et donnait
   un air de gabarit générique. Trait seul, plus grand, et les
   liens « Ver más » alignés en bas quelle que soit la hauteur du texte. */
.efi-sv{display:flex;flex-direction:column}
.efi-sv .ic{width:auto;height:auto;background:none;border-radius:0;margin-bottom:26px;justify-content:flex-start}
.efi-sv:hover .ic{background:none}
.efi-sv .ic svg{width:38px;height:38px;stroke-width:1.15}
.efi-sv:hover .ic svg{stroke:var(--ink)}
.efi-sv p{flex:1}
.efi-sv a{align-self:flex-start}



/* ---------- services : vignettes photo ----------
   Cinq objets cadrés à l'identique, dans un rapport constant.
   Le fond des vignettes est celui de la charte : les visuels
   fabricant sur fond blanc et la photo de chantier cohabitent
   sans que la grille devienne un patchwork. */
.efi-svph{aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:var(--sand);margin-bottom:22px}
.efi-svph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.efi-sv:hover .efi-svph img{transform:scale(1.04)}

/* chapô de section : l'espacement et la largeur de lecture passent
   par le CSS, jamais par un style écrit dans le bloc — sans quoi
   WordPress considère le bloc comme corrompu. */
.efi-intro{margin-top:26px!important;max-width:58ch}

/* ---------- El montaje : titre à gauche, installation électrique à droite ----------
   La section reposait sur six affirmations d'Efisity sur son propre
   travail, sans une seule image. La photo du tableau et de l'onduleur
   montre ce que le client ne verra jamais depuis le sol. */
.efi-mhead{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(32px,5vw,72px);align-items:center}
@media(max-width:900px){.efi-mhead{grid-template-columns:1fr;gap:34px}}
.efi-mph{border-radius:var(--r);overflow:hidden;max-width:400px;justify-self:end;background:rgba(255,255,255,.05)}
@media(max-width:900px){.efi-mph{justify-self:start;max-width:320px}}
.efi-mph img{width:100%;height:auto;display:block}

/* ---------- idiomas : les quatre langues arrivent une par une ----------
   C'est le différenciateur le moins copiable d'Efisity : une famille
   française en Catalogne qui traite le devis ET le dossier de
   légalisation en quatre langues. L'animation est là pour qu'on
   les compte — d'où l'amplitude et l'espacement des départs. */
.efi-ilist .efi-il.rv{
  opacity:0;
  transform:translateX(280px);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform 1.15s cubic-bezier(.16,1,.3,1);
}
.efi-ilist .efi-il.rv.in{opacity:1;transform:none}
.efi-ilist .efi-il.rv{transition-delay:0s}
.efi-ilist .efi-il.rv.d1{transition-delay:.5s}
.efi-ilist .efi-il.rv.d2{transition-delay:1s}
.efi-ilist .efi-il.rv.d3{transition-delay:1.5s}
.efi-ilist .efi-il.rv.in:hover{transform:translateX(6px)}
/* la ligne de preuve n'arrive qu'une fois les quatre posées */
.efi-idio .rv.d4{transition-delay:2.1s}
@media(prefers-reduced-motion:reduce){
  .efi-ilist .efi-il.rv{transform:none!important;transition:none}
}



/* =========================================================================
   PAGES DE TEXTE — aviso legal, politica de privacidad, cookies
   Le gabarit "page" est une colonne de lecture ; les pages larges (services)
   utilisent le gabarit "page-ancha".
   Classe .efi-doc et non .efi-legal : .efi-legal est deja prise par la ligne
   legale du pied de page.
   ========================================================================= */
.efi-section>.wp-block-post-title{max-width:36rem;font-size:clamp(2.1rem,4vw,3.4rem);font-weight:500;letter-spacing:-.035em;line-height:1.08;margin:0 auto 10px}
.efi-doc{max-width:36rem;margin-inline:auto}
.efi .efi-doc>*+*{margin-top:19px}
.efi-doc p,.efi-doc li{color:var(--ink-2);font-size:1rem;line-height:1.75}
.efi-doc .efi-lead{font-size:1.1rem;color:var(--ink-2)}
.efi-doc h2{font-size:clamp(1.28rem,2vw,1.62rem);font-weight:600;letter-spacing:-.02em;line-height:1.25;color:var(--ink);margin:56px 0 4px}
.efi-doc h3{font-size:1rem;font-weight:600;color:var(--ink);margin:28px 0 2px}
.efi-doc ul{padding-left:19px;margin:0}
.efi-doc li{margin-bottom:7px}
.efi-doc a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.efi-doc strong{color:var(--ink);font-weight:600}
.efi-doc .efi-updated{margin-top:60px;padding-top:19px;border-top:1px solid var(--line);font-size:.85rem;color:var(--grey-l)}

/* fiche d'identite de l'entreprise : paires libelle / valeur */
.efi-idcard{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,3vw,32px)}
.efi-idcard dl{display:grid;grid-template-columns:minmax(148px,188px) 1fr;gap:12px 26px;margin:0}
.efi-idcard dt{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--grey);margin:0;line-height:1.5}
.efi-idcard dd{margin:0;color:var(--ink);font-size:.95rem;line-height:1.55}
@media(max-width:620px){.efi-idcard dl{grid-template-columns:1fr;gap:0}.efi-idcard dt{margin-top:15px}}

/* tableaux : bases legales, durees de conservation */
.efi-doc table{width:100%;border-collapse:collapse;font-size:.93rem}
.efi-doc th,.efi-doc td{text-align:left;padding:13px 16px 13px 0;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.55}
.efi-doc th{font-size:.72rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--grey);padding-top:0}
.efi-doc td{color:var(--grey)}
.efi-doc td:first-child{color:var(--ink);padding-right:26px}
@media(max-width:620px){
  .efi-doc thead{display:none}
  .efi-doc tr{display:block;padding:13px 0;border-bottom:1px solid var(--line)}
  .efi-doc td{display:block;border:0;padding:1px 0}
  .efi-doc td:first-child{font-weight:600;padding-right:0}
}

/* marqueur des donnees encore manquantes — il doit se voir */
.efi-pend{background:#FFF1C9;color:#7A5B00;padding:1px 7px;border-radius:5px;font-size:.86em;font-weight:600;white-space:nowrap}

/* pages interieures : pas de hero derriere la nav, elle doit etre lisible
   des le premier pixel. Meme rendu que l'etat .stuck, sans attendre le
   defilement. WordPress pose la classe .home sur la seule page d'accueil. */
body:not(.home) .efi-nav{background:rgba(251,250,247,.94);backdrop-filter:saturate(180%) blur(14px);padding:12px 0;box-shadow:0 1px 0 var(--line)}
body:not(.home) .efi-nav .efi-lgt{color:var(--ink);font-size:1.42rem}
body:not(.home) .efi-nav .efi-lgm{width:50px;height:50px;flex-basis:50px}
body:not(.home) .efi-nav .efi-lgm svg{width:25px;height:25px}
body:not(.home) .efi-nav .efi-nvm a{color:var(--grey);font-weight:400;text-shadow:none}
body:not(.home) .efi-nav .efi-nvb{background:var(--blue);color:#fff}
/* la nav fixe ne doit pas manger le titre sur les pages sans hero */
body:not(.home) .efi-section{padding-top:clamp(124px,11vw,168px)}

/* ---------- page de remerciement ---------- */
.efi-next{margin-top:8px}
.efi-next-t{font-size:.72rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--grey);margin:0 0 14px}
.efi-flow{counter-reset:s;list-style:none;margin:0;padding:0;display:grid;gap:15px}
.efi-flow li{counter-increment:s;position:relative;padding-left:34px;color:var(--ink-2);font-size:.97rem;line-height:1.6}
.efi-flow li::before{
  content:counter(s);position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:50%;
  background:var(--blue);color:#fff;font-size:.72rem;font-weight:600;
  display:flex;align-items:center;justify-content:center
}
.efi-flow b{color:var(--ink);font-weight:600}
.efi-tel-wrap{margin-top:4px}
.efi-tel{
  display:inline-flex;align-items:center;gap:10px;background:var(--blue);color:#fff!important;
  padding:15px 28px;border-radius:40px;font-size:1.02rem;font-weight:500;
  text-decoration:none!important;transition:transform .35s,background .35s
}
.efi-tel:hover{transform:translateY(-2px);background:var(--blue-d)}

/* ---------- interrupteur de mise en sommeil ----------
   Ajouter la classe efi-hold a un bloc le retire de la page sans supprimer
   son contenu : il reste dans l'editeur, il disparait du site. Sert a publier
   pendant qu'une donnee manque encore, et a le remettre en trois secondes
   quand elle arrive.
   Dans l'editeur de blocs : panneau Bloc > Avance > Classe(s) CSS additionnelle(s).
   Le bloc reste visible dans l'editeur, barre d'un liseré, pour qu'on n'oublie
   jamais qu'il attend quelque chose. */
.efi-hold{display:none!important}
/* Un lien en sommeil dans une liste : masquer le lien laisse la puce et l'ecart
   de la grille. On masque donc la ligne entiere. */
li:has(>.efi-hold){display:none}
.editor-styles-wrapper li:has(>.efi-hold){display:revert}
.editor-styles-wrapper .efi-hold{
  display:revert!important;opacity:.4;outline:2px dashed #C9A227;outline-offset:6px;position:relative
}
.editor-styles-wrapper .efi-hold::after{
  content:"EN SOMMEIL — invisible sur le site";
  position:absolute;top:-11px;left:0;z-index:5;
  background:#C9A227;color:#fff;font-size:10px;font-weight:700;letter-spacing:.08em;
  padding:2px 8px;border-radius:3px
}

/* ---------- Fluent Forms dans la carte du formulaire ----------
   Le formulaire est genere par l'extension : on reprend son habillage pour
   qu'il retrouve l'allure de la maquette. Rien n'est modifie dans l'extension,
   tout est ici — une mise a jour de Fluent Forms ne casse pas le design. */

/* on efface la mise en forme par defaut de l'extension dans notre carte */
.efi-fc .fluentform .ff-el-group{margin-bottom:15px}
.efi-fc .fluentform .ff-el-group:last-of-type{margin-bottom:0}
.efi-fc .fluentform .ff-el-input--label{margin-bottom:0}
.efi-fc .fluentform .ff-el-input--label label{
  display:block;font-size:.75rem;font-weight:500;color:var(--ink);margin-bottom:7px;line-height:1.4
}
/* l'asterisque du champ obligatoire : present mais discret */
.efi-fc .fluentform .ff-el-is-required.asterisk-right label:after,
.efi-fc .fluentform .ff-el-input--label.asterisk-right label:after{
  color:var(--grey-l);font-weight:400;margin-left:3px
}

.efi-fc .fluentform .ff-el-form-control{
  width:100%;padding:14px 15px;border:1px solid var(--line-2);border-radius:12px;
  font-size:.94rem;font-family:inherit;color:var(--ink);background:#fff;
  line-height:1.4;box-shadow:none;transition:border-color .3s
}
.efi-fc .fluentform .ff-el-form-control:focus{outline:none;border-color:var(--blue);box-shadow:none}
.efi-fc .fluentform select.ff-el-form-control{
  appearance:none;-webkit-appearance:none;padding-right:40px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236B6F78' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center
}
.efi-fc .fluentform .ff-el-form-control::placeholder{color:var(--grey-l)}

/* information sur les donnees — par couches, comme le recommande l'AEPD :
   une phrase et un lien, le detail replie pour qui veut le lire. */
.efi-fc .fluentform .ff-custom_html{margin:20px 0 6px}
.efi-rgpd p{font-size:.75rem;line-height:1.6;color:var(--grey);margin:0}
.efi-rgpd a{color:var(--grey);text-decoration:underline;text-underline-offset:2px}
.efi-rgpd details{margin-top:8px}
.efi-rgpd summary{
  font-size:.72rem;color:var(--grey-l);cursor:pointer;list-style:none;
  display:inline-flex;align-items:center;gap:6px;padding:2px 0
}
.efi-rgpd summary::-webkit-details-marker{display:none}
.efi-rgpd summary::before{
  content:"";width:0;height:0;border-left:4px solid var(--grey-l);
  border-top:3.5px solid transparent;border-bottom:3.5px solid transparent;
  transition:transform .25s
}
.efi-rgpd details[open] summary::before{transform:rotate(90deg)}
.efi-rgpd summary:hover{color:var(--grey)}
.efi-rgpd dl{
  display:grid;grid-template-columns:minmax(88px,110px) 1fr;gap:5px 14px;
  margin:10px 0 0;padding:12px 14px;background:var(--paper-2);border-radius:10px
}
.efi-rgpd dt{font-size:.68rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--grey);margin:0}
.efi-rgpd dd{font-size:.72rem;line-height:1.5;color:var(--ink-2);margin:0}
@media(max-width:480px){.efi-rgpd dl{grid-template-columns:1fr;gap:1px}.efi-rgpd dt{margin-top:9px}}

/* les deux cases a cocher : de vraies cibles tactiles */
.efi-fc .fluentform .ff-el-form-check{margin:0}
.efi-fc .fluentform .ff-el-group:has(.ff-el-form-check){margin-bottom:11px}
.efi-fc .fluentform .ff-el-form-check-label{
  display:flex;align-items:flex-start;gap:11px;cursor:pointer;
  font-size:.78rem;line-height:1.5;color:var(--ink-2);font-weight:400
}
.efi-fc .fluentform .ff-el-form-check-label input[type=checkbox]{
  appearance:none;-webkit-appearance:none;flex:0 0 18px;width:18px;height:18px;margin:1px 0 0;
  border:1.5px solid var(--line-2);border-radius:5px;background:#fff;cursor:pointer;
  transition:background .2s,border-color .2s
}
.efi-fc .fluentform .ff-el-form-check-label input[type=checkbox]:checked{
  background:var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='9' viewBox='0 0 11 9' fill='none'%3E%3Cpath d='M1 4.5L4 7.5L10 1.5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center no-repeat;
  border-color:var(--blue)
}
.efi-fc .fluentform .ff-el-form-check-label input[type=checkbox]:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* le bouton — meme allure que celui de la maquette */
.efi-fc .fluentform .ff-btn-submit,
.efi-fc .fluentform .ff_submit_btn_wrapper button{
  width:100%!important;background:var(--blue)!important;color:#fff!important;border:none!important;
  padding:17px!important;border-radius:40px!important;font-size:1rem!important;font-weight:500!important;
  font-family:inherit!important;cursor:pointer;margin-top:16px;
  transition:transform .35s,background .35s;box-shadow:none!important
}
.efi-fc .fluentform .ff-btn-submit:hover{transform:translateY(-2px);background:var(--blue-d)!important}

/* messages d'erreur */
.efi-fc .fluentform .error-text,.efi-fc .fluentform .text-danger{
  font-size:.72rem;color:#C0392B;margin-top:5px
}
.efi-fc .fluentform .ff-message-success{
  padding:18px;border-radius:12px;background:#EAF3EA;color:#2F6B34;font-size:.92rem
}


/* ---------- page de contact ---------- */
.efi-ct{max-width:none}
.efi-ct .efi-lead{max-width:46ch}
.efi-ct-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(34px,5vw,74px);align-items:start;margin-top:clamp(30px,4vw,46px)}
@media(max-width:900px){.efi-ct-grid{grid-template-columns:1fr;gap:38px}}
.efi-ct-block{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--line)}
.efi-ct-block:last-of-type{border-bottom:0;padding-bottom:0}
.efi-ct-t{font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--grey-l);margin:0 0 9px}
.efi-ct-big{font-size:clamp(1.5rem,2.4vw,1.95rem);font-weight:500;letter-spacing:-.03em;color:var(--ink);text-decoration:none;display:inline-block}
.efi-ct-big:hover{color:var(--blue)}
.efi-ct-med{font-size:1.02rem;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line-2);padding-bottom:1px}
.efi-ct-med:hover{color:var(--blue);border-color:var(--blue)}
.efi-ct-adr{font-size:.97rem;line-height:1.6;color:var(--ink-2);margin:0}
.efi-ct-s{font-size:.82rem;color:var(--grey-l);margin:7px 0 0;line-height:1.55}
.efi-ct-note{background:var(--paper-2);border-radius:var(--r);padding:20px 22px;margin-top:30px}
.efi-ct-note p{font-size:.88rem;line-height:1.62;color:var(--ink-2);margin:0}
.efi-ct-note b{color:var(--ink)}
.efi-ct-note a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.efi-ct-form{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:clamp(24px,3vw,34px)}
.efi-ct-form .ff-el-form-control{background:#fff}
.efi-ct-form textarea.ff-el-form-control{min-height:130px;resize:vertical}

/* la page de contact occupe toute la largeur : son titre doit s'aligner
   avec elle, pas rester dans la colonne de lecture des pages de texte. */
.efi-section:has(.efi-ct)>.wp-block-post-title{max-width:none;margin-left:0;margin-right:0}


 
/* ---------- bandeau cookies (tarteaucitron) — aux couleurs du site, 16/10/2026 ----------
   Textes définis dans l'extension efisity-consent (tarteaucitronCustomText).
   On ne touche JAMAIS à display sur #tarteaucitronAlertBig : c'est tarteaucitron
   qui l'affiche ou le masque en style en ligne. Tout le reste est surchargé ici,
   avec !important parce que la feuille de la bibliothèque en met partout. */
html body #tarteaucitronRoot div#tarteaucitronAlertBig{
  position:fixed!important;top:auto!important;right:auto!important;left:24px!important;bottom:24px!important;
  width:420px!important;max-width:calc(100% - 32px)!important;box-sizing:border-box!important;
  margin:0!important;padding:22px 24px 16px!important;
  background:var(--paper)!important;color:var(--ink)!important;
  border:1px solid var(--line)!important;border-radius:20px!important;
  box-shadow:0 30px 70px -30px rgba(20,26,36,.45)!important;
  font-family:'InterVar','Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  text-align:left!important;z-index:2147483645!important
}
html body #tarteaucitronRoot div#tarteaucitronAlertBig::before,
html body #tarteaucitronRoot div#tarteaucitronAlertBig::after{display:none!important;content:none!important}
html body #tarteaucitronRoot #tarteaucitronDisclaimerAlert{
  display:block!important;margin:0 0 18px!important;padding:0!important;
  font:400 13.5px/1.55 inherit!important;font-family:inherit!important;color:var(--grey)!important;text-align:left!important
}
html body #tarteaucitronRoot #tarteaucitronDisclaimerAlert .efi-ck-t{
  display:block;margin-bottom:6px;font-size:15.5px;font-weight:500;color:var(--ink);letter-spacing:-.01em
}
html body #tarteaucitronRoot #tarteaucitronDisclaimerAlert a{
  color:var(--blue)!important;text-decoration:underline!important;text-underline-offset:2px;font-size:inherit!important
}
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2,
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2{
  float:left!important;width:calc(50% - 4px)!important;box-sizing:border-box!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  margin:0!important;padding:12px 16px!important;border-radius:40px!important;
  font-family:inherit!important;font-size:14px!important;font-weight:500!important;line-height:1.2!important;
  cursor:pointer;transition:background .3s,color .3s,border-color .3s,transform .3s
}
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2{
  background:var(--blue)!important;color:#fff!important;border:1px solid var(--blue)!important
}
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2:hover{
  background:var(--blue-d)!important;border-color:var(--blue-d)!important;transform:translateY(-1px)
}
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2{
  float:right!important;background:transparent!important;color:var(--ink)!important;border:1px solid var(--line-2)!important
}
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2:hover{
  background:var(--ink)!important;color:#fff!important;border-color:var(--ink)!important;transform:translateY(-1px)
}
html body #tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCheck,
html body #tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCross{display:none!important}
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert{
  clear:both!important;display:block!important;width:100%!important;margin:0!important;padding:12px 0 2px!important;
  background:none!important;border:0!important;color:var(--grey)!important;
  font-family:inherit!important;font-size:12.5px!important;font-weight:400!important;
  text-decoration:underline!important;text-underline-offset:2px;cursor:pointer;text-align:center!important
}
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert:hover{color:var(--ink)!important}
/* le lien vers la politique est dans la phrase : le bouton en double disparaît */
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl{display:none!important}
html body #tarteaucitronRoot #tarteaucitronPersonalize2:focus-visible,
html body #tarteaucitronRoot #tarteaucitronAllDenied2:focus-visible,
html body #tarteaucitronRoot #tarteaucitronCloseAlert:focus-visible{outline:2px solid var(--blue)!important;outline-offset:2px}
 
/* mobile : pleine largeur, posé AU-DESSUS de la barre « Llamar / Estudio » */
@media(max-width:820px){
  html body #tarteaucitronRoot div#tarteaucitronAlertBig{
    left:8px!important;right:8px!important;width:auto!important;max-width:none!important;
    bottom:calc(78px + env(safe-area-inset-bottom))!important;padding:18px 16px 12px!important
  }
  html body #tarteaucitronRoot #tarteaucitronDisclaimerAlert{font-size:13px!important;margin-bottom:14px!important}
  html body #tarteaucitronRoot #tarteaucitronDisclaimerAlert .efi-ck-t{font-size:14.5px}
}
 
/* ---------- correctifs mobile des pages intérieures, 16/10/2026 ----------
   1. Menu hamburger : blanc par défaut (prévu pour la photo de l'accueil),
      il devenait invisible sur l'en-tête clair des pages intérieures (blog,
      articles, pages de service). On le passe en encre, sauf menu ouvert.
   2. Espace trop grand entre l'en-tête et le début du contenu sur mobile :
      124 px minimum hérités de l'ordinateur, ramenés à 100 px (en-tête 74 px
      + 26 px d'air).
   3. Cadenas des cookies : il chevauchait le bouton WhatsApp de la barre
      collante. Remonté au-dessus de la barre, et réduit. */
body:not(.home) .efi-nav .efi-burger:not([aria-expanded=true]){color:var(--ink)!important}
body:not(.home) .efi-nav .efi-burger:not([aria-expanded=true]) span{background:var(--ink)!important}
@media(max-width:820px){
  body:not(.home) .efi-section{padding-top:100px!important}
  #tarteaucitronIcon.tarteaucitronIconBottomLeft{bottom:calc(76px + env(safe-area-inset-bottom))!important}
  #tarteaucitronIcon #tarteaucitronManager img{width:36px!important;height:36px!important}
}