:root {
  --background: #121219;
  --background-sections: #1a1a24;
  --theme: #d72638;
  --theme-variante: #f2484b;           /* Rouge plus clair pour hover et détails */
}

html,
body {
  position: relative;
  height: 100%;
  background-color: var(--background);
  font-family: "Josefin Sans", sans-serif;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  scroll-behavior: smooth;
  min-height: 100vh;
}

h1,h2,h3,h4,h5,h6 {
  margin: 0;
  color: #111111;
  font-weight: 400;
  font-family: "Play", sans-serif;
}

h1 {
  font-size: 70px;
}

h2 {
  font-size: 36px;
}

h3 {
  font-size: 30px;
}

h4 {
  font-size: 24px;
}

h5 {
  font-size: 18px;
}

h6 {
  font-size: 16px;
}

p {
  font-size: 16px;
  font-family: "Josefin Sans", sans-serif;
  color: #ccc;
  font-weight: 400;
  line-height: 26px;
  margin: 0 0 15px 0;
}

img {
  max-width: 100%;
}

input:focus,select:focus,button:focus,textarea:focus {
  outline: none;
}

a:hover,a:focus {
  text-decoration: none;
  outline: none;
  color: #fff;
}

ul,ol {
  padding: 0;
  margin: 0;
}

section {
    transition: filter 0.4s ease-in-out;
    -webkit-transition: filter 0.4s ease-in-out;
}

/*---------------------
  Helper CSS
-----------------------*/
.section-title {
  margin-bottom: 50px;
}
.section-title.center-title {
  text-align: center;
}
.section-title.center-title h2:after {
  right: 0;
  margin: 0 auto;
}
.section-title span {
  color: #ffffff;
  display: block;
  font-size: 16px;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.section-title h2 {
  color: #ffffff;
  font-weight: 700;
  text-transform: uppercase;
  position: relative;
  padding-bottom: 25px;
}
.section-title h2:after {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 5px;
  width: 70px;
  background:   var(--theme);
  content: "";
}

.set-bg {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
}

.spad {
  padding-top: 100px;
  padding-bottom: 100px;
}

.text-white h1,.text-white h2,.text-white h3,.text-white h4,.text-white h5,.text-white h6,.text-white p,.text-white span,.text-white li,.text-white a {
  color: #fff;
}

.primary-btn {
  display: inline-block;
  font-size: 15px;
  font-family: "Play", sans-serif;
  font-weight: 700;
  padding: 14px 32px 12px;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 2px;
  position: relative;
  z-index: 1;
}
.primary-btn:hover:before {
  height: 100%;
  width: 100%;
  transition: ease-in-out, 0.5s;
}
.primary-btn:hover:after {
  height: 100%;
  width: 100%;
  transition: ease-in-out, 0.5s;
}
.primary-btn:before {
  position: absolute;
  left: 0;
  top: 0;
  height: 30px;
  width: 30px;
  border-left: 2px solid   var(--theme);
  border-top: 2px solid   var(--theme);
  content: "";
  z-index: -1;
  -webkit-transition: all, 0.7s;
  -o-transition: all, 0.7s;
  transition: ease-in-out, 0.7s;
}
.primary-btn:after {
  position: absolute;
  right: 0;
  bottom: 0;
  height: 30px;
  width: 30px;
  border-right: 2px solid   var(--theme);
  border-bottom: 2px solid   var(--theme);
  content: "";
  z-index: -1;
  -webkit-transition: all, 0.7s;
  -o-transition: all, 0.7s;
  transition: all, 0.7s;
}

.site-btn {
  font-size: 15px;
  color: #ffffff;
  background: #00bfe7;
  font-family: "Play", sans-serif;
  font-weight: 700;
  border: none;
  display: inline-block;
  text-transform: uppercase;
  letter-spacing: 2px;
  padding: 14px 34px 12px;
  width: 100%;
}

#preloder {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 999999;
  background: #000;
}

.loader {
  width: 40px;
  height: 40px;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -13px;
  margin-left: -13px;
  border-radius: 60px;
  animation: loader 0.8s linear infinite;
  -webkit-animation: loader 0.8s linear infinite;
}

@keyframes loader {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
    border: 4px solid   var(--theme);
    border-left-color: transparent;
  }
  50% {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
    border: 4px solid #EFFFFE;
    border-left-color: transparent;
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
    border: 4px solid var(--theme-variante);
    border-left-color: transparent;
  }
}

/*---------------------
  Header
-----------------------*/

.navbar-brand  span{
  color:   var(--theme);
  font-size:25px;font-weight:700;letter-spacing:0.1em;
  font-family: "Play", sans-serif;
}
.navbar-brand {
  color: #fff;
  font-size:25px;
  font-family: Helvetica Neue;
  font-weight:700;
  letter-spacing:0.1em;

}

.navbar-nav .nav-item .nav-link{
  padding: 1.1em 1em!important;
  font-size: 120%;
    font-weight: 500;
    letter-spacing: 1px;
    color: #fff;
   font-family: 'Gothic A1', sans-serif;
   transition: ease-in-out, 0.5s;
}
.navbar-nav .nav-item .nav-link:hover{color:  var(--theme);}
.navbar-expand-md .navbar-nav .dropdown-menu{
  border-top:3px solid   var(--theme);
  transition: ease-in-out, 0.5s;
}
.dropdown-item:hover{background-color:  var(--theme);color:#fff;}
nav{-webkit-transition: padding-top .3s,padding-bottom .3s;
    -moz-transition: padding-top .3s,padding-bottom .3s;
    transition: padding-top .3s,padding-bottom .3s;
    border: none;
  }
  
 .shrink {
    padding-top: 0;
    padding-bottom: 0;
    background-color: var(--background);
}


@media (max-width:500px)
{
  .navbar-nav{
    background-color: var(--background);
    border-top:3px solid   var(--theme);
    color:#fff;
    z-index:1;
    margin-top:5px;
    }
  .navbar-nav .nav-item .nav-link{
  padding: 0.7em 1em!important;
  font-size: 100%;
    font-weight: 500;
    }
}

/*---------------------
  Hero
-----------------------*/
.hero__slider.owl-carousel .owl-item.active .hero__text span {
  top: 0;
  opacity: 1;
}
.hero__slider.owl-carousel .owl-item.active .hero__text h2 {
  top: 0;
  opacity: 1;
}
.hero__slider.owl-carousel .owl-item.active .hero__text .primary-btn {
  top: 0;
  opacity: 1;
}
.hero__slider.owl-carousel .owl-dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 45px;
  width: 100%;
  max-width: 1140px;
  margin: 0 auto;
}

.hero__item {
  height: 100vh;
  padding: 40vh 5vw;
}

.hero__text span {
  color: #ffffff;
  display: block;
  font-size: 15px;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 18px;
  position: relative;
  top: 100px;
  opacity: 0;
  transition: ease-in-out, 0.5s;
}
.hero__text h2 {
  color: #ffffff;
  font-size: 60px;
  font-weight: 700;
  line-height: 70px;
  text-transform: uppercase;
  margin-bottom: 38px;
  position: relative;
  top: 100px;
  opacity: 0;
  transition: ease-in-out, 0.5s;
}
.hero__text .primary-btn {
  position: relative;
  top: 100px;
  opacity: 0;
  transition: ease-in-out, 0.57;
}

@media only screen and (max-width: 767px) {
  .hero__text h2 {
    font-size: 40px;
    line-height: 40px;
  }
}


/*---------------------
  Footer
-----------------------*/
#footer {
  display: flex;
  background: var(--background);
  justify-content: space-between;
  align-items: center;
}

#h {
  text-align: center;
  margin: 20px;
}

#links {
  margin: 20px;
}

/*---------------------
  About
-----------------------*/

#apropos {
  background-color: black;
  padding:  10%;
  text-align: center;
}

#pp img {
  width: 200px;
  border-radius: 50%;
  border: 3px solid   var(--theme);
  padding: 5px;
  margin: 20px;
}

#moi {
  top: 60px;
}

#moi span{
  font-weight: bolder;
}

.social-links{
  font-size: 14px;
  text-align: center;
  margin-top: 10%;
  margin-bottom: 15%;
}
.social-links a{
    width: 50px;
    height: 50px;
    line-height: 50px !important;
    position: relative;
    margin: 15px;
    text-align: center;
    display: inline-block;
    color: #111;
    transition: ease-in-out, 0.3s;

}
.social-links a i,
.social-links a span{
    position: relative;
    top: 2px;
    filter: invert(100%);
}
.social-links a:before{
    content: "";
    display: inline-block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    border: 1px solid   var(--theme);
    border-radius: 2px;
    
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
    
}
.social-links a:hover{
    color: #fff;
    transition: ease-in-out, 0.3s;
}
.social-links a:hover:before{
    background:   var(--theme);
}


/*---------------------
  Compétences
-----------------------*/
.services {
  background: var(--background-sections);
  padding-bottom: 60px;
  padding-top: 110px;
}

.services__title p {
  margin-bottom: 45px;
}

.services__item {
  margin-bottom: 45px;
}
.services__item:hover .services__item__icon:after {
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
      transform: rotate(45deg);
  transition: ease-in-out, 0.5s;
}
.services__item h4 {
  color: #ffffff;
  font-size: 22px;
  font-weight: 700;
  margin-top: 26px;
  margin-bottom: 18px;
}
.services__item p {
  margin-bottom: 0;
}

.services__item__icon {
  position: relative;
  height: 70px;
  width: 70px;
  line-height: 70px;
  text-align: center;
}
.services__item__icon:after {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  border: 2px solid   var(--theme);
  content: "";
  -webkit-transition: ease-in-out, 0.5s;
  -o-transition: ease-in-out, 0.5s;
  transition: ease-in-out, 0.5s;
}

.services__item__icon img {
  width: 50px;
}

#link {
  display: grid;
  justify-content: center;
  align-items: center;
}

/*---------------------
  Logiciels
-----------------------*/


#btnfolio {
  background: none;
  height: 50px;
  width: 170px;
  font-family: "Play", sans-serif;
  font-weight: bold;
  text-transform: uppercase;
  margin: 20px 20px 20px 0px;
  padding: 0px 5px;
  color: white;
  border: 2px solid   var(--theme);
  overflow: hidden;
  -webkit-transition: ease-in-out, 0.5s;
  -o-transition: ease-in-out, 0.5s;
  transition: ease-in-out, 0.5s;
}

#btnfolio:hover {
  background-color:   var(--theme);
  -webkit-transition: ease-in-out, 0.5s;
  -o-transition: ease-in-out, 0.5s;
  transition: ease-in-out, 0.5s;
}

.logiciel .card{
  display: grid;
  justify-content: center;
  text-align: center;
  background-color: var(--background-sections);
}

.card h6 {
  color: #AAA;
}

#close {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
}

#close:hover,
#close:focus {
  color: white;
  text-decoration: none;
  cursor: pointer;
}

body.no-scroll {
  overflow: hidden;
}

.modal-overlay{
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(10px);
}

.modal-overlay.modal-overlay-visible{
  display: block;
}

.modal-container{
  display: none;
  position:fixed;
  top: 50%;
  left: 50%;
  z-index: 101;
  transform: translate(-50%, -50%);
  width: 80%;
  height: 80%;
  justify-content: center;
  text-align: center;
  background-color: var(--background);
  border-radius: 20px;
  overflow-y: auto;
  box-shadow: 0 0 10px 1px rgba(255, 79, 94, 0.2);
  padding: 30px;

}

.modal-container.modal-container-visible{
  display: block;
}

.body no-scroll {
  overflow: hidden;
}

/*---------------------
  Portfolio
-----------------------*/
.portfolio {
  background: var(--background-sections);
}

#bouton {
  margin-right: 20px;
}

.mfp-bg {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1042;
  overflow: hidden;
  position: fixed;
  background: #0b0b0b;
  filter: blur(10px);
  opacity: 0.8; 
}
  

.portfolio-title {
  width: 100%;
  position: absolute;
  text-align: center;
  text-transform: uppercase;
  padding: 0 5px;
  margin: auto;
  font-family: "Play", sans-serif;
  font-weight: bolder;
  color:   var(--theme);
}

@media screen and (min-width: 920px) {
  .portfolio-title{
      top: 50%;
      transform: translateY(-330px);
      font-size: 4vw;
  }
}

@media screen and (max-width: 920px) {
  .portfolio-title{
      top: 45%;
      transform: translateY(-30vw);
      font-size: 40px;
  }
}

.description {
    display: flex;
    position: absolute;
    left: 50%;
    padding: 0 5px;
    transform: translateX(-50%);
    margin: auto;
    font-family: "Play", sans-serif;
    font-weight: 400;
    color: white;
    text-shadow: 1px 1px 2px black;
}

@media screen and (min-width: 920px) {
  .description{
      width: 900px;
      top: 50%;
      transform: translate(-50%,+260px);
      font-size: 1.3vw;
  }
}

@media screen and (max-width: 920px) {
  .description{
      width: 99%;
      top: 50%;
      transform: translate(-50%,+28vw);
      font-size: 13px;
  }
}

.popup-loader {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    margin: -20px 0 0 -20px;
    border: 4px solid #fff;
    border-top: 4px solid #333;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    z-index: 9999;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.mfp-wrap.fade-in {
    transition: opacity 0.4s ease-in-out;
}

.portfolio__filter {
  text-align: center;
  border-bottom: 1px solid #adadad;
  padding-bottom: 20px;
  margin-bottom: 40px;
}
.portfolio__filter li {
  list-style: none;
  font-size: 16px;
  color: #adadad;
  margin-right: 5px;
  display: inline-block;
  cursor: pointer;
  padding: 6px 22px;
  transition: ease-in-out .3s;
}

.portfolio__filter li:hover {
  color: white;
  transition: ease-in-out .3s;
}

.portfolio__filter li.separator {
    pointer-events: none; 
    cursor: default;
    color: white;
    margin-left: -15px;
    margin-right: -10px;
    font-weight: bold;
}

.portfolio__filter li.active {
 color:   var(--theme);
}
.portfolio__filter li:last-child {
  margin-right: 0;
}

.portfolio__item {
  margin-bottom: 35px;
  overflow: hidden;
}

.portfolio__item:hover .portfolio__item__text h4:after {
  opacity: 1;
}

.portfolio__item__video {
  height: 240px;
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-bottom: 28px;
  transition: ease-in-out 0.5s;
  filter: grayscale(85%);
}

.portfolio__item__video:hover {
  transition: ease-in-out 0.5s;
  transform:scale(1.05);
  filter: grayscale(0%);
}

.portfolio__item__video .play-btn {
  display: inline-block;
  color: #ffffff;
  font-size: 20px;
  box-shadow: 0px 0px 5px 2px #444;
  height: 50px;
  width: 50px;
  line-height: 50px;
  text-align: center;
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  transition: ease-in-out 0.3s;
}


.portfolio__item__video .play-btn:hover {
  transform: scale(1.2);
  transition: ease-in-out 0.3s;
}

.portfolio__item__text li span{
  text-align: center;
  color:   var(--theme);
  font-weight: bold;
}

.portfolio__item__text h4 {
  color: #ffffff;
  display: inline-block;
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 8px;
  position: relative;
}

.portfolio__item__text ul li {
  list-style: none;
  display: inline-block;
  font-size: 16px;
  font-weight: 300;
  margin-right: 24px;
  position: relative;
  color: #adadad;
}

.portfolio__item__text ul li:last-child {
  margin-right: 0;
}
.portfolio__item__text ul li:last-child:after {
  display: none;
}
.portfolio__item__text span {
  font-size: 16px;
  font-weight: 300;
  color: #adadad;
  display: block;
}

.pagination__option {
  text-align: center;
  padding-top: 20px;
}
.pagination__option.blog__pagi {
  padding-top: 5px;
}
.pagination__option .arrow__pagination {
  font-size: 15px;
  color: #ffffff;
  display: inline-block;
  text-transform: uppercase;
}
.pagination__option .arrow__pagination.left__arrow {
  margin-right: 26px;
}
.pagination__option .arrow__pagination.right__arrow {
  margin-left: 18px;
}
.pagination__option .arrow__pagination span {
  opacity: 0.5;
}
.pagination__option .number__pagination {
  font-size: 18px;
  color: #ffffff;
  height: 50px;
  width: 50px;
  background: rgba(242, 242, 242, 0.1);
  line-height: 50px;
  text-align: center;
  display: inline-block;
  margin-right: 6px;
}

