:root {
    /* ===== Variables historiques (conservées : 68 usages dans ce fichier) ===== */
    --bg-primary: #003965;
    --bg-secondary: #ffffff;
    --text-primary: #777777;
    --text-secondary: #003965;
    --accent-primary: #ffffff;
    --accent-secondary: #1de9b6;
    --accent-hover: #00897b;
    --border-color: #2d3f54;
    --input-bg: #0d1b2a;
    --input-border: #ffffff;
    --input-border-focus: #003965;
    --success: #4caf50;
    --warning: #ff9800;
    --error: #f44336;
    --font-main: 'Calibri', 'Calibri Regular', Arial, Helvetica, sans-serif;

    /* ===== Design System 2026 — nouveaux tokens ===== */
    /* Marque : bleu corporate + variantes */
    --brand: #003965;
    --brand-dark: #002a4d;        /* hover/fonds profonds */
    --brand-soft: #e8f0f7;        /* fonds bleutés très clairs */

    /* Accent CTA orange « haute conversion » (contraste AA sur blanc et sur bleu) */
    --cta: #f4761e;
    --cta-hover: #d9610c;
    --cta-text: #ffffff;

    /* Surfaces / fonds */
    --bg-light: #f4f7fa;          /* sections alternées */
    --bg-card: #ffffff;           /* cartes */

    /* Texte (hiérarchie lisible — titres très contrastés pour WCAG AA) */
    --text-heading: #15212e;
    --text-body: #4f5b67;         /* corps : contraste ~7:1 sur blanc */
    --text-muted: #6b7785;
    --text-on-dark: #eaf1f8;

    /* Bordures */
    --border: #e3e9ef;

    /* Police titres (alias pour clarté) */
    --font-heading: 'Calibri', Arial, sans-serif;
    /* Police des titres Hero : accent typographique tech/moderne */
    --font-hero: 'Space Grotesk', 'Segoe UI', Arial, sans-serif;

    /* Échelle typographique fluide */
    --fs-h1: clamp(2.1rem, 1.3rem + 3.4vw, 3.6rem);
    --fs-h2: clamp(1.65rem, 1.15rem + 2.1vw, 2.5rem);
    --fs-h3: clamp(1.2rem, 1rem + 0.9vw, 1.55rem);
    --fs-lead: clamp(1.05rem, 0.98rem + 0.45vw, 1.25rem);

    /* Rythme / espacement */
    --space-section: clamp(3.5rem, 2rem + 6vw, 7rem);
    --space-1: .5rem;
    --space-2: 1rem;
    --space-3: 1.5rem;
    --space-4: 2.5rem;
    --space-5: 4rem;
    --gutter: 30px;               /* gouttière grille (compat Bootstrap 3) */
    --container: 1200px;

    /* Rayons */
    --radius-sm: 8px;
    --radius: 16px;
    --radius-lg: 24px;
    --radius-pill: 999px;

    /* Ombres (teintées bleu marque) */
    --shadow-sm: 0 2px 10px rgba(0, 57, 101, .06);
    --shadow: 0 10px 28px rgba(0, 57, 101, .10);
    --shadow-lg: 0 18px 44px rgba(0, 57, 101, .16);

    /* Transitions */
    --transition: .3s ease;
    --transition-fast: .18s ease;
}
* {
	margin:0px;
	padding:0px;
	border:none;
	outline:none;
}
body {
	font-family: var(--font-main);
	font-size:15px;
	color: var(--text-primary);
	line-height:1.9em;
	font-weight:400;
	background: var(--bg-secondary);
	-webkit-font-smoothing: antialiased;
	-moz-font-smoothing: antialiased;
}
a{
	text-decoration:none;
	cursor:pointer;
	color: var(--text-secondary);
}
a:hover,a:focus,a:visited{
	text-decoration:none;
	outline:none;
}
h1,h2,h3,h4,h5,h6 {
	position:relative;
	font-family: 'Calibri', Arial, sans-serif;
	font-weight:normal;
	margin:0px;
	background:none;
	line-height:1.5em;
	color: #222;
}
input,button,select,textarea{
	font-family: 'Calibri', Arial, sans-serif;
}
p{
	position:relative;
	line-height: 24px;
	font-size: 16px;
	margin: 0;
	font-family: 'Calibri', Arial, sans-serif;
}
.section {
	padding: 80px 0;
}
.row-df	{
	display: flex;
	flex-wrap: wrap;
}
.p-40 {
	padding: 40px 0;
}
.chart-outer {
	text-align: center;
}
.strike-through{
	text-decoration:line-through;	
}
.auto-container{
	position:static;
	max-width:1200px;
	padding:0px 15px;
	margin:0 auto;
}
.medium-container{
	max-width:850px;
}
.page-wrapper{
	position:relative;
	margin:0 auto;
	width:100%;
	min-width:300px;
	overflow: hidden;
	
}
ul,li{
	list-style:none;
	padding:0px;
	margin:0px;	
}
.row-15 {
	margin: 0 -7.5px;
}
.theme-btn{
	display:inline-block;
	transition:all 0.3s ease;
	-moz-transition:all 0.3s ease;
	-webkit-transition:all 0.3s ease;
	-ms-transition:all 0.3s ease;
	-o-transition:all 0.3s ease;
}
.theme-color {
	color: var(--text-primary);
}
.centered{
	text-align:center;	
}
.btn-style-one{
	position:relative;
	font-family: 'Calibri', Arial, sans-serif;
	padding:14px 30px 9px;
	line-height:24px;
	text-transform:uppercase;
	background: var(--bg-primary);
	display: inline-block;
	color: var(--accent-primary);
	letter-spacing:1px;
	border:1px solid var(--input-border);
	font-size:15px;
	font-weight:700;
	border-radius:3px;
	transition: .5s ease;
}
.btn-style-one:hover{
	background: var(--bg-secondary);
	color: var(--text-secondary);
	transition: .5s ease;
	border:1px solid var(--input-border-focus);
}
.btn-style-two{
	position:relative;
	font-family: 'Calibri', Arial, sans-serif;
	padding:14px 30px 9px;
	line-height:24px;
	text-transform:uppercase;
	background:none;
	color: var(--accent-primary);
	letter-spacing:1px;
	border:1px solid var(--input-border);
	font-size:15px;
	font-weight:700;
	border-radius:3px;
	transition: .5s ease;
}
.btn-style-two:hover{
	background: var(--bg-primary);
	color: var(--accent-primary);
	transition: .5s ease;
    border:1px solid var(--input-border);
}
.theme-btn .icon-left{
	padding-right:10px;
}
.theme-btn .icon-right{
	padding-left:10px;
}
.theme_color{
	color: var(--text-secondary);	
}
.light-font{
	font-weight:300;	
}
.regular-font{
	font-weight:400;	
}
.semibold-font{
	font-weight:600;	
}
.bold-font{
	font-weight:700;	
}
.ex-bold-font{
	font-weight:800;	
}
.heavy-font{
	font-weight:900;
}
.bg-lightgrey{
	background-color:#fafafa;	
}
*.no-bg,
div.no-bg{
	background:none !important;	
}
.img-box {
	text-align: center;
}
.text-uppercase{
	text-transform:uppercase;	
}
.preloader{ position:fixed; left:0px; top:0px; width:100%; height:100%; z-index:999999; background-color:#fff; background-position:center center; background-repeat:no-repeat; background-image:url(../images/home/icon-logo.png);}
img{
	display:inline-block;
	max-width:100%;
	height:auto;	
}
.default-overlay {
    position: absolute;
    text-align: center;
    left: 10px;
    top: 10px;
    right: 10px;
    bottom: 10px;
    background: rgba(0, 0, 0, 0.7);
    transition: .5s cubic-bezier(0.4, 0, 1, 1);
    opacity: 0;
    visibility: hidden;
    -webkit-transition: .5s ease;
    -moz-transition: .5s ease;
    -ms-transition: .5s ease;
    -o-transition: .5s ease;
    transition: .5s ease;
}
.default-overlay .inner-box {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.single-item:hover .default-overlay {
  opacity: 1;
  visibility: visible;
  -webkit-transition: .5s ease;
  -moz-transition: .5s ease;
  -ms-transition: .5s ease;
  -o-transition: .5s ease;
  transition: .5s ease;
  
}
.default-overlay a {
  color: var(--text-primary);
  font-size: 40px;
}
.post-filter {
  display: inline-block;
  margin: 0;
  margin-bottom: 50px;
}
.post-filter li {
  padding: 0;
}
.post-filter li span {
  position: relative;
  color: #131d33;
  font-size: 18px;
  line-height: 24px;
  font-weight: 700;
  display: block;
  text-transform: uppercase;
  margin: 0 16px 10px;
  padding-bottom: 3px;
  cursor: pointer;
  transition: .5s ease;
}
.post-filter li:hover span,
.post-filter li.active span {
  color: var(--text-primary);
  transition: .5s ease;
}
.post-filter li span:before {
	position: absolute;
	content: "";
	height: 1px;
	width: 0%;
	left: 0;
	bottom: 0;
	background: var(--bg-primary);
	transition: .7s ease;
}
.post-filter li.active span:before,
.post-filter li:hover span:before {
	width: 100%;
	transition: .7s ease;
}

/*** 

====================================================================
	Scroll To Top style
====================================================================

***/

.scroll-to-top{
	position:fixed;
	bottom: 50px;
	right:15px;
	width:45px;
	height:40px;
	color: var(--accent-primary);
	font-size: 18px;
	text-transform:uppercase;
	line-height:38px;
	text-align:center;
	z-index:100;
	cursor:pointer;
	background: var(--bg-primary);
	display:none;
	-webkit-transition:all 300ms ease;
	-ms-transition:all 300ms ease;
	-o-transition:all 300ms ease;
	-moz-transition:all 300ms ease;
	transition:all 300ms ease;
}
.scroll-to-top:hover{
	color: var(--accent-primary);
	background: var(--bg-primary);
}

/*** 

====================================================================
	Main Header style
====================================================================

***/

.main-header{
	position:relative;
	left:0px;
	top:0px;
	z-index:999;
	width:100%;
	background: var(--bg-secondary);
}
.main-header .logo a {
	padding: 0;
	position: relative;
	top: 0;
	display: inline-block;
}
.main-header.fixed-header .logo a {
	position: relative;
	top: 0;
	background: none;
	display: inline-block;
	width: 70px;
	padding: 8px 0;
}
.sticky-header{
	position:fixed;
	opacity:0;
	visibility:hidden;
	left:0px;
	top:0px;
	width:100%;
	padding:0px 0px;
	background: var(--bg-secondary);
	z-index:0;
	transition:all 500ms ease;
	-moz-transition:all 500ms ease;
	-webkit-transition:all 500ms ease;
	-ms-transition:all 500ms ease;
	-o-transition:all 500ms ease;
	box-shadow: -3px 0px 50px -2px rgba(0, 0, 0, 0.1);
}
.fixed-header .sticky-header{
	z-index:999;
	opacity:1;
	visibility:visible;
	-ms-animation-name: fadeInDown;
	-moz-animation-name: fadeInDown;
	-op-animation-name: fadeInDown;
	-webkit-animation-name: fadeInDown;
	animation-name: fadeInDown;
	-ms-animation-duration: 500ms;
	-moz-animation-duration: 500ms;
	-op-animation-duration: 500ms;
	-webkit-animation-duration: 500ms;
	animation-duration: 500ms;
	-ms-animation-timing-function: linear;
	-moz-animation-timing-function: linear;
	-op-animation-timing-function: linear;
	-webkit-animation-timing-function: linear;
	animation-timing-function: linear;
	-ms-animation-iteration-count: 1;
	-moz-animation-iteration-count: 1;
	-op-animation-iteration-count: 1;
	-webkit-animation-iteration-count: 1;
	animation-iteration-count: 1;	
}
.main-header.fixed-header.menu_fixed {
	opacity: 0;
	visibility: hidden;
}
.main-header .auto-container{
	position:relative;	
}
.main-header .header-top-one{
	position:relative;
	font-size:14px;
	color: var(--accent-primary);
	background: var(--bg-primary);
	padding: 7px 0px;
}
.main-header .header-top-one .top-left{
	position:relative;
	float:left;
}
.main-header .header-top-one .top-left > ul {
	padding: 10px 0;
}
.main-header .header-top-one .top-links ul li{
	position:relative;
	float:left;
	padding:0;
	line-height:24px;
	color:#aaaaaa;
	margin-right:30px;
}
.main-header .header-top-one .top-links ul li a {
	font-size: 18px;
}
.main-header .header-top-one .top-links ul li a i {
	position: relative;
	margin-right: 5px;
	top: 1px;
}
.main-header .header-top-one .top-links ul li a i.fa-mobile {
	margin-right: 8px;
}
.main-header .header-top-one ul li a{
	position:relative;
	color: #ffffff;
	font-size: 16px;
	-moz-transition:all 500ms ease;
	-webkit-transition:all 500ms ease;
	-ms-transition:all 500ms ease;
	-o-transition:all 500ms ease;
	transition:all 500ms ease;
}
.main-header .header-top-one ul li a:hover {
	color: #9ef4ce!important;
}
.main-header .header-top-one .top-right{
	position:relative;
	float:right;
}
.main-header .header-top-one .social-links{
	position:relative;
	padding:10px 0px;	
}
.main-header .header-top-one .social-links li{
	position:relative;
	float:left;
	margin-left:20px;	
}
.main-header .header-top-one .social-links li a{
	position:relative;
	display:flex;
	align-items: center;
	line-height:24px;
	color: #ffffff;
}
.main-header .header-top-one .social-links li:last-child a {
	display: flex;
	width: 30px;
	height: 30px;
	align-items: center;
	justify-content: center;
	background-color: #fff;
	border-radius: 50%;
}
.main-header .header-top-one .social-links li:last-child a > span {
	color: var(--text-primary);
	line-height: 1;
}
.main-header .header-top-one .social-links li a:hover {
	color: #fff;
}

.main-header .header-top-one .social-links .icon-letter2 {
	margin-right: 5px;
}
.main-header .main-box{
	position:relative;
	padding:5px 0px;
	left:0px;
	top:0px;
	width:100%;
	background: var(--bg-secondary);
	box-shadow: 0 0 20px rgba(0, 0, 0, 0.19);
	-webkit-transition:all 300ms ease;
	-ms-transition:all 300ms ease;
	-o-transition:all 300ms ease;
	-moz-transition:all 300ms ease;
	transition:all 300ms ease;
}
.main-header .main-box .outer-container{
	position:relative;
	display:flex;
	align-items:center;
	justify-content:space-between;
}
.main-header .main-box .logo-box{
	position:relative;
	float:none;
	left:0px;
	padding: 0;
	z-index:10;
	display:flex;
	align-items:center;
}
.fixed-header .main-box .logo-box{
	padding:0;
}
.main-header .main-box .logo-box .logo img{
	display:block;
	height:80px;
	width:auto;
	max-width:none;
	-webkit-transition:all 300ms ease;
	-ms-transition:all 300ms ease;
	-o-transition:all 300ms ease;
	-moz-transition:all 300ms ease;
	transition:all 300ms ease;
}
.main-header .nav-outer{
	position:relative;
	float:none;
	padding-right: 110px;
}
.main-menu{
	position:relative;
}
.main-menu .navbar-collapse{
	padding:0px;	
}
.main-menu .navigation{
	position:relative;
	margin:0px;
}
.main-menu .navigation > li{
	position:relative;
	display:inline-block;
	float:left;
	padding: 10px 0px;
	margin-left: 35px;
}
.main-menu .navigation > li > a{
	position:relative;
	display:block;
	padding: 32px 0px 28px;
	color: #131d33;
	text-align:center;
	line-height:30px;
	text-transform: uppercase;
	font-weight: 600;
	opacity:1;
	font-size: 15px;
	transition:all 500ms ease;
	-moz-transition:all 500ms ease;
	-webkit-transition:all 500ms ease;
	-ms-transition:all 500ms ease;
	-o-transition:all 500ms ease;
}
.sticky-header .main-menu .navigation > li > a{
	padding: 23px 25px !important;
	color:#333333 !important;
}
.sticky-header .main-menu .navigation > li.dropdown > a:after{
	display:none;
}
.main-menu .navigation > li:hover > a,
.main-menu .navigation > li.current > a{
	color: var(--text-secondary);
	opacity:1;
}
.sticky-header .main-menu .navigation > li:hover > a,
.sticky-header .main-menu .navigation > li.current > a {
	background: #ffffff;
	color: #003965!important;
}
.main-menu .navigation > li > ul{
	position:absolute;
	left:0px;
	top:100%;
	width: 240px;
	z-index:100;
	padding: 7px 25px;
	display:none;
	background: #fff;
	border-top: 2px solid #003965;
	transition:all 300ms ease;
	-moz-transition:all 300ms ease;
	-webkit-transition:all 500ms ease;
	-ms-transition:all 300ms ease;
	-o-transition:all 300ms ease;
	-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);
	-ms-box-shadow:0 6px 12px rgba(0,0,0,.175);
	-o-box-shadow:0 6px 12px rgba(0,0,0,.175);
	-moz-box-shadow:0 6px 12px rgba(0,0,0,.175);
	box-shadow:0 6px 12px rgba(0,0,0,.175);
}
.main-menu .navigation > li > ul > li{
	position:relative;
	width:100%;
}
.main-menu .navigation > li > ul > li:last-child{
	border-bottom:none;	
}
.main-menu .navigation > li > ul > li > a{
	position:relative;
	display:block;
	padding: 14px 0px 11px;
	line-height:24px;
	border-bottom: 1px solid #eee;
	font-weight:600;
	font-size:15px;
	color: #999;
	transition:all 500ms ease;
	-moz-transition:all 500ms ease;
	-webkit-transition:all 500ms ease;
	-ms-transition:all 500ms ease;
	-o-transition:all 500ms ease;
}
.main-menu .navigation > li > ul > li.current > a {
	color: var(--text-primary);
}
.main-menu .navigation > li > ul > li:last-child a {
	border-color: rgba(255, 255, 255, 0.39);
}
.main-menu .navigation > li > ul > li:hover > a{
	color: var(--text-primary);
}
.main-menu .navigation > li.dropdown:hover > ul{
	visibility:visible;
	opacity:1;
	top:100%;	
}
.main-menu .navbar-collapse > ul li.dropdown .dropdown-btn{
	position:absolute;
	right:10px;
	top:6px;
	width:34px;
	height:30px;
	border:1px solid var(--input-border);
	text-align:center;
	font-size:16px;
	line-height:28px;
	color: var(--accent-primary);
	cursor:pointer;
	z-index:5;
	display:none;
}
.sticky-header .main-menu .navigation > li{
	float:left;
	padding: 0;
	margin: 0;
	display:block;
}

/*** 

====================================================================
	Main Slider style
==================================================================== 

***/


.owl-carousel {
    touch-action: manipulation; 
}
.main-slider{
	position:relative;
	z-index: 10;
}
.sponsors-style-two .owl-carousel .owl-item .image-box{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
}
.main-slider .item {
	width: 100%;
	display: flex;
	align-items: center;
	padding: 225px 0 205px;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}
.main-slider h1, .main-slider h2{
	font-weight:700;
	line-height:1.2em;
	color:#fff;
	font-size:60px;
	font-family: var(--font-hero);
	letter-spacing:0.5px;
}
.main-slider .text{
	font-weight:400;
	line-height:1.1em;
	color:#fff;
	font-size:27px;
	max-width: 1000px;
	margin: 20px 0 30px
}
.main-banner__btn a {
	margin-bottom: 20px;
}
.main-banner__btn a:last-child {
	margin-bottom: 0;
}

/***
====================================================================
	About Us
====================================================================

***/

.btn-wrap {
	margin-top: 50px!important;
	text-align: center!important;
}
.sec-title{
	position:relative;
	margin-bottom:50px;	
}
.sec-title.centered{
	margin-bottom:50px;	
}
.sec-title h2{
	position:relative;
	font-size: 30px;
	color:#232323;
	font-weight: 700;
	line-height:1.5em;
	padding-bottom:10px;
	margin-bottom: 30px;
}
.sec-title h2 span {
	color: var(--text-primary);
}
.sec-title h2:before{
	content:'';
	position:absolute;
	left:0px;
	bottom:0px;
	width: 81px;
	border-bottom: 4px dotted #003965;
}
.sec-title.centered h2:before{
	left:50%;
	margin-left:-40.5px;	
}
.sec-title img
{
	padding-top: 19px;
}
.about-us-2 {
	position: relative;
	border-top: 1px solid #f4f4f4;
}
.about-us-2 h2 {
	font-weight: 700;
	margin-bottom: 20px;
}
.about-us-2 p {
	font-size: 17px;
	line-height: 27px;
}
.about-us-2 p.theme_color {
	font-weight: 700;
}
.feature-item {
	position: relative;
	padding-left: 80px;
	margin-top: 30px;
}
.feature-item .icon-box {
	position: absolute;
	left: 0;
	top: 0;
	width: 65px;
	height: 65px;
	text-align: center;
	font-size: 26px;
	color: #ffffff;
	background: var(--bg-primary);
	line-height: 63px;
	border: 1px solid #003965;
	border-radius: 50%;
}
.feature-item h5 {
	font-size: 18px;
	font-weight: 700;
	margin-bottom: 7px;
}
.feature-item p {
	font-size: 16px;
	font-family: 'Calibri', Arial, sans-serif;
	font-style: normal;
	line-height: 24px;
}

/*** 

====================================================================
	Services Style One
====================================================================

***/

.services-style-one.section {
	position:relative;
	padding-bottom: 50px;
}
.row-flex {
	display: flex;
	flex-wrap: wrap;
}
.services-style-one:before{
	position:absolute;
	content:'';
	left:0px;
	top:0px;
	width:100%;
	height:100%;
	display:block;
	background-color: rgb(255, 255, 255);
}
.service-block2{
	position:relative;
	padding-bottom:30px;
	display: inline-block;
	height: 100%;
}
.service-block2 .content {
    border: 1px solid #f4f4f4;
    padding: 20px;
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}
.service-block2 .content > p {
	margin-bottom: 20px;
	flex-grow: 1;
}
.service-block2 .inner-box{
	position:relative;
	overflow:hidden;
	height: 100%;
	display: flex;
	flex-direction: column;
}
.service-block2 .inner-box .image-box{
	position:relative;
	height:200px;
	overflow:hidden;
}
.service-block2 .inner-box .image-box img{
	position:relative;
	width:100%;
	height:100%;
	display:block;
	object-fit:cover;
	object-position:center;
}
.service-block2 .inner-box .content h3 {
	color: #232323;
	font-weight: 700;
	font-size: 18px;
}
.service-block2 .content .top-area {
  margin-bottom: 5px;
	display: flex;
}
.service-block2 .icon_box {
  position: relative;
  font-size: 48px;
  line-height: 50px;
  color: var(--text-primary);
  margin-right: 20px;
  padding-right: 15px;
  border-right: 1px solid #f4f4f4;
  float: left;
  margin-bottom: 10px;
}
.service-block2 .text {
    position: relative;
    float: left;
    margin-bottom: 14px;
}

/*** 

====================================================================
	parallax Section
====================================================================

***/


.parallax {
	position: relative;
	padding: 100px 0px 110px;
/*	background-attachment: fixed;*/
	background-position: center;
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	background-size: cover;
	background-repeat: no-repeat;
	background-attachment: scroll !important;
}
.parallax h3 {
	color: #fff;
	line-height: 55px;
	font-size: 36px;
	font-weight: 700;
	margin-bottom: 40px;
}
.parallax a {
	margin: 0 10px;
	display: inline-block;
}
.parallax:before {
    content: '';
    position: absolute;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.5);
}

/*** 

====================================================================
	Fun Facts Section
====================================================================

***/

.fun-facts-section{
	position:relative;
	background-color:#003965;
	background-size:cover;
	background-repeat:no-repeat;
	background-position:center center;
	background-attachment:fixed;
	color: var(--accent-primary);
}
.fun-facts-section:before{
	content:'';
	position:absolute;
	left:0px;
	top:0px;
	width:100%;
	height:100%;
	background:#003965;
}
.fun-facts-section .auto-container{
	position:relative;
	z-index:1;	
}
.fun-facts-section .sec-title h2{
	text-transform:none;
	padding-bottom:0px;	
}
.fun-facts-section .sec-title h2:before,
.fun-facts-section .sec-title h2:after{
	display:none;
}
.fun-facts-section .column{
	position:relative;
	margin-bottom:40px;
}
.fun-facts-section .column .inner{
	position:relative;
	text-align:center;
	background: var(--bg-primary);
	padding: 30px 0;
}
.fun-facts-section .column .icon-box{
	position:relative;
	color: #ffffff;
	line-height:1em;
	font-weight:normal;
	font-size: 40px;
	margin-bottom: 10px;
}
.fun-facts-section .column .content{
	position:relative;
}
.fun-facts-section .count-outer{
	position:relative;
	font-size: 30px;
	line-height:48px;
	font-weight:700;
	color: #ffffff;
	margin-bottom: 0px;
	font-family: 'Calibri', Arial, sans-serif;
}
.fun-facts-section .count-outer .count-text{
	font-weight:700;
}
.fun-facts-section .count-outer .plus {
	font-size: 18px;
	font-weight: 400;
	margin-left: 10px;
	position: relative;
	top: -10px;
}
.fun-facts-section .column .counter-title{
	position:relative;
	font-size:16px;
	line-height:30px;
	font-weight:400;
	color: #fff;
	font-family: 'Calibri', Arial, sans-serif;
}
.fun-facts-section.style-three {
	position:relative;
	background-size:cover;
	background-repeat:no-repeat;
	background-position:center center;
	background-attachment:fixed;
	color: var(--accent-primary);
}
.fun-facts-section.style-three.section {
	padding-bottom: 40px;
}
.fun-facts-section.style-three .row {
	display: flex;
	align-items: center;
}
.fun-facts-section.style-three:before{
	content:'';
	position:absolute;
	left:0px;
	top:0px;
	width:100%;
	height:100%;
	background: #003965;
}
.fun-facts-section.style-three .auto-container{
	position:relative;
	z-index:1;	
}
.fun-facts-section.style-three .content-column{
	position:relative;
	margin-bottom:30px;	
}
.fun-facts-section.style-three .content-column h2{
	font-size:24px;
	font-weight:700;
	color: var(--accent-primary);
	line-height:1.5em;
	margin-bottom:15px;
}
.fun-facts-section.style-three .content-column .text{
	position:relative;
	font-size:14px;
	line-height:1.9em;
	margin-bottom:30px;	
}

/*** 

====================================================================
	Gallery Section
====================================================================

***/

.gallery-section{
    position: relative;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    background-attachment: fixed;
    color: #ffffff;
}
.default-portfolio-item{
	position:relative;
	margin-bottom:30px;
}
.default-portfolio-item.mix{
	display:none;
}
.default-portfolio-item .inner-box{
	position:relative;
	width:100%;
	overflow:hidden;
}
.default-portfolio-item .image-box{
	position:relative;
	display:block;
}
.default-portfolio-item .image-box img{
	position:relative;
	display:block;
	border-radius:3px;
	width:100%;
}
.default-portfolio-item .overlay-box{
	position:absolute;
	left:0px;
	top:-100%;
	width:100%;
	height:100%;
	padding:0px;
	color: #fff;
	opacity:0;
	text-align:center;
	transition: all 500ms ease;
	-webkit-transition: all 500ms ease;
	-ms-transition: all 500ms ease;
	-o-transition: all 500ms ease;
	-moz-transition: all 500ms ease;
}
.default-portfolio-item .inner-box:hover .overlay-box{
	top:0px;
	opacity:1;	
}
.default-portfolio-item .overlay-inner{
	position:absolute;
	left:0px;
	top:0px;
	width:100%;
	height:100%;
	display:table;
	vertical-align:middle;
	padding:10px 20px;
	background: rgba(20, 30, 52, 0.57);
}
.default-portfolio-item .overlay-inner .content{
	position:relative;
	display:table-cell;
	vertical-align:middle;
	padding:10px 15px;
}
.default-portfolio-item .overlay-inner .option-btn{
	position:relative;
	display:block;
	color: var(--text-primary);
	font-size:14px;
	width:44px;
	height:44px;
	line-height:36px;
	margin:0 auto;
	border:4px solid rgba(53,77,113,0.50);
	background: var(--bg-secondary);
	border-radius:50%;
	transition: all 500ms ease;
	-webkit-transition: all 500ms ease;
	-ms-transition: all 500ms ease;
	-o-transition: all 500ms ease;
	-moz-transition: all 500ms ease;
}
.fancybox-next span,
.fancybox-prev span{
	background-image:none !important;
	width:44px !important;
	height:44px !important;
	line-height:44px !important;
	text-align:center;
}
.fancybox-next span:before,
.fancybox-prev span:before{
	content:'';
	position:absolute;
	font-family: 'FontAwesome';
	left:0px;
	top:0px;
	font-size:12px;
	width:44px !important;
	height:44px !important;
	line-height:44px !important;
	background-color:rgba(28,28,28,0.40) !important;
	color: var(--accent-primary);
	visibility:visible;
	transition: all 500ms ease;
	-webkit-transition: all 500ms ease;
	-ms-transition: all 500ms ease;
	-o-transition: all 500ms ease;
	-moz-transition: all 500ms ease;
}
.fancybox-next span:before{
	content:'\f178';
}
.fancybox-prev span:before{
	content:'\f177';
}
.fancybox-next:hover span:before,
.fancybox-prev:hover span:before{
	background-color:#003965 !important;
	color: var(--accent-primary);	
}
.fancybox-type-image .fancybox-close{
	right:0px;
	top:0px;
	width:45px;
	height:45px;
	background:url(../images/icons/icon-cross.png) center center no-repeat;
	background-color:rgba(17,17,17,0.50) !important;	
}
.fancybox-type-image .fancybox-close:hover{
	background-color:#000000 !important;	
}
.fancybox-type-image .fancybox-skin{
	padding:0px !important;	
}

/*** 

====================================================================
	Default Form Styling
====================================================================

***/

.default-form .form-group{
	position:relative;
	margin-bottom:25px;	
}
.default-form input[type="text"],
.default-form input[type="email"],
.default-form input[type="password"],
.default-form input[type="tel"],
.default-form input[type="url"],
.default-form select,
.default-form textarea{
	display:block;
	width:100%;
	line-height:24px;
	height: 50px;
	font-size:14px;
	border: 1px solid #f2f2f2;
	padding:8px 20px 8px;
	background-color: #f7f7f7;
	color:#333333;
	border-radius:0px;
	transition:all 500ms ease;
	-webkit-transition:all 500ms ease;
	-ms-transition:all 500ms ease;
	-o-transition:all 500ms ease;
}
.default-form select{
	cursor:pointer;
	-moz-appearance:none;
	-webkit-appearance:none;
	-ms-appearance:none;
	-o-appearance:none;
	background:#ffffff url(../images/icons/icon-select.png) right center no-repeat;
}
.default-form textarea{
	height: 200px;
	resize:none;
	margin-bottom:10px;
}
.default-form select option{
	text-indent:20px;
	color:#222222;	
}
.default-form input:focus,
.default-form select:focus,
.default-form textarea:focus{
	border-color: var(--text-secondary);	
}
.default-form input.error,
.default-form select.error,
.default-form textarea.error{
	border-color:#ff0000 !important;	
}
.default-form label.error{
	display:block;
	line-height:24px;
	padding:5px 0px 0px;
	margin:0px;
	text-transform:uppercase;
	font-size:13px;
	color:#ff0000;
	font-weight:400;	
}

/*** 

====================================================================
	Main Footer
====================================================================

***/

.main-footer{
	position:relative;
	color:#9b9b9b;
	/* Voile sombre bleu-nuit par-dessus l'image pour garantir la lisibilité du texte blanc */
	background-color:#08111e;
	background-image: linear-gradient(rgba(8,17,30,0.86), rgba(8,17,30,0.92)), url(../images/banner-acc.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
}
.main-footer a {
	color: #FFF!important;
}
.main-footer .footer-upper{
	position:relative;
	color: #999;
	padding-bottom: 30px;
}
.main-footer .footer-upper .column{
	position:relative;
	margin-bottom:40px;	
}
.footer-upper .column h3{
	position:relative;
	font-size: 20px;
	line-height:30px;
	margin-bottom:32px;
	color: var(--accent-primary);
	font-weight: 600;
}
.main-footer .about-widget{
	font-size:15px;
}
.main-footer .about-widget p {
	margin-bottom: 20px;
	color:#fff;
}
.main-footer .footer-upper a{
	transition:all 0.5s ease;
	-moz-transition:all 0.5s ease;
	-webkit-transition:all 0.5s ease;
	-ms-transition:all 0.5s ease;
	-o-transition:all 0.5s ease;
}
.main-footer .footer-upper a:hover{
	color: var(--accent-primary);	
}
.footer-upper .links-widget li{
	position:relative;
	margin-bottom: 16px;
}
.footer-upper .links-widget li a{
	position:relative;
	display:block;
	font-size:15px;
	padding-left: 20px;
	color: #fff;
	line-height:20px;
}
.footer-upper .links-widget li a:before {
	position: absolute;
	content: "\f121"; /* fa-code : symbole informatique </> en puce */
	font-family: 'FontAwesome';
	font-size: 12px;
	color: var(--text-primary);
	left: 0;
	top: 3px;
}
.footer-upper .links-widget li a:hover{
	color: var(--accent-primary);	
}
.main-footer .social-links a{
	position:relative;
	display:inline-block;
	font-size:16px;
	width:44px;
	height:44px;
	line-height:44px;
	text-align:center;
	margin: 0px 5px 0px 0px;
	color: #ffffff;
	background: #333;
	border-radius: 50%;
	transition:all 0.5s ease;
	-moz-transition:all 0.5s ease;
	-webkit-transition:all 0.5s ease;
	-ms-transition:all 0.5s ease;
	-o-transition:all 0.5s ease;
}
.main-footer .social-links a:hover{
	color: var(--accent-primary);
	background: var(--bg-primary);	
}
.main-footer .contact-info{
	font-size:16px;	
}
.main-footer .contact-info li{
	margin-bottom:10px;	
}

/*============ contact-column =================*/

.main-footer .contact-column {
  position:relative;
}
.main-footer .contact-column .contact-info {
  margin-top: 20px;
}
.main-footer .contact-column .contact-info li {
  position: relative;
  padding-left: 30px;
  font-size: 16px;
  color: #fff;
  line-height: 26px;
  margin-bottom: 10px;
  border-bottom: 1px solid #333;
  padding-bottom: 10px;
}
.main-footer .contact-column .contact-info li span {
  color: #fff;
  font-family: 'Calibri', Arial, sans-serif;
  font-weight: 700;
}
.main-footer .contact-column .contact-info li i {
  font-size: 18px;
  color: var(--text-primary);
  position: absolute;
  left: 0;
  top: 6px;
}

/*==================
	footer-bottom
==================*/

.footer-bottom{
	position:relative;
	padding: 20px 0px;
	line-height:22px;
	color:#b3b3b3;
	background: #191919;
	font-size:13px;
}
.footer-bottom .copyright-text {
    font-size: 16px;
    line-height: 26px;
    margin-top: 14px;
}

/*** 

====================================================================
	Sponsors Style Two
====================================================================

***/

.sponsors-style-two{
	position:relative;
	background: #fff;
	padding: 40px 0px 100px;
}
.sponsors-style-two .image-box{
	position:relative;
	display:flex;
	align-items:center;
	justify-content:center;
	background: #fff;
	text-align:center;
	border: 1px solid #f1f1f1;
	padding: 15px;
	aspect-ratio: 1 / 1;
	overflow:hidden;
}
.sponsors-style-two .image-box a{
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	height:100%;
	min-height:0;
}
.sponsors-style-two .image-box img{
	position:relative;
	display:inline-block;
	width:auto;
	height:auto;
	max-width:100%;
	max-height:100%;
	object-fit:contain;
	transition:all 300ms ease;
	-webkit-transition:all 300ms ease;
	-ms-transition:all 300ms ease;
	-o-transition:all 300ms ease;
}
.sponsors-style-two .image-box:hover img{
	opacity:1;	
}
.sponsors-style-two .owl-theme .owl-nav,
.sponsors-style-two .owl-theme .owl-dots{
	display:none;	
}

/*** 

====================================================================
	testimonial style five
====================================================================

***/

.feature-style-1 .content h4 {
    font-size: 20px;
    color: var(--text-primary);
    font-weight: 700;
    margin-bottom: 12px;
}
.feature-style-1 .company .content {
	margin-top: 15px;
}
.feature-style-1 .row-df {
	margin-top:20px;
}
.testimonial_container {
	padding-right:31px;
}
.feature-style-1  h3 {
	color: #232323;
	font-weight: 700;
}
.feature-style-1 .row-df h3 {
	margin-bottom: 20px;
}


/*Accordion Box*/

.accordion-box{
	position:relative;
}
.accordion-box .block{
	position:relative;
	margin-bottom: 24px;
}
.accordion-box .block:before{
	content:'';
	position:absolute;
	left:20px;
	top:32px;
	height:100%;
	border-right:1px dashed #d0d0d0;	
}
.accordion-box .block:last-child:before{
	display:none;	
}
.accordion-box .block .acc-btn{
	position:relative;
	font-size:16px;
	margin-bottom:0px;
	cursor:pointer;
	line-height:24px;
	font-family: 'Calibri', Arial, sans-serif;
	font-weight:700;
	padding:10px 20px 10px 70px;
	overflow:hidden;
	color:#222222;
	transition:all 500ms ease;
	-moz-transition:all 500ms ease;
	-webkit-transition:all 500ms ease;
	-ms-transition:all 500ms ease;
	-o-transition:all 500ms ease;
	z-index:1;
}
.accordion-box .block .acc-btn .icon-outer{
	position:absolute;
	display:block;
	left:0px;
	top:0px;
	width:42px;
	height:42px;
	font-weight:normal;
	text-align:center;
	color:#333333;
	background:#f0f0f0;
	border:1px solid #e5e5e5;
	border-radius:3px;
}
.accordion-box .block .acc-btn .icon-outer .icon{
	position:absolute;
	display:block;
	left:0px;
	top:50%;
	margin-top:-15px;
	width:100%;
	height:30px;
	line-height:30px;
	font-size:16px;
	transition:all 500ms ease;
	-moz-transition:all 500ms ease;
	-webkit-transition:all 500ms ease;
	-ms-transition:all 500ms ease;
	-o-transition:all 500ms ease;
}
.accordion-box .block .acc-btn.active .icon-outer{
	color: var(--accent-primary);
	background: var(--bg-primary);
}
.accordion-box .block .acc-btn.active .icon-outer .icon{
	-webkit-transform:rotate(90deg);
	-ms-transform:rotate(90deg);
	-o-transform:rotate(90deg);
	-moz-transform:rotate(90deg);
	transform:rotate(90deg);
}
.accordion-box .block .acc-content{
	position:relative;
	display:none;	
}
.accordion-box .block .acc-content.current{
	display:block;	
}
.accordion-box .block .content{
	position:relative;
	font-size:14px;
	color:#999;
	padding:0px 20px 0px 70px;	
}
.accordion-box.style-two .block .content{
	background:#fafafa;	
}
.accordion-box .block .content p{
	margin-bottom:15px;
	line-height:2em;	
}
.accordion-box .block .content p:last-child{
	margin-bottom:0px;	
}

/*** 

====================================================================
	Page Title Style
====================================================================

***/

.page-title{
	position:relative;
	padding:200px 0px!important;
	background-size:cover;
	background-position:center center;
	background-repeat:no-repeat;
	text-align:center;
}
.page-title:before{
	content:'';
	left:0px;
	top:0px;
	width:100%;
	height:100%;
	position:absolute;
	background-color:rgba(0,0,0,0.35);
}
.page-title .auto-container{
	position:relative;
	z-index:1;
}	
.page-title h1{
	position:relative;
	font-size:48px;
	font-weight:700;
	font-family: var(--font-hero);
	color: var(--accent-primary);
	line-height:1.6em;
	margin-bottom:10px;
}
.page-title .bread-crumb-outer{
	position:relative;
	display:inline-block;
	padding:0px 0px;
	font-family:'Calibri', Arial, sans-serif;
}
.page-title .bread-crumb-outer .bread-crumb li{
	position:relative;
	float:left;
	margin-right:24px;
	color: var(--accent-primary);
	line-height:24px;

	font-size:14px;
}
.page-title .bread-crumb-outer .bread-crumb li:last-child{
	margin-right:0px;
}
.page-title .bread-crumb-outer .bread-crumb li:after{
	content:'/';
	position:absolute;
	right:-16px;
	width:10px;
	line-height:24px;
	font-size:14px;
	color: var(--accent-primary);
}
.page-title .bread-crumb-outer .bread-crumb li:last-child:after{
	display:none;	
}
.page-title .bread-crumb-outer .bread-crumb li a{
	color: var(--accent-primary);
	font-weight:400;	
}
.page-title .bread-crumb-outer .bread-crumb li a:hover{
	color:#c7fde7;
}
.page-title .bread-crumb-outer .bread-crumb li.active{
	color:#c7fde7;
}


/*** 

====================================================================
	Contact Section
====================================================================

***/

.contact-section{
	position:relative;
}
.contact-section.contact2 {
	padding-top: 0;
}
.contact-section .form-column{
	margin-bottom:10px;	
}
.contact-section h2:before{
	content:'';
	position:absolute;
}
.contact-section h2:after{
	content:'';
	position:absolute;
}
.contact-section .text{
	font-size:14px;
	line-height:1.8em;
	margin-bottom:15px;
	margin-top:0px;
}
.contact-section .contact-info{
	position:relative;	
}
.contact-section .contact-info li{
	position:relative;
	display:block;
	padding:4px 0px 4px 50px;
	line-height:24px;
	font-size:14px;
	margin-bottom:15px;
	color:#888888;
	min-height:32px;
}
.contact-section .contact-info li:hover{
	color:#333333;
}
.contact-section .contact-info li .icon-box{
	position:absolute;
	left:0px;
	top:0;
	text-align:center;
	width:32px;
	height:32px;
	line-height:28px;
	border:2px solid #003965;
	background:none;
	font-size:12px;
	color: var(--text-secondary);
	border-radius:50%;
}
.contact-section .contact-info li:hover .icon-box{
	background: var(--bg-primary);
	color: var(--accent-primary);
}
.contact-section .default-form .form-group{
	margin-bottom:20px;	
}
.contact-section .default-form textarea{
	height: 190px;
}
.contact-section .default-form .theme-btn{
	margin-top:10px;
}

/*** 

====================================================================
	Sidebar Page
====================================================================

***/

.sidebar-page-container{
	position:relative;
}
.sidebar{
	position:relative;
}
.sidebar .sidebar-widget{
	position:relative;
	margin-bottom:50px;	
}
.sidebar .service-list{
	position:relative;
}
.sidebar .service-list li{
	position:relative;
	line-height:24px;
	margin-bottom: 5px;
}
.sidebar .service-list li:last-child{
	border-bottom:none;	
}
.sidebar .service-list li a{
	position:relative;
	display:block;
	color: #232323;
	font-size:14px;
	background: #f7f7f7;
	font-family: 'Calibri', Arial, sans-serif;
	font-weight:400;
	line-height: 30px;
	padding:10px 20px;
	transition:all 300ms ease;
	-webkit-transition:all 300ms ease;
	-ms-transition:all 300ms ease;
	-o-transition:all 300ms ease;
	-moz-transition:all 300ms ease;
}
.sidebar .service-list li a:before{
	font-family: 'FontAwesome';
	content: "\f105";
	position:absolute;
	right:20px;
	top:10px;
	display:block;
	line-height:26px;
	font-size:12px;
	font-weight:normal;
	text-align:center;
	z-index:5;
}
.sidebar .service-list li a:hover,
.sidebar .service-list li.current a{
	color: var(--text-secondary);
}
.sidebar .service-list{
	position:relative;
}

/*** 

====================================================================
	Services Details Section
====================================================================

***/

.service-details{
	position:relative;
}
.service-details h2{
	position:relative;
	font-size:18px;
	font-weight:700;
	color:#222222;
	padding-bottom:15px;
	margin-bottom:25px;
	font-family:'Calibri', Arial, sans-serif;
}
.service-details h2:before{
    content: '';
    position: absolute;
    left: 0px;
    bottom: 0px;
    width: 81px;
    border-bottom: 4px dotted #003965;
}
.service-details .big-image{
	position:relative;
}
.service-details .big-image img{
	display:block;
	width:100%;	
}
.service-details .row-df > div {
	display: flex;
	align-items: center;
}
.service-details .content .content{
	position:relative;
	line-height:1.9em;	
}
.service-details .content p{
	margin-bottom:25px;	
}
.service-details blockquote{
	margin-bottom:25px;
	padding:40px 20px 30px 40px;
	color: var(--text-secondary);
	background: #f7f7f7;
	font-style:italic;
	font-size:17px;
	border:none;
	border-left: 2px solid #003965;
	line-height:25px;
}
.service-details blockquote .txt{
	position:relative;
	padding:0px 50px;
}
.service-details blockquote .txt:before{
	content: "";
	position:absolute;
	left:0px;
	top:0px;
	font-style:normal;
	font-size:77px;
	color:#dddddd;
	line-height:1.1em;
}
.service-details .faqs{
	position:relative;
	padding-top:30px;	
	margin-bottom: 50px;
}
/*effect*/
.default-portfolio-item {
	position: relative;
}
/* Common style */
.default-portfolio-item figure {
	position: relative;
	float: left;
	overflow: hidden;
	margin: 10px 1%;
	height: auto;
	background: #fff;
	text-align: center;
	cursor: pointer;
}
.default-portfolio-item figure img {
	position: relative;
	display: block;
	min-height: 100%;
	max-width: 100%;
}

/*** 

====================================================================
	FAQ's style
====================================================================

***/

.faq-section {
	padding: 100px 0px;
}

/*** 

====================================================================
	Error Section
====================================================================

 ***/

.error-section{
	position: relative;
	text-align: center;
	padding: 150px 0px 110px;
}
.error-section h3{
	position: relative;
	color: #1c1c1c;
	font-size: 32px;
	line-height: 1.4em;
	font-weight: 700;
}
.error-section h3 span {
    font-size: 150px;
    line-height: 198px;
}
.error-section .text{
	position: relative;
	font-size: 14px;
	color: #777777;
	margin-top: 15px;
	line-height: 1.8em;
}
.error-section .text a{
	color: #3598db;
}
.error-section .search-website{
	position:relative;
	max-width:560px;
	margin:0 auto 40px;
	margin-top: 40px;
}
.error-section .search-website .form-group{
	position:relative;
	margin-bottom:0px;
	text-align:left;
}
.error-section .search-website .form-group input[type="text"],
.error-section .search-website .form-group input[type="search"],
.error-section .search-website .form-group textarea{
	position:relative;
	display:block;
	max-width:400px;
	width: 100%;
	line-height:26px;
	padding:10px 15px;
	background:#f4f4f4;
	border:1px solid #f4f4f4;
	height:48px;
	border-radius:3px;
	-moz-transition:all 0.5s ease;
	-webkit-transition:all 0.5s ease;
	-ms-transition:all 0.5s ease;
	-o-transition:all 0.5s ease;
	transition:all 0.5s ease;	
}
.error-section .search-website .form-group input[type="text"]:focus,
.error-section .search-website .form-group input[type="search"]:focus,
.error-section .search-website .form-group textarea:focus{
	border-color:#b09991;
}
.error-section .search-website .form-group button{
	position:absolute;
	right:0px;
	top:0px;
	display:block;
	width:150px;
	height:46px;
	text-align:center;
	margin:0px;
	padding:11px 30px;
	line-height:24px;
	font-size:14px;
	background: #1b1a1b;
	color: var(--accent-primary);
	font-weight:800;
	border-radius:2px;
}
.error-section .search-website .form-group button:hover,
.error-section .search-website .form-group input:focus + button{
	background: var(--bg-primary);
	color: var(--accent-primary);
}
.consultation {
    border-bottom: 1px solid #f4f4f4;
}

/*** 

====================================================================
  google map Section
====================================================================

***/
.home-google-map #contact-google-map {
  width: 100%;
  height: 450px;
}
.home-google-map2 #contact-google-map {
  width: 100%;
  height: 330px;
}
.home-google-map .gmnoprint {
    display: none;
}
.list-style-two {
	display: list-item;
	padding-left: 40px;
}
.list-style-two li {
	margin-bottom: 0;
	list-style: disc;
}

/*** 

====================================================================
   farmer Section
====================================================================

***/

.our_farmer {
  position: relative;
}
.our_farmer.section {
	padding-top: 0;
}
.our_farmer .item {
	max-width: 360px;
	margin: 0 auto;
	padding-bottom: 40px;
	height: 100%;
	display: flex;
	flex-direction: column;
}
.our_farmer .item .img_holder{
  -webkit-transition: .5s ease;
  transition: .5s ease;
  border: 2px solid #f7f7f7;
  position: relative;
  text-align: center;
  border-radius: var(--radius);   /* angles arrondis comme la photo du fondateur en page d'accueil */
  overflow: hidden;               /* clippe l'image sur les coins arrondis */
}
.our_farmer .item .img_holder img{
  max-width: 100%;
  height: auto;
  display: inline-block;
  border-radius: var(--radius);
}

.our_farmer .text {
  position: relative;
  background: #f7f7f7;
  padding: 20px 20px;
  text-align: center;
  margin-top: 0;            /* évite que la carte remonte et masque le bas de la photo */
  z-index: 1;
  -webkit-transition: .4s ease;
  transition: .4s ease;
	flex-grow: 1;
}
.our_farmer .text h4 {
  color: #333;
  font-size: 20px;
  font-weight: 700;
}
.our_farmer .text h5 {
  color: #003965;
  font-size: 14px;
  margin-top: 7px;
  margin-bottom: 10px;
}
/* Filter the 'background' value classes*/


.scroll-to-top,
.error-section .search-website .form-group button:hover,
.error-section .search-website .form-group input:focus + button,
.fancybox-next:hover span:before,
.fancybox-prev:hover span:before,
.fancybox-next:hover span:before,
.fancybox-prev:hover span:before,
.btn-style-one,
.btn-style-three,
.btn-style-four:hover,
.btn-style-five:hover,
.scroll-to-top:hover,
.main-footer .social-links a:hover,
.accordion-box .block .acc-btn.active .icon-outer,
.contact-section .contact-info li:hover .icon-box,
.post-filter li span:before,
.main-menu .navbar-header .navbar-toggle,
.feature-item .icon-box,
.main-header .header-top-one,
.fun-facts-section .column .inner,
.theme_bg_color
{
  background: var(--bg-primary);
}

/* Filter the 'color' value classes*/
a,
.btn-style-one:hover,
.btn-style-three:hover,
.btn-style-four:hover,
.btn-style-five,
.theme_color,
.main-header .header-top-one .top-links ul li a:hover,
.main-header .header-top-one .social-links li a:hover,
.main-menu .navigation > li:hover > a,
.main-menu .navigation > li.current > a,
.main-header.header-style-three .info-box .icon-box,
.contact-section .contact-info li .icon-box,
.sidebar .service-list li a:hover,
.sidebar .service-list li.current a,
.post-filter li:hover span, 
.post-filter li.active span,
.theme-color,
.default-service-block .icon-box,
.sticky-header .main-menu .navigation > li:hover > a, .sticky-header .main-menu .navigation > li.current > a,
.main-menu .navigation > li > ul > li:hover > a,
.default-overlay a,
.service-block2 .icon_box,
.sec-title h2 span,
.footer-upper .links-widget li a:before,
.main-footer .contact-column .contact-info li i,
.feature-style-1 .content h4,
.our_farmer .text h5,
.thm-color:before {
  color: var(--text-secondary);
}


.sticky-header .main-menu .navigation > li.current > a,
.sticky-header .main-menu .navigation > li:hover > a {
	color: #003965 !important;
}

/* Filter the 2px solid border value classes */

.sec-title h2:before,
.sec-title h2:after,
.btn-style-one,
.btn-style-three,
.btn-style-five,
.main-menu .navigation > li > ul,
.service-block2 .inner-box .image-box .overlay-box,
.contact-section .contact-info li .icon-box,
.contact-section h2:before,
.contact-section h2:after,
.main-menu .navbar-header .navbar-toggle,
.default-form input:focus, 
.default-form select:focus, 
.default-form textarea:focus,
.feature-item .icon-box,
.service-details blockquote,
.service-details h3:before,
.service-details h3:after,
.border-color {
  border-color: var(--text-primary);
}
.service-details__item .list-style-two {
	margin-bottom: 15px;
}
.service-details__item h4 {
	margin-bottom: 15px;
}
.service-details__item p {
    text-align: justify;
}


@media only screen and (max-width: 1340px){
	.page-wrapper{
		overflow:hidden;	
	}
}

@media only screen and (min-width: 1200px){
	.main-footer .footer-widget.links-widget {
	    margin-left: 50px;
	}
}

@media only screen and (max-width: 1140px){
	.main-header{
		position:relative;
		margin:0px !important;
	}
	.main-header .nav-outer{
		padding-right: 0;
	}
	.main-header .main-box .logo-box{
		padding: 0px;
	}
	.main-header .main-box .logo-box .logo a {
		top:0;
	}
	.main-menu .navigation > li{
		margin-left:0px;
		margin-right:30px;	
		padding: 0;
	}
	.main-menu .navigation > li:last-child {
		margin-right: 0;
	}
	.main-menu .navigation > li > a {
		padding: 28px 0;
	}
    .page-title{
        padding:80px 0px;
    }
	.sidebar-page-container .sidebar,
	.sidebar.default-sidebar{
		margin-left:0px;	
	}
	.sidebar-page-container .content-side,
	.sidebar-page-container .content-side.default-content-side{
		padding-right:15px;	
	}
	.main-footer .posts-widget{
		padding-right:0px;	
	}
	.main-footer .subscribe-widget{
		padding-left:0px;	
	}
	.accordion-box .block .acc-btn,
	.accordion-box .block .content{
		padding-right:0px;	
	}
	.with-left-sidebar .content-side{
		padding-left:15px;	
	}
	.with-left-sidebar .sidebar{
		margin-right:0px;
	}
}

@media only screen and (min-width: 768px){
	.main-menu .navigation > li > ul{
		display:block !important;
		visibility:hidden;
		opacity:0;
	}
}

@media only screen and (max-width: 1199px){
	.feature-style-1 .company {
		margin-top: 30px;
	}
}

@media only screen and (max-width: 1023px){
	.main-menu .navigation > li{
		margin-right:20px;	
	}
	.sticky-header{
		display:none;	
	}
	.fun-facts-section.style-three .row {
		display: block;
	}
}
@media only screen and (max-width: 991px){
	.consultation .img-box {
		margin-bottom: 30px;
	}
	.our_farmer .item {
		padding-bottom: 40px;
	}
	.about-us-2__title {
		margin-bottom: 30px;
	}
}
@media only screen and (max-width: 767px){
	.section {
		padding: 35px 0;
	}
	.sec-title {
		margin-bottom: 30px;
	}
	.services-style-one.section {
		padding-bottom: 20px;
	}
	.fun-facts-section.style-three.section, .main-footer .footer-upper.section {
		padding-bottom: 10px;
	}
	.social-links.text-right {
		text-align: center;
	}
	.p-40 {
		padding: 25px 0;
	}
	.revers-item {
		order: -1;
	}
	.main-slider .item  {
		padding: 100px 0;
	}
	.main-header .main-box .outer-container {
		position: static;
	}
	.main-header .nav-outer{
		padding-right:0px;
		position: static;
	}
	.main-header .logo-outer {
		position:relative;
		left:0px;
		top:0px;
		right:0px;
		bottom:0px;
		width:100%;
		margin:0px;
		padding:20px 0px;
	}
	.main-header .header-top-one .top-right,
	.main-header .header-top-one .top-left{
		width:100%;	
	}
	.main-menu .navigation > li {
		padding: 0;
	}
	.main-header .header-top-one .top-right ul,
	.main-header .header-top-one .top-left ul{
		text-align:center;
		width:100%;
		margin:5px 0px;
		padding:0px;	
	}
	.main-header .header-top-one .top-right ul li,
	.main-header .header-top-one .top-left ul li{
		margin:0px 10px;
		padding:0px;
		border:none;
		display:inline-block;
		float:none;	
	}
	.main-header .main-menu{
		padding-top:0px;
		width:100%;
		margin:0px;
		position: static;
	}
	.main-menu .collapse {
	   max-height: 310px;
	   overflow:auto;
	   position: absolute;
	   left: 0;
	   float:none;
	   width:100%;
	   top: 100%;
	   padding:0;
	   border:none;
	   margin:0px;
	   -ms-border-radius:3px;
	   -moz-border-radius:3px;
	   -webkit-border-radius:3px;
	   -o-border-radius:3px;
	   border-radius:3px;
	  }
	.main-menu .collapse.in,
	.main-menu .collapsing{
		padding:0px 0px 0px;
		border:none;
		overflow:auto;
		position: absolute;
		top: 100%;
		left: 0;
		margin:0px 0px 15px;
		-ms-border-radius:3px;
		-moz-border-radius:3px;
		-webkit-border-radius:3px;
		-o-border-radius:3px;
		border-radius:3px;	
	}
	.main-menu .navbar-header{
		position:relative;
		float:none;
		display:block;
		text-align:right;
		width:100%;
		padding:25px 0px;
		right:0px;
		z-index:12;
	}
	.main-menu .navbar-toggle{
		display:inline-block;
		z-index:7;
		border:1px solid #48c7ec;
		float:none;
		margin:0px 0px 0px 0px;
		border-radius:0px;
		background:#48c7ec;
	}
	.header-style-two .main-menu .navbar-header .navbar-toggle{
		border:1px solid var(--input-border);
		margin-right:15px;	
	}
	.main-menu .navbar-header .navbar-toggle .icon-bar{
		background: var(--bg-secondary);	
	}
	.main-menu .navbar-collapse > .navigation{
		float:none !important;
		margin:0px !important;
		width:100% !important;
		background: var(--bg-primary);
		border:1px solid var(--input-border);
		border-top:none;
	}
	.main-menu .navbar-collapse > .navigation > li{
		margin:0px !important;
		float:none !important;
		width:100%;
	}
	.main-menu .navigation > li > a,
	.main-menu .navigation > li > ul:before{
		border:none;	
	}
	.main-menu .navbar-collapse > .navigation > li > a{
		padding:10px 10px !important;
		border:none !important;
	}
	.main-menu .navigation li.dropdown > a:after,
	.main-menu .navigation > li.dropdown > a:before,
	.main-menu .navigation > li > ul > li > a::before{
		color:#ffffff !important;
		right:15px;
		font-size:16px;
		display:none !important;
	}
	.main-menu .navbar-collapse > .navigation > li > ul{
		position:relative;
		border:none;
		float:none;
		visibility:visible;
		opacity:1;
		display:none;
		margin:0px;
		left:auto !important;
		right:auto !important;
		top:auto !important;
		width:100%;
		background: var(--bg-primary);
		box-shadow: none;
		-webkit-border-radius:0px;
		-ms-border-radius:0px;
		-o-border-radius:0px;
		-moz-border-radius:0px;
		border-radius:0px;
		transition:none !important;
		-webkit-transition:none !important;
		-ms-transition:none !important;
		-o-transition:none !important;
		-moz-transition:none !important;
	}
	.main-menu .navbar-collapse > .navigation > li,
	.main-menu .navbar-collapse > .navigation > li > ul > li{
		border-top:1px solid rgba(255,255,255,1) !important;
		opacity:1 !important;
		top:0px !important;
		left:0px !important;
		visibility:visible !important;
	}
	
	.main-menu .navbar-collapse > .navigation > li:first-child{
		border:none;	
	}
	
	.main-menu .navbar-collapse > .navigation > li > a,
	.main-menu .navbar-collapse > .navigation > li > ul > li > a{
		padding:10px 10px !important;
		line-height:22px;
		color: var(--accent-primary);
		background: var(--bg-primary);
		text-align:left;
		border: 0px;
	}
	
	.main-menu .navbar-collapse > .navigation > li > a:hover,
	.main-menu .navbar-collapse > .navigation > li > a:active,
	.main-menu .navbar-collapse > .navigation > li > a:focus{
		background:#f7b432;
	}
	
	.main-menu .navbar-collapse > .navigation > li:hover > a,
	.main-menu .navbar-collapse > .navigation > li > ul > li:hover > a,
	.main-menu .navbar-collapse > .navigation > li.current > a {
		background: var(--bg-primary);
		color:#ffffff !important;
	}
	.main-menu .navbar-collapse > .navigation li.dropdown .dropdown-btn{
		display:block;
	}
	.main-menu .navbar-collapse > .navigation li.dropdown:after,
	.main-menu .navigation > li > ul:before{
		display:none !important;	
	}
    .dropdown span {
        color: #ffffff;
    }
	.main-slider,
	.page-title{
		margin-top:0px !important;	
	}
	.main-slider h1, .main-slider h2 {
		font-size: 35px;
	}
	.sec-title h2,
	.default-title h2{
		font-size:25px;	
	}
	.page-title h1{
		font-size:25px;	
	}
	.feature-style-1 .content h3 {
		font-size: 20px;
	}
	.service-details blockquote .txt::before{
		display:none;
	}	
	.service-details blockquote .txt{
		padding:0px;	
	}
	.service-details blockquote{
		padding:30px 20px;	
	}
	.services-style-one {
		text-align: center;
	}
    .main-banner__btn a:last-child {
        margin-bottom: 20px;
    }
    .main-footer .footer-upper .column{
        margin-bottom:20px;
    }
	.footer-bottom {
		text-align: center;
	}
}

@media only screen and (max-width: 599px){
	.text-center .link a {
		margin-bottom: 20px;
	}
	.post-filter {
		margin-bottom: 20px;
	}
	.contact-section {
		padding-top: 40px;
	}
}
@media only screen and (max-width: 500px){
	.default-portfolio-item {
		width: 100%!important;
	}
}
/*** 

====================================================================
	Testimonials Section
====================================================================

 ***/
 .testimonial-carousel {
	display: block;
 }
 .testimonial {
	position: relative;
	padding: 100px 0px;
  }
  
  .testimonial-item {
	margin-bottom: 50px;
  }
  .testimonial .testimonial-item .content {
	padding-left: 60px;
	padding-top: 37px;
	padding-bottom: 30px;
	padding-right: 15px;
	border: 1px solid #efefef;
	position: relative;
	margin-left: 20px;
  }
  
  .testimonial .testimonial-item .content span {
	position: absolute;
	width: 50px;
	height: 45px;
	line-height: 45px;
	text-align: center;
	top: 40px;
	left: -18px;
	background: var(--bg-primary);
	color: #fff;
  }
  .testimonial .testimonial-item .content span:after {
	  position: absolute;
	  content: '';
	  border-left: 9px solid transparent;
	  border-top: 9px solid transparent;
	  bottom: 100%;
	  left: 0;
  }
  .testimonial .testimonial-item .rating {
	  color: #f8b703;
  }
  .testimonial .testimonial-item .author {
	position: relative;
	margin-left: 20px;
	margin-top: 20px;
	text-align: center;
  }
  .testimonial .testimonial-item .author li {
	vertical-align: middle;
  }
  .testimonial .testimonial-item .author img {
	height: 40px;
	width: 40px;
	border-radius: 50%;
	margin: auto;
  }
  .testimonial .testimonial-item .author h5 {
	font-size: 16px;
  }
  .testimonial .testimonial-item .author p {
	color: #000;
  }
 
  .testimonial .owl-prev {
	position: absolute;
    left: -5px;
    top: 50%;
    background: var(--bg-primary);
    transform: translate(-100%, -50%);
    width: 40px;
    height: 40px;
    color: #fff;
    font-size: 25px;
    line-height: 40px;
    text-align: center;
  }
  .testimonial .owl-next {
	position: absolute;
    right: -5px;
    top: 50%;
    background: var(--bg-primary);
    transform: translate(100%, -50%);
    width: 40px;
    height: 40px;
    color: #fff;
    font-size: 25px;
    line-height: 40px;
    text-align: center;
  }
  .testimonial h2 {
	text-align: center;
  }
  .testimonial h2::before {
	left: 50%;
    transform: translateX(-50%);
  }
  .testimonial .link {
	text-align: center;
  }
  .owl-stage-outer {
    transition: height 0.2s ease;
  }
  /* ---- Témoignages : cadres de hauteur égale ----
     Le carrousel custom (.vcar) enveloppe chaque témoignage dans un
     .vcar-item ; .vcar-track applique déjà align-items:stretch, donc les
     items ont la même hauteur. On propage cette hauteur jusqu'au cadre
     bordé (.content) pour qu'il soit identique quel que soit le texte. */
  .testimonial .vcar-item {
    display: flex;
  }
  .testimonial .testimonial-item {
    display: flex;
    flex-direction: column;
    width: 100%;
  }
  .testimonial .testimonial-item .content {
    flex: 1 1 auto;
  }
@media only screen and (max-width: 1024px) {
  .testimonial .owl-nav {
	display: none;
  }
}

/* ---- Réalisations : colonnes de hauteur égale ---- */
.feature-style-1 .row.clearfix {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}
/* Neutralise les pseudo-éléments clearfix qui deviennent des flex items parasites */
.feature-style-1 .row.clearfix::before,
.feature-style-1 .row.clearfix::after {
    content: none;
    display: none;
}
.feature-style-1 .row.clearfix > [class*="col-"] {
    display: flex;
    flex-direction: column;
}
.feature-style-1 .service-block2 {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding-bottom: 0;
    height: auto;
}
.feature-style-1 .service-block2 .inner-box {
    flex: 1;
}

/* ---- Réalisations : barre de filtres (JS pur) ---- */
.realisations-filtres {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 35px;
}
.filtre-btn {
    font-family: inherit;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--brand);
    background: var(--brand-soft);
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 9px 22px;
    cursor: pointer;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.filtre-btn:hover {
    border-color: var(--brand);
}
.filtre-btn.is-active {
    background: var(--brand);
    color: #fff;
}
.filtre-btn:focus-visible {
    outline: 3px solid var(--cta);
    outline-offset: 2px;
}
/* Le row en flex force display:flex sur les colonnes : on neutralise
   explicitement l'attribut [hidden] pour masquer les cartes filtrées. */
.realisation-item[hidden] {
    display: none !important;
}
/* Maillage interne : lien réalisation → prestation associée */
.realisation-lien {
    margin-top: 15px;
    margin-bottom: 0;
    font-weight: 600;
}
.realisation-lien a {
    color: var(--cta);
    transition: color .2s ease;
}
.realisation-lien a:hover,
.realisation-lien a:focus-visible {
    color: var(--cta-hover);
    text-decoration: underline;
}

/* ---- Sticky header : logo taille et centrage ---- */
.sticky-header .auto-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 5px;
    padding-bottom: 5px;
}
.sticky-header .logo {
    float: none;
    display: flex;
    align-items: center;
    flex-shrink: 0;
}
/* Annule le width:70px hérité de .main-header.fixed-header .logo a */
.sticky-header .logo a {
    width: auto;
    padding: 0;
    display: block;
}
.sticky-header .logo img {
    height: 70px;
    width: auto !important;
    max-width: none !important;
    display: block;
    object-fit: contain;
}
.sticky-header .right-col {
    float: none;
    display: flex;
    align-items: center;
}

/* ============================================================
   DESIGN SYSTEM 2026 — Fondations Vanilla (post-Bootstrap)
   Chargée en dernier : prime sur le legacy par ordre source.
   But : (1) réimplémenter la grille Bootstrap 3 afin de pouvoir
   retirer bootstrap.css ; (2) fournir les composants CRO.
   ============================================================ */

/* --- Box model : border-box global.
   Bootstrap l'appliquait globalement ; le legacy a été écrit sous
   border-box, on le conserve donc pour éviter tout décalage. --- */
*, *::before, *::after { box-sizing: border-box; }
/* Sécurité : border-box GARANTI sur les éléments de grille (spécificité +
   !important) au cas où une autre règle/feuille le réinitialiserait.
   Sans ça, largeur% + padding 30px déborde et la 4e colonne passe à la ligne. */
.auto-container, .container, .row,
[class*="col-xs-"], [class*="col-sm-"], [class*="col-md-"], [class*="col-lg-"] {
    box-sizing: border-box !important;
}

/* --- Accessibilité : focus clavier visible.
   Le reset historique « * { outline:none } » supprimait l'indicateur
   de focus (échec WCAG 2.4.7) ; on le restaure via :focus-visible
   pour ne pas gêner la souris. --- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid var(--cta);
    outline-offset: 2px;
    border-radius: 3px;
}

/* --- Médias fluides (évite les débordements) --- */
img { max-width: 100%; height: auto; }
::selection { background: var(--cta); color: #fff; }

/* ---------- Typographie fluide (clamp) ----------
   Tailles de base ; les sélecteurs legacy plus spécifiques
   (.sec-title h2, .main-slider h1…) gardent la priorité. */
h1 { font-size: var(--fs-h1); line-height: 1.15; color: var(--text-heading); font-weight: 700; letter-spacing: -.01em; }
h2 { font-size: var(--fs-h2); line-height: 1.2; color: var(--text-heading); font-weight: 700; }
h3 { font-size: var(--fs-h3); line-height: 1.3; color: var(--text-heading); font-weight: 600; }
.lead { font-size: var(--fs-lead); color: var(--text-body); line-height: 1.7; }
.eyebrow {
    display: inline-block;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .8rem;
    color: var(--cta);
    margin-bottom: .6rem;
}

/* ============================================================
   GRILLE VANILLA — équivalent Bootstrap 3 (float + gouttière 30px)
   Breakpoints : xs 0+ · sm ≥768 · md ≥992 · lg ≥1200
   ============================================================ */
.container {
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    padding-left: 15px;
    padding-right: 15px;
}
.row { margin-left: -15px; margin-right: -15px; }
.row::before, .row::after,
.clearfix::before, .clearfix::after { content: " "; display: table; }
.row::after, .clearfix::after { clear: both; }

[class*="col-xs-"],
[class*="col-sm-"],
[class*="col-md-"],
[class*="col-lg-"] {
    position: relative;
    min-height: 1px;
    min-width: 0;            /* évite le débordement des images dans les rangées flex (.row-flex) */
    padding-left: 15px;
    padding-right: 15px;
}

/* xs — appliqué à toutes les largeurs */
.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,
.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12 { float: left; }
.col-xs-12 { width: 100%; }
.col-xs-11 { width: 91.66666667%; }
.col-xs-10 { width: 83.33333333%; }
.col-xs-9  { width: 75%; }
.col-xs-8  { width: 66.66666667%; }
.col-xs-7  { width: 58.33333333%; }
.col-xs-6  { width: 50%; }
.col-xs-5  { width: 41.66666667%; }
.col-xs-4  { width: 33.33333333%; }
.col-xs-3  { width: 25%; }
.col-xs-2  { width: 16.66666667%; }
.col-xs-1  { width: 8.33333333%; }

@media (min-width: 768px) {
    .col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,
    .col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12 { float: left; }
    .col-sm-12 { width: 100%; }
    .col-sm-11 { width: 91.66666667%; }
    .col-sm-10 { width: 83.33333333%; }
    .col-sm-9  { width: 75%; }
    .col-sm-8  { width: 66.66666667%; }
    .col-sm-7  { width: 58.33333333%; }
    .col-sm-6  { width: 50%; }
    .col-sm-5  { width: 41.66666667%; }
    .col-sm-4  { width: 33.33333333%; }
    .col-sm-3  { width: 25%; }
    .col-sm-2  { width: 16.66666667%; }
    .col-sm-1  { width: 8.33333333%; }
}

@media (min-width: 992px) {
    .col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,
    .col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12 { float: left; }
    .col-md-12 { width: 100%; }
    .col-md-11 { width: 91.66666667%; }
    .col-md-10 { width: 83.33333333%; }
    .col-md-9  { width: 75%; }
    .col-md-8  { width: 66.66666667%; }
    .col-md-7  { width: 58.33333333%; }
    .col-md-6  { width: 50%; }
    .col-md-5  { width: 41.66666667%; }
    .col-md-4  { width: 33.33333333%; }
    .col-md-3  { width: 25%; }
    .col-md-2  { width: 16.66666667%; }
    .col-md-1  { width: 8.33333333%; }
}

@media (min-width: 1200px) {
    .col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,
    .col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12 { float: left; }
    .col-lg-12 { width: 100%; }
    .col-lg-11 { width: 91.66666667%; }
    .col-lg-10 { width: 83.33333333%; }
    .col-lg-9  { width: 75%; }
    .col-lg-8  { width: 66.66666667%; }
    .col-lg-7  { width: 58.33333333%; }
    .col-lg-6  { width: 50%; }
    .col-lg-5  { width: 41.66666667%; }
    .col-lg-4  { width: 33.33333333%; }
    .col-lg-3  { width: 25%; }
    .col-lg-2  { width: 16.66666667%; }
    .col-lg-1  { width: 8.33333333%; }
}

/* Utilitaires Bootstrap réimplémentés (utilisés dans le markup) */
.pull-left  { float: left !important; }
.pull-right { float: right !important; }
.text-center { text-align: center !important; }
.text-right  { text-align: right !important; }
.list-inline { padding-left: 0; margin-left: -5px; list-style: none; }
.list-inline > li { display: inline-block; padding-left: 5px; padding-right: 5px; }

/* IMPORTANT : dans une rangée FLEX, les pseudo-éléments de clearfix
   (.row::before/::after) deviennent des « items flex fantômes » qui
   occupent de la place et font déborder/wrapper les colonnes
   (ex. la 4e carte des prestations passe à la ligne). On les neutralise
   pour toutes les rangées flex connues. Le legacy ne le faisait que pour
   .feature-style-1 ; on étend à .row-flex, .row-df et fun-facts. */
.row-flex::before, .row-flex::after,
.row-df::before, .row-df::after,
.fun-facts-section .row::before, .fun-facts-section .row::after {
    content: none;
    display: none;
}

/* ============================================================
   COMPOSANTS UI — CRO
   ============================================================ */

/* --- Carte générique --- */
.card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    padding: var(--space-4);
    transition: transform var(--transition), box-shadow var(--transition);
}
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }

/* --- Bouton CTA « haute conversion » --- */
.btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55em;
    background: var(--cta);
    color: var(--cta-text) !important;
    font-weight: 700;
    font-size: 1.02rem;
    line-height: 1;
    padding: 16px 32px;
    border: 2px solid var(--cta);
    border-radius: var(--radius-pill);
    box-shadow: 0 6px 18px rgba(244, 118, 30, .35);
    transition: background var(--transition), transform var(--transition-fast), box-shadow var(--transition);
    cursor: pointer;
    text-align: center;
}
.btn-cta:hover,
.btn-cta:focus {
    background: var(--cta-hover);
    border-color: var(--cta-hover);
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 10px 26px rgba(244, 118, 30, .45);
}
.btn-cta:focus-visible { outline: 3px solid var(--brand); outline-offset: 3px; }
.btn-cta--ghost {
    background: transparent;
    color: var(--cta) !important;
    box-shadow: none;
}
.btn-cta--ghost:hover { background: var(--cta); color: #fff !important; }

/* --- Grille d'icônes (remplace les listes à puces) --- */
.icon-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: var(--space-3);
    list-style: none;
    padding: 0;
    margin: 0;
}
.icon-grid li {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: 1rem 1.1rem;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    line-height: 1.55;
}
.icon-grid li::before {
    content: "\f00c";              /* check FontAwesome */
    font-family: "FontAwesome";
    color: var(--cta);
    flex-shrink: 0;
    margin-top: .15rem;
}

/* --- Piliers « Pourquoi HKSI » --- */
.why-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: var(--space-3);
}
.why-pillar {
    text-align: center;
    padding: var(--space-4) var(--space-3);
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    transition: transform var(--transition), box-shadow var(--transition);
}
.why-pillar:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.why-pillar .why-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 1rem;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--brand-soft);
    color: var(--brand);
    font-size: 1.6rem;
}
.why-pillar h3 { font-size: 1.15rem; margin-bottom: .4rem; }
.why-pillar p { color: var(--text-muted); font-size: .95rem; line-height: 1.6; }

/* --- Bloc Lead Magnet (audit/diagnostic offert) --- */
.lead-magnet {
    background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
    color: var(--text-on-dark);
    border-radius: var(--radius-lg);
    padding: clamp(2rem, 1rem + 4vw, 3.5rem);
    text-align: center;
    box-shadow: var(--shadow);
    margin: var(--space-4) 0;          /* respiration autour de l'encart mid-page */
}
.lead-magnet h2,
.lead-magnet h3 { color: #fff; }
.lead-magnet p {
    color: var(--text-on-dark);
    max-width: 640px;
    margin: 0 auto 1.5rem;
    font-size: var(--fs-lead);
}

/* --- Réalisations types : cas concrets par service (tangibilisation + maillage) --- */
.realisations-types { margin: var(--space-4) 0; }
.realisations-types__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--gutter);
    margin-top: var(--space-2);
}
.rt-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.75rem;
    box-shadow: var(--shadow-sm);
    transition: transform var(--transition), box-shadow var(--transition);
}
.rt-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.rt-card__icon {
    width: 56px; height: 56px;
    display: grid; place-items: center;
    border-radius: 50%;
    background: var(--brand-soft);
    color: var(--brand);
    font-size: 1.5rem;
    margin-bottom: 1rem;
}
.rt-card h4 { color: var(--text-heading); font-size: 1.15rem; margin-bottom: .6rem; line-height: 1.4; }
.rt-card p { margin: 0 0 .5rem; font-size: .95rem; line-height: 1.6; }
.rt-card .rt-result { color: var(--brand); font-weight: 600; }
.realisations-types__link { margin-top: var(--space-2); }
@media (prefers-reduced-motion: reduce) { .rt-card:hover { transform: none; } }

/* --- FAQ accessible via <details> (cible les Featured Snippets) --- */
.faq { max-width: 820px; margin: 0 auto; display: grid; gap: 1rem; }
.faq details {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    overflow: hidden;
    transition: box-shadow var(--transition);
}
.faq details[open] { box-shadow: var(--shadow-sm); }
.faq summary {
    position: relative;
    cursor: pointer;
    list-style: none;
    padding: 1.1rem 3rem 1.1rem 1.25rem;
    font-weight: 600;
    font-size: 1.05rem;
    color: var(--text-heading);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
    content: "\f067";              /* + FontAwesome */
    font-family: "FontAwesome";
    position: absolute;
    right: 1.25rem;
    top: 1.2rem;
    color: var(--cta);
    font-size: .9rem;
}
.faq details[open] summary::after { content: "\f068"; }  /* − */
.faq summary:focus-visible { outline: 3px solid var(--cta); outline-offset: -3px; }
.faq .faq-body { padding: 0 1.25rem 1.25rem; color: var(--text-body); line-height: 1.7; }

/* --- Aides de section (rythme / fonds) --- */
.section--light { background: var(--bg-light); }
.section--spacious { padding-top: var(--space-section); padding-bottom: var(--space-section); }

/* --- Respect des préférences de mouvement réduit (WCAG 2.3.3) --- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
        scroll-behavior: auto !important;
    }
    .card:hover, .why-pillar:hover { transform: none; }
}

/* ============================================================
   ÉTAPE 1b — Découplage frameworks : règles reprenant ce que
   fournissaient Bootstrap / owl.carousel, désormais retirés.
   ============================================================ */

/* --- Menu : remplace le mécanisme .collapse de Bootstrap ---
   Desktop (≥768) : menu toujours visible, burger masqué.
   Mobile (<768)  : menu masqué, ouvert via .is-open (ajouté en JS). */
@media (min-width: 768px) {
    .main-menu .navbar-toggle { display: none; }
    .main-menu .navbar-collapse { display: block !important; }
}
@media (max-width: 767px) {
    .main-menu .navbar-collapse { display: none; }
    .main-menu .navbar-collapse.is-open { display: block; }
}

/* --- Bouton « retour en haut » : visibilité pilotée en JS --- */
.scroll-to-top {
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s ease, visibility .3s ease;
}
.scroll-to-top.is-active {
    opacity: 1;
    visibility: visible;
}

/* --- Carrousel Vanilla (remplace owl.carousel) --- */
.vcar { position: relative; }
.vcar-viewport { overflow: hidden; }
.vcar-track {
    display: flex;
    align-items: stretch;
    transition: transform .5s ease;
    will-change: transform;
}
.vcar-item {
    flex: 0 0 100%;
    max-width: 100%;
    padding: 0 15px;
}
.vcar-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border);
    border-radius: 50%;
    background: #fff;
    color: var(--brand);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
    box-shadow: var(--shadow-sm);
    transition: background var(--transition), color var(--transition), border-color var(--transition);
}
.vcar-btn:hover,
.vcar-btn:focus-visible {
    background: var(--cta);
    color: #fff;
    border-color: var(--cta);
}
.vcar-prev { left: -10px; }
.vcar-next { right: -10px; }
@media (max-width: 600px) {
    .vcar-btn { display: none; }      /* en mobile : balayage tactile */
}

/* --- Bouton en cours d'envoi (formulaire) --- */
button.is-loading,
.theme-btn.is-loading {
    position: relative;
    pointer-events: none;
    opacity: .85;
}
button.is-loading::after,
.theme-btn.is-loading::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 16px;
    width: 16px;
    height: 16px;
    margin-top: -8px;
    border: 2px solid rgba(255, 255, 255, .5);
    border-top-color: #fff;
    border-radius: 50%;
    animation: hksi-spin .6s linear infinite;
}
@keyframes hksi-spin { to { transform: rotate(360deg); } }

/* --- Retour visuel du formulaire (succès / erreur) --- */
.form-feedback {
    margin-top: 18px;
    padding: 14px 18px;
    border-radius: var(--radius-sm);
    font-weight: 600;
    line-height: 1.5;
}
.form-feedback.is-success {
    background: #e8f6ec;
    color: #1e6b32;
    border: 1px solid #b7e0c2;
}
.form-feedback.is-error {
    background: #fdecea;
    color: #b0271c;
    border: 1px solid #f5c2bd;
}

/* --- Encart « interlocuteur unique » (accueil) --- */
.interlocuteur-box { margin-top: var(--space-4); }
.interlocuteur-box .img-box img {
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    display: block;
    width: 100%;
    max-width: 220px;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center top;
}
.interlocuteur-box .content { padding-top: 14px; }
.interlocuteur-box .content h3 { margin-bottom: .6rem; }
@media (min-width: 992px) {
    .interlocuteur-box .content { padding-top: 0; padding-left: 18px; }
}