/* Matvision 2026. The official replacement fonts and ellipse source remain pending. */
body.mv-site{--mv-sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;--mv-mono:'IBM Plex Mono',Consolas,'Courier New',monospace;--mv-green:#008b29;--mv-light:#90e377;--mv-pale:#e8f4df;--mv-ink:#303d3a;--mv-ground:#f2f2f2;margin:0;background:#fff;color:var(--mv-ink);font-family:var(--mv-sans);font-size:17px;line-height:1.65;overflow-x:clip}
.mv-site *{box-sizing:border-box}.mv-site a{color:inherit;text-decoration:none}.mv-site img{max-width:100%;height:auto}.mv-site p{margin:0 0 24px}.mv-site h1,.mv-site h2,.mv-site h3{font-family:var(--mv-sans);font-weight:400;letter-spacing:-.045em;color:var(--mv-ink);margin:0 0 24px;line-height:1.08}.mv-site h1{font-size:clamp(42px,5.2vw,76px)}.mv-site h2{font-size:clamp(34px,3.6vw,52px)}.mv-site h3{font-size:27px;letter-spacing:-.025em;line-height:1.2}.mv-site h1 mark,.mv-site h2 mark{background:none;color:var(--mv-green)}.mv-site :focus-visible{outline:3px solid #008b29;outline-offset:5px}.mv-site .wp-block-group{max-width:none}.mv-site .mv-inner{width:100%}.mv-site .mv-eyebrow{font-family:var(--mv-mono);font-size:12px;letter-spacing:.075em;line-height:1.5;text-transform:uppercase;margin:0 0 28px;color:var(--mv-ink)}
.mv-header{height:102px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #ddd;position:relative;z-index:20}.mv-logo{display:flex;align-items:center}.mv-logo img{display:block;width:151px;height:55px;object-fit:contain}.mv-nav{display:flex;align-items:center;gap:30px}.mv-nav ul{display:flex;gap:25px;margin:0;padding:0;list-style:none}.mv-nav a{font-size:14px;line-height:1.2}.mv-nav li a{padding:10px 0;display:block}.mv-nav li a:hover{color:var(--mv-green)}.mv-nav .current-menu-item>a{border-bottom:1px solid var(--mv-green)}.mv-nav-call{background:var(--mv-green);color:#fff!important;padding:17px 23px;display:flex;gap:20px;align-items:center}.mv-nav-call:hover{background:#303d3a}.mv-menu-toggle{display:none}.mv-skip{position:absolute;top:-100px;left:20px;padding:12px;background:#fff;z-index:99}.mv-skip:focus{top:10px}
.mv-hero{position:relative;min-height:665px;isolation:isolate;overflow:hidden;background-color:var(--mv-ground);background-image:linear-gradient(#ddd6 1px,transparent 1px),linear-gradient(90deg,#ddd6 1px,transparent 1px);background-size:60px 60px;display:flex;align-items:center}.mv-hero >.wp-block-group__inner-container >.mv-inner{display:contents}.mv-hero-copy{position:relative;z-index:2;width:58%;padding:80px 0 92px 5.5%}.mv-hero-copy h1{max-width:690px;margin-bottom:30px}.mv-hero-copy>p,.mv-hero-copy p:not(.mv-eyebrow){max-width:445px;font-size:18px;line-height:1.6}.mv-hero .mv-hero-image{position:absolute;right:0;top:0;width:49%;height:100%;margin:0;clip-path:ellipse(93% 88% at 100% 74%);z-index:1}.mv-hero-image img{width:100%;height:100%;object-fit:cover;object-position:43% center}.mv-hero-copy .wp-block-buttons{margin-top:34px;gap:14px}.mv-site .wp-block-button__link,.mv-button{display:inline-flex;align-items:center;justify-content:center;padding:16px 25px;background:var(--mv-green);border:1px solid var(--mv-green);color:#fff!important;border-radius:0;font-size:15px;font-weight:400;line-height:1.4;letter-spacing:0;cursor:pointer;transition:background .2s,transform .2s;text-decoration:none}.mv-site .wp-block-button__link:hover,.mv-button:hover{background:var(--mv-ink);border-color:var(--mv-ink);transform:translateY(-2px)}.mv-site .is-style-outline .wp-block-button__link{background:#fff!important;border:1px solid #303d3a;color:#303d3a!important}.mv-site .is-style-outline .wp-block-button__link:hover{background:var(--mv-pale)!important}.mv-proof{padding:25px 5.5%;border-bottom:1px solid #ddd;display:flex;align-items:center;justify-content:space-between;gap:30px;font-size:14px}.mv-proof >.wp-block-group__inner-container >.mv-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}.mv-proof p{margin:0}.mv-proof p:first-child{font-size:12px;letter-spacing:.06em;font-family:var(--mv-mono);text-transform:uppercase}.mv-proof a{border-bottom:1px solid #9ab3a5}
.mv-section{padding:100px 5.5%}.mv-section>h2,.mv-section >.wp-block-group__inner-container >.mv-inner>h2{max-width:810px}.mv-section p:not(.mv-eyebrow){max-width:690px}.mv-section.mv-green{background:var(--mv-green);color:#fff}.mv-green h2,.mv-green h3,.mv-green .mv-eyebrow{color:#fff}.mv-green h2 mark{color:var(--mv-light)}.mv-green .mv-text-link{color:#fff}.mv-grid-bg{background-color:var(--mv-ground);background-image:linear-gradient(#ddd5 1px,transparent 1px),linear-gradient(90deg,#ddd5 1px,transparent 1px);background-size:60px 60px}.mv-two-col >.wp-block-group__inner-container >.mv-inner{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.mv-two-col> .wp-block-group{min-width:0}.mv-two-col figure{margin:0}.mv-two-col figure img{width:100%;aspect-ratio:1.2;object-fit:cover}.mv-two-col h2{max-width:540px}.mv-two-col p{max-width:540px}.mv-text-link{display:inline-block;font-size:15px;border-bottom:1px solid currentColor;padding-bottom:7px;margin-top:8px}.mv-text-link:hover{color:var(--mv-green)}
.mv-steps{margin:54px 0 35px}.mv-steps >.wp-block-group__inner-container >.mv-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.mv-step{padding:25px 26px 0 0;border-top:1px solid #b8c5bf;position:relative}.mv-step + .mv-step{padding-left:26px;border-left:1px solid #b8c5bf}.mv-step .mv-eyebrow{margin:0 0 30px;color:var(--mv-green)}.mv-step h3{font-size:25px}.mv-step p{font-size:15px;margin:0}.mv-green .mv-step{border-color:#ffffff66}.mv-green .mv-step .mv-eyebrow{color:var(--mv-light)}.mv-green .mv-step p{color:#fff}
.mv-solutions-list{margin-top:55px;border-top:1px solid #b7c5bd}.mv-solution-row{display:grid;grid-template-columns:1fr 1.3fr 40px;align-items:center;gap:30px;border-bottom:1px solid #b7c5bd;padding:28px 0;transition:padding .2s,background .2s}.mv-solution-row h3{margin:0}.mv-solution-row p{margin:0;font-size:15px;max-width:520px}.mv-solution-row>span{font-size:26px;justify-self:end}.mv-solution-row:hover{padding-left:18px;padding-right:18px;background:#e8f4df}.mv-solution-row:hover h3{color:var(--mv-green)}
.mv-insights{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:52px}.mv-insights article{padding-top:25px;border-top:1px solid #b7c5bd;display:flex;flex-direction:column}.mv-insights article h3{font-size:28px}.mv-insights .mv-eyebrow{font-size:11px}.mv-insights .mv-text-link{margin-top:auto;align-self:flex-start}.mv-insights a:hover{color:var(--mv-green)}
.mv-cta{position:relative;overflow:hidden;background:var(--mv-green);color:#fff;padding:80px 5.5%}.mv-cta >.wp-block-group__inner-container >.mv-inner{display:flex;align-items:center;justify-content:space-between;gap:35px}.mv-cta h2{color:#fff;max-width:740px;margin:0}.mv-cta h2 mark{color:var(--mv-light)}.mv-cta .wp-block-buttons{flex-shrink:0}.mv-cta .wp-block-button__link{background:#fff;color:var(--mv-ink)!important;border-color:#fff}.mv-cta .wp-block-button__link:hover{background:var(--mv-pale)}
.mv-footer{background:var(--mv-ink);color:#fff;padding:60px 5.5% 24px}.mv-footer-top{display:grid;grid-template-columns:1fr 1.5fr auto;align-items:start;gap:60px;padding-bottom:70px}.mv-footer-top img{width:180px}.mv-footer-top p{font-size:31px;line-height:1.25;letter-spacing:-.035em}.mv-footer-top>a{font-size:24px;border-bottom:1px solid #c0cfbf;padding-bottom:8px}.mv-footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px;border-top:1px solid #ffffff44;padding-top:24px;font-size:12px}.mv-footer-bottom nav{display:flex;gap:20px;flex-wrap:wrap}.mv-footer a:hover{color:var(--mv-light)}.mv-local-label{font-family:var(--mv-mono);color:#cad8ce;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.mv-footer :focus-visible{outline-color:var(--mv-light)}
.mv-subhero{padding:80px 5.5%;background:var(--mv-ground);border-bottom:1px solid #ddd}.mv-subhero h1{max-width:960px;font-size:clamp(42px,5vw,70px)}.mv-subhero p:not(.mv-eyebrow){max-width:630px;font-size:20px}.mv-subhero .wp-block-buttons{margin-top:30px}.mv-body-copy{max-width:850px;margin:auto;padding:70px 5.5%}.mv-body-copy h2{font-size:36px;margin-top:50px}.mv-body-copy p{font-size:18px}.mv-site .mv-table{margin:45px 0 0}.mv-table table{border-collapse:collapse;width:100%;font-size:16px}.mv-table th,.mv-table td{text-align:left;padding:20px;border:1px solid #c4cdc7}.mv-table th{background:var(--mv-pale);font-weight:400}
.mv-form{max-width:740px}.mv-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.mv-form label{display:block;font-size:14px;margin:20px 0 7px}.mv-form input,.mv-form select,.mv-form textarea{display:block;width:100%;padding:13px 14px;border:1px solid #8a9891;background:#fff;color:var(--mv-ink);border-radius:0;font:inherit;line-height:1.5}.mv-form .mv-button{margin-top:25px}.mv-form-note{font-size:13px!important;color:#52625b}.mv-form-status{padding:22px;border-left:3px solid var(--mv-green);background:var(--mv-pale);color:var(--mv-ink)}.mv-site .mv-contact-grid >.wp-block-group__inner-container >.mv-inner{display:grid;grid-template-columns:1.3fr .7fr;gap:10%}.mv-note{font-size:14px;padding:22px;border-left:2px solid var(--mv-green);background:var(--mv-pale)}
@media(prefers-reduced-motion:no-preference){.mv-hero-copy{animation:mv-enter .7s ease both}.mv-hero-image{animation:mv-photo .9s ease both}.mv-observe{opacity:0;transform:translateY(15px);transition:opacity .65s ease,transform .65s ease}.mv-observe.mv-entered{opacity:1;transform:none}@keyframes mv-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes mv-photo{from{opacity:0;transform:translateX(15px)}to{opacity:1;transform:none}}}
@media(min-width:1550px){.mv-header,.mv-section,.mv-proof,.mv-footer,.mv-subhero,.mv-cta{padding-left:max(5.5%,calc((100vw - 1440px)/2));padding-right:max(5.5%,calc((100vw - 1440px)/2))}.mv-hero-copy{padding-left:max(5.5%,calc((100vw - 1440px)/2))}.mv-hero{min-height:760px}}
@media(max-width:1100px){.mv-nav{gap:20px}.mv-nav ul{gap:16px}.mv-nav a{font-size:12px}.mv-header{padding:0 4%;height:90px}.mv-nav-call{padding:15px}.mv-logo img{width:128px}.mv-hero{min-height:620px}.mv-hero-copy{padding:60px 0 65px 5.5%;width:60%}.mv-hero-copy h1{font-size:58px}.mv-hero .mv-hero-image{width:47%;clip-path:ellipse(94% 87% at 100% 78%)}.mv-hero-copy p:not(.mv-eyebrow){max-width:360px;font-size:16px}.mv-section{padding-top:75px;padding-bottom:75px}.mv-steps >.wp-block-group__inner-container >.mv-inner{grid-template-columns:repeat(2,1fr);gap:35px 0}.mv-step:nth-child(3){border-left:0;padding-left:0}.mv-cta >.wp-block-group__inner-container >.mv-inner{display:block}.mv-cta .wp-block-buttons{margin-top:30px}.mv-footer-top{gap:30px}}
@media(max-width:800px){.mv-header{height:82px;padding-inline:6%}.mv-menu-toggle{display:block;background:transparent;border:1px solid #87958c;border-radius:0;padding:10px 15px;font-size:14px;color:var(--mv-ink)}.mv-nav{display:none;position:absolute;left:0;right:0;top:82px;background:white;box-shadow:0 15px 20px #0001;padding:25px 6%;align-items:stretch}.mv-nav.is-open{display:flex;flex-direction:column}.mv-nav ul{flex-direction:column;gap:5px}.mv-nav a{font-size:17px;padding-block:10px}.mv-nav-call{justify-content:space-between}.mv-hero{display:block;min-height:0}.mv-hero-copy{width:100%;padding:55px 6% 45px}.mv-hero-copy h1{font-size:clamp(42px,8vw,65px);max-width:650px}.mv-hero-copy p:not(.mv-eyebrow){max-width:520px}.mv-hero .mv-hero-image{position:relative;width:100%;height:360px;clip-path:ellipse(90% 100% at 70% 100%)}.mv-hero-copy .wp-block-buttons{gap:10px;margin-top:28px}.mv-site .wp-block-button__link{font-size:14px;padding:14px 20px}.mv-proof{padding:22px 6%}.mv-proof >.wp-block-group__inner-container >.mv-inner{align-items:flex-start;gap:12px;flex-direction:column}.mv-section,.mv-subhero{padding:60px 6%}.mv-two-col >.wp-block-group__inner-container >.mv-inner{grid-template-columns:1fr;gap:35px}.mv-section h2{font-size:38px}.mv-two-col figure img{aspect-ratio:1.6}.mv-insights{grid-template-columns:1fr;gap:35px}.mv-insights article h3{max-width:550px}.mv-solution-row{grid-template-columns:1fr 35px;gap:14px;padding-block:24px}.mv-solution-row p{grid-row:2;grid-column:1}.mv-solution-row>span{grid-column:2;grid-row:1}.mv-solution-row h3{font-size:27px}.mv-cta{padding:55px 6%}.mv-cta h2{font-size:38px}.mv-footer{padding:45px 6% 25px}.mv-footer-top{grid-template-columns:1fr;gap:20px;padding-bottom:35px}.mv-footer-top p{font-size:27px}.mv-footer-top>a{justify-self:start;font-size:22px}.mv-footer-bottom{align-items:flex-start;flex-direction:column;gap:15px}.mv-footer-bottom nav{gap:18px}.mv-site .mv-contact-grid >.wp-block-group__inner-container >.mv-inner{grid-template-columns:1fr;gap:40px}.mv-table{overflow-x:auto}.mv-table th,.mv-table td{padding:13px;min-width:145px}.mv-body-copy{padding:50px 6%}}
@media(max-width:420px){.mv-hero-copy h1{font-size:42px}.mv-hero .mv-hero-image{height:280px}.mv-steps >.wp-block-group__inner-container >.mv-inner{grid-template-columns:1fr;gap:28px}.mv-step + .mv-step{padding-left:0;border-left:0}.mv-step .mv-eyebrow{margin-bottom:18px}.mv-form-grid{grid-template-columns:1fr;gap:0}}
@media(prefers-reduced-motion:reduce){.mv-site *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.mv-site .wp-block-group__inner-container{display:contents}.mv-hero-copy p:not(.mv-eyebrow){max-width:445px;font-size:18px;line-height:1.6}@media(max-width:1100px){.mv-hero-copy p:not(.mv-eyebrow){max-width:350px;font-size:16px}}@media(max-width:800px){.mv-hero-copy p:not(.mv-eyebrow){max-width:520px}}
.mv-legacy-content{padding:50px 5.5%;max-width:1200px;margin:auto}.mv-legacy-content h1{font-size:36px}.mv-legacy-content p{line-height:1.7}.mv-legacy-content .elementor-section.elementor-section-boxed>.elementor-container{max-width:100%}
/* Accessible companion shade for small text and white-text controls: 4.79:1. Brand headings retain #008B29. */ body.mv-site{--mv-green-ui:#008529}.mv-nav-call,.mv-site .wp-block-button__link,.mv-button,.mv-section.mv-green{background-color:var(--mv-green-ui)}.mv-nav li a:hover,.mv-text-link:hover,.mv-insights a:hover,.mv-step .mv-eyebrow{color:var(--mv-green-ui)}.mv-green .mv-step .mv-eyebrow{color:#fff}.mv-cta .wp-block-button__link{background:#fff}.mv-cta .wp-block-button__link:hover{background:var(--mv-pale)}

/* Native WordPress submenu hierarchy. */
.mv-nav li{position:relative}.mv-nav .menu-item-has-children{display:flex;align-items:center;flex-wrap:wrap}.mv-nav .mv-submenu-toggle{border:0;background:transparent;color:inherit;padding:8px;cursor:pointer;font-size:15px}.mv-nav ul.sub-menu{display:none;position:absolute;top:100%;left:0;min-width:230px;padding:12px 18px;background:#fff;border:1px solid #d9e0da;box-shadow:0 12px 24px #0001;flex-direction:column;gap:3px;z-index:30}.mv-nav li.mv-submenu-open>ul.sub-menu{display:flex}.mv-nav .sub-menu a{padding:10px 0}.mv-nav .current-menu-ancestor>a{color:var(--mv-green-ui)}
@media(max-width:1100px) and (min-width:801px){.mv-nav{gap:12px}.mv-nav>ul{gap:10px}.mv-nav .mv-submenu-toggle{padding:5px}}
@media(max-width:800px){.mv-nav{max-height:calc(100dvh - 82px);overflow-y:auto}.mv-nav ul.sub-menu{position:static;display:flex;box-shadow:none;border:0;border-left:1px solid #cbd7ce;min-width:0;width:100%;padding:0 0 0 18px;margin:0 0 12px 8px}.mv-nav .sub-menu a{font-size:15px}.mv-nav .mv-submenu-toggle{display:none}}

.mv-footer-bottom nav>li{display:contents}

.mv-native-news ul.mv-insights{list-style:none;padding:0;margin-bottom:0}.mv-native-news .mv-insights>li{display:contents}.mv-native-news article{margin:0}.mv-native-news article>.wp-block-group__inner-container{display:contents}.mv-native-news figure.mv-article-image{margin:0 0 24px}.mv-native-news .mv-article-image a{display:block;width:100%;height:100%}.mv-native-news .wp-block-post-date{margin:0 0 28px}.mv-native-news .wp-block-read-more{margin-bottom:0}

.mv-native-solutions ul{list-style:none;padding:0;margin:55px 0 0}.mv-native-solutions li{display:contents}.mv-native-solutions .mv-solution-row{position:relative;margin:0}.mv-native-solutions .mv-solution-row>.wp-block-group__inner-container{display:contents}.mv-native-solutions .wp-block-post-excerpt{margin:0}.mv-native-solutions .wp-block-post-excerpt p{margin:0}.mv-native-solutions .wp-block-post-excerpt__more-text{display:none}.mv-native-solutions .mv-solution-arrow{font-size:26px;justify-self:end}.mv-native-solutions .mv-solution-arrow:after{content:"";position:absolute;inset:0}.mv-native-solutions h3 a{position:relative;z-index:1}
@media(max-width:800px){.mv-native-solutions .wp-block-post-excerpt{grid-row:2;grid-column:1}.mv-native-solutions .mv-solution-arrow{grid-column:2;grid-row:1}}

/* Rubrique Products : trois cartes. Même langage que .mv-step et .mv-insights,
   filet supérieur, étiquette monospace, titre, une ligne, lien fléché. */
.mv-products{margin:52px 0 45px}.mv-products >.wp-block-group__inner-container >.mv-inner{display:grid;grid-template-columns:repeat(3,1fr);gap:0}.mv-product-card{padding:25px 30px 8px 0;border-top:1px solid #b8c5bf}.mv-product-card + .mv-product-card{padding-left:30px;border-left:1px solid #b8c5bf}.mv-product-card .mv-eyebrow{margin:0 0 28px;color:var(--mv-green-ui)}.mv-product-card h3{font-size:28px;margin:0 0 16px}.mv-product-card p{font-size:15px;margin:0 0 22px}.mv-product-card >.wp-block-group__inner-container >.mv-inner{display:flex;flex-direction:column;height:100%}.mv-product-card p:last-child{margin-top:auto;margin-bottom:0;align-self:flex-start}.mv-green .mv-product-card{border-color:#ffffff66}.mv-green .mv-product-card .mv-eyebrow{color:var(--mv-light)}.mv-green .mv-product-card p{color:#fff}
@media(max-width:1100px){.mv-products >.wp-block-group__inner-container >.mv-inner{grid-template-columns:1fr;gap:35px}.mv-product-card + .mv-product-card{padding-left:0;border-left:0}.mv-product-card{padding-right:0}}

/* Variante trois colonnes du bloc d'étapes, pour les blocs qui portent trois
   arguments plutôt que quatre étapes numérotées. */
.mv-steps.mv-cols-3 >.wp-block-group__inner-container >.mv-inner{grid-template-columns:repeat(3,1fr)}
@media(max-width:800px){.mv-steps.mv-cols-3 >.wp-block-group__inner-container >.mv-inner{grid-template-columns:1fr;gap:32px}.mv-steps.mv-cols-3 .mv-step + .mv-step{padding-left:0;border-left:0}}

/* Listes de contenu. Filet fin plutôt que puce ronde, pour rester dans le registre
   du dessin technique du reste du système. */
.mv-site .wp-block-list{max-width:690px;margin:0 0 24px;padding:0;list-style:none}
.mv-site .wp-block-list li{position:relative;padding:0 0 0 26px;margin:0 0 12px}
.mv-site .wp-block-list li:before{content:"";position:absolute;left:0;top:.72em;width:12px;height:1px;background:var(--mv-green-ui)}
.mv-site .mv-section h3 + .wp-block-list{margin-top:4px}
.mv-green .wp-block-list li:before{background:var(--mv-light)}

/* Cas d'application des pages produits. Même proportion que .mv-solution-row
   (titre à gauche, développement à droite), mais sans lien : ce sont des cas, pas
   des pages. La ligne de capteurs est en monospace, comme les étiquettes. */
.mv-cases{margin:52px 0 0;border-top:1px solid #b8c5bf}
.mv-case-item{padding:30px 0;border-bottom:1px solid #b8c5bf}
.mv-case-item >.wp-block-group__inner-container >.mv-inner{display:grid;grid-template-columns:56px 1fr 1.6fr;gap:32px;align-items:start}
.mv-case-item h3{font-size:25px;margin:0}
.mv-case-item p{margin:0 0 14px;font-size:16px}
.mv-case-item p:last-child{margin-bottom:0}
.mv-case-note{font-family:var(--mv-mono);font-size:12px;letter-spacing:.05em;line-height:1.65;text-transform:uppercase;color:#52625b}
.mv-green .mv-case-item{border-color:#ffffff66}.mv-green .mv-case-note{color:#cfe6cf}
@media(max-width:900px){.mv-case-item >.wp-block-group__inner-container >.mv-inner{grid-template-columns:1fr;gap:16px}.mv-case-item h3{font-size:23px}}

/* Jeu d'icônes 2026. Une seule couleur, héritée du contexte : blanc sur vert,
   anthracite sur clair. Règles de dessin de la charte §3.6, reprises telles quelles
   du jeu d'origine : trait principal 2,6, lignes de construction 1 en pointillé 3/3
   à 75 %, ancrages en cercles creux de rayon 2,4. */
.mv-icon{display:inline-block;vertical-align:top;width:var(--mv-icon-size,48px);height:var(--mv-icon-size,48px);color:inherit;margin:0 0 24px}
.mv-icon svg{display:block;width:100%;height:100%;overflow:visible}
.mv-icon .m{fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.mv-icon .c{fill:none;stroke:currentColor;stroke-width:1;stroke-dasharray:3 3;opacity:.75;stroke-linecap:round}
.mv-icon .a{fill:none;stroke:currentColor;stroke-width:1.4}
.mv-step .mv-icon{--mv-icon-size:56px;margin-bottom:20px}
.mv-product-card .mv-icon{--mv-icon-size:48px;margin-bottom:22px}.mv-case-item .mv-icon{--mv-icon-size:56px;margin:0}
@media(max-width:800px){.mv-icon{--mv-icon-size:42px}}
.mv-icon + .mv-icon{margin-left:14px}
.mv-table .mv-icon{--mv-icon-size:30px;margin:0 12px 0 0;vertical-align:middle}
.mv-site .mv-table{margin:45px 0 34px}
.mv-section h3 + .wp-block-list{margin-top:4px}

/* L'arceau, sur les blocs image et texte.
 *
 * Charte §3.1 et §5 : segment d'ellipse à grand rayon, jamais un arrondi de coin, convexe
 * vers la zone de texte — le texte est posé dans le creux, la photo remplit le côté bombé.
 * Dans .mv-two-col la photo est à gauche et le texte à droite : la courbe entame donc le
 * bord droit de l'image. Le grand rayon vertical (128 %) donne l'arc tendu de la charte
 * plutôt qu'un demi-cercle.
 *
 * C'est le repli documenté au §5 de la charte. Le masque SVG de Guillaume (emails des 9 et
 * 13 avril, jamais archivés) reste la source de référence pour les proportions exactes :
 * quand il arrive, --mv-arc devient un url(#mv-arc) et rien d'autre ne bouge.
 */
body.mv-site{--mv-arc:ellipse(94% 128% at 4% 50%)}
.mv-two-col figure{clip-path:var(--mv-arc)}
@media(max-width:800px){body.mv-site{--mv-arc:ellipse(128% 94% at 50% 4%)}}

/* Mention de consentement du formulaire (§9.3) et ligne d'identification du pied de page
   (§9.2). Toutes deux discrètes mais lisibles : ce sont des informations dues, pas des
   petites lignes à cacher. */
.mv-form-consent{font-size:13px;line-height:1.6;color:#52625b;max-width:560px;margin:26px 0 0}
.mv-form-consent a{border-bottom:1px solid currentColor}
.mv-form-consent a:hover{color:var(--mv-green-ui)}
.mv-form .mv-form-consent + .mv-button{margin-top:18px}
.mv-identity{line-height:1.7}
@media(max-width:800px){.mv-identity{display:block}}

/* Schémas systèmes animés au défilement.
 *
 * La section fait plusieurs hauteurs d'écran ; à l'intérieur, une scène collante tient le
 * schéma et l'étape courante. Descendre dans la page fait avancer la matière sur le
 * convoyeur et déplace le cadrage de gauche à droite le long de la ligne. Sans mouvement
 * (prefers-reduced-motion, ou JavaScript en échec), la section se réduit à sa hauteur
 * naturelle, le schéma s'affiche entier et les étapes se lisent l'une sous l'autre.
 */
.mv-scrolly{position:relative}
.mv-scrolly-sticky{padding:60px 0}
.mv-diagram{margin:0;color:var(--mv-ink)}
.mv-diagram-track{overflow-x:auto;overscroll-behavior-x:contain}
.mv-diagram svg{display:block;height:auto;width:100%;min-width:900px}
.mv-diagram figcaption{font-size:13px;color:#52625b;margin-top:14px;max-width:690px}
.mv-green .mv-diagram{color:#fff}.mv-green .mv-diagram figcaption{color:#cfe6cf}

.mv-scrolly-steps{list-style:none;margin:44px 0 0;padding:0;display:grid;gap:34px}
.mv-scrolly-step{padding-top:22px;border-top:1px solid #b8c5bf;max-width:690px}
.mv-scrolly-step .mv-eyebrow{margin:0 0 14px;color:var(--mv-green-ui)}
.mv-scrolly-step h3{font-size:25px;margin:0 0 10px}
.mv-scrolly-step p{font-size:16px;margin:0}
.mv-green .mv-scrolly-step{border-color:#ffffff66}
.mv-green .mv-scrolly-step .mv-eyebrow{color:var(--mv-light)}

/* Version animée. Elle ne s'active que si le script a mesuré la scène : c'est lui qui
   pose .is-live, donc rien ne casse si le JavaScript ne tourne pas. */
.mv-scrolly.is-live{height:calc((var(--mv-steps,5) + 1) * 78vh)}
.mv-scrolly.is-live .mv-scrolly-sticky{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;gap:30px;padding:0}
.mv-scrolly.is-live .mv-diagram-track{overflow:hidden;height:min(56vh,500px)}
/* Pas de will-change ici. Il promeut le SVG en calque composite, que le navigateur
   pixellise une fois pour toutes a l echelle 1 avant de l agrandir : a 3,2x, le trait et
   les libelles de l etape en cours sont flous. Sans lui, le dessin est repixellise une
   fois le cadrage pose, donc net des qu on s arrete dessus. */
.mv-scrolly.is-live .mv-diagram svg{width:auto;min-width:0;height:min(56vh,500px);transform-origin:0 0;transform:translate(var(--mv-tx,0px),var(--mv-ty,0px)) scale(var(--mv-scale,1))}
.mv-scrolly.is-live .mv-scrolly-steps{margin:0;display:grid;grid-template-areas:"step";min-height:150px;align-content:start}
.mv-scrolly.is-live .mv-scrolly-step{grid-area:step;opacity:0;visibility:hidden}
.mv-scrolly.is-live .mv-scrolly-step.is-current{opacity:1;visibility:visible}

/* Progression, en écho au filet des blocs d'étapes. */
.mv-scrolly.is-live .mv-scrolly-steps::before{content:"";grid-area:step;align-self:start;height:1px;width:100%;background:#b8c5bf;margin-top:-1px}
.mv-scrolly.is-live .mv-scrolly-steps::after{content:"";grid-area:step;align-self:start;height:2px;width:100%;background:var(--mv-green-ui);transform:scaleX(var(--mv-progress,0));transform-origin:left;margin-top:-1px}
.mv-green .mv-scrolly.is-live .mv-scrolly-steps::after{background:var(--mv-light)}

@media(max-width:900px){
 .mv-scrolly.is-live{height:auto}
 .mv-scrolly.is-live .mv-scrolly-sticky{position:static;height:auto;padding:60px 0;display:block}
 .mv-scrolly.is-live .mv-diagram-track{overflow-x:auto}
 .mv-scrolly.is-live .mv-diagram svg{width:100%;min-width:900px;height:auto;transform:none}
 .mv-scrolly.is-live .mv-scrolly-steps{display:grid;grid-template-areas:none;margin-top:40px;gap:32px}
 .mv-scrolly.is-live .mv-scrolly-step{grid-area:auto;opacity:1;visibility:visible}
 .mv-scrolly.is-live .mv-scrolly-steps::before,.mv-scrolly.is-live .mv-scrolly-steps::after{content:none}
}

/* Miniature de machine sur une carte produit.
   À l'échelle d'une carte, un trait de 2 unités sur un dessin de 3900 tombe à 0,2 px et
   disparaît : `vector-effect` fige donc l'épaisseur en pixels, indépendamment de l'échelle.
   C'est la seule façon de garder un dessin lisible à cette taille sans le redessiner. */
/* Hauteur de boîte fixe et calage en bas : les trois machines reposent sur la même
   ligne de sol, et la différence de taille se lit comme une différence d échelle. */
.mv-mini{display:flex;align-items:flex-end;height:86px;width:100%;margin:0 0 26px;color:inherit}
.mv-mini svg{display:block;width:auto;height:auto;max-width:100%;max-height:100%}
.mv-mini svg *{vector-effect:non-scaling-stroke;stroke-width:1.15}
.mv-product-card .mv-mini{max-width:300px}
.mv-green .mv-mini{color:#fff}
@media(max-width:900px){.mv-mini{height:74px}}

/* Barre de navigation du schéma. Le défilement reste le mode normal ; ces commandes sont là
   pour qui ne peut pas défiler proprement : pavé tactile capricieux, page projetée, clavier.
   Elle disparaît avec la mise en scène, en dessous de 800 px et en mouvement réduit. */
.mv-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.mv-scrolly-nav{display:none}
.mv-scrolly.is-live .mv-scrolly-nav{display:flex;align-items:center;justify-content:center;gap:20px}
.mv-scrolly-nav button{appearance:none;background:none;border:0;padding:0;margin:0;cursor:pointer;color:inherit;font:inherit}
.mv-scrolly-nav button:focus-visible{outline:2px solid var(--mv-green-ui);outline-offset:3px}
.mv-scrolly-arrow{width:34px;height:34px;border:1px solid #b8c5bf;border-radius:50%;display:grid;place-items:center;line-height:1;transition:border-color .2s ease,color .2s ease}
.mv-scrolly-arrow:hover{border-color:var(--mv-green-ui);color:var(--mv-green-ui)}
.mv-scrolly-dots{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:11px}
.mv-scrolly-dots button{display:block;width:9px;height:9px;border-radius:50%;background:#b8c5bf;transition:background .25s ease,transform .25s ease}
.mv-scrolly-dots button:hover{background:var(--mv-green-ui)}
.mv-scrolly-dots button.is-current{background:var(--mv-green-ui);transform:scale(1.5)}
.mv-green .mv-scrolly-arrow{border-color:#ffffff66}
.mv-green .mv-scrolly-arrow:hover{border-color:var(--mv-light);color:var(--mv-light)}
.mv-green .mv-scrolly-dots button:hover,.mv-green .mv-scrolly-dots button.is-current{background:var(--mv-light)}

/* Code couleur des classes de matiere. Il ne remplace pas la charte : sur un schema de
   ligne, l encre et le vert ne suffisent plus a distinguer huit destinations. Les teintes
   sont rabattues pour tenir a cote du vert Matvision sans lui disputer l oeil, et aucune
   n est verte : le vert dit l etape en cours, il ne doit pas dire aussi une classe.
   Les trois premieres sont celles d une ligne de purification, rouge, ambre, bleu ; les
   cinq suivantes n apparaissent que sur une ligne de tri, qui a plus de sorties. */
:root{
 --mv-cls-a:#b4462f;--mv-cls-b:#b8801a;--mv-cls-c:#2f6ea8;--mv-cls-d:#a8447a;
 --mv-cls-e:#1f8a80;--mv-cls-f:#7a5230;--mv-cls-g:#6f5296;--mv-cls-h:#8a8c1e;
}

/* Bandeau de chiffres, en tete de page produit. Quatre valeurs, pas davantage : au-dela on
   ne lit plus des chiffres, on lit un tableau. Le detail vit dans la configuration, plus bas.
   Le chiffre est en chasse fixe : c est le registre du dessin technique, et cela le distingue
   du titre sans avoir a le grossir. */
.mv-figures-band{padding-top:44px;padding-bottom:44px}
.mv-figures >.wp-block-group__inner-container >.mv-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.mv-figure{padding:24px 26px 24px 0;border-top:1px solid #b8c5bf}
.mv-figure + .mv-figure{padding-left:26px;border-left:1px solid #b8c5bf}
.mv-figure h3{font-family:var(--mv-mono);font-size:29px;font-weight:400;letter-spacing:-.02em;line-height:1.15;color:var(--mv-green-ui);margin:0 0 12px}
.mv-figure p{font-size:14px;line-height:1.5;margin:0;color:#52625b}
.mv-figures-note{font-size:14px!important;color:#52625b;margin-top:26px!important;max-width:760px!important}
.mv-green .mv-figure{border-color:#ffffff66}
.mv-green .mv-figure h3{color:var(--mv-light)}
.mv-green .mv-figure p,.mv-green .mv-figures-note{color:#fff}
@media(max-width:1100px){
 .mv-figures >.wp-block-group__inner-container >.mv-inner{grid-template-columns:repeat(2,1fr);gap:0 0}
 .mv-figure:nth-child(3){border-left:0;padding-left:0}
}
@media(max-width:560px){
 .mv-figures >.wp-block-group__inner-container >.mv-inner{grid-template-columns:1fr}
 .mv-figure + .mv-figure{padding-left:0;border-left:0}
}

/* Quatre colonnes qui ne sont pas une sequence. La grille par defaut d un bloc d etapes en
   compte deja quatre, mais elle vient avec la mise en scene : barre d avancement, icones qui
   se tracent, bouton de rejeu. Une enumeration de caps n a que faire de tout cela. */
.mv-cols-4 >.wp-block-group__inner-container >.mv-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
@media(max-width:1100px){.mv-cols-4 >.wp-block-group__inner-container >.mv-inner{grid-template-columns:repeat(2,1fr);gap:35px 0}.mv-cols-4 .mv-step:nth-child(3){border-left:0;padding-left:0}}
@media(max-width:560px){.mv-cols-4 >.wp-block-group__inner-container >.mv-inner{grid-template-columns:1fr;gap:28px}.mv-cols-4 .mv-step + .mv-step{padding-left:0;border-left:0}}

/* Citations. Trois colonnes, pas de guillemets decoratifs : la marque est une citation, pas
   un ornement. Le filet superieur les rattache au meme vocabulaire que les etapes et les
   cartes produits, et l attribution est en chasse fixe comme les libelles techniques. */
.mv-quotes{margin:54px 0 0}
.mv-quotes >.wp-block-group__inner-container >.mv-inner{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.mv-quote{padding:26px 30px 0 0;border-top:1px solid #b8c5bf}
.mv-quote + .mv-quote{padding-left:30px;border-left:1px solid #b8c5bf}
.mv-quote p{font-size:17px;line-height:1.55;margin:0 0 20px}
.mv-quote .mv-quote-by{font-family:var(--mv-mono);font-size:12px;line-height:1.6;letter-spacing:.05em;text-transform:uppercase;color:var(--mv-green-ui);margin:0}
.mv-green .mv-quote{border-color:#ffffff66}
.mv-green .mv-quote .mv-quote-by{color:var(--mv-light)}
@media(max-width:1100px){
 .mv-quotes >.wp-block-group__inner-container >.mv-inner{grid-template-columns:1fr;gap:34px}
 .mv-quote + .mv-quote{padding-left:0;border-left:0}
}

/* Photo de cas d application. Elle ouvre la colonne de texte, au meme rapport que les images
   de section, et se decoupe sur l arceau de la charte : la meme forme que sur les blocs a
   deux colonnes, pour que la page reste d une seule main. */
.mv-case-copy figure.mv-case-photo{margin:0 0 22px}
.mv-case-copy figure.mv-case-photo img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
@media(max-width:800px){.mv-case-copy figure.mv-case-photo img{aspect-ratio:3/2}}

/* Sous-navigation de page. Une page longue se lit mal sans sommaire : ce bandeau colle sous
   l en-tete, nomme les sections et dit laquelle on est en train de lire. Les liens sont de
   vraies ancres, donc partageables et utilisables sans JavaScript ; le script ne fait
   qu allumer celle qui est a l ecran. */
.mv-pagenav{position:sticky;top:0;z-index:18;background:#fff;border-bottom:1px solid #dfe4e0;padding:0 5.5%}
.mv-pagenav >.wp-block-group__inner-container >.mv-inner{display:flex;gap:28px;overflow-x:auto;scrollbar-width:none}
.mv-pagenav >.wp-block-group__inner-container >.mv-inner::-webkit-scrollbar{display:none}
.mv-pagenav a{font-family:var(--mv-mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--mv-ink);white-space:nowrap;padding:16px 0;border-bottom:2px solid transparent;margin-bottom:-1px}
.mv-pagenav a:hover{color:var(--mv-green-ui)}
.mv-pagenav a[aria-current="true"]{color:var(--mv-green-ui);border-bottom-color:var(--mv-green-ui)}
/* Le titre vise ne doit pas finir cache sous le bandeau. */
.mv-site [id^="mv-"]{scroll-margin-top:62px}
@media(min-width:1550px){.mv-pagenav{padding-left:max(5.5%,calc((100vw - 1440px)/2));padding-right:max(5.5%,calc((100vw - 1440px)/2))}}
@media(max-width:800px){.mv-pagenav{padding:0 6%}.mv-pagenav >.wp-block-group__inner-container >.mv-inner{gap:20px}}

/* Valeur provisoire. Un chiffre invente doit se voir comme tel : souligne, en pointille, et
   annonce aux lecteurs d ecran. Le jour ou la vraie valeur arrive, le raccourci disparait et
   il n en reste aucune trace dans la page. */
.mv-todo{border-bottom:1px dashed #c08a1e;color:#8a6310;cursor:help}
.mv-todo::after{content:" (à valider)";font-family:var(--mv-mono);font-size:.72em;letter-spacing:.04em;color:#a9781a}
.mv-green .mv-todo{border-bottom-color:var(--mv-light);color:var(--mv-light)}
.mv-green .mv-todo::after{color:var(--mv-light)}

/* Carte qui mene a une sous-page. Le titre, une phrase, et ce que la page contient : de quoi
   choisir sans avoir a ouvrir les trois. */
.mv-caselinks >.wp-block-group__inner-container >.mv-inner{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.mv-caselink{display:flex;flex-direction:column;gap:14px;padding:34px 32px;border-left:1px solid #dfe4e0;color:inherit}
.mv-caselink:first-child{border-left:0;padding-left:0}
.mv-caselink:hover{background:#f5f8f5}
.mv-caselink h3{font-size:27px;line-height:1.15;margin:0}
.mv-caselink p{margin:0;font-size:16px;color:#5d6b65}
.mv-caselink .mv-caselink-meta{font-family:var(--mv-mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--mv-green-ui);margin-top:auto}
@media(max-width:1100px){
 .mv-caselinks >.wp-block-group__inner-container >.mv-inner{grid-template-columns:1fr}
 .mv-caselink{border-left:0;border-top:1px solid #dfe4e0;padding:28px 0}
 .mv-caselink:first-child{border-top:0;padding-top:0}
}

/* Suite de section : deux blocs qui se lisent comme un seul. Le second n a ni chapeau ni
   titre, il ne doit donc pas rouvrir un espace en haut. */
.mv-section-cont{padding-top:0}

/* Source des citations. Elle se lit apres les citations, dans la meme graisse que leur
   signature, sans revendiquer la place d un paragraphe. */
.mv-quote-source{font-family:var(--mv-mono);font-size:12px;letter-spacing:.05em;margin:26px 0 0}
.mv-quote-source a{color:var(--mv-green-ui);border-bottom:1px solid currentColor}
.mv-green .mv-quote-source a{color:var(--mv-light)}
/* Cartes de liens entre produits et cas d usage : la silhouette ou l icone, une phrase de finalite, le lien. */
a.mv-mini{cursor:pointer;transition:color .2s}a.mv-mini:hover{color:var(--mv-green-ui)}.mv-green a.mv-mini:hover{color:var(--mv-light)}
.mv-linkgrid >.wp-block-group__inner-container >.mv-inner{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:34px}
.mv-linkcard{padding:28px 32px 26px 0;border-top:1px solid #b8c5bf}.mv-linkcard + .mv-linkcard{padding-left:32px;border-left:1px solid #b8c5bf}
.mv-linkcard .mv-icon{--mv-icon-size:44px;margin:0 0 6px}.mv-linkcard .mv-mini{height:64px;margin:0 0 14px;max-width:240px}
.mv-linkcard h3{font-size:22px;margin:10px 0 10px}.mv-linkcard p{font-size:15px;margin:0 0 14px}.mv-linkcard p:last-child{margin-bottom:0}
.mv-case-link{margin-top:6px}.mv-case-machines{margin-top:6px;display:flex;flex-wrap:wrap;gap:8px 22px}
@media(max-width:900px){.mv-linkgrid >.wp-block-group__inner-container >.mv-inner{grid-template-columns:1fr;margin-top:20px}.mv-linkcard + .mv-linkcard{padding-left:0;border-left:0}.mv-linkcard{padding-right:0}}
/* Un visage sous chaque citation : portrait rond, en gris pour que des sources heteroclites se ressemblent. */
.mv-quote .mv-quote-photo{margin:0 0 14px;width:64px}.mv-quote .mv-quote-photo img{display:block;width:64px;height:64px;border-radius:50%;object-fit:cover;filter:grayscale(1)}
/* Le renvoi vers la video complete, sur le fond sombre du bloc video. */
.mv-cinema .mv-cinema-link{margin:22px 0 0}.mv-cinema .mv-cinema-link a{color:#fff}
/* Bandeau des soutiens sous le hero : logos en gris, qui reprennent leur couleur au survol. */
.mv-supporters{padding:34px 5.5% 38px;border-bottom:1px solid #ddd}
.mv-supporters .mv-supporters-title{font-family:var(--mv-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 24px;color:#5d6b65}
.mv-supporters-logos >.wp-block-group__inner-container >.mv-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:26px 44px}
.mv-supporters .mv-supporter{margin:0;height:54px;display:flex;align-items:center}
.mv-supporters .mv-supporter img{display:block;height:54px;width:auto;max-width:170px;object-fit:contain;filter:grayscale(1);opacity:.8;transition:filter .2s,opacity .2s}
.mv-supporters .mv-supporter:hover img{filter:none;opacity:1}
@media(max-width:900px){.mv-supporters-logos >.wp-block-group__inner-container >.mv-inner{justify-content:flex-start;gap:22px 32px}.mv-supporters .mv-supporter,.mv-supporters .mv-supporter img{height:42px}}
/* Logos des soutiens : meme poids a l oeil, pas meme hauteur de fichier. Un logo carre entoure
   de blanc ou un mot-symbole tres gras ne se lisent pas a la meme taille qu un logo allonge :
   chacun recoit la hauteur qui l amene au niveau des autres. */
.mv-supporters .mv-supporter{height:64px;overflow:visible}
.mv-supporters .mv-supporter img{height:46px;max-width:none}
.mv-supporters .mv-supporter img[src*="logo-soremo"]{height:84px}
.mv-supporters .mv-supporter img[src*="logo-a6k"]{height:30px}
.mv-supporters .mv-supporter img[src*="Imecistart"]{height:96px}
.mv-supporters .mv-supporter img[src*="comet_resized"]{height:60px}
.mv-supporters .mv-supporter img[src*="EITRM"]{height:54px}
@media(max-width:900px){.mv-supporters .mv-supporter{height:50px}.mv-supporters .mv-supporter img{height:36px}.mv-supporters .mv-supporter img[src*="logo-soremo"]{height:64px}.mv-supporters .mv-supporter img[src*="logo-a6k"]{height:24px}.mv-supporters .mv-supporter img[src*="Imecistart"]{height:74px}.mv-supporters .mv-supporter img[src*="comet_resized"]{height:46px}.mv-supporters .mv-supporter img[src*="EITRM"]{height:42px}}
/* Citations : les trois blocs ont la meme hauteur, le texte prend la place et le visage avec
   sa signature s alignent en bas, d une colonne a l autre. La source vaut pour les trois :
   elle se pose sous toute la rangee, pas sous la premiere colonne. */
.mv-quote,.mv-quote >.wp-block-group__inner-container,.mv-quote >.wp-block-group__inner-container >.mv-inner{display:flex;flex-direction:column}
.mv-quote >.wp-block-group__inner-container,.mv-quote >.wp-block-group__inner-container >.mv-inner{flex:1 1 auto}
.mv-quote >.wp-block-group__inner-container >.mv-inner >p:first-child{flex:1 1 auto}
.mv-quote{padding-bottom:4px}
.mv-quote-source{margin:34px 0 0;padding-top:18px;border-top:1px solid #b8c5bf;text-align:right}
/* Chaque groupe s enveloppe deux fois (le bloc, puis son conteneur interne) : pour que la
   signature descende au bas de la carte, tous les etages doivent etre des colonnes souples. */
.mv-quote div{display:flex;flex-direction:column;flex:1 1 auto}
.mv-quote div >p:first-child{flex:1 1 auto}
.mv-site .mv-section p.mv-quote-source{max-width:none}
.mv-supporters .mv-supporter img[src*="gemme_only"]{height:52px}
.mv-quote .mv-quote-by{min-height:3.2em}
.mv-supporters{border-top:1px solid #ddd}
/* Photos de matiere sur les pages de cas : trois vues cadrees pareil, avec leur legende. */
.mv-photo-row >.wp-block-group__inner-container{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:34px 0 8px}
.mv-photo-row .mv-photo{margin:0}
.mv-photo-row .mv-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.mv-photo-row .mv-photo figcaption{margin:10px 0 0;font-family:var(--mv-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#5d6b65;text-align:left}
@media(max-width:800px){.mv-photo-row >.wp-block-group__inner-container{grid-template-columns:1fr;gap:18px}}
/* Accueil, « Your stream » : trois flux, deux photos chacun, pour se reconnaitre d un coup d oeil. */
.mv-streams >.wp-block-group__inner-container{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:40px}
.mv-stream-card{padding:0 30px 6px 0;border-top:1px solid #b8c5bf;padding-top:26px}
.mv-stream-card + .mv-stream-card{padding-left:30px;border-left:1px solid #b8c5bf}
.mv-stream-photos >.wp-block-group__inner-container{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:22px}
.mv-stream-photos .mv-stream-photo{margin:0}
.mv-stream-photos .mv-stream-photo img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}
.mv-site .mv-stream-card h3{font-size:24px;margin:0 0 10px}
.mv-site .mv-stream-card p{font-size:15px;margin:0 0 16px}
@media(max-width:1000px){.mv-streams >.wp-block-group__inner-container{grid-template-columns:1fr;gap:34px}.mv-stream-card,.mv-stream-card + .mv-stream-card{padding-left:0;padding-right:0;border-left:0}}
/* Lecture marketing du 19/09 : ce que chaque etape donne au client, la phrase de garantie, et les deux listes gain / evite. */
.mv-step .mv-step-get{margin-top:12px;font-size:14px;font-weight:600}
.mv-site .mv-section p.mv-step-close{margin:34px 0 22px;font-size:22px;line-height:1.35;max-width:none}
.mv-gains >.wp-block-group__inner-container{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;margin-top:34px;padding-top:26px;border-top:1px solid #b8c5bf}
.mv-site .mv-gain h3{font-family:var(--mv-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mv-green-ui);margin:0 0 12px}
.mv-gain ul{margin:0;padding-left:18px}.mv-gain li{font-size:16px;margin:0 0 6px}
@media(max-width:800px){.mv-gains >.wp-block-group__inner-container{grid-template-columns:1fr;gap:22px}}
.mv-study-intro{margin:0 0 28px;padding:0 0 22px;border-bottom:1px solid #b8c5bf}.mv-site .mv-study-intro h2{font-size:28px;margin:0 0 10px}.mv-study-intro p{margin:0;font-size:16px}.mv-tbd{font-style:italic;color:#5d6b65}
/* Revue du site du 20/09. */
.mv-site .mv-section p.mv-signature{margin-top:26px;font-size:22px;line-height:1.35;color:var(--mv-green-ui);max-width:none}
.mv-site .mv-eyebrow-second{margin-top:44px}
#mv-streams h3{font-size:28px;margin:0 0 6px}
/* Une seule machine recommandee : la carte s etale, silhouette a gauche, texte a droite. */
.mv-linkcard:only-child{grid-column:1 / -1;padding-right:0}
.mv-linkcard:only-child >.wp-block-group__inner-container >.mv-inner{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:6px 48px;align-items:start}
.mv-linkcard:only-child .mv-mini{grid-row:1 / span 3;height:96px;max-width:300px;margin:0}
.mv-linkcard:only-child h3{margin-top:0}
.mv-linkcard:first-child:nth-last-child(2),.mv-linkcard:first-child:nth-last-child(2) ~ .mv-linkcard{grid-column:span 1}
.mv-site .mv-section p.mv-machine-aside{margin:26px 0 0;font-size:15px;max-width:none}
@media(max-width:800px){.mv-linkcard:only-child >.wp-block-group__inner-container >.mv-inner{grid-template-columns:1fr}.mv-linkcard:only-child .mv-mini{grid-row:auto;height:74px}}
/* Conseillers : des cartes, avec les initiales en attendant les portraits. */
.mv-advisors >.wp-block-group__inner-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:22px;margin:26px 0 22px}
.mv-advisor{padding:22px;background:#fff;border:1px solid #ddd}
.mv-site .mv-advisor p.mv-advisor-portrait{width:64px;height:64px;border-radius:50%;background:#e8eeea;color:#33403b;display:flex;align-items:center;justify-content:center;font-family:var(--mv-mono);font-size:16px;letter-spacing:.06em;margin:0 0 14px}
.mv-site .mv-advisor h4{font-size:20px;margin:0 0 8px}
.mv-site .mv-advisor p{font-size:15px;margin:0 0 10px;max-width:none}
.mv-site .mv-advisor p.mv-advisor-org{font-family:var(--mv-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--mv-green-ui);margin:0}
@media(max-width:800px){.mv-advisors >.wp-block-group__inner-container{grid-template-columns:1fr}}
/* Logos : des cases identiques, hauteur et largeur bornees, meme gris, meme opacite. Certains
   logos sont corriges a la main : un mot-symbole dense pese plus lourd qu un logo fin. */
.mv-supporters-logos >.wp-block-group__inner-container >.mv-inner{justify-content:space-between;gap:20px 28px}
.mv-supporters .mv-supporter{flex:0 0 150px;width:150px;height:64px;justify-content:center;overflow:visible}
.mv-supporters .mv-supporter img,.mv-supporters .mv-supporter img[src]{height:auto;width:auto;max-width:150px;max-height:48px;opacity:.72;filter:grayscale(1)}
.mv-supporters .mv-supporter img[src*="logo-a6k"]{max-height:26px;opacity:.6}
.mv-supporters .mv-supporter img[src*="logo-soremo"]{max-height:64px;max-width:none;transform:scale(1.25)}
.mv-supporters .mv-supporter img[src*="Imecistart"]{max-height:64px;max-width:none;transform:scale(1.5)}
.mv-supporters .mv-supporter img[src*="comet_resized"]{max-height:60px}
.mv-supporters .mv-supporter img[src*="EITRM"]{max-height:52px}
.mv-supporters .mv-supporter img[src*="reverse-metallurgy"]{max-height:44px}
.mv-supporters .mv-supporter img[src*="gemme_only"]{max-height:50px}
.mv-supporters .mv-supporter:hover img{filter:none;opacity:1}
@media(max-width:900px){
 .mv-supporters-logos >.wp-block-group__inner-container >.mv-inner{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;gap:0 26px;padding-bottom:10px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
 .mv-supporters .mv-supporter{flex:0 0 130px;width:130px;height:56px;scroll-snap-align:start}
 .mv-supporters .mv-supporter img,.mv-supporters .mv-supporter img[src]{max-width:130px;max-height:40px}
 .mv-supporters .mv-supporter img[src*="logo-a6k"]{max-height:22px}
}
/* Tableaux alleges des pages de cas. */
/* Formulaire de l etude : la suite, apres le formulaire. */
.mv-study-next{margin:34px 0 0;padding:24px 0 0;border-top:1px solid #b8c5bf}
.mv-site .mv-study-next h2{font-size:24px;margin:0 0 14px}
.mv-study-next ol{margin:0;padding-left:20px}.mv-study-next li{font-size:16px;margin:0 0 8px}
/* La meme rangee de logos que sur l accueil, a l interieur d une section (A propos). */
.mv-supporters.mv-supporters-inline{padding:0;border:0;margin:40px 0 56px}
.mv-supporters-inline .mv-supporters-logos >.wp-block-group__inner-container >.mv-inner{justify-content:flex-start;gap:26px 44px}
.mv-supporters .mv-supporter img[src*="uLIEGE"]{max-height:52px}
.mv-supporters .mv-supporter img[src*="mecatech"]{max-height:60px}
.mv-supporters .mv-supporter img[src*="fond_feder"]{max-height:56px}
.mv-supporters .mv-supporter img[src*="wallonia"]{max-height:44px}
.mv-supporters .mv-supporter img[src*="Cilyx"]{max-height:44px}
/* Boutons sur fond vert : blanc plein pour l action principale, contour blanc pour la seconde. */
.mv-site .mv-section.mv-green .wp-block-button__link{background:#fff;color:#18201d;border:1px solid #fff}
.mv-site .mv-section.mv-green .wp-block-button__link:hover{background:var(--mv-pale);border-color:var(--mv-pale)}
.mv-site .mv-section.mv-green .is-style-outline .wp-block-button__link{background:transparent;color:#fff;border:1px solid #fff}
.mv-site .mv-section.mv-green .is-style-outline .wp-block-button__link:hover{background:#ffffff22}
.mv-section.mv-green .wp-block-buttons{margin-top:30px;gap:14px}
.mv-site .mv-advisor h4{font-family:inherit;font-weight:500;letter-spacing:0}
/* Un seul vert. Les sections vertes et l appel final n utilisaient pas la meme teinte, et le
   bouton du formulaire prenait la couleur du theme achete (un vert grise) avec sa graisse et
   ses coins arrondis. Tout ce qui est vert est le vert de l interface. */
.mv-cta{background-color:var(--mv-green-ui)}
.mv-site button.mv-button,.mv-site .mv-form button[type="submit"],.mv-site input[type="submit"].mv-button{background:var(--mv-green-ui)!important;border:1px solid var(--mv-green-ui)!important;color:#fff!important;border-radius:0!important;font-family:inherit!important;font-size:15px!important;font-weight:400!important;line-height:1.4!important;letter-spacing:0!important;text-transform:none!important;padding:16px 25px!important;box-shadow:none!important}
.mv-site button.mv-button:hover,.mv-site .mv-form button[type="submit"]:hover{background:var(--mv-ink)!important;border-color:var(--mv-ink)!important}
/* Deux blocs verts ne se suivent jamais : un appel final qui vient apres une section verte passe en anthracite. */
.mv-section.mv-green + .mv-cta{background-color:var(--mv-ink)}
.mv-section.mv-green + .mv-cta h2 mark{color:var(--mv-light)}
/* Page Sense, capteurs : des cartes compactes et comparables, puis une matrice capteurs x flux. */
.mv-sensors >.wp-block-group__inner-container{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:36px 0 18px;border-top:1px solid #b8c5bf;border-left:1px solid #b8c5bf}
.mv-sensor{padding:22px 22px 20px;border-right:1px solid #b8c5bf;border-bottom:1px solid #b8c5bf;background:#fff}
.mv-site .mv-sensor p.mv-sensor-code{font-family:var(--mv-mono);font-size:12px;letter-spacing:.08em;color:var(--mv-green-ui);margin:0 0 8px}
.mv-site .mv-sensor h3{font-size:19px;line-height:1.25;margin:0 0 14px}
.mv-site .mv-sensor p{font-size:14.5px;line-height:1.5;margin:0 0 12px;max-width:none}
.mv-site .mv-sensor p.mv-sensor-k{font-family:var(--mv-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#6f7b77;margin:0 0 4px}
.mv-site .mv-sensor p:last-child{margin-bottom:0}
.mv-site .mv-section p.mv-sensor-note{font-size:15px;color:#52625b;margin:0 0 46px;max-width:none}
.mv-table-matrix{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:20px}
.mv-table-matrix table{min-width:640px}
.mv-table-matrix td,.mv-table-matrix thead th:not(:first-child){text-align:center;white-space:nowrap}
.mv-table-matrix tbody th{text-align:left;font-weight:500;white-space:nowrap}
.mv-site .mv-section p.mv-table-legend{font-family:var(--mv-mono);font-size:12px;line-height:1.7;letter-spacing:.02em;color:#52625b;margin:14px 0 18px;max-width:none}
@media(max-width:1100px){.mv-sensors >.wp-block-group__inner-container{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.mv-sensors >.wp-block-group__inner-container{grid-template-columns:1fr}}
/* La matrice defile dans son cadre, sans elargir la page : le cadre ne depasse jamais son parent. */
.mv-site .mv-table-matrix{display:block;width:100%;max-width:100%;box-sizing:border-box}
.mv-section >.wp-block-group__inner-container,.mv-section >.wp-block-group__inner-container >.mv-inner,.mv-section >.wp-block-group__inner-container >.mv-inner >.wp-block-group__inner-container{min-width:0;max-width:100%}
.mv-sensors,.mv-sensor{min-width:0}
.mv-sensor p,.mv-sensor h3{overflow-wrap:anywhere}
/* Sur fond vert, le bouton principal etait blanc sur blanc : le texte des boutons est pose
   avec !important plus haut dans cette feuille, et ces regles-ci ne pesaient pas assez lourd.
   Principal : fond blanc, texte anthracite. Second : fond transparent, texte et filet blancs. */
.mv-site .mv-section.mv-green .wp-block-button__link{background:#fff!important;color:var(--mv-ink)!important;border:1px solid #fff!important}
.mv-site .mv-section.mv-green .wp-block-button__link:hover{background:var(--mv-pale)!important;border-color:var(--mv-pale)!important}
.mv-site .mv-section.mv-green .is-style-outline .wp-block-button__link{background:transparent!important;color:#fff!important;border:1px solid #fff!important}
.mv-site .mv-section.mv-green .is-style-outline .wp-block-button__link:hover{background:#ffffff26!important;color:#fff!important}
/* Portraits : conseillers, equipe, fiches des fondateurs. Meme cadre rond partout. */
.mv-advisor .mv-advisor-photo{margin:0 0 14px;width:64px}
.mv-advisor .mv-advisor-photo img{display:block;width:64px;height:64px;border-radius:50%;object-fit:cover}
.mv-faces >.wp-block-group__inner-container{display:flex;flex-wrap:wrap;gap:26px 34px;margin:30px 0 8px}
.mv-face{text-align:center}
.mv-face .mv-face-photo{margin:0}
.mv-face .mv-face-photo img{display:block;width:84px;height:84px;border-radius:50%;object-fit:cover;margin-inline:auto}
.mv-site .mv-face p.mv-face-name{font-family:var(--mv-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#33403b;margin:10px 0 0;max-width:none}
.mv-team-profile .mv-profile-photo{display:block;width:72px;height:72px;border-radius:50%;object-fit:cover;margin:0 0 14px}
@media(max-width:700px){.mv-faces >.wp-block-group__inner-container{gap:20px 22px}.mv-face .mv-face-photo img{width:68px;height:68px}}
/* La rangee de l equipe : le prenom, puis la discipline. Des colonnes de largeur fixe : en
   flex, chaque carte prenait la largeur de son intitule et « Marketing & Communication »
   ecartait sa voisine plus que les autres. Ici l ecart entre deux tetes est le meme partout. */
.mv-faces >.wp-block-group__inner-container{display:grid;grid-template-columns:repeat(auto-fill,180px);gap:30px 12px}
.mv-face{max-width:none}
@media(max-width:700px){.mv-faces >.wp-block-group__inner-container{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px}}
.mv-site .mv-face p.mv-face-role{font-size:14px;line-height:1.35;color:#5d6b65;margin:4px 0 0;max-width:none}
/* La page Use Cases en cartes : une photo cliquable, la machine, deux phrases, un lien. */
.mv-ucgrid >.wp-block-group__inner-container{display:grid;grid-template-columns:repeat(3,1fr);gap:44px 32px;margin-top:48px}
.mv-uc-card .mv-uc-photo{margin:0 0 18px;overflow:hidden}
.mv-uc-card .mv-uc-photo img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .5s ease}
.mv-uc-card .mv-uc-photo a:hover img{transform:scale(1.03)}
.mv-site .mv-uc-card p.mv-uc-machine{font-family:var(--mv-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mv-green-ui);margin:0 0 8px;max-width:none}
.mv-site .mv-uc-card h3{font-size:23px;margin:0 0 10px}
.mv-site .mv-uc-card p{font-size:15px;margin:0 0 14px;max-width:none}
@media(max-width:1000px){.mv-ucgrid >.wp-block-group__inner-container{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.mv-ucgrid >.wp-block-group__inner-container{grid-template-columns:1fr;gap:36px}}
@media(prefers-reduced-motion:reduce){.mv-uc-card .mv-uc-photo img{transition:none}}
/* A propos : les partenaires tiennent sur une seule ligne qui defile lateralement. */
.mv-supporters-inline .mv-supporters-logos >.wp-block-group__inner-container >.mv-inner{flex-wrap:nowrap;justify-content:flex-start;gap:0 44px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none;scroll-snap-type:none;-webkit-overflow-scrolling:touch;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 48px,#000 calc(100% - 48px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 48px,#000 calc(100% - 48px),transparent 100%)}
.mv-supporters-inline .mv-supporters-logos >.wp-block-group__inner-container >.mv-inner::-webkit-scrollbar{display:none}
@media(max-width:900px){.mv-supporters-inline .mv-supporters-logos >.wp-block-group__inner-container >.mv-inner{gap:0 26px}}
/* En-tete de section : le titre a gauche, le texte d introduction a droite, au lieu d une
   colonne de texte qui laisse la moitie droite de l ecran vide. Ce qui suit l introduction
   (cartes, images, tableaux, et les paragraphes places apres) garde toute la largeur. */
@media(min-width:1000px){
 .mv-section:not(.mv-two-col) >.wp-block-group__inner-container >.mv-inner:has(>.wp-block-group__inner-container >h2 + p:not(.mv-eyebrow)):not(:has(>.wp-block-group__inner-container >h2 ~ h2)){display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:72px;align-items:start}
 .mv-section:not(.mv-two-col) >.wp-block-group__inner-container >.mv-inner:has(>.wp-block-group__inner-container >h2 + p:not(.mv-eyebrow)):not(:has(>.wp-block-group__inner-container >h2 ~ h2)) >.wp-block-group__inner-container >*{grid-column:1 / -1}
 .mv-section:not(.mv-two-col) >.wp-block-group__inner-container >.mv-inner:has(>.wp-block-group__inner-container >h2 + p:not(.mv-eyebrow)):not(:has(>.wp-block-group__inner-container >h2 ~ h2)) >.wp-block-group__inner-container >h2 ~ :is(p:not(.mv-eyebrow),h3,.wp-block-buttons):not(:is(h2 ~ .mv-eyebrow,:not(p):not(h2):not(h3):not(.wp-block-buttons)) ~ *){grid-column:2}
 .mv-section:not(.mv-two-col) >.wp-block-group__inner-container >.mv-inner:has(>.wp-block-group__inner-container >h2 + p:not(.mv-eyebrow)):not(:has(>.wp-block-group__inner-container >h2 ~ h2)) >.wp-block-group__inner-container >h2{grid-column:1;grid-row:1 / span 8;margin-bottom:0;padding-bottom:26px;max-width:none}
 .mv-section:not(.mv-two-col) >.wp-block-group__inner-container >.mv-inner:has(>.wp-block-group__inner-container >h2 + p:not(.mv-eyebrow)):not(:has(>.wp-block-group__inner-container >h2 ~ h2)) >.wp-block-group__inner-container >.mv-eyebrow:first-child ~ h2{grid-row:2 / span 8}
}
/* Les etapes d un schema, quand l animation ne tourne pas (mouvement reduit, pas de script) :
   trois colonnes plutot qu une liste qui n occupe que la moitie gauche. */
@media(min-width:1000px){.mv-scrolly:not(.is-live) .mv-scrolly-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 40px}}
/* Deux machines recommandees : deux colonnes, pas deux tiers d une grille de trois. */
@media(min-width:901px){.mv-linkgrid >.wp-block-group__inner-container >.mv-inner:has(>.wp-block-group__inner-container >.mv-linkcard:first-child:nth-last-child(2)){grid-template-columns:1fr 1fr}}
.mv-site .wp-block-buttons + h3{margin-top:36px}
/* Les paragraphes places apres les cartes se rangent cote a cote plutot qu empiles a gauche. */
@media(min-width:1000px){
 .mv-section:not(.mv-two-col) >.wp-block-group__inner-container >.mv-inner:has(>.wp-block-group__inner-container >h2 + p:not(.mv-eyebrow)):not(:has(>.wp-block-group__inner-container >h2 ~ h2)) >.wp-block-group__inner-container >:not(p):not(h2):not(h3):not(.wp-block-buttons) ~ p[class="wp-block-paragraph"]{grid-column:auto}
}
/* Deux blocs « icone, titre, liste » a la suite : cote a cote plutot qu empiles a gauche. */
@media(min-width:1000px){
 .mv-section:not(.mv-two-col) >.wp-block-group__inner-container >.mv-inner:has(>.wp-block-group__inner-container >h2 + p:not(.mv-eyebrow)):not(:has(>.wp-block-group__inner-container >h2 ~ h2)):has(>.wp-block-group__inner-container >span.mv-icon ~ span.mv-icon):not(:has(>.wp-block-group__inner-container >span.mv-icon ~ span.mv-icon ~ span.mv-icon)) >.wp-block-group__inner-container >span.mv-icon{grid-column:1;grid-row:10}
 .mv-section:not(.mv-two-col) >.wp-block-group__inner-container >.mv-inner:has(>.wp-block-group__inner-container >h2 + p:not(.mv-eyebrow)):not(:has(>.wp-block-group__inner-container >h2 ~ h2)):has(>.wp-block-group__inner-container >span.mv-icon ~ span.mv-icon):not(:has(>.wp-block-group__inner-container >span.mv-icon ~ span.mv-icon ~ span.mv-icon)) >.wp-block-group__inner-container >span.mv-icon + h3{grid-column:1;grid-row:11}
 .mv-section:not(.mv-two-col) >.wp-block-group__inner-container >.mv-inner:has(>.wp-block-group__inner-container >h2 + p:not(.mv-eyebrow)):not(:has(>.wp-block-group__inner-container >h2 ~ h2)):has(>.wp-block-group__inner-container >span.mv-icon ~ span.mv-icon):not(:has(>.wp-block-group__inner-container >span.mv-icon ~ span.mv-icon ~ span.mv-icon)) >.wp-block-group__inner-container >span.mv-icon + h3 + ul{grid-column:1;grid-row:12}
 .mv-section:not(.mv-two-col) >.wp-block-group__inner-container >.mv-inner:has(>.wp-block-group__inner-container >h2 + p:not(.mv-eyebrow)):not(:has(>.wp-block-group__inner-container >h2 ~ h2)):has(>.wp-block-group__inner-container >span.mv-icon ~ span.mv-icon):not(:has(>.wp-block-group__inner-container >span.mv-icon ~ span.mv-icon ~ span.mv-icon)) >.wp-block-group__inner-container >span.mv-icon ~ span.mv-icon{grid-column:2;grid-row:10}
 .mv-section:not(.mv-two-col) >.wp-block-group__inner-container >.mv-inner:has(>.wp-block-group__inner-container >h2 + p:not(.mv-eyebrow)):not(:has(>.wp-block-group__inner-container >h2 ~ h2)):has(>.wp-block-group__inner-container >span.mv-icon ~ span.mv-icon):not(:has(>.wp-block-group__inner-container >span.mv-icon ~ span.mv-icon ~ span.mv-icon)) >.wp-block-group__inner-container >span.mv-icon ~ span.mv-icon + h3{grid-column:2;grid-row:11}
 .mv-section:not(.mv-two-col) >.wp-block-group__inner-container >.mv-inner:has(>.wp-block-group__inner-container >h2 + p:not(.mv-eyebrow)):not(:has(>.wp-block-group__inner-container >h2 ~ h2)):has(>.wp-block-group__inner-container >span.mv-icon ~ span.mv-icon):not(:has(>.wp-block-group__inner-container >span.mv-icon ~ span.mv-icon ~ span.mv-icon)) >.wp-block-group__inner-container >span.mv-icon ~ span.mv-icon + h3 + ul{grid-column:2;grid-row:12}
}
/* L introduction s aligne sur la ligne de base du titre, pas sur son bord haut. */
@media(min-width:1000px){
 .mv-section:not(.mv-two-col) >.wp-block-group__inner-container >.mv-inner:has(>.wp-block-group__inner-container >h2 + p:not(.mv-eyebrow)):not(:has(>.wp-block-group__inner-container >h2 ~ h2)) >.wp-block-group__inner-container >h2 + p{padding-top:calc(clamp(34px,3.6vw,52px) * .48)}
}
/* Pages juridiques : une largeur de lecture pour le texte courant, les tableaux gardent la leur. */
.mv-site .mv-body-copy :is(p,ul,ol,h2,h3,h4){max-width:860px}
.mv-site .mv-body-copy h3{font-size:24px;margin:38px 0 12px}
/* Documents juridiques : ligne de version, alineas lettres, tirets et puces. */
.mv-site .mv-legal p.mv-legal-version{max-width:860px;font-family:var(--mv-mono);font-size:12px;letter-spacing:.03em;line-height:1.7;color:#52625b;padding-bottom:18px;border-bottom:1px solid #ddd}
.mv-site .mv-legal p.mv-legal-sub{padding-left:30px}
.mv-site .mv-legal p.mv-legal-sub2{padding-left:60px;margin-bottom:12px}
.mv-site .mv-legal p.mv-legal-bullet{position:relative;padding-left:24px;margin-bottom:12px}
.mv-site .mv-legal p.mv-legal-bullet::before{content:"–";position:absolute;left:0;color:var(--mv-green-ui)}
.mv-site .mv-legal h2{font-size:28px;margin:46px 0 16px}
.mv-site .mv-legal p{font-size:16px}
.mv-site .mv-legal a{text-decoration:underline;text-underline-offset:3px}
.mv-site .mv-legal .mv-table{margin:22px 0 30px;overflow-x:auto}.mv-site .mv-legal .mv-table td,.mv-site .mv-legal .mv-table th{font-size:14px;vertical-align:top}
/* La page 404 : un bandeau, une phrase, quatre liens. */
.mv-404{min-height:60vh;display:flex;align-items:center}.mv-404 h1{max-width:760px}.mv-404 p:not(.mv-eyebrow){max-width:560px}
.mv-404-links{display:flex;flex-wrap:wrap;gap:12px 32px;margin-top:28px}
/* Lecture automatique des etapes (retour de Matteo, 22/09) : plus de defilement a travers
   la section, elle garde sa hauteur naturelle ; la barre de navigation gagne lecture/pause. */
@media(min-width:901px){
 .mv-scrolly.is-live.is-auto{height:auto}
 .mv-scrolly.is-live.is-auto .mv-scrolly-sticky{position:static;height:auto;padding:36px 0 8px}
}
.mv-scrolly-play{appearance:none;border:1px solid #b8c5bf;background:#fff;color:var(--mv-ink);width:36px;height:36px;border-radius:50%;font-size:12px;line-height:1;cursor:pointer;margin-right:10px}
.mv-scrolly-play:hover,.mv-scrolly-play:focus-visible{border-color:var(--mv-green-ui);color:var(--mv-green-ui)}
.mv-green .mv-scrolly-play{background:transparent;color:#fff;border-color:#ffffff99}
@media(max-width:900px){.mv-scrolly-play{display:none}}
/* Accueil, video du bandeau (retour de Matteo, 22/09) : pendant le defilement, une partie du
   cadre courbe restait peinte en sombre. Le navigateur ne repeint pas toujours une video
   decoupee par clip-path tant qu elle n a pas son propre calque : on le lui donne, et le fond
   reprend la couleur de la page, pour qu un repeint en retard ne se voie jamais. */
.mv-hero .mv-hero-image{background:var(--mv-ground);transform:translateZ(0);backface-visibility:hidden;contain:paint}
.mv-hero .mv-hero-image video{background:var(--mv-ground)}
/* FAQ : une question par ligne, la reponse se deplie. */
.mv-faq{padding-top:56px;padding-bottom:56px}.mv-faq + .mv-faq{padding-top:0}
.mv-site .mv-faq .mv-faq-item{border-top:1px solid #b8c5bf;max-width:900px}
.mv-site .mv-faq .mv-faq-item:last-child{border-bottom:1px solid #b8c5bf}
.mv-site .mv-faq .mv-faq-item summary{cursor:pointer;list-style:none;position:relative;padding:22px 48px 22px 0;font-size:21px;line-height:1.35;color:var(--mv-ink)}
.mv-site .mv-faq .mv-faq-item summary::-webkit-details-marker{display:none}
.mv-site .mv-faq .mv-faq-item summary::after{content:"+";position:absolute;right:6px;top:18px;font-size:26px;color:var(--mv-green-ui);transition:transform .2s}
.mv-site .mv-faq .mv-faq-item[open] summary::after{transform:rotate(45deg)}
.mv-site .mv-faq .mv-faq-item summary:hover,.mv-site .mv-faq .mv-faq-item summary:focus-visible{color:var(--mv-green-ui)}
.mv-site .mv-faq .mv-faq-item p{font-size:16px;margin:0 0 24px;max-width:780px}
.mv-site p.mv-faq-link{margin-top:30px;font-size:15px;max-width:none}
@media(max-width:700px){.mv-site .mv-faq .mv-faq-item summary{font-size:18px}}
/* Formulaire : finalite du traitement et case de consentement (audit SEO du 21/09). */
.mv-site p.mv-form-purpose{font-size:14px;color:#52625b;margin:22px 0 10px;max-width:640px}
.mv-form-check{display:flex;gap:12px;align-items:flex-start;margin:0 0 22px;max-width:640px;font-size:14px;line-height:1.5;cursor:pointer}
.mv-form-check input{margin:2px 0 0;width:18px;height:18px;accent-color:var(--mv-green-ui);flex:0 0 auto}
.mv-form-check a{text-decoration:underline;text-underline-offset:3px}
/* Bandeau de consentement : il n apparait que si un identifiant de mesure est renseigne. */
.mv-consent{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;padding:18px 5.5%;background:var(--mv-ink);color:#fff;box-shadow:0 -2px 20px #0002}
.mv-site .mv-consent p{margin:0;font-size:14px;line-height:1.5;max-width:720px;color:#fff}
.mv-consent a{text-decoration:underline;text-underline-offset:3px}
.mv-consent-actions{display:flex;gap:12px}
.mv-consent button{appearance:none;cursor:pointer;font:inherit;font-size:14px;padding:11px 22px;min-height:44px;border:1px solid #ffffff66;background:transparent;color:#fff}
.mv-consent button.mv-consent-oui{background:#fff;color:var(--mv-ink);border-color:#fff}
.mv-consent button:hover{border-color:#fff}
@media(max-width:700px){.mv-consent{padding:16px 6%}.mv-consent-actions{width:100%}.mv-consent button{flex:1}}
/* Rendu de machine dans le bandeau d une page produit, en filigrane : l image tient le fond
   a droite, attenuee, et se fond dans le gris par un degrade. Elle habille la page sans lui
   voler le titre. Sous 1000 px elle passe sous le texte, nette cette fois, car un filigrane
   derriere un paragraphe etroit se lirait mal. */
.mv-subhero-visual{position:relative;overflow:hidden}
.mv-site .mv-subhero-visual > .wp-block-group__inner-container > .mv-inner{position:relative;z-index:2}
.mv-site .mv-subhero-visual figure.mv-subhero-image{margin:0}
.mv-site .mv-subhero-visual figure.mv-subhero-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 52%}
.mv-site .mv-subhero-visual figure.mv-subhero-image figcaption{font-family:var(--mv-mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#6b7a74;margin:10px 0 0}
@media(min-width:1000px){
 .mv-subhero-visual{min-height:440px;display:flex;align-items:center}
 .mv-site .mv-subhero-visual figure.mv-subhero-image{position:absolute;right:0;top:0;width:64%;height:100%;z-index:1;opacity:.28;filter:grayscale(.35)}
 .mv-site .mv-subhero-visual figure.mv-subhero-image img{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 48%);mask-image:linear-gradient(90deg,transparent 0,#000 48%)}
 .mv-site .mv-subhero-visual figure.mv-subhero-image figcaption{position:absolute;right:5.5%;bottom:18px;margin:0;text-align:right}
}
@media(max-width:999px){
 .mv-site .mv-subhero-visual figure.mv-subhero-image{margin:30px -6% 0;width:112%}
 .mv-site .mv-subhero-visual figure.mv-subhero-image img{height:260px;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
 .mv-site .mv-subhero-visual figure.mv-subhero-image figcaption{padding:0 6%}
}
/* Les avis defilent : quatre cartes, trois visibles, la quatrieme a portee de fleche. Sans
   script la bande reste parcourable au doigt et au clavier ; le script n ajoute que les
   fleches et l etat des bords. */
.mv-quotes >.wp-block-group__inner-container >.mv-inner{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
.mv-quotes >.wp-block-group__inner-container >.mv-inner::-webkit-scrollbar{display:none}
.mv-site .mv-quote{flex:0 0 33.333%;scroll-snap-align:start;min-width:0}
.mv-site .mv-quote p{overflow-wrap:break-word}
.mv-site p.mv-quote-portrait{width:64px;height:64px;border-radius:50%;background:#e8eeea;color:#33403b;display:flex;align-items:center;justify-content:center;font-family:var(--mv-mono);font-size:16px;letter-spacing:.06em;margin:0 0 14px;flex:0 0 auto}
.mv-green .mv-site p.mv-quote-portrait,.mv-green p.mv-quote-portrait{background:#ffffff26;color:#fff}
.mv-quotes-nav{display:flex;gap:10px;justify-content:flex-end;margin:18px 0 0}
.mv-quotes-nav button{appearance:none;cursor:pointer;width:40px;height:40px;border:1px solid #b8c5bf;background:transparent;color:inherit;font-size:15px;line-height:1}
.mv-quotes-nav button:hover:not(:disabled),.mv-quotes-nav button:focus-visible{border-color:var(--mv-green-ui);color:var(--mv-green-ui)}
.mv-quotes-nav button:disabled{opacity:.35;cursor:default}
.mv-green .mv-quotes-nav button{border-color:#ffffff66}
.mv-green .mv-quotes-nav button:hover:not(:disabled){border-color:#fff;color:#fff}
@media(max-width:900px){.mv-site .mv-quote{flex:0 0 86%}.mv-site .mv-quote + .mv-quote{padding-left:24px;border-left:1px solid #b8c5bf}}
@media(prefers-reduced-motion:reduce){.mv-quotes >.wp-block-group__inner-container >.mv-inner{scroll-behavior:auto}}
/* Articles ecrits en blocs (et non avec Elementor) : memes proportions que les anciens articles,
   dont les intertitres Elementor font environ 26 px. Les equations sont en MathML natif. */
.mv-legacy-content h2.wp-block-heading{font-size:26px;line-height:1.25;margin:40px 0 16px}
.mv-legacy-content h3.wp-block-heading{font-size:20px;line-height:1.3;margin:32px 0 12px}
.mv-legacy-content p.mv-lead{font-size:18px;color:#5d6b65}
.mv-legacy-content .mv-equation{font-size:1.35em;margin:22px 0 26px;padding:4px 0;overflow-x:auto;overflow-y:hidden;text-align:center}
.mv-legacy-content .wp-block-image figcaption{font-size:13px;color:#5d6b65;text-align:center}
.mv-legacy-content .wp-block-image.aligncenter img{max-width:100%;height:auto}
.mv-legacy-content .wp-block-table table{border-collapse:collapse;width:100%;font-size:15px}
.mv-legacy-content .wp-block-table th,.mv-legacy-content .wp-block-table td{border:1px solid #ccd5cf;padding:10px 12px;text-align:left}
.mv-legacy-content p.mv-note{font-size:14px;color:#5d6b65;font-style:italic}
