/*fonts*/

@font-face {
  font-family: 'FiraSans-Regular';
  src:  local('FiraSans-Regular'),
        url('../fonts/fira/FiraSans-Regular.woff2') format('woff2'),
				url('../fonts/fira/FiraSans-Regular.woff') format('woff');
  font-display: swap;
  unicode-range: U+0000-007F,U+0080-00FF,U+0153,U+20AC;
}

@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

/*colors*/
.hover-white:hover,
.white{color: white}
.bg-hover-white:hover,
.bg-white{background: white}
.hover-black:hover,
.black{color: black}
.bg-hover-black:hover,
.bg-black{background: black}

:root {
  --bluebold:  #3C4E79;
  --gold: #D6A85F;
  --beige: #F8F4EB;
  --blue: #F0F3FA;
  --bluelite: #6FA8DB;
}
.m-auto{
  margin: auto;
  display: block;
}
.bluelite {color: var(--bluelite)}
.bluebold {color: var(--bluebold)}
.gold {color: var(--gold)}
.beige {color: var(--beige)}
.bg-bluebold {background: var(--bluebold)}
.bg-gold {background: var(--gold)}
.bg-blue {background: var(--blue)}
.bg-bluelite{
background-color: #70A8DC;

}
/*components*/
.uppercase{text-transform: uppercase}
.main-title{
  font-family: "Acumin Pro", sans-serif;
  font-size: 64px;
  font-weight: 700;
  line-height: normal;
}
.title-page{
  /* font-family: "Superior Title";       */
  font-family: "Montserrat", sans-serif;
  font-size: 54px;
  font-weight: 500;
  line-height: 56px;
  margin-bottom: 30px;
}
.big-title{
  /* font-family: "Superior Title"; */
  font-family: "Montserrat", sans-serif;
  font-size: 40px;
  font-weight: 600;
  line-height: normal;
}
.maintenance-title{
  /* font-family: "Superior Title"; */
  font-family: "superior-title", serif;
  font-size: 28px;
  font-weight: 700;
  line-height: normal;
}
.medium-title{
  font-size: 32px;
  /* font-family: "Superior Title"; */
  font-family: "Montserrat", sans-serif;
  line-height: normal;
}
.medium-title-2{}
.text-20{
  font-family: "Acumin Pro", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: normal;
}
.title-24{
  font-family: "Montserrat", sans-serif;
  font-size: 24px;
  font-weight: 500;
  line-height: normal;
}

.bold,
.text b{
  font-weight: 700;

}
.title-24 strong{
  font-weight: 700;
}
.text-16{
  font-family: "Montserrat", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: normal;
}
.text-14 {
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: normal;
}
.medium-mini-title{
  font-family: "Montserrat", sans-serif;
  font-size: 20px;    
  font-weight: 500;
  line-height: normal;
  letter-spacing: 1.6px;
  text-transform: uppercase;
}
.title-20-bold{
  font-family: "Montserrat", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: normal;
}
.mini-title{
  font-family: "Montserrat", sans-serif;
  font-size: 16px;    
  font-weight: 400;
  line-height: normal;
  letter-spacing: 1.6px;
  text-transform: uppercase;
}
.text {
  font-family: "Montserrat", sans-serif;  
  font-size: 18px;
  font-style: normal;
  font-weight: 400;
  line-height: 24px;
  /* 133.333% */
}
.text sup{
  font-size: 12px;
  vertical-align: super;
}

.text strong{font-weight: 700}
.cta-simple {
  font-family: "Montserrat", sans-serif;  
  font-size: 18px;
  text-decoration: underline;
  font-weight: 400;
}
.btn-secondary,
.cta{
  border-radius: 10px;
  background: var(--gold);
  padding: 16.5px 26px;
  color: white;
  height: auto;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: "Montserrat", sans-serif;
  font-size: 16px;
  font-weight: 700;
}
.cta img {transition: all 0.3s ease;}
.cta:hover img{
  transform: translateX(10px);
  transition: all 0.3s ease;
}
.cta:hover {background: #C19C68}
.btn-secondary{
  border: 1px solid var(--gold);
  background: white;
  color: var(--gold);
}
button.cta{border: none}
.radius-15{border-radius: 15px}
.radius-20{border-radius: 20px}
.radius-10{border-radius: 10px}
.radius-40{border-radius: 40px}
.section-mecanismes .inner .col-right .bg-white{
  padding: 40px;
  text-align: center;
}
.section-mecanismes .text-16{letter-spacing: 1.6px}
.bloc-text-img .col-right figure{
  position: relative;
  display: flex;
  align-items: center;
}
.bloc-text-img .col-right figure p{
    position: absolute;
    left: 80px;
    z-index: 9;
    color: white;
    font-weight: 700;
    font-size: 28px;
    width: calc(100% - 160px);
    line-height: 40px;
}
.bloc-text-img .col-right figure:before{
    content: "";
    background-color: #3C4E79;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 9;
    height: calc(100% - 3px);
    width: 100%;
    opacity: 0.55;
    border-radius: 40px;
}

.single-post .bloc-text-img .col-right figure:before{
  content: none;
}

.bloc-text-img .col-right,
.bloc-img-text .col-right,
.bloc-text-img .col-left,
.bloc-img-text .col-left,
.bloc-double-content .col{
  width: 50%;
}

.bloc-img-text.mini .col-right{
  width: 33%;
}
.bloc-img-text.mini .col-left{
  width: 67%;
}

.bloc-col-bis .col,
.bloc-3-col .col{
  width:calc(33.333333333333336% - 27px);
}
.bloc-3-col .card{
  padding: 50px;
}

.bloc-expertise .arrow-col,
.bloc-3-col .arrow-col{
  top: 5px;
  position: relative;
}
.bloc-3-col .medium-title{
    line-height: 36px;
}
.bloc-col-list-image figure, 
.bloc-expertise figure{
  width: 348px;
  height: 100%;
  max-width: 100%;
}


.bloc-col-list-image .col-left  img{
width: 348px;
    height: 100%;
    object-fit: cover;

}
.bloc-expertise figure img{
  height: 100%;
  object-fit: cover;
}
.expertise-item{
  margin-bottom: 25px;
}

.bloc-contact .inner{
  width: 800px;
  max-width: 100%;
  margin: auto;
}
.bloc-contact a{
  margin: auto;
  display: table;
  text-align: center;
}
.bloc-title .title-24{
  font-weight: 700;
}
.bloc-title .title-24 sup{
  font-size: 13px;
  top: -7px;
  position: relative;
}
.bloc-approche .approche-item{
  width: calc(25% - 30px);
}
.approche-item .card{
  padding: 20px;
  padding-bottom: 20px;
}
.approche-item .card img{
    top: 4px;
    position: relative;

}
.bloc-livre-presentation .col-left{
  width: 50%;
}
body .bloc-livre-presentation .slick-track{
  transform: none!important;
  margin: auto;
}
.bloc-livre-presentation .col-right{
  width: 50%;
}

.livre-image-wrapper{
  position: relative;
  overflow: hidden;
  border-radius: 10px;
}

.livre-image-link{
  display: block;
  position: relative;
  cursor: zoom-in;
}

.zoom-overlay{
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(60, 78, 121, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.livre-image-link:hover .zoom-overlay{
  opacity: 1;
}

/* Popup Modal */
.livre-popup-modal{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
}

.livre-popup-modal.active{
  display: flex;
}

.popup-overlay{
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.9);
}

.popup-content{
  position: relative;
  z-index: 10000;
  max-width: 90%;
  width: 800px;
  background: white;
  border-radius: 20px;
  padding: 40px;
  max-height: 90vh;
  overflow-y: auto;
}

.popup-close{
  position: absolute;
  top: 15px;
  right: 15px;
  background: var(--bluebold);
  color: white;
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 24px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10001;
  line-height: 1;
}

.popup-close:hover{
  background: var(--gold);
}

.slider-livre-main{
  margin-bottom: 20px;
}

.slider-livre-main img{
  width: 100%;
  height: auto;
  max-height: 500px;
  object-fit: contain;
  border-radius: 10px;
}

.slider-livre-nav{
  margin-top: 20px;
}

.slider-livre-nav .nav-item{
  padding: 5px;
  cursor: pointer;
  opacity: 0.6;
  transition: opacity 0.3s ease;
}

.slider-livre-nav .nav-item img{
  width: 100%;
  height: 80px;
  object-fit: cover;
  border-radius: 8px;
  border: 2px solid transparent;
  transition: border-color 0.3s ease;
}

.slider-livre-nav .slick-current .nav-item{
  opacity: 1;
}

.slider-livre-nav .slick-current .nav-item img{
  border-color: var(--gold);
}

.slider-livre-nav .nav-item:hover{
  opacity: 1;
}

.bloc-extrait-du-livre .slider-extrait-livre img{
  /* max-height: 600px; */
  /* object-fit: contain; */
  margin: auto;
  display: block;

}

.bloc-col-list-image .col-right {
 padding-bottom: 10px;
 padding: 30px 50px;
    padding-bottom: 10px;
}

body .expertise-list .flex{
  flex-direction: row;
}



/* ================================
   BLOC TABLEAU & MODALS
   ================================ */
.bloc-tableau .inner {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 800px;
  max-width: 100%;
  margin: auto;
  padding: 30px 50px;
}

.cta-yellow {
  background-color: #D4A853;
  color: #1A4748;
  border: 2px solid #D4A853;
}

.cta-yellow:hover {
  background-color: #C49743;
  border-color: #C49743;
}

.cta-white-outline {
  background-color: transparent;
  color: white;
  border: 2px solid white;
}

.cta-white-outline:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

/* Modal Styles */
.modal-tableau {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.8);
  cursor: pointer;
}

.modal-content {
  position: relative;
  background: white;
  width: 1300px;
  max-width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  z-index: 10000;
}

.modal-content {
  scrollbar-width: none;
}

.modal-content::-webkit-scrollbar {
  display: none;
}

.modal-intro-image {
  width: 578px;
}

.modal-image-2 {
  width: 348px;
}


.modal-content-tableau {
  width: 1300px;
  max-width: 100%;
}

.modal-close {
  position: absolute;
  top: 20px;
  right: 20px;
  background: transparent;
  border: none;
  font-size: 40px;
  line-height: 1;
  cursor: pointer;
  color: #3C4E79;
  z-index: 10001;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s;
}

.modal-close:hover {
  transform: scale(1.1);
}

.modal-body {
  padding: 60px 50px 50px;
}

.modal-title {
  font-size: 32px;
  font-weight: 800;
  color: #1A4748;
  margin-bottom: 30px;
  line-height: 1.3;
}

.modal-text {
  font-size: 16px;
  line-height: 1.6;
  color: #1A4748;
}

.modal-text p {
  margin-bottom: 15px;
}

.modal-content-flex {
  display: flex;
  margin-bottom: 30px;
}

.modal-image {
  flex: 0 0 240px;
}

.modal-image img {
  width: 100%;
  height: auto;
  border-radius: 10px;
}

.modal-text-col {
  flex: 1;
}

.modal-footnotes {
  font-size: 12px;
  line-height: 1.5;
   color: #3C4E79;
  margin-top: 30px;
  padding-top: 20px;
  border-top: 1px solid #ddd;
}
.modal-footnotes p {margin-bottom: 8px}
.modal-tableau-content {
  overflow-x: auto;
}
.modal-tableau-content table.tableau-identite {
  width: 100%;
  border-collapse: collapse;
  margin-top: 30px;
  font-size: 14px;
  border: 2px solid #F0F3FA;
}
.modal-tableau-content .tableau-identite th,
.modal-tableau-content .tableau-identite td {
  padding: 20px 18px;
  border: 2px solid #F0F3FA;
  vertical-align: top;
  background-color: #fff;
}
.modal-tableau-content .tableau-identite thead th {
  background-color: #fff;
  font-weight: 700;
  font-size: 24px;
}
.modal-tableau-content .tableau-identite thead th:first-child {
  border-top: none;
  background-color: #fff;
}
.modal-tableau-content .tableau-identite td {
  line-height: 24px;
  font-size: 16px;
}

.modal-tableau-content .tableau-identite td.td-label {
  font-weight: 600;
  width: 240px;
}
.modal-tableau-content .tableau-identite td[rowspan] {vertical-align: middle}
.size-40 {font-size: 40px !important}
.modal-tableau-content .tableau-identite strong {font-weight: 700}
.modal-tableau-content sup {
  font-size: 10px;
  vertical-align: super;
}

/* Responsive */
@media (max-width: 1300px) {
  .bloc-3-col .medium-title {
      line-height: normal;
      font-size: 25px;
  }
  .bloc-3-col .card {padding: 25px}
}

@media (max-width: 1024px) {
  .bloc-img-text.mini .col-right{width: 50%}
  .bloc-img-text.mini .col-left{width: 50%}
}

@media (max-width: 768px) {
  .modal-intro-image {width: 100%}
  .modal-intro-flex-1{flex-direction: column}
  .modal-body {padding: 40px 25px 30px}
  .modal-title {font-size: 24px}
  .modal-content-flex {flex-direction: column}
  .modal-image {
    flex: 0 0 auto;
    width: 100%;
  }
  .bloc-tableau .inner {
    padding: 30px;
  }
  .cta {
    width: 100%;
    justify-content: center;
  }
}
@media (max-width: 767px) {

.bloc-col-list-image figure, 
.bloc-expertise figure{
  width: 100%;
}


  .bloc-expertise .p-50{padding: 35px}
  .bloc-col-bis .col, .bloc-3-col .col {width: 100%}

  .bloc-img-text.mini .col-right{width: 100%}
  .bloc-img-text.mini .col-left{width: 100%}

  .bloc-livre-presentation .col-left {width: 100%}
  .bloc-livre-presentation .col-right {width: 100%}

}