.elementor-6489 .elementor-element.elementor-element-c1ae66a{--display:flex;--min-height:46vh;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:center;--overlay-opacity:1;--padding-top:160px;--padding-bottom:56px;--padding-left:64px;--padding-right:64px;}.elementor-6489 .elementor-element.elementor-element-c1ae66a:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-c1ae66a > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://digitalcity.comaseinfo-support.be/wp-content/uploads/2026/08/photo-hero-2048.jpeg");background-position:center center;background-size:cover;}.elementor-6489 .elementor-element.elementor-element-c1ae66a::before, .elementor-6489 .elementor-element.elementor-element-c1ae66a > .elementor-background-video-container::before, .elementor-6489 .elementor-element.elementor-element-c1ae66a > .e-con-inner > .elementor-background-video-container::before, .elementor-6489 .elementor-element.elementor-element-c1ae66a > .elementor-background-slideshow::before, .elementor-6489 .elementor-element.elementor-element-c1ae66a > .e-con-inner > .elementor-background-slideshow::before, .elementor-6489 .elementor-element.elementor-element-c1ae66a > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(0deg, rgba(15,27,61,0.94) 0%, rgba(15,27,61,0.55) 100%);}.elementor-6489 .elementor-element.elementor-element-d7b798c{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-6489 .elementor-element.elementor-element-8ba6839{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 20px) 0px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-6489 .elementor-element.elementor-element-1bc95df{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 20px) 0px;}.elementor-6489 .elementor-element.elementor-element-6b67a5b{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 16px) 0px;}.elementor-6489 .elementor-element.elementor-element-eb58a67{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-6489 .elementor-element.elementor-element-7da772f .elementor-button-content-wrapper{flex-direction:row;}.elementor-6489 .elementor-element.elementor-element-1118731{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:88px;--padding-bottom:88px;--padding-left:64px;--padding-right:64px;}.elementor-6489 .elementor-element.elementor-element-1118731:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-1118731 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-1c928dd{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--margin-top:0px;--margin-bottom:40px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-beed91e{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-dfd5b36{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-eeb5de0{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-widget-nested-tabs.elementor-widget-n-tabs > .e-n-tabs[data-touch-mode='false'] > .e-n-tabs-heading > .e-n-tab-title[aria-selected="false"]:hover{background:var( --e-global-color-accent );}.elementor-widget-nested-tabs.elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title[aria-selected="true"], .elementor-widget-nested-tabs.elementor-widget-n-tabs > .e-n-tabs[data-touch-mode='true'] > .e-n-tabs-heading > .e-n-tab-title[aria-selected="false"]:hover{background:var( --e-global-color-accent );}.elementor-widget-nested-tabs.elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :is( .e-n-tab-title > .e-n-tab-title-text, .e-n-tab-title ){font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-6489 .elementor-element.elementor-element-63cd949{--display:flex;--min-height:340px;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:flex-start;--gap:8px 8px;--row-gap:8px;--column-gap:8px;--overlay-opacity:1;--padding-top:28px;--padding-bottom:28px;--padding-left:28px;--padding-right:28px;}.elementor-6489 .elementor-element.elementor-element-63cd949:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-63cd949 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#8B5CF6;}.elementor-6489 .elementor-element.elementor-element-63cd949::before, .elementor-6489 .elementor-element.elementor-element-63cd949 > .elementor-background-video-container::before, .elementor-6489 .elementor-element.elementor-element-63cd949 > .e-con-inner > .elementor-background-video-container::before, .elementor-6489 .elementor-element.elementor-element-63cd949 > .elementor-background-slideshow::before, .elementor-6489 .elementor-element.elementor-element-63cd949 > .e-con-inner > .elementor-background-slideshow::before, .elementor-6489 .elementor-element.elementor-element-63cd949 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(0deg, rgba(15,16,22,0.85) 0%, rgba(15,16,22,0.04) 100%);}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-6489 .elementor-element.elementor-element-e740997{margin:8px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-e740997 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-6489 .elementor-element.elementor-element-f296130{--display:flex;--min-height:340px;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:flex-start;--gap:8px 8px;--row-gap:8px;--column-gap:8px;--overlay-opacity:1;--padding-top:28px;--padding-bottom:28px;--padding-left:28px;--padding-right:28px;}.elementor-6489 .elementor-element.elementor-element-f296130:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-f296130 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#1E3A8A;}.elementor-6489 .elementor-element.elementor-element-f296130::before, .elementor-6489 .elementor-element.elementor-element-f296130 > .elementor-background-video-container::before, .elementor-6489 .elementor-element.elementor-element-f296130 > .e-con-inner > .elementor-background-video-container::before, .elementor-6489 .elementor-element.elementor-element-f296130 > .elementor-background-slideshow::before, .elementor-6489 .elementor-element.elementor-element-f296130 > .e-con-inner > .elementor-background-slideshow::before, .elementor-6489 .elementor-element.elementor-element-f296130 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(0deg, rgba(15,16,22,0.85) 0%, rgba(15,16,22,0.04) 100%);}.elementor-6489 .elementor-element.elementor-element-2e8fdad{margin:8px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-2e8fdad .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-6489 .elementor-element.elementor-element-89e52eb{--display:flex;--min-height:340px;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:flex-start;--gap:8px 8px;--row-gap:8px;--column-gap:8px;--overlay-opacity:1;--padding-top:28px;--padding-bottom:28px;--padding-left:28px;--padding-right:28px;}.elementor-6489 .elementor-element.elementor-element-89e52eb:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-89e52eb > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#008AB7;}.elementor-6489 .elementor-element.elementor-element-89e52eb::before, .elementor-6489 .elementor-element.elementor-element-89e52eb > .elementor-background-video-container::before, .elementor-6489 .elementor-element.elementor-element-89e52eb > .e-con-inner > .elementor-background-video-container::before, .elementor-6489 .elementor-element.elementor-element-89e52eb > .elementor-background-slideshow::before, .elementor-6489 .elementor-element.elementor-element-89e52eb > .e-con-inner > .elementor-background-slideshow::before, .elementor-6489 .elementor-element.elementor-element-89e52eb > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(0deg, rgba(15,16,22,0.85) 0%, rgba(15,16,22,0.04) 100%);}.elementor-6489 .elementor-element.elementor-element-8f80cc8{margin:8px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-8f80cc8 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-6489 .elementor-element.elementor-element-34c8f47{--display:flex;--min-height:340px;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:flex-start;--gap:8px 8px;--row-gap:8px;--column-gap:8px;--overlay-opacity:1;--padding-top:28px;--padding-bottom:28px;--padding-left:28px;--padding-right:28px;}.elementor-6489 .elementor-element.elementor-element-34c8f47:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-34c8f47 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#22D3EE;}.elementor-6489 .elementor-element.elementor-element-34c8f47::before, .elementor-6489 .elementor-element.elementor-element-34c8f47 > .elementor-background-video-container::before, .elementor-6489 .elementor-element.elementor-element-34c8f47 > .e-con-inner > .elementor-background-video-container::before, .elementor-6489 .elementor-element.elementor-element-34c8f47 > .elementor-background-slideshow::before, .elementor-6489 .elementor-element.elementor-element-34c8f47 > .e-con-inner > .elementor-background-slideshow::before, .elementor-6489 .elementor-element.elementor-element-34c8f47 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(0deg, rgba(15,16,22,0.85) 0%, rgba(15,16,22,0.04) 100%);}.elementor-6489 .elementor-element.elementor-element-ea70036{margin:8px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-ea70036 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-6489 .elementor-element.elementor-element-556e159{--display:flex;--min-height:340px;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:flex-start;--gap:8px 8px;--row-gap:8px;--column-gap:8px;--overlay-opacity:1;--padding-top:28px;--padding-bottom:28px;--padding-left:28px;--padding-right:28px;}.elementor-6489 .elementor-element.elementor-element-556e159:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-556e159 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#D946EF;}.elementor-6489 .elementor-element.elementor-element-556e159::before, .elementor-6489 .elementor-element.elementor-element-556e159 > .elementor-background-video-container::before, .elementor-6489 .elementor-element.elementor-element-556e159 > .e-con-inner > .elementor-background-video-container::before, .elementor-6489 .elementor-element.elementor-element-556e159 > .elementor-background-slideshow::before, .elementor-6489 .elementor-element.elementor-element-556e159 > .e-con-inner > .elementor-background-slideshow::before, .elementor-6489 .elementor-element.elementor-element-556e159 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(0deg, rgba(15,16,22,0.85) 0%, rgba(15,16,22,0.04) 100%);}.elementor-6489 .elementor-element.elementor-element-2ac1671{margin:8px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-2ac1671 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-6489 .elementor-element.elementor-element-eb587c1{--n-tabs-direction:row;--n-tabs-heading-direction:column;--n-tabs-heading-width:330px;--n-tabs-title-flex-basis:initial;--n-tabs-title-flex-shrink:initial;--n-tabs-title-justify-content:flex-start;--n-tabs-title-align-items:flex-start;--n-tabs-title-text-align:start;--n-tabs-title-gap:0px;--n-tabs-gap:0px;--n-tabs-title-color:#1A1D2B;--n-tabs-title-color-active:#FFFFFF;--n-tabs-icon-size:22px;--n-tabs-icon-color:#1A1D2B;--n-tabs-icon-color-active:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-eb587c1 > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title[aria-selected='false']:not( :hover ){background:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-eb587c1.elementor-widget-n-tabs > .e-n-tabs[data-touch-mode='false'] > .e-n-tabs-heading > .e-n-tab-title[aria-selected="false"]:hover{background:#F9FAFB;}.elementor-6489 .elementor-element.elementor-element-eb587c1.elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title[aria-selected="true"], .elementor-6489 .elementor-element.elementor-element-eb587c1.elementor-widget-n-tabs > .e-n-tabs[data-touch-mode='true'] > .e-n-tabs-heading > .e-n-tab-title[aria-selected="false"]:hover{background:#1A1D2B;}.elementor-6489 .elementor-element.elementor-element-eb587c1 [data-touch-mode="false"] .e-n-tab-title[aria-selected="false"]:hover{--n-tabs-title-color-hover:#1A1D2B;--n-tabs-icon-color-hover:#008AB7;}.elementor-6489 .elementor-element.elementor-element-b9eea57{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:88px;--padding-bottom:88px;--padding-left:64px;--padding-right:64px;}.elementor-6489 .elementor-element.elementor-element-5b357bd{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:40px 56px;--row-gap:40px;--column-gap:56px;--margin-top:0px;--margin-bottom:56px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-de3f039{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-de3f039:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-de3f039 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://digitalcity.comaseinfo-support.be/wp-content/uploads/2026/08/DigitalCityBrussels_HD_34-scaled.jpg");background-position:center center;background-size:cover;}.elementor-6489 .elementor-element.elementor-element-7b84226{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:14px 14px;--row-gap:14px;--column-gap:14px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-4ac6068{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-584282d{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-002e0da{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-482ed19{margin:8px 0px calc(var(--kit-widget-spacing, 0px) + 8px) 0px;}.elementor-6489 .elementor-element.elementor-element-8fd475f{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:1px 1px;--row-gap:1px;--column-gap:1px;--margin-top:8px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-002b670{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:2px 2px;--row-gap:2px;--column-gap:2px;--padding-top:22px;--padding-bottom:22px;--padding-left:24px;--padding-right:24px;}.elementor-6489 .elementor-element.elementor-element-002b670:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-002b670 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-f229e63{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-d502e7a{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-dcc15ed{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:2px 2px;--row-gap:2px;--column-gap:2px;--padding-top:22px;--padding-bottom:22px;--padding-left:24px;--padding-right:24px;}.elementor-6489 .elementor-element.elementor-element-dcc15ed:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-dcc15ed > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-152088c{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-01f9624{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-8bce8ac{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--border-radius:16px 16px 16px 16px;--padding-top:48px;--padding-bottom:48px;--padding-left:56px;--padding-right:56px;}.elementor-6489 .elementor-element.elementor-element-8bce8ac:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-8bce8ac > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F8F9FC;background-image:url("https://digitalcity.comaseinfo-support.be/wp-content/uploads/2026/08/pexels-photo-18999377-scaled.jpeg");background-position:22% 15%;background-repeat:no-repeat;background-size:cover;}.elementor-6489 .elementor-element.elementor-element-b18033e{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-e9b6dd4{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-9ed9ec8{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-cbca8d3{margin:8px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-cbca8d3 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-6489 .elementor-element.elementor-element-bd440e1{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:88px;--padding-bottom:88px;--padding-left:64px;--padding-right:64px;}.elementor-6489 .elementor-element.elementor-element-bd440e1:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-bd440e1 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-de02559{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--margin-top:0px;--margin-bottom:40px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-62691b6{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-c8f3519{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-1976072{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-d60c03a{--display:grid;--e-con-grid-template-columns:repeat(4, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--gap:1px 1px;--row-gap:1px;--column-gap:1px;--grid-auto-flow:row;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-44c60dc{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:4px 4px;--row-gap:4px;--column-gap:4px;--padding-top:32px;--padding-bottom:32px;--padding-left:28px;--padding-right:28px;}.elementor-6489 .elementor-element.elementor-element-44c60dc:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-44c60dc > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-df3fa3a{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-d05840c{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-075818a{margin:32px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-075818a .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-6489 .elementor-element.elementor-element-5166c1b{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:4px 4px;--row-gap:4px;--column-gap:4px;--padding-top:32px;--padding-bottom:32px;--padding-left:28px;--padding-right:28px;}.elementor-6489 .elementor-element.elementor-element-5166c1b:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-5166c1b > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-e8ab2a8{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-6e93629{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-3f6e84f{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:4px 4px;--row-gap:4px;--column-gap:4px;--padding-top:32px;--padding-bottom:32px;--padding-left:28px;--padding-right:28px;}.elementor-6489 .elementor-element.elementor-element-3f6e84f:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-3f6e84f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-4563f54{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-cb02fff{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-c70e5e2{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:4px 4px;--row-gap:4px;--column-gap:4px;--padding-top:32px;--padding-bottom:32px;--padding-left:28px;--padding-right:28px;}.elementor-6489 .elementor-element.elementor-element-c70e5e2:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-c70e5e2 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-b0d8538{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-ce7c33f{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-06a8c8c{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:88px;--padding-bottom:88px;--padding-left:64px;--padding-right:64px;}.elementor-6489 .elementor-element.elementor-element-a11a457{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--margin-top:0px;--margin-bottom:40px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-5fbe6f4{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-1523be6{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-c0e806c{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-f945e7f{--display:grid;--e-con-grid-template-columns:repeat(4, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--gap:24px 24px;--row-gap:24px;--column-gap:24px;--grid-auto-flow:row;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-0fef232{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:#E2E5ED;--border-color:#E2E5ED;--border-radius:12px 12px 12px 12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-0fef232:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-0fef232 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-1a7cd68{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-1a7cd68:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-1a7cd68 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://digitalcity.comaseinfo-support.be/wp-content/uploads/2026/08/actu-4-scaled.jpg");background-position:center center;background-size:cover;}.elementor-6489 .elementor-element.elementor-element-9e3f428{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:6px 6px;--row-gap:6px;--column-gap:6px;--padding-top:20px;--padding-bottom:22px;--padding-left:22px;--padding-right:22px;}.elementor-6489 .elementor-element.elementor-element-82e5e45{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-8bc8c3b{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-01a1720{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-334df7b{margin:6px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-334df7b .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-6489 .elementor-element.elementor-element-b9c16b0{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:#E2E5ED;--border-color:#E2E5ED;--border-radius:12px 12px 12px 12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-b9c16b0:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-b9c16b0 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-231817d{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-231817d:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-231817d > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://digitalcity.comaseinfo-support.be/wp-content/uploads/2026/08/actu-5-scaled.jpg");background-position:center center;background-size:cover;}.elementor-6489 .elementor-element.elementor-element-0701435{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:6px 6px;--row-gap:6px;--column-gap:6px;--padding-top:20px;--padding-bottom:22px;--padding-left:22px;--padding-right:22px;}.elementor-6489 .elementor-element.elementor-element-1424490{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-353cecf{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-85f2083{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-362e1d6{margin:6px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-362e1d6 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-6489 .elementor-element.elementor-element-79ef35b{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:#E2E5ED;--border-color:#E2E5ED;--border-radius:12px 12px 12px 12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-79ef35b:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-79ef35b > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-86ee2d9{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-86ee2d9:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-86ee2d9 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://digitalcity.comaseinfo-support.be/wp-content/uploads/2026/08/actu-6.jpg");background-position:center center;background-size:cover;}.elementor-6489 .elementor-element.elementor-element-8186a7b{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:6px 6px;--row-gap:6px;--column-gap:6px;--padding-top:20px;--padding-bottom:22px;--padding-left:22px;--padding-right:22px;}.elementor-6489 .elementor-element.elementor-element-5e47a53{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-4463174{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-4bb94cc{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-97ef42e{margin:6px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-97ef42e .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-6489 .elementor-element.elementor-element-eb6698d{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:#E2E5ED;--border-color:#E2E5ED;--border-radius:12px 12px 12px 12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-eb6698d:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-eb6698d > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-4894043{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-4894043:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-4894043 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://digitalcity.comaseinfo-support.be/wp-content/uploads/2026/08/actu-3.jpg");background-position:center center;background-size:cover;}.elementor-6489 .elementor-element.elementor-element-9fc6042{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:6px 6px;--row-gap:6px;--column-gap:6px;--padding-top:20px;--padding-bottom:22px;--padding-left:22px;--padding-right:22px;}.elementor-6489 .elementor-element.elementor-element-2bc8f0d{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-67513a6{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-5b20ff2{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-45d86cb{margin:6px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-45d86cb .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-6489 .elementor-element.elementor-element-575a135{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--flex-wrap:wrap;--margin-top:28px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-2190278{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-e8e6cc2{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-ea12c36{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-b4f1385{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-1213d70{margin:28px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-1213d70 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-6489 .elementor-element.elementor-element-7122ff6{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:88px;--padding-bottom:88px;--padding-left:64px;--padding-right:64px;}.elementor-6489 .elementor-element.elementor-element-d8fb1b2{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--margin-top:0px;--margin-bottom:40px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-182a641{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-17f07cf{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-56ec36c{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-e398514{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-676a3fb{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 14px) 0px;}.elementor-6489 .elementor-element.elementor-element-2c4e7a2{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--flex-wrap:wrap;--margin-top:0px;--margin-bottom:40px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-4223535{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 14px) 0px;}.elementor-6489 .elementor-element.elementor-element-c974334{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--flex-wrap:wrap;--margin-top:0px;--margin-bottom:40px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-4965957{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 14px) 0px;}.elementor-6489 .elementor-element.elementor-element-2ba4bac{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-e880d81{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:88px;--padding-bottom:88px;--padding-left:64px;--padding-right:64px;}.elementor-6489 .elementor-element.elementor-element-e880d81:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-e880d81 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-a145057{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--margin-top:0px;--margin-bottom:40px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-493eaa1{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-238eac9{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-4acab5a{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-939f72d{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:32px 40px;--row-gap:32px;--column-gap:40px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-1436688{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-d22eb5e{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-5ab7722{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:#E2E5ED;--border-color:#E2E5ED;--border-radius:12px 12px 12px 12px;--padding-top:32px;--padding-bottom:32px;--padding-left:32px;--padding-right:32px;}.elementor-6489 .elementor-element.elementor-element-5ab7722:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-5ab7722 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-e00b463{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-022caaa{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6489 .elementor-element.elementor-element-2b8d183{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:10px 12px;--row-gap:10px;--column-gap:12px;--flex-wrap:wrap;--margin-top:8px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-0af7cb0 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-6489 .elementor-element.elementor-element-b6e3731 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-6489 .elementor-element.elementor-element-2617b95{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:112px;--padding-bottom:112px;--padding-left:64px;--padding-right:64px;}.elementor-6489 .elementor-element.elementor-element-c8e4d78{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 16px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-c8e4d78 .elementor-heading-title{color:#FFFFFF;}.elementor-6489 .elementor-element.elementor-element-4dd2ace{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 24px) 0px;text-align:center;}.elementor-6489 .elementor-element.elementor-element-228d9ee{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6489 .elementor-element.elementor-element-e01c751{margin:24px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}@media(min-width:768px){.elementor-6489 .elementor-element.elementor-element-d7b798c{--content-width:1180px;}.elementor-6489 .elementor-element.elementor-element-1118731{--content-width:1180px;}.elementor-6489 .elementor-element.elementor-element-b9eea57{--content-width:1180px;}.elementor-6489 .elementor-element.elementor-element-bd440e1{--content-width:1180px;}.elementor-6489 .elementor-element.elementor-element-06a8c8c{--content-width:1180px;}.elementor-6489 .elementor-element.elementor-element-7122ff6{--content-width:1180px;}.elementor-6489 .elementor-element.elementor-element-e398514{--width:100%;}.elementor-6489 .elementor-element.elementor-element-e880d81{--content-width:1180px;}.elementor-6489 .elementor-element.elementor-element-2617b95{--content-width:1320px;}}@media(max-width:1024px){.elementor-6489 .elementor-element.elementor-element-c1ae66a{--padding-top:128px;--padding-bottom:48px;--padding-left:40px;--padding-right:40px;}.elementor-6489 .elementor-element.elementor-element-1118731{--padding-top:76px;--padding-bottom:76px;--padding-left:40px;--padding-right:40px;}.elementor-6489 .elementor-element.elementor-element-b9eea57{--padding-top:76px;--padding-bottom:76px;--padding-left:40px;--padding-right:40px;}.elementor-6489 .elementor-element.elementor-element-8bce8ac:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-8bce8ac > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:22% 15%;}.elementor-6489 .elementor-element.elementor-element-bd440e1{--padding-top:76px;--padding-bottom:76px;--padding-left:40px;--padding-right:40px;}.elementor-6489 .elementor-element.elementor-element-d60c03a{--e-con-grid-template-columns:repeat(2, 1fr);--grid-auto-flow:row;}.elementor-6489 .elementor-element.elementor-element-06a8c8c{--padding-top:76px;--padding-bottom:76px;--padding-left:40px;--padding-right:40px;}.elementor-6489 .elementor-element.elementor-element-f945e7f{--e-con-grid-template-columns:repeat(2, 1fr);--grid-auto-flow:row;}.elementor-6489 .elementor-element.elementor-element-7122ff6{--padding-top:76px;--padding-bottom:76px;--padding-left:40px;--padding-right:40px;}.elementor-6489 .elementor-element.elementor-element-e880d81{--padding-top:76px;--padding-bottom:76px;--padding-left:40px;--padding-right:40px;}.elementor-6489 .elementor-element.elementor-element-2617b95{--padding-top:96px;--padding-bottom:96px;--padding-left:40px;--padding-right:40px;}}@media(max-width:767px){.elementor-6489 .elementor-element.elementor-element-c1ae66a{--padding-top:112px;--padding-bottom:40px;--padding-left:24px;--padding-right:24px;}.elementor-6489 .elementor-element.elementor-element-1118731{--padding-top:56px;--padding-bottom:56px;--padding-left:24px;--padding-right:24px;}.elementor-6489 .elementor-element.elementor-element-b9eea57{--padding-top:56px;--padding-bottom:56px;--padding-left:24px;--padding-right:24px;}.elementor-6489 .elementor-element.elementor-element-5b357bd{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-6489 .elementor-element.elementor-element-8fd475f{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-6489 .elementor-element.elementor-element-8bce8ac:not(.elementor-motion-effects-element-type-background), .elementor-6489 .elementor-element.elementor-element-8bce8ac > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:22% 15%;}.elementor-6489 .elementor-element.elementor-element-8bce8ac{--padding-top:32px;--padding-bottom:32px;--padding-left:24px;--padding-right:24px;}.elementor-6489 .elementor-element.elementor-element-bd440e1{--padding-top:56px;--padding-bottom:56px;--padding-left:24px;--padding-right:24px;}.elementor-6489 .elementor-element.elementor-element-d60c03a{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-6489 .elementor-element.elementor-element-06a8c8c{--padding-top:56px;--padding-bottom:56px;--padding-left:24px;--padding-right:24px;}.elementor-6489 .elementor-element.elementor-element-f945e7f{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-6489 .elementor-element.elementor-element-7122ff6{--padding-top:56px;--padding-bottom:56px;--padding-left:24px;--padding-right:24px;}.elementor-6489 .elementor-element.elementor-element-e880d81{--padding-top:56px;--padding-bottom:56px;--padding-left:24px;--padding-right:24px;}.elementor-6489 .elementor-element.elementor-element-939f72d{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-6489 .elementor-element.elementor-element-2617b95{--padding-top:64px;--padding-bottom:64px;--padding-left:24px;--padding-right:24px;}}/* Start custom CSS for container, class: .elementor-element-5b357bd */.elementor-6489 .elementor-element.elementor-element-5b357bd.dc-two-col.dc-two-col:not(#a){margin-bottom:56px!important;}/* End custom CSS */
/* Start custom CSS *//* A PROPOS - regles specifiques a cette page.

   Le socle dc-* commun vit dans le CSS du template d'en-tete (post 609),
   charge sur tout le site. Ne figurent ici que les composants propres a
   cette page : carrefour a onglets, bloc deux colonnes, chiffres cles,
   espaces, publications, niveaux d'ecosysteme, FAQ et coordonnees.

   Attention : le CSS de l'en-tete est charge APRES celui de la page. Pour
   surcharger une regle du socle, il faut une specificite superieure. */

/* ---- CARREFOUR (widget Onglets imbriques, Elementor Pro) ----
   Onglets verticaux a gauche, panneau image a droite, comme le wireframe.
   Sous 1024 px le widget bascule en accordeon (reglage du widget).

   Les couleurs des onglets (fond, texte, icone, etats survol et actif) sont
   dans les REGLAGES DU WIDGET, pas ici : Elementor les pose avec un selecteur
   a specificite 0,8,0 qu'aucune regle raisonnable ne peut battre. Ne remets
   pas de background ni de color sur .e-n-tab-title, ca ne servirait a rien. */
.dc-hub .e-n-tabs{border:1px solid var(--dc-gray-200);overflow:hidden;}
.dc-hub .e-n-tabs .e-n-tabs-heading{border-right:1px solid var(--dc-gray-200);}
.dc-hub .e-n-tabs .e-n-tab-title{gap:14px;padding:17px 20px;border-bottom:1px solid var(--dc-gray-200);border-radius:0;}
.dc-hub .e-n-tabs .e-n-tabs-heading .e-n-tab-title:last-child{border-bottom:none;}
.dc-hub .e-n-tabs .e-n-tab-icon{flex:none;width:34px;height:34px;display:flex;align-items:center;justify-content:center;}
.dc-hub .e-n-tabs .e-n-tab-title-text{display:block;}
.dc-hub .e-n-tabs .e-n-tab-title-text b{display:block;font-family:var(--dc-display);font-size:15px;font-weight:700;line-height:1.2;}
.dc-hub .e-n-tabs .e-n-tab-title-text small{display:block;font-family:var(--dc-body);font-size:12px;font-weight:400;line-height:1.35;color:var(--dc-text-light);margin-top:2px;}
.dc-hub .e-n-tabs .e-n-tab-title[aria-selected="true"] .e-n-tab-title-text small{color:rgba(255,255,255,.72);}
@media(max-width:1024px){.dc-hub .e-n-tabs .e-n-tabs-heading{border-right:none;}.dc-hub .e-n-tabs .e-n-tab-title{border-bottom:1px solid var(--dc-gray-200);}}
.dc-hub-panel .dc-hub-panel-title h3.elementor-heading-title{font-family:var(--dc-display);font-size:22px;font-weight:700;line-height:1.15;letter-spacing:-.01em;color:#fff;}
.dc-hub-panel .dc-hub-panel-text p{font-family:var(--dc-body);font-size:15px;line-height:1.5;color:rgba(255,255,255,.88);margin:0;max-width:46ch;}

/* ---- BLOC DEUX COLONNES ---- */
.dc-two-col > .e-con:first-child{flex:0 0 40%;min-width:0;}
.dc-two-col > .e-con:last-child{flex:1 1 0;min-width:0;}
@media(max-width:767px){.dc-two-col > .e-con:first-child,.dc-two-col > .e-con:last-child{flex:none;width:100%;}}
.dc-fig-43{aspect-ratio:4/3;}
.dc-two-title h2.elementor-heading-title{font-size:34px;}
.dc-lead p{font-size:16px;line-height:1.65;color:var(--dc-text-light);margin:0;}
.dc-quote p{font-size:18px;line-height:1.5;font-weight:600;color:var(--dc-bleu-titres);border-left:3px solid var(--dc-bleu-logo);padding-left:16px;margin:0;}

/* ---- CHIFFRES CLES ---- */
.dc-stat-num .elementor-heading-title{font-family:var(--dc-display);font-size:30px;font-weight:800;line-height:1;letter-spacing:-.02em;color:var(--dc-bleu-titres);}
.dc-stat-label .elementor-heading-title{font-family:var(--dc-body);font-size:13px;font-weight:400;color:var(--dc-text-light);}

/* ---- ESPACES ---- */
.dc-space-card{transition:background .3s var(--dc-ease);}
.dc-space-card:hover{background-color:var(--dc-gray-50)!important;}
.dc-space-name h3.elementor-heading-title{font-size:17px;color:var(--dc-text);}
.dc-space-cap .elementor-heading-title{font-family:var(--dc-body);font-size:13px;font-weight:500;color:var(--dc-bleu-logo);}

/* ---- PUBLICATIONS ---- */
.dc-pub-card{overflow:hidden;}
.dc-pub-card .dc-card-img{aspect-ratio:16/10;}
.dc-pub-year .elementor-heading-title{font-family:var(--dc-body);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--dc-text-light);}
.dc-pub-card .dc-card-title .elementor-heading-title{font-size:17px;}

/* ---- NIVEAUX D'ECOSYSTEME ET INTITULES DE BLOC ---- */
.dc-eco-title h3.elementor-heading-title{font-family:var(--dc-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--dc-text-light);}

/* ---- FAQ (widget accordeon natif) ---- */
.dc-faq .elementor-accordion .elementor-accordion-item{border:1px solid var(--dc-gray-200);border-radius:var(--dc-radius-sm);margin-bottom:10px;overflow:hidden;background:#fff;}
.dc-faq .elementor-tab-title{font-family:var(--dc-display);font-size:17px;font-weight:700;color:var(--dc-text);padding:18px 22px;}
.dc-faq .elementor-tab-title.elementor-active{color:var(--dc-bleu-titres);}
.dc-faq .elementor-tab-content{padding:0 22px 20px;border:none;}
.dc-faq .elementor-tab-content p{font-size:15px;line-height:1.6;color:var(--dc-text-light);margin:0;}

/* ---- COORDONNEES ---- */
.dc-map-slot{aspect-ratio:4/3;position:relative;border-radius:var(--dc-radius-lg);overflow:hidden;}
.dc-map-note .elementor-heading-title{font-family:var(--dc-body);font-size:13px;font-weight:500;color:rgba(255,255,255,.85);padding:0 20px;text-align:center;}
.dc-contact-body p{font-size:15px;line-height:1.7;color:var(--dc-text-light);margin:0 0 10px;}
.dc-contact-body strong{color:var(--dc-text);font-weight:700;}
.dc-contact-body em{color:var(--dc-gray-500);font-style:italic;}

/* ============================================================================
   CARTES PUBLICATION CLIQUABLES — 27 aout 2026
   Releve en balayant les neuf pages du site : les quatre cartes .dc-pub-card
   portent un lien enregistre dans Elementor qui n'est jamais rendu, faute de
   html_tag=a. Le socle leur donne pourtant cursor:pointer — elles promettent
   d'etre cliquables sans l'etre.

   On ne peut PAS se contenter de html_tag=a : chaque carte contient deja un
   lien, le bouton « Telecharger le rapport ». Emboiter deux <a> est invalide
   et cree deux entrees concurrentes dans l'arbre d'accessibilite.
   On emploie donc le motif du LIEN ETIRE, exactement comme le socle le fait
   deja pour .dc-blog-card : le <a> existant s'agrandit jusqu'aux bords.

   Verifie statiquement avant application (la page etant en brouillon, elle
   n'est pas rendue publiquement) :
     - structure identique a .dc-blog-card, un seul lien interne ;
     - .dc-card-img est deja en position:relative, donc son ::after de voile
       ne se re-ancrera pas sur la carte ;
     - .dc-card-body et .dc-card-bottom sont deja statiques par defaut.
   A CONTROLER A L'OEIL a la prochaine ouverture de la page.

   NB : les destinations sont encore des « # ». Le motif prepare la structure ;
   les vraies URL devront etre posees sur le BOUTON, pas sur le conteneur.
   Identifiants : 952b73b, 645081b, a57bbf8, 6fd808f.
   ============================================================================ */
.dc-pub-card{position:relative;}
.dc-pub-card .dc-card-body,
.dc-pub-card .dc-card-bottom{position:static!important;}
.dc-pub-card .dc-link-text .elementor-button::after{
  content:"";position:absolute;inset:0;z-index:1;}
.dc-pub-card .dc-card-title,
.dc-pub-card .dc-card-excerpt{position:relative;z-index:2;}


/* ############################################################################
   #  A PROPOS — LA SECTION QUI TRANCHE            (7 septembre 2026)
   #
   #  Une section sombre par page, jamais deux : c'est la respiration qui casse
   #  la suite des fonds clairs. Sur l'accueil c'est l'agenda ; ici c'est
   #  l'ecosysteme, et ce n'est pas un choix arbitraire — c'est la section la
   #  plus dense et la plus listee de la page (trois niveaux, vingt-trois noms),
   #  donc celle qui gagne le plus a passer sur du sombre : les pastilles
   #  deviennent des points lumineux au lieu d'un pave de gris sur gris.
   #
   #  Le fond, le voile et l'encre des titres viennent du socle (.dc-nuit). Il
   #  ne reste ici que ce qui est propre a cette section : les intitules de
   #  niveau et les pastilles de partenaires.
   #  Specificite : le socle dessine la pastille en 0,3,0 ; on ajoute .dc-eco
   #  pour passer a 0,4,0. La specificite, pas l'ordre — le CSS de page est
   #  charge AVANT le socle, l'ordre nous ferait perdre.
   ############################################################################ */
.dc-eco .dc-eco-title h3.elementor-heading-title{color:rgba(255,255,255,.62);}
.dc-eco .dc-client-chip .elementor-heading-title.elementor-heading-title{
  color:rgba(255,255,255,.88);
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.20);}
.dc-eco .dc-client-chip:hover .elementor-heading-title.elementor-heading-title{
  color:#fff;border-color:#8CE8FF;background:rgba(140,232,255,.12);}


/* ############################################################################
   #  A PROPOS — CONTRASTES MESURES LE 7 SEPTEMBRE 2026
   #
   #  Le banc (v2-correctifs/banc/audit2.py) a releve cinq echecs AA sur cette
   #  page. Quatre ont la MEME cause : le bleu de marque #008AB7 vaut 3,95:1 sur
   #  blanc, alors qu'il en faut 4,5 pour du texte sous 18,66 px. #00688A donne
   #  5,02:1 et c'est deja l'extremite bleue de --dc-grad-brand-aa.
   #
   #  POURQUOI CES REGLES SONT SCOPEES A LA PAGE et non posees dans le socle :
   #  .dc-eyebrow et .dc-cta-profiles sont AUSSI portees par l'accueil livree
   #  (568), qui est figee et que le client a en main. Un changement de couleur
   #  y serait visible. Le correctif reste donc sur cette page ; la question de
   #  fond — le bleu de marque n'est pas conforme en petit texte sur blanc —
   #  est a trancher a l'echelle de la charte, pas ici.
   ############################################################################ */
.elementor-6489 .dc-eyebrow .elementor-heading-title.elementor-heading-title{color:#00688A;}
.elementor-6489 .dc-link-text .elementor-button,
.elementor-6489 .dc-link-text .elementor-button-text{color:#00688A!important;}
.elementor-6489 .dc-btn-primary .elementor-button{background-color:#00688A!important;}

/* Les liens de profils du pave contact : la regle de couleur vivait dans le CSS
   de la V2 et de la V5, pas dans le socle — en copiant le pave ici, je l'avais
   laissee derriere. Ils sortaient donc en #008AB7 sur le fond de nuit, a
   4,38:1. Le blanc a 78 % les remet a plus de 10:1. */
.elementor-6489 .dc-cta-profiles a{color:rgba(255,255,255,.78);
  border-bottom:1px solid rgba(255,255,255,.32);padding-bottom:2px;}
.elementor-6489 .dc-cta-profiles a:hover{color:#fff;border-bottom-color:#fff;}


/* --- CHIFFRES ET CAPACITES : la vraie cause n'etait pas la couleur ----------
   Le banc les donnait a 3,95:1 en #008AB7. Or le CSS de cette page les met
   depuis aout en var(--dc-bleu-titres) (#0033A1) et var(--dc-text-light).
   Ces regles ne s'appliquaient tout simplement pas : `.dc-stat-num
   .elementor-heading-title` pese 0,2,0, exactement comme la regle
   `.elementor-widget-heading .elementor-heading-title{color:var(--e-global-color-primary)}`
   qu'Elementor REEMET dans la feuille du pied de page — laquelle est chargee
   APRES le CSS de page. A specificite egale, l'ordre tranche, et le pied
   gagnait. Les trois classes sortaient donc en #008AB7, la couleur primaire du
   kit, au lieu de leur couleur voulue.
   C'est le piege deja documente : on ne gagne pas ce duel en ajoutant des
   classes, on REDEFINIT LA VARIABLE sur le conteneur. Elle s'herite au lieu
   d'entrer en concurrence, l'ordre de chargement ne la derange plus.
   Les capacites passent a #00688A et non a --dc-bleu-logo : a 16 px gras,
   #008AB7 resterait a 3,95:1.
   A VERIFIER SUR LES PAGES PROFIL au lot 4 : elles portent les memes classes,
   donc probablement le meme defaut. */
.elementor-6489 .dc-stat-num{--e-global-color-primary:var(--dc-bleu-titres);}
.elementor-6489 .dc-stat-label{--e-global-color-primary:var(--dc-text-light);}
.elementor-6489 .dc-space-cap{--e-global-color-primary:#00688A;}


/* --- ARRONDIS : aligner cette page sur l'echelle de la V5 ------------------
   Releve au rendu le 7 septembre : le bloc d'onglets et le cadre d'image
   etaient a 0, et les cartes a 12 px alors que la V5 les met a 16. La demande
   de la reunion du 1er septembre — « pour toutes les images il faut les bords
   arrondis » — n'avait ete appliquee que sur l'accueil, ou elle vit dans le
   CSS de page.
   Pourquoi ces regles sont scopees a .elementor-6489 et non posees dans le
   socle : `.dc-card` est aussi porte par l'accueil LIVREE (568), qui est figee.
   Passer son rayon de 12 a 16 px y serait visible. Le jour ou l'accueil sera
   remplacee, cette echelle remontera dans le socle et ces trois lignes
   disparaitront.
   -------------------------------------------------------------------------- */
.elementor-6489 .dc-hub .e-n-tabs{border-radius:16px;}
.elementor-6489 .dc-fig-43{border-radius:16px;overflow:hidden;}
.elementor-6489 .dc-card,
.elementor-6489 .dc-contact-card{border-radius:16px;}


/* ############################################################################
   #  CARREFOUR « EXPLORER » — UNE COULEUR PAR RUBRIQUE   (7 septembre 2026)
   #
   #  Note de Yassine : « variation des couleurs de section », dans le meme
   #  registre que l'accueil.
   #
   #  Ce n'est pas une alternance decorative : l'accueil donne DEJA une couleur
   #  a chacune de ces rubriques, sur les pastilles de son bloc A propos, en
   #  suivant le balayage du heros — magenta, violet, bleu roi, bleu logo, cyan.
   #  On reprend la MEME attribution, rubrique par rubrique :
   #     L'equipe .............. violet     #8B5CF6
   #     Nos partenaires ....... bleu roi   #1E3A8A
   #     Publications & etudes . bleu logo  #008AB7
   #     Nos infrastructures ... cyan       #22D3EE
   #     Nous contacter ........ magenta    #D946EF
   #  (magenta est la couleur de « Qui sommes-nous » sur l'accueil ; cette
   #  rubrique EST la page courante, elle n'a pas d'onglet, la teinte etait
   #  donc libre.)
   #  Resultat : la couleur devient l'identite de la rubrique d'une page a
   #  l'autre, au lieu d'etre un effet local. Aucune couleur inventee, ce sont
   #  les cinq jetons du kit.
   #
   #  LE FOND DES PANNEAUX est pose dans les REGLAGES Elementor (premier ton du
   #  degrade), pas ici : il reste modifiable dans l'editeur. Le second ton
   #  (#2D1B69) et le voile sombre sont identiques sur les cinq — c'est ce qui
   #  les tient en famille. Le voile est le plus dense en BAS, la ou le contenu
   #  est cale : le texte blanc reste lisible quelle que soit la teinte, y
   #  compris sur le cyan.
   #
   #  ICI, seulement le report de la couleur dans la colonne de gauche. Sans
   #  lui, on ne voit qu'une couleur a la fois et le systeme est invisible.
   #  Un filet vertical, pose en PSEUDO-ELEMENT : Elementor ecrit l'etat actif
   #  de ses onglets a 0,8,0 (piege deja documente), impossible a battre
   #  raisonnablement — mais il n'ecrit rien sur ::after, ou il n'y a donc
   #  aucune concurrence.
   ############################################################################ */
.dc-hub .e-n-tabs-heading .e-n-tab-title{position:relative;}
.dc-hub .e-n-tabs-heading .e-n-tab-title::after{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--dc-hub-teinte,transparent);opacity:.38;
  transition:opacity .3s var(--dc-ease),width .3s var(--dc-ease);}
.dc-hub .e-n-tabs-heading .e-n-tab-title:hover::after{opacity:.7;}
.dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"]::after{opacity:1;width:4px;}
.dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(1){--dc-hub-teinte:#8B5CF6;}
.dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(2){--dc-hub-teinte:#1E3A8A;}
.dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(3){--dc-hub-teinte:#008AB7;}
.dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(4){--dc-hub-teinte:#22D3EE;}
.dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(5){--dc-hub-teinte:#D946EF;}


/* --- DEUX AUTRES VICTIMES DE LA MEME CASCADE -------------------------------
   Balayage systematique de toutes les pages du site, nuit du 7 au 8 septembre :
   les regles de couleur ecrites `.<classe> .elementor-heading-title` pesent
   0,2,0, comme la reemission du pied de page. Sur cette page, deux de plus
   sortaient en #008AB7 au lieu de leur couleur voulue :
     .dc-pub-year  (« RAPPORT DE VEILLE 2025 ») — voulu gris de texte secondaire
     .dc-map-note  (note du plan d'acces)       — voulu blanc a 85 %
   Meme remede : on redefinit la variable, elle s'herite au lieu de concourir.
   -------------------------------------------------------------------------- */
.elementor-6489 .dc-pub-year{--e-global-color-primary:var(--dc-text-light);}
/* CORRIGE dans la nuit : j'avais suppose le cartouche du plan SOMBRE, il est
   CLAIR (#F1F3F8). Du blanc a 88 % dessus donnait 1,1:1 — illisible, et pire
   que le bleu d'origine. La note prend donc l'encre secondaire.
   Lecon : ne pas deduire la couleur d'un fond de son nom (« map-slot »), la
   mesurer. Trente secondes de sonde contre un defaut livre. */
.elementor-6489 .dc-map-note{--e-global-color-primary:var(--dc-text-light);}


/* --- DEUX CORRECTIONS DE LA NUIT DU 7 AU 8 --------------------------------
   1. REGRESSION QUE J'AI INTRODUITE. En passant les eyebrows de cette page a
      #00688A (correctif AA sur fond blanc), j'ai aussi repeint celui de la
      section SOMBRE : « Ecosysteme » y tombait a 2,77:1. Le socle le veut en
      cyan clair sur fond de nuit, mais ma regle de page pesait plus lourd.
      On rend la main au traitement sombre, en passant devant : 0,5,0.
      Lecon : un correctif de couleur pose a l'echelle d'une page traverse les
      sections qui ont leur propre registre. Toujours regarder ou la classe
      apparait, pas seulement ce qu'elle vaut.
   2. Le texte en italique des coordonnees (« a confirmer ») etait en
      --dc-gray-500 : 3,16:1 sur blanc a 15 px. Passe au gris de texte
      secondaire, mesure a 5,2:1.
   -------------------------------------------------------------------------- */
.elementor-6489 .dc-nuit .dc-eyebrow .elementor-heading-title.elementor-heading-title{
  color:#8CE8FF;}
.elementor-6489 .dc-contact-body em{color:var(--dc-text-light);font-style:italic;}
/* maj 8/9/2026 */

/* [8 septembre 2026] Les deux liens du bloc coordonnees — telephone et e-mail,
   renseignes depuis le site en ligne du client — heritaient du bleu global
   #008AB7, qui mesure 3,95:1 sur blanc, sous le minimum AA de 4,5:1.
   On reprend le #00688A deja retenu pour les petits textes du reste du site
   (6,27:1 sur blanc). */
.elementor-6489 .elementor-element-022caaa a{color:#00688A;}
.elementor-6489 .elementor-element-022caaa a:hover{text-decoration:underline;}

/* ===========================================================================
   LES VISUELS DE LA PAGE À PROPOS — 9 septembre 2026
   Le wireframe V10 prevoit SIX photos sur cette page :
     Photo : L'equipe / Nos partenaires / Publications & etudes /
     Nos infrastructures / Nous contacter  (les cinq panneaux du carrefour)
     + Photo : gouvernance ou partenaires  (la figure « Un partenariat »)
   La page n'en avait AUCUNE : les seules images etaient les deux logos, et les
   six emplacements sortaient en aplat gris. Ils sont desormais remplis.

   Direction artistique : celle de la V5. Meme silhouette que ses cartes —
   ratio 16/10, `cover`, angles droits, et l'agrandissement au survol qui est
   devenu la signature du site (scale 1.05, 0,55 s, meme courbe).
   =========================================================================== */
.dc-carrefour-photo{margin:0 0 18px!important;}
.dc-carrefour-photo img{
  display:block;width:100%;aspect-ratio:16/10;object-fit:cover;
  border-radius:0;transition:transform .55s cubic-bezier(.22,.61,.36,1);}
.dc-carrefour-photo{overflow:hidden;}
.e-n-tabs-content > .e-active:hover .dc-carrefour-photo img{transform:scale(1.05);}

@media (max-width:767px){
  /* En mobile le panneau est deja etroit : la photo garde le meme ratio mais
     on resserre la marge sous elle. */
  .dc-carrefour-photo{margin-bottom:14px!important;}
}

/* ===========================================================================
   À PROPOS — MISE À LA DIRECTION ARTISTIQUE DE LA V5 — 9 septembre 2026
   Consigne de Yassine : « la direction artistique à suivre est celle de la
   homepage v5 ». Mesure des deux heros a mi-hauteur :
       accueil V5 : (40,111,173) (114,111,193) (148,89,181)  — sature
       A propos   : (80,90,112)  (57,64,86)    (51,62,88)    — gris-bleu
   Deux mondes chromatiques differents sur le meme site.

   La STRUCTURE ne bouge pas — le wireframe la fixe : « image de fond, voile
   sombre, fil d'Ariane, etiquette et titre ». C'est le VOILE qui change : le
   gris-bleu uni devient la nappe de la V5, posee sur la photo.
   Ordre des couches : le voile de lisibilite d'abord (donc au-dessus), les
   radiaux ensuite — sinon ils repeindraient le bas ou vit le texte.
   =========================================================================== */
.elementor-6489 .dc-hero-profile::before{
  background-image:
    linear-gradient(0deg, rgba(12,18,48,.93) 0%, rgba(12,18,48,.74) 38%,
                    rgba(12,18,48,.42) 72%, rgba(12,18,48,.34) 100%),
    radial-gradient(66% 74% at 6% 10%, rgba(0,138,183,.72) 0%, rgba(0,138,183,0) 72%),
    radial-gradient(58% 66% at 88% 6%, rgba(228,91,250,.60) 0%, rgba(228,91,250,0) 70%),
    radial-gradient(62% 70% at 62% 92%, rgba(139,92,246,.52) 0%, rgba(139,92,246,0) 74%),
    radial-gradient(50% 58% at 34% 4%, rgba(46,85,218,.48) 0%, rgba(46,85,218,0) 76%)
    !important;
}

/* ===========================================================================
   L'EMPLACEMENT DE LA CARTE
   C'est le dernier aplat gris de la page, maintenant que les six visuels du
   wireframe sont en place. Il se lit donc comme un trou plutot que comme une
   reserve. On lui donne la nappe de marque, comme aux couvertures de rapports :
   la mention reste, mais elle se lit comme un emplacement dessine et non comme
   une image manquante. La carte reelle prendra sa place.
   =========================================================================== */
.elementor-6489 .dc-map-slot{
  background-color:#141033!important;
  background-image:
    radial-gradient(70% 80% at 12% 14%, rgba(0,138,183,.62) 0%, rgba(0,138,183,0) 74%),
    radial-gradient(66% 74% at 88% 20%, rgba(139,92,246,.52) 0%, rgba(139,92,246,0) 76%),
    radial-gradient(60% 66% at 60% 96%, rgba(228,91,250,.34) 0%, rgba(228,91,250,0) 78%)
    !important;}
.elementor-6489 .dc-map-slot .dc-map-note,
.elementor-6489 .dc-map-slot .dc-map-note *{
  color:rgba(255,255,255,.88)!important;}

/* ===========================================================================
   A PROPOS — PASSE DESKTOP — 9 septembre 2026
   =========================================================================== */

/* --- 1. Le rail du carrefour flottait dans un cadre vide -------------------
   Mesure : la colonne de gauche fait 330x717, les cinq entrees n'en occupent
   que 353 (5 x 71), centrees. Restaient 180 px de vide en haut ET en bas,
   a l'interieur du cadre bordé — ça se lit comme un trou, pas comme une marge.
   On fait remplir les entrees. Et on rogne la photo du panneau de 16/10 a
   16/9 pour que la hauteur a repartir reste raisonnable. */
.elementor-6489 .dc-carrefour-photo img{aspect-ratio:16/9!important;}
.elementor-6489 .dc-hub .e-n-tabs .e-n-tabs-heading{
  justify-content:stretch!important;}
.elementor-6489 .dc-hub .e-n-tabs .e-n-tabs-heading .e-n-tab-title{
  flex:1 1 0!important;align-items:center!important;}

/* --- 2. Les intitules de groupes de l'ecosysteme ---------------------------
   « A l'initiative de », « Avec le soutien de », « Nos partenaires » etaient
   en rgba(255,255,255,.62) sur la nappe nuit : 3,16:1 mesure, la norme en
   demande 4,5 pour du 14 px. C'est le seul echec de contraste reel de la page.
   On les passe a .88 — 9,3:1 sur le meme fond — sans toucher a la classe
   .dc-eco-title elle-meme, qui sert aussi au titre « Coordonnees » sur fond
   blanc, ou elle est deja conforme. */
.elementor-6489 .elementor-element-676a3fb .elementor-heading-title,
.elementor-6489 .elementor-element-4223535 .elementor-heading-title,
.elementor-6489 .elementor-element-4965957 .elementor-heading-title{
  color:rgba(255,255,255,.88)!important;}

/* --- 3. La carte « Coordonnees » -------------------------------------------
   Le conteneur etait en align-items:center : ses trois blocs, de largeurs
   157 / 216 / 602, se centraient chacun de leur cote. Le titre ne tombait donc
   pas sur la meme verticale que l'adresse, ni l'adresse sur celle des boutons.
   Le texte etait deja aligne a gauche a l'interieur de chaque bloc — c'est le
   conteneur qui les decalait. */
.elementor-6489 .dc-contact-card{align-items:flex-start!important;}

/* ===========================================================================
   A PROPOS — TABLETTE — 9 septembre 2026
   Releve a 768 et a 1024. Trois choses cassaient, toutes dans la meme famille :
   une grille pensee pour 1440 tenue de force sur une largeur qui ne la porte
   plus.
   =========================================================================== */

/* --- 1. Le rail du carrefour --------------------------------------------- */
/* La repartition des cinq entrees sur toute la hauteur n'a de sens qu'en
   colonne, face au panneau. Sous 1025 px Elementor empile le rail et le
   panneau en accordeon : chaque entree doit alors reprendre sa hauteur
   naturelle, sinon flex:1 les etire dans le vide. */
@media (max-width:1024px){
  .elementor-6489 .dc-hub .e-n-tabs .e-n-tabs-heading{justify-content:flex-start!important;}
  .elementor-6489 .dc-hub .e-n-tabs .e-n-tabs-heading .e-n-tab-title{flex:0 0 auto!important;}
  .elementor-6489 .dc-carrefour-photo img{aspect-ratio:16/10!important;}
}

/* --- 2. Les deux blocs a deux colonnes ------------------------------------
   « Un partenariat public-prive » et « Adresse et coordonnees » gardaient
   leurs deux colonnes jusqu'a 768 px. Mesure a 768 : la colonne de texte
   tombait a 355 px — le titre se coupait en « public- / prive », « espaces
   professionnels » passait sur deux lignes dans sa case, et la colonne photo
   laissait 290 px de blanc sous l'image. On empile sous 901 px.
   Entre 901 et 1200, on garde les deux colonnes mais la photo prend la
   hauteur de la colonne au lieu de flotter en haut. */
@media (max-width:900px){
  .elementor-6489 .dc-two-col{flex-direction:column!important;}
  .elementor-6489 .dc-two-col > .e-con:first-child,
  .elementor-6489 .dc-two-col > .e-con:last-child{flex:none!important;width:100%!important;}
  .elementor-6489 .dc-fig-43 img{width:100%!important;aspect-ratio:16/9!important;object-fit:cover!important;}
  .elementor-6489 .dc-map-slot{aspect-ratio:16/9!important;}
}
@media (min-width:901px) and (max-width:1200px){
  /* La colonne photo restait 130 px plus courte que la colonne de texte.
     Etirer l'image ne marche pas : height:100% se resout contre le conteneur
     du widget Elementor, pas contre la colonne. On regle donc la hauteur par
     le rapport — a cette largeur la colonne fait 378 px pour un texte de
     ~372 px, soit un carre. */
  .elementor-6489 .dc-fig-43 img{aspect-ratio:1/1!important;object-fit:cover!important;}
}

/* Les rangees de pastilles de l'ecosysteme sont centrees sous des intitules
   centres tant qu'elles tiennent sur une ligne. Des qu'elles passent a la
   ligne — a 768, « A l'initiative de » et « Nos partenaires » — la derniere
   pastille se collait a gauche, seule. Un flex-start invisible au format large. */
/* [9 septembre, fin de journee] Cette regle centrait les rangees de pastilles
   parce que les intitules au-dessus etaient centres. Ils sont passes au fer a
   gauche, comme le wireframe le demande — le centrage n'a plus lieu d'etre, et
   le probleme de la derniere pastille orpheline disparait de lui-meme : une
   rangee alignee a gauche n'a pas d'orphelin.
   .ap-themes{display:flex;flex-wrap:wrap;gap:.5rem} — aucun centrage. */
.elementor-6489 .dc-client-list{justify-content:flex-start!important;}

/* ===========================================================================
   A PROPOS — MOBILE — 9 septembre 2026
   Deux details releves a 390.
   =========================================================================== */
@media (max-width:480px){
  /* Les questions de la FAQ cassaient en laissant le « ? » seul sur la
     deuxieme ligne. balance repartit les mots sur les lignes disponibles. */
  .elementor-6489 .elementor-accordion .elementor-tab-title,
  .elementor-6489 .e-n-accordion-item-title{text-wrap:balance;}

  /* Les deux boutons de la carte coordonnees s'empilaient a des largeurs
     differentes. Meme traitement que le pave CTA de la page d'accueil :
     pleine largeur, l'un sous l'autre. */
  .elementor-6489 .dc-contact-card .e-con .elementor-widget-button,
  .elementor-6489 .dc-contact-card .e-con .elementor-button{width:100%!important;}
  .elementor-6489 .dc-contact-card .e-con{width:100%!important;}
}

/* ===========================================================================
   A PROPOS — LE CARREFOUR « NAVIGUER », REPRIS SUR LE WIREFRAME
   9 septembre 2026 — retour de Yassine, section par section.
   Trois reproches, tous fondes, et je les prends dans l'ordre.
   =========================================================================== */

/* --- 1. LES PICTOS -------------------------------------------------------
   Ils etaient en Font Awesome plein (fas fa-users, fa-share-alt, fa-file-alt,
   fa-building, fa-envelope) — le style que Yassine a deja refuse une fois.
   Le wireframe emploie cinq traces au trait, stroke 1.8, en 22 px. Ils sont
   reproduits ici a l'identique et poses en masque : la couleur du picto est
   alors un background-color, donc elle suit la teinte de la rubrique au
   survol sans qu'on ait a toucher au systeme d'icones d'Elementor.
   On neutralise le glyphe d'origine plutot que de le retirer des reglages :
   il reste dans l'editeur pour qui rouvre la page. */
.elementor-6489 .dc-hub .e-n-tab-icon > *{display:none!important;}
.elementor-6489 .dc-hub .e-n-tab-icon{position:relative;}
.elementor-6489 .dc-hub .e-n-tab-icon::after{
  content:"";position:absolute;inset:0;margin:auto;width:22px;height:22px;
  background-color:currentColor;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;
  transition:background-color .3s var(--dc-ease,ease);}
  .elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(1) .e-n-tab-icon::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17%2021v-2a4%204%200%200%200-4-4H5a4%204%200%200%200-4%204v2%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17%2021v-2a4%204%200%200%200-4-4H5a4%204%200%200%200-4%204v2%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22%2F%3E%3C%2Fsvg%3E");}
  .elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(2) .e-n-tab-icon::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%2218%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M9%206h6M6%209v6a3%203%200%200%200%203%203h6%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%2218%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M9%206h6M6%209v6a3%203%200%200%200%203%203h6%22%2F%3E%3C%2Fsvg%3E");}
  .elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(3) .e-n-tab-icon::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%22%2F%3E%3Cpath%20d%3D%22M14%202v6h6M9%2013h6M9%2017h6%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%22%2F%3E%3Cpath%20d%3D%22M14%202v6h6M9%2013h6M9%2017h6%22%2F%3E%3C%2Fsvg%3E");}
  .elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(4) .e-n-tab-icon::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2021h18M5%2021V7l8-4v18M19%2021V11l-6-4%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2021h18M5%2021V7l8-4v18M19%2021V11l-6-4%22%2F%3E%3C%2Fsvg%3E");}
  .elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(5) .e-n-tab-icon::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%2220%22%20height%3D%2216%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22m22%207-10%205L2%207%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%2220%22%20height%3D%2216%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22m22%207-10%205L2%207%22%2F%3E%3C%2Fsvg%3E");}

/* --- 2. LA COULEUR DE L'ONGLET ------------------------------------------
   « L'icone ne devait pas devenir de la meme couleur que le petit trait ? Ou
   alors avoir tout l'onglet de cette couleur. » Le wireframe tranche : il
   remplit l'onglet actif en entier (.ap-hub-tab.active{background:...}) et
   n'a pas de filet lateral. On garde l'identite de couleur par rubrique — que
   Noemie a validee sur l'accueil — mais on l'exprime par le remplissage.
   Les teintes de fond ne sont pas les teintes d'accent : #22D3EE et #D946EF
   ne portent pas du texte blanc (2,0:1 et 3,3:1). Chaque rubrique a donc deux
   valeurs, un accent clair pour le picto et un fond sombre pour l'actif. */
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(1){--dc-hub-teinte:#8B5CF6;--dc-hub-fond:#6D28D9;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(2){--dc-hub-teinte:#2E55DA;--dc-hub-fond:#1E3A8A;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(3){--dc-hub-teinte:#008AB7;--dc-hub-fond:#00688A;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(4){--dc-hub-teinte:#0E9BB8;--dc-hub-fond:#0E7490;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(5){--dc-hub-teinte:#C026D3;--dc-hub-fond:#A21CAF;}

/* Le filet de 4 px disparait : c'etait un rappel de couleur timide, et c'est
   exactement le genre de detail que Hamza a qualifie de « vibe code ». */
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title::after{display:none!important;}

/* Au repos : picto a la teinte de la rubrique, fond blanc. */
.elementor-6489 .dc-hub .e-n-tab-icon::after{background-color:var(--dc-hub-teinte)!important;}

/* Au survol : la rubrique s'annonce par un voile de sa propre couleur. */
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:hover{
  background-color:color-mix(in srgb, var(--dc-hub-teinte) 9%, #fff)!important;}

/* A l'actif : l'onglet entier prend la couleur, comme au wireframe. */
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"],
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"]:hover{
  background-color:var(--dc-hub-fond)!important;}
.elementor-6489 .dc-hub .e-n-tab-title[aria-selected="true"] .e-n-tab-title-text b{color:#fff!important;}
/* Le sous-titre de l'onglet actif : .78 ne passait pas sur les trois fonds
   les plus clairs (cyan 4,48 / teal 3,92 / magenta 4,36 pour du 12 px, qui en
   demande 4,5). A .90, le plus faible est a 4,67. */
.elementor-6489 .dc-hub .e-n-tab-title[aria-selected="true"] .e-n-tab-title-text small{color:rgba(255,255,255,.90)!important;}
.elementor-6489 .dc-hub .e-n-tab-title[aria-selected="true"] .e-n-tab-icon::after{background-color:#fff!important;}

/* --- 3. LE PANNEAU : LA PHOTO EN FOND, PAS AU-DESSUS DU TEXTE -------------
   C'est le reproche le plus juste, et le wireframe est sans ambiguite :
     .ap-hub-panel-img{position:absolute;inset:0}
     .ap-hub-panel-overlay{background:linear-gradient(to top, .85 → .04)}
     .ap-hub-panel-body{position:absolute;bottom:0}
   La photo occupe tout le panneau, un degrade sombre remonte du bas, le texte
   se pose dessus. J'avais fait l'inverse : un panneau violet avec une photo
   encastree en haut. La correspondance photo/onglet ne pouvait pas se lire a
   cette taille — elle se lira en plein cadre.
   Le degrade n'est pas le gris neutre du wireframe (#0F1016, convention de
   maquette) mais la nuit de marque, teintee de la couleur de la rubrique :
   l'identite de couleur survit au changement de composition. */
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con{
  position:relative!important;overflow:hidden!important;
  min-height:440px!important;justify-content:flex-end!important;
  padding:0!important;background-image:none!important;background-color:#141033!important;}

/* La photo quitte le flux et devient le fond. */
.elementor-6489 .dc-hub .dc-carrefour-photo{
  position:absolute!important;inset:0!important;width:100%!important;
  padding:0!important;margin:0!important;z-index:0!important;}
.elementor-6489 .dc-hub .dc-carrefour-photo .elementor-widget-container,
.elementor-6489 .dc-hub .dc-carrefour-photo figure,
.elementor-6489 .dc-hub .dc-carrefour-photo a{height:100%!important;display:block!important;}
.elementor-6489 .dc-hub .dc-carrefour-photo img{
  width:100%!important;height:100%!important;aspect-ratio:auto!important;
  object-fit:cover!important;border-radius:0!important;}

/* Le voile. Premiere couche = au-dessus : la nuit de marque, dense en bas ou
   vit le texte, quasi nulle en haut ou vit l'image. Deuxieme couche = la
   teinte de la rubrique, en bas seulement. */
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  /* Ordre des couches : la PREMIERE est au-dessus. La teinte de rubrique
     etait ecrite en seconde, donc sous un voile nuit a 90 % — les cinq
     panneaux sortaient identiques et l'identite de couleur disparaissait.
     Elle passe devant, le voile derriere. */
  background-image:
    linear-gradient(to top, var(--dc-panneau-teinte,transparent) 0%,
                    transparent 62%),
    linear-gradient(to top, rgba(12,18,48,.88) 0%, rgba(12,18,48,.82) 28%,
                    rgba(12,18,48,.42) 62%, rgba(12,18,48,.05) 100%);}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con:nth-child(1){--dc-panneau-teinte:rgba(139,92,246,.40);}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con:nth-child(2){--dc-panneau-teinte:rgba(46,85,218,.40);}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con:nth-child(3){--dc-panneau-teinte:rgba(0,138,183,.40);}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con:nth-child(4){--dc-panneau-teinte:rgba(14,155,184,.40);}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con:nth-child(5){--dc-panneau-teinte:rgba(192,38,211,.40);}

/* Le texte se pose sur le voile, cale en bas. */
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con > *:not(.dc-carrefour-photo){
  position:relative!important;z-index:2!important;
  margin-left:36px!important;margin-right:36px!important;max-width:calc(100% - 72px)!important;}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con > .dc-hub-panel-title{margin-top:auto!important;}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con > *:last-child{margin-bottom:36px!important;}

/* Le fil d'Ariane pointait vers « / », c'est-a-dire l'accueil V1 : cliquer
   « Accueil » depuis une page V5 renvoyait a l'ancienne maquette. Tant que la
   V5 n'est pas a la racine, le lien est retire — le repere reste, la fausse
   piste disparait. */
.elementor-6489 .dc-fil-inactif,
.elementor-1732 .dc-fil-inactif{text-decoration:none;cursor:default;}

/* Les marges du panneau du carrefour, taillees pour 848 px de large, laissent
   trop peu de texte a 390. */
@media (max-width:480px){
  .elementor-6489 .dc-hub .e-n-tabs-content > .e-con > *:not(.dc-carrefour-photo){
    margin-left:22px!important;margin-right:22px!important;
    max-width:calc(100% - 44px)!important;}
  .elementor-6489 .dc-hub .e-n-tabs-content > .e-con > *:last-child{margin-bottom:24px!important;}
  .elementor-6489 .dc-hub .e-n-tabs-content > .e-con{min-height:400px!important;}
}
/* ===========================================================================
   CARREFOUR — 3 CORRECTIONS APRES RELECTURE — 9 septembre 2026
   =========================================================================== */

/* --- A. LES DEUX CYANS QUI SE CONFONDAIENT ------------------------------
   « Publications & etudes » et « Nos infrastructures » sortaient de la meme
   couleur. C'est vrai, et la cause n'est pas celle qu'on croit : la charte
   contient deux cyans voisins (#008AB7 bleu logo, 194°, et #22D3EE cyan PEPS,
   188°). L'accueil validee les distingue par la VALEUR — un cyan profond
   contre un cyan vif. En assombrissant le second a #0E9BB8 pour rendre le
   picto lisible, j'avais aplati les deux sur un meme demi-ton.

   Deux gestes plutot qu'un :
   1. Le picto ne porte plus l'identite. Au repos il est a l'encre, comme au
      wireframe ou tous les traces sont en currentColor. Cinq pictos de cinq
      couleurs dans un rail de 330 px, c'etait mon ajout, et c'est precisement
      lui qui donnait l'impression de doublon. La couleur revient au survol.
   2. Le panneau retrouve les valeurs de l'accueil : cyan profond pour les
      publications, cyan vif pour les infrastructures. La difference se voit. */
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(1){--dc-hub-teinte:#8B5CF6;--dc-hub-fond:#6D28D9;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(2){--dc-hub-teinte:#2E55DA;--dc-hub-fond:#1E3A8A;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(3){--dc-hub-teinte:#008AB7;--dc-hub-fond:#00688A;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(4){--dc-hub-teinte:#0E7490;--dc-hub-fond:#0E7490;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(5){--dc-hub-teinte:#C026D3;--dc-hub-fond:#A21CAF;}

.elementor-6489 .dc-hub .e-n-tab-icon::after{background-color:#1A1D2B!important;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:hover .e-n-tab-icon::after{
  background-color:var(--dc-hub-teinte)!important;}
.elementor-6489 .dc-hub .e-n-tab-title[aria-selected="true"] .e-n-tab-icon::after{
  background-color:#fff!important;}

/* Cyan vif pour les infrastructures : c'est la valeur de l'accueil validee. */
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con:nth-child(4){--dc-panneau-teinte:rgba(34,211,238,.40);}

/* --- B. LA FLECHE -------------------------------------------------------
   Elle n'etait pas absente par choix : le wireframe la prevoit
   (.ap-hub-tab-arr, opacity 0 au repos, 1 sur l'onglet actif, avec un
   glissement de 4 px) et je ne l'avais pas reportee. C'est une affordance,
   pas un ornement : elle dit que l'entree mene quelque part.
   Dessinee en bordures plutot qu'en glyphe — pas de police a charger, et elle
   herite de la couleur du texte. */
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title::after{
  display:block!important;content:""!important;
  /* left:auto est indispensable : la regle du filet lateral, plus haut,
     pose left:0 sur le meme ::after. Avec left ET right definis et une
     largeur fixe, c'est left qui l'emporte — la fleche se collait a
     gauche de l'onglet. */
  position:absolute!important;left:auto!important;right:20px!important;top:50%!important;
  width:7px!important;height:7px!important;
  border:0!important;border-right:2px solid currentColor!important;
  border-bottom:2px solid currentColor!important;
  background:none!important;border-radius:0!important;
  transform:translateY(-50%) translateX(-5px) rotate(-45deg)!important;
  opacity:0;color:var(--dc-hub-teinte);
  transition:opacity .3s ease, transform .3s cubic-bezier(.22,.61,.36,1);}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:hover::after{
  opacity:.85;transform:translateY(-50%) translateX(0) rotate(-45deg)!important;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"]::after{
  opacity:1;color:#fff;transform:translateY(-50%) translateX(0) rotate(-45deg)!important;}
/* Le texte s'arrete avant la fleche. */
.elementor-6489 .dc-hub .e-n-tabs .e-n-tab-title{padding-right:44px!important;}

/* --- C. LA TRANSITION ENTRE ONGLETS -------------------------------------
   Les deux composants trouves sur 21st.dev sont du React sur Framer Motion :
   inutilisables tels quels ici. Mais le principe est le bon, et il tient en
   CSS sans une ligne de JS. Elementor ajoute .e-active au panneau ouvert ;
   une animation posee dessus rejoue donc a chaque changement d'onglet.

   Trois mouvements, dans cet ordre :
   - la photo se pose, de 1,06 a 1 en 900 ms — le mouvement le plus lent, il
     donne la profondeur sans qu'on le remarque ;
   - le voile monte en opacite en 450 ms ;
   - titre, texte et bouton entrent en decale de 60 ms, avec 14 px de montee.
   Le decalage est ce qui fait la difference entre « ca apparait » et « ca
   s'installe ». */
@keyframes dc-hub-pose{from{transform:scale(1.06);}to{transform:scale(1);}}
@keyframes dc-hub-voile{from{opacity:0;}to{opacity:1;}}
@keyframes dc-hub-monte{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}

.elementor-6489 .dc-hub .e-n-tabs-content > .e-con.e-active .dc-carrefour-photo img{
  animation:dc-hub-pose .9s cubic-bezier(.22,.61,.36,1) both;}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con.e-active::before{
  animation:dc-hub-voile .45s ease both;}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con.e-active > .dc-hub-panel-title{
  animation:dc-hub-monte .5s cubic-bezier(.22,.61,.36,1) .06s both;}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con.e-active > .dc-hub-panel-text{
  animation:dc-hub-monte .5s cubic-bezier(.22,.61,.36,1) .12s both;}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con.e-active > .dc-btn-white{
  animation:dc-hub-monte .5s cubic-bezier(.22,.61,.36,1) .18s both;}

/* Le rail suit le meme temps que le panneau. */
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title{
  transition:background-color .32s ease!important;}

/* Quelqu'un qui a demande moins de mouvement a son systeme n'en recoit aucun. */
@media (prefers-reduced-motion:reduce){
  .elementor-6489 .dc-hub .e-n-tabs-content > .e-con.e-active .dc-carrefour-photo img,
  .elementor-6489 .dc-hub .e-n-tabs-content > .e-con.e-active::before,
  .elementor-6489 .dc-hub .e-n-tabs-content > .e-con.e-active > *{animation:none!important;}
}

/* --- D. DEUX CORRECTIONS APRES RELECTURE, 9 septembre ------------------- */

/* Le picto de l'onglet ACTIF repassait a la couleur de la rubrique des qu'on
   le survolait. Question de specificite, pas d'intention : la regle de survol
   compte six classes (.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title
   :hover .e-n-tab-icon), celle de l'onglet actif cinq. Le survol gagnait.
   On ajoute l'etat explicite « actif ET survole ». */
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"]:hover .e-n-tab-icon::after,
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"]:focus .e-n-tab-icon::after{
  background-color:#fff!important;}

/* La fleche des cinq boutons du carrefour existait bien dans le HTML — un
   SVG de 16 px, affiche, opacite 1 — mais son `fill` etait blanc sur un
   bouton blanc, alors que le libelle est a l'encre. Le socle force le blanc
   pour les boutons poses sur fond sombre ; ici le bouton est clair. La fleche
   suit desormais la couleur du texte, comme sur les autres boutons du site.
   Le wireframe la prevoit sur ce bouton (.ap-hub-panel-cta porte un SVG). */
.elementor-6489 .dc-hub .dc-btn-white .elementor-button-icon svg,
.elementor-6489 .dc-hub .dc-btn-white .elementor-button-icon svg *{
  fill:currentColor!important;}

/* --- E. RELECTURE DU 9 SEPTEMBRE, SUITE -------------------------------- */

/* E1. Les pictos repassent en couleur au repos, sur demande de Yassine.
   Mais la raison qui m'avait fait les mettre a l'encre reste valable : les
   rubriques 3 et 4 portaient deux cyans a 1° d'ecart de teinte (#008AB7 et
   #0E7490), indistinguables cote a cote. La rubrique « Nos infrastructures »
   bascule donc en TEAL — #0E8F7E, 172°, soit 22° d'ecart, et 4,00:1 sur blanc
   la ou la norme demande 3 pour un element d'interface. Le panneau suit :
   une rubrique porte une seule couleur, du picto au voile. */
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(4){--dc-hub-teinte:#0E8F7E;--dc-hub-fond:#0F766E;}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con:nth-child(4){--dc-panneau-teinte:rgba(20,184,166,.42);}

.elementor-6489 .dc-hub .e-n-tab-icon::after{background-color:var(--dc-hub-teinte)!important;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"] .e-n-tab-icon::after,
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"]:hover .e-n-tab-icon::after,
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"]:focus .e-n-tab-icon::after{
  background-color:#fff!important;}

/* E2. La fleche du bouton etait trop grosse et trop pres, et les chiffres le
   disent : 16 px de fleche a 5 px du libelle, quand tout le reste de la page
   est a 13 px et 8 a 10 px d'ecart. C'etait la plus grosse fleche de la page
   avec le plus petit ecart. On l'aligne sur dc-link-boxed : 13 / 10.
   Portee limitee a cette page : dc-btn-white et dc-btn-outline-white sont des
   classes du socle, et l'accueil est figee. A reporter dans le socle le jour
   ou elle se rouvre. */
.elementor-6489 .dc-btn-white .elementor-button-icon svg,
.elementor-6489 .dc-btn-outline-white .elementor-button-icon svg{
  width:13px!important;height:13px!important;}
.elementor-6489 .dc-btn-white .elementor-button-content-wrapper,
.elementor-6489 .dc-btn-outline-white .elementor-button-content-wrapper{gap:10px!important;}

/* E3. Convention de fleche appliquee a la page : un bouton qui MENE quelque
   part la porte, un bouton qui AGIT sur place ne la porte pas, un
   telechargement porte une fleche vers le bas. « Voir le plan d'acces » et
   « Nous contacter » de la carte coordonnees viennent de la recevoir.
   Le pave CTA de bas de page reste sans fleche : c'est un composant a lui,
   identique sur toutes les pages y compris l'accueil validee — lui donner des
   fleches ici ferait diverger les deux. */
.elementor-6489 .dc-btn-primary .elementor-button-icon svg,
.elementor-6489 .dc-btn-primary .elementor-button-icon svg *{fill:currentColor!important;}
.elementor-6489 .dc-btn-primary .elementor-button-icon svg{width:13px!important;height:13px!important;}
.elementor-6489 .dc-btn-primary .elementor-button-content-wrapper{gap:10px!important;}

/* --- F. LES COULEURS ALIGNEES SUR L'ACCUEIL — 9 septembre 2026 ----------
   Releve des jetons de la section « A propos » de l'accueil V5 (post 3574,
   selecteurs [data-id] du carrefour) :
       Qui sommes-nous ...... magenta   #D946EF
       L'equipe ............. violet    #8B5CF6
       Nos partenaires ...... bleu roi  #1E3A8A
       Publications & etudes  bleu logo #008AB7
       Nos infrastructures .. cyan      #22D3EE

   Ce ne sont donc PAS des couleurs plus eloignees que les miennes : ce sont
   exactement les deux memes cyans, sur exactement les deux memes rubriques.
   S'ils se distinguent mieux sur l'accueil, c'est parce que la pastille y est
   un aplat decoratif, sans contrainte de lisibilite : #22D3EE y reste vif.
   Ici, la meme couleur devait porter un picto lisible — je l'avais assombrie,
   et c'est cet assombrissement, pas le jeton, qui avait aplati la paire.

   La regle de coherence l'emporte : une rubrique garde sa couleur d'une page
   a l'autre. On reprend les jetons de l'accueil a l'identique, le teal
   disparait. Et « Nous contacter », qui n'existe pas sur l'accueil, prend le
   magenta laisse libre par « Qui sommes-nous ». */
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(1){--dc-hub-teinte:#8B5CF6;--dc-hub-fond:#6D28D9;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(2){--dc-hub-teinte:#1E3A8A;--dc-hub-fond:#1E3A8A;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(3){--dc-hub-teinte:#008AB7;--dc-hub-fond:#00688A;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(4){--dc-hub-teinte:#22D3EE;--dc-hub-fond:#0E7490;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(5){--dc-hub-teinte:#D946EF;--dc-hub-fond:#A21CAF;}

.elementor-6489 .dc-hub .e-n-tabs-content > .e-con:nth-child(1){--dc-panneau-teinte:rgba(139,92,246,.42);}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con:nth-child(2){--dc-panneau-teinte:rgba(30,58,138,.48);}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con:nth-child(3){--dc-panneau-teinte:rgba(0,138,183,.42);}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con:nth-child(4){--dc-panneau-teinte:rgba(34,211,238,.40);}
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con:nth-child(5){--dc-panneau-teinte:rgba(217,70,239,.40);}

/* Consequence directe, et elle n'est pas negociable : #22D3EE mesure 1,9:1 sur
   blanc, la norme en demande 3 pour un element d'interface. Le picto ne peut
   donc pas porter ce jeton au repos. Il revient a l'encre, et la couleur
   apparait au survol et sur l'onglet actif — la ou le fond la porte.
   C'est la charte qui tranche, pas une preference. */
.elementor-6489 .dc-hub .e-n-tab-icon::after{background-color:#1A1D2B!important;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:hover .e-n-tab-icon::after{
  background-color:var(--dc-hub-teinte)!important;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"] .e-n-tab-icon::after,
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"]:hover .e-n-tab-icon::after,
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"]:focus .e-n-tab-icon::after{
  background-color:#fff!important;}
/* Le cyan vif ne porte pas non plus une fleche lisible au survol. */
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:nth-child(4):hover::after{color:#0E7490;}

/* Le min-height du heros est en vh : sur une fenetre haute il depasse ce que
   le contenu demande, et comme le contenu est cale en bas (flex-end), le
   surplus s'ouvre EN HAUT. Mesure : 471 px de contenu, mais 46vh vaut 497 sur
   une fenetre de 1080 — 26 px de vide, et davantage sur un ecran plus haut.
   On plafonne. Le vh reste utile comme plancher sur les petites fenetres. */
.dc-hero-profile{min-height:min(46vh,480px)!important;}

/* --- G. LES PICTOS REPASSENT EN COULEUR — decision de Yassine ------------
   Les deux jetons sont bien deux couleurs distinctes de la charte, reprises
   telles quelles de l'accueil : #008AB7 (bleu logo) pour « Publications &
   etudes », #22D3EE (cyan PEPS) pour « Nos infrastructures ».

   A DIRE FRANCHEMENT : #22D3EE mesure 1,9:1 sur blanc. Ce picto sera pale.
   Ce n'est pas une non-conformite — le picto double son libelle, il est donc
   decoratif au sens de la norme, et c'est exactement l'arbitrage deja pris
   sur l'accueil pour les pastilles (« la pastille est decorative : le ratio
   de contraste WCAG ne s'y applique pas »). Mais c'est un choix de lisibilite,
   pas un acquis. */
.elementor-6489 .dc-hub .e-n-tab-icon::after{background-color:var(--dc-hub-teinte)!important;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:hover .e-n-tab-icon::after{
  background-color:var(--dc-hub-teinte)!important;}
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"] .e-n-tab-icon::after,
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"]:hover .e-n-tab-icon::after,
.elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"]:focus .e-n-tab-icon::after{
  background-color:#fff!important;}
/* ===========================================================================
   « UN PARTENARIAT PUBLIC-PRIVE » ET LE BANDEAU EQUIPE
   Repris sur le wireframe — 9 septembre 2026, relecture de Yassine.
   Trois reproches, tous verifies dans le wireframe V10.
   =========================================================================== */

/* --- 1. L'ALIGNEMENT ------------------------------------------------------
   Le wireframe met toute la colonne de droite au fer a gauche : `.ap-two` est
   une grille de deux colonnes et ni `.label`, ni `.ap-h2`, ni `p`, ni
   `.ap-quote` ne portent de text-align. Chez nous l'etiquette, le titre et la
   citation etaient centres. Ce centrage venait du gabarit de section, pas d'une
   decision : sur une colonne de 640 px a cote d'une photo, il casse le bord
   gauche que la photo etablit. */
.elementor-6489 .dc-two-body{align-items:flex-start!important;text-align:left!important;}
.elementor-6489 .dc-two-body > *{width:100%!important;max-width:100%!important;}
.elementor-6489 .dc-two-body .dc-eyebrow .elementor-heading-title,
.elementor-6489 .dc-two-body .dc-two-title .elementor-heading-title,
.elementor-6489 .dc-two-body .dc-lead,
.elementor-6489 .dc-two-body .dc-lead p,
.elementor-6489 .dc-two-body .dc-quote,
.elementor-6489 .dc-two-body .dc-quote p{text-align:left!important;}

/* --- 2. LES CHIFFRES N'ETAIENT PAS CENSES ETRE ENCADRES --------------------
   Le wireframe :
       .ap-stats{display:flex;gap:2.5rem;padding:1.5rem 0 0;
                 border-top:1px solid var(--border);margin-top:1.5rem;}
   Un filet au-dessus, rien autour. Chez nous ils heritaient de
   `.dc-hairline-grid`, le composant a cases du socle — celui des quatre
   espaces d'Auderghem, ou il est a sa place parce qu'il y a quatre items
   comparables. Ici il n'y en a que deux, et les encadrer leur donne un poids
   de tableau qu'ils n'ont pas : ce sont deux chiffres a l'appui d'un texte. */
.elementor-6489 .dc-two-body .dc-stats{
  background:transparent!important;background-color:transparent!important;
  border:0!important;border-top:1px solid var(--dc-gray-200)!important;
  border-radius:0!important;overflow:visible!important;
  gap:40px!important;padding:24px 0 0!important;margin-top:24px!important;
  justify-content:flex-start!important;}
.elementor-6489 .dc-two-body .dc-stats .dc-stat{
  background:transparent!important;border:0!important;padding:0!important;
  flex:0 0 auto!important;width:auto!important;align-items:flex-start!important;
  text-align:left!important;}
.elementor-6489 .dc-two-body .dc-stats .dc-stat-num .elementor-heading-title{
  font-size:22px!important;line-height:1!important;text-align:left!important;}
.elementor-6489 .dc-two-body .dc-stats .dc-stat-label .elementor-heading-title{
  font-size:13px!important;font-weight:400!important;margin-top:4px!important;
  color:var(--dc-text-light)!important;text-align:left!important;}

/* --- 3. LE BANDEAU EQUIPE -------------------------------------------------
   Le wireframe :
       .ap-banner{position:relative;height:300px;overflow:hidden}
       .ap-banner-img{position:absolute;inset:0}  → photo plein cadre
       .ap-banner-scrim{background:linear-gradient(90deg,
           rgba(255,255,255,0) 32%, rgba(255,255,255,.55) 48%,
           rgba(255,255,255,.96) 60%)}            → fondu vers la DROITE
       .ap-banner-content{top:0;right:0;bottom:0;width:46%}
   Soit exactement ce que Yassine decrit. Nous avions un aplat bleu nuit avec
   le texte a gauche : ni la photo, ni le fondu, ni le cote.

   Le fondu part vers le blanc, comme au wireframe, et pas vers la nuit : le
   panneau du carrefour juste au-dessus est deja une photo sous un voile
   sombre. Deux fois le meme traitement a trois cents pixels d'intervalle
   aurait aplati la page. Ici la photo s'eclaircit, le texte passe a l'encre,
   et la section reste claire — c'est un contrepoint, pas une repetition.

   Photo : « dc-apropos-atelier » (2376), cinq personnes debout. Le groupe est
   cadre a gauche, donc il reste dans la zone non voilee. */
/* [20/10] La photo est desormais le FOND NATIF du conteneur (Elementor > Style >
   Arriere-plan, position 22 % / 15 %). Le fondu blanc, lui, est un ::after pose
   au-dessus de la photo et sous le texte : il ne se regle pas, la photo oui. */
.elementor-6489 .dc-media-card{
  background-color:#F8F9FC!important;
  position:relative;
  /* [11/9] Le cadrage descend de 42 % a 15 %. La carte fait 1312 x 340 pour une
     photo de 1024 x 683 : en `cover`, 535 px sont perdus, et a 42 % on en jetait
     225 par le HAUT — soit exactement les tetes. Les trois personnes etaient
     coupees au menton. A 15 % elles passent entieres avec un peu d'air.
     C'est ICI que vit cette photo, et pas dans Elementor : le bloc n'a aucun
     reglage de fond cote editeur, d'ou l'impossibilite de la trouver dans
     « arriere-plan » ou « superposition d'arriere-plan ». */
  min-height:340px!important;
  justify-content:center!important;
  align-items:flex-start!important;
  padding:40px 56px 40px 54%!important;
  border:1px solid var(--dc-gray-200)!important;}

.elementor-6489 .dc-media-card::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(90deg, rgba(248,249,252,0) 28%, rgba(248,249,252,.55) 44%,
                    rgba(248,249,252,.95) 58%, rgba(248,249,252,.98) 100%);}
.elementor-6489 .dc-media-card > *{position:relative;z-index:1;}
/* Le texte etait blanc, pour un fond nuit qui n'existe plus. */
.elementor-6489 .dc-media-card .dc-media-eyebrow .elementor-heading-title{
  color:var(--dc-text-light)!important;}
.elementor-6489 .dc-media-card .dc-media-title .elementor-heading-title{
  color:var(--dc-text)!important;}
.elementor-6489 .dc-media-card .dc-media-lead,
.elementor-6489 .dc-media-card .dc-media-lead p{color:var(--dc-text-light)!important;}
.elementor-6489 .dc-media-card > *{width:100%!important;max-width:100%!important;text-align:left!important;}

/* Le bouton etait un contour blanc, pour le meme fond disparu. Le wireframe
   le donne plein et sombre (.ap-banner-btn{background:var(--text-primary)}). */
.elementor-6489 .dc-media-card .dc-btn-outline-white .elementor-button{
  background-color:var(--dc-text)!important;background-image:none!important;
  border:1px solid var(--dc-text)!important;color:#fff!important;}
.elementor-6489 .dc-media-card .dc-btn-outline-white .elementor-button:hover{
  background-color:#2C3040!important;border-color:#2C3040!important;}
.elementor-6489 .dc-media-card .dc-btn-outline-white .elementor-button-icon svg,
.elementor-6489 .dc-media-card .dc-btn-outline-white .elementor-button-icon svg *{
  fill:currentColor!important;}

/* Sous 1024 le fondu horizontal n'a plus de place : le wireframe empile —
   photo en haut, contenu dessous sur fond clair. On fait pareil. */
@media (max-width:1024px){
  .elementor-6489 .dc-media-card{
    padding:0!important;min-height:0!important;
    background-size:0 0!important;background-color:#F8F9FC!important;
    display:flex!important;flex-direction:column!important;
    justify-content:flex-start!important;align-items:stretch!important;
    overflow:hidden!important;}
  /* position:relative et inset:auto sont indispensables : un ::before pose
     ailleurs dans la cascade sort en absolute/inset:0, et la photo se
     superposait au texte au lieu de le precéder. */
  .elementor-6489 .dc-media-card::before{
    content:"";display:block!important;position:relative!important;inset:auto!important;
    width:100%;height:190px;flex:0 0 auto!important;
    background-image:inherit;
    background-size:cover;background-position:22% 15%;
    /* [11/9] Yassine : « la photo a les bords arrondis, c'est normal ? ». Non.
       C'est encore le meme principe que les vignettes d'articles : la carte a
       deja `border-radius:16px` ET `overflow:hidden`, donc c'est ELLE qui
       arrondit. Le rayon pose en plus sur la bande photo n'ajoutait rien en
       haut — il se confondait avec celui de la carte — et arrondissait ses
       coins BAS au milieu du bloc blanc. Dans un cadre, c'est le cadre qui
       arrondit, jamais l'image. */
    border-radius:0!important;}
  .elementor-6489 .dc-media-card::after{content:none!important;display:none!important;}
  .elementor-6489 .dc-media-card > *{
    margin-left:28px!important;margin-right:28px!important;
    max-width:calc(100% - 56px)!important;}
  .elementor-6489 .dc-media-card > *:first-of-type{margin-top:26px!important;}
  .elementor-6489 .dc-media-card > *:last-child{margin-bottom:28px!important;}
}
/* ===========================================================================
   « DES INFRASTRUCTURES A AUDERGHEM » — les quatre photos du wireframe
   9 septembre 2026
   Le wireframe donne a chaque carte une image en 16/10 :
       .ap-infra-card > figure > .ap-img.r1610 > img
       .ap-infra-card h4 / p
   Nos quatre cartes n'avaient que du texte, dans la grille a filet du socle.
   On pose la photo en tete de carte, via ::before, sans toucher a la
   structure : la grille reste celle qui a ete validee, et le geste est
   reversible en une regle.

   DEUX PHOTOS SONT REELLES, DEUX SONT EN ATTENTE — et c'est dit :
     - « Salles de formation »  : DigitalCityBrussels_HD_18 (vraie salle)
     - « Creative room »        : DigitalCityBrussels_HD_13 (vrai espace)
     - « Auditorium » et « Salle de conference » : reserve dessinee aux
       couleurs de marque, avec la mention « Photo a venir ». Ce sont leurs
       locaux, on ne peut pas les inventer, et mettre une salle de banque
       d'images a la place serait pire que de laisser la place vide.
   =========================================================================== */
/* La carte doit etre une colonne flex explicite : sans cela le ::before,
   meme en position:relative, se superposait au titre a 390 px (releve :
   titre.top == carte.top, et un ::before de 259 px au lieu des 212 attendus).
   En flex, le pseudo-element devient un item et ne peut plus recouvrir. */
.elementor-6489 .elementor-element-d60c03a > .e-con{
  position:relative!important;padding:0 0 20px!important;overflow:hidden!important;
  display:flex!important;flex-direction:column!important;
  align-items:stretch!important;justify-content:flex-start!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con > .elementor-widget{
  margin-left:22px!important;margin-right:22px!important;
  max-width:calc(100% - 44px)!important;}
/* [remplace] la photo est desormais un vrai <img> — voir plus bas */


/* Salles de formation — photo reelle */

/* Creative room — photo reelle */


/* Auditorium et Salle de conference — reserve dessinee, pas une image
   manquante. Meme traitement que l'emplacement de la carte plus bas. */



/* ===========================================================================
   ALIGNEMENT DES EN-TETES DE SECTION — 9 septembre 2026
   Question de Yassine : « ils etaient centres sur le wireframe aussi non ? »
   Verification faite, et la reponse est non. Je m'etais arrete a mi-chemin :
   j'avais constate que l'accueil V5 centre ses titres, sans verifier si
   l'accueil respectait SON PROPRE wireframe. Elle ne le respecte pas.

   Wireframe accueil V10 :
     .formations-header / .blog-header / .agenda-header
        display:flex; justify-content:space-between; align-items:flex-end
        -> titre A GAUCHE, lien « voir tout » a droite sur la meme ligne.
     .objectifs-header / .entreprise-header / .steps-header / .about-intro
        text-align:center -> centres, mais ce sont quatre sections precises.

   Wireframe A propos V10 :
     aucune regle text-align sur .ap-eyebrow, .ap-h2 ni .ap-desc
        -> les huit en-tetes sont a gauche.

   Le centrage n'est donc pas une decision du wireframe : c'est un ecart ne sur
   l'accueil, jamais releve, et qui s'est propage ici. Le wireframe est la
   reference de structure et c'est lui qui a ete montre au client.

   PORTEE : cette page seulement. L'accueil est figee, et son propre ecart au
   wireframe est un point a ouvrir avec Noemie, pas a corriger unilateralement.
   Consequence assumee : jusqu'a cet arbitrage, les deux pages ne s'alignent
   pas de la meme facon. C'est dit dans le mail.
   =========================================================================== */
/* align-self est le geste qui compte : le bloc d'en-tete fait 600 px de large
   (max-width du socle, proche du max-width:60ch du wireframe) et son parent
   est en align-items:center — il se centrait donc dans la rangee de 1180 px,
   et son bord gauche tombait a 420 quand la grille commence a 130. On ne
   l'elargit pas : une ligne de chapeau de 1180 px serait illisible. On le
   pose au bord gauche. */
.elementor-6489 .dc-header-text{
  align-items:flex-start!important;text-align:left!important;
  align-self:flex-start!important;margin-left:0!important;}
.elementor-6489 .dc-header-text > *{
  width:100%!important;max-width:100%!important;text-align:left!important;}
.elementor-6489 .dc-header-text .elementor-heading-title,
.elementor-6489 .dc-header-text .elementor-widget-text-editor,
.elementor-6489 .dc-header-text .elementor-widget-text-editor p{text-align:left!important;}

/* Le chapeau de section garde la mesure du wireframe : .ap-desc{max-width:60ch} */
.elementor-6489 .dc-header-text .elementor-widget-text-editor{max-width:60ch!important;}

/* Les deux renvois de bas de section suivent : le wireframe les pose dans le
   conteneur, apres la grille, sans centrage (<a class="ap-link">). */
.elementor-6489 .elementor-element-075818a,
.elementor-6489 .elementor-element-1213d70{
  align-self:flex-start!important;text-align:left!important;}
.elementor-6489 .elementor-element-075818a .elementor-widget-container,
.elementor-6489 .elementor-element-1213d70 .elementor-widget-container{text-align:left!important;}

/* Le pave CTA de bas de page reste centre : le wireframe accueil le donne
   centre (.final-cta-section{text-align:center}) et c'est un composant
   partage avec l'accueil validee. */

/* Les trois intitules de niveau de l'ecosysteme suivent l'en-tete de section.
   Wireframe : .ap-eco-title, aucune regle text-align -> a gauche. */
.elementor-6489 .dc-eco .dc-eco-title,
.elementor-6489 .dc-eco .dc-eco-title .elementor-heading-title{text-align:left!important;}
.elementor-6489 .dc-eco .dc-eco-title{align-self:flex-start!important;width:100%!important;}

/* Les quatre themes sous les rapports de veille : meme raison. */
.elementor-6489 .dc-theme-row,
.elementor-6489 .dc-theme-list{justify-content:flex-start!important;}

/* justify-content:flex-start ne suffisait pas : les rangees de pastilles sont
   des blocs plus etroits que leur rangee, et le parent est en
   align-items:center — elles se centraient donc en bloc, exactement comme le
   bloc d'en-tete de section. C'est align-self qui les pose au bord gauche.
   Seule « Nos partenaires » semblait alignee : elle est assez large pour
   remplir la rangee. */
.elementor-6489 .dc-client-list{
  align-self:flex-start!important;width:100%!important;max-width:100%!important;
  margin-left:0!important;}
/* ===========================================================================
   « NOS ESPACES » ET « PUBLICATIONS » — 9 septembre 2026
   Quatre questions de Yassine, et le wireframe en tranche trois.
   =========================================================================== */

/* --- 1. « POURQUOI DES CASES ? » ET « LES DEUX SECTIONS SE RESSEMBLENT » ---
   Meme reponse, et elle est dans le wireframe. Il traite les deux grilles
   DIFFEREMMENT, et c'est precisement ce qui les distingue :

     .ap-infra-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
     .ap-infra-card    -> AUCUNE bordure. Juste l'image, puis le titre dessous.
     .ap-pub-grid{...gap:1.25rem}
     .ap-pub-card{border:1px solid var(--border);background:#fff}  -> une carte.

   Nous avions les deux en grille a filet : quatre cases collees d'un cote,
   quatre cartes de l'autre, meme poids, meme rythme. D'ou l'impression de
   repetition — et d'ou les « paves » que Noemie n'aime pas.

   « Nos espaces » perd sa boite : l'image porte la carte, le texte se pose
   dessous, avec de l'air entre les quatre. « Nos rapports » garde la sienne :
   ce sont des documents, la carte a un sens. */
.elementor-6489 .elementor-element-d60c03a{
  background:transparent!important;background-color:transparent!important;
  border:0!important;border-radius:0!important;overflow:visible!important;
  gap:20px!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con{
  background:transparent!important;border:0!important;border-radius:0!important;
  padding:0!important;overflow:visible!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con > .elementor-widget{
  margin-left:0!important;margin-right:0!important;max-width:100%!important;}


/* --- 2. L'ANIMATION AU SURVOL ---------------------------------------------
   Elle manquait sur les deux grilles. Plutot que d'en inventer une, on reprend
   celle de l'accueil V5, qui a ete validee telle quelle :
     .dc-proj .dc-grille-proj > * > :hover{transform:translateY(-8px);box-shadow:…}
     .dc-proj .dc-grille-proj > * > :hover .dc-card-img{transform:scale(1.1)}
   Meme geste, meme duree, meme courbe — le site doit reagir partout pareil. */
.elementor-6489 .elementor-element-d60c03a > .e-con{
  transition:transform .45s cubic-bezier(.22,.61,.36,1);}
.elementor-6489 .elementor-element-d60c03a > .e-con:hover,
.elementor-6489 .elementor-element-d60c03a > .e-con:focus-within{
  transform:translateY(-6px)!important;}


.elementor-6489 .elementor-element-f945e7f > *{
  transition:transform .45s cubic-bezier(.22,.61,.36,1), box-shadow .45s cubic-bezier(.22,.61,.36,1);}
.elementor-6489 .elementor-element-f945e7f > *:hover,
.elementor-6489 .elementor-element-f945e7f > *:focus-within{
  transform:translateY(-8px)!important;
  box-shadow:0 24px 48px -20px rgba(15,27,61,.28)!important;}
.elementor-6489 .elementor-element-f945e7f > * .dc-card-img{
  transition:transform .55s cubic-bezier(.22,.61,.36,1);}
.elementor-6489 .elementor-element-f945e7f > *:hover .dc-card-img,
.elementor-6489 .elementor-element-f945e7f > *:focus-within .dc-card-img{
  transform:scale(1.08)!important;}

@media (prefers-reduced-motion:reduce){
  .elementor-6489 .elementor-element-d60c03a > .e-con,
  .elementor-6489 .elementor-element-f945e7f > *{transition:none!important;}
  .elementor-6489 .elementor-element-d60c03a > .e-con:hover,
  .elementor-6489 .elementor-element-f945e7f > *:hover{transform:none!important;}
}

/* --- 3. LES DEGRADES DE FOND ----------------------------------------------
   « Parfois ça ne se voit pas trop. » C'est mesure : les nappes de section
   sont posees entre .05 et .15 d'opacite, sur du blanc. L'alternance existe
   — sections 2, 4 et 8 nappees, 3, 5 et 7 en blanc franc — mais a ces valeurs
   elle est sous le seuil de perception a la plupart des calibrages d'ecran.

   On double, sans plus : ils aiment les degrades, l'idee n'est pas de les
   changer mais de les rendre visibles. Portee limitee a cette page — les
   classes .dc-wash-* sont dans le socle et l'accueil est figee. */
.elementor-6489 .dc-wash-1{
  --dc-wash-1:radial-gradient(58% 46% at 84% 6%,  rgba(139,92,246,.28), rgba(139,92,246,0) 70%);
  --dc-wash-2:radial-gradient(52% 44% at 6% 88%,  rgba(0,138,183,.24),  rgba(0,138,183,0) 72%);
  --dc-wash-3:radial-gradient(64% 40% at 42% 52%, rgba(46,85,218,.15),  rgba(46,85,218,0) 76%);}
.elementor-6489 .dc-wash-2{
  --dc-wash-1:radial-gradient(54% 44% at 10% 8%,  rgba(0,138,183,.23),  rgba(0,138,183,0) 72%);
  --dc-wash-2:radial-gradient(50% 42% at 92% 78%, rgba(46,85,218,.19),  rgba(46,85,218,0) 74%);
  --dc-wash-3:radial-gradient(60% 38% at 50% 40%, rgba(139,92,246,.12), rgba(139,92,246,0) 78%);}
/* [11/9] Yassine : « je ne suis pas fan du degrade sur la section coordonnees,
   je sais pas si c'est la couleur ou l'intensite ». C'etait la COULEUR, et le
   diagnostic tient en une ligne : ce lavis etait le seul de la page bati sur un
   magenta (#D946EF) qui n'existe nulle part ailleurs, et surtout SANS AUCUN
   BLEU — alors que les lavis 1 et 2 sont tous deux construits sur le meme trio
   maison (violet #8B5CF6, cyan #008AB7, bleu #2E55DA) et comptent trois
   couches. Deux couches magenta sur fond blanc, ca ne se lit pas comme une
   variation de la page : ca se lit comme une autre page.
   On le rebatit sur le trio, avec sa propre disposition pour qu'il reste
   distinct des deux autres : le cyan derriere la carte, le bleu en bas a
   droite, un souffle de violet au centre. Intensites baissees au passage. */
.elementor-6489 .dc-wash-4{
  --dc-wash-1:radial-gradient(56% 46% at 8% 12%,  rgba(0,138,183,.20),  rgba(0,138,183,0) 72%);
  --dc-wash-2:radial-gradient(54% 44% at 92% 66%, rgba(46,85,218,.16),  rgba(46,85,218,0) 74%);
  --dc-wash-3:radial-gradient(62% 40% at 52% 44%, rgba(139,92,246,.10), rgba(139,92,246,0) 78%);}

/* Le corps des cartes de rapports restait centre — dernier ilot de centrage de
   la page. Wireframe : .ap-pub-bd{padding:1.1rem 1.25rem}, aucun text-align,
   donc a gauche, comme .ap-pub-year, h4, .ap-pub-ex et .ap-pub-dl. */
.elementor-6489 .elementor-element-f945e7f > * .e-con,
.elementor-6489 .elementor-element-f945e7f > * .elementor-widget{
  text-align:left!important;align-items:flex-start!important;}
.elementor-6489 .elementor-element-f945e7f > * .elementor-heading-title,
.elementor-6489 .elementor-element-f945e7f > * .elementor-widget-text-editor,
.elementor-6489 .elementor-element-f945e7f > * .elementor-widget-text-editor p,
.elementor-6489 .elementor-element-f945e7f > * .elementor-widget-button,
.elementor-6489 .elementor-element-f945e7f > * .elementor-button-wrapper{
  text-align:left!important;}

/* ===========================================================================
   « NOS ESPACES » — QUATRE VRAIES PHOTOS — 9 septembre 2026
   Yassine : « je veux 4 vraies photos, ça va leur permettre de se projeter ».
   Elles existaient : sur leur site actuel, page /fr/infrastructures, chaque
   salle est photographiee et le texte qui l'accompagne l'identifie sans
   ambiguite. Reprises et versees dans la mediatheque :
       Auditorium ........... DIGITALCITY-4.jpg      (« capacite de 121 personnes »)
       Salles de formation .. Digital_City_HD_10.jpg (« de 4 a 15 personnes »)
       Salle de conference .. salle-de-conference_0  (« jusqu'a 20 personnes »)
       Creative room ........ DIGITALCITY-5_1.jpg    (« notre espace creatif »)
   Plus aucune reserve « Photo a venir » sur cette section.

   ET LA DEFORMATION EST CORRIGEE. Elle venait de moi : pour animer le zoom
   j'avais pose background-size:100% 100% sur le ::before, ce qui etire l'image
   sur les deux axes independamment. En vrai <img> avec object-fit:cover, le
   cadrage rogne au lieu d'etirer — jamais de deformation possible.
   Deux des quatre photos sont en portrait (ratio 0,67) : leur object-position
   est reglee a la main pour que le sujet reste dans le cadre 16/10.
   =========================================================================== */
.elementor-6489 .dc-espace-photo{
  width:100%!important;margin:0 0 14px!important;padding:0!important;
  border-radius:14px!important;overflow:hidden!important;
  line-height:0!important;}
.elementor-6489 .dc-espace-photo .elementor-widget-container,
.elementor-6489 .dc-espace-photo figure,
.elementor-6489 .dc-espace-photo a{display:block!important;line-height:0!important;}
.elementor-6489 .dc-espace-photo img{
  display:block!important;width:100%!important;height:auto!important;
  aspect-ratio:16/10!important;object-fit:cover!important;
  border-radius:0!important;
  transition:transform .55s cubic-bezier(.22,.61,.36,1);}

/* Cadrage par salle. Les deux photos en portrait sont recadrees sur le sujet :
   la salle de formation sur les postes de travail, la salle de conference sur
   la table et les ecrans. */
.elementor-6489 .elementor-element-0194348 img{object-position:50% 55%!important;}
.elementor-6489 .elementor-element-8654f37 img{object-position:50% 42%!important;}
.elementor-6489 .elementor-element-cd4fbca img{object-position:50% 46%!important;}
.elementor-6489 .elementor-element-2ec70dd img{object-position:50% 50%!important;}

/* Le zoom au survol se fait sur l'image, dans un cadre qui la rogne — c'est le
   geste de l'accueil V5 (scale 1.08), et il ne peut pas deformer. */
.elementor-6489 .elementor-element-d60c03a > .e-con:hover .dc-espace-photo img,
.elementor-6489 .elementor-element-d60c03a > .e-con:focus-within .dc-espace-photo img{
  transform:scale(1.08)!important;}
@media (prefers-reduced-motion:reduce){
  .elementor-6489 .dc-espace-photo img{transition:none!important;}
  .elementor-6489 .elementor-element-d60c03a > .e-con:hover .dc-espace-photo img{transform:none!important;}
}

/* ===========================================================================
   ECOSYSTEME — LE GRAIN RETIRE — 9 septembre 2026
   Le fond nuit du socle porte une quatrieme couche : un bruit fractal SVG a
   34 % d'opacite, repete en 160x160. Il donnait de la matiere aux fonds
   sombres de l'accueil ; sur cette section il salit surtout les pastilles.
   On garde les trois nappes radiales et on retire la texture — en redeclarant
   background-image sans la derniere couche, plutot qu'en touchant au socle.
   =========================================================================== */
.elementor-6489 .dc-eco.dc-nuit::before{
  background-repeat:no-repeat,no-repeat,no-repeat!important;
  background-size:100% 100%,100% 100%,100% 100%!important;
  background-image:
    radial-gradient(62% 58% at 10% 4%,  rgba(126,63,242,.46), rgba(126,63,242,0) 68%),
    radial-gradient(56% 52% at 92% 98%, rgba(0,138,183,.38),  rgba(0,138,183,0)  70%),
    radial-gradient(44% 38% at 64% 26%, rgba(217,70,239,.15), rgba(217,70,239,0) 74%)
    !important;}

/* ===========================================================================
   « NOUS TROUVER » — LA CARTE INTERACTIVE — 9 septembre 2026
   OpenStreetMap plutot que Google Maps, et c'est un choix, pas un pis-aller :
   l'iframe OSM ne pose aucun cookie et ne demande aucune cle d'API. Google
   Maps deposerait des traceurs des le chargement, ce qui obligerait a la
   placer derriere le bandeau de consentement — donc a montrer un cadre vide
   tant que le visiteur n'a pas clique. Sur une page « nous trouver », c'est
   exactement ce qu'il ne faut pas.
   L'emplacement garde son fond de marque : il reste visible pendant le
   chargement differe de l'iframe.
   =========================================================================== */
.elementor-6489 .dc-map-embed{
  position:absolute!important;inset:0!important;z-index:1!important;
  width:100%!important;height:100%!important;padding:0!important;margin:0!important;}
.elementor-6489 .dc-map-embed .elementor-widget-container,
.elementor-6489 .dc-map-live{height:100%!important;position:relative;}
.elementor-6489 .dc-map-live #dc-carte{
  width:100%;height:100%;min-height:260px;
  filter:saturate(.90) contrast(1.02);}
.elementor-6489 .dc-map-live .leaflet-container{background:#141033;font-family:var(--dc-body);}
.elementor-6489 .dc-map-live .leaflet-control-attribution{font-size:10px;}
/* La pastille reprend le bleu du logo, avec un halo pour la detacher du plan. */
.elementor-6489 .dc-map-pin{
  background:var(--dc-bleu-logo,#008AB7);border:3px solid #fff;border-radius:50%;
  box-shadow:0 0 0 3px rgba(0,138,183,.30), 0 4px 10px rgba(15,27,61,.35);}
.elementor-6489 .dc-map-fallback{padding:16px;color:#fff;font-size:13px;}
.elementor-6489 .dc-map-embed + .dc-map-note,
.elementor-6489 .dc-map-slot .dc-map-note{
  position:absolute!important;left:0;right:0;bottom:0;z-index:2!important;
  margin:0!important;padding:10px 14px!important;
  background:linear-gradient(to top, rgba(12,18,48,.92), rgba(12,18,48,0))!important;}
.elementor-6489 .dc-map-slot .dc-map-note .elementor-heading-title{
  font-size:12px!important;text-align:left!important;color:rgba(255,255,255,.92)!important;}
.elementor-6489 .dc-map-live .dc-map-plus{
  position:absolute;top:10px;right:10px;z-index:3;
  font-family:var(--dc-body);font-size:11px;font-weight:600;
  padding:6px 10px;border-radius:999px;text-decoration:none;
  background:rgba(255,255,255,.94);color:#1A1D2B;
  box-shadow:0 2px 8px rgba(15,27,61,.22);}
.elementor-6489 .dc-map-live .dc-map-plus:hover{background:#fff;}

/* ===========================================================================
   ECOSYSTEME — LES VRAIS LOGOS — 9 septembre 2026
   Yassine : « faut mettre les vrais logos ». Ils existent, et ils sont chez
   eux : leur site actuel (pages /fr/nos-partenaires et /fr/infrastructures)
   porte 20 des 23 partenaires nommes sur cette page. Recuperes et verses dans
   la mediatheque. Manquent CNE, Synova et Beliris — introuvables sur leur
   propre site, donc a demander.

   PAS DE CHANGEMENT DE STRUCTURE : le logo est pose en fond de la pastille et
   le nom reste dans le DOM, masque visuellement mais lu par les lecteurs
   d'ecran. C'est mieux qu'une balise <img alt> — le nom sert d'etiquette
   accessible ET le geste est reversible en une regle. Les trois pastilles sans
   logo gardent leur texte visible : l'ecart se voit, c'est voulu.
   =========================================================================== */
.elementor-6489 .dc-eco .dc-client-chip{
  background-color:#FFFFFF!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:auto 58%!important;
  width:150px!important;height:74px!important;
  border:0!important;border-radius:10px!important;padding:0!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  transition:transform .3s var(--dc-ease,ease), box-shadow .3s var(--dc-ease,ease);}
.elementor-6489 .dc-eco .dc-client-chip:hover{
  transform:translateY(-3px)!important;
  box-shadow:0 10px 22px -10px rgba(0,0,0,.45)!important;}
.elementor-6489 .dc-eco .dc-client-list{gap:12px!important;}

/* Le nom quitte l'ecran mais reste dans l'arbre d'accessibilite. */
.elementor-6489 .dc-eco .dc-client-chip .elementor-heading-title{
  position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;}


/* Les trois sans logo : la pastille redevient une etiquette lisible. */
.elementor-6489 .elementor-element-d66039a,
.elementor-6489 .elementor-element-47d2c14,
.elementor-6489 .elementor-element-d987537{
  background-image:none!important;background-color:rgba(255,255,255,.10)!important;
  border:1px solid rgba(255,255,255,.24)!important;
  width:auto!important;min-width:110px!important;padding:0 16px!important;}
.elementor-6489 .elementor-element-d66039a .elementor-heading-title,
.elementor-6489 .elementor-element-47d2c14 .elementor-heading-title,
.elementor-6489 .elementor-element-d987537 .elementor-heading-title{
  position:static!important;width:auto;height:auto;overflow:visible;
  clip-path:none;color:rgba(255,255,255,.92)!important;font-size:13px!important;}

/* Les trois pastilles sans logo sortaient en cases blanches vides : ma regle
   d'exception comptait deux classes quand la regle generale
   (.elementor-6489 .dc-eco .dc-client-chip) en compte trois — elle perdait.
   On la qualifie au meme niveau. Idem pour le titre, qui restait masque. */
.elementor-6489 .dc-eco .dc-client-list .elementor-element-d66039a,
.elementor-6489 .dc-eco .dc-client-list .elementor-element-47d2c14,
.elementor-6489 .dc-eco .dc-client-list .elementor-element-d987537{
  background-image:none!important;background-color:rgba(255,255,255,.10)!important;
  border:1px solid rgba(255,255,255,.24)!important;
  width:auto!important;min-width:118px!important;padding:0 18px!important;}
.elementor-6489 .dc-eco .dc-client-list .elementor-element-d66039a .elementor-heading-title,
.elementor-6489 .dc-eco .dc-client-list .elementor-element-47d2c14 .elementor-heading-title,
.elementor-6489 .dc-eco .dc-client-list .elementor-element-d987537 .elementor-heading-title{
  position:static!important;width:auto!important;height:auto!important;
  overflow:visible!important;clip-path:none!important;
  color:rgba(255,255,255,.92)!important;font-size:13px!important;white-space:nowrap;}

/* Les logos etaient un peu petits dans leur cellule. */
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip{background-size:auto 62%!important;}

/* ===========================================================================
   « NOS ESPACES » — LE BALAYAGE DE LA V5 SUR LES CAPACITES — 9 septembre 2026
   Repris de la section Evenements de l'accueil (.dc-roll-b) : un degrade en
   background-clip:text, balaye une seule fois a l'arrivee du curseur. Une
   boucle serait du clignotement decoratif ; un seul passage se lit comme un
   materiau qui accroche la lumiere.

   UNE ADAPTATION NECESSAIRE : sur l'accueil le degrade est clair (#8CE8FF ->
   #EAFBFF) parce qu'il vit sur un fond nuit. Ici les capacites sont bleues sur
   une carte blanche : un palier clair les rendrait illisibles. On garde donc
   la meme rotation de teintes, dans leurs versions SOMBRES, toutes mesurees
   au-dessus de AA sur blanc :
       #00688A 6,27:1   #2E55DA 6,13:1   #6D28D9 7,10:1
   (#8B5CF6, le violet de la charte, ne fait que 4,23:1 — ecarte.)

   A SAVOIR POUR LES AUDITS : en background-clip:text la couleur calculee du
   texte vaut `transparent`. Toute sonde de contraste le signalera a tort. Le
   piege est deja consigne pour l'accueil ; il se verifie au pixel.
   =========================================================================== */
.elementor-6489 .elementor-element-d05840c .elementor-heading-title,
.elementor-6489 .elementor-element-6e93629 .elementor-heading-title,
.elementor-6489 .elementor-element-cb02fff .elementor-heading-title,
.elementor-6489 .elementor-element-ce7c33f .elementor-heading-title{
  background-image:linear-gradient(100deg,
    #00688A 0%, #2E55DA 34%, #6D28D9 66%, #00688A 100%)!important;
  background-size:220% 100%;
  background-position:100% 50%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent!important;
  /* Reserve la sur-chasse : en background-clip la zone peinte s'arrete a la
     boite de l'element, et la derniere lettre peut rester transparente. */
  padding-right:.12em;
  width:fit-content;}

@keyframes dc-gloss-clair{from{background-position:100% 50%;}to{background-position:0% 50%;}}
.elementor-6489 .elementor-element-d60c03a > .e-con:hover .elementor-heading-title[class],
.elementor-6489 .elementor-element-d60c03a > .e-con:focus-within .elementor-heading-title[class]{}
.elementor-6489 .elementor-element-44c60dc:hover .elementor-element-d05840c .elementor-heading-title,
.elementor-6489 .elementor-element-5166c1b:hover .elementor-element-6e93629 .elementor-heading-title,
.elementor-6489 .elementor-element-3f6e84f:hover .elementor-element-cb02fff .elementor-heading-title,
.elementor-6489 .elementor-element-c70e5e2:hover .elementor-element-ce7c33f .elementor-heading-title,
.elementor-6489 .elementor-element-44c60dc:focus-within .elementor-element-d05840c .elementor-heading-title,
.elementor-6489 .elementor-element-5166c1b:focus-within .elementor-element-6e93629 .elementor-heading-title,
.elementor-6489 .elementor-element-3f6e84f:focus-within .elementor-element-cb02fff .elementor-heading-title,
.elementor-6489 .elementor-element-c70e5e2:focus-within .elementor-element-ce7c33f .elementor-heading-title{
  animation:dc-gloss-clair 1.1s cubic-bezier(.22,.61,.36,1) both;}
@media (prefers-reduced-motion:reduce){
  .elementor-6489 .elementor-element-d60c03a .elementor-heading-title{
    animation:none!important;background-position:0% 50%!important;}
}

/* Le nom masque gardait une boite de 34x16 (une largeur du socle passait
   devant la mienne) : clip-path le rendait bien invisible — zero pixel peint —
   mais le banc de contraste continuait a le compter et a mesurer le logo
   derriere. Six faux positifs par passage. On force la boite a 1x1 : le nom
   reste dans l'arbre d'accessibilite, et les sondes cessent de le voir. */
.elementor-6489 .dc-eco .dc-client-list .dc-client-chip .elementor-heading-title{
  width:1px!important;height:1px!important;padding:0!important;margin:0!important;
  border:0!important;}

/* ===========================================================================
   LE PLAFOND DES NAPPES, ET COMMENT LE LEVER — 9 septembre 2026
   Yassine demandait s'il fallait aller « plus fonce ou plus clair ». La
   reponse n'est pas une preference, c'est un calcul : la densite d'une nappe
   est plafonnee par le texte qui se pose dessus.

   Mesure. Le texte secondaire est --dc-text-light #5F6980 (luminance .1409).
   Pour tenir 4,5:1 il lui faut un fond d'au moins .8093 de luminance. Or :
       voile violet a .15 -> fond (238,231,254)  4,56:1   <- la limite exacte
       voile violet a .18 -> fond (234,226,253)  4,39:1   <- deja sous la norme
       voile violet a .28 -> fond (223,209,252)  3,85:1
   Les valeurs d'origine (.05 a .15) etaient donc DEJA au plafond. Mon
   doublement a fait tomber deux textes du carrefour a 4,21 et 4,35:1 — mesure
   sur la page, a 390 px.

   Deux issues, et la seconde est meilleure : soit la nappe reste pale et
   l'alternance reste invisible, soit on descend l'encre secondaire pour lui
   faire de la place. #4E5871 donne 5,12:1 sur la nappe la plus dense, pour un
   ecart visuel a peine perceptible avec #5F6980. On garde donc les degrades
   visibles ET la conformite.

   PORTEE : cette page. Le jour ou l'accueil se rouvre, c'est la valeur a
   remonter dans le socle pour que les deux pages s'accordent.
   =========================================================================== */
.elementor-6489{--dc-text-light:#4E5871;}

/* Le bandeau d'adresse de la carte tombait a 2,49:1 sur mobile : le voile ne
   couvrait pas assez les tuiles claires. On le densifie et on le remonte. */
.elementor-6489 .dc-map-slot .dc-map-note{
  background:linear-gradient(to top, rgba(9,14,38,.96) 0%, rgba(9,14,38,.88) 55%, rgba(9,14,38,0) 100%)!important;
  padding:16px 14px 10px!important;}
.elementor-6489 .dc-map-slot .dc-map-note .elementor-heading-title{
  color:#FFFFFF!important;text-shadow:0 1px 2px rgba(0,0,0,.5);}

/* Meme cause pour l'etiquette de section : elle est en #00688A, pas en
   --dc-text-light, donc l'ajustement precedent ne la couvrait pas. Sur la
   nappe la plus dense elle tombait a 4,35:1 pour du 12 px, qui en demande 4,5.
   #005E7D la remonte a 5,03:1 sur nappe et 7,25:1 sur blanc, en restant dans
   la meme famille de bleu. Les sections de nuit ne sont pas touchees : elles
   ont leur propre encre claire. */
.elementor-6489 .dc-section:not(.dc-nuit) .dc-eyebrow .elementor-heading-title.elementor-heading-title{
  color:#005E7D!important;}

/* ===========================================================================
   FAQ — LISTE A FILETS, PAS CARTES — 9 septembre 2026
   Wireframe :
       .ap-faq-item{border-bottom:1px solid var(--border);background:#fff}
       .ap-faq-item:first-child{border-top:1px solid var(--border)}
   Une liste separee par des filets. Nous avions six cartes bordees a coins
   arrondis, avec un ecart entre chacune — soit six paves de plus sur une page
   ou Noemie en a deja signale trop. C'est la meme correction que pour les
   quatre espaces, sur la meme source.
   =========================================================================== */
.elementor-6489 .elementor-accordion .elementor-accordion-item{
  border:0!important;border-bottom:1px solid var(--dc-gray-200)!important;
  border-radius:0!important;background:transparent!important;
  margin:0!important;box-shadow:none!important;}
.elementor-6489 .elementor-accordion .elementor-accordion-item:first-child{
  border-top:1px solid var(--dc-gray-200)!important;}
.elementor-6489 .elementor-accordion{gap:0!important;}
.elementor-6489 .elementor-accordion .elementor-tab-title{
  padding-left:0!important;padding-right:0!important;}
.elementor-6489 .elementor-accordion .elementor-tab-content{
  padding-left:0!important;padding-right:0!important;border:0!important;}

/* Meme traitement pour l'accordeon imbrique, si le gabarit l'utilise. */
.elementor-6489 .e-n-accordion-item{
  border:0!important;border-bottom:1px solid var(--dc-gray-200)!important;
  border-radius:0!important;background:transparent!important;margin:0!important;}
.elementor-6489 .e-n-accordion-item:first-child{
  border-top:1px solid var(--dc-gray-200)!important;}

/* ===========================================================================
   « ADRESSE ET COORDONNEES » — LE PAVE RETIRE — 9 septembre 2026
   Yassine a vu juste. Le wireframe ne pose AUCUNE carte ici : le bloc est le
   meme `.ap-two` que « Un partenariat public-prive » — deux colonnes, la
   figure a gauche, le texte nu a droite, et deux liens soulignes en bas.
   Notre carte blanche bordee etait une invention, et c'est un pave de plus sur
   une page ou Noemie en a deja signale trop. Avec la FAQ et les espaces, ca
   fait le troisieme bloc encadre qui saute aujourd'hui — tous sur la meme
   source, et tous parce que le wireframe ne les demandait pas.
   =========================================================================== */
.elementor-6489 .dc-contact-card{
  background:transparent!important;background-color:transparent!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;
  padding:0!important;}
.elementor-6489 .dc-two-col > .dc-contact-card{justify-content:center!important;}

/* Le titre « Coordonnees » reprend le format d'etiquette du wireframe
   (.ap-two .label : 11 px, gras, capitales, interlettre .1em) au lieu du
   titre de carte. */
.elementor-6489 .dc-contact-card .dc-eco-title .elementor-heading-title{
  font-size:11px!important;font-weight:700!important;text-transform:uppercase!important;
  letter-spacing:.1em!important;color:var(--dc-text-light)!important;
  margin-bottom:10px!important;}

/* Les deux renvois deviennent des liens soulignes, comme .ap-link, plutot que
   des boutons : sans la carte autour, deux boutons pleins pesaient trop. */
.elementor-6489 .dc-contact-card .elementor-button{
  background:transparent!important;background-image:none!important;
  border:0!important;border-bottom:1px solid var(--dc-text)!important;
  border-radius:0!important;color:var(--dc-text)!important;
  padding:0 0 3px!important;font-weight:600!important;}
.elementor-6489 .dc-contact-card .elementor-button:hover{
  border-bottom-color:var(--dc-bleu-logo)!important;color:var(--dc-bleu-logo)!important;}
.elementor-6489 .dc-contact-card .elementor-button-icon svg,
.elementor-6489 .dc-contact-card .elementor-button-icon svg *{fill:currentColor!important;}
.elementor-6489 .dc-contact-card .e-con{gap:24px!important;}

/* ===========================================================================
   ECOSYSTEME — LES TROIS DERNIERS LOGOS, ET LA FORME DU WIREFRAME
   9 septembre 2026
   « Pour les logos c'est mieux avec un fond blanc ou sans fond ? »

   Fond blanc, et ce n'est pas une preference : la plupart de ces marques sont
   dessinees en fonce sur clair et leurs couleurs sont contractuelles — on ne
   peut ni les monochromer ni les poser telles quelles sur du nuit. Beliris est
   l'exception qui le prouve : son logo officiel n'existe qu'en blanc sur
   transparent, il est donc invisible sur une cellule claire (traite plus bas).

   MAIS la forme change. Le wireframe ne fait pas vingt pastilles blanches qui
   flottent : `.ap-logos{display:grid;gap:1px;background:var(--border);
   border:1px solid var(--border)}` avec `.ap-logos span{background:#fff}` —
   c'est UN SEUL bloc, divise par des filets d'un pixel. Vingt cartes arrondies
   posees sur la nuit, c'etait exactement l'enchainement de paves que Noemie
   n'aime pas. Un bloc unique se lit comme un objet, pas comme une pile.

   Le wireframe donne meme le nombre de colonnes par niveau :
       .ap-logos.n4 -> 4 colonnes  (« A l'initiative de », 8 logos)
       .ap-logos.n3 -> 3 colonnes  (« Avec le soutien de », 3 logos)
       .ap-logos    -> 6 colonnes  (« Nos partenaires », 12 logos)
   =========================================================================== */
.elementor-6489 .dc-eco .dc-client-list{
  display:grid!important;gap:1px!important;
  background:rgba(255,255,255,.20)!important;
  border:1px solid rgba(255,255,255,.20)!important;
  border-radius:12px!important;overflow:hidden!important;
  padding:0!important;width:100%!important;max-width:100%!important;}
.elementor-6489 .elementor-element-2c4e7a2{grid-template-columns:repeat(4,1fr)!important;}
.elementor-6489 .elementor-element-c974334{grid-template-columns:repeat(3,1fr)!important;}
.elementor-6489 .elementor-element-2ba4bac{grid-template-columns:repeat(6,1fr)!important;}
/* La rangee de themes des rapports n'est pas un mur de logos : elle garde sa
   forme de pastilles. */
.elementor-6489 .elementor-element-575a135{
  display:flex!important;background:none!important;border:0!important;
  border-radius:0!important;overflow:visible!important;}

.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip{
  background-color:#FFFFFF!important;border:0!important;border-radius:0!important;
  width:auto!important;height:auto!important;min-height:76px!important;
  padding:14px 16px!important;margin:0!important;
  background-size:auto 60%!important;background-position:center!important;
  transition:background-color .25s ease;}
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:hover{
  background-color:#F1F3F8!important;transform:none!important;box-shadow:none!important;}

/* --- Les trois derniers logos --------------------------------------------
   CNE   : logo officiel, lacsc.be
   Synova: logo officiel, synova.be — le SVG a ete rendu en PNG, WordPress
           n'accepte pas le SVG en televersement.
   Beliris : leur logo officiel n'existe qu'en BLANC sur transparent, dessine
           pour leur propre en-tete sombre. Sur une cellule blanche il ne se
           voit pas. On l'inverse en CSS plutot que de modifier le fichier :
           le geste est visible, reversible, et si Noemie obtient la version
           positive il n'y aura qu'a retirer la ligne. A FAIRE CONFIRMER. */
/* Classe doublee et chemin complet : la regle generale
   `.dc-eco .dc-client-chip.dc-client-chip` compte une classe de plus et
   effacait ces deux fonds. */
/* Beliris : l'inversion en CSS noircissait toute la cellule, fond compris —
   un filter s'applique a l'element entier, pas a sa seule image de fond. Le
   fichier officiel a donc ete inverse hors ligne et televerse comme version
   positive. A FAIRE CONFIRMER par Noemie : si Beliris fournit sa version
   positive officielle, elle remplace celle-ci. */

/* Les trois pastilles redeviennent des cellules comme les autres : elles ont
   leur logo. On annule l'exception posee ce matin. */
.elementor-6489 .dc-eco .dc-client-list .elementor-element-d66039a,
.elementor-6489 .dc-eco .dc-client-list .elementor-element-47d2c14,
.elementor-6489 .dc-eco .dc-client-list .elementor-element-d987537{
  background-color:#FFFFFF!important;border:0!important;
  width:auto!important;min-width:0!important;padding:14px 16px!important;}
.elementor-6489 .dc-eco .dc-client-list .elementor-element-d66039a .elementor-heading-title,
.elementor-6489 .dc-eco .dc-client-list .elementor-element-47d2c14 .elementor-heading-title,
.elementor-6489 .dc-eco .dc-client-list .elementor-element-d987537 .elementor-heading-title{
  position:absolute!important;width:1px!important;height:1px!important;
  overflow:hidden!important;clip-path:inset(50%)!important;}

@media (max-width:1024px){
  .elementor-6489 .elementor-element-2ba4bac{grid-template-columns:repeat(3,1fr)!important;}
  .elementor-6489 .elementor-element-2c4e7a2{grid-template-columns:repeat(3,1fr)!important;}
}
@media (max-width:600px){
  .elementor-6489 .dc-eco .dc-client-list{grid-template-columns:repeat(2,1fr)!important;}
  .elementor-6489 .dc-eco .dc-client-chip.dc-client-chip{min-height:66px!important;}
}

/* ===========================================================================
   FAQ — L'ICONE DU WIREFRAME, ET A DROITE — 9 septembre 2026
   Yassine a raison sur les deux points, et le wireframe les tranche :
       .ap-faq-q{display:flex; justify-content:space-between; ...}
       .ap-faq-q .ic{width:18px;height:18px;stroke:currentColor;transition:transform .3s}
       .ap-faq-item.open .ap-faq-q .ic{transform:rotate(45deg)}
       <svg class="ic" ...><path d="M12 5v14M5 12h14"/></svg>
   Soit : un « + » AU TRAIT, place A DROITE, qui pivote de 45° pour devenir une
   croix a l'ouverture. Nous avions un « + » plein de Font Awesome, a gauche,
   remplace par un « — » plein a l'ouverture. Trois ecarts d'un coup.

   Le glyphe d'origine est neutralise plutot que retire des reglages : il reste
   visible dans l'editeur. Le « + » est dessine en deux barres de 2 px, ce qui
   permet la rotation continue que le wireframe demande — un glyphe « moins »
   ne peut pas pivoter vers une croix.
   =========================================================================== */
.elementor-6489 .elementor-accordion .elementor-tab-title{
  display:flex!important;align-items:center!important;
  justify-content:space-between!important;gap:16px!important;}
.elementor-6489 .elementor-accordion .elementor-accordion-icon{
  order:2!important;margin:0!important;padding:0!important;
  width:18px!important;height:18px!important;flex:0 0 18px!important;
  position:relative!important;
  transition:transform .3s cubic-bezier(.22,.61,.36,1);}
.elementor-6489 .elementor-accordion .elementor-accordion-icon svg,
.elementor-6489 .elementor-accordion .elementor-accordion-icon i{display:none!important;}
.elementor-6489 .elementor-accordion .elementor-accordion-icon::before,
.elementor-6489 .elementor-accordion .elementor-accordion-icon::after{
  content:"";position:absolute;left:50%;top:50%;background:currentColor;border-radius:1px;}
.elementor-6489 .elementor-accordion .elementor-accordion-icon::before{
  width:16px;height:2px;transform:translate(-50%,-50%);}
.elementor-6489 .elementor-accordion .elementor-accordion-icon::after{
  width:2px;height:16px;transform:translate(-50%,-50%);}
/* Elementor garde les deux etats dans le DOM : on n'en montre qu'un, sinon le
   « + » est dessine deux fois. */
.elementor-6489 .elementor-accordion .elementor-accordion-icon-opened{display:none!important;}
/* A l'ouverture, la croix. */
.elementor-6489 .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon,
.elementor-6489 .elementor-accordion .elementor-tab-title[aria-expanded="true"] .elementor-accordion-icon{
  transform:rotate(45deg)!important;}
@media (prefers-reduced-motion:reduce){
  .elementor-6489 .elementor-accordion .elementor-accordion-icon{transition:none!important;}
}

/* ===========================================================================
   ECOSYSTEME — L'APPARITION DES LOGOS — 9 septembre 2026
   Idee prise de « cinematic-logo-cloud » (21st.dev) : les logos se posent en
   decale a l'arrivee du bloc dans l'ecran. C'est le bon emprunt — pas le
   defilement en marquee des autres references, qui detruirait la hierarchie en
   trois niveaux que la direction a demandee le 02/07.

   Fait SANS JAVASCRIPT, avec `animation-timeline: view()`. Et sous @supports :
   un navigateur qui ne connait pas la regle affiche simplement les logos, sans
   animation. C'est la lecon de la nuit du 5 septembre — six sections etaient
   restees invisibles parce que leur apparition dependait d'un script retarde
   par LiteSpeed. Une animation d'apparition ne doit JAMAIS pouvoir cacher du
   contenu.
   =========================================================================== */

/* ===========================================================================
   ECOSYSTEME — CE QU'ON PREND DE 21ST.DEV — 9 septembre 2026
   Correction : j'avais annonce ces trois references comme des marquees. Deux
   sur trois sont des GRILLES — `logo-cloud-2` est `grid grid-cols-4` borde,
   `logo-cloud-5` est `grid rounded-lg bg-border` avec des cellules bordees.
   J'ai juge sur la famille du composant au lieu de lire le code. Yassine avait
   raison : on n'est pas loin, et il y a deux choses a y prendre.

   1. LES CROIX AUX INTERSECTIONS (logo-cloud-2).
      Le composant pose un `PlusIcon` a l'angle de chaque cellule interieure,
      decale d'un demi-pixel sur les deux axes. C'est le detail qui fait qu'une
      grille se lit comme un plan DESSINE et non comme un tableau. Et ca tombe
      juste ici : c'est le meme trace au trait que le « + » de la FAQ et que
      les pictos du carrefour — la page gagne une signature commune.

   2. L'APPARITION (cinematic-logo-cloud), avec ses vraies valeurs.
      Le composant fait bien plus lent et plus doux que ce que j'avais monte :
        hidden : opacity 0, y 20, blur(12px)
        visible: duration 1.2s, ease cubic-bezier(.16,1,.3,1)
        staggerChildren: 0.1
      J'etais a .5s, 0,04s de decalage, sans flou. On reprend ses valeurs — le
      flou est ce qui fait la difference entre « ca apparait » et « ca se pose ».

   CE QU'ON NE PREND PAS, et pourquoi : le damier de cellules teintees
   (`bg-secondary` une case sur deux). Il fonctionne sur une page blanche ou la
   teinte est un gris ; transpose sur notre fond nuit, l'alternance blanc /
   #F8F9FC est sous le seuil de perception. Il ne survit pas au changement de
   fond.
   =========================================================================== */

/* --- 1. Les croix aux intersections -------------------------------------- */
.elementor-6489 .dc-eco .dc-client-chip{position:relative!important;}
.elementor-6489 .dc-eco .dc-client-chip::before,
.elementor-6489 .dc-eco .dc-client-chip::after{
  content:"";position:absolute;z-index:3;pointer-events:none;
  /* La croix est SOMBRE : elle deborde de 5 px sur quatre cellules blanches,
     donc c'est sur le blanc qu'elle doit se lire, pas sur le filet d'un pixel.
     Dans le composant d'origine la page est blanche et l'icone en currentColor
     — meme raisonnement, fond inverse. */
  /* Bras de 2 px et non 1 : dans le composant d'origine les filets de la
     grille sont CLAIRS et la croix sombre, elle se detache donc partout. Ici
     les filets sont sombres (c'est la nuit qui passe entre les cellules) : la
     croix ne se lit que par ses quatre debords sur le blanc, et un bras d'un
     pixel y etait invisible. */
  background:rgba(15,27,61,.62);opacity:0;transition:opacity .3s ease;}
/* La croix est centree sur le point ou quatre cellules se rejoignent :
   l'angle bas-droit de la cellule, decale d'un demi-pixel pour tomber au
   milieu du filet d'un pixel. */
.elementor-6489 .dc-eco .dc-client-chip::before{
  width:23px;height:2px;right:-11.5px;bottom:-1px;}
.elementor-6489 .dc-eco .dc-client-chip::after{
  width:2px;height:23px;right:-1px;bottom:-11.5px;}

/* La croix ne se dessine qu'aux intersections INTERIEURES : jamais sur la
   derniere colonne, jamais sur la derniere rangee. Calcule par grille.
   « A l'initiative de » — 4 colonnes, 8 logos : rangee 1, colonnes 1 a 3. */
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(1)::before,
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(1)::after,
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(2)::before,
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(2)::after,
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(3)::before,
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(3)::after,
/* « Nos partenaires » — 6 colonnes, 12 logos : rangee 1, colonnes 1 a 5. */
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(1)::before,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(1)::after,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(2)::before,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(2)::after,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(3)::before,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(3)::after,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(4)::before,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(4)::after,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(5)::before,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(5)::after{
  opacity:1;}
/* « Avec le soutien de » n'a qu'une rangee : aucune intersection interieure. */

/* Le bloc garde overflow:hidden — c'est lui qui donne les coins arrondis.
   Les croix ne sont posees qu'aux intersections INTERIEURES, donc elles ne
   touchent jamais le bord : rien a rogner. C'est la cellule qui doit laisser
   depasser. */
.elementor-6489 .dc-eco .dc-client-list{overflow:hidden!important;}
.elementor-6489 .dc-eco .dc-client-chip{overflow:visible!important;}

/* --- 2. L'apparition, aux valeurs du composant --------------------------- */

/* ===========================================================================
   FAQ — LA LARGEUR DU WIREFRAME — 9 septembre 2026
   Releve par Yassine : notre FAQ prend les 1180 px du conteneur alors que le
   wireframe l'enferme dans `<div style="max-width:820px">`. Ce n'est pas un
   detail : a 1180 px, une question de six mots laisse 900 px de vide avant son
   icone, et la reponse depasse les 100 signes par ligne.
   =========================================================================== */
.elementor-6489 .elementor-accordion{max-width:820px!important;}

/* Les croix sont calculees pour 4 et 6 colonnes. Sous 1025 px les grilles
   passent a 3 puis a 2 colonnes : les intersections interieures ne sont plus
   aux memes rangs, et une croix se retrouverait au bord. On les retire — c'est
   un detail de format large, pas une information. */
@media (max-width:1024px){
  .elementor-6489 .dc-eco .dc-client-chip::before,
  .elementor-6489 .dc-eco .dc-client-chip::after{display:none!important;}
}

/* ===========================================================================
   MUR DE LOGOS — LES TROIS CORRECTIFS — 9 septembre 2026
   =========================================================================== */

/* --- A. POURQUOI LES CROIX NE SE VOYAIENT PAS -----------------------------
   Elles etaient bien dessinees (opacite 1 verifiee au calcul) mais REPEINTES.
   Une croix appartient a la cellule 1 et deborde sur les cellules 2, 5 et 6 ;
   celles-ci viennent APRES dans le DOM et leur fond blanc opaque passe
   par-dessus. Le z-index de 3 pose sur le pseudo-element n'y change rien : il
   ne joue qu'a l'interieur du contexte d'empilement de sa cellule, et cette
   cellule est en z-index:auto — elle se peint donc a son rang.
   Il faut lever la CELLULE, pas le pseudo-element. */
.elementor-6489 .dc-eco .dc-client-chip:has(::before){z-index:2;}
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(-n+3),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(-n+5){
  z-index:2!important;}

/* --- B. L'ALTERNANCE DES FONDS -------------------------------------------
   Yassine : « on pourrait alterner entre fond blanc et fond legerement
   transparent ? » Oui, et j'avais ecarte l'idee sur une mauvaise
   transposition : j'avais teste blanc / #F8F9FC, deux clairs indiscernables.
   Sur un fond NUIT, une cellule translucide laisse passer la nuit — l'ecart se
   voit tres bien. C'est exactement la logique du damier de logo-cloud-2,
   transposee correctement.
   Calcul du damier par grille : une cellule sur deux, en decalant d'une rangee
   a l'autre, sinon on obtient des colonnes rayees et non un damier.
     4 colonnes / 8 logos  -> 2, 4, 5, 7
     3 colonnes / 3 logos  -> 2
     6 colonnes / 12 logos -> 2, 4, 6, 7, 9, 11 */
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(2),
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(4),
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(5),
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(7),
.elementor-6489 .elementor-element-c974334 > .dc-client-chip:nth-child(2),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(2),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(4),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(6),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(7),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(9),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(11){
  background-color:rgba(255,255,255,.90)!important;}
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:hover{
  background-color:#FFFFFF!important;}

/* --- C. L'APPARITION, VERSION QUI SE VOIT --------------------------------
   Etat de depart : VISIBLE. C'est le script (widget 531d258) qui pose
   .dc-logo-anim pour armer, puis .dc-logo-go pour jouer. Sans script, rien
   n'est cache. Valeurs reprises telles quelles de cinematic-logo-cloud :
   opacity 0 / y 20 / blur 12px -> 1.2 s, cubic-bezier(.16,1,.3,1),
   0,1 s de decalage entre voisins. */
@keyframes dc-logo-pose{
  from{opacity:0;transform:translateY(20px);filter:blur(12px);}
  to  {opacity:1;transform:none;filter:blur(0);}}

/* PAS d'etat « arme » : aucune regle ne pose opacite 0 en permanence.
   `backwards` applique l'etat de depart pendant le delai de l'animation et
   pendant elle seule — avant la classe, et apres l'animation, le logo est a
   son etat normal. Aucun chemin ne peut le cacher. */
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip{
  animation:dc-logo-pose 1.2s cubic-bezier(.16,1,.3,1) backwards;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(1){animation-delay:0s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(2){animation-delay:.10s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(3){animation-delay:.20s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(4){animation-delay:.30s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(5){animation-delay:.40s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(6){animation-delay:.50s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(7){animation-delay:.60s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(8){animation-delay:.70s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(9){animation-delay:.80s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(10){animation-delay:.90s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(11){animation-delay:1.00s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(12){animation-delay:1.10s;}
/* Le widget qui porte le script ne doit rien occuper. */
.elementor-6489 .dc-anim-script{display:none!important;}

/* Le damier est calcule pour 4 et 6 colonnes. Sous 1025 px les grilles passent
   a 3 puis 2 colonnes : les memes rangs ne donnent plus une alternance mais
   des colonnes rayees. On revient au blanc plein — meme raison que pour les
   croix. */
@media (max-width:1024px){
  .elementor-6489 .dc-eco .dc-client-chip.dc-client-chip{
    background-color:#FFFFFF!important;}
}

/* ===========================================================================
   MUR DE LOGOS — QUATRIEME PASSE, ET LA BONNE — 9 septembre 2026
   Quatre remarques de Yassine, et elles se tiennent toutes.
   =========================================================================== */

/* --- 1. LES FONDS BLANCS DES LOGOS ---------------------------------------
   « Certains logos sur fond translucide ont des fonds blancs, ça ne donne pas
   bien. Ça devrait être des png transparents non ? » Exactement : ONZE des
   vingt-trois fichiers etaient opaques (JPEG, ou PNG a alpha plein) — un
   rectangle blanc pose sur une cellule translucide, donc une tache plus claire.

   Les onze ont ete detoures : remplissage par diffusion depuis les BORDS, et
   non suppression de tout le blanc. La nuance compte — le blanc interieur des
   marques doit rester : le contre-poincon du A de VDAB, les pastilles du CSC,
   la carte du CGSLB, le carre bleu de l'ULB. Un seuil global les aurait perces.
   Liseré d'anticrenelage adouci au flou gaussien 0,6 px. */

/* --- 2. LES COULEURS : Yassine a lu le modele mieux que moi ---------------
   « Sur le modele elles sont blanches et les lignes sont grises claires, du
   coup ca ressort bien. » C'est exactement le rapport de valeurs qui manquait :
   dans logo-cloud-2 la croix et les filets sont de VALEURS OPPOSEES. Chez nous
   les deux etaient sombres — les filets parce que c'est la nuit qui passe entre
   les cellules, la croix parce qu'elle doit se lire sur le blanc.

   On renverse : le bloc ne laisse plus passer la nuit, il porte son propre gris
   clair. Les filets deviennent donc gris clairs, la croix reste sombre, et le
   rapport du modele est retabli. Effet de bord heureux : les cellules
   translucides montrent ce meme gris clair au lieu de la nuit — c'est-a-dire le
   damier `bg-secondary` du modele, cette fois a l'identique. */
.elementor-6489 .dc-eco .dc-client-list{
  background:#DFE3EC!important;border-color:#DFE3EC!important;}
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(2),
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(4),
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(5),
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(7),
.elementor-6489 .elementor-element-c974334 > .dc-client-chip:nth-child(2),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(2),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(4),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(6),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(7),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(9),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(11){
  background-color:#F2F4F9!important;}

/* --- 3. LA CROIX AMPUTEE A DROITE ----------------------------------------
   « Sur certaines croix il manque la partie droite. » Vu : la cellule 1 et la
   cellule 2 portaient toutes deux z-index:2, et a z-index EGAL c'est l'ordre du
   DOM qui tranche — la cellule 2, posee apres, repeignait le bras droit de la
   croix de la cellule 1. On donne un z-index decroissant : chaque porteuse
   passe devant sa voisine de droite. */
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(1){z-index:9!important;}
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(2){z-index:8!important;}
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(3){z-index:7!important;}
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(1){z-index:9!important;}
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(2){z-index:8!important;}
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(3){z-index:7!important;}
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(4){z-index:6!important;}
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(5){z-index:5!important;}
.elementor-6489 .dc-eco .dc-client-chip::before,
.elementor-6489 .dc-eco .dc-client-chip::after{
  background:rgba(15,27,61,.55)!important;}

/* --- 4. LE SURVOL : on l'enleve ------------------------------------------
   « Est-ce pertinent d'avoir un effet au survol ? » Non. Ces logos ne sont pas
   des liens : rien ne s'ouvre quand on clique. Un etat de survol promet une
   interaction qui n'existe pas — c'est une fausse affordance. */
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:hover{
  background-color:inherit!important;transform:none!important;box-shadow:none!important;}
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(2):hover,
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(4):hover,
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(5):hover,
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(7):hover,
.elementor-6489 .elementor-element-c974334 > .dc-client-chip:nth-child(2):hover,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(2):hover,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(4):hover,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(6):hover,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(7):hover,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(9):hover,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(11):hover{
  background-color:#F2F4F9!important;}

/* --- 5. « QUAND LES LOGOS APPARAISSENT LE BLOC GRIS EST DEJA LA » ---------
   Juste : la grille se dessinait avant son contenu, on voyait un cadre vide se
   remplir. Le bloc entre maintenant avec ses logos — meme courbe, sans decalage,
   et sans jamais poser d'etat cache : c'est `backwards` qui applique le depart
   pendant la seule duree de l'animation. */
@keyframes dc-bloc-pose{
  from{opacity:0;transform:translateY(14px);}
  to  {opacity:1;transform:none;}}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go{
  animation:dc-bloc-pose .9s cubic-bezier(.16,1,.3,1) backwards;}

@media (max-width:1024px){
  .elementor-6489 .dc-eco .dc-client-chip.dc-client-chip{background-color:#FFFFFF!important;}
}

/* ===========================================================================
   LE DAMIER : ON L'ENLEVE — 9 septembre 2026
   « On n'est pas obliges d'alterner. Quel est le meilleur choix en termes de
   design et qui colle le plus au style de Digitalcity ? »

   Sans damier, et pour une raison qui tient a la charte plutot qu'au gout.

   1. Dans logo-cloud-2, l'alternance existe pour casser la monotonie d'une
      grande grille uniforme posee sur une page BLANCHE. Ici le bloc est deja un
      objet clair pose sur une section NUIT : le contraste figure/fond est fait.
      L'alternance ajoute un second rythme la ou il n'y a rien a casser.

   2. Vingt-trois logos, ce sont deja vingt-trois couleurs et vingt-trois
      formes. Un damier leur ajoute une trame qui entre en concurrence avec eux
      au lieu de les servir.

   3. Et surtout : sur ce site, LA COULEUR PORTE DU SENS. Une couleur par
      rubrique dans le carrefour, une couleur par modalite dans l'agenda, une
      couleur par cible dans le heros. Nulle part la V5 validee n'emploie une
      alternance decorative. Un damier serait le premier endroit ou une
      difference de couleur ne voudrait rien dire — et c'est exactement ce qui
      fait qu'un detail se remarque comme « ajoute ».

   Reste : cellules blanches uniformes, filets gris clairs, croix sombres aux
   intersections. La grille se lit comme un plan dessine, et les logos sont les
   seuls a porter de la couleur.
   =========================================================================== */
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip,
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(2),
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(4),
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(5),
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:nth-child(7),
.elementor-6489 .elementor-element-c974334 > .dc-client-chip:nth-child(2),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(2),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(4),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(6),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(7),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(9),
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:nth-child(11){
  background-color:#FFFFFF!important;}

/* En deux colonnes, une rangee a nombre impair laisse une cellule vide en bas
   a droite — et comme le fond du bloc est gris, ca fait un trou. Le dernier
   logo prend alors toute la largeur. Meme traitement que les logos partenaires
   de la page d'accueil, deja arbitre avec Yassine. */
@media (max-width:600px){
  .elementor-6489 .dc-eco .dc-client-list > .dc-client-chip:last-child:nth-child(odd){
    grid-column:1 / -1!important;}
}

/* ===========================================================================
   LE BLOC NE DOIT PAS EXISTER AVANT SES CELLULES — 9 septembre 2026
   « On ne devrait pas voir le bloc gris tout court, et laisser les blocs
   former le bloc eux-memes. »

   Diagnostic : le gris n'etait pas une decoration du bloc, c'etait SON FOND —
   les filets sont le fond du conteneur qui transparait dans les gouttieres
   d'un pixel. Le rectangle gris precede donc forcement ses cellules, et
   l'animation ne pouvait pas y changer quoi que ce soit : on remplissait un
   cadre deja dessine.

   Correctif : le filet change de proprietaire. Le conteneur devient
   transparent, et chaque cellule porte SON PROPRE contour en `box-shadow`
   exterieur d'un pixel. Les contours de deux voisines se rejoignent dans la
   gouttiere et n'en font qu'un ; le pourtour du bloc est dessine par les
   cellules de bord. Resultat : il n'y a plus de bloc du tout — il n'y a que
   des cellules, et la grille apparait a mesure qu'elles se posent.

   C'est aussi plus juste conceptuellement : ce qu'on dessine, ce sont des
   cellules voisines, pas une plaque percee.
   =========================================================================== */
.elementor-6489 .dc-eco .dc-client-list{
  background:transparent!important;background-color:transparent!important;
  border:0!important;}
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip{
  box-shadow:0 0 0 1px #DFE3EC!important;}

/* Le bloc n'a plus d'apparition propre : il n'existe plus en tant qu'objet. */
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go{animation:none!important;}

/* ===========================================================================
   LE SURVOL QUI VIDAIT LA CELLULE — 9 septembre 2026
   « Pourquoi quand on survole, certains logos n'ont plus de fond ? »
   Bug de ma main, et instructif. Pour neutraliser l'ancien survol j'avais
   ecrit `background-color:inherit`. A l'epoque le conteneur portait le gris,
   donc `inherit` donnait du gris — deja faux, mais invisible. Depuis que les
   filets sont passes aux cellules, le conteneur est TRANSPARENT : `inherit`
   rend donc la cellule transparente, et c'est la nuit qui remonte.

   `inherit` n'est jamais la bonne facon d'annuler un survol — il fait dependre
   l'etat d'un parent qui peut changer, et il a change. On nomme la valeur.
   =========================================================================== */
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:hover,
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:focus-within,
.elementor-6489 .elementor-element-2c4e7a2 > .dc-client-chip:hover,
.elementor-6489 .elementor-element-c974334 > .dc-client-chip:hover,
.elementor-6489 .elementor-element-2ba4bac > .dc-client-chip:hover{
  background-color:#FFFFFF!important;
  transform:none!important;box-shadow:0 0 0 1px #DFE3EC!important;}

/* ===========================================================================
   LES CROIX ARRIVENT APRES — 9 septembre 2026
   « Est-ce qu'on laisse comme ca ou c'est mieux qu'elles apparaissent apres ? »
   Apres, et pour une raison de sens : une croix marque une INTERSECTION, donc
   la rencontre de quatre cellules. Tant que ces quatre-la ne sont pas posees,
   elle marque une rencontre qui n'a pas encore eu lieu — on voyait une croix
   flotter au-dessus du vide. Elle appartient au dessin acheve, pas a sa
   construction.

   La derniere cellule finit a 1,10 s de decalage + 1,2 s d'animation = 2,3 s.
   Les croix entrent donc a 2,3 s, en 0,45 s. Un second temps, tres court.

   Meme discipline que pour les logos : l'etat de repos est VISIBLE. C'est
   `backwards` qui tient la croix a zero pendant le seul delai de l'animation.
   Sans script, les croix sont simplement la.
   =========================================================================== */
@keyframes dc-croix-pose{from{opacity:0;}to{opacity:1;}}
/* L'animation ne doit porter QUE sur les cellules qui ont une croix.
   Le bug signale par Yassine — « on voit celles de la rangee du dessous
   apparaitre puis disparaitre » — venait de la : l'animation etait posee sur
   TOUTES les cellules, y compris celles de la derniere colonne et de la
   derniere rangee, dont la croix doit rester invisible. Or `dc-croix-pose` va
   de 0 a 1, et `backwards` ne retient l'etat de depart QUE pendant le delai :
   a la fin de l'animation la valeur revient a la regle de base, c'est-a-dire
   opacity:0. Ces croix montaient donc a 1 pendant 0,45 s avant de retomber.
   `forwards` n'aurait pas corrige non plus — il les aurait laissees visibles.
   Il fallait restreindre la portee, pas changer le fill-mode. */
.elementor-6489 .elementor-element-2c4e7a2.dc-logo-go > .dc-client-chip:nth-child(1)::before,
.elementor-6489 .elementor-element-2c4e7a2.dc-logo-go > .dc-client-chip:nth-child(1)::after,
.elementor-6489 .elementor-element-2c4e7a2.dc-logo-go > .dc-client-chip:nth-child(2)::before,
.elementor-6489 .elementor-element-2c4e7a2.dc-logo-go > .dc-client-chip:nth-child(2)::after,
.elementor-6489 .elementor-element-2c4e7a2.dc-logo-go > .dc-client-chip:nth-child(3)::before,
.elementor-6489 .elementor-element-2c4e7a2.dc-logo-go > .dc-client-chip:nth-child(3)::after,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(1)::before,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(1)::after,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(2)::before,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(2)::after,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(3)::before,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(3)::after,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(4)::before,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(4)::after,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(5)::before,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(5)::after{
  animation:dc-croix-pose .45s ease 2.3s backwards;}
@media (prefers-reduced-motion:reduce){
  .elementor-6489 .dc-eco .dc-client-chip::before,
  .elementor-6489 .dc-eco .dc-client-chip::after{animation:none!important;}
}

/* ===========================================================================
   LE TEMPS DE LA SEQUENCE — 9 septembre 2026
   « Les croix apparaissent a temps, trop tot ou trop tard ? »
   Trop tard, et c'est chiffrable. Avec un decalage de 0,10 s sur douze
   cellules et 1,2 s d'animation, la derniere finissait a 2,30 s ; les croix
   entraient la-dessus et la sequence s'achevait a 2,75 s.

   Sur une page ou l'on defile, une apparition declenchee a l'entree dans
   l'ecran doit se resoudre en 1,5 s environ. Au-dela, le regard est deja plus
   bas : la fin de l'animation se joue pour personne, et ce qu'on percoit n'est
   pas de la lenteur elegante mais un retard.

   On resserre sans denaturer : duree 0,9 s au lieu de 1,2, decalage 0,06 s au
   lieu de 0,10. La derniere cellule finit a 0,66 + 0,9 = 1,56 s. Les croix
   entrent a 1,50 s — juste comme la derniere cellule se pose, donc au moment
   ou l'intersection qu'elles marquent existe enfin — et la sequence s'acheve a
   1,90 s. Le flou et la courbe du modele sont conserves : c'est eux qui font
   le caractere, pas la duree.
   =========================================================================== */
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip{
  animation:dc-logo-pose .9s cubic-bezier(.16,1,.3,1) backwards;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(1){animation-delay:0.00s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(2){animation-delay:0.06s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(3){animation-delay:0.12s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(4){animation-delay:0.18s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(5){animation-delay:0.24s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(6){animation-delay:0.30s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(7){animation-delay:0.36s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(8){animation-delay:0.42s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(9){animation-delay:0.48s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(10){animation-delay:0.54s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(11){animation-delay:0.60s;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip:nth-child(12){animation-delay:0.66s;}
.elementor-6489 .elementor-element-2c4e7a2.dc-logo-go > .dc-client-chip:nth-child(1)::before,
.elementor-6489 .elementor-element-2c4e7a2.dc-logo-go > .dc-client-chip:nth-child(1)::after,
.elementor-6489 .elementor-element-2c4e7a2.dc-logo-go > .dc-client-chip:nth-child(2)::before,
.elementor-6489 .elementor-element-2c4e7a2.dc-logo-go > .dc-client-chip:nth-child(2)::after,
.elementor-6489 .elementor-element-2c4e7a2.dc-logo-go > .dc-client-chip:nth-child(3)::before,
.elementor-6489 .elementor-element-2c4e7a2.dc-logo-go > .dc-client-chip:nth-child(3)::after,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(1)::before,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(1)::after,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(2)::before,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(2)::after,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(3)::before,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(3)::after,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(4)::before,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(4)::after,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(5)::before,
.elementor-6489 .elementor-element-2ba4bac.dc-logo-go > .dc-client-chip:nth-child(5)::after{
  animation:dc-croix-pose .4s ease 1.5s backwards;}

/* ===========================================================================
   LES LOGOS DEVIENNENT DES LIENS — 9 septembre 2026
   « Y a plus l'effet au survol, c'est volontaire ? » Oui — mais la question a
   fait remonter un fait qui change la reponse : SUR LEUR SITE ACTUEL, LES
   LOGOS PARTENAIRES SONT DES LIENS vers les sites des partenaires. Verifie sur
   /fr/nos-partenaires : 34 logos, 34 balises <a>.

   Le wireframe, lui, les rend en <span> — mais c'est une maquette en niveaux
   de gris, elle ne se prononce pas sur l'interactivite. L'usage etabli du
   client tranche.

   Les 23 URL ont ete reprises de leur propre page (les trois manquantes —
   CNE, Synova, Beliris — depuis les sites officiels). Chaque cellule devient
   un <a>, avec aria-label explicite, target _blank et rel noopener.

   ET DONC LE SURVOL REDEVIENT NECESSAIRE : un element interactif doit montrer
   qu'il repond. Ce que je disais tout a l'heure — « une fausse affordance » —
   etait juste tant que ce n'etaient pas des liens ; ca ne l'est plus.
   Traitement discret : le logo passe de 92 % a 100 % d'opacite et la cellule
   se souleve d'un pixel. Pas de changement de fond, qui ferait clignoter le
   damier de blancs.
   =========================================================================== */
.elementor-6489 .dc-eco .dc-client-chip{
  text-decoration:none!important;cursor:pointer;
  transition:opacity .25s ease, transform .25s ease, box-shadow .25s ease;}
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip{opacity:.92;}
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:hover,
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:focus-visible{
  opacity:1!important;background-color:#FFFFFF!important;
  transform:translateY(-1px)!important;
  box-shadow:0 0 0 1px #C3CAD9, 0 6px 14px -8px rgba(15,27,61,.45)!important;}
.elementor-6489 .dc-eco .dc-client-chip:focus-visible{
  outline:2px solid var(--dc-bleu-logo)!important;outline-offset:2px!important;}

/* ===========================================================================
   LE BOUTON BLEU AU SURVOL DANS « ADRESSE ET COORDONNEES »
   Signale par Yassine. Les deux renvois ont ete passes en liens soulignes
   quand la carte a saute — mais le fond de survol du bouton d'origine, lui,
   est reste : `.dc-btn-primary .elementor-button:hover` du socle repeint en
   bleu. Un lien souligne n'a pas de fond, ni au repos ni au survol.
   =========================================================================== */
.elementor-6489 .dc-contact-card .elementor-button:hover,
.elementor-6489 .dc-contact-card .elementor-button:focus{
  background:transparent!important;background-color:transparent!important;
  background-image:none!important;box-shadow:none!important;}

/* --- Le lien couvre la cellule -------------------------------------------
   `.dc-client-chip` n'est pas un conteneur mais le WIDGET TITRE : `html_tag:a`
   transforme donc le titre lui-meme, c'est-a-dire l'element que nous avions
   reduit a 1x1 pour le masquer. Le lien existait, invisible et hors d'atteinte.

   On en fait la surface entiere de la cellule : `inset:0`, et le texte est
   pousse hors du cadre par `text-indent` plutot que par un `clip-path`. La
   difference compte — le nom reste dans l'arbre d'accessibilite ET sert de
   nom accessible au lien, ce qu'un `clip-path` sur une boite de 1 px ne
   permettait pas de facon fiable. C'est le procede classique du lien etendu. */
.elementor-6489 .dc-eco .dc-client-list .dc-client-chip .elementor-heading-title{
  position:absolute!important;inset:0!important;
  width:auto!important;height:auto!important;
  display:block!important;overflow:hidden!important;
  clip-path:none!important;
  text-indent:110%!important;white-space:nowrap!important;
  font-size:12px!important;line-height:0!important;color:transparent!important;
  z-index:4!important;}
.elementor-6489 .dc-eco .dc-client-list .dc-client-chip a.elementor-heading-title{
  cursor:pointer;text-decoration:none!important;}
.elementor-6489 .dc-eco .dc-client-chip:has(a:focus-visible){
  outline:2px solid var(--dc-bleu-logo)!important;outline-offset:2px!important;}

/* Correction : le widget Titre rend `<div class="elementor-heading-title">
   <a href>…</a></div>` — le lien est DANS le titre, pas le titre lui-meme.
   C'est le <a> qu'il faut etendre. */
.elementor-6489 .dc-eco .dc-client-list .dc-client-chip .elementor-heading-title{
  position:static!important;inset:auto!important;
  width:auto!important;height:auto!important;
  overflow:visible!important;clip-path:none!important;
  text-indent:0!important;line-height:0!important;}
.elementor-6489 .dc-eco .dc-client-list .dc-client-chip .elementor-heading-title a{
  position:absolute!important;inset:0!important;z-index:4!important;
  display:block!important;overflow:hidden!important;
  /* opacity:0 plutot que color:transparent + text-indent. Les deux rendent le
     texte invisible, mais seule l'opacite nulle est comprise par les sondes
     d'accessibilite comme « non peint » : avec la version precedente, le banc
     comptait 23 noms de partenaires en texte transparent pleine cellule et
     sortait 24 echecs de contraste d'un coup. Un element a opacite nulle reste
     cliquable et reste annonce par les lecteurs d'ecran — on ne perd donc ni
     le lien ni son nom accessible. */
  opacity:0!important;font-size:12px!important;
  text-decoration:none!important;cursor:pointer;}

/* Retour au survol d'origine, sur demande de Yassine. Ce qui n'allait pas dans
   la version precedente, c'est surtout l'etat de REPOS : je posais les logos a
   92 % d'opacite pour reserver le 100 % au survol, ce qui les ternissait tous
   les vingt-trois en permanence. Un logo de partenaire ne doit pas etre
   attenue — c'est leur marque.
   On garde donc l'opacite pleine au repos, et le survol se limite au geste
   d'origine : la cellule se souleve et prend une ombre. */
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip{opacity:1!important;}
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:hover,
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:focus-within{
  opacity:1!important;background-color:#FFFFFF!important;
  transform:translateY(-3px)!important;
  box-shadow:0 0 0 1px #DFE3EC, 0 10px 22px -10px rgba(0,0,0,.45)!important;}

/* Survol : gris clair, pas translucide — et c'est un choix, pas une hesitation.
   Une cellule translucide laisserait passer la nuit, donc s'ASSOMBRIRAIT : la
   plupart de ces marques sont dessinees en fonce sur clair, on leur retirerait
   du contraste au moment precis ou l'on veut attirer l'oeil dessus. Le gris
   clair va dans l'autre sens — il marque la cellule sans toucher a la
   lisibilite du logo. On prend #F2F4F9, le gris 100 de la charte, plutot
   qu'une valeur inventee. */
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:hover,
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:focus-within{
  background-color:#F2F4F9!important;
  transform:translateY(-3px)!important;
  box-shadow:0 0 0 1px #DFE3EC, 0 10px 22px -10px rgba(0,0,0,.45)!important;}

/* Survol : le fond change, rien d'autre. Pas de soulevement, pas d'ombre —
   c'est l'ombre portee qui faisait la « ligne noire en dessous ». */
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip,
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:hover,
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:focus-within{
  transform:none!important;
  box-shadow:0 0 0 1px #DFE3EC!important;
  transition:background-color .2s ease!important;}
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:hover,
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:focus-within{
  background-color:#F2F4F9!important;}

/* ===========================================================================
   A PROPOS PASSE A LA LARGEUR DU SITE — 9 septembre 2026
   Relevé par Yassine, et les quatre wireframes portent la MEME regle :
       .container{max-width:1280px; margin:0 auto; padding:0 5%}
   Mesure sur les pages en ligne : accueil V5 et Actualites sont a 1312 px,
   A propos a 1180. C'est donc A propos l'exception, pas les autres.

   Le risque est faible et il a ete evalue avant d'agir : tout ce qui est en
   dessous est fluide — les grilles sont en `repeat(N, 1fr)`, les deux blocs a
   deux colonnes en `1fr`/`40 %`, les cartes en `minmax(0,1fr)`. Rien n'est en
   largeur fixe sauf le rail du carrefour (330 px), qui doit justement rester
   fixe : c'est le panneau a cote qui prend la difference.
   =========================================================================== */
.elementor-6489 .e-con.e-con-boxed > .e-con-inner{
  max-width:1312px!important;}

/* ===========================================================================
   LE PAVE CTA REPREND CELUI DE LA V5 — 9 septembre 2026
   Releve par Yassine, et le diagnostic remonte plus loin qu'aujourd'hui.

   1. LA RANGEE DE PROFILS. La mise en page du pave vit dans le CSS DE LA PAGE
      3574, donc elle ne sert que l'accueil :
        .dc-cta-profiles p{display:flex; justify-content:center;
                           flex-wrap:wrap; gap:16px;}
      A propos n'en avait recu qu'une copie PARTIELLE — les couleurs des liens,
      pas la disposition. D'ou trois liens colles au lieu d'etre espaces de
      16 px. Ce n'est pas une regression du jour : le pave etait incomplet
      depuis sa mise en place.

   2. LE SOUS-TITRE SUR DEUX LIGNES. Celle-la est de ce soir : ma regle
      d'alignement `.dc-header-text .elementor-widget-text-editor{max-width:60ch}`
      — posee pour brider les chapeaux de section — atteignait aussi le
      sous-titre du pave CTA, qui vit dans un `.dc-header-text`. 60ch valent
      526 px, la ou la V5 lui laisse min(620px, 92%). D'ou la casse en deux
      lignes. On exclut le pave de cette regle.

   A REPORTER DANS LE SOCLE le jour ou l'accueil se rouvre : ces regles
   devraient vivre avec `.dc-cta-band`, pas dans le CSS d'une page.
   =========================================================================== */
.elementor-6489 .dc-cta-profiles p{
  display:flex!important;align-items:center!important;justify-content:center!important;
  flex-wrap:wrap!important;gap:16px!important;
  font-size:13px!important;color:rgba(255,255,255,.5)!important;margin:0!important;}

/* Le sous-titre est `.dc-cta-lead`, pas un `.dc-header-text` — ma premiere
   correction visait le mauvais element. La vraie cause est le socle :
   `.dc-cta-lead p{max-width:52ch}` rabote le paragraphe a 526 px, sous les
   577 necessaires. C'est le piege deja documente le 3 septembre pour
   l'accueil, et corrige la-bas DANS LE CSS DE LA PAGE 3574 — donc A propos ne
   l'a jamais recu. On porte les deux memes regles. */
.elementor-6489 .dc-cta-band .dc-cta-lead{
  max-width:min(620px,92%)!important;margin-inline:auto!important;}
.elementor-6489 .dc-cta-band .dc-cta-lead p{
  max-width:100%!important;margin-inline:auto!important;text-wrap:balance;}


/* ===========================================================================
   LES TUILES DE LA CARTE — 10 septembre 2026
   Trouve en cherchant l'origine des coins arrondis des vignettes d'actualites :
   le kit Elementor porte `.elementor-kit-7 img{border-radius:16px}` pour TOUTE
   image du site. Une carte Leaflet est faite de <img> de 256 px posees bord a
   bord : chacune recevait donc 16 px de rayon, et la carte etait une mosaique
   de carreaux aux coins ronges. C'est le cadre de la carte qui arrondit, pas
   les tuiles.
   =========================================================================== */
.elementor-6489 .leaflet-container img{border-radius:0!important;}


/* ===========================================================================
   LE CARREFOUR SOUS 1025 px : LE TITRE DIT DEUX FOIS — 10 septembre 2026, nuit
   Sur bureau, la liste des rubriques est un rail a gauche et le panneau a
   droite : le titre du panneau nomme ce qu'on regarde, a distance de l'onglet.
   Sous 1025 px la mise en page passe en accordeon — l'onglet actif se pose
   DIRECTEMENT au-dessus de son panneau — et « L'equipe » se lit alors deux
   fois a 6 px d'intervalle, dans le meme bloc violet.
   L'onglet nomme deja la rubrique ; on ne garde dans le panneau que ce qu'il
   apporte en propre : la photo, la description longue et le bouton.
   =========================================================================== */
@media (max-width:1024px){
  .elementor-6489 .dc-hub-panel-title{display:none!important;}
}


/* ===========================================================================
   LE MUR DE LOGOS : NORMALISER PAR LA BOITE, PAS PAR LA HAUTEUR — nuit du 10/9
   Les logos etaient dimensionnes par `background-size: auto 60%` : une hauteur
   imposee, une largeur libre. Les cellules faisant 171 x 66 px sur telephone,
   un logotype tres large — SYNOVA, AGORIA, VDAB — depassait la largeur utile et
   venait toucher les deux bords, quand les blocs-marques compacts respiraient.
   Un mur de logos s'equilibre a l'oeil, donc par la BOITE : chacun prend la
   plus grande taille qui tient dans la cellule marginee. Les larges sont alors
   bornes par la largeur, les compacts par la hauteur, et aucun ne touche le
   bord. La marge optique existait deja (padding 14/16) : il suffisait de la
   faire compter, ce que fait `background-origin: content-box`.
   =========================================================================== */
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip{
  background-size:contain!important;
  background-origin:content-box!important;
  /* La marge laterale passe de 16 a 26 px : les cellules ne font que 171 px de
     large sur telephone, et 16 px ne suffisaient pas a donner de l'air aux
     logotypes larges, qui venaient encore fleurter avec le bord. La marge
     verticale ne bouge pas — les cellules ne font que 66 px de haut. */
  padding:14px 26px!important;}

/* RESTE A LA MAIN, et ce n'est pas du CSS : quatre fichiers portent leur propre
   marge blanche et une typo minuscule (Region de Bruxelles-Capitale, Technicity,
   Cite des metiers, BiASC). Ils sortent donc petits meme bornes correctement.
   Aucun reglage global ne rattrape une marge cuite dans le fichier : il faut
   soit un facteur d'echelle par logo, soit — mieux — demander les versions
   detourees a la cliente. A voir avec Yassine. */


/* ############################################################################
   #  LE CARREFOUR : RECADRAGE, DEGRADE, MATIERE — 11 septembre 2026, matin
   #
   #  Trois demandes de Yassine sur cette section, et une remarque de la
   #  cliente : « une touche de glossy ». On ne l'invente pas : la V5 a deja son
   #  vocabulaire de brillance — un balayage clair en `background-clip:text`
   #  (dc-gloss-clair) et le grain en feTurbulence des heros. On l'etend ici.
   ############################################################################ */

/* --- 1. LA PHOTO COUPAIT LES VISAGES ---------------------------------------
   La photo fait 800 x 533, le cadre 980 x 440 : en `cover`, l'echelle est de
   1,225, l'image rendue fait donc 653 px de haut pour 440 de cadre — 213 px
   perdus, repartis moitie-moitie a 50 %. Or dans une photo de personnes, les
   visages sont dans le tiers HAUT : c'est exactement la moitie qu'on jetait.
   On remonte le point de cadrage a 30 % : la fenetre descend sur l'image, les
   tetes rentrent, et il reste 66 px de marge en haut pour les autres panneaux.
   -------------------------------------------------------------------------- */
/* [CORRECTION — Yassine, 11/9 : « les tetes sont toujours coupees »]
   J'avais juge sur un recadrage PARTIEL du panneau (les 55 % du haut) et
   conclu a 30 %. Sur le panneau ENTIER, 30 % sauve la tete de l'homme mais
   coupe encore celle de la femme de droite. 15 % est la premiere valeur ou les
   TROIS tetes passent.
   Lecon : sur une question de cadrage, ne jamais trancher sur autre chose que
   le cadre reel — un aper=cu rogne repond a une autre question que celle posee. */
.elementor-6489 .dc-carrefour-photo img{object-position:50% 15%!important;}

/* --- 2. L'ONGLET ACTIF : UN APLAT DEVIENT UNE SURFACE ----------------------
   C'etait le seul aplat de la page — `rgb(109,40,217)`, plein, mat. Trois
   couches, dans cet ordre (rappel : la PREMIERE couche est AU-DESSUS) :
   un reflet diagonal, le degrade de corps, et l'arete lumineuse en `inset`
   qui donne l'epaisseur. C'est la grammaire du verre : une arete claire en
   haut, un corps qui fonce vers le bas, un reflet qui traverse.
   Les teintes ne sont pas nouvelles — #7C3AED et #4C1D95 sont deja les deux
   bornes du degrade violet de la charte web.
   -------------------------------------------------------------------------- */
/* [CORRECTION — Yassine, 11/9 : « reprends les bonnes couleurs »]
   Ma premiere version imposait un degrade violet a TOUS les onglets. Or chaque
   rubrique a sa couleur, et le violet n'etait que celle de « L'equipe » : les
   quatre autres perdaient la leur. La faute est dans le geste, pas dans la
   teinte — j'avais REMPLACE le fond au lieu de poser la matiere DESSUS.
   On ne touche donc plus a `background-color` : Elementor garde la couleur de
   la rubrique, et on ajoute par-dessus, en valeurs neutres, ce qui fait le
   verre — un reflet diagonal, une lumiere en haut, une ombre en bas.
   Meme grammaire, cinq couleurs conservees. */
.elementor-6489 .dc-hub .e-n-tab-title[aria-selected="true"],
.elementor-6489 .dc-hub .e-n-tab-title.e-active{
  background-image:
    linear-gradient(116deg, rgba(255,255,255,0) 26%, rgba(255,255,255,.15) 40%, rgba(255,255,255,0) 54%),
    /* [11/9] Le voile clair du haut est passe de .11 a .05 : mesure au pixel,
       il faisait tomber « Nos infrastructures » — la rubrique la plus claire —
       a 4,35:1 pour son sous-titre, quand la norme en demande 4,5. Sa turquoise
       seule est a 5,36 ; c'etait bien mon voile qui la mangeait. A .05 elle
       remonte a 4,86. L'arete d'un pixel en haut porte de toute facon
       l'essentiel de l'effet — ce large voile n'en etait que le prolongement. */
    linear-gradient(162deg, rgba(255,255,255,.05) 0%, rgba(255,255,255,0) 36%, rgba(0,0,0,.06) 62%, rgba(0,0,0,.20) 100%)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.34),
    inset 0 -1px 0 rgba(0,0,0,.18)!important;}

/* --- 3. LE VOILE DE LA PHOTO : DU GRAIN ET UN REFLET -----------------------
   Le voile etait deux degrades lisses. Lisse, sur une photo, ca fait
   plastique — c'est justement ce que le grain corrige sur les heros de la V5
   et de la page Actualites. On reprend le MEME grain (feTurbulence .85, trois
   octaves), a peine pose, plus une bande speculaire large qui traverse le
   panneau en biais. « Glossy », mais de la brillance de verre, pas de vernis.
   -------------------------------------------------------------------------- */
.elementor-6489 .dc-carrefour-photo{position:absolute;}
.elementor-6489 .dc-carrefour-photo::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
  background-image:
    linear-gradient(118deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.11) 44%, rgba(255,255,255,.03) 52%, rgba(255,255,255,0) 64%),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='.5'/></svg>");
  background-size:auto, 140px 140px;
  background-repeat:no-repeat, repeat;
  opacity:.5;
  mix-blend-mode:soft-light;}







/* ===========================================================================
   « ADRESSE ET COORDONNEES » : LE VIDE A DROITE — 11 septembre 2026
   Yassine : « la section coordonnees, je la trouve bizarre ». Au-dela du lavis
   (corrige plus haut), c'est une question de proportions : la colonne de
   droite faisait 747 px pour 216 px de contenu reel — plus de 500 px de vide,
   soit un tiers de la page. Une carte de 525 px a cote d'un demi-ecran blanc,
   ca ne se lit pas comme une mise en page mais comme un bloc qui a rate sa
   place.
   On rend la largeur a la carte : elle passe a 62 %, et la colonne de texte se
   cale sur ce qu'elle contient vraiment. Rien sous 1025 px, ou les deux blocs
   sont deja empiles.
   =========================================================================== */
@media (min-width:1025px){
  .elementor-6489 .dc-wash-4 .dc-two-col{gap:56px!important;align-items:center!important;}
  .elementor-6489 .dc-wash-4 .dc-two-col > .dc-map-slot{flex:0 0 62%!important;max-width:62%!important;}
  .elementor-6489 .dc-wash-4 .dc-two-col > .dc-contact-card{flex:1 1 auto!important;min-width:0!important;}
}


/* ===========================================================================
   LES CHEVRONS DU CARREFOUR — 11 septembre 2026
   Yassine : « faudrait revoir les fleches non ? ca marche comment dans ce
   genre d'accordeon ? »
   La regle est celle-ci, et elle est la meme partout : LE CHEVRON DIT OU VA
   S'OUVRIR LE CONTENU.
   - Sur bureau, la liste est un rail a GAUCHE et le panneau s'ouvre a DROITE :
     le chevron pointe a droite. C'est juste, on n'y touche pas.
   - Sous 1025 px, la mise en page passe en accordeon et le panneau s'ouvre
     EN DESSOUS : le chevron doit donc pointer vers le BAS quand c'est ferme,
     et se retourner vers le HAUT quand c'est ouvert (il indique alors le
     repli). Un chevron qui pointe a droite dans un accordeon promet une
     navigation laterale qui n'arrive jamais.
   Deuxieme correction, moins visible mais plus importante : le chevron etait
   en `opacity:0` au repos et n'apparaissait qu'au survol. Sur un telephone il
   n'y a PAS de survol — l'affordance qui dit « cette ligne s'ouvre » etait donc
   simplement invisible. Il est desormais toujours la, en retrait.
   =========================================================================== */
@media (max-width:1024px){
  .elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title::after{
    opacity:.5!important;
    transform:translateY(calc(-50% - 2px)) rotate(45deg)!important;}
  .elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title:hover::after{
    opacity:.7!important;
    transform:translateY(calc(-50% - 2px)) rotate(45deg)!important;}
  .elementor-6489 .dc-hub .e-n-tabs-heading .e-n-tab-title[aria-selected="true"]::after{
    opacity:1!important;color:#fff!important;
    transform:translateY(calc(-50% + 2px)) rotate(-135deg)!important;}
}


/* ===========================================================================
   LE BANDEAU SUR LA CARTE — 11 septembre 2026
   Yassine : « je parle aussi du degrade derriere Rue Jules... ».
   Deux raisons de le retirer plutot que de le retoucher :
   1. IL EST REDONDANT. Il affiche « Rue Jules Cockx 6, 1160 Bruxelles
      (Auderghem) » — exactement ce que le bloc COORDONNEES dit a cote, sur
      bureau, et juste en dessous sur telephone. On tamponne une carte pour
      redire ce qui est deja ecrit a trente centimetres.
   2. LE DEGRADE N'EN ETAIT PAS VRAIMENT UN : il allait de .96 a .88 sur les
      55 premiers pour cent, puis chutait a zero. Autrement dit un aplat noir
      sur les deux tiers du bandeau et une transition brutale ensuite — d'ou
      l'impression de barre sale plutot que de fondu. Et sa teinte (#090E26)
      n'existe nulle part ailleurs dans la charte.
   La carte garde donc son cadre net. Une ligne a decommenter si la cliente
   tient au rappel d'adresse sur la carte elle-meme.
   =========================================================================== */
.elementor-6489 .dc-map-note{display:none!important;}


/* ===========================================================================
   « NOS ESPACES » : LES TUILES REJOIGNENT LA FAMILLE — 10 septembre 2026
   Retour d'Hamza : « le style des blocs est beaucoup trop different par
   rapport au reste [...] si on les retrouve nulle part ailleurs dans le site,
   ca risque de faire un peu tache » et « il n'y a pas d'ombre portee, t'as pas
   cet effet de up comme dans les autres cartes ».
   Et sa reserve, qui est celle de Yassine : « sinon c'est redondant ».

   LA REPONSE TIENT DANS CETTE DISTINCTION : ce qui fait la FAMILLE, ce sont
   trois traits — fond blanc, filet, coins arrondis — plus un comportement : la
   montee de 6 px avec ombre portee au survol. Ce qui fait une carte d'ARTICLE,
   c'est son contenu : pastille, date, titre, extrait, lien. On donne donc ici
   les traits de famille et le comportement, et rien du contenu : ces tuiles
   gardent deux lignes (nom + capacite), donc elles resteront visiblement plus
   legeres que les cartes d'articles. Integrees, pas dupliquees.

   La photo perd son rayon propre : c'est la carte qui arrondit, elle a
   `overflow:hidden` — meme principe que les vignettes d'articles.
   =========================================================================== */
/* Chemin complet obligatoire : une regle posee plus haut,
   `.elementor-6489 .elementor-element-d60c03a > .e-con`, depouillait
   volontairement ces tuiles (fond transparent, zero filet, zero rayon) et
   compte trois classes — elle gagnait contre `.elementor-6489 .dc-space-card`
   qui n'en compte que deux. On la double. */
.elementor-6489 .elementor-element-d60c03a > .e-con.dc-space-card{
  background:#FFFFFF!important;background-color:#FFFFFF!important;
  border:1px solid var(--dc-gray-200,#DFE3EC)!important;
  border-radius:var(--dc-radius-lg,16px)!important;
  overflow:hidden!important;
  padding:0 0 18px!important;
  transition:transform .45s var(--dc-ease,ease), box-shadow .45s var(--dc-ease,ease)!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.dc-space-card:hover,
.elementor-6489 .elementor-element-d60c03a > .e-con.dc-space-card:focus-within{
  background-color:#FFFFFF!important;
  transform:translateY(-6px)!important;
  box-shadow:0 24px 48px -20px rgba(15,27,61,.28)!important;}
.elementor-6489 .dc-espace-photo{
  margin:0 0 14px!important;border-radius:0!important;}
.elementor-6489 .dc-space-name,
.elementor-6489 .dc-space-cap{padding-inline:18px!important;}
/* Les cellules faisaient 313 px pour 20 px d'ecart : trop serre des qu'elles
   portent un filet. On leur rend de l'air. */
.elementor-6489 .elementor-element-d60c03a{gap:24px!important;}


/* ===========================================================================
   LES LOGOS DE L'ECOSYSTEME REVIENNENT AU MODELE DE L'ACCUEIL — 10/09/2026
   Retour d'Hamza : « au niveau de l'apparition des logos de notre ecosysteme,
   c'est trop different de la page d'accueil [...] eviter cette animation de
   flou qui apparait [...] on perd en coherence par rapport a ce qui existe
   deja [...] rester dans un modele qui a ete valide ».

   VERIFIE AVANT DE TRANCHER : la section « Ils nous font confiance » de
   l'accueil V5 n'a AUCUNE animation sur ses logos — `animation-name: none` sur
   la grille comme sur chaque pastille. C'est la SECTION qui apparait, avec le
   meme `dc-reveal` que toutes les autres, et les logos n'ont qu'une transition
   de bordure au survol. « Le modele de l'accueil », c'est donc l'absence de
   sequence propre.

   On neutralise donc la cascade de flou (`dc-logo-pose`) et l'entree retardee
   des croix (`dc-croix-pose`), qui n'avait de sens que comme fin de cette
   sequence. Les croix restent — c'est le dessin, pas l'animation, qui etait
   demande. La section, elle, continue d'apparaitre comme les huit autres.
   Le script qui pose `.dc-logo-go` est laisse en place : sans animation a
   declencher, il devient inerte, et la regle est reversible en une ligne.
   =========================================================================== */
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip,
.elementor-6489 .dc-eco .dc-client-list > .dc-client-chip{
  animation:none!important;filter:none!important;}
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip::before,
.elementor-6489 .dc-eco .dc-client-list.dc-logo-go > .dc-client-chip::after,
.elementor-6489 .dc-eco .dc-client-list > .dc-client-chip::before,
.elementor-6489 .dc-eco .dc-client-list > .dc-client-chip::after{
  animation:none!important;}


/* ===========================================================================
   LE BLOC COORDONNEES DEVIENT UN BLOC — 10 septembre 2026
   Retour d'Hamza : « dans coordonnees, a droite, je trouve que tout est un
   petit peu petit — alors c'est les polices [...] sur ce bloc-la de texte avec
   les infos, peut-etre qu'il y a quelque chose a faire : soit le mettre dans un
   bloc un peu comme les styles de bloc qu'on a, pour quelque chose d'un petit
   peu plus structure ».
   MESURE : le libelle « Coordonnees » etait a 11 px, le corps a 15, et le bloc
   n'avait ni fond, ni filet, ni rayon, ni marge interieure — c'etait du texte
   flottant a cote d'une carte de 813 px. D'ou l'impression de petitesse : ce
   n'est pas que la taille des lettres, c'est qu'il n'y avait rien autour pour
   leur donner une echelle.
   On lui donne la coquille de la famille — la meme que les tuiles « Nos
   espaces » corrigees plus haut — et on remonte les deux tailles d'un cran.
   =========================================================================== */
.elementor-6489 .dc-wash-4 .dc-contact-card{
  background:#FFFFFF!important;
  border:1px solid var(--dc-gray-200,#DFE3EC)!important;
  border-radius:var(--dc-radius-lg,16px)!important;
  padding:32px 34px!important;
  box-shadow:0 1px 2px rgba(15,27,61,.04)!important;}
.elementor-6489 .dc-wash-4 .dc-eco-title .elementor-heading-title{
  font-size:12px!important;letter-spacing:.14em!important;}
.elementor-6489 .dc-wash-4 .dc-contact-body,
.elementor-6489 .dc-wash-4 .dc-contact-body p,
.elementor-6489 .dc-wash-4 .dc-contact-body a{
  font-size:16px!important;line-height:1.7!important;}


/* ===========================================================================
   L'ECOSYSTEME ADOPTE LE MODELE DE L'ACCUEIL — 10 septembre 2026
   Hamza ne parlait que de « l'apparition des logos », et c'etait deja corrige.
   Mais en comparant les deux sections au pixel, l'ecart est bien plus large :

                        ACCUEIL                A PROPOS (avant)
     fond               clair #FBFAFE          sombre #0A0728
     cellules           cartes separees        DALLE continue
     filet / rayon      1px + 16px             aucun
     ecart              14 px                  1 px
     croix              non                    oui

   CE QU'ON GARDE, ET POURQUOI. La section reste SOMBRE : elle porte trois
   niveaux hierarchiques et 23 logos, c'est le sujet de la page — pas une bande
   de reassurance comme sur l'accueil. Une section qui arrete la lecture pour
   dire « voici le reseau » a le droit d'etre traitee autrement.
   CE QU'ON ALIGNE : la CELLULE. Elle devient celle de l'accueil — carte
   separee, filet, rayon 16, vrai ecart. Les deux sections se lisent alors
   comme le meme objet sur deux fonds differents.
   CE QU'ON PERD : les croix. Elles n'existaient que parce que les cellules se
   touchaient — sans dalle, plus d'intersections a marquer. Decision de Yassine.
   =========================================================================== */
.elementor-6489 .dc-eco .dc-client-list{
  gap:14px!important;background:transparent!important;}
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip{
  border-radius:16px!important;
  box-shadow:0 0 0 1px #E2E5ED!important;
  transition:border-color .25s cubic-bezier(.4,0,.2,1), box-shadow .25s cubic-bezier(.4,0,.2,1)!important;}
/* [correction] Le survol ne suffisait pas a « ressembler a l'accueil » : la
   mesure montrait un simple gris un peu plus fonce, quand l'accueil fait
   passer la bordure en CYAN (#008AB7) et ajoute une ombre portee douce.
   On reprend exactement ce geste. L'ombre est un peu plus marquee ici parce
   que le fond est sombre : a .06 comme sur l'accueil, elle serait invisible. */
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:hover,
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:focus-within{
  background-color:#FFFFFF!important;
  box-shadow:0 0 0 1px #008AB7, 0 6px 18px rgba(0,0,0,.28)!important;}
/* Les croix disparaissent avec la dalle : sans cellules jointives, il n'y a
   plus d'intersection a marquer. */
.elementor-6489 .dc-eco .dc-client-chip::before,
.elementor-6489 .dc-eco .dc-client-chip::after{content:none!important;display:none!important;}



/* --- LE SURVOL DES LOGOS SUR FOND SOMBRE — 10 septembre 2026 ---------------
   Yassine : « le contour au survol ne se voit pas, comme c'est un fond fonce ».
   Exact, et c'est une erreur de transposition de ma part : sur l'accueil, la
   cellule blanche est posee sur un fond CLAIR — un filet cyan de 1 px s'y
   detache. Sur fond sombre, l'oeil ne voit plus le filet, il ne voit que le
   rectangle blanc ; un pixel de couleur sur son bord se perd contre le noir.
   Ce qui se voit sur fond sombre, c'est un changement de la SURFACE, pas du
   bord. On garde donc le filet cyan (le geste de l'accueil) mais on lui ajoute
   ce que le fond sombre rend lisible : la cellule se souleve de 2 px et gagne
   une ombre franche. Meme grammaire que les cartes du site, a l'echelle d'une
   pastille.
   -------------------------------------------------------------------------- */
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip{
  transition:transform .35s cubic-bezier(.22,.61,.36,1),
             box-shadow .35s cubic-bezier(.22,.61,.36,1)!important;}
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:hover,
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:focus-within{
  transform:translateY(-2px)!important;
  box-shadow:0 0 0 1px #008AB7, 0 10px 24px rgba(0,0,0,.45)!important;}


/* --- LE SURVOL DES LOGOS : ON RENONCE AU SOULEVEMENT — 10 septembre 2026 ----
   Yassine : « l'effet de jump ne marche pas sur les logos du dessus parce que
   c'est coupe ». Exact : les groupes sont dans des conteneurs qui rognent, donc
   une cellule qui se souleve sort du cadre sur la rangee du haut. Un effet qui
   ne marche que sur une partie des cellules n'est pas un effet, c'est un bug.
   Des trois options — soulevement, fond gris clair, transparence — c'est le
   FOND qui gagne, pour une raison simple : il ne deplace rien, donc il marche
   partout, sur la premiere rangee comme sur la derniere. C'est aussi ce qu'il y
   avait avant, et ce que Yassine avait valide.
   On garde le filet cyan de l'accueil par-dessus : sur fond sombre il se voit
   peu, mais c'est le geste commun aux deux pages, et le fond, lui, se voit.
   -------------------------------------------------------------------------- */
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip{
  transition:background-color .3s cubic-bezier(.22,.61,.36,1),
             box-shadow .3s cubic-bezier(.22,.61,.36,1)!important;
  transform:none!important;}
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:hover,
.elementor-6489 .dc-eco .dc-client-chip.dc-client-chip:focus-within{
  transform:none!important;
  background-color:#EEF1F7!important;
  box-shadow:0 0 0 1px #008AB7!important;}

/* ===========================================================================
   LE SCINTILLEMENT A L'OUVERTURE D'UN ONGLET — 11 septembre 2026
   Yassine : « j'ai l'impression que c'est pcq le degrade qui la recouvre part
   puis revient ». C'est exactement ca, et c'est mesure image par image :
     1 ms  voile opacite 1      44 ms  0,02      94 ms  0,18
   143 ms  0,43               244 ms  0,78     494 ms  1
   Luminance moyenne du panneau : 231 a 124 ms, 155 une fois pose. Pendant
   environ 200 ms la photo est NUE, et le texte blanc pose dessus n'a plus de
   fond. C'est notre regle : `animation:dc-hub-voile .45s` sur le `::before`.

   L'intention etait bonne — le panneau s'assemble : la photo se detend
   (`dc-hub-pose`), le titre puis le texte montent (`dc-hub-monte`). Mais le
   voile n'est pas un element de choregraphie, **c'est lui qui porte la
   lisibilite**. Il doit etre la au premier pixel affiche.
   Regle a garder : on n'anime jamais ce qui rend un texte lisible. Meme
   famille que « on n'anime pas les paragraphes d'un article qu'on est en
   train de lire ».
   Le reste de l'assemblage est conserve tel quel.
   =========================================================================== */
.elementor-6489 .dc-hub .e-n-tabs-content > .e-con.e-active::before{
  animation:none!important;opacity:1!important;}

/* ===========================================================================
   L'ONGLET OUVERT NE SE REFERME PAS — 11 septembre 2026
   Yassine : « c'est volontaire ? » Oui, et c'est juste : le carrefour est un
   composant a ONGLETS (`role="tab"`), pas un accordeon. Le panneau EST le
   contenu, le rail est la navigation ; une liste d'onglets doit toujours en
   avoir un de selectionne. La page a d'ailleurs un vrai accordeon a cote — la
   FAQ, 5 elements, 0 ouvert au chargement — et lui se referme.
   Ce qui n'allait pas, c'est qu'on le PROMETTAIT. Sous 1025 px le composant
   passe en accordeon et chaque rangee porte un chevron ; sur la rangee ouverte
   il pointe vers le haut, ce qui veut dire « clique pour refermer ». Il ne
   peut pas tenir cette promesse.
   On retire donc le chevron de la rangee ouverte — et d'elle seule. Elle se
   lit alors comme l'intitule de la section en cours, ce qu'elle est. Les
   quatre autres gardent le leur, qui lui est tenu.
   (Le rendre refermable demanderait du JS et casserait la semantique du
   tablist : deux raisons de ne pas le faire.)
   =========================================================================== */
@media (max-width:1024px){
  .elementor-6489 .dc-hub .e-n-tab-title[aria-selected="true"]::after{
    display:none!important;}
}

/* ===========================================================================
   LES DEUX CHIFFRES PASSAIENT A LA LIGNE — 11 septembre 2026
   « 3 775 m² » et « 60 » sont deux chiffres a l'appui d'un texte, pas un
   tableau : ils se lisent d'un seul regard ou ils ne se lisent pas. Empiles,
   ils occupaient 151 px et ressemblaient a une liste de deux items.
   La regle de bureau les pose deja en rangee (`gap:40px`,
   `justify-content:flex-start`) ; c'est le `--flex-direction-mobile:column`
   d'Elementor qui les remettait en colonne. Mesure : 136 px + 150 px + 28 de
   gouttiere = 314 pour 342 disponibles — ils tiennent.
   =========================================================================== */
@media (max-width:767px){
  .elementor-6489 .dc-two-body .dc-stats{
    flex-direction:row!important;flex-wrap:nowrap!important;
    gap:28px!important;align-items:flex-start!important;}
  .elementor-6489 .dc-two-body .dc-stats .dc-stat{
    flex:0 1 auto!important;min-width:0!important;}
}

/* ===========================================================================
   L'IMAGE ARRIVAIT BRUSQUEMENT — MAIS SUR TELEPHONE SEULEMENT — 12/9/2026
   Yassine : « l'image apparait brusquement non ? y a pas ca sur desktop ».
   Verifie en echantillonnant les deux : le panneau et l'image se comportent a
   l'IDENTIQUE aux deux largeurs — hauteur pleine des la premiere image,
   `dc-hub-pose` qui detend l'echelle de 1,06 a 1 en 900 ms. Rien ne differe
   dans le code.
   **Ce qui differe, c'est ce qu'il y avait AVANT.** Sur bureau les cinq
   panneaux occupent la meme boite : ouvrir un onglet REMPLACE une image par une
   autre — l'oeil voit une substitution, il y a toujours eu une image la. Sur
   telephone le composant est un accordeon : le panneau precedent se referme
   ailleurs, et le nouveau s'ouvre a un endroit ou il n'y avait qu'une rangee
   fermee. L'image n'arrive pas a la place d'une image, elle arrive a la place
   de rien.
   Et depuis qu'on a retire le fondu du voile (il portait la lisibilite), plus
   rien n'accompagnait cette arrivee.
   CORRECTIF, sous 1025 px seulement : c'est **l'IMAGE** qu'on fond, pas le
   voile — 280 ms, par-dessus la detente d'echelle qui reste a 900. Le voile
   garde sa pleine force des le premier pixel.
   Le panneau recoit en plus un fond de nuit sous l'image : sans lui, pendant
   les 280 ms, le haut du voile (transparent par construction) laisserait voir
   le fond CLAIR de la page — on aurait remplace un a-coup par un eclair.
   Sur bureau on ne touche a rien : un fondu y produirait un noir entre les deux
   images, la ou il n'y a aujourd'hui aucune rupture.
   =========================================================================== */
@keyframes dc-hub-fondu{from{opacity:0;}to{opacity:1;}}
@media (max-width:1024px){
  .elementor-6489 .dc-hub .e-n-tabs-content > .e-con{
    background-color:#0C1230!important;}
  .elementor-6489 .dc-hub .e-n-tabs-content > .e-con.e-active .dc-carrefour-photo img{
    animation:dc-hub-pose .9s cubic-bezier(.22,.61,.36,1) both,
              dc-hub-fondu .28s ease both!important;}
}
@media (max-width:1024px) and (prefers-reduced-motion:reduce){
  .elementor-6489 .dc-hub .e-n-tabs-content > .e-con.e-active .dc-carrefour-photo img{
    animation:none!important;opacity:1!important;}
}

/* ===========================================================================
   LES RAPPORTS DE VEILLE EN CARROUSEL, SUR TELEPHONE — 12 septembre 2026
   Decision de Yassine. Le critere qui tranche n'est pas la hauteur, c'est
   l'usage : **on met en carrousel ce qui se parcourt, on garde en liste ce qui
   se compare.** Les quatre espaces d'Auderghem portent chacun une capacite
   (121 places, 4 a 15, 20, collaboratif) — un visiteur qui cherche une salle
   les compare, la liste reste. Les quatre rapports sont un archivage
   chronologique : on veut le dernier, le reste est du fonds. Le carrousel y
   est a sa place, et la section passe de 2 079 a ~600 px.

   **Fait en defilement natif, pas en JavaScript** (`scroll-snap`), et c'est un
   choix, pas un raccourci : LiteSpeed retarde tout script jusqu'a la premiere
   interaction du visiteur — un carrousel en JS serait inerte a l'arrivee, ce
   qu'on a deja paye une fois sur les apparitions au defilement. Ici le geste
   est celui du telephone, le navigateur le fait seul, et l'etat au repos est
   l'etat utilisable.

   La carte fait 78 % de la largeur : **le bord de la suivante affleure**, et
   c'est lui l'indicateur — sans lui, rien ne dirait qu'il y en a d'autres.
   Le rail deborde des marges de page (-24 / +24) pour que ce bord touche
   vraiment l'ecran ; `overflow-x` contient son propre debordement, la page ne
   defile pas horizontalement (verifie).
   =========================================================================== */
@media (max-width:767px){
  .elementor-6489 .elementor-element.elementor-element-f945e7f{
    display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;
    grid-template-columns:none!important;
    overflow-x:auto!important;overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
    scroll-padding-left:24px!important;
    gap:14px!important;
    margin-left:-24px!important;margin-right:-24px!important;
    padding:4px 24px 14px!important;
    /* Elementor pose `width:100%` sur ses conteneurs : avec une largeur
       EXPLICITE, les marges negatives deplacent la boite sans l'elargir, et le
       parent en `align-items:center` la recentrait. Meme mecanique que la carte
       « A la une » d'Actualites. Il faut rendre la largeur a l'auto ET etirer. */
    width:calc(100% + 48px)!important;max-width:none!important;flex:0 0 auto!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;}
  .elementor-6489 .elementor-element.elementor-element-f945e7f::-webkit-scrollbar{display:none;}
  .elementor-6489 .elementor-element.elementor-element-f945e7f > .dc-pub-card{
    flex:0 0 78%!important;width:78%!important;
    scroll-snap-align:start!important;
    height:auto!important;align-self:stretch!important;}
}

/* ###########################################################################
   #  V2 — RETOUR NOEMIE DU 11 SEPTEMBRE
   #  « Le design reste trop repetitif et trop peu compose. On retrouve
   #   souvent les memes reflexes : paves de proportions proches, image + titre
   #   + texte + lien, et peu de ruptures fortes entre les sections. »
   #  Consigne : ne pas revoir la charte ni les wireframes ; travailler la
   #  COMPOSITION a l'interieur de la structure — rythme, echelle, hierarchie.
   ########################################################################### */

/* ===========================================================================
   V2-1. LES DEUX PREUVES DEVIENNENT DES ELEMENTS GRAPHIQUES
   Demande : « Faire ressortir 1 a 2 preuves fortes — par exemple 3 775 m² /
   60 formations — comme de vrais elements graphiques, pas seulement comme du
   texte mis en gras. »
   Elles etaient a 22 px, c'est-a-dire la taille d'un intertitre : le chiffre
   n'avait pas plus de poids que la phrase qui le precede. Il passe a
   40-68 px dans le caractere de titrage et prend le degrade de marque — le
   motif `.dc-grad-mots` du socle, reserve aux fonds clairs, et celui-ci en est
   un. Les deux preuves sont separees par un filet vertical et non plus par une
   simple gouttiere : elles se lisent comme un couple, pas comme une liste.
   C'est le « temps fort » que la page n'avait pas dans sa premiere moitie.
   =========================================================================== */
.elementor-6489 .dc-two-body .dc-stats{
  gap:0!important;align-items:stretch!important;
  border-top:1px solid var(--dc-gray-200)!important;
  padding-top:30px!important;margin-top:34px!important;}
.elementor-6489 .dc-two-body .dc-stats .dc-stat{
  flex:1 1 0!important;padding-right:34px!important;}
.elementor-6489 .dc-two-body .dc-stats .dc-stat + .dc-stat{
  border-left:1px solid var(--dc-gray-200)!important;
  padding-left:34px!important;padding-right:0!important;}
.elementor-6489 .dc-two-body .dc-stats .dc-stat-num .elementor-heading-title.elementor-heading-title{
  font-family:var(--dc-display)!important;
  font-size:clamp(40px,4.4vw,68px)!important;font-weight:800!important;
  line-height:.95!important;letter-spacing:-.03em!important;
  background:var(--dc-grad-text)!important;
  -webkit-background-clip:text!important;background-clip:text!important;
  -webkit-text-fill-color:transparent!important;color:transparent!important;}
.elementor-6489 .dc-two-body .dc-stats .dc-stat-label .elementor-heading-title.elementor-heading-title{
  font-family:var(--dc-body)!important;font-size:12px!important;font-weight:600!important;
  letter-spacing:.14em!important;text-transform:uppercase!important;
  color:var(--dc-text-light)!important;margin-top:12px!important;}
@media (max-width:767px){
  .elementor-6489 .dc-two-body .dc-stats{padding-top:24px!important;margin-top:26px!important;}
  .elementor-6489 .dc-two-body .dc-stats .dc-stat{padding-right:18px!important;}
  .elementor-6489 .dc-two-body .dc-stats .dc-stat + .dc-stat{padding-left:18px!important;}
  .elementor-6489 .dc-two-body .dc-stats .dc-stat-num .elementor-heading-title.elementor-heading-title{
    font-size:clamp(30px,8.6vw,40px)!important;}
  .elementor-6489 .dc-two-body .dc-stats .dc-stat-label .elementor-heading-title.elementor-heading-title{
    font-size:11px!important;letter-spacing:.10em!important;margin-top:8px!important;}
}

/* ===========================================================================
   V2-2. LES INFRASTRUCTURES DEVIENNENT UN LIEU, PLUS UNE LISTE DE CARTES
   Demande : « Donner aux infrastructures un traitement plus immersif : vraie
   photo dominante, lieu mis en scene, informations secondaires plus
   compactes. » Et, juste avant : « Casser l'enchainement Infrastructures /
   Rapports : ces deux contenus ne doivent pas avoir le meme traitement. »

   Constat : quatre cartes de 310 px, photo + nom + capacite, alignees — puis,
   juste dessous, quatre cartes de 310 px, image + titre + texte + lien pour
   les rapports. Deux sections, un seul objet. C'est exactement le reflexe
   « pave » qu'elle nous demande d'arreter.

   Composition retenue : **une dominante et trois appuis.** L'auditorium — le
   seul espace qui impressionne par l'echelle, 121 places — prend toute la
   colonne de gauche sur 520 px de haut, photo au cadre plein, nom et capacite
   poses DANS l'image sur un voile bas. Les trois autres deviennent des rangees
   compactes a droite : vignette carree de 104 px, nom, capacite, separees par
   un filet. On passe de quatre objets egaux a un lieu mis en scene et son
   sommaire.
   Aucune photo n'est remplacee : ce sont les vraies salles d'Auderghem, c'est
   la « matiere reelle Digitalcity » qu'elle reclame au point 4 de ses
   priorites. On change leur mise en scene, pas leur nature.
   Fait en grille CSS sur les conteneurs existants : aucun contenu deplace,
   entierement reversible.
   =========================================================================== */
.elementor-6489 .elementor-element.elementor-element-d60c03a{
  display:grid!important;
  grid-template-columns:1.32fr 1fr!important;
  grid-template-rows:auto auto auto!important;
  gap:0!important;
  background-color:#fff!important;
  border:1px solid var(--dc-gray-200)!important;
  border-radius:var(--dc-radius-lg)!important;
  overflow:hidden!important;
  align-items:stretch!important;}

/* --- la dominante --- */
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc{
  grid-column:1!important;grid-row:1 / span 3!important;
  position:relative!important;min-height:520px!important;
  padding:0!important;border-right:1px solid var(--dc-gray-200)!important;
  justify-content:flex-end!important;overflow:hidden!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc .dc-espace-photo{
  position:absolute!important;inset:0!important;width:100%!important;
  height:100%!important;margin:0!important;z-index:0!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc .dc-espace-photo .elementor-widget-container,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc .dc-espace-photo figure,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc .dc-espace-photo a{height:100%!important;display:block!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc .dc-espace-photo img{
  width:100%!important;height:100%!important;object-fit:cover!important;
  border-radius:0!important;display:block!important;}
/* le voile : sans lui le nom se pose a meme la photo. Dense en bas ou vit le
   texte, nul aux deux tiers — meme famille que le heros de page interieure. */
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc::after{
  content:""!important;position:absolute!important;inset:0!important;
  z-index:1!important;pointer-events:none!important;
  background:linear-gradient(0deg,rgba(9,14,38,.88) 0%,rgba(9,14,38,.55) 26%,rgba(9,14,38,0) 62%)!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc > .dc-space-name,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc > .dc-space-cap{
  position:relative!important;z-index:2!important;padding:0 28px!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc > .dc-space-name{padding-top:0!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc > .dc-space-cap{padding-bottom:28px!important;margin-top:6px!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc .dc-space-name .elementor-heading-title.elementor-heading-title{
  font-family:var(--dc-display)!important;font-size:30px!important;font-weight:700!important;
  letter-spacing:-.02em!important;color:#fff!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc .dc-space-cap .elementor-heading-title.elementor-heading-title{
  font-family:var(--dc-body)!important;font-size:15px!important;font-weight:500!important;
  letter-spacing:.04em!important;
  background:none!important;-webkit-text-fill-color:#8CE8FF!important;color:#8CE8FF!important;}

/* --- les trois appuis --- */
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-5166c1b,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-3f6e84f,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-c70e5e2{
  grid-column:2!important;
  display:grid!important;
  grid-template-columns:104px minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  column-gap:18px!important;row-gap:2px!important;
  align-content:center!important;align-items:center!important;
  padding:18px 24px!important;min-height:0!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-5166c1b{grid-row:1!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-3f6e84f{grid-row:2!important;border-top:1px solid var(--dc-gray-200)!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-c70e5e2{grid-row:3!important;border-top:1px solid var(--dc-gray-200)!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-5166c1b .dc-espace-photo,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-3f6e84f .dc-espace-photo,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-c70e5e2 .dc-espace-photo{
  grid-column:1!important;grid-row:1 / span 2!important;margin:0!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-5166c1b .dc-espace-photo img,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-3f6e84f .dc-espace-photo img,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-c70e5e2 .dc-espace-photo img{
  width:104px!important;height:104px!important;object-fit:cover!important;
  border-radius:10px!important;display:block!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-5166c1b .dc-space-name,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-3f6e84f .dc-space-name,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-c70e5e2 .dc-space-name{
  grid-column:2!important;grid-row:1!important;align-self:end!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-5166c1b .dc-space-cap,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-3f6e84f .dc-space-cap,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-c70e5e2 .dc-space-cap{
  grid-column:2!important;grid-row:2!important;align-self:start!important;}
/* Les trois appuis ne sont pas trois cartes : ce sont les rangees d'un meme
   sommaire. On leur retire la coquille heritee de `.dc-card` — fond, filet,
   rayon, ombre — et on ne garde que le filet horizontal qui les separe. Sans
   ca, la section redit ce qu'on vient de lui enlever : des paves. */
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-5166c1b,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-3f6e84f,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-c70e5e2{
  background:none!important;background-color:transparent!important;
  border-left:0!important;border-right:0!important;border-bottom:0!important;
  border-radius:0!important;box-shadow:none!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-5166c1b{border-top:0!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-3f6e84f,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-c70e5e2{
  border-top:1px solid var(--dc-gray-200)!important;}
/* le survol de la maison, sur la rangee entiere */
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-5166c1b:hover,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-3f6e84f:hover,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-c70e5e2:hover{
  background-color:var(--dc-gray-50)!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc{
  border-radius:0!important;box-shadow:none!important;}
.elementor-6489 .dc-space-card .dc-space-name .elementor-heading-title.elementor-heading-title{
  font-family:var(--dc-display)!important;}

/* ===========================================================================
   V2-3. LES RAPPORTS DE VEILLE DEVIENNENT UNE COLLECTION, PLUS UNE RANGEE
   Demande : « Les rapports de veille sont traites comme de simples cartes
   alors qu'ils constituent une production editoriale forte de Digitalcity.
   [...] Donner aux rapports un traitement editorial propre : couvertures
   reelles, annees et sujets clairement visibles. »

   Le piege aurait ete de leur appliquer la composition qu'on vient d'inventer
   pour les infrastructures — une dominante et des appuis. Deux sections qui se
   suivent avec la meme geometrie, c'est le defaut d'origine avec un autre
   dessin. On change donc d'AXE : les infrastructures sont une composition
   horizontale dominee par une photo ; les rapports deviennent une liste
   VERTICALE menee par l'annee. Un temps fort, puis une zone calme — c'est le
   rythme qu'elle demande au point « Rythme » de son tableau.

   Chaque rapport est une rangee : l'annee en grand a gauche, la couverture
   debout au format portrait (elle redevient une COUVERTURE et non une bande
   de 16/10 rognee), le sujet et son resume, le telechargement a droite. Filets
   entre les rangees, aucun cadre : on lit un fonds documentaire.

   REPETITION SUPPRIMEE au passage : chaque carte annoncait « RAPPORT DE VEILLE
   2025 » sous un titre de section qui dit deja « Nos rapports de veille » —
   quatre fois la meme phrase. L'etiquette ne porte plus que l'annee, qui est
   la seule information qu'elle apportait. (« Une information principale doit
   avoir un emplacement principal. »)
   =========================================================================== */
.elementor-6489 .elementor-element.elementor-element-f945e7f{
  display:flex!important;flex-direction:column!important;
  gap:0!important;grid-template-columns:none!important;
  border-top:1px solid var(--dc-gray-200)!important;}

.elementor-6489 .elementor-element-f945e7f > .e-con.dc-pub-card{
  display:grid!important;
  grid-template-columns:118px 126px minmax(0,1fr) 210px!important;
  grid-template-rows:auto auto!important;
  column-gap:30px!important;row-gap:6px!important;
  align-items:center!important;
  padding:26px 0!important;
  background:none!important;background-color:transparent!important;
  border:0!important;border-bottom:1px solid var(--dc-gray-200)!important;
  border-radius:0!important;box-shadow:none!important;
  transition:background-color .3s var(--dc-ease)!important;}
.elementor-6489 .elementor-element-f945e7f > .e-con.dc-pub-card:hover{
  background-color:var(--dc-gray-50)!important;transform:none!important;box-shadow:none!important;}

/* la couverture : debout, format portrait, jamais rognee en bandeau */
.elementor-6489 .elementor-element-f945e7f > .e-con.dc-pub-card > .dc-card-img{
  grid-column:2!important;grid-row:1 / span 2!important;
  width:126px!important;height:168px!important;min-height:0!important;
  border-radius:8px!important;overflow:hidden!important;
  box-shadow:0 14px 28px -14px rgba(15,27,61,.34)!important;
  align-self:center!important;margin:0!important;}

/* le corps s'efface pour que ses quatre widgets se posent dans la rangee */
.elementor-6489 .elementor-element-f945e7f > .e-con.dc-pub-card > .dc-card-body{
  display:contents!important;}
.elementor-6489 .dc-pub-card .dc-pub-year{
  grid-column:1!important;grid-row:1 / span 2!important;align-self:center!important;}
.elementor-6489 .dc-pub-card .dc-pub-year .elementor-heading-title.elementor-heading-title{
  font-family:var(--dc-display)!important;font-size:44px!important;font-weight:800!important;
  line-height:1!important;letter-spacing:-.03em!important;
  text-transform:none!important;
  color:var(--dc-text)!important;}
.elementor-6489 .dc-pub-card .dc-card-title{grid-column:3!important;grid-row:1!important;align-self:end!important;}
.elementor-6489 .dc-pub-card .dc-card-title .elementor-heading-title.elementor-heading-title{
  font-size:21px!important;line-height:1.25!important;}
.elementor-6489 .dc-pub-card .dc-card-excerpt{grid-column:3!important;grid-row:2!important;align-self:start!important;}
.elementor-6489 .dc-pub-card .dc-card-bottom{
  grid-column:4!important;grid-row:1 / span 2!important;
  align-self:center!important;justify-self:end!important;margin:0!important;}

/* ===========================================================================
   V2-4. LES DEUX NOUVELLES COMPOSITIONS, DECLINEES EN MOBILE
   Une composition en deux colonnes ne se transpose pas telle quelle sur
   390 px : la dominante y tombait a 193 px de large et la rangee des rapports
   gardait ses quatre colonnes de bureau, dont une ecrasee a zero.

   INFRASTRUCTURES : la dominante prend toute la largeur en 4/3, les trois
   appuis se rangent dessous. L'idee tient — un lieu mis en scene, puis son
   sommaire — seule l'orientation change.

   RAPPORTS : **le carrousel n'a plus lieu d'etre.** Il avait ete monte hier
   pour une raison unique — la section faisait 2 079 px de haut en pile de
   quatre cartes. La nouvelle composition en rangees la ramene a ~640 px sans
   rien cacher. Entre un carrousel qui masque trois rapports sur quatre et une
   liste qui les montre tous pour la meme hauteur, la liste gagne. On garde le
   defilement natif du socle pour les autres usages, il n'est plus appele ici.
   L'annee reste en tete de rangee : c'est l'entree de lecture d'un fonds.
   =========================================================================== */
@media (max-width:767px){
  /* --- infrastructures --- */
  .elementor-6489 .elementor-element.elementor-element-d60c03a{
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto auto auto!important;}
  .elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc{
    grid-column:1!important;grid-row:1!important;
    /* `aspect-ratio` ne suffit pas ici : la grille etire ses items
       (`align-items:stretch`) et la rangee se dimensionne sur le contenu, qui
       est entierement en absolu — donc zero. La photo ne s'affichait pas du
       tout. Hauteur explicite + `align-self:start`. */
    min-height:0!important;height:clamp(230px,60vw,320px)!important;
    align-self:start!important;
    border-right:0!important;border-bottom:1px solid var(--dc-gray-200)!important;}
  .elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc .dc-space-name .elementor-heading-title.elementor-heading-title{
    font-size:24px!important;}
  /* Il ne suffit pas de declarer `grid-template-columns:1fr` : les trois
     appuis portaient `grid-column:2` de la regle de bureau, ce qui CREE une
     seconde colonne implicite. Elle prenait toute la place et la dominante,
     dont le contenu est en absolu, tombait a 6 px. Il faut les ramener en
     colonne 1. */
  .elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-5166c1b{grid-column:1!important;grid-row:2!important;border-top:0!important;}
  .elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-3f6e84f{grid-column:1!important;grid-row:3!important;}
  .elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-c70e5e2{grid-column:1!important;grid-row:4!important;}
  .elementor-6489 .elementor-element-d60c03a > .e-con.dc-space-card:not(.elementor-element-44c60dc){
    grid-template-columns:78px minmax(0,1fr)!important;
    column-gap:14px!important;padding:14px 18px!important;}
  .elementor-6489 .elementor-element-d60c03a > .e-con.dc-space-card:not(.elementor-element-44c60dc) .dc-espace-photo img{
    width:78px!important;height:78px!important;}

  /* --- rapports : on annule le rail a defilement d'hier --- */
  .elementor-6489 .elementor-element.elementor-element-f945e7f{
    display:flex!important;flex-direction:column!important;
    overflow-x:visible!important;overflow-y:visible!important;
    scroll-snap-type:none!important;
    width:auto!important;max-width:none!important;
    margin-left:0!important;margin-right:0!important;
    padding:0!important;gap:0!important;}
  .elementor-6489 .elementor-element-f945e7f > .e-con.dc-pub-card{
    flex:0 0 auto!important;width:auto!important;
    grid-template-columns:88px minmax(0,1fr)!important;
    grid-template-rows:auto auto auto!important;
    column-gap:16px!important;row-gap:4px!important;
    padding:18px 0!important;align-items:start!important;}
  .elementor-6489 .elementor-element-f945e7f > .e-con.dc-pub-card > .dc-card-img{
    grid-column:1!important;grid-row:1 / span 3!important;
    width:88px!important;height:118px!important;}
  .elementor-6489 .dc-pub-card .dc-pub-year{
    grid-column:2!important;grid-row:1!important;align-self:start!important;}
  .elementor-6489 .dc-pub-card .dc-pub-year .elementor-heading-title.elementor-heading-title{
    font-size:26px!important;}
  .elementor-6489 .dc-pub-card .dc-card-title{grid-column:2!important;grid-row:2!important;align-self:start!important;}
  .elementor-6489 .dc-pub-card .dc-card-title .elementor-heading-title.elementor-heading-title{font-size:17px!important;}
  .elementor-6489 .dc-pub-card .dc-card-excerpt{display:none!important;}
  .elementor-6489 .dc-pub-card .dc-card-bottom{
    grid-column:2!important;grid-row:3!important;
    justify-self:start!important;align-self:start!important;margin-top:6px!important;}
}

/* ===========================================================================
   V2-5. LA FAQ CESSE DE LAISSER UN VIDE A DROITE
   Demande : « La FAQ laisse un grand vide a droite sur desktop : la
   composition parait inachevee. »
   Mesure : l'accordeon fait 820 px dans un conteneur de 1 312 — 492 px de
   blanc a droite, sans rien pour les justifier. Ce n'etait pas un choix, c'est
   une largeur de lecture posee sur un bloc empile sous son titre.
   On passe en deux colonnes : l'intitule a gauche, les questions a droite.
   C'est la disposition habituelle d'une FAQ, et surtout c'est une GEOMETRIE DE
   PLUS dans la page — apres la composition horizontale des infrastructures et
   la liste verticale des rapports, un troisieme rythme. Le titre devient
   collant : il accompagne le depliage au lieu de disparaitre en haut.
   Le blanc restant est alors du blanc tenu par une colonne, pas du blanc
   oublie.
   =========================================================================== */
.elementor-6489 .elementor-element.elementor-element-215d4ba > .e-con-inner{
  display:grid!important;
  grid-template-columns:minmax(0,.78fr) minmax(0,1.42fr)!important;
  column-gap:80px!important;row-gap:0!important;
  align-items:start!important;}
.elementor-6489 .elementor-element.elementor-element-3dc7b60{
  grid-column:1!important;position:sticky!important;top:120px!important;
  width:auto!important;max-width:none!important;}
.elementor-6489 .elementor-element.elementor-element-3dc7b60 .elementor-heading-title.elementor-heading-title{
  max-width:14ch!important;text-wrap:balance!important;}
.elementor-6489 .elementor-element.elementor-element-b685364{
  grid-column:2!important;width:auto!important;max-width:none!important;}
.elementor-6489 .elementor-element-b685364 .elementor-accordion{
  max-width:none!important;width:100%!important;}
@media (max-width:1024px){
  .elementor-6489 .elementor-element.elementor-element-215d4ba > .e-con-inner{
    grid-template-columns:1fr!important;row-gap:28px!important;}
  .elementor-6489 .elementor-element.elementor-element-3dc7b60{
    grid-column:1!important;position:static!important;}
  .elementor-6489 .elementor-element.elementor-element-3dc7b60 .elementor-heading-title.elementor-heading-title{
    max-width:none!important;}
  .elementor-6489 .elementor-element.elementor-element-b685364{grid-column:1!important;}
}
/* [ajuste] — BORNE AU BUREAU. Ecrit d'abord sans `@media`, ce bloc
   reimposait la grille a quatre colonnes sur telephone et faisait deborder
   la page de 95 px (la fenetre de mise en page passait a 485). Un bloc
   d'ajustement place APRES un bloc responsive doit porter sa propre borne,
   sinon il l'annule. */
@media (min-width:768px){
/* [ajuste] La liste chronologique respirait trop : 4 rangees de 220 px, soit
     880 contre 387 a la rangee de cartes d'origine. Or cette section est la ZONE
     CALME qui suit le temps fort des infrastructures — si elle pese plus lourd
     que lui, on retombe dans « trop de blocs de poids comparable ». On resserre :
     couverture 96 x 128, rangee de 164 px. La geometrie ne change pas, seule
     l'amplitude. */
  .elementor-6489 .elementor-element-f945e7f > .e-con.dc-pub-card{
    grid-template-columns:92px 96px minmax(0,1fr) 200px!important;
    column-gap:24px!important;padding:18px 0!important;}
  .elementor-6489 .elementor-element-f945e7f > .e-con.dc-pub-card > .dc-card-img{
    width:96px!important;height:128px!important;
    box-shadow:0 10px 22px -12px rgba(15,27,61,.34)!important;}
  .elementor-6489 .dc-pub-card .dc-pub-year .elementor-heading-title.elementor-heading-title{
    font-size:34px!important;}
  .elementor-6489 .dc-pub-card .dc-card-title .elementor-heading-title.elementor-heading-title{
    font-size:19px!important;}
}

/* ===========================================================================
   V2-6. UNE COUCHE DE REPETITION EN MOINS
   Demande : « "Explorer" presente deja plusieurs entrees qui sont ensuite
   reintroduites plus bas : le detail doit apporter une nouvelle information,
   pas simplement repeter l'intitule. »
   Releve : le module Explorer annonce L'equipe, Nos partenaires, Publications
   & etudes, Nos infrastructures, Nous contacter. Plus bas, chaque section
   ouvre sur une etiquette qui redit le meme mot : NOS ESPACES avant « Des
   infrastructures a Auderghem », PUBLICATIONS & ETUDES avant « Nos rapports de
   veille ». Le titre de section dit deja ce que l'etiquette annonce, et
   l'Explorer l'avait annonce une premiere fois : trois fois la meme entree.
   On retire les deux etiquettes qui ne font que repeter. Les autres restent :
   « QUI NOUS SOMMES », « AIDE », « NOUS TROUVER » ne figurent pas dans
   l'Explorer et situent vraiment leur section.
   Masquees et non supprimees — c'est une proposition, elle doit pouvoir
   revenir en une ligne.
   RESERVE : la meilleure reponse serait sans doute de leur faire porter une
   information NOUVELLE (« quatre editions depuis 2022 », « 3 775 m² a
   Auderghem ») plutot que de les retirer. C'est une decision de texte, elle
   revient a Noemie — je ne l'ecris pas a sa place.
   =========================================================================== */
.elementor-6489 .elementor-element.elementor-element-62691b6,
.elementor-6489 .elementor-element.elementor-element-5fbe6f4{display:none!important;}

/* ===========================================================================
   V2-7. LE SURVOL : LE ZOOM RESTE, LE SOULEVEMENT PART — 13 septembre 2026
   Yassine : « le zoom au survol est pas mal mais l'image se lève et ça crée un
   vide en dessous ». Exact, et la cause est une regle du 10 septembre que ma
   composition n'annulait pas :
     `.dc-space-card:hover{transform:translateY(-6px); box-shadow:…}`  (0,4,0)
   Elle avait un sens quand les quatre espaces etaient quatre CARTES posees sur
   la page : une carte qui se souleve, c'est le geste de la maison.
   Elle n'en a plus aucun maintenant. La dominante n'est pas une carte, c'est un
   PANNEAU encastre dans un cadre a filet : le soulever le decolle de son cadre
   et ouvre exactement les 6 px de vide qu'il decrit. Et les trois appuis ne
   sont plus des cartes non plus, ce sont les rangees d'un sommaire — une rangee
   de liste ne levite pas.
   **Regle : un objet ne se souleve que s'il a un bord libre.** Encastre, il
   n'a nulle part ou aller.
   Le zoom de l'image, lui, est conserve : il se joue DANS le cadre, qui rogne,
   donc il ne deplace rien. C'est le geste de l'accueil V5.
   Les appuis recuperent leur survol de rangee — un fond qui s'eclaire.
   =========================================================================== */
.elementor-6489 .elementor-element-d60c03a > .e-con.dc-space-card:hover,
.elementor-6489 .elementor-element-d60c03a > .e-con.dc-space-card:focus-within{
  transform:none!important;box-shadow:none!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc:hover,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc:focus-within{
  background-color:transparent!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-5166c1b:hover,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-3f6e84f:hover,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-c70e5e2:hover,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-5166c1b:focus-within,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-3f6e84f:focus-within,
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-c70e5e2:focus-within{
  background-color:var(--dc-gray-50)!important;}

/* ===========================================================================
   V2-8. LE BOUTON ENTRE DANS LA COMPOSITION — 13 septembre 2026
   Il pendait sous le cadre, seul, comme un reste. Il devient la **quatrieme
   rangee** de la colonne de droite : le sommaire se ferme sur son action au
   lieu de laisser un objet orphelin dessous. La dominante s'etend donc sur
   quatre rangees au lieu de trois.
   Le widget a ete DEPLACE dans la grille (`move-element`), pas simule en CSS :
   la composition reste vraie dans l'editeur Elementor.
   =========================================================================== */
.elementor-6489 .elementor-element.elementor-element-d60c03a{
  grid-template-rows:auto auto auto auto!important;}
.elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc{
  grid-row:1 / span 4!important;}
.elementor-6489 .elementor-element.elementor-element-075818a{
  grid-column:2!important;grid-row:4!important;
  border-top:1px solid var(--dc-gray-200)!important;
  padding:18px 24px!important;margin:0!important;
  display:flex!important;align-items:center!important;width:auto!important;}
@media (max-width:767px){
  .elementor-6489 .elementor-element.elementor-element-d60c03a{
    grid-template-rows:auto auto auto auto auto!important;}
  .elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc{
    grid-row:1!important;}
  .elementor-6489 .elementor-element.elementor-element-075818a{
    grid-column:1!important;grid-row:5!important;padding:14px 18px!important;}
}

/* ===========================================================================
   V2-9. TROIS REGLAGES — 13 septembre 2026 (retours de Yassine)

   1. LES VIGNETTES DES TROIS APPUIS PASSENT DE 104 A 132 PX.
      « Pour qu'on puisse mieux voir. » Juste — mais on ne va pas jusqu'aux
      onglets (voir la note de refus dans DECISIONS). On leur donne 28 px de
      plus : elles gagnent en presence sans que les trois espaces reprennent le
      poids de la dominante, et « informations secondaires plus compactes »
      reste vrai.

   2. LE BOUTON CESSE D'ETRE UN BOUTON DANS UNE BOITE.
      « Il est tout seul sur un fond blanc dans une section. » Exact, et la
      cause est un DOUBLE CADRE : un bouton a contour pose dans une cellule a
      filet. Il perd son contour et devient la quatrieme rangee du sommaire —
      meme retrait a gauche que les trois autres, meme fond, une fleche a
      droite. Les quatre rangees se lisent alors comme une seule liste qui se
      termine par son action.
   =========================================================================== */
@media (min-width:768px){
  .elementor-6489 .elementor-element-d60c03a > .e-con.dc-space-card:not(.elementor-element-44c60dc){
    grid-template-columns:132px minmax(0,1fr)!important;}
  .elementor-6489 .elementor-element-d60c03a > .e-con.dc-space-card:not(.elementor-element-44c60dc) .dc-espace-photo img{
    width:132px!important;height:132px!important;}
}
.elementor-6489 .elementor-element.elementor-element-075818a .elementor-button{
  background:transparent!important;border:0!important;box-shadow:none!important;
  padding:0!important;
  font-family:var(--dc-body)!important;font-size:16px!important;font-weight:600!important;
  color:var(--dc-text)!important;
  transition:gap .25s var(--dc-ease)!important;}
.elementor-6489 .elementor-element.elementor-element-075818a .elementor-button:hover{
  background:transparent!important;color:var(--dc-bleu-titres)!important;}
.elementor-6489 .elementor-element.elementor-element-075818a:hover{
  background-color:var(--dc-gray-50)!important;}
.elementor-6489 .elementor-element.elementor-element-075818a{
  padding:20px 24px!important;cursor:pointer!important;}

/* ===========================================================================
   V2-10. LES THEMES DES RAPPORTS REMONTENT EN TETE — 13 septembre 2026
   « Faudrait pas mettre les infos qui sont tout en bas de la section en haut a
   droite pour qu'elles soient plus visibles et moins perdues. » Oui pour les
   THEMES (Cybersecurite, Transformation digitale, Big Data, IA) : en bas ils se
   lisaient comme un ajout, alors qu'ils disent ce que ces rapports couvrent —
   c'est une information d'entree, pas de sortie. Et le bloc de titre n'occupait
   que 600 px sur 1 312 : la moitie droite etait vide. Les themes la remplissent
   et le vide devient une colonne.
   **Le bouton, lui, reste en bas** : « Voir toutes les publications » est une
   action qui CONCLUT. La remonter en tete, ce serait proposer de partir avant
   d'avoir montre.
   =========================================================================== */
@media (min-width:1025px){
  .elementor-6489 .elementor-element.elementor-element-4ff4b5e > .e-con-inner,
  .elementor-6489 .dc-section:has(.elementor-element-f945e7f) > .e-con-inner{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,auto)!important;
    align-items:end!important;
    column-gap:48px!important;}
  .elementor-6489 .elementor-element.elementor-element-a11a457{grid-column:1!important;grid-row:1!important;}
  .elementor-6489 .elementor-element.elementor-element-575a135{
    grid-column:2!important;grid-row:1!important;
    justify-content:flex-end!important;align-items:flex-end!important;
    max-width:420px!important;margin:0!important;}
  .elementor-6489 .elementor-element.elementor-element-f945e7f{grid-column:1 / -1!important;grid-row:2!important;}
  .elementor-6489 .elementor-element.elementor-element-1213d70{grid-column:1!important;grid-row:3!important;}
}

/* ===========================================================================
   LE SURVOL DES RAPPORTS SE FOND AUX DEUX BOUTS  (18-09-2026)
   ---------------------------------------------------------------------------
   Question posee par Yassine le 15 septembre — « le fondu des bords au survol »
   des rapports de veille — a laquelle j'avais repondu que je donnerais mon avis
   « quand on y arrive », et que je n'ai jamais rendue. La voici.

   OUI, et pour une raison precise. La rangee est une bande de 1312 px SANS
   CADRE : c'est tout l'interet de ce composant, et c'est pourquoi Hamza a
   demande de le reprendre pour les sessions. Or un aplat gris qui s'arrete net
   a ses deux extremites REDESSINE le rectangle que la liste sans cadre cherche
   a eviter — au survol, on croit voir une cellule de tableau apparaitre.
   Un fond qui s'eteint sur les six premiers et six derniers pour cent redevient
   ce qu'il doit etre : un SURLIGNAGE, pas une boite. Le texte, lui, ne bouge
   pas d'un pixel.

   Pose a l'identique sur les sessions de la fiche formation, qui emploient
   desormais le meme composant.
   =========================================================================== */
.elementor-6489 .elementor-element-f945e7f > .e-con.dc-pub-card:hover{
  background-color:transparent!important;
  background-image:linear-gradient(90deg,
    rgba(249,250,251,0) 0%, rgba(249,250,251,1) 6%,
    rgba(249,250,251,1) 94%, rgba(249,250,251,0) 100%)!important;}


/* ===========================================================================
   PASSE MOBILE / TABLETTE — 21 septembre 2026
   Cinq corrections relevees sur /a-propos/, validees par Yassine le 21/09.
   =========================================================================== */

/* [1] « Voir le plan d'acces » etait INVISIBLE — et pas seulement en mobile :
   texte BLANC sur carte BLANCHE, a 390, 768, 1024 et 1440. Mesure : les
   pixels sombres de sa boite ne venaient que de son soulignement.
   Cause : la regle de cette page transforme les deux renvois de la carte
   coordonnees en liens soulignes et pose `color:var(--dc-text)` sur le `<a>`.
   Mais le socle vise le SPAN interne —
   `.dc-btn-primary .elementor-button .elementor-button-text{color:#fff}` —
   et une couleur posee sur le span gagne toujours contre une couleur
   seulement HERITEE du parent, !important ou pas. « Nous contacter » n'a pas
   la classe `dc-btn-primary` : d'ou un seul bouton fautif sur les deux.
   Correctif : viser le span a notre tour, avec une classe de plus (0,4,0
   contre 0,3,0). */
.elementor-6489 .dc-contact-card .elementor-button .elementor-button-text,
.elementor-6489 .dc-contact-card .elementor-button .elementor-button-icon svg,
.elementor-6489 .dc-contact-card .elementor-button svg{
  color:var(--dc-text)!important;
  -webkit-text-fill-color:var(--dc-text)!important;
  fill:currentColor!important;}
.elementor-6489 .dc-contact-card .elementor-button:hover .elementor-button-text,
.elementor-6489 .dc-contact-card .elementor-button:focus .elementor-button-text{
  color:var(--dc-bleu-logo)!important;
  -webkit-text-fill-color:var(--dc-bleu-logo)!important;}

/* [2] Cibles tactiles des deux renvois de la carte coordonnees : le lien
   faisait 272 x 19 px dans un cadre pleine largeur — on voit un bouton, on
   tape a cote. On n'ajoute PAS de rembourrage : il eloignerait le
   soulignement de son texte et changerait le dessin. On etend la zone
   sensible, comme le socle le fait deja pour le burger.
   Ecart mesure entre les deux liens : 31 px. Avec -12 px de chaque cote
   (44 px de cible) les deux zones ne se recouvrent pas : -7..37 et 44..87. */
.elementor-6489 .dc-contact-card .elementor-button{position:relative;}
.elementor-6489 .dc-contact-card .elementor-button::after{
  content:"";position:absolute;inset:-12px 0;}

/* [3] ANNULE le 21/09, le jour meme : « Telecharger le rapport » n'etait PAS
   une cible de 164 x 26 px, et ma correction a ete une REGRESSION.
   Le CSS de cette page rendait deja la carte de publication entierement
   cliquable, par exactement le meme procede :
       .dc-pub-card{position:relative;}
       .dc-pub-card .dc-link-text .elementor-button::after{inset:0;z-index:1;}
   Ma regle, plus specifique (0,4,0 contre 0,3,0), a gagne sur `inset` ; et en
   posant `position:relative` sur le BOUTON j'ai fait que le recouvrement
   s'ancre au bouton et non plus a la carte. Zone cliquable ramenee de la
   carte entiere (1312 x 165 au bureau) a une bande de 164 x 44.
   Mesure a `elementFromPoint`, etat d'origine rejoue pour comparaison :
   avant, le centre et la vignette atteignaient le lien ; apres, plus rien.
   (Le titre n'atteint le lien dans aucun des deux etats : `.dc-card-title`
   porte `z-index:2` pour rester selectionnable — c'est voulu.)
   RIEN A ECRIRE ICI : la cible etait deja bonne, et bien plus grande que 44 px.
   Lecon, la meme qu'ailleurs ce jour-la : avant de s'attribuer un
   pseudo-element, verifier qu'il ne travaille pas deja. */

/* [4] Telephone et e-mail : `display:inline`, rembourrage 0, donc 19 px de
   haut. Sur une page « Adresse et coordonnees » ouverte au telephone, c'est
   exactement ce qu'on veut toucher. Un ::after ne convient pas ici : les deux
   liens sont sur des lignes voisines d'un meme paragraphe, les zones se
   recouvriraient. On passe en inline-block avec du rembourrage vertical — la
   ligne s'ouvre d'elle-meme a la hauteur de la boite. Mobile seulement. */
@media (max-width:767px){
  .elementor-6489 .dc-contact-card a[href^="tel:"],
  .elementor-6489 .dc-contact-card a[href^="mailto:"]{
    display:inline-block!important;padding:11px 0!important;}
}

/* [5] La carte Google faisait 342 x 192 px (rapport 16/9), dont ~25 px de
   barre d'attribution Google : il restait 165 px de carte utile, et les rues
   voisines sortaient du cadre. En 4/3 elle passe a 256 px. */
/*  CORRIGE dans la foulee : j'avais vise `.dc-map-live`, qui est en absolu a
    l'interieur de `.dc-map-slot` (inset:0, height:100%). Lui poser un rapport
    d'image ne grandit pas la carte : sa hauteur restant imposee par le slot,
    c'est sa LARGEUR qui a retreci — 342 x 192 est devenu 257 x 192.
    Le rapport se pose sur le SLOT, qui est l'element qui a une largeur.
    Le slot est en 4/3 par defaut et passe en 16/9 sous 900 px ; on ne rouvre
    le 4/3 que sous 768, la tablette garde son panorama. */
@media (max-width:767px){
  .elementor-6489 .dc-map-slot{aspect-ratio:4 / 3!important;}
}

/* [6] TABLETTE — « Des infrastructures a Auderghem » gardait la disposition
   deux colonnes du bureau jusqu'a 1099 px, alors que la colonne de texte
   tombe a 155 px. Mesures : 3 lignes pour 19 signes a 768, 2 lignes a 900 et
   1024, 1 ligne seulement a partir de ~1100. On etend l'empilement (la
   disposition mobile, qui est propre) jusqu'a 1099 px.
   Les regles sont RECOPIEES depuis le bloc <=767 plutot que le palier
   deplace : le comportement mobile deja verifie n'est pas touche.
   Rappel du piege paye a <=767 : declarer `grid-template-columns:1fr` ne
   suffit pas — les trois appuis portent `grid-column:2` de la regle de
   bureau, ce qui CREE une seconde colonne implicite. Il faut les ramener un
   par un en colonne 1. */
@media (min-width:768px) and (max-width:1099px){
  .elementor-6489 .elementor-element.elementor-element-d60c03a{
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto auto auto auto!important;}
  .elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-44c60dc{
    grid-column:1!important;grid-row:1!important;
    /* meme raison qu'en mobile : le contenu est en absolu, la rangee se
       dimensionnerait a zero. Hauteur explicite + align-self:start. */
    min-height:0!important;height:clamp(260px,34vw,360px)!important;
    align-self:start!important;
    border-right:0!important;
    border-bottom:1px solid var(--dc-gray-200)!important;}
  .elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-5166c1b{
    grid-column:1!important;grid-row:2!important;border-top:0!important;}
  .elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-3f6e84f{
    grid-column:1!important;grid-row:3!important;}
  .elementor-6489 .elementor-element-d60c03a > .e-con.elementor-element-c70e5e2{
    grid-column:1!important;grid-row:4!important;}
  /*  CORRIGE dans la foulee : les quatre tuiles etaient bien passees en
      colonne 1, mais le CINQUIEME enfant — « Decouvrir nos infrastructures »
      (49caddc) — gardait `grid-column:2` de la regle de bureau. Il creait a
      lui seul la deuxieme colonne implicite decrite plus haut : 266 px pris
      a vide, et les tuiles reduites a 419 px au lieu de 688.
      C'est exactement le piege que le commentaire du bloc <=767 annonce ;
      je l'ai paye une fois de plus faute de compter les enfants. */
  .elementor-6489 .elementor-element.elementor-element-075818a{
    grid-column:1!important;grid-row:5!important;}
}


/* ===========================================================================
   COPIE V2 — MASQUAGE DU TITRE IMPRIME PAR LE THEME
   La page d'origine utilise le gabarit « Elementor pleine largeur »
   (`_wp_page_template = elementor_header_footer`). Une page creee par le MCP
   retombe sur `default`, et le MCP ne sait pas ecrire ce reglage : le theme
   ajoute alors son propre `h1` au-dessus du contenu Elementor (50 px + marges,
   soit ~74 px que la page d'origine n'a pas).
   On le masque ici — cette feuille ne se charge que sur cette page.
   VRAI CORRECTIF, en un clic : wp-admin > la page > Attributs de page >
   Modele > « Elementor pleine largeur ». Ce bloc devient alors inutile.
   =========================================================================== */
.page-header,.page-header .entry-title{display:none!important;}


/* ===========================================================================
   A PROPOS V3 — DECISIONS DE LA REUNION DU 25/09 (Veronique, Hamza, Yassine)
   ---------------------------------------------------------------------------
   Noemie : page trop longue, pas assez de rupture entre les sections. Sans
   changer le design valide le 14/09 :
   1. le bandeau « L'equipe » apres les chiffres est retire (doublon du
      « Voir l'equipe » du module d'onglets) ;
   2. Infrastructures reprend le module Formations de l'accueil, en miroir :
      la carte d'appel A GAUCHE, sur la photo de l'auditorium, les trois
      autres espaces a cote, sur UNE rangee — et la section passe sur fond
      d'encre, la rupture demandee (comme « Notre ecosysteme », un cran plus
      doux, tire vers le violet) ;
   3. les rapports de veille passent sur deux colonnes : meme liste menee par
      l'annee, moitie moins haute.
   Selecteurs par l'identifiant de section : ils l'emportent sur les regles
   de grille du 12/09 sans les reecrire.
   =========================================================================== */
#infrastructures{background:linear-gradient(135deg,#130F33 0%,#221856 60%,#2E1C6B 100%)!important;}
#infrastructures::before,#infrastructures::after{display:none!important;}
#infrastructures .dc-eyebrow .elementor-heading-title{color:#B9A8FF!important;-webkit-text-fill-color:#B9A8FF!important;}
#infrastructures .dc-header-text h2.elementor-heading-title,
#infrastructures .dc-header-text .elementor-heading-title{color:#fff!important;-webkit-text-fill-color:#fff!important;}
#infrastructures .dc-subtitle,#infrastructures .dc-subtitle p{color:rgba(255,255,255,.74)!important;}

#infrastructures .dc-hairline-grid.dc-hairline-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;
  grid-template-rows:auto!important;gap:20px!important;background:none!important;border:0!important;border-radius:0!important;
  overflow:visible!important;margin-top:40px!important;}
#infrastructures .dc-hairline-grid > .dc-space-card{grid-column:auto!important;grid-row:auto!important;position:relative!important;
  display:flex!important;flex-direction:column!important;min-height:0!important;height:auto!important;margin:0!important;
  background:#fff!important;border:0!important;border-radius:20px!important;overflow:hidden!important;padding:0 0 22px!important;}
#infrastructures .dc-space-card .dc-espace-photo{order:0!important;margin:0 0 18px!important;width:100%!important;}
#infrastructures .dc-space-card .dc-espace-photo img{width:100%!important;height:200px!important;object-fit:cover!important;
  border-radius:0!important;display:block!important;}
#infrastructures .dc-space-card .dc-space-name,#infrastructures .dc-space-card .dc-space-cap{padding:0 22px!important;margin:0!important;}
#infrastructures .dc-space-card .dc-space-name .elementor-heading-title{font-size:19px!important;font-weight:700!important;
  color:var(--dc-text)!important;-webkit-text-fill-color:currentColor!important;}
#infrastructures .dc-space-card .dc-space-cap .elementor-heading-title{margin-top:4px!important;font-size:14px!important;font-weight:600!important;
  color:#5B3FD0!important;-webkit-text-fill-color:currentColor!important;}

/* la carte d'appel : l'auditorium en fond, le texte et le bouton dessus */
#infrastructures .dc-space-card.dc-space-card--cta{justify-content:flex-end!important;min-height:340px!important;padding:0 24px 24px!important;
  background:#0E0B26!important;isolation:isolate;}
#infrastructures .dc-space-card--cta .dc-espace-photo{position:absolute!important;inset:0!important;margin:0!important;z-index:-2;}
#infrastructures .dc-space-card--cta .dc-espace-photo img{height:100%!important;}
#infrastructures .dc-space-card--cta::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(14,11,38,.10) 0%,rgba(14,11,38,.55) 45%,rgba(14,11,38,.92) 100%);}
#infrastructures .dc-space-card--cta .dc-space-name,#infrastructures .dc-space-card--cta .dc-space-cap{padding:0!important;}
#infrastructures .dc-space-card--cta .dc-space-name .elementor-heading-title{font-size:26px!important;color:#fff!important;}
#infrastructures .dc-space-card--cta .dc-space-cap .elementor-heading-title{color:#C9BBFF!important;}
#infrastructures .dc-space-card--cta .elementor-widget-button{margin-top:18px!important;width:auto!important;align-self:flex-start!important;}
#infrastructures .dc-space-card--cta .elementor-button.elementor-button{background:#fff!important;color:#12102E!important;
  -webkit-text-fill-color:#12102E!important;border:0!important;border-radius:10px!important;padding:12px 18px!important;
  font-weight:700!important;box-shadow:none!important;}
#infrastructures .dc-space-card--cta .elementor-button.elementor-button *{color:#12102E!important;-webkit-text-fill-color:#12102E!important;fill:#12102E!important;}

/* les rapports de veille : deux colonnes, meme dessin */
#publications .dc-pub-card{min-width:0;}
#publications .dc-pub-card + .dc-pub-card{margin-top:0!important;}
#publications .e-con-inner > .e-con:has(> .dc-pub-card),
#publications > .e-con:has(> .dc-pub-card){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
  column-gap:48px!important;row-gap:0!important;}

@media (max-width:1024px){
  #infrastructures .dc-hairline-grid.dc-hairline-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  #publications .e-con-inner > .e-con:has(> .dc-pub-card),
  #publications > .e-con:has(> .dc-pub-card){grid-template-columns:1fr!important;}
}
@media (max-width:767px){
  #infrastructures .dc-hairline-grid.dc-hairline-grid{grid-template-columns:1fr!important;}
  #infrastructures .dc-space-card.dc-space-card--cta{min-height:300px!important;}
}

/* ordre des plans de la carte d'appel : photo, voile, texte */
#infrastructures .dc-space-card--cta .dc-espace-photo.dc-espace-photo{z-index:0!important;}
#infrastructures .dc-space-card.dc-space-card--cta::after{z-index:1!important;}
#infrastructures .dc-space-card--cta > .elementor-element:not(.dc-espace-photo){position:relative!important;z-index:2!important;}
#infrastructures .dc-space-card .dc-space-name.dc-space-name,
#infrastructures .dc-space-card .dc-space-cap.dc-space-cap{align-self:stretch!important;width:auto!important;text-align:left!important;}
#infrastructures .dc-space-card .dc-space-name .elementor-heading-title,
#infrastructures .dc-space-card .dc-space-cap .elementor-heading-title{text-align:left!important;}

#infrastructures .dc-space-card.dc-space-card--cta::after{content:""!important;position:absolute!important;inset:0!important;
  background:linear-gradient(180deg,rgba(14,11,38,.05) 0%,rgba(14,11,38,.55) 50%,rgba(14,11,38,.94) 100%)!important;
  opacity:1!important;z-index:1!important;pointer-events:none;}
#infrastructures .dc-space-card--cta .elementor-button.elementor-button{padding:11px 16px!important;font-size:15px!important;}

/* 26/09 nuit — contraste AA de la carte auditorium : voile plus dense sous le
   texte, capacite en blanc */
#infrastructures .dc-space-card.dc-space-card--cta::after{background:linear-gradient(180deg,rgba(14,11,38,.10) 0%,rgba(14,11,38,.70) 38%,rgba(14,11,38,.96) 100%)!important;}
#infrastructures .dc-space-card--cta .dc-space-cap .elementor-heading-title{color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:.92;}

/* 26/09 — plus de vide sous le texte des 3 cartes blanches : la photo absorbe
   la hauteur de la rangee, le texte reste en bas (bureau et tablette) */
@media (min-width:768px){
  #infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-espace-photo{flex:1 1 auto!important;min-height:180px!important;display:flex!important;}
  #infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-espace-photo img{height:100%!important;min-height:180px!important;}
  #infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-espace-photo > *{flex:1;display:flex;}
}

/* 26/09 — « Un partenariat public-prive » apres le retrait du bandeau equipe :
   plus de marge orpheline en bas (56 px qui separaient du bandeau), et la
   photo prend la hauteur de la colonne de texte au bureau */
#apropos .dc-two-col.dc-two-col{margin-bottom:0!important;}
@media (min-width:1025px){
  #apropos .dc-two-col.dc-two-col{align-items:stretch!important;}
  #apropos .dc-two-col > .dc-card-img.dc-fig-43{aspect-ratio:auto!important;height:auto!important;min-height:100%!important;align-self:stretch!important;}
}

/* 26/09 — citation -> chiffres : 56 px avant le filet ramenes a 32, 30 apres ramenes a 24 */
#apropos .dc-two-body .dc-hairline-grid.dc-stats{margin-top:10px!important;padding-top:24px!important;}

/* ===========================================================================
   26/09 — INFRASTRUCTURES = LE MODULE FORMATIONS DE L'ACCUEIL, A L'IDENTIQUE
   (Hamza en reunion : « reprendre ce modele-la, l'appel a l'action a gauche,
   sur le fond de l'auditorium »). Mesures relevees sur l'accueil : grille a
   filets de 1 px (#E2E5ED), cadre arrondi 16 px, cartes blanches a angles
   droits, photo 184 px, texte en 24/32 px de marge, titre 17 px Rubik 700,
   meta 14 px gris ; carte d'appel : image pleine, titre 22 px blanc, meta
   14 px, lien texte 14 px avec fleche.
   =========================================================================== */
#infrastructures .dc-hairline-grid.dc-hairline-grid{gap:1px!important;background:#E2E5ED!important;border:1px solid #E2E5ED!important;
  border-radius:16px!important;overflow:hidden!important;align-items:stretch!important;}
#infrastructures .dc-hairline-grid > .dc-space-card.dc-space-card{border-radius:0!important;box-shadow:none!important;padding:0 0 24px!important;
  min-height:0!important;background:#fff!important;justify-content:flex-start!important;}
#infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-espace-photo.dc-espace-photo{flex:0 0 auto!important;min-height:0!important;margin:0 0 24px!important;display:block!important;}
#infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-espace-photo img{height:184px!important;min-height:0!important;border-radius:0!important;}
#infrastructures .dc-space-card .dc-space-name.dc-space-name,
#infrastructures .dc-space-card .dc-space-cap.dc-space-cap{padding:0 32px!important;}
#infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-space-name .elementor-heading-title{font-family:Rubik,sans-serif!important;font-size:17px!important;
  font-weight:700!important;line-height:1.3!important;color:#1A1D2B!important;-webkit-text-fill-color:#1A1D2B!important;}
#infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-space-cap .elementor-heading-title{margin-top:8px!important;font-size:14px!important;
  font-weight:400!important;color:#5F6980!important;-webkit-text-fill-color:#5F6980!important;}
/* la carte d'appel : image pleine de l'auditorium, texte en bas, lien texte */
#infrastructures .dc-hairline-grid > .dc-space-card.dc-space-card--cta{justify-content:flex-end!important;padding:24px 32px!important;background:#0E0B26!important;}
#infrastructures .dc-space-card--cta .dc-space-name.dc-space-name,
#infrastructures .dc-space-card--cta .dc-space-cap.dc-space-cap{padding:0!important;}
#infrastructures .dc-space-card--cta .dc-space-name .elementor-heading-title{font-family:Rubik,sans-serif!important;font-size:22px!important;font-weight:700!important;line-height:1.22!important;}
#infrastructures .dc-space-card--cta .dc-space-cap .elementor-heading-title{margin-top:8px!important;font-size:14px!important;font-weight:400!important;
  color:rgba(255,255,255,.82)!important;-webkit-text-fill-color:rgba(255,255,255,.82)!important;opacity:1!important;}
#infrastructures .dc-space-card--cta .elementor-widget-button{margin-top:18px!important;border:0!important;padding:0!important;}
#infrastructures .dc-space-card--cta .elementor-widget-button::before,#infrastructures .dc-space-card--cta .elementor-widget-button::after{display:none!important;}
#infrastructures .dc-space-card--cta .elementor-button.elementor-button{background:none!important;padding:0!important;border:0!important;border-radius:0!important;
  font-size:14px!important;font-weight:500!important;color:#fff!important;-webkit-text-fill-color:#fff!important;box-shadow:none!important;}
#infrastructures .dc-space-card--cta .elementor-button.elementor-button *{color:#fff!important;-webkit-text-fill-color:#fff!important;fill:#fff!important;}
#infrastructures .dc-space-card--cta .elementor-button:hover .elementor-button-text{text-decoration:underline;text-underline-offset:3px;}
@media (max-width:1024px){ #infrastructures .dc-hairline-grid > .dc-space-card.dc-space-card--cta{min-height:260px!important;} }

#infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-space-cap .elementor-heading-title.elementor-heading-title,
#infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-space-cap .elementor-heading-title *{color:#5F6980!important;-webkit-text-fill-color:#5F6980!important;font-weight:400!important;}
#infrastructures .dc-space-card--cta .dc-space-cap .elementor-heading-title.elementor-heading-title{letter-spacing:0!important;text-transform:none!important;}

/* 26/09 — Infrastructures prend l'encre de nuit du site (meme fond que
   « Notre ecosysteme », les evenements et le bandeau d'appel) */
#infrastructures.dc-section{background:#0A0728!important;position:relative;isolation:isolate;}
#infrastructures.dc-section::before{content:""!important;display:block!important;position:absolute!important;inset:0!important;z-index:-1!important;pointer-events:none;opacity:1!important;
  background:radial-gradient(62% 58% at 10% 4%,rgba(126,63,242,.46),rgba(126,63,242,0) 68%),
             radial-gradient(56% 52% at 92% 98%,rgba(0,138,183,.38),rgba(0,138,183,0) 70%),
             radial-gradient(44% 38% at 64% 26%,rgba(217,70,239,.15),rgba(217,70,239,0) 74%)!important;}

/* 26/09 — le lien de la carte Auditorium se comporte comme « Voir le catalogue »
   de l'accueil : pas de fond ni de soulignement, la fleche avance de 4 px au
   survol de la carte */
#infrastructures .dc-space-card--cta .elementor-button.elementor-button,
#infrastructures .dc-space-card--cta .elementor-button.elementor-button:hover,
#infrastructures .dc-space-card--cta .elementor-button.elementor-button:focus{background:none!important;background-color:transparent!important;box-shadow:none!important;}
#infrastructures .dc-space-card--cta .elementor-button:hover .elementor-button-text{text-decoration:none!important;}
#infrastructures .dc-space-card--cta .elementor-button-icon{transition:transform .3s var(--dc-ease,ease)!important;}
#infrastructures .dc-space-card--cta:hover .elementor-button-icon{transform:translateX(4px)!important;}
/* rapports de veille : un filet vertical separe les deux colonnes */
@media (min-width:1025px){
  #publications .e-con-inner > .e-con:has(> .dc-pub-card),
  #publications > .e-con:has(> .dc-pub-card){column-gap:0!important;}
  #publications .dc-pub-card:nth-child(odd){padding-right:40px!important;}
  #publications .dc-pub-card:nth-child(even){padding-left:40px!important;border-left:1px solid var(--dc-gray-200,#E3E6EE)!important;}
}

/* 26/09 — pas de fond au survol du conteneur du lien (style « encadre » herite) */
#infrastructures .dc-space-card--cta .elementor-widget-button,
#infrastructures .dc-space-card--cta .elementor-widget-button:hover{background:none!important;background-color:transparent!important;}

/* 26/09 — RAPPORTS DE VEILLE : une composition pensee pour la demi-colonne.
   Vignette a gauche ; a droite, empiles : annee en couleur, titre, texte,
   lien de telechargement. Les filets suivent chaque rangee. */
@media (min-width:1025px){
  #publications .dc-card.dc-pub-card.dc-pub-card{grid-template-columns:96px minmax(0,1fr)!important;grid-template-rows:auto auto auto 1fr!important;
    column-gap:24px!important;row-gap:6px!important;align-items:start!important;padding-top:28px!important;padding-bottom:28px!important;}
  #publications .dc-pub-card .dc-card-img{grid-column:1!important;grid-row:1 / span 4!important;align-self:start!important;}
  #publications .dc-pub-card .dc-pub-year{grid-column:2!important;grid-row:1!important;}
  #publications .dc-pub-card .dc-pub-year .elementor-heading-title{font-size:15px!important;line-height:1.2!important;letter-spacing:.02em!important;
    color:var(--dc-bleu-logo,#008AB7)!important;-webkit-text-fill-color:var(--dc-bleu-logo,#008AB7)!important;}
  #publications .dc-pub-card .dc-card-title{grid-column:2!important;grid-row:2!important;}
  #publications .dc-pub-card .dc-card-title .elementor-heading-title{font-size:19px!important;line-height:1.3!important;}
  #publications .dc-pub-card .dc-card-excerpt{grid-column:2!important;grid-row:3!important;}
  #publications .dc-pub-card .dc-card-excerpt p{margin:0!important;font-size:15px!important;line-height:1.5!important;}
  #publications .dc-pub-card .dc-card-bottom{grid-column:2!important;grid-row:4!important;justify-self:start!important;align-self:end!important;margin-top:8px!important;}
}

/* 26/09 — telechargement : une seule animation, la fleche (vers le bas)
   descend de 3 px. L'ecartement du lien generique (qui la poussait a droite)
   est fige ici. */
#publications .dc-pub-card .dc-card-bottom .elementor-button-content-wrapper,
#publications .dc-pub-card .dc-card-bottom .elementor-button:hover .elementor-button-content-wrapper,
#publications .dc-pub-card:hover .dc-card-bottom .elementor-button-content-wrapper{gap:8px!important;transition:none!important;}
#publications .dc-pub-card .dc-card-bottom .elementor-button-icon{transition:transform .25s ease!important;transform:none;}
#publications .dc-pub-card .dc-card-bottom .elementor-button-icon *{transition:none!important;transform:none!important;}
#publications .dc-pub-card:hover .dc-card-bottom .elementor-button-icon{transform:translateY(3px)!important;}

/* 26/09 — rapports : le bloc ne bouge plus (au retour du PDF, le lien garde le
   focus et le bloc remontait de 8 px) ; plus de zoom de vignette : une seule
   animation, la fleche qui descend */
#publications .dc-pub-card.dc-pub-card,
#publications .dc-pub-card.dc-pub-card:hover,
#publications .dc-pub-card.dc-pub-card:focus-within{transform:none!important;}
#publications .dc-pub-card .dc-card-img,
#publications .dc-pub-card:hover .dc-card-img,
#publications .dc-pub-card:focus-within .dc-card-img,
#publications .elementor-element > *:hover .dc-card-img,
#publications .elementor-element > *:focus-within .dc-card-img{transform:none!important;}
#publications .dc-pub-card:focus-within .dc-card-bottom .elementor-button-icon{transform:none!important;}
#publications .dc-pub-card:hover .dc-card-bottom .elementor-button-icon{transform:translateY(3px)!important;}

/* 27/09 — zoom leger de la vignette, au SURVOL seulement (jamais au focus) */
#publications .dc-pub-card .dc-card-img{overflow:hidden!important;}
#publications .dc-pub-card .dc-card-img,#publications .dc-pub-card .dc-card-img *{transition:transform .4s ease!important;}
#publications .dc-pub-card.dc-pub-card:hover .dc-card-img{transform:scale(1.04)!important;}
/* le bloc entier ouvre le PDF : le lien « Telecharger » s'etire sur tout le bloc */
#publications .dc-pub-card.dc-pub-card{position:relative!important;cursor:pointer;}
#publications .dc-pub-card .elementor-element,#publications .dc-pub-card .elementor-button{position:static!important;}
#publications .dc-pub-card .dc-card-bottom a.elementor-button::after{content:""!important;display:block!important;position:absolute!important;inset:0!important;z-index:2!important;}
#publications .dc-pub-card .dc-card-bottom a.elementor-button:focus-visible{outline:2px solid var(--dc-bleu-logo,#008AB7)!important;outline-offset:4px;}

/* le degrade d'ombre de la vignette reste DANS la vignette (il s'etalait sur tout le bloc) */
#publications .dc-pub-card .dc-card-img.dc-card-img{position:relative!important;}

/* [28/09] Infrastructures sous 960 px = cartes compactes du module Formations de l'accueil (memes valeurs) */
@media (max-width:959px){
  .elementor-6489 #infrastructures .dc-hairline-grid .dc-space-card.dc-space-card:not(.dc-space-card--cta){
    display:grid!important;grid-template-columns:var(--dc-vignette,112px) minmax(0,1fr)!important;
    grid-template-rows:1fr auto auto 1fr!important;column-gap:0!important;row-gap:4px!important;
    padding:0!important;align-items:start!important;height:auto!important;min-height:0!important;}
  .elementor-6489 #infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-espace-photo{
    grid-column:1!important;grid-row:1 / -1!important;width:var(--dc-vignette,112px)!important;
    height:100%!important;min-height:var(--dc-vignette,112px)!important;margin:0!important;}
  .elementor-6489 #infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-espace-photo img{
    width:100%!important;height:100%!important;object-fit:cover!important;aspect-ratio:auto!important;}
  .elementor-6489 #infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-space-name{
    grid-column:2!important;grid-row:2!important;padding:14px 14px 0 16px!important;margin:0!important;}
  .elementor-6489 #infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-space-cap{
    grid-column:2!important;grid-row:3!important;padding:0 14px 14px 16px!important;margin:0!important;}
  .elementor-6489 #infrastructures .dc-space-card .dc-space-name .elementor-heading-title.elementor-heading-title{
    font-size:16px!important;line-height:1.3!important;}
  /* la carte lien (Auditorium) = la carte « suite » de l'accueil : pleine largeur, 18 px, photo en fond */
  .elementor-6489 #infrastructures .dc-space-card.dc-space-card--cta.dc-space-card--cta{
    min-height:172px!important;height:auto!important;padding:18px!important;}
  .elementor-6489 #infrastructures .dc-space-card--cta .dc-space-name .elementor-heading-title.elementor-heading-title{font-size:17px!important;}
}
@media (min-width:768px) and (max-width:959px){
  .elementor-6489 #infrastructures .dc-space-card{--dc-vignette:120px;}
}

@media (max-width:959px){ /* [28/09 b] la photo ne dicte plus la hauteur ; la carte lien remplit sa rangee */
  .elementor-6489 #infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-espace-photo{position:relative!important;height:auto!important;overflow:hidden!important;}
  .elementor-6489 #infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-espace-photo img{position:absolute!important;inset:0!important;}
  .elementor-6489 #infrastructures .dc-space-card.dc-space-card--cta.dc-space-card--cta{align-self:stretch!important;}
}

@media (max-width:959px){ /* [28/09 c] */ .elementor-6489 #infrastructures .dc-space-card:not(.dc-space-card--cta) .dc-espace-photo{align-self:stretch!important;} }

/* [29/09] Tablette portrait : « Qui sommes-nous » reprend la mise en page du paysage (1024) —
   image 40 % a gauche, texte a droite — au lieu d'une image pleine largeur de ~450 px. */
@media (min-width:768px) and (max-width:1023px){
  .elementor-6489 #apropos .dc-two-col.dc-two-col{flex-direction:row!important;align-items:flex-start!important;gap:56px!important;}
  .elementor-6489 #apropos .dc-two-col > .dc-card-img{flex:0 0 40%!important;width:40%!important;max-width:40%!important;}
  .elementor-6489 #apropos .dc-two-col > .dc-two-body{flex:1 1 0!important;width:auto!important;min-width:0!important;}
}
/* [29/09] Infrastructures en tablette : toutes les rangees a la meme hauteur, la carte Auditorium remplit la sienne */
@media (min-width:768px) and (max-width:1024px){
  .elementor-6489 #infrastructures .dc-hairline-grid.dc-hairline-grid{grid-auto-rows:1fr!important;}
  .elementor-6489 #infrastructures .dc-space-card.dc-space-card{align-self:stretch!important;height:auto!important;}
}

@media (min-width:768px) and (max-width:959px){ /* [29/09 b] rangees explicites : meme hauteur minimale que la carte Auditorium */
  .elementor-6489 #infrastructures .dc-hairline-grid .dc-space-card.dc-space-card.dc-space-card:not(.dc-space-card--cta){min-height:172px!important;}
}

@media (min-width:768px) and (max-width:1023px){ /* [29/09 c] colonne de texte plus etroite en portrait */
  .elementor-6489 #apropos .dc-stat-num .elementor-heading-title.elementor-heading-title{font-size:32px!important;white-space:nowrap!important;}
  .elementor-6489 #apropos .dc-two-title .elementor-heading-title{text-wrap:balance;}
}

/* RETOURS 14/10 : titre du theme masque (gabarit de page par defaut sur la copie) */
.page-header,.entry-title.page-title,header.page-header{display:none!important;}

/* RETOURS 14/10 : ecosysteme desaffiche via Visibilite reactive Elementor (logos masques, remplaces par un court texte + lien Partenaires) */
/* Masquage visible sur le site seulement : dans l'editeur Elementor les logos restent visibles et modifiables. */
body:not(.elementor-editor-active) .elementor-6489 .dc-section.dc-eco .dc-eco-logos.elementor-hidden-desktop{display:none!important;}
.dc-eco .dc-header-text + .elementor-widget-button,.dc-eco > .elementor-widget-button{margin-top:28px;align-self:flex-start;}


.elementor-6489 .dc-section.dc-eco .elementor-widget-button{align-self:flex-start!important;margin-top:8px;}


/* RETOURS 14/10 : logos de l'ecosysteme = vrais widgets Image (lien + alt), modifiables dans Elementor.
   La cellule blanche reste portee par .dc-client-chip ; le logo est l'image du widget. */
.elementor-6489 .dc-eco .dc-client-chip.elementor-widget-image a{display:flex!important;align-items:center;justify-content:center;width:100%;}
.elementor-6489 .dc-eco .dc-client-chip.elementor-widget-image img{width:auto!important;max-width:100%!important;height:auto!important;max-height:46px!important;object-fit:contain;display:block;}/* End custom CSS */