.elementor-12 .elementor-element.elementor-element-4198a2b{--display:flex;--min-height:88vh;--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:flex-start;--overlay-opacity:0.5;--padding-top:112px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-4198a2b::before, .elementor-12 .elementor-element.elementor-element-4198a2b > .elementor-background-video-container::before, .elementor-12 .elementor-element.elementor-element-4198a2b > .e-con-inner > .elementor-background-video-container::before, .elementor-12 .elementor-element.elementor-element-4198a2b > .elementor-background-slideshow::before, .elementor-12 .elementor-element.elementor-element-4198a2b > .e-con-inner > .elementor-background-slideshow::before, .elementor-12 .elementor-element.elementor-element-4198a2b > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:rgba(13,21,32,0.62);--background-overlay:'';}.elementor-12 .elementor-element.elementor-element-4198a2b:not(.elementor-motion-effects-element-type-background), .elementor-12 .elementor-element.elementor-element-4198a2b > .elementor-motion-effects-container > .elementor-motion-effects-layer{background:url("https://tps.canopea-webmarketing.fr/wp-content/uploads/2026/07/tps-hero-facade.jpg") 50% 50%;background-size:cover;}.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-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-12 .elementor-element.elementor-element-627b2e0{--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;--gap:10px 14px;--row-gap:10px;--column-gap:14px;--flex-wrap:wrap;--padding-top:10px;--padding-bottom:0px;--padding-left:0px;--padding-right: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-12 .elementor-element.elementor-element-8313186{--display:flex;--padding-top:48px;--padding-bottom:48px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-8313186:not(.elementor-motion-effects-element-type-background), .elementor-12 .elementor-element.elementor-element-8313186 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#EDF1F5;}.elementor-12 .elementor-element.elementor-element-ce89ee2{--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:space-between;--gap:28px 24px;--row-gap:28px;--column-gap:24px;--flex-wrap:wrap;}.elementor-12 .elementor-element.elementor-element-d2235a2{--display:flex;}.elementor-widget-counter .elementor-counter-number-wrapper{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-counter .elementor-counter-title{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-12 .elementor-element.elementor-element-fb288ac{--display:flex;}.elementor-12 .elementor-element.elementor-element-0c484fa{--display:flex;}.elementor-12 .elementor-element.elementor-element-9043a02{--display:flex;}.elementor-12 .elementor-element.elementor-element-cb4bbdd{--display:flex;--padding-top:84px;--padding-bottom:20px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-df993d9{--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:space-between;--gap:28px 24px;--row-gap:28px;--column-gap:24px;--flex-wrap:wrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:56px;--padding-bottom:56px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-3f77c03{--display:flex;}.elementor-widget-icon-box.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-widget-icon-box.elementor-view-framed .elementor-icon, .elementor-widget-icon-box.elementor-view-default .elementor-icon{fill:var( --e-global-color-primary );color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-icon-box .elementor-icon-box-title, .elementor-widget-icon-box .elementor-icon-box-title a{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-icon-box .elementor-icon-box-title{color:var( --e-global-color-primary );}.elementor-widget-icon-box:has(:hover) .elementor-icon-box-title,
					 .elementor-widget-icon-box:has(:focus) .elementor-icon-box-title{color:var( --e-global-color-primary );}.elementor-widget-icon-box .elementor-icon-box-description{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-12 .elementor-element.elementor-element-87de538 .elementor-icon-box-wrapper{gap:15px;}.elementor-12 .elementor-element.elementor-element-877ead9{--display:flex;}.elementor-12 .elementor-element.elementor-element-2fafe41 .elementor-icon-box-wrapper{gap:15px;}.elementor-12 .elementor-element.elementor-element-4ff40f2{--display:flex;}.elementor-12 .elementor-element.elementor-element-b1b7730 .elementor-icon-box-wrapper{gap:15px;}.elementor-12 .elementor-element.elementor-element-c6c21f1{--display:flex;}.elementor-12 .elementor-element.elementor-element-bb990a9 .elementor-icon-box-wrapper{gap:15px;}.elementor-12 .elementor-element.elementor-element-291b6b7{--display:flex;--padding-top:84px;--padding-bottom:20px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-291b6b7:not(.elementor-motion-effects-element-type-background), .elementor-12 .elementor-element.elementor-element-291b6b7 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#EDF1F5;}.elementor-12 .elementor-element.elementor-element-2273612{--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:space-between;--gap:28px 24px;--row-gap:28px;--column-gap:24px;--flex-wrap:wrap;--padding-top:56px;--padding-bottom:56px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-874d68e{--display:flex;}.elementor-widget-image-box .elementor-image-box-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-widget-image-box:has(:hover) .elementor-image-box-title,
					 .elementor-widget-image-box:has(:focus) .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-widget-image-box .elementor-image-box-description{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-12 .elementor-element.elementor-element-23a19fc.elementor-position-right .elementor-image-box-img{margin-left:15px;}.elementor-12 .elementor-element.elementor-element-23a19fc.elementor-position-left .elementor-image-box-img{margin-right:15px;}.elementor-12 .elementor-element.elementor-element-23a19fc.elementor-position-top .elementor-image-box-img{margin-bottom:15px;}.elementor-12 .elementor-element.elementor-element-23a19fc .elementor-image-box-wrapper .elementor-image-box-img{width:30%;}.elementor-12 .elementor-element.elementor-element-23a19fc .elementor-image-box-img img{transition-duration:0.3s;}.elementor-12 .elementor-element.elementor-element-89a0c1a{--display:flex;}.elementor-12 .elementor-element.elementor-element-f22d808.elementor-position-right .elementor-image-box-img{margin-left:15px;}.elementor-12 .elementor-element.elementor-element-f22d808.elementor-position-left .elementor-image-box-img{margin-right:15px;}.elementor-12 .elementor-element.elementor-element-f22d808.elementor-position-top .elementor-image-box-img{margin-bottom:15px;}.elementor-12 .elementor-element.elementor-element-f22d808 .elementor-image-box-wrapper .elementor-image-box-img{width:30%;}.elementor-12 .elementor-element.elementor-element-f22d808 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-12 .elementor-element.elementor-element-dd17b3a{--display:flex;}.elementor-12 .elementor-element.elementor-element-3a73a1a.elementor-position-right .elementor-image-box-img{margin-left:15px;}.elementor-12 .elementor-element.elementor-element-3a73a1a.elementor-position-left .elementor-image-box-img{margin-right:15px;}.elementor-12 .elementor-element.elementor-element-3a73a1a.elementor-position-top .elementor-image-box-img{margin-bottom:15px;}.elementor-12 .elementor-element.elementor-element-3a73a1a .elementor-image-box-wrapper .elementor-image-box-img{width:30%;}.elementor-12 .elementor-element.elementor-element-3a73a1a .elementor-image-box-img img{transition-duration:0.3s;}.elementor-12 .elementor-element.elementor-element-2cd25f5{--display:flex;}.elementor-12 .elementor-element.elementor-element-efe4ee5.elementor-position-right .elementor-image-box-img{margin-left:15px;}.elementor-12 .elementor-element.elementor-element-efe4ee5.elementor-position-left .elementor-image-box-img{margin-right:15px;}.elementor-12 .elementor-element.elementor-element-efe4ee5.elementor-position-top .elementor-image-box-img{margin-bottom:15px;}.elementor-12 .elementor-element.elementor-element-efe4ee5 .elementor-image-box-wrapper .elementor-image-box-img{width:30%;}.elementor-12 .elementor-element.elementor-element-efe4ee5 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-12 .elementor-element.elementor-element-f9fea89{--display:flex;--padding-top:56px;--padding-bottom:56px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-f9fea89:not(.elementor-motion-effects-element-type-background), .elementor-12 .elementor-element.elementor-element-f9fea89 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#0D1520;background-image:url("https://tps.canopea-webmarketing.fr/wp-content/uploads/2026/07/tps-process-band.jpg");background-position:center center;background-size:cover;}.elementor-12 .elementor-element.elementor-element-efa2476{--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:space-between;--gap:26px 18px;--row-gap:26px;--column-gap:18px;--flex-wrap:wrap;--padding-top:30px;--padding-bottom:26px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-04c5494{--display:flex;}.elementor-12 .elementor-element.elementor-element-ea6b49e{--display:flex;}.elementor-12 .elementor-element.elementor-element-852a59f{--display:flex;}.elementor-12 .elementor-element.elementor-element-8c21f75{--display:flex;}.elementor-12 .elementor-element.elementor-element-b67df05{--display:flex;}.elementor-12 .elementor-element.elementor-element-51b7651{--display:flex;}.elementor-12 .elementor-element.elementor-element-d4bbeb9{--display:flex;--padding-top:84px;--padding-bottom:84px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-f47e33a{--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:space-between;--gap:30px 22px;--row-gap:30px;--column-gap:22px;--flex-wrap:wrap;--padding-top:56px;--padding-bottom:56px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-d2a4c46{--display:flex;--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-12 .elementor-element.elementor-element-70112ce{--display:flex;}.elementor-12 .elementor-element.elementor-element-70112ce:not(.elementor-motion-effects-element-type-background), .elementor-12 .elementor-element.elementor-element-70112ce > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://tps.canopea-webmarketing.fr/wp-content/uploads/2026/07/tps-garde-corps.jpg");background-position:center center;background-size:cover;}.elementor-12 .elementor-element.elementor-element-a5f6d38{--display:flex;}.elementor-widget-icon-list .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-icon-list .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-icon-list .elementor-icon-list-text{color:var( --e-global-color-secondary );}.elementor-12 .elementor-element.elementor-element-ae490ec .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-12 .elementor-element.elementor-element-ae490ec .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-12 .elementor-element.elementor-element-ae490ec{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-12 .elementor-element.elementor-element-ae490ec .elementor-icon-list-text{transition:color 0.3s;}.elementor-12 .elementor-element.elementor-element-96032c7{--display:flex;--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-12 .elementor-element.elementor-element-cb17cce{--display:flex;}.elementor-12 .elementor-element.elementor-element-cb17cce:not(.elementor-motion-effects-element-type-background), .elementor-12 .elementor-element.elementor-element-cb17cce > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://tps.canopea-webmarketing.fr/wp-content/uploads/2026/07/tps-rea-design-deco.jpg");background-position:center center;background-size:cover;}.elementor-12 .elementor-element.elementor-element-18e25fd{--display:flex;}.elementor-12 .elementor-element.elementor-element-85805fa .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-12 .elementor-element.elementor-element-85805fa .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-12 .elementor-element.elementor-element-85805fa{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-12 .elementor-element.elementor-element-85805fa .elementor-icon-list-text{transition:color 0.3s;}.elementor-12 .elementor-element.elementor-element-dcf7fa3{--display:flex;--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-12 .elementor-element.elementor-element-57b7a1d{--display:flex;}.elementor-12 .elementor-element.elementor-element-57b7a1d:not(.elementor-motion-effects-element-type-background), .elementor-12 .elementor-element.elementor-element-57b7a1d > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://tps.canopea-webmarketing.fr/wp-content/uploads/2026/07/tps-rea-agro-filtration.jpg");background-position:center center;background-size:cover;}.elementor-12 .elementor-element.elementor-element-d260b78{--display:flex;}.elementor-12 .elementor-element.elementor-element-94cb07c .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-12 .elementor-element.elementor-element-94cb07c .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-12 .elementor-element.elementor-element-94cb07c{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-12 .elementor-element.elementor-element-94cb07c .elementor-icon-list-text{transition:color 0.3s;}.elementor-12 .elementor-element.elementor-element-b646d29{--display:flex;--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-12 .elementor-element.elementor-element-29b3b8b{--display:flex;}.elementor-12 .elementor-element.elementor-element-29b3b8b:not(.elementor-motion-effects-element-type-background), .elementor-12 .elementor-element.elementor-element-29b3b8b > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://tps.canopea-webmarketing.fr/wp-content/uploads/2026/07/tps-rea-industrie-process.jpg");background-position:center center;background-size:cover;}.elementor-12 .elementor-element.elementor-element-13eb019{--display:flex;}.elementor-12 .elementor-element.elementor-element-d79fe34 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-12 .elementor-element.elementor-element-d79fe34 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-12 .elementor-element.elementor-element-d79fe34{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-12 .elementor-element.elementor-element-d79fe34 .elementor-icon-list-text{transition:color 0.3s;}.elementor-12 .elementor-element.elementor-element-62b6034{--display:flex;--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-12 .elementor-element.elementor-element-61b01f1{--display:flex;}.elementor-12 .elementor-element.elementor-element-61b01f1:not(.elementor-motion-effects-element-type-background), .elementor-12 .elementor-element.elementor-element-61b01f1 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://tps.canopea-webmarketing.fr/wp-content/uploads/2026/07/tps-tole-perforee.jpg");background-position:center center;background-size:cover;}.elementor-12 .elementor-element.elementor-element-77f7d19{--display:flex;}.elementor-12 .elementor-element.elementor-element-daf428d .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-12 .elementor-element.elementor-element-daf428d .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-12 .elementor-element.elementor-element-daf428d{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-12 .elementor-element.elementor-element-daf428d .elementor-icon-list-text{transition:color 0.3s;}.elementor-12 .elementor-element.elementor-element-c63f8b7{--display:flex;}.elementor-12 .elementor-element.elementor-element-c63f8b7:not(.elementor-motion-effects-element-type-background), .elementor-12 .elementor-element.elementor-element-c63f8b7 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#0D1520;}.elementor-12 .elementor-element.elementor-element-7d143ca{--display:flex;--padding-top:84px;--padding-bottom:20px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-7d143ca:not(.elementor-motion-effects-element-type-background), .elementor-12 .elementor-element.elementor-element-7d143ca > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#EDF1F5;}.elementor-12 .elementor-element.elementor-element-aff06e2{--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:space-between;--gap:28px 24px;--row-gap:28px;--column-gap:24px;--flex-wrap:wrap;--padding-top:56px;--padding-bottom:56px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-c59b3b3{--display:flex;}.elementor-12 .elementor-element.elementor-element-14b6420.elementor-position-right .elementor-image-box-img{margin-left:15px;}.elementor-12 .elementor-element.elementor-element-14b6420.elementor-position-left .elementor-image-box-img{margin-right:15px;}.elementor-12 .elementor-element.elementor-element-14b6420.elementor-position-top .elementor-image-box-img{margin-bottom:15px;}.elementor-12 .elementor-element.elementor-element-14b6420 .elementor-image-box-wrapper .elementor-image-box-img{width:30%;}.elementor-12 .elementor-element.elementor-element-14b6420 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-12 .elementor-element.elementor-element-6ad14ed{--display:flex;}.elementor-12 .elementor-element.elementor-element-70fd833.elementor-position-right .elementor-image-box-img{margin-left:15px;}.elementor-12 .elementor-element.elementor-element-70fd833.elementor-position-left .elementor-image-box-img{margin-right:15px;}.elementor-12 .elementor-element.elementor-element-70fd833.elementor-position-top .elementor-image-box-img{margin-bottom:15px;}.elementor-12 .elementor-element.elementor-element-70fd833 .elementor-image-box-wrapper .elementor-image-box-img{width:30%;}.elementor-12 .elementor-element.elementor-element-70fd833 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-12 .elementor-element.elementor-element-107380d{--display:flex;}.elementor-12 .elementor-element.elementor-element-70647d4.elementor-position-right .elementor-image-box-img{margin-left:15px;}.elementor-12 .elementor-element.elementor-element-70647d4.elementor-position-left .elementor-image-box-img{margin-right:15px;}.elementor-12 .elementor-element.elementor-element-70647d4.elementor-position-top .elementor-image-box-img{margin-bottom:15px;}.elementor-12 .elementor-element.elementor-element-70647d4 .elementor-image-box-wrapper .elementor-image-box-img{width:30%;}.elementor-12 .elementor-element.elementor-element-70647d4 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-12 .elementor-element.elementor-element-8b67942{--display:flex;}.elementor-12 .elementor-element.elementor-element-5fbaf55.elementor-position-right .elementor-image-box-img{margin-left:15px;}.elementor-12 .elementor-element.elementor-element-5fbaf55.elementor-position-left .elementor-image-box-img{margin-right:15px;}.elementor-12 .elementor-element.elementor-element-5fbaf55.elementor-position-top .elementor-image-box-img{margin-bottom:15px;}.elementor-12 .elementor-element.elementor-element-5fbaf55 .elementor-image-box-wrapper .elementor-image-box-img{width:30%;}.elementor-12 .elementor-element.elementor-element-5fbaf55 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-12 .elementor-element.elementor-element-26d54e8{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:56px;--padding-bottom:56px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-26d54e8:not(.elementor-motion-effects-element-type-background), .elementor-12 .elementor-element.elementor-element-26d54e8 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#0D1520;}.elementor-12 .elementor-element.elementor-element-259d0a1{--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;--padding-top:84px;--padding-bottom:84px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-faqLe7e{--display:flex;}.elementor-12 .elementor-element.elementor-element-8265695{--display:flex;--padding-top:56px;--padding-bottom:56px;--padding-left:0px;--padding-right:0px;}.elementor-widget-accordion .elementor-accordion-icon, .elementor-widget-accordion .elementor-accordion-title{color:var( --e-global-color-primary );}.elementor-widget-accordion .elementor-accordion-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-accordion .elementor-active .elementor-accordion-icon, .elementor-widget-accordion .elementor-active .elementor-accordion-title{color:var( --e-global-color-accent );}.elementor-widget-accordion .elementor-active .elementor-accordion-icon svg{fill:var( --e-global-color-accent );}.elementor-widget-accordion .elementor-accordion-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-accordion .elementor-tab-content{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-12 .elementor-element.elementor-element-faqR0fb{--display:flex;}.elementor-12 .elementor-element.elementor-element-faqR0fb:not(.elementor-motion-effects-element-type-background), .elementor-12 .elementor-element.elementor-element-faqR0fb > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://tps.canopea-webmarketing.fr/wp-content/uploads/2026/07/tps-tole-perforee.jpg");background-position:center center;background-size:cover;}.elementor-12 .elementor-element.elementor-element-b7ad0bb{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:72px;--padding-bottom:72px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-b7ad0bb:not(.elementor-motion-effects-element-type-background), .elementor-12 .elementor-element.elementor-element-b7ad0bb > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#006DB5;}@media(max-width:767px){.elementor-12 .elementor-element.elementor-element-4198a2b{--padding-top:110px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-12 .elementor-element.elementor-element-23a19fc .elementor-image-box-img{margin-bottom:15px;}.elementor-12 .elementor-element.elementor-element-f22d808 .elementor-image-box-img{margin-bottom:15px;}.elementor-12 .elementor-element.elementor-element-3a73a1a .elementor-image-box-img{margin-bottom:15px;}.elementor-12 .elementor-element.elementor-element-efe4ee5 .elementor-image-box-img{margin-bottom:15px;}.elementor-12 .elementor-element.elementor-element-14b6420 .elementor-image-box-img{margin-bottom:15px;}.elementor-12 .elementor-element.elementor-element-70fd833 .elementor-image-box-img{margin-bottom:15px;}.elementor-12 .elementor-element.elementor-element-70647d4 .elementor-image-box-img{margin-bottom:15px;}.elementor-12 .elementor-element.elementor-element-5fbaf55 .elementor-image-box-img{margin-bottom:15px;}}@media(min-width:768px){.elementor-12 .elementor-element.elementor-element-d2235a2{--width:23%;}.elementor-12 .elementor-element.elementor-element-fb288ac{--width:23%;}.elementor-12 .elementor-element.elementor-element-0c484fa{--width:23%;}.elementor-12 .elementor-element.elementor-element-9043a02{--width:23%;}.elementor-12 .elementor-element.elementor-element-3f77c03{--width:23%;}.elementor-12 .elementor-element.elementor-element-877ead9{--width:23%;}.elementor-12 .elementor-element.elementor-element-4ff40f2{--width:23%;}.elementor-12 .elementor-element.elementor-element-c6c21f1{--width:23%;}.elementor-12 .elementor-element.elementor-element-874d68e{--width:23%;}.elementor-12 .elementor-element.elementor-element-89a0c1a{--width:23%;}.elementor-12 .elementor-element.elementor-element-dd17b3a{--width:23%;}.elementor-12 .elementor-element.elementor-element-2cd25f5{--width:23%;}.elementor-12 .elementor-element.elementor-element-04c5494{--width:15%;}.elementor-12 .elementor-element.elementor-element-ea6b49e{--width:15%;}.elementor-12 .elementor-element.elementor-element-852a59f{--width:15%;}.elementor-12 .elementor-element.elementor-element-8c21f75{--width:15%;}.elementor-12 .elementor-element.elementor-element-b67df05{--width:15%;}.elementor-12 .elementor-element.elementor-element-51b7651{--width:15%;}.elementor-12 .elementor-element.elementor-element-d2a4c46{--width:18%;}.elementor-12 .elementor-element.elementor-element-96032c7{--width:18%;}.elementor-12 .elementor-element.elementor-element-dcf7fa3{--width:18%;}.elementor-12 .elementor-element.elementor-element-b646d29{--width:18%;}.elementor-12 .elementor-element.elementor-element-62b6034{--width:18%;}.elementor-12 .elementor-element.elementor-element-c59b3b3{--width:23%;}.elementor-12 .elementor-element.elementor-element-6ad14ed{--width:23%;}.elementor-12 .elementor-element.elementor-element-107380d{--width:23%;}.elementor-12 .elementor-element.elementor-element-8b67942{--width:23%;}.elementor-12 .elementor-element.elementor-element-8265695{--width:820px;}}@media(min-width:1367px){.elementor-12 .elementor-element.elementor-element-faqR0fb:not(.elementor-motion-effects-element-type-background), .elementor-12 .elementor-element.elementor-element-faqR0fb > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-attachment:fixed;}}/* Start custom CSS */:root{--tps-perf-dot:0.85px;--tps-perf-feather:1.25px;--tps-perf-grid:3.7px}
/* ============ ACCUEIL TPS — DA (couleurs en !important : le widget Heading d'Elementor force la couleur globale Primary) ============ */

/* --- Kickers / eyebrows (mono orange) --- */
.tps-kicker .elementor-heading-title,.tps-eyebrow .elementor-heading-title{font-family:'Open Sans',sans-serif!important;font-size:11px!important;font-weight:500!important;letter-spacing:.16em!important;text-transform:uppercase!important;color:#5B6874!important;margin-bottom:12px}

/* --- HERO --- */
.tps-hero{position:relative;overflow:hidden}
.tps-h1 .elementor-heading-title{color:#fff!important;font-family:'Outfit',sans-serif!important;font-weight:700!important;font-size:clamp(34px,4.6vw,56px)!important;line-height:1!important;letter-spacing:normal!important;margin-bottom:18px}
.tps-lede,.tps-lede p{color:#C6D0DA!important;font-size:18px!important;line-height:1.55!important;max-width:56ch;margin-bottom:4px}
.tps-btn-ghost .elementor-button{background:transparent!important;color:#fff!important;border:1.5px solid rgba(255,255,255,.55)!important}
.tps-btn-ghost .elementor-button:hover{background:rgba(255,255,255,.12)!important;border-color:#fff!important}

/* --- Titres de section --- */
.tps-h2 .elementor-heading-title{font-family:'Outfit',sans-serif!important;font-weight:700!important;letter-spacing:normal!important;color:#0D1520!important;max-width:24ch;margin-bottom:12px;line-height:1.2}
.tps-center .elementor-heading-title{text-align:center;max-width:none;margin-left:auto;margin-right:auto}
.tps-secdesc,.tps-secdesc p{color:#5B6874!important;font-size:16px!important;line-height:1.6!important;max-width:62ch}

/* --- Chiffres clés --- */
.tps-statcol{position:relative;z-index:1;padding:26px 22px!important;border-left:0!important;background:transparent!important}
.tps-stat .elementor-counter-number-wrapper{font-family:'Outfit',sans-serif!important;font-weight:700!important;font-size:clamp(30px,3.4vw,44px)!important;line-height:1!important;color:#0D1520!important;letter-spacing:normal;justify-content:flex-start}
.tps-stat .elementor-counter-number-prefix{flex-grow:0!important;color:#006DB5!important}
.tps-stat .elementor-counter-title{font-family:'Open Sans',sans-serif!important;font-size:13.5px!important;font-weight:600!important;color:#5B6874!important;text-align:left!important;margin-top:10px;line-height:1.4}

/* --- Points forts --- */
.tps-pluscol{border-top:2px solid #D8DFE6;padding-top:22px;transition:border-color .2s}
.tps-pluscol:hover{border-top-color:#006DB5}
.tps-plus .elementor-icon-box-icon{margin-bottom:14px!important}
.tps-plus .elementor-icon{color:#006DB5!important;font-size:28px!important}
.tps-plus .elementor-icon-box-title{font-family:'Outfit',sans-serif!important;font-size:17px!important;font-weight:700!important;color:#0D1520!important;margin-bottom:8px!important}
.tps-plus .elementor-icon-box-title a{color:#0D1520!important}
.tps-plus .elementor-icon-box-description{font-family:'Open Sans',sans-serif!important;font-size:14.5px!important;line-height:1.55!important;color:#5B6874!important}

/* --- Cartes image --- */
.tps-sol .elementor-image-box-img,.tps-rea .elementor-image-box-img{margin-bottom:16px!important;overflow:hidden;border-radius:4px}
.tps-sol .elementor-image-box-img img,.tps-rea .elementor-image-box-img img{width:100%;height:auto;display:block;transition:transform .5s ease}
.tps-solcol:hover .elementor-image-box-img img,.tps-reacol:hover .elementor-image-box-img img{transform:scale(1.06)}
.tps-sol .elementor-image-box-title,.tps-rea .elementor-image-box-title{font-family:'Outfit',sans-serif!important;font-size:16.5px!important;font-weight:700!important;margin-bottom:7px!important;line-height:1.25!important;padding-bottom:9px;border-bottom:1px solid #EDF1F5;position:relative}
.tps-sol .elementor-image-box-title::before,.tps-rea .elementor-image-box-title::before{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:-1px;width:28px;height:2px;background:#006DB5}
.tps-sol .elementor-image-box-title a,.tps-rea .elementor-image-box-title a{color:#0D1520!important;transition:color .15s}
.tps-solcol:hover .elementor-image-box-title a,.tps-reacol:hover .elementor-image-box-title a{color:#006DB5!important}
.tps-sol .elementor-image-box-description,.tps-rea .elementor-image-box-description{font-family:'Open Sans',sans-serif!important;font-size:14px!important;line-height:1.5!important;color:#5B6874!important;margin-top:8px}

/* --- Process --- */
.tps-step{border-top:2px solid #CFD8E1;padding-top:16px}
.tps-stepn .elementor-heading-title{font-family:'Open Sans',sans-serif!important;font-size:11px!important;font-weight:500!important;letter-spacing:.14em!important;color:#5B6874!important;margin-bottom:8px}
.tps-stept .elementor-heading-title{font-family:'Outfit',sans-serif!important;font-size:15.5px!important;font-weight:700!important;color:#0D1520!important;line-height:1.25!important;margin-bottom:5px}
.tps-steps,.tps-steps p{font-family:'Open Sans',sans-serif!important;font-size:12px!important;color:#5B6874!important;line-height:1.4!important}
.tps-specline,.tps-specline p{font-family:'Open Sans',sans-serif!important;font-size:15px!important;color:#232B34!important;line-height:1.6!important}
.tps-specline{border-left:3px solid #006DB5;padding-left:16px;margin:4px 0 22px}
.tps-specline strong{color:#006DB5!important;font-weight:700}

/* --- Boutons lignés --- */
.tps-btn-line .elementor-button{background:transparent!important;color:#006DB5!important;border:1.5px solid #006DB5!important;padding:12px 22px!important}
.tps-btn-line .elementor-button:hover{background:#006DB5!important;color:#fff!important}

/* --- Confiance (fond nuit) --- */
.tps-trust{position:relative;overflow:hidden}
.tps-trust::after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,currentColor 2.4px,transparent 2.9px),radial-gradient(circle,currentColor 2.4px,transparent 2.9px);background-size:17px 17px;background-position:0 0,8.5px 8.5px;color:#FFFFFF;opacity:.07;pointer-events:none}
.tps-trust > *{position:relative;z-index:1}
.tps-trustlab .elementor-heading-title{font-family:'Open Sans',sans-serif!important;font-size:11px!important;letter-spacing:.16em!important;text-transform:uppercase!important;color:#5CB3E8!important;text-align:center;margin-bottom:14px}
.tps-trustnote .elementor-heading-title{font-family:'Outfit',sans-serif!important;font-weight:700!important;font-size:clamp(22px,2.6vw,30px)!important;color:#fff!important;text-align:center;margin-bottom:16px}
.tps-trustrefs,.tps-trustrefs p{color:#B9C4CF!important;font-size:15.5px!important;text-align:center;letter-spacing:.02em;line-height:1.9}

/* --- FAQ --- */
.tps-faqwrap{margin:0 auto;width:100%!important;max-width:820px!important}
.tps-faq .elementor-accordion-item{border:0!important;border-bottom:1px solid #D8DFE6!important}
.tps-faq .elementor-tab-title{background:transparent!important;padding:20px 4px!important;font-family:'Outfit',sans-serif!important;font-size:16.5px!important;font-weight:700!important}
.tps-faq .elementor-tab-title a{color:#0D1520!important}
.tps-faq .elementor-active .elementor-tab-title a,.tps-faq .elementor-tab-title:hover a{color:#006DB5!important}
.tps-faq .elementor-tab-content{background:transparent!important;border:0!important;padding:0 4px 22px!important;font-family:'Open Sans',sans-serif!important;font-size:15px!important;line-height:1.6!important;color:#5B6874!important}
.tps-faq .elementor-accordion-icon{color:#006DB5!important}

/* --- CTA final (fond bleu) --- */
.tps-ctafinal{position:relative;overflow:hidden}
.tps-ctafinal::after{content:none}
.tps-ctafinal > *{position:relative;z-index:1}
.tps-ctah .elementor-heading-title{font-family:'Outfit',sans-serif!important;font-weight:700!important;color:#fff!important;text-align:center;letter-spacing:normal!important;margin-bottom:12px}
.tps-ctad,.tps-ctad p{color:rgba(255,255,255,.9)!important;font-size:16.5px!important;line-height:1.6!important;text-align:center;max-width:54ch;margin:0 auto 22px}
.tps-ctafinal .tps-btn-main .elementor-button{background:#F05A28!important;color:#fff!important}
.tps-ctafinal .tps-btn-main .elementor-button:hover{background:#D64A1C!important}

/* --- Responsive --- */
@media(max-width:1024px){
  .tps-statcol,.tps-pluscol,.tps-solcol,.tps-reacol{width:47%!important}
  .tps-step{width:30%!important}
}
@media(max-width:767px){
  .tps-statcol,.tps-pluscol,.tps-solcol,.tps-reacol,.tps-step{width:100%!important}
  .tps-lede,.tps-lede p{font-size:16px!important}
}
/* ===== Lisibilite : petits labels orange sur fond CLAIR -> orange fonce (AA) ; orange vif conserve sur fond sombre ===== */
.tps-eyebrow .elementor-heading-title,.tps-stepn .elementor-heading-title{color:#5B6874!important;font-weight:600!important}
.tps-kicker .elementor-heading-title{color:#DCE6EF!important}

/* ===== Domaines d'application ===== */
.tps-appcol{flex:0 0 calc((100% - 88px)/5)!important;max-width:calc((100% - 88px)/5)!important;min-width:0!important;padding-top:16px}
.tps-apph .elementor-heading-title{font-family:'Outfit',sans-serif!important;font-size:12px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:normal!important;color:#006DB5!important;padding-bottom:9px;margin-bottom:10px;border-bottom:1px solid #EDF1F5;position:relative;display:block;line-height:1.35}
.tps-apph .elementor-heading-title::before{content:"";position:absolute;left:0;bottom:-1px;width:28px;height:2px;background:#006DB5;transition:width .28s cubic-bezier(.22,1,.36,1)}
.tps-appcol:hover .tps-apph .elementor-heading-title::before{width:100%}
.tps-apph a.elementor-heading-title:hover{color:#005390!important}
.tps-applist .elementor-icon-list-icon{display:none!important}
.tps-applist .elementor-icon-list-item{margin:0!important;padding:0!important;border:0!important}
.tps-applist .elementor-icon-list-text{font-family:'Open Sans',sans-serif!important;font-size:13.5px!important;line-height:1.35!important;color:#5B6874!important;padding:5px 0!important;display:block}
@media(max-width:1024px){ .tps-appcol{flex-basis:calc((100% - 44px)/3)!important;max-width:calc((100% - 44px)/3)!important} }
@media(max-width:767px){ .tps-appcol{flex-basis:calc((100% - 22px)/2)!important;max-width:calc((100% - 22px)/2)!important} }
/* Hero : voile directionnel (sombre a gauche sous le texte, ouvre sur la facade a droite) */
.tps-hero::before{opacity:1!important;background:linear-gradient(100deg,rgba(13,21,32,.94) 0%,rgba(13,21,32,.86) 34%,rgba(13,21,32,.46) 66%,rgba(13,21,32,.16) 100%)!important}
@media(max-width:1024px){.tps-hero::before{opacity:1!important;background:linear-gradient(100deg,rgba(13,21,32,.92) 0%,rgba(13,21,32,.86) 58%,rgba(13,21,32,.58) 100%)!important}}

/* Cartes Solutions & Realisations : Elementor image-box plafonne la figure a 30% de la carte -> pleine largeur + cadrage regulier */
.tps-sol .elementor-image-box-img,.tps-rea .elementor-image-box-img{width:100%!important;margin:0 0 18px 0!important;overflow:hidden;position:relative;background:#EDF1F5}
.tps-sol .elementor-image-box-img img,.tps-rea .elementor-image-box-img img{width:100%!important;height:196px!important;object-fit:cover;display:block;transition:transform .5s ease}
.tps-sol:hover .elementor-image-box-img img,.tps-rea:hover .elementor-image-box-img img{transform:scale(1.06)}
@media(max-width:1024px){.tps-sol .elementor-image-box-img img,.tps-rea .elementor-image-box-img img{height:220px!important}}

/* ==========================================================
   LANGAGE DA - LA TRAME PERFOREE COMME LANGAGE GRAPHIQUE
   Repris a l'identique de TPS-Design-System-DA-v1 :
   "Le motif vient du catalogue, pas de la decoration."
   - trame U (alignee)   : pas 15px          -> fonds de section, 4-8 %
   - trame Z (quinconce) : pas 17px / 8.5px  -> fonds sombres + survols de cartes
   - degrade de densite  : SVG, surface ouverte 1,2 -> 74,8 % = le vide sur plein
   ========================================================== */
/* Trame U en fond de la section savoir-faire */
.tps-process{position:relative;overflow:hidden}
.tps-process::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,currentColor 2.4px,transparent 2.9px);background-size:15px 15px;color:#0D1520;opacity:.05;pointer-events:none;z-index:0}
.tps-process > *{position:relative;z-index:1}
/* Degrade de densite : illustre litteralement le "2,5 -> 75 %" ecrit juste dessous */
.tps-specline{position:relative;margin-top:104px!important}
.tps-specline::before{content:"";position:absolute;left:-3px;right:0;top:-96px;height:85px;background:url(https://tps.canopea-webmarketing.fr/wp-content/uploads/tps-trame-bande.svg?v=3) left top/100% 100% no-repeat;opacity:.82;pointer-events:none}
/* Survol des cartes : trame Z + filet bleu (DA). z-index 0 + enfants en 1 :
   sinon le pseudo positionne passe DEVANT le texte (ordre de peinture CSS). */
.tps-solcol,.tps-reacol{position:relative;border-top:2px solid transparent;transition:border-color .25s}
.tps-solcol > *,.tps-reacol > *{position:relative;z-index:1}


.tps-solcol:hover,.tps-reacol:hover{border-top-color:#006DB5}
/* Ref. catalogue estampillee sur la photo - numerotation reelle de l'arborescence */
.tps-solcol::after,.tps-reacol::after{position:absolute;top:10px;left:10px;z-index:2;font-family:'Open Sans',sans-serif;font-size:10.5px;letter-spacing:.1em;color:#DCE6EF;background:rgba(13,21,32,.78);padding:5px 9px;pointer-events:none}
.tps-solcol:nth-child(1)::after{content:"RÉF. 2.1.1"}
.tps-solcol:nth-child(2)::after{content:"RÉF. 2.1.2"}
.tps-solcol:nth-child(3)::after{content:"RÉF. 2.1.3"}
.tps-solcol:nth-child(4)::after{content:"RÉF. 2.2"}
/* Cotes chantier sur les realisations (photos reellement issues de ces chantiers) */
.tps-reacol:nth-child(1)::after{content:"HÔTEL DE RÉGION, LILLE"}
.tps-reacol:nth-child(2)::after{content:"CITÉ DU DESIGN, SAINT-ÉTIENNE"}
.tps-reacol:nth-child(3)::after{content:"SOUDURE TIG — ATELIER MAUBEUGE"}
.tps-reacol:nth-child(4)::after{content:"FILTRATION INOX — SUR PLAN"}

/* ==========================================================
   GOUTTIERE LATERALE
   Les conteneurs sont en padding vertical seul : la marge laterale
   ne venait QUE du max-width 1240 centre. Sous 1240 de viewport il n'y
   avait donc plus AUCUNE marge -> 8 sections sur 10 avaient leur texte
   colle au bord (mobile, mais aussi un portable en 1100).
   Seuil 1287 = 1240 + 2x24 -> garantit toujours >=24px de gouttiere. */
@media(max-width:1366px){
  .tps-hero > .e-con-inner,.tps-stats > .e-con-inner,.tps-sec > .e-con-inner,.tps-trust > .e-con-inner,.tps-ctafinal > .e-con-inner,
  .tps-hero.e-con-full,.tps-stats.e-con-full,.tps-sec.e-con-full,.tps-trust.e-con-full,.tps-ctafinal.e-con-full{padding-left:22px!important;padding-right:22px!important}
}

/* ==========================================================
   CORNIERE - signe distinctif tire du LOGO
   Geometrie relevee au pixel sur logo-TPS.jpg :
     bras horizontal 39px / bras vertical 40px = BRAS EGAUX
     epaisseur 8px -> RATIO epaisseur:longueur = 1:5
     couleur #9B9B9B, posee en DIAGONALE (haut-gauche + bas-droite),
     jamais aux 4 coins : c'est un cadrage asymetrique, comme des
     traits de coupe. En metallurgie, une corniere = un profile d'angle.
   Offsets negatifs : la corniere encadre le texte SANS le decaler,
   donc les titres restent alignes sur la grille.
   ========================================================== */
:root{--tps-corn-ep:9px;--tps-corn-l:46px;--tps-corn-c:#9B9B9B}
.tps-h2 .elementor-heading-title{display:inline-block;position:relative}n.tps-eyebrow .elementor-heading-title,.tps-kicker .elementor-heading-title{display:inline-block;position:relative}
.tps-eyebrow .elementor-heading-title::before,.tps-kicker .elementor-heading-title::before{content:"";position:absolute;left:-18px;top:-16px;width:var(--tps-corn-l);height:var(--tps-corn-l);border-top:var(--tps-corn-ep) solid var(--tps-corn-c);border-left:var(--tps-corn-ep) solid var(--tps-corn-c);pointer-events:none}
.tps-h2 .elementor-heading-title::after{content:"";position:absolute;right:-24px;bottom:-20px;width:var(--tps-corn-l);height:var(--tps-corn-l);border-bottom:var(--tps-corn-ep) solid var(--tps-corn-c);border-right:var(--tps-corn-ep) solid var(--tps-corn-c);pointer-events:none}

/* ==========================================================
   CARRE BLEU - 2e signe distinctif du logo
   Dans le logo : carre PARFAIT (77x81 px), 80 % de la hauteur,
   pose a droite. Il ne borde rien : il TRAVERSE le lockup, et le S
   qui tombe dedans s'inverse en blanc. Principe repris ici : un plan
   bleu plein qui casse la photo, contenu inverse en blanc, et qui
   porte la date que le logo loge deja dans sa corniere bas-droite.
   ::before = voile degrade, ::after = cote -> le carre se pose donc
   sur le ::after de l'inner (grille 1240), a droite du bloc de titre.
   ========================================================== */

/* Le carre bleu devient l'INDEX DE SECTION : pose a droite du kicker,
   soit exactement sa place dans le logo (a droite du lockup), contenu
   inverse en blanc. Repete, il fait systeme au lieu de decorer -- et la DA
   numerote elle-meme ses sections ("01 / PARTI PRIS").
   Le bloc de titre rejoue alors la structure du logo :
   corniere -> texte -> carre bleu -> corniere. */
.tps-eyebrow .elementor-heading-title::after{content:attr(data-idx);display:none}
.tps-sec .tps-eyebrow .elementor-heading-title::after{display:none;align-items:center;justify-content:center;width:28px;height:28px;margin-left:16px;vertical-align:middle;background:#006DB5;color:#FFFFFF!important;font-family:'Open Sans',sans-serif;font-size:12px;font-weight:500;letter-spacing:.04em;pointer-events:none}
.tps-sec:nth-child(3) .tps-eyebrow .elementor-heading-title::after{content:"01"}
.tps-sec:nth-child(4) .tps-eyebrow .elementor-heading-title::after{content:"02"}
.tps-sec:nth-child(5) .tps-eyebrow .elementor-heading-title::after{content:"03"}
.tps-sec:nth-child(6) .tps-eyebrow .elementor-heading-title::after{content:"04"}
.tps-sec:nth-child(7) .tps-eyebrow .elementor-heading-title::after{content:"05"}
.tps-sec:nth-child(9) .tps-eyebrow .elementor-heading-title::after{content:"06"}

/* PISTE 3 - le plan bleu qui casse la barre de chiffres cles.
   Principe du logo : un plan bleu plein traverse une serie reguliere,
   et ce qui tombe dedans s'inverse en blanc. Ici il casse le rythme des
   4 cellules. Cellule 1 = "125 ans - depuis 1899", la donnee patrimoniale
   que le logo porte deja dans sa corniere. */

/* ==========================================================
   DEGAGEMENT DU HEADER EN OVERLAP
   Le header est en position:absolute (Sticky Header Effects) : il ne
   pousse plus le contenu, le hero demarre donc a y=0 et passait SOUS lui.
   Mesure : header 81px en desktop, mais 129px en mobile (logo + burger +
   CTA empiles) alors que le kicker etait a y=91 -> il etait recouvert. */
.tps-hero > .e-con-inner{justify-content:center}


/* ==========================================================
   TRAME PERFOREE ANIMEE (hero)
   Le canvas peint le meme voile directionnel que le ::before CSS, puis
   y PERCE des trous (destination-out) : la facade apparait dans les trous.
   Le rayon suit le degrade de densite de la DA (2,5 % -> 75 %) : trous
   minuscules a gauche => le voile reste dense sous le texte ; ouverts a
   droite => la photo respire. Une onde lente traverse la tole.
   Le ::before CSS reste le VOILE DE SECOURS : il n'est coupe que si le JS
   a effectivement peint (classe .tps-perfo-on posee par le script).
   Sans JS / canvas KO -> voile CSS conserve, texte lisible. */
.tps-perfo{position:absolute!important;inset:0;z-index:0;pointer-events:none;margin:0!important;padding:0!important;width:auto!important}
.tps-perfo .tps-perfo-wrap{position:absolute;inset:0}
.tps-perfo .tps-perfo-cv{display:block;width:100%;height:100%}
.tps-hero.tps-perfo-on::before{opacity:0!important}
/* Le contenu repasse au-dessus du canvas. On positionne les ENFANTS et surtout
   PAS l'inner : un inner positionne deviendrait le bloc conteneur du canvas
   absolu, qui serait alors confine a la grille 1240 au lieu de couvrir le hero. */
/* Plans du hero : video (z-index 0) < voile ::before (1) < contenu (2).
   Le conteneur video etant POSITIONNE, il recouvrait le voile ::before qui le
   precede dans l'arbre. Avec un fond image (peint a l'etape 2) ca ne se voyait pas. */
.tps-hero::before{z-index:1}
.tps-hero > .e-con-inner > *:not(.tps-perfo):not(.elementor-background-video-container){position:relative;z-index:2}

/* ==========================================================
   PROCESS SUR FOND SOMBRE (bande image atelier)
   La section passe en image nuit -> tous ses textes basculent en clair.
   Scope .tps-process pour ne pas toucher les autres sections.
   ========================================================== */
.tps-process > *{position:relative;z-index:1}
.tps-process .tps-eyebrow .elementor-heading-title{color:#DCE6EF!important}
.tps-process .tps-h2 .elementor-heading-title{color:#FFFFFF!important}
.tps-process .tps-secdesc,.tps-process .tps-secdesc p{color:#C6D0DA!important}
.tps-process .tps-stepn .elementor-heading-title{color:#5CB3E8!important}
.tps-process .tps-stept .elementor-heading-title{color:#FFFFFF!important}
.tps-process .tps-steps,.tps-process .tps-steps p{color:#AEB9C6!important}
.tps-process .tps-step{border-top-color:#2A3644!important}
.tps-process .tps-specline,.tps-process .tps-specline p{color:#C6D0DA!important}
.tps-process .tps-specline strong{color:#5CB3E8!important}
.tps-process .tps-specline{border-left-color:#5CB3E8!important}
.tps-process .tps-btn-line .elementor-button{color:#FFFFFF!important;border-color:rgba(255,255,255,.55)!important}
.tps-process .tps-btn-line .elementor-button:hover{background:#FFFFFF!important;color:#0D1520!important;border-color:#FFFFFF!important}
/* trame U : etait #0D1520 (invisible sur nuit) -> blanc tres faible */
.tps-process::before{color:#FFFFFF!important;opacity:.04!important}

/* VOILE PROCESS (le voile natif Elementor n'a pas rendu -> CSS) */
.tps-process{position:relative;overflow:hidden}
.tps-process::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(13,21,32,.66) 0%,rgba(13,21,32,.82) 42%,rgba(13,21,32,.9) 100%)}

/* ==========================================================
   RESPIRATION VERTICALE (contenu trop serre)
   Sections simples etaient en 84/20 (bas serre) et incoherentes avec
   les 84/84 des autres. Padding uniforme + genereux, et de l'air entre
   le titre et le contenu (le gap kit de 20px les collait).
   ========================================================== */
.tps-sec > .e-con-inner{padding-top:96px!important;padding-bottom:96px!important}
.tps-stats > .e-con-inner{padding-top:60px!important;padding-bottom:60px!important}
.tps-trust > .e-con-inner{padding-top:70px!important;padding-bottom:70px!important}
.tps-ctafinal > .e-con-inner{padding-top:88px!important;padding-bottom:88px!important}
/* titre -> contenu : le conteneur de contenu prend de l'air sous le titre */
.tps-sec > .e-con-inner > .e-con{margin-top:26px}
/* mobile : padding vertical reduit (sinon sections enormes) */
@media(max-width:767px){
  .tps-sec > .e-con-inner{padding-top:58px!important;padding-bottom:58px!important}
  .tps-stats > .e-con-inner{padding-top:44px!important;padding-bottom:44px!important}
  .tps-trust > .e-con-inner{padding-top:48px!important;padding-bottom:48px!important}
  .tps-ctafinal > .e-con-inner{padding-top:56px!important;padding-bottom:56px!important}
  .tps-sec > .e-con-inner > .e-con{margin-top:20px}
}

/* FAQ ALIGNEE A GAUCHE (coherence : tous les boutons de section a gauche, seul le CTA final reste centre) */
.tps-faqsec > .e-con-inner{align-items:flex-start!important}
.tps-faqsec .tps-center .elementor-heading-title{text-align:left!important;margin-left:0!important;margin-right:0!important}
.tps-faqsec .tps-faqwrap{margin-left:0!important;margin-right:0!important}

/* ==========================================================
   CARRE BLEU GLISSANT (chiffres cles) — GSAP, footer charge deja gsap
   Le carre du logo devient un highlight qui visite les 4 chiffres en
   boucle. Cellule active = texte blanc. Fallback reduced-motion = fige
   sur la 1re. Le carre est un div absolu SOUS le contenu (z-index 0),
   les cellules en z-index 1 -> texte toujours au-dessus.
   ========================================================== */
.tps-stat-square{position:absolute;left:0;top:0;width:0;height:0;background:#006DB5;border-radius:2px;z-index:0;pointer-events:none;visibility:hidden}
.tps-statcol .elementor-counter-title{transition:color .35s ease}
.tps-statcol.stat-lit .elementor-counter-number-wrapper{color:#FFFFFF!important}
.tps-statcol.stat-lit .elementor-counter-number,.tps-statcol.stat-lit .elementor-counter-number-prefix{background:radial-gradient(circle,#FFFFFF var(--tps-perf-dot),rgba(255,255,255,0) var(--tps-perf-feather)) 0 0/var(--tps-perf-grid) var(--tps-perf-grid);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent!important}
.tps-statcol.stat-lit .elementor-counter-title{color:#E8F2FA!important}

/* MOT PERFORATION EN POINTS (CTA final) — meme principe que les chiffres cles :
   le mot est litteralement perfore, blanc sur bleu, rappel du logo. */
.tps-ctah .tps-perf-dot{position:relative;display:inline-block;background-image:radial-gradient(circle,#FFFFFF var(--tps-perf-dot),rgba(255,255,255,0) var(--tps-perf-feather));background-size:var(--tps-perf-grid) var(--tps-perf-grid);background-position:0 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.tps-ctah .tps-perf-cover{position:absolute;left:0;top:0;white-space:nowrap;color:#fff;-webkit-text-fill-color:#fff;pointer-events:none}
.tps-ctah .tps-perf-bit{position:absolute;top:4%;left:0;width:3px;height:92%;background:linear-gradient(180deg,transparent,rgba(255,255,255,.95),transparent);box-shadow:0 0 9px 1px rgba(255,255,255,.75);opacity:0;pointer-events:none}


/* MOT PERÇONS EN POINTS (hero) — même traitement perforé que le CTA ; trame ×1,33 (56px vs 42px) pour une densité identique. Dots blancs = trous de lumière sur le hero sombre. */
.tps-h1 .tps-perf-dot{position:relative;z-index:1;display:inline-block;background-image:radial-gradient(circle,#FFFFFF var(--tps-perf-dot),rgba(255,255,255,0) var(--tps-perf-feather));background-size:var(--tps-perf-grid) var(--tps-perf-grid);background-position:0 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.tps-h1 .tps-perf-cover{position:absolute;left:0;top:0;white-space:nowrap;color:#fff;-webkit-text-fill-color:#fff;pointer-events:none}
.tps-h1 .tps-perf-bit{position:absolute;top:3%;left:0;width:4px;height:94%;background:linear-gradient(180deg,transparent,rgba(255,255,255,.95),transparent);box-shadow:0 0 11px 1px rgba(255,255,255,.78);opacity:0;pointer-events:none}

/* CARRE BLEU HERO — plaque bleue (bleu logo) qui se pose derriere "percons" en meme temps que le percage, pour la lisibilite sur fond sombre (recree le fond bleu du CTA). Le carre est un FRERE derriere le mot : le background-clip:text du .tps-perf-dot le peindrait devant s'il etait enfant. */
.tps-h1 .tps-perf-wrap{position:relative;display:inline-block;margin:0 10px}
.tps-h1 .tps-perf-sq{position:absolute;top:-1px;bottom:-1px;left:-8px;right:-8px;z-index:0;background:#006DB5;border-radius:2px;pointer-events:none;clip-path:inset(0% 100% 0% 0%)}

/* MOTS PERFORES SUR TITRES DE SECTION (.tps-h2) - texte fonce sur fond clair : trous #0D1520, foret bleu. Memes variables de trous (--tps-perf-*). Pas de carre bleu (contraste fonce-sur-clair deja bon). */
.tps-h2 .tps-perf-dot{position:relative;z-index:1;display:inline-block;background-image:radial-gradient(circle,#FFFFFF var(--tps-perf-dot),rgba(255,255,255,0) var(--tps-perf-feather));background-size:var(--tps-perf-grid) var(--tps-perf-grid);background-position:0 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.tps-h2 .tps-perf-cover{position:absolute;left:0;top:0;white-space:nowrap;color:#0D1520;-webkit-text-fill-color:#0D1520;pointer-events:none}
.tps-h2 .tps-perf-bit{position:absolute;top:3%;left:0;width:3px;height:94%;background:linear-gradient(180deg,transparent,rgba(255,255,255,.95),transparent);box-shadow:0 0 9px 1px rgba(255,255,255,.75);opacity:0;pointer-events:none}

/* CARRE BLEU sur titres de section (.tps-h2) : plaque bleue qui se pose en meme temps que le percage -> mot en points BLANCS sur bleu (lisible sur fond clair). Le cover reste #0D1520 pour l'etat initial lisible. Defaut visible = repli sans JS. */
.tps-h2 .tps-perf-wrap{position:relative;display:inline-block;margin:0 9px}
.tps-h2 .tps-perf-sq{position:absolute;top:-1px;bottom:-1px;left:-7px;right:-7px;z-index:0;background:#006DB5;border-radius:2px;pointer-events:none}

/* Retrait des badges REF sur les cartes Solutions (non pertinents pour le client). Les cotes chantier des Realisations (.tps-reacol::after) sont conservees. */
.tps-solcol::after{content:none!important;display:none!important}

/* Process (savoir-faire) : 6 etapes plus grandes + plus contrastees sur le fond atelier sombre. */
.tps-process::after{background:linear-gradient(180deg,rgba(13,21,32,.82) 0%,rgba(13,21,32,.90) 42%,rgba(13,21,32,.95) 100%)!important}
.tps-process .tps-stepn .elementor-heading-title{font-size:13px!important;color:#7CC4EF!important}
.tps-process .tps-stept .elementor-heading-title{font-size:19px!important;color:#FFFFFF!important}
.tps-process .tps-steps,.tps-process .tps-steps p{font-size:14px!important;color:#DAE3EB!important}
.tps-process .tps-step{border-top-color:#3A4756!important}

/* FAQ EN 2 COLONNES : accordeon a gauche + image perforation pleine hauteur a droite (comble le vide a droite). Layout force en CSS (structure DOM). */
.tps-faqsec > .e-con-inner{flex-direction:row!important;flex-wrap:nowrap!important;align-items:stretch!important;gap:52px!important;width:100%!important;max-width:1240px!important;margin-left:auto!important;margin-right:auto!important}
.tps-faqleft{flex:1 1 54%!important;max-width:660px;display:flex;flex-direction:column}
.tps-faqimg{flex:1 1 44%!important;align-self:stretch;border-radius:4px;overflow:hidden;background-size:cover!important;background-position:center!important;min-height:100%}
@media(max-width:880px){
  .tps-faqsec > .e-con-inner{flex-direction:column!important}
  .tps-faqleft,.tps-faqimg{flex-basis:auto!important;max-width:none!important;width:100%!important}
  .tps-faqimg{min-height:240px}
}

/* PROCESS : remplissage anime des bordures superieures, chacune leur tour, en boucle (facon pagination de carousel / stories). CSS pur, synchronise, sans JS. */
.tps-process .tps-step{position:relative}
.tps-process .tps-step::after{content:"";position:absolute;top:-2px;left:0;width:100%;height:2px;background:#FFFFFF;box-shadow:0 0 6px rgba(255,255,255,.45);transform-origin:left;transform:scaleX(0);animation-duration:8s;animation-timing-function:linear;animation-iteration-count:infinite;z-index:2;pointer-events:none}
.tps-process .tps-step:nth-child(1)::after{animation-name:tps-fill-1}
.tps-process .tps-step:nth-child(2)::after{animation-name:tps-fill-2}
.tps-process .tps-step:nth-child(3)::after{animation-name:tps-fill-3}
.tps-process .tps-step:nth-child(4)::after{animation-name:tps-fill-4}
.tps-process .tps-step:nth-child(5)::after{animation-name:tps-fill-5}
.tps-process .tps-step:nth-child(6)::after{animation-name:tps-fill-6}
@keyframes tps-fill-1{0%{transform:scaleX(0)}10%{transform:scaleX(1)}85%{transform:scaleX(1)}95%{transform:scaleX(0)}100%{transform:scaleX(0)}}
@keyframes tps-fill-2{0%{transform:scaleX(0)}10%{transform:scaleX(0)}20%{transform:scaleX(1)}85%{transform:scaleX(1)}95%{transform:scaleX(0)}100%{transform:scaleX(0)}}
@keyframes tps-fill-3{0%{transform:scaleX(0)}20%{transform:scaleX(0)}30%{transform:scaleX(1)}85%{transform:scaleX(1)}95%{transform:scaleX(0)}100%{transform:scaleX(0)}}
@keyframes tps-fill-4{0%{transform:scaleX(0)}30%{transform:scaleX(0)}40%{transform:scaleX(1)}85%{transform:scaleX(1)}95%{transform:scaleX(0)}100%{transform:scaleX(0)}}
@keyframes tps-fill-5{0%{transform:scaleX(0)}40%{transform:scaleX(0)}50%{transform:scaleX(1)}85%{transform:scaleX(1)}95%{transform:scaleX(0)}100%{transform:scaleX(0)}}
@keyframes tps-fill-6{0%{transform:scaleX(0)}50%{transform:scaleX(0)}60%{transform:scaleX(1)}85%{transform:scaleX(1)}95%{transform:scaleX(0)}100%{transform:scaleX(0)}}
@media(prefers-reduced-motion:reduce){.tps-process .tps-step::after{animation:none!important;display:none}}


.tps-faqimg{position:relative;isolation:isolate}
.tps-faqimg::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(135deg,rgba(0,109,181,.22) 0%,rgba(13,21,32,.42) 100%)}
/* ====== DOMAINES EN CARTES PHOTO (grille 3x2) ====== */
.tps-appgrid{flex-wrap:wrap!important;gap:24px!important;align-items:stretch!important}
.tps-appcard{flex:0 0 calc((100% - 48px)/3)!important;max-width:calc((100% - 48px)/3)!important;min-width:0!important;display:flex;flex-direction:column;background:#fff;border:1px solid #E4EAEF;border-radius:4px;overflow:hidden;padding:0!important;transition:border-color .2s,box-shadow .2s,transform .2s}
.tps-appcard:hover{border-color:#CBD6DF;box-shadow:0 12px 30px -18px rgba(13,21,32,.35);transform:translateY(-3px)}
.tps-appcard-img{height:158px;background-size:cover;background-position:center;position:relative;overflow:hidden}
.tps-appcard-body{padding:20px 20px 22px!important;display:flex;flex-direction:column}
.tps-appcard .tps-apph .elementor-heading-title{margin-bottom:12px}
.tps-appcard:hover .tps-apph .elementor-heading-title::before{width:100%}
/* carte CTA navy */
.tps-appcard-cta{background:#0D1520!important;justify-content:center;padding:28px 24px!important;border-color:#0D1520!important}
.tps-appcta-k .elementor-heading-title{font-family:'Open Sans',sans-serif!important;font-size:12px!important;letter-spacing:.14em!important;text-transform:uppercase!important;color:#5CB3E8!important;margin-bottom:12px}
.tps-appcta-d,.tps-appcta-d p{color:#C6D0DA!important;font-size:14.5px!important;line-height:1.55!important;margin-bottom:20px}
.tps-appcard-cta .tps-btn-ghost .elementor-button{background:transparent!important;color:#fff!important;border:1.5px solid rgba(255,255,255,.55)!important}
.tps-appcard-cta .tps-btn-ghost .elementor-button:hover{background:rgba(255,255,255,.12)!important;border-color:#fff!important}
@media(max-width:1024px){.tps-appcard{flex-basis:calc((100% - 24px)/2)!important;max-width:calc((100% - 24px)/2)!important}}
@media(max-width:767px){.tps-appcard{flex-basis:100%!important;max-width:100%!important}}


/* Taille titres cartes domaines (12 -> 15px) */
.tps-appcard .tps-apph .elementor-heading-title{font-size:15px!important;padding-bottom:11px!important;margin-bottom:12px!important}


/* Bouton carte domaine (CTA clair en bas de carte) */
.tps-appbtn{margin-top:auto!important;padding-top:16px!important}
.tps-appbtn .elementor-button{background:transparent!important;color:#006DB5!important;border:1.5px solid #006DB5!important;padding:9px 16px!important;font-family:'Outfit',sans-serif!important;font-weight:700!important;font-size:12.5px!important;text-transform:uppercase!important;letter-spacing:.02em!important;border-radius:3px!important;transition:background .15s,color .15s}
.tps-appbtn .elementor-button:hover{background:#006DB5!important;color:#fff!important}


/* Alignement bas boutons cartes : le body remplit la hauteur, l'image reste fixe */
.tps-appcard-body{flex:1 1 auto!important}
.tps-appcard-img{flex:0 0 158px!important}


/* Trame perforee carte CTA (meme recette que la section Confiance) */
.tps-appcard-cta{position:relative;overflow:hidden}
.tps-appcard-cta::after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,currentColor 2.4px,transparent 2.9px),radial-gradient(circle,currentColor 2.4px,transparent 2.9px);background-size:17px 17px;background-position:0 0,8.5px 8.5px;color:#FFFFFF;opacity:.07;pointer-events:none;z-index:0}
.tps-appcard-cta > *{position:relative;z-index:1}


/* L'image FAQ ne doit plus suivre la hauteur de l'accordeon (elle changeait a chaque
   ouverture/fermeture, effet perturbant). image FAQ independante : on la sort du stretch
   et sa hauteur derive de sa PROPRE largeur (ratio), donc stable. */
.tps-faqimg{align-self:flex-start!important;aspect-ratio:5/6}
@media(max-width:880px){.tps-faqimg{aspect-ratio:auto}}


/* hauteur FAQ reservee : on reserve la hauteur du plus grand etat de l'accordeon pour que
   la section (et donc le CTA en dessous) ne monte/descende plus a l'ouverture. Valeurs
   mesurees par plage : la colonne etant plus etroite en dessous de 1366, les reponses
   se replient sur plus de lignes et l'amplitude augmente (43px @1440 -> 108px @885). */
.tps-faqleft{min-height:700px}
@media(max-width:1366px){.tps-faqleft{min-height:730px}}
@media(max-width:880px){.tps-faqleft{min-height:630px}}
@media(max-width:767px){.tps-faqleft{min-height:750px}}


/* ===== PERFORATION : echelle relative a la taille du texte =====
   Les metriques sont en em : elles se resolvent sur la taille de police de CHAQUE mot
   perfore (hero 56px, CTA/H2 42px, compteur 44px, et toutes les tailles responsive).
   Les variables sont donc declarees SUR les elements perfores, pas sur :root (ou em
   vaudrait la taille racine). Le plancher en px evite que les trous deviennent flous
   aux petites tailles. Taux de remplissage augmente (~39% contre ~17%) = lisibilite. */
.tps-perf-dot,
.tps-statcol.stat-lit .elementor-counter-number,
.tps-statcol.stat-lit .elementor-counter-number-prefix{
  --tps-perf-dot:max(1.1px,0.030em);
  --tps-perf-feather:max(1.4px,0.038em);
  --tps-perf-grid:max(3.2px,0.085em);
}/* End custom CSS */