/* Generated by split-polish.py — do not edit directly.
   Source : polish.css. Regenerate by re-running the split script. */

/* Home testimonials : 4 text-editor widgets Elementor natifs (bg, border, border-radius, padding, box-shadow, typography italic via settings) */

/* Our-service buttons 246925b, 031dfca, eec3f8d, f59b5cb : styled 100% en Elementor (settings widget) */

/* Contact icon boxes : couleurs migrées dans Elementor widget settings (title_color, description_color, primary_color) */
.page-id-206 .elementor-widget-icon-box a {

  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1.5px;

}
/* Icon-box equal heights : force le widget à remplir toute la hauteur de sa colonne.
   Elementor free n'expose pas "stretch to column" sur icon-box widget.
   Sur tablet/desktop les colonnes sont en flex-row et stretched; sur mobile stacked
   chaque card est indépendante donc on met aussi un min-height. */
.page-id-206 .elementor-element-5b0c8fb .elementor-column > .elementor-widget-wrap,
.page-id-206 .elementor-element-5b0c8fb .elementor-column > .elementor-element-populated {

  height: 100%;
  display: flex;
  flex-direction: column;

}
.page-id-206 .elementor-element-5b0c8fb .elementor-widget-icon-box {

  flex: 1 1 auto;
  min-height: 260px;
  display: flex;
  flex-direction: column;
  justify-content: center;

}
.page-id-206 .elementor-element-5b0c8fb .elementor-widget-icon-box > .elementor-widget-container {

  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;

}
.page-id-206 .elementor-element-5b0c8fb .elementor-widget-icon-box .elementor-icon-box-wrapper {

  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;

}
/* Empêche l'email de déborder des cards en tablette/mobile */
.page-id-206 .elementor-element-5b0c8fb .elementor-icon-box-description {

  word-break: break-word;
  overflow-wrap: anywhere;
  max-width: 100%;

}
@media (max-width: 767px) {
  /* Mobile: cards stacked — min-height assez grand pour absorber le texte le plus long */
  .page-id-206 .elementor-element-5b0c8fb .elementor-widget-icon-box {

    min-height: 260px;
  
  }
}
/* ============================================================
   Contact page (206) : form styling + WCAG AA contrast
   ============================================================ */
/* Masquer le banner theme : cohérence avec home/about/ourservice/faq.
   Le H1 "Contactez-nous" vit maintenant dans le contenu Elementor
   (widget .bl-contact-h1), pas dans le banner. Contact est ajouté à
   BL_PAGES_HIDDEN_BANNER (constants.php) pour que le H1 du banner soit
   converti en span aria-hidden et éviter une duplication de H1. */
.page-id-206 .pt-breadcrumb {

  display: none !important;

}
.page-id-206 .bl-form-row {

  margin-bottom: 18px;

}
.page-id-206 .bl-form-row p {

  margin: 0;
  color: #2C3E50;

}
.page-id-206 .bl-form-row p br {

  display: none;

}
.page-id-206 .bl-form-row label {

  display: block;
  font-family: 'Kumbh Sans', 'Montserrat', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #2C3E50;
  margin-bottom: 6px;

}
.page-id-206 .bl-form-row input[type="text"],
.page-id-206 .bl-form-row input[type="email"],
.page-id-206 .bl-form-row textarea {

  width: 100%;
  min-height: 44px;
  padding: 12px 14px;
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  color: #2C3E50;
  background: #FFFFFF;
  border: 1px solid rgba(44, 62, 80, 0.18);
  border-radius: 10px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  box-sizing: border-box;

}
.page-id-206 .bl-form-row input[type="text"]:focus,
.page-id-206 .bl-form-row input[type="email"]:focus,
.page-id-206 .bl-form-row textarea:focus {

  border-color: #89ADC9;
  outline: none;
  box-shadow: 0 0 0 3px rgba(137, 173, 201, 0.25);

}
.page-id-206 .bl-form-row textarea {

  resize: vertical;
  min-height: 120px;

}
.page-id-206 .bl-form-consent {

  font-size: 13px;
  color: #5A6B7A;
  line-height: 1.5;
  margin-bottom: 20px;

}
.page-id-206 .bl-form-consent p {

  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: #5A6B7A;

}
.page-id-206 .bl-form-consent .wpcf7-list-item {

  margin: 0;
  display: inline;

}
.page-id-206 .bl-form-consent .wpcf7-list-item label {

  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;

}
.page-id-206 .bl-form-consent .wpcf7-list-item-label {

  display: inline;
  flex: 1;

}
.page-id-206 .bl-form-consent input[type="checkbox"] {

  margin-top: 3px;
  width: 18px;
  height: 18px;
  min-width: 18px;
  accent-color: #2C3E50;
  cursor: pointer;
  flex-shrink: 0;

}
.page-id-206 .bl-form-submit {

  margin-top: 8px;

}
.page-id-206 .wpcf7-form .bl-submit-btn,
.page-id-206 input[type="submit"].wpcf7-submit {

  background-color: #2C3E50 !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 14px 32px !important;
  font-family: 'Kumbh Sans', 'Montserrat', sans-serif !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  min-height: 50px;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(44, 62, 80, 0.15) !important;
  transition: background-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease !important;

}
.page-id-206 .wpcf7-form .bl-submit-btn:hover,
.page-id-206 input[type="submit"].wpcf7-submit:hover,
.page-id-206 .wpcf7-form .bl-submit-btn:focus,
.page-id-206 input[type="submit"].wpcf7-submit:focus {

  background-color: #1e2d3d !important;
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(44, 62, 80, 0.25) !important;

}
.page-id-206 .wpcf7-form .bl-submit-btn:focus-visible,
.page-id-206 input[type="submit"].wpcf7-submit:focus-visible {

  outline: 3px solid #89ADC9 !important;
  outline-offset: 3px !important;

}
.page-id-206 .wpcf7-not-valid-tip {

  color: #c0392b;
  font-size: 13px;
  margin-top: 4px;

}
.page-id-206 .wpcf7-response-output {

  margin-top: 16px;
  padding: 12px 16px;
  border-radius: 8px;
  font-size: 14px;

}
.page-id-206 .wpcf7 form.sent .wpcf7-response-output {

  background: rgba(137, 173, 201, 0.12);
  border: 1px solid #89ADC9;
  color: #2C3E50;

}
.page-id-206 .wpcf7 form.invalid .wpcf7-response-output,
.page-id-206 .wpcf7 form.unaccepted .wpcf7-response-output {

  background: rgba(192, 57, 43, 0.08);
  border: 1px solid #c0392b;
  color: #c0392b;

}

/* Message inline quand la case RGPD n'est pas cochée (injecté par contact-form.js)
   Palette brand (bleu) + ton chaleureux — pas d'alerte agressive en rouge. */
.page-id-206 .bl-rgpd-error {

  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 10px 0 0;
  padding: 12px 14px;
  background: rgba(137, 173, 201, 0.14);
  border-left: 3px solid #89ADC9;
  border-radius: 6px;
  color: #2C3E50;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
  animation: bl-rgpd-fade-in 0.35s ease-out;

}
.page-id-206 .bl-rgpd-error-arrow {

  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  background: #89ADC9;
  color: #FFFFFF;
  border-radius: 50%;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  animation: bl-rgpd-bounce 1.2s ease-in-out infinite;

}
@keyframes bl-rgpd-fade-in {

  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }

}
@keyframes bl-rgpd-bounce {

  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-3px); }

}
.page-id-206 .bl-form-consent.bl-rgpd-error-active label {

  background: rgba(137, 173, 201, 0.10);
  border-radius: 6px;
  padding: 6px 8px;
  margin: -6px -8px;
  transition: background 0.3s ease;

}
@media (prefers-reduced-motion: reduce) {

  .page-id-206 .bl-rgpd-error,
  .page-id-206 .bl-rgpd-error-arrow {
    animation: none;
  }

}

/* ============================================================
   Modal de confirmation envoi formulaire contact
   ============================================================ */
.bl-modal {

  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(44, 62, 80, 0.55);
  opacity: 0;
  transition: opacity 0.3s ease;

}
.bl-modal.is-open {

  opacity: 1;

}
.bl-modal-dialog {

  position: relative;
  width: 100%;
  max-width: 460px;
  padding: 40px 32px 32px;
  background: #FFFFFF;
  border-radius: 16px;
  box-shadow: 0 24px 60px rgba(44, 62, 80, 0.25);
  text-align: center;
  transform: translateY(12px) scale(0.96);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);

}
.bl-modal.is-open .bl-modal-dialog {

  transform: translateY(0) scale(1);

}
.bl-modal-close {

  position: absolute;
  top: 12px;
  right: 12px;
  width: 36px;
  height: 36px;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 50%;
  color: #2C3E50;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease;

}
.bl-modal-close:hover,
.bl-modal-close:focus-visible {

  background: rgba(137, 173, 201, 0.18);
  outline: none;

}
.bl-modal-icon {

  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin: 0 auto 18px;
  background: rgba(137, 173, 201, 0.18);
  border-radius: 50%;

}
.bl-modal[data-type="error"] .bl-modal-icon {

  background: rgba(192, 57, 43, 0.10);

}
.bl-modal-check-circle {

  stroke: #89ADC9;
  stroke-width: 3;
  stroke-dasharray: 152;
  stroke-dashoffset: 152;
  transform-origin: center;
  animation: bl-modal-circle 0.55s cubic-bezier(0.65, 0, 0.45, 1) forwards;

}
.bl-modal-check-path {

  stroke: #2C3E50;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 50;
  stroke-dashoffset: 50;
  animation: bl-modal-check 0.4s 0.45s cubic-bezier(0.65, 0, 0.45, 1) forwards;

}
.bl-modal[data-type="error"] .bl-modal-check-circle {

  stroke: #c0392b;

}
.bl-modal[data-type="error"] .bl-modal-check-path {

  stroke: #c0392b;
  d: path('M18 18 L34 34 M34 18 L18 34');

}
@keyframes bl-modal-circle {

  to { stroke-dashoffset: 0; }

}
@keyframes bl-modal-check {

  to { stroke-dashoffset: 0; }

}
.bl-modal-title {

  margin: 0 0 12px;
  font-family: 'Kumbh Sans', 'Montserrat', sans-serif;
  font-size: 24px;
  font-weight: 700;
  color: #2C3E50;
  line-height: 1.25;

}
.bl-modal-text {

  margin: 0 0 28px;
  color: #5a6b7a;
  font-size: 16px;
  line-height: 1.55;

}
.bl-modal-ok {

  display: inline-block;
  padding: 12px 32px;
  background: #2C3E50;
  color: #FFFFFF;
  border: none;
  border-radius: 999px;
  font-family: 'Kumbh Sans', 'Montserrat', sans-serif;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.25s ease, transform 0.2s ease;

}
.bl-modal-ok:hover,
.bl-modal-ok:focus-visible {

  background: #1e2d3d;
  transform: translateY(-1px);
  outline: none;

}
@media (max-width: 480px) {

  .bl-modal-dialog {
    padding: 32px 24px 24px;
  }
  .bl-modal-title {
    font-size: 20px;
  }
  .bl-modal-text {
    font-size: 15px;
  }

}
@media (prefers-reduced-motion: reduce) {

  .bl-modal,
  .bl-modal-dialog,
  .bl-modal-check-circle,
  .bl-modal-check-path {
    transition: none;
    animation: none;
  }
  .bl-modal-check-circle,
  .bl-modal-check-path {
    stroke-dashoffset: 0;
  }

}

/* Masque le message inline CF7 par défaut (la modal le remplace) */
.page-id-206 .wpcf7-response-output {

  display: none !important;

}

/* ============================================================
   Mobile — alignement uniforme 24px du bord viewport
   ============================================================ */
@media (max-width: 767px) {
  .page-id-206 .elementor-section.elementor-top-section {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  .page-id-206 .elementor-section.elementor-top-section > .elementor-container,
  .page-id-206 .elementor-column > .elementor-element-populated,
  .page-id-206 .elementor-column > .elementor-widget-wrap {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
