/*
Theme Name: Mon Thème Perso
Theme URI: https://example.com
Author: Ton Nom
Author URI: https://example.com
Description: Un thème WordPress personnalisé avec TailwindCSS.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mon-theme
*/

/* FONT */


.syne-medium {
    font-family: "Syne", sans-serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
}

.syne-bold {
    font-family: "Syne", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
}

.syne-extra-bold {
    font-family: "Syne", sans-serif;
    font-optical-sizing: auto;
    font-weight: 800;
    font-style: normal;
}

.montserrat-regular {
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
}

/* COMMON */

.bg-takkt-color-dark {
    background-color: #1D232C;
}
.bg-takkt-color-light {
    background-color: #EFEFF3;
}

.bg-takkt-color-orange {
    background-color: #f39b5f;
}

.takkt-orange {
    color: #f39b5f;
}

/* HOME */ 

/* MENU */

.main-menu .logo{
  display: inline-block;
  color: white;
  font-size: 2.1rem;
  font-family: "Syne", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
  text-transform: lowercase;
  line-height: 2rem;
}

.main-menu .logo span{
  color: #f39b5f;
}

.main-menu nav a {
  position: relative;
  display: inline-block;
  transition: color 0.3s ease;
  cursor: pointer;
  font-family: "Syne", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  text-transform: uppercase;
  line-height: 2rem;
}

.main-menu nav a::after {
content: '';
position: absolute;
bottom: -42px;
left: 0;
height: 2px;
width: 100%;
background-color: #f39b5f;
opacity: 0;
transition: opacity 0.3s ease;
}

.main-menu nav a:hover,
.main-menu nav a.active {
color: #f39b5f;
}

.main-menu nav a:hover::after,
.main-menu nav a.active::after {
opacity: 0.6;
}

.hover-color {
  transition: color 0.3s ease;
}

.hover-color:hover {
  color: #f39b5f;
}

.projets li, .banner li {
    font-family: "Syne", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
}
.circle {
  border: 2px solid #f39b5f;
  height: 12px;
  width: 12px;
  min-width: 12px;
  min-height: 12px;
}
.menu-projets .circle {
  border: 0px;
}
/* .circle-news {
    width: 17px;
} */

.circle-news-2 {
    min-width: 12px;
  min-height: 12px;
}

.circle-white {
    border: 2px solid white !important;
}
.menu-projets li .circle {
    width: 0;
    height: 0;
    opacity: 0;
    transition: all 0.3s ease-in-out;
}
.circle.all {
  opacity: 1;
  border: 2px solid #f39b5f;
  height: 12px;
  width: 12px;
  
}

.active-circle {
  opacity: 1 !important;
  border: 2px solid #f39b5f !important;
  height: 12px !important;
  width: 12px !important;
}
.active-li {
  color: white;
}
.menu-projets li {
    transition: all 0.3s ease-in-out;
}
.menu-projets li:hover .circle {
    width: 12px;
    height: 12px;
    opacity: 1;
    border: 2px solid #f39b5f;
    border-radius: 100%;
    margin-right: 8px;
} 
.menu-projets li:hover {
    color: white;
}
.services-projets li:hover {
  color: #1D232C;
}

.hover-round li .circle, .hover-round li {
  transition: 0.3s ease-in-out;
}

.hover-round li:hover .circle {
  background-color: #f39b5f;
  transform: scale(1.3);
}

.hover-round li:hover {
  color: #f39b5f;
}

.hover-round-white li .circle, .hover-round-white li {
  transition: 0.3s ease-in-out;
}

.hover-round-white li:hover .circle {
  background-color: #EFEFF3;
  transform: scale(1.3);
}

.border-radius-takkt {
    border-top-right-radius: 50px;
    border-top-left-radius: 50px;
}

.menu-projets .circle.all {
  opacity: 1;
  border: 1px solid #f39b5f;
  height: 12px;
  width: 12px;
}

.menu-projets .all-li {
  color: white;
}

.background-custom {
    width: 100%;
    height: 60px;
    bottom: -210px;
    left: 0;
}
.background-custom-top {
    width: 100%;
    height: 60px;
    top: 0;
    left: 0;

}
.agency .background-custom {
    background-color: #EFEFF3;
}
.clients .background-custom {
    background-color: #EFEFF3;
}



.clients::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 60px;
    background-color: #EFEFF3;
    z-index: 1;
}
.ref::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 60px;
    background-color: #1D232C;
    z-index: 1;
}
.clients::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 60px;
    background-color: #f39b5f;
    z-index: 2;
    border-top-right-radius: 50px;
    border-top-left-radius: 50px;
}

/* .news::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 60px;
    background-color: #f39b5f;
    z-index: 1;
}
.news::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 60px;
    background-color: #1D232C;
    z-index: 2;
    border-top-right-radius: 50px;
    border-top-left-radius: 50px;
} */
.section {
    position: relative;
}
  
.top-cheat {
    top: 0;
    left: 0;
    width: 100%;
    height: 60px;

}
.agency .top-cheat .first {
    background-color: #1D232C;
    z-index: 1;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}
.agency .top-cheat .second {
    background-color: #EFEFF3;
    z-index: 2;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.contact-projets .top-cheat .second {
    background-color: #1D232C;
    z-index: 2;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.contact-projets .top-cheat .first {
    background-color: #f39b5f;
    z-index: 2;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.news .top-cheat .first {
    background-color: #f39b5f;
    z-index: 1;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}
.team .top-cheat .first {
    background-color: #EFEFF3;
    z-index: 1;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}
.team .top-cheat .second {
    background-color: #1D232C;
    z-index: 2;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}
.news .top-cheat .second {
    background-color: #1D232C;
    z-index: 2;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.project-pro .first {
    background-color: #EFEFF3 !important;
}
.article-top .first {
  background-color: #EFEFF3 !important;
}
.agency .inner {
    z-index: 2;
}

@keyframes marquee {
    0% {
      transform: translateX(0%);
    }
    100% {
      transform: translateX(-50%);
    }
  }
  
  .animate-marquee {
    animation: marquee 20s linear infinite;
  }

  .learn_more, .arrow {
    top: 50%;
    left: 50%;
    /* SUPPRIME transform ici */
    transition: transform 0.5s ease-in-out;
    transform-origin: center;
  }

  /* ANIM BULLES LUMINEUSES */

  :root {
    --color-design:     #f5f5f5;
    --color-research:   #de4d1d;
    --color-love:       #f39b5f;
    --radius:           240px;
  }
  
  html,
  body {
    height: 100%;
  }
 

  .canvas,
  .overlay {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
     /* Permet aux bulles de déborder hors de la div */
    z-index: 0; /* Assure que l'overlay et les bulles soient en arrière-plan */
    filter: blur(60px);
    overflow-x: hidden;
  }

  .page-projets .circles-anim {
    position: absolute;
    width: 10%;
    height: 100%;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    animation-name: rotate;
    animation-duration: 25s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    backface-visibility: hidden;
    perspective: 1000;
  }

  .pages-services .circles-anim {
    position: absolute;
    width: 0%;
    height: 160%;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    animation-name: rotate;
    animation-duration: 25s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    backface-visibility: hidden;
    perspective: 1000;
  }
  
  .circles-anim {
    position: absolute;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    animation-name: rotate;
    animation-duration: 25s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    backface-visibility: hidden;
    perspective: 1000;
  }
  
  .circle-anim {
    position: absolute;
    
    margin: calc(var(--radius) / 2);
    border-radius: 50%;
    backface-visibility: hidden;
    perspective: 1000;
    opacity: 0.8; /* Moins d'opacité pour être discret en arrière-plan */
  }
  
  .circle-anim.design {
    background: var(--color-design);
    box-shadow: 0 0 var(--radius) var(--radius) var(--color-design);
    animation-name: float;
    animation-duration: 6s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    width: 12vw;
    height: 12vw;
  }
  
  .circle-anim.research {
    background: var(--color-research);
    box-shadow: 0 0 var(--radius) var(--radius) var(--color-research);
    animation-name: float;
    animation-duration: 12s;
    animation-iteration-count: infinite;
    animation-direction: alternate-reverse;
    width: 16vw;
    height: 16vw;
  }
  
  .circle-anim.love {
    background: var(--color-love);
    box-shadow: 0 0 var(--radius) var(--radius) var(--color-love);
    animation-name: float;
    animation-duration: 18s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    width: 8vw;
    height: 8vw;
  }

  @keyframes float {
    0%   { transform: translateX( calc( var(--radius) * 0.0 ) ) translateZ( 0 ) }
    20%  { transform: translateX( calc( var(--radius) * 0.5 ) ) translateZ( 0 ) }
    40%  { transform: translateX( calc( var(--radius) * 1.0 ) ) translateZ( 0 ) }
    60%  { transform: translateX( calc( var(--radius) * 1.5 ) ) translateZ( 0 ) }
    80%  { transform: translateX( calc( var(--radius) * 0.5 ) ) translateZ( 0 ) }
    100% { transform: translateX( calc( var(--radius) * 0.0 ) ) translateZ( 0 ) }
  }
  
  @keyframes rotate {
    0%   { transform: rotate( 0deg ) translateZ( 0 ) }
    100% { transform: rotate( 360deg ) translateZ( 0 ) }
  }
  
  /* Style du texte et des autres éléments */
  h2 {
    position: relative;
    z-index: 1; /* Pour garder le texte visible devant les bulles */
  }
  
  /* Boutton circle */

/* Animation pour learn_more */
@keyframes rotate-learn-more {
    0% {
      transform: translate(-50%, -50%) rotate(0deg);
    }
    100% {
      transform: translate(-50%, -50%) rotate(360deg);
    }
  }
  
  /* Animation inversée pour learn_more */
  @keyframes rotate-learn-more-reverse {
    0% {
      transform: translate(-50%, -50%) rotate(360deg);
    }
    100% {
      transform: translate(-50%, -50%) rotate(0deg);
    }
  }
  
  /* Animation pour arrow */
  @keyframes rotate-arrow {
    0% {
      transform: translate(-50%, -50%) rotate(0deg);
    }
    100% {
      transform: translate(-50%, -50%) rotate(-360deg);
    }
  }
  
  /* Animation inversée pour arrow */
  @keyframes rotate-arrow-reverse {
    0% {
      transform: translate(-50%, -50%) rotate(-360deg);
    }
    100% {
      transform: translate(-50%, -50%) rotate(0deg);
    }
  }
  
  /* Appliquer les animations au hover */
  .circle-button:hover .learn_more {
    animation: rotate-learn-more 0.7s forwards; /* Animation pour learn_more */
  }
  
  .circle-button:hover .arrow {
    animation: rotate-arrow 0.7s forwards; /* Animation pour arrow */
  }
  
  /* Appliquer les animations inversées lorsque la souris sort */
  .circle-button:not(:hover) .learn_more {
    animation: rotate-learn-more-reverse 0.7s forwards; /* Animation inversée pour learn_more */
  }
  
  .circle-button:not(:hover) .arrow {
    animation: rotate-arrow-reverse 0.7s forwards; /* Animation inversée pour arrow */
  }
  
  

  /* CUSTOM CURSOR */

  .custom-section {
    position: relative;
  }

  .custom-section.active {
    cursor: none;
  }

#custom-cursor {
  position: fixed;
  pointer-events: none;
  transform: translate(-8%, -10%);
  z-index: 9999;
  opacity: 0;
  transition: opacity 0.2s;
}

@keyframes heartbeat {
  0%, 100% {
    transform: translate(-50%, -50%) scale(1);
  }
  14% {
    transform: translate(-50%, -50%) scale(1.3);
  }
  28% {
    transform: translate(-50%, -50%) scale(1);
  }
  42% {
    transform: translate(-50%, -50%) scale(1.3);
  }
  70% {
    transform: translate(-50%, -50%) scale(1);
  }
}

#custom-cursor .arrow {
  animation: heartbeat 1.5s infinite;
  transform-origin: center;
}

.arrow {
  display: inline-block;
}

  /* FOOTER */

  .text-circle {
    bottom: -80px;
    right: 0;
    z-index: 9;

  }
  footer {
    background-color: #1D232C;
  }


  /* ANIM PAGE SERVICES */

.to-show {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, padding 0.3s ease;
  padding-top: 0;
  padding-bottom: 0;
}

/* Quand .open-div est active (ouverte) */
.open-div.active .to-show {
  max-height: 500px;
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}

/* Changement de couleur du cercle quand la div est ouverte */
.open-div.active .circle {
  background-color: #f39b5f;
  transition: background-color 0.3s ease;
}

.less-custom {
  border-color: #f39b5f;
}

body.custom-cursor {
  cursor: none;
}

.custom-cursor-element {
  position: fixed;
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%, -50%);
  transition: opacity 0.2s ease;
  opacity: 0;
}

/* Apparition */
.custom-cursor-element.visible {
  opacity: 1;
}

/* ARTICLE BLOG STYLE */

.article-blog h2, .article-blog h3, .article-blog h4 {
  color: black;
  font-family: "Syne", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  line-height: normal;
  margin-bottom: 36px;
  margin-top: 50px;
}

.article-blog h2 {
  font-size: 40px;
}

.article-blog h3 {
  font-size: 30px;
}

.article-blog h4 {
  font-size: 24px;
  color: #f39b5f;
  margin-bottom: 24px;
  margin-top: 24px;
}

.article-blog p {
  font-size: 20px;
  color: black;
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  line-height: 28px;
  margin-bottom: 16px;
}

.article-blog ul {
  padding-left: 50px;
}

.article-blog li, .content-sol-pro li {
  font-size: 16px;
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  line-height: 35px;
  position: relative;
  padding-left: 50px;
}

.article-blog li::before, .content-sol-pro li::before {
  content: "➜"; /* flèche droite */
  position: absolute;
  left: 0;
  color: #BFBCBB; /* orange Tailwind par ex. */
}

.content-sol-pro h3 {
  color: #f39b5f;
  text-transform: uppercase;
  font-size: 16px;
  margin-bottom: 16px;
  font-family: "Syne", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}

.article-blog .toread {
  color: black;
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 16px;
    margin-top: 20px;
}

.article-blog a{
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: bold;
  font-style: normal;
  color: #f39b5f;
  text-decoration: underline;
}

.cta-article {
  position: relative;
  overflow: hidden;
}

.cta-article img {
  transition: transform 0.3s ease;
}

.cta-article .circle {
  transition: transform 0.3s ease, background-color 0.3s ease;
}

/* Hover effects */
.cta-article:hover img {
  transform: scale(1.01); /* léger zoom */
}

.cta-article:hover .circle {
  background-color: #f39b5f;
  transform: scale(1.3);
}

/* Form STYLE */

.form-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  padding: 10px 0;
  transition: border-color 0.3s;
  margin-bottom: 45px;
}

.form-projet .form-row {
  border-bottom: 1px solid rgba(0, 0, 0, 0.25);
}
.form-row:focus-within {
  border-color: #f39b5f;
}
.form-projet .form-row:focus-within {
  border-bottom: 2px solid;
  border-color: rgba(0, 0, 0, 0.50);
}
/* Cibler le label à gauche */
.form-row label {
  width: 20%;
  margin: 0;
  color: white;
  font-family: "Syne", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-size: 16px;
  text-transform: uppercase;
}
.form-projet label {
  color: black;
}
/* Cibler la span qui contient l'input */
.form-row .wpcf7-form-control-wrap {
  width: 80%;
  display: flex;
}

/* Appliquer le style à l'input */
.input-field {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: white;
  font-size: 16px;
  padding: 5px 0;
  font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}
.form-projet .input-field {
  color: black;
}
/* Supprimer les <br> automatiques */
.form-row br {
  display: none;
}

/* Supprimer le comportement block du <p> injecté */
.form-row p {
  display: contents;
}


.textarea-row {
  display: flex;
  flex-direction: column;
  padding: 10px 0;
  transition: border-color 0.3s;
}

.textarea-field:focus-within {
  border-color: #f39b5f;
}

.form-projet .textarea-field:focus-within {
  border: 2px solid rgba(0, 0, 0, 0.5);
}

.textarea-row label {
  color: white;
  font-weight: 500;
  text-transform: uppercase;
  font-family: "Syne", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}

.form-projet .textarea-row label {
  color: black;
}

.textarea-field {
  background: transparent;
  border: none;
  outline: none;
  color: white;
  font-size: 16px;
  resize: vertical;
  min-height: 100px;
  padding: 10px;
  width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 25px;
  margin-top: 20px;
  font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}

.form-projet .textarea-field {
  border: 1px solid rgba(0, 0, 0, 0.25);
  color: black;
}
.submit-row {
  margin-top: 20px;
  color: white;
  font-family: "Syne", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-size: 30px;
}
.form-projet .submit-row {
  color: black;
}
.submit-btn {
  background: transparent;
  border: none;
  border-bottom: 2px solid #f39b5f;
  padding: 10px 0;
  font-weight: bold;
  cursor: pointer;
  transition: opacity 0.3s;
}

.radio-row label {
  font-family: "Syne", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  text-transform: uppercase;
  font-size: 16px;

}
.marge-top {
  margin-top: 20px;
}
.wpcf7-list-item-label {
  font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}
.radio-row input {
  margin-right: 10px;
}
.wpcf7-list-item.first {
  margin-left: 0;
}
.req {
  color: #C9494B;
}

.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
    border-color: #f39b5f;
}

.wpcf7 form.sent .wpcf7-response-output {
    color: white;
    font-family: "Syne", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-size: 22px;
  border: none;
  text-align: center;
}

.form-projet .wpcf7 form.sent .wpcf7-response-output {
  color: black;
}

/* PAGE PROJETS */

.content-project p {
  margin-bottom: 48px;
  line-height: 24px;
  font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}


/* ANIM  */
@media (min-width: 1024px) {
  .fade-up {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.6s ease-out;
  }
  .fade-left {
    opacity: 0;
    transform: translateX(-30px);
    transition: all 0.6s ease-out;
  }
  .fade-right {
    opacity: 0;
    transform: translateX(30px);
    transition: all 0.6s ease-out;
  }

  .aos-animate {
    opacity: 1 !important;
    transform: translate(0, 0) !important;
  }
}



@media (max-width: 1024px) {
  :root {
    --color-design:     #f5f5f5;
    --color-research:   #de4d1d;
    --color-love:       #f39b5f;
    --radius:           140px;
  }
  .form-row label {
  width: 30%;
  }
  /* Cibler la span qui contient l'input */
  .form-row .wpcf7-form-control-wrap {
    width: 70%;
  }
}

@media (max-width: 768px) {
  :root {
    --color-design:     #f5f5f5;
    --color-research:   #de4d1d;
    --color-love:       #f39b5f;
    --radius:           100px;
  }
}

@media (max-width: 640px) {
  :root {
    --color-design:     #f5f5f5;
    --color-research:   #de4d1d;
    --color-love:       #f39b5f;
    --radius:           80px;
  }
}

