/* Force les polices système partout (aucun appel Google Fonts) */
html, body, button, input, select, textarea {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}
/* Header collé en haut de l'écran */
header.site-header,
.nv-header,
.nv-navbar,
.header-main {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  background: #fff;
}

/* Espace en haut du contenu pour ne pas qu'il passe sous le header */
@media (max-width: 767px){
  .site-main, .site-content, #content {
    padding-top: 64px;  /* ajuste à la hauteur réelle du header sur mobile */
  }
}

/* Ombre agréable */
header.site-header,
.nv-header,
.nv-navbar { box-shadow: 0 2px 10px rgba(0,0,0,.08); }

/* Admin bar */
@media (max-width: 782px){
  body.admin-bar header.site-header,
  body.admin-bar .nv-header,
  body.admin-bar .nv-navbar { top: 46px; }
}
/* Décale automatiquement toutes les ancres pour éviter qu'elles passent sous l'entête sticky */
:target { scroll-margin-top: 160px; }   /* ajuste 160px à la hauteur réelle du header mobile */
@media (min-width: 768px){
  :target { scroll-margin-top: 96px; } /* valeur un peu plus grande pour tablette/desktop si besoin */
}
/* ===== ProDispo – Formulaire recherche (mobile) ===== */
@media (max-width: 768px){

  /* Contrainte de largeur + centrage propre */
  .pd-search-form{
    --pd-gap: 10px;
    --pd-radius: 12px;
    --pd-input-pad: 10px 12px;
    --pd-font: 16px; /* ≥16px pour éviter le zoom iOS */
    max-width: 520px;
    margin: 0 auto;
    padding: 0 10px;
  }

  /* Évite les espaces inutiles dans la colonne Elementor */
  .pd-search-form .elementor-widget,
  .pd-search-form .jet-form-builder-row{
    margin-bottom: var(--pd-gap);
  }

  /* Champs : compacts mais confortables */
  .pd-search-form .jet-form-builder__field,
  .pd-search-form input[type="text"],
  .pd-search-form select,
  .pd-search-form textarea{
    font-size: var(--pd-font);
    padding: var(--pd-input-pad);
    border-radius: var(--pd-radius);
    line-height: 1.25;
  }

  /* Placeholder lisible, sans couper en 2 lignes si possible */
  .pd-search-form ::placeholder{
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /* Espacement interne des lignes JFB */
  .pd-search-form .jet-form-builder-row{
    gap: var(--pd-gap);
  }

  /* Supprime les margins par défaut trop grands des contrôles */
  .pd-search-form .jet-form-builder__calculated-field,
  .pd-search-form .jet-form-builder__field-wrap{
    margin: 0;
  }

  /* Bouton : pleine largeur + tappable */
  .pd-search-form .jet-form-builder__submit{
    width: 100%;
    padding: 14px 0;
    font-size: 16px;
    border-radius: 10px;
  }

  /* Option : rendre le CTA sticky en bas de l’écran (décommenter si tu veux) */
  /*
  .pd-search-form .jet-form-builder__actions{
    position: sticky;
    bottom: 10px;
    z-index: 5;
    background: transparent;
  }
  .pd-search-form .jet-form-builder__submit{
    box-shadow: 0 8px 20px rgba(0,0,0,.12);
  }
  */

  /* Petits drapeaux : alignés et discrets */
  .pd-search-form .wpml-ls-statics-shortcode_actions, 
  .pd-search-form .wpml-ls{
    margin: 6px 0 12px !important;
    display: flex; gap: 8px; align-items: center;
  }
  .pd-search-form .wpml-ls a{ padding: 4px 6px; border-radius: 8px; }
}

/* Focus accessible (desktop + mobile) */
.pd-search-form .jet-form-builder__field:focus{
  outline: 2px solid #0b2a57;
  box-shadow: 0 0 0 2px rgba(11,42,87,.12);
}
/* Bouton "Afficher plus de résultats" — style ProDispo */
#load-more-pros{
  display:inline-flex; align-items:center; justify-content:center;
  width:100%; max-width:320px; margin:14px auto 28px;
  min-height:48px; padding:12px 18px;
  border-radius:14px; border:1px solid #0b2a57;
  background:#0b2a57; color:#fff; font-weight:800; font-size:15px;
  letter-spacing:.2px; line-height:1; text-decoration:none;
  box-shadow:0 6px 18px rgba(11,42,87,.12);
  transition:background .2s ease, box-shadow .2s ease, transform .06s ease;
  cursor:pointer;
}
#load-more-pros:hover{
  background:#0a2550;
  box-shadow:0 10px 24px rgba(11,42,87,.18);
  transform:translateY(-1px);
}
#load-more-pros:active{ transform:translateY(0); box-shadow:0 4px 14px rgba(11,42,87,.14); }
#load-more-pros:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px rgba(11,42,87,.25), 0 8px 20px rgba(11,42,87,.18);
}
/* État désactivé / chargement */
#load-more-pros[disabled],
#load-more-pros.is-loading{
  opacity:.6; cursor:not-allowed; transform:none; box-shadow:none;
}

/* Optionnel: forcer l’alignement centré du conteneur */
.jet-listing-grid__load-more,
.elementor-widget-button{text-align:center;}

/* ===== Carte résultat ProDispo.ca — compact mobile-first ===== */
.pd-card{
  position:relative;
  display:block; padding:12px 14px; margin:8px 0;
  border-radius:12px; background:#fff;
  border:1px solid rgba(11,42,87,.10);
  box-shadow:0 1px 6px rgba(11,42,87,.06);
  transition:box-shadow .12s ease, transform .12s ease;
}
.pd-card:hover{ box-shadow:0 4px 12px rgba(11,42,87,.10); }
.pd-card:active{ transform:translateY(1px); }

/* Titre : clamp 2 lignes */
.pd-card__title{
  margin:0 0 4px; font-weight:800;
  font-size:16.5px; line-height:1.25; color:#0b2a57;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  word-break:break-word;
}

/* Sous-titre court : 1 ligne */
.pd-card__sub{
  margin:0 0 6px; font-size:13.5px; line-height:1.3; color:#2a456c; opacity:.95;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* Lien "Voir le profil" compact */
.pd-card__link .jet-dynamic-link__link{
  display:flex; align-items:center; gap:8px;
  min-height:36px; padding:4px 0;
  font-weight:700; font-size:13.5px; color:#0b2a57;
  text-decoration:underline; text-underline-offset:2px;
}
.pd-card__link .jet-dynamic-link__link:focus{
  outline:2px solid #99b6ff; outline-offset:2px;
}
.pd-card__link .jet-dynamic-link__link::after{
  content:"›"; font-size:18px; line-height:1; margin-left:auto;
}

/* Email (visible; le masquage visuel sera fait via JS) */
.pd-card__email{
  display:block;
  color:#2a456c;
  font-size:13.5px;
  margin:0 0 6px;
  word-break:break-all;
}

/* Espacement entre items du Listing Grid */
.jet-listing-grid__item{ margin-bottom:8px; }

/* Desktop/tablette : légère montée en taille */
@media (min-width: 769px){
  .pd-card{ padding:14px 16px; border-radius:14px; }
  .pd-card__title{ font-size:18px; }
  .pd-card__sub{ font-size:14px; }
}

/* Optionnel : rendre toute la carte cliquable en étendant le lien principal */
.pd-card--fullclick .pd-card__link .jet-dynamic-link__link{
  position:absolute; inset:0; text-indent:-9999px; border:none; text-decoration:none;
}
.pd-card--fullclick .pd-card__link .jet-dynamic-link__link::after{ content:""; }

/* DENSIFICATION A : carte compacte */
.pd-card--dense{
  padding:8px 10px;
  margin:6px 0;
  border-radius:10px;
  box-shadow:none;                /* moins d'air */
  border-color:#eef2f7;           /* bordure plus légère */
}
.pd-card--dense .pd-card__title{
  font-size:15px;
  line-height:1.2;
  margin:0 0 2px;
  -webkit-line-clamp:1;           /* 1 ligne pour gagner en hauteur */
}
.pd-card--dense .pd-card__sub{
  font-size:12.5px;
  margin:0 0 4px;
}
.pd-card--dense .pd-card__email{
  font-size:12.5px;
  margin:0;                       /* colle l'email */
}
.pd-card--dense .pd-card__link .jet-dynamic-link__link{
  min-height:30px;                /* plus petit que 36px */
  padding:2px 0;
  font-size:12.5px;
}
/* espace entre items réduit */
@media (max-width:767px){
  .jet-listing-grid__item{ margin-bottom:6px; }
}

/* Mobile : écart vertical plus serré entre les cartes */
@media (max-width: 767px){
  .jet-listing-grid__item{ margin-bottom:1px; }   /* avant 6–8px */
  .pd-card{ margin:6px 0; }                       /* avant 8–10px */
}

/* Contour plus foncé et net (tous écrans) */
.pd-card{
  border-width:1.5px;
  border-color:rgba(11,42,87,.22);  /* bleu ProDispo plus visible */
  box-shadow:0 1px 3px rgba(11,42,87,.05); /* ombre plus discrète */
}

/* Si tu utilises la variante dense, on renforce un peu aussi */
.pd-card--dense{
  border-color:rgba(11,42,87,.24);
  box-shadow:none;
}

/* Optionnel : petit feedback au survol/pression */
.pd-card:hover{ box-shadow:0 2px 8px rgba(11,42,87,.08); }
.pd-card:active{ transform:translateY(0); }

/* ====== WRAPPER & HAUTEUR ====== */
.pd-map { border-radius:14px; overflow:hidden; box-shadow:0 8px 24px rgba(11,42,87,.08); }
.pd-map .jet-map{ height:58vh; min-height:360px; }

/* ====== MARKERS TEXTE (labels) ====== */
.jet-map__marker-label{
  background:#0b2a57 !important; color:#fff !important;
  border:1px solid rgba(11,42,87,.15) !important;
  padding:8px 12px !important; border-radius:14px !important;
  font:700 14px/1 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif !important;
  white-space:nowrap !important; max-width:220px !important;
  overflow:hidden !important; text-overflow:ellipsis !important;
  box-shadow:0 6px 14px rgba(11,42,87,.18) !important;
}
.jet-map-marker{ position:relative; }
.jet-map-marker::after{ content:""; position:absolute; inset:-8px; } /* hit-area confortable */
@media (max-width:480px){
  .jet-map__marker-label{ font-size:13px !important; max-width:170px !important; padding:7px 10px !important; }
}

/* ====== POPUP (bulle) ====== */
.jet-map__popup, .gm-style .gm-style-iw, .leaflet-popup-content-wrapper{
  border-radius:14px !important; overflow:hidden !important;
  box-shadow:0 18px 40px rgba(11,42,87,.16) !important;
}
.leaflet-popup-content, .gm-style .gm-style-iw-d{
  width:100% !important; max-width:92vw !important;
  max-height:60vh !important; overflow:auto !important;
  padding:14px !important;
  font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; color:#0b2a57;
}
.pd-popup-title{ font-weight:800; margin:0 0 6px; }
.pd-popup-meta{ opacity:.75; font-size:13px; margin:0 0 10px; }
a.pd-btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; padding:10px 14px; border-radius:12px;
  background:#0b2a57; color:#fff !important; text-decoration:none; font-weight:800;
  box-shadow:0 6px 12px rgba(11,42,87,.18);
}
.leaflet-popup-tip, .gm-style .gm-style-iw-t{ display:none !important; } /* pas de « pin » */

/* ====== CLUSTERS (look ProDispo) – couvre Leaflet & Google ====== */
/* Leaflet */
.marker-cluster div{
  background:#0b2a57 !important; color:#fff !important;
  border-radius:999px !important; border:2px solid #fff !important;
  box-shadow:0 6px 14px rgba(11,42,87,.18) !important;
  font:800 13px/1 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif !important;
}
/* Google (fallback générique) */
[class*="cluster"] div, .gm-cluster, .gm-cluster-icon{
  background:#0b2a57 !important; color:#fff !important;
  border-radius:999px !important; border:2px solid #fff !important;
  box-shadow:0 6px 14px rgba(11,42,87,.18) !important;
  font-weight:800 !important;
}

/* 1) Ajoute une zone tampon en bas de page pour absorber les sauts du viewport mobile */
.pd-main, .site-main, .nv-content-wrap {
  padding-bottom: max(24px, env(safe-area-inset-bottom)); /* iPhone notch friendly */
}

/* 2) Empêche l’“ancrage de défilement” de ramener la page plus haut à la fin du scroll */
html { scroll-behavior: auto; }           /* évite certains retours intempestifs */
.pd-proof, .pd-featured, .pd-faq { 
  overflow-anchor: none;                  /* sections proches du bas */
}

/* 3) Si un élément fixé (cookie bar, bouton remontée, barre chat) recouvre le footer,
      laisse 56px d'air (à ajuster) */
body.has-fixed-bottom, .nv-content-wrap.has-fixed-bottom {
  padding-bottom: calc(56px + env(safe-area-inset-bottom));
}

/* Option confort visuel du footer Neve */
.site-footer, .footer-bottom { border-top:1px solid #e7eef9; }

/* Carte profil – card légère */
.single-professionnels .elementor-section.pd-profile-card,
.elementor-template-id-{{ID}} .pd-profile-card { /* remplace {{ID}} si tu veux cibler le template */
  background:#fff; border:1px solid rgba(11,42,87,.08);
  border-radius:14px; box-shadow:0 6px 18px rgba(11,42,87,.06);
  padding:min(4vw,22px); margin-bottom:24px;
}

/* Titre + sous-titre (nom + fonctions) */
.pd-headline h1{font-size:clamp(20px,3.8vw,28px); line-height:1.2; margin:0 0 6px}
.pd-subtitle{font-size:clamp(13px,2.8vw,15px); color:#5a6b86}

/* Image/logo du pro */
.pd-avatar img{display:block; width:88px; height:88px; object-fit:cover; border-radius:12px}

/* Listes d’icônes (téléphone, email, site, langues, etc.) */
.pd-ico-list{display:flex; flex-direction:column; gap:10px; margin:12px 0}
.pd-ico{display:flex; align-items:center; gap:10px}
.pd-ico i, .pd-ico svg{flex:0 0 18px}
.pd-ico a{word-break:break-word; text-decoration:none}
.pd-ico a:hover{text-decoration:underline}

/* Heures d’ouverture (repeater) */
.pd-hours{display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-bottom:1px dashed rgba(11,42,87,.15)}
.pd-hours:last-child{border-bottom:0}
.pd-day{font-weight:600}

/* Bloc “infos ligne par ligne” */
.pd-row{display:flex; gap:8px; padding:6px 0}
.pd-label{min-width:180px; color:#5a6b86}
@media (max-width:600px){
  .pd-row{flex-direction:column}
  .pd-label{min-width:auto}
}

/* Boutonnière “Pro connecté” */
.pd-probar{display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 20px}
.pd-probar .button{display:inline-flex; align-items:center; height:40px; padding:0 14px;
  border:1px solid #0b2a57; border-radius:10px; background:#fff; color:#0b2a57; font-weight:700}
.pd-probar .button:hover{background:#0b2a57; color:#fff}

/* Lien itinéraire sous la carte */
.pd-map-link{display:inline-block; margin-top:8px; font-weight:700}

/* Nettoyage des vides automatiques */
.pd-hide-if-empty:empty{display:none}

/* ——— Enveloppe ——— */
.pro-account-wrap{max-width:720px;margin:0 auto}
@media (max-width:767px){
  .pro-account-wrap{padding:8px 12px}
  .pro-account-wrap .jet-form-row{gap:12px; margin-bottom:12px}
  .pro-account-wrap .jet-form__label{font-size:15px; margin-bottom:6px; line-height:1.2}
  .pro-account-wrap input[type="text"],
  .pro-account-wrap input[type="email"],
  .pro-account-wrap input[type="password"]{
    width:100%; min-height:48px; padding:12px 14px; font-size:16px; border-radius:10px;
  }
  .pro-account-wrap .jet-form__submit{
    width:100%; min-height:48px; border-radius:12px; font-weight:800; letter-spacing:.2px;
  }
  /* Légendes compactes + confiance */
  .pro-account-wrap .jet-form__desc, .pro-legal, .pro-notes{font-size:12px; line-height:1.35; opacity:.9}
}

/* Messages uniques et lisibles */
.pro-account-wrap .jet-form__message{margin:14px 0 0; border-radius:10px; padding:12px 14px; font-size:14px}
.pro-account-wrap .jet-form__message-success{background:#e9f8ef; border:1px solid #a9e3bf}
.pro-account-wrap .jet-form__message-error{background:#fdeeee; border:1px solid #f5b5b5}
/* Si succès, masquer une éventuelle erreur résiduelle */
.pro-account-wrap .jet-form__message-success ~ .jet-form__message-error{display:none!important}

/* Prévenir le double-clic */
.pro-account-wrap .is-loading .jet-form__submit{opacity:.7; pointer-events:none}

/* Assure que rien ne recouvre le CTA sur mobile */
@media (max-width: 768px){
  .pd-form .jet-form-builder__actions{ position: relative; z-index: 5; }
  .pd-form .jet-form-builder__submit{ pointer-events: auto; }
  /* Si une classe .is-loading reste collée, on n'empêche plus le clic */
  .pd-form .is-loading .jet-form-builder__submit{ pointer-events: auto; opacity: 1; }
}

/* Sécurise les zones fixes en haut/bas (headers/bars) */
.pd-form, .pd-form * { pointer-events: auto; }

/* Positionne et rend cliquable l'icône œil */
.pd-form .jet-form-builder__field-wrap{ position: relative; }
.pd-form .jet-form-builder__eye,
.pd-form .password-toggle{
  position: absolute;
  right: 12px; top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  pointer-events: auto;
  cursor: pointer;
}

#inscription-pro .lp-proof,
#inscription-pro .lp-proof *{ overflow:visible !important; max-height:none !important; }

.elementor-widget-container:has(#inscription-pro),
.elementor-widget-html:has(#inscription-pro),
#inscription-pro .lp-proof,
#inscription-pro .lp-proof img{
  overflow: visible !important;
  max-height: none !important;
  object-fit: contain !important;
}
.avis-info-public {
  font-size: 13px;
  color: #6b7280; /* gris doux */
  text-align: center;
  margin-top: 8px;
}
