
/***** banner : fullscreen *****/
.banner_fullscreen                          	{ position: relative; overflow: hidden; margin-top: 0;}
.banner_fullscreen:before 						{ position: absolute; left: 0; right: 0; top: 0; bottom: 25%; background: linear-gradient(to bottom, rgba(0,0,0,70%) 0%, rgba(0,0,0,0) 100%); transition: none; z-index: 5; content: "";}
.banner_fullscreen .video                       { position: relative; padding: 0;}
.banner_fullscreen .video video                 { width: 100%; height: 100vh; object-fit: cover; object-position: 50%; display: block; filter: brightness(0.7); margin: 0 auto}
.banner_fullscreen .video  .txt               	{ position: absolute;  display: grid; width: 100%; z-index: 20; padding: 30px 50px; justify-content: center; align-items: center;margin: 0; font-size: 20px; color: var(--mainColor3); text-align: center; text-transform: uppercase; letter-spacing: 5px; top: 50%; transform: translateY(-50%);}
.banner_fullscreen .video  .txt  h1             { display: block; font-size: 80px; line-height: 80px; padding: 20px 0 20px 0; text-transform: none; letter-spacing: 2px; font-weight: 600}
.banner_fullscreen .video  .txt .link           { display: block; text-transform: none; font-size: 18px; margin: 15px auto 0 auto; width: 300px;}


@media (max-width:1200px) {
.banner_fullscreen                  	        { margin-top: 80px;}
.banner_fullscreen .video video                 { height: 90vh;}
}

@media (max-width:1000px) {
.banner_fullscreen .video video                 { height: 100%; filter: brightness(1); padding-top: 0}
.banner_fullscreen .video  .txt  h1             { font-size: 60px; line-height: 60px;}
.banner_fullscreen .video  .txt  p             	{ font-size: 25px; color: var(--mainColor2); text-transform: none;}
.banner_fullscreen .video  .txt  span           { padding-top: 10px}
.banner_fullscreen:before 						{ display: none;}
.banner_fullscreen .link      		       		{ margin: 0; width: 100%;}
.banner_fullscreen .video  .txt  span           { font-size: 40px; line-height: 50px;}
}

@media (max-width:800px) {
.banner_fullscreen .video  .txt  h1             { font-size: 50px; line-height: 50px;}    
.banner_fullscreen .link:after      		    { display: none;}
.banner_fullscreen                  	        { margin-top: 70px;}
}
@media (max-width:600px) {
.banner_fullscreen .video  .txt                 { position: relative; top: initial; transform: initial;}
.banner_fullscreen .video  .txt  h1             { font-size: 30px; line-height: 30px;}      
}



/***** quote */

.quote_txt_img 											{ position: relative;}
.quote_txt_img .container	                        	{ display: grid; grid-template-columns: auto 1fr; grid-gap: 0 60px; align-items: center; position: relative;}
.quote_txt_img .container.align_top                		{ align-items: start;}
.quote_txt_img .container .item							{ position: relative;}
.quote_txt_img .container .item :last-child 			{ margin-bottom: 0;}
.quote_txt_img .container p               				{ margin-bottom: 15px;}
.quote_txt_img .container .link							{ margin-top: 10px;}
.quote_txt_img .container :last-child					{ margin-bottom: 0;}
.quote_txt_img 	a										{ color: var(--mainColor1)}



@media (max-width:1200px) { 
.quote_txt_img .container	                        	{ grid-gap: 0 40px;}
}
@media (max-width:700px) { 
.quote_txt_img 											{ margin: 20px 0;}
.quote_txt_img .container	                        	{ grid-template-columns: 1fr; grid-gap: 25px; text-align: left;}
.quote_txt_img .container p               				{ margin-bottom: 10px;}

}

/***** card item : img + txt */

.card_item_v1								{ border-radius: var(--allImgBR); background: var(--mainColor3); overflow: hidden; position: relative; text-align: left; box-shadow: 40px 40px 40px rgba(0, 0, 0, 0.05);}
.card_item_v1 .wrap							{ padding: 60px}
.card_item_v1 img 							{ display: block; margin: 0; width: 50px; height: 50px}
.card_item_v1 img:not(.icon)				{ width: 100%; height: auto; aspect-ratio: 5/3; object-fit: cover; margin-bottom: -15px;}
.card_item_v1 .sous_titre 					{ margin: 10px 0;}
.card_item_v1 p								{ margin-bottom: 20px;}
.card_item_v1 .link.fullw 					{ width: 100%; padding: 0;}
.card_item_v1_number						{ background-color: var(--bgColorLight); width: 50px; text-align: center; color: var(--bgColorDark); font-size: 20px; padding: 25px 10px; line-height: .65; z-index: 0; display: block;}
.card_item_v1 .link							{ width: 100%; text-align: center;}


@media (max-width:1200px) {
.card_item_v1 .wrap							{ padding: 30px;}
}
@media (max-width:700px) {
.card_item_v1								{ border-radius: 10px;}
.card_item_v1 .wrap							{ padding: 20px;}
.card_item_v1 .sous_titre 					{ margin: 0 0 10px 0;}
}

/***** grid bloc */

/***** solutions *****/
.home_solutions 								{ position: relative;}
.home_solutions .container						{ display: grid; grid-template-columns: 1fr 50%; grid-gap: 5vw;}
.home_solutions .container .img img 			{ width: 100%; height: auto; display: block; object-fit: cover;}
.home_solutions .content						{ padding: 0;}
.home_solutions .items							{ display: grid; grid-template-columns: 1fr 1fr; grid-gap: 15px;}
.home_solutions .items .item					{ background: linear-gradient(to left, var(--bgColorLight) 0% 50%, var(--bgColorDark) 50% 100%); background-size: 200% 100%; background-position: 100% 0; padding: clamp(40px, 4.5vw, 60px) clamp(20px, 3.5vw, 40px) 80px clamp(20px, 3.5vw, 40px); position: relative; transition: all 300ms ease-in-out;}

.home_solutions .items .item img				{ object-fit: none; object-position: center bottom; height: 44px;}
.home_solutions .items .item p					{ margin-bottom: 5px;}
.home_solutions .items .item .sous_titre		{ margin: 15px 0;}
.home_solutions .items .item .link_arrow		{ position: absolute; bottom: 0; right: 0; left: 40px;}
.home_solutions .items .item>a					{ position: absolute; left: 0; top: 0; bottom: 0; right: 0; font-size: 0;}

.home_solutions .video .positionPlay 			{ position: relative;}
.home_solutions .video .positionPlay:after  	{ position: absolute; left: -20px; top: 20px; border: 3px solid var(--mainColor1);  transition: none; content: ""; width:100%; height:100%; display:block; z-index: -10}
.home_solutions .video img 						{ display: block; width: 100%; height: auto; position: relative; z-index: 5;}
.home_solutions .video a 						{ position: absolute; left: 0; top: 0; right: 0; bottom: 0; z-index: 5; border-radius: var(--allImgBR)}
.home_solutions .video a span					{ position: absolute; left: 50%; top: 50%; width: 110px; height: 110px; background: url("../images/play.svg") 55% 50% no-repeat var(--mainColor2); border-radius: 50%; transform: translate(-50%, -50%);}
#homepage .bloc_txt_img .video a span 			{ left: 50%; top: 50%; width: 80px; height: 80px; background: url("../images/play.svg") 55% 50% no-repeat var(--mainColor3); /*transform: translate(-50%, -90%);*/}
.home_solutions .grid 							{ display: grid; grid-template-columns: 1fr 1fr; grid-gap: 60px; margin-top: 60px;}
.home_solutions .grid .link_arrow				{ margin-top: 25px;}

@media (min-width:1201px) {
.home_solutions .item:hover  					{ background-position: 0 0;}
.home_solutions .item:hover .link_arrow span	{ opacity: 1; transform: translateX(0); transition-delay: 50ms;}
.home_solutions .item:hover .link_arrow i		{ width: 100%;}
}
@media (max-width:1200px) {
.home_solutions .container						{ grid-template-columns: 1fr;}
.home_solutions .video 							{ display: none;}
.home_solutions .container .img   				{ display: none;}
.home_solutions .content						{ padding: 0;}
}
@media (max-width:700px) {
.home_solutions .items							{ grid-template-columns: 1fr; grid-gap: 10px;}
.home_solutions .items .item  					{ padding: 0 5vw; display: grid; grid-template-columns: auto 1fr; grid-gap: 5vw; align-items: center; height: 70px;}
.home_solutions .items .item .num, 
.home_solutions .items .item p					{ display: none;}
.home_solutions .items .item .link_arrow		{ height: 100%; left: auto;}
.home_solutions .items .item img				{ object-fit: fill; height: auto;}
.home_solutions .items .item:nth-child(1) img	{ width: 26px;}
.home_solutions .items .item:nth-child(2) img	{ width: 30px;}
.home_solutions .items .item:nth-child(3) img	{ width: 35px; margin-right: -3px;}
.home_solutions .items .item:nth-child(4) img	{ width: 32px;}
.home_solutions .items .item .sous_titre		{ padding-right: 60px;}
}


/***** Atouts *****/
.atouts .grid						{ display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 20px; align-items: center; align-items: start; }
.atouts .grid .item				{ position: relative; display: block; text-align: center; background:var(--bgColorLight); padding: 20px 40px;}
.atouts .grid .item img			{ position: relative; display: block; margin: 25px auto;}
.atouts .grid .item span			{ position: relative; display: block; line-height: 20px; text-align: center; color: var(--mainColor1); margin: 0 auto 20px auto; font: 600 25px/32px "DM Sans"; letter-spacing: 1.5px}

@media (max-width:1200px) {
.atouts							{ margin: 90px 0 100px; }
}
@media (max-width:1000px) {
.atouts							{ margin: 70px 0 80px; }
.atouts .grid						{ grid-gap: 10px; }
.atouts .grid .item img			{ width: 50px; margin: 15px auto; }
.atouts .grid .img:before	        { width: 90px; height: 90px;}
.atouts .grid .item span			{ margin: 0 auto 20px auto;}
}

@media (max-width:700px) {
.atouts							{ margin: 40px 0 60px; }
.atouts .grid						{ grid-template-columns: 1fr;}
}



/***** moving img *****/
.moving_img									{ position: relative; overflow: hidden;}
.moving_img .row 							{ width: auto; display: flex;}
.moving_img .row .grid 						{ width: auto; display: flex; animation: moving_img 80s linear infinite;}
.moving_img .row .grid div 					{ padding: 0 10px;}
.moving_img .row .grid img 					{ width: auto; height: auto; display: block; border-radius: var(--allImgBR); object-fit: cover; transition: all 300ms ease-in-out;}

@keyframes moving_img {
0%											{ transform: translate(0, 0);}
100% 										{ transform: translate(-100%, 0);}
}
@media (max-width:1600px) {
.moving_img .row .grid img 					{ height: 400px;}
}
@media (max-width:1200px) {
.moving_img .row .grid div 					{ padding: 0 10px;}
.moving_img .row .grid img 					{ height: 350px;}
}
@media (max-width:1000px) {
.moving_img									{ padding: 0;}
.moving_img .row .grid img 					{ height: 350px;}
}
@media (max-width:700px) {
.moving_img .row .grid div 					{ padding: 0 5px;}
.moving_img .row .grid img 					{ height: 60vw; max-height: 350px;}
}



@media (max-width:1200px) {
.titre_normal               { font: 400 40px / 48px "DM Sans"; }     
}

@media (max-width:800px) {
.titre_normal               { font: 400 30px / 38px "DM Sans"; }     
}