/* ===== RESET & BASE ===== */
*, *::before, *::after {
  box-sizing: border-box;
}

body {
  font-family: 'Lato', Helvetica, Arial, sans-serif !important;
  font-weight: 400 !important;
  font-size: clamp(.75rem, .6rem + .75vw, 1.5rem) !important;
  background-color: #F9F9F9;
  margin: 0;
  padding: 0;
}

/* ===== HEADER ===== */
header {
  font-family: 'Lato', Arial, Helvetica, sans-serif !important;
  font-weight: 400;
  padding: 0.75rem 1.25rem;
  width: 100%;
  min-height: 5rem;
  display: flex;
  align-items: center;
}

.header {
  padding-top: 15px;
}

@media (min-width: 768px) {
  .header {
    padding-top: 30px;
  }
}

/* ===== LOGO HEADER ===== */
.header-logo {
  width: 180px;
  height: auto;
}

.header-logo-mobile {
  width: 100px;
  height: auto;
}

@media (min-width: 576px) {
  .header-logo {
    width: 260px;
  }
}

@media (min-width: 992px) {
  .header-logo {
    width: 340px;
  }
}

@media (min-width: 1200px) {
  .header-logo {
    width: 400px;
  }
}

/* ===== SPECIAL FONT ===== */
.special-font {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 700;
}

/* ===== SECTION ===== */
section {
  margin-top: 2rem !important;
}

@media (min-width: 768px) {
  section {
    margin-top: 3rem !important;
  }
}

/* ===== BUTTONS ===== */
.invert {
  color: white;
  background-color: #F15A24 !important;
  border: 1px solid #F15A24 !important;
  border-radius: 2rem;
  width: fit-content;
  padding-left: 28px;
  padding-right: 28px;
  height: 35px;
  padding-top: 0;
  padding-bottom: 0;
  cursor: pointer;
  white-space: nowrap;
}

.invert:hover {
  color: black;
  border: 1px solid black !important;
  background-color: white !important;
  box-shadow: 0px 3px 6px #00000029;
}

@media (min-width: 768px) {
  .invert {
    padding-left: 42px;
    padding-right: 42px;
    height: 55px;
  }
}

.invert-white {
  color: black;
  background-color: transparent;
  border: 1px solid black;
  border-radius: 2rem;
  width: fit-content;
  padding-left: 28px;
  padding-right: 28px;
  height: 35px;
  padding-top: 0;
  padding-bottom: 0;
  cursor: pointer;
  white-space: nowrap;
}

.invert-white:hover {
  color: white;
  border: 1px solid #F15A24;
  background-color: #F15A24;
  box-shadow: 0px 3px 6px #00000029;
}

@media (min-width: 768px) {
  .invert-white {
    padding-left: 42px;
    padding-right: 42px;
    height: 55px;
  }
}

/* ===== DEMO SECTION ===== */
.bg-demo {
  border-radius: 1rem;
  margin-left: 1rem;
  margin-right: 1rem;
  padding: 1.25rem;
}

.orange {
  border-radius: 1rem;
  background-color: #F5F5F5;
}

.bg-demo .row {
  max-width: 100% !important;
}

@media (min-width: 576px) {
  .bg-demo {
    border-radius: 1.5rem;
    margin-left: 2rem;
    margin-right: 2rem;
    padding: 1.75rem;
  }
}

@media (min-width: 992px) {
  .bg-demo {
    border-radius: 2rem;
    margin-left: 4rem;
    margin-right: 4rem;
    padding: 2rem;
  }
}

.bg-discover {
  background-color: white;
  border-radius: 1rem;
  padding: 1.25rem;
  margin-bottom: 1.25rem;
}

@media (min-width: 576px) {
  .bg-discover {
    border-radius: 1.5rem;
  }
}

@media (min-width: 1200px) {
  .bg-discover {
    border-radius: 2rem;
    padding: 4rem;
    margin-bottom: 0;
  }
}

/* On cible les champs de saisie et les sélecteurs du formulaire */
#firstname, #lastname, #company, #email, #source_select {
    width: 100%; /* Par défaut, occupe la largeur disponible */
    
    /* Si vous voulez limiter la largeur comme le faisait "size=35" 
       mais de manière responsive (ex: entre 300px et 500px) */
    max-width: clamp(20rem, 50vw, 35rem); 
    
    /* Optionnel : pour que les champs ne soient pas collés sur mobile */
    box-sizing: border-box;
}

/* Si vous tenez à utiliser l'unité "ch" (largeur du caractère '0') 
   pour coller à votre logique de 20 à 35 caractères : */
#firstname, #lastname, #company, #email {
    width: clamp(20ch, 90%, 35ch);
}

/* ===== CHECK ICONS ===== */
.icon-chk {
  object-fit: contain;
  width: 1.75rem;
  flex-shrink: 0;
}

@media (min-width: 576px) {
  .icon-chk {
    width: 2rem;
  }
}

@media (min-width: 992px) {
  .icon-chk {
    width: 2.5rem;
  }
}

@media (min-width: 1200px) {
  .icon-chk {
    width: 3rem;
  }
}

/* ===== TYPOGRAPHY ===== */
.underTitle-fonts {
  font-size: 10px;
}

@media (min-width: 576px) {
  .underTitle-fonts {
    font-size: 13px;
  }
}

@media (min-width: 768px) {
  .underTitle-fonts {
    font-size: 17px;
  }
}
f
.sub-title {
  font-size: 1em;
  line-height: 1;
  font-weight: 800;
}

p {
  margin-bottom: 0 !important;
}

.title {
 font-size: 1.5em;
 line-height: 1;
 font-weight: 800;
 margin-bottom: 0 !important;
}

.big-title {
  font-size: 3em;
  line-height: 1;
  font-weight: 800;
  margin-bottom: 0 !important;
}

/* ===== FOOTER ===== */
footer {
  width: 100%;
  padding: 0;
}

.footer-mobile-resize {
  padding-top: 2.5rem;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

@media (min-width: 576px) {
  .footer-mobile-resize {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

@media (min-width: 992px) {
  .footer-mobile-resize {
    padding-left: 4rem;
    padding-right: 4rem;
  }
}

.footer-logo {
  height: auto;
}

.footer {
  font-family: 'Lato';
  font-weight: 400;
  font-size: clamp(0.5rem, 0.8rem + 1vw, 1.25rem);
  color: black;
  text-align: center;
}

.copyright {
  font-family: 'Lato';
  font-weight: 400;
  font-size: clamp(.65rem, 0.5rem + 0.6vw, 1.2rem);
  color: #8A8A8A;
  flex-wrap: wrap;
  gap: 0.5rem;
}

/* ===== HR ===== */
hr {
  width: 100%;
  margin: 0;
  padding: 0;
}

/* ===== FORMS ===== */

.wpcf7 input[type="submit"].invert {
  background-color: white !important;
  border: 1px solid white !important;
  border-radius: 2rem !important;
  color: black !important;
  padding: 0 28px !important;
  height: 42px !important;
  line-height: normal !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 700 !important;
  margin-right: 0 !important;
}

.wpcf7 input[type="submit"].invert:hover {
  color: white !important;
  border: 1px solid #F15A24 !important;
  background-color: #F15A24 !important;
  box-shadow: 0px 3px 6px #00000029 !important;
}

.wpcf7 form p:has(input[type="submit"]) {
  text-align: center !important;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
  border: none !important;
  border-radius: 2rem !important;
  padding: .75rem 2rem !important;
  height: auto !important;
  box-shadow: none !important;
}

.wpcf7 select {
  border: none !important;
  border-radius: 2rem !important;
  padding: .75rem 2rem !important;
  height: auto !important;
  box-shadow: none !important;
}

/* ===== UTILITIES ===== */
.typo-error {
  color: red;
  font-size: clamp(.75rem, 0.6rem + 0.75vw, 1.5rem);
}

.cursor-pointer {
  cursor: pointer;
}

.use-white-space-pre {
  white-space: pre-line;
}

.w-90 {
  width: 90% !important;
}

/* ===== SPACING UTILITIES ===== */
.mt-6 { margin-top: 8rem !important; }
.mt-7 { margin-top: 10rem !important; }
.mt-8 { margin-top: 12rem !important; }
.mt-9 { margin-top: 16rem !important; }
.mt-10 { margin-top: 20rem !important; }

.mb-6 { margin-bottom: 8rem !important; }
.mb-7 { margin-bottom: 10rem !important; }
.mb-8 { margin-bottom: 12rem !important; }
.mb-9 { margin-bottom: 16rem !important; }
.mb-10 { margin-bottom: 20rem !important; }

.pt-6 { padding-top: 8rem !important; }
.pt-7 { padding-top: 10rem !important; }
.pt-8 { padding-top: 12rem !important; }
.pt-9 { padding-top: 16rem !important; }
.pt-10 { padding-top: 20rem !important; }

.pb-6 { padding-bottom: 8rem !important; }
.pb-7 { padding-bottom: 10rem !important; }
.pb-8 { padding-bottom: 12rem !important; }
.pb-9 { padding-bottom: 16rem !important; }
.pb-10 { padding-bottom: 20rem !important; }

@media (min-width: 1200px) {
  .p-xl-6 {
    padding: 8rem !important;
  }
}

/* ===== CAPTCHA ===== */
#wp-captcha-consent {
  user-select: none;
}

#wp-captcha-consent:hover img {
  opacity: 0.8;
}