.elementor-kit-8{--e-global-color-primary:#0B0B0C;--e-global-color-secondary:#F4F1EB;--e-global-color-text:#14141A;--e-global-color-accent:#C2381A;--e-global-color-accentbright:#F2612F;--e-global-color-accenthover:#9E2B11;--e-global-color-papieralt:#E9E4DB;--e-global-color-surface:#FCFAF6;--e-global-color-ink2:#151518;--e-global-color-ink3:#1E1E23;--e-global-color-textmuted:#55545C;--e-global-color-textinvert:#F6F3EE;--e-global-color-textinvmuted:#A8A5A0;--e-global-typography-primary-font-family:"Oswald";--e-global-typography-primary-font-size:132px;--e-global-typography-primary-font-weight:700;--e-global-typography-primary-text-transform:uppercase;--e-global-typography-primary-line-height:0.88em;--e-global-typography-primary-letter-spacing:-1px;--e-global-typography-secondary-font-family:"Oswald";--e-global-typography-secondary-font-size:62px;--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-line-height:1.02em;--e-global-typography-secondary-letter-spacing:-0.5px;--e-global-typography-text-font-family:"Instrument Sans";--e-global-typography-text-font-size:20px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.62em;--e-global-typography-accent-font-family:"Oswald";--e-global-typography-accent-font-size:16px;--e-global-typography-accent-font-weight:500;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.2em;--e-global-typography-accent-letter-spacing:1.4px;background-color:#F4F1EB;}.elementor-kit-8 e-page-transition{background-color:#0B0B0C;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-8{--e-global-typography-primary-font-size:80px;--e-global-typography-secondary-font-size:46px;--e-global-typography-text-font-size:18px;--e-global-typography-accent-font-size:15px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-8{--e-global-typography-primary-font-size:50px;--e-global-typography-secondary-font-size:33px;--e-global-typography-text-font-size:17px;--e-global-typography-accent-font-size:14px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ======================================================================
   VIJUALIZE - ajustements globaux
   ====================================================================== */

/* --- 1. Header en surimpression sur le hero (accueil seulement) --- */
/* Le header reste dans le flux : le sticky d'Elementor peut faire son travail.
   C'est le hero qui remonte sous lui par une marge negative. */
body.home .elementor-19 > .e-con:first-child {
  margin-top: -84px;
  padding-top: 84px;
}
body.home header.elementor-location-header {
  position: relative;
  z-index: 99;
}
@media (max-width: 1024px) {
  body.home .elementor-19 > .e-con:first-child { margin-top: -64px; padding-top: 64px; }
}

/* --- 2. Liens dans les blocs de texte : plus de bleu par defaut --- */
.elementor-widget-text-editor a {
  color: #C2381A;
  text-decoration: none;
  border-bottom: 1px solid rgba(194, 56, 26, .34);
  transition: color .2s ease, border-color .2s ease;
}
.elementor-widget-text-editor a:hover,
.elementor-widget-text-editor a:focus-visible {
  color: #9E2B11;
  border-bottom-color: #9E2B11;
}
/* Sur les sections sombres */
#contact .elementor-widget-text-editor a,
.elementor-location-footer .elementor-widget-text-editor a,
.elementor-element-secpf01 .elementor-widget-text-editor a,
.elementor-element-secpr01 .elementor-widget-text-editor a {
  color: #F6F3EE;
  border-bottom-color: rgba(246, 243, 238, .28);
}
#contact .elementor-widget-text-editor a:hover,
.elementor-location-footer .elementor-widget-text-editor a:hover,
.elementor-element-secpf01 .elementor-widget-text-editor a:hover,
.elementor-element-secpr01 .elementor-widget-text-editor a:hover {
  color: #F2612F;
  border-bottom-color: #F2612F;
}
/* Liste de navigation du pied de page : pas de soulignement */
.elementor-location-footer .elementor-widget-text-editor ul a {
  border-bottom: 0;
}

/* --- 3. Accordeon FAQ : icone alignee sur le titre --- */
.elementor-accordion .elementor-tab-title {
  display: flex;
  align-items: center;
  gap: 14px;
}
.elementor-accordion .elementor-accordion-icon {
  float: none;
  width: auto;
  margin: 0;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  line-height: 1;
}
.elementor-accordion .elementor-accordion-title {
  display: block;
  flex: 1 1 auto;
}

/* --- 4. WPForms : champs et bouton dans la palette --- */
.wpforms-container .wpforms-field-label {
  font-family: "Instrument Sans", sans-serif !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  color: #14141A !important;
  margin-bottom: 7px !important;
}
.wpforms-container .wpforms-field-sublabel,
.wpforms-container .wpforms-field-description {
  font-family: "Instrument Sans", sans-serif !important;
  color: #55545C !important;
}
.wpforms-container input[type=text],
.wpforms-container input[type=email],
.wpforms-container input[type=tel],
.wpforms-container select,
.wpforms-container textarea {
  border: 1px solid rgba(20, 20, 26, .22) !important;
  border-radius: 2px !important;
  background-color: #FFFDFA !important;
  font-family: "Instrument Sans", sans-serif !important;
  font-size: 16px !important;
  padding: 12px 14px !important;
  color: #14141A !important;
  box-shadow: none !important;
}
.wpforms-container input:focus,
.wpforms-container select:focus,
.wpforms-container textarea:focus {
  border-color: #C2381A !important;
  outline: 2px solid rgba(194, 56, 26, .18);
  outline-offset: 1px;
}
.wpforms-container .wpforms-submit {
  background-color: #C2381A !important;
  border: 0 !important;
  color: #F6F3EE !important;
  font-family: "Oswald", sans-serif !important;
  font-weight: 500 !important;
  font-size: 16px !important;
  text-transform: uppercase;
  letter-spacing: 1.1px;
  border-radius: 2px !important;
  padding: 15px 30px !important;
  cursor: pointer;
  transition: background-color .2s ease;
}
.wpforms-container .wpforms-submit:hover,
.wpforms-container .wpforms-submit:focus-visible {
  background-color: #9E2B11 !important;
}
.wpforms-container .iti__country-list {
  font-family: "Instrument Sans", sans-serif;
}
.wpforms-confirmation-container-full {
  background-color: #FCFAF6 !important;
  border: 1px solid rgba(194, 56, 26, .3) !important;
  border-left: 3px solid #C2381A !important;
  border-radius: 2px !important;
  font-family: "Instrument Sans", sans-serif !important;
  color: #14141A !important;
}

/* --- 5. Rien de colle : les libelles en majuscules respirent --- */
.vjz-label .elementor-heading-title {
  letter-spacing: 1.3px !important;
}

/* --- 6. Focus visible partout (accessibilite) --- */
a:focus-visible,
button:focus-visible,
.elementor-button:focus-visible {
  outline: 2px solid #F2612F;
  outline-offset: 3px;
}
/* --- 7. Grille portfolio : cadrage regulier, formats varies --- */
.elementor-element-pfgr01 > .e-con { aspect-ratio: 4 / 5; overflow: hidden; }
.elementor-element-pfgr01 > .elementor-element-pf0x, .elementor-element-pfgr01 > .elementor-element-pf5x { aspect-ratio: 16 / 10; }
.elementor-element-pfgr01 .elementor-widget-image,
.elementor-element-pfgr01 .elementor-widget-image .elementor-widget-container,
.elementor-element-pfgr01 .elementor-widget-image figure,
.elementor-element-pfgr01 .elementor-widget-image a { height: 100%; width: 100%; margin: 0; display: block; }
.elementor-element-pfgr01 .elementor-widget-image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.elementor-element-pfgr01 > .e-con:hover img { transform: scale(1.04); }
@media (max-width: 767px) { .elementor-element-pfgr01 > .e-con, .elementor-element-pf0x, .elementor-element-pf5x { aspect-ratio: 4 / 5; } }


/* --- 9. Header mobile : logo et menu sur une seule ligne --- */
@media (max-width: 1024px) {
  .elementor-element-hdrin { flex-direction: row !important; align-items: center !important; justify-content: space-between !important; flex-wrap: nowrap !important; }
  .elementor-element-hdrnavw { flex-direction: row !important; align-items: center !important; justify-content: flex-end !important; width: auto !important; flex: 0 0 auto !important; }
  .elementor-element-hdrlogo { flex: 0 0 auto; }
}
@media (max-width: 767px) {
  .elementor-element-hdrbtn .elementor-button { padding: 10px 15px; font-size: 13px; }
}

/* --- 10. Header mobile : burger centre sur le logo --- */
@media (max-width: 1024px) {
  .elementor-element-hdrin > .elementor-element { align-self: center !important; }
  .elementor-element-hdrnavw, .elementor-element-hdrnav { align-self: center !important; }
  .elementor-element-hdrnav > .elementor-widget-container { display: flex; align-items: center; justify-content: flex-end; }
  .elementor-element-hdrnav .elementor-menu-toggle { margin-left: auto; }
}

/* --- 12. Menu deroulant mobile : fond sombre et ouverture fiable --- */
@media (max-width: 1024px) {
  .elementor-element-hdrnav .elementor-nav-menu--dropdown,
  .elementor-element-hdrnav .elementor-nav-menu--dropdown ul,
  .elementor-element-hdrnav .elementor-nav-menu--dropdown .elementor-nav-menu {
    background-color: #0B0B0C !important;
    border: 1px solid rgba(246, 243, 238, .14);
  }
  .elementor-element-hdrnav .elementor-nav-menu--dropdown a {
    color: #F6F3EE !important;
  }
  .elementor-element-hdrnav .elementor-nav-menu--dropdown a:hover,
  .elementor-element-hdrnav .elementor-nav-menu--dropdown a.elementor-item-active {
    color: #F2612F !important;
    background-color: rgba(246, 243, 238, .06) !important;
  }
}


/* --- 14. WPForms : correctifs de mise en page --- */
/* Le select etait coupe : 26,4px de line-height + 24px de padding dans 43px */
.wpforms-container select {
  line-height: 1.2 !important;
  height: auto !important;
  min-height: 48px !important;
  padding-right: 38px !important;
}
/* Le drapeau chevauchait le numero : intl-tel-input pose son propre padding */
.wpforms-container .iti input[type=tel],
.wpforms-container input.iti__tel-input {
  padding-left: 56px !important;
}
.wpforms-container .iti { width: 100%; display: block; }
.wpforms-container input[type=text],
.wpforms-container input[type=email],
.wpforms-container input[type=tel] { min-height: 48px !important; }
.wpforms-container .wpforms-field { padding: 0 0 20px 0 !important; }
.wpforms-container .wpforms-field-container { display: block; }

/* --- 15. Burger : plus de carre bleu du navigateur --- */
.elementor-menu-toggle {
  background-color: transparent !important;
  border-radius: 2px;
}
.elementor-menu-toggle:focus { outline: none !important; }
.elementor-menu-toggle:focus-visible {
  outline: 2px solid #F2612F !important;
  outline-offset: 3px;
}

/* --- 16. Bouton retour en haut dans la palette --- */
#ast-scroll-top {
  background-color: #C2381A !important;
  color: #F6F3EE !important;
  border-radius: 2px !important;
}
#ast-scroll-top:hover { background-color: #9E2B11 !important; }

/* --- 17. Grille du portfolio : cadrage regulier --- */
.elementor-element-pgrid > .e-con { aspect-ratio: 2 / 3; overflow: hidden; }
.elementor-element-pgrid .elementor-widget-image,
.elementor-element-pgrid .elementor-widget-image .elementor-widget-container,
.elementor-element-pgrid .elementor-widget-image figure,
.elementor-element-pgrid .elementor-widget-image a { height: 100%; width: 100%; margin: 0; display: block; }
.elementor-element-pgrid .elementor-widget-image img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .5s ease, filter .3s ease;
}
.elementor-element-pgrid > .e-con:hover img { transform: scale(1.04); }


/* Portrait du a-propos.
   Le ratio va sur le CONTENEUR du widget, jamais sur l'img : Elementor 4 ne
   genere plus de .elementor-widget-container, et LiteSpeed remplace l'img par
   un SVG placeholder pendant le lazy load. Sans hauteur reservee, le texte
   remonte et se superpose a l'image. */
.elementor-element-apimgc .elementor-widget-image {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
}
.elementor-element-apimgc .elementor-widget-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  aspect-ratio: auto;
}/* End custom CSS */