/* Smooth scroll natif + compensation header sticky pour toutes les ancres
   ============================================================ */
:root {
  --site-header-offset: 130px;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--site-header-offset);
}

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

/* ============================================================
   Mobile/Tablet : Hero TEXTE en TOP (above-the-fold = value prop),
   image en dessous comme illustration
   ============================================================ */
@media (max-width: 1024px) {

  .elementor-element-8e2b769 > .elementor-container {
    flex-direction: column !important;
  }
  .elementor-element-08ff1b9 {
    order: 1 !important;
    width: 100% !important;
  }
  .elementor-element-84d0cf0 {
    order: 2 !important;
    width: 100% !important;
  }
  .elementor-element-08ff1b9 > .elementor-element-populated {
    padding: 60px 40px !important;
  }

}
/* ============================================================
   Mobile : Section navy CTA — moins lourde, padding réduit
   ============================================================ */
@media (max-width: 768px) {

  .elementor-element-dff7b79 {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

}
/* ============================================================
   Mobile : tap states pour buttons (au lieu de hover)
   ============================================================ */
@media (hover: none) {

  .elementor-button:active,
  .pt-button:active,
  .bl-newsletter-form button:active {
    transform: scale(0.97);
    opacity: 0.9;
  }

}
/* ============================================================
   Tablet (768-1024) : ajustements spécifiques
   ============================================================ */
@media (min-width: 768px) and (max-width: 1024px) {

  /* Mon accompagnement : carousel doit montrer 2 cards visibles */
  .elementor-element-b344dfe .pt-service-style-1 {
    max-width: 95% !important;
    margin: 0 auto !important;
  }
  /* Section padding plus généreux */
  .elementor-element-f0cc311,
  .elementor-element-e2d5e92,
  .elementor-element-c816147 {
    padding-left: 40px !important;
    padding-right: 40px !important;
  }
  /* Footer legacy 2-col tablet override : retiré (cols 2-3 maintenant actives) */

}
/* Mobile : carousel remplacé par scroll-snap CSS natif */
@media (max-width: 768px) {

  .elementor-element-b344dfe .mobile-scroll-snap {
    display: flex !important;
    flex-direction: row !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    gap: 16px;
    padding: 12px 0;
    scrollbar-width: none;
  }
  .elementor-element-b344dfe .mobile-scroll-snap::-webkit-scrollbar { display: none; }
  .elementor-element-b344dfe .mobile-scroll-snap > .owl-item,
  .elementor-element-b344dfe .mobile-scroll-snap > .item {
    flex: 0 0 100% !important;
    scroll-snap-align: center;
    width: 100% !important;
    min-width: 100% !important;
    margin: 0 !important;
  }
  .elementor-element-b344dfe .mobile-scroll-snap .pt-service-style-1 {
    width: 100%;
    max-width: 100%;
  }

  /* Bouton Prendre rendez-vous : fit content */
  .elementor-element-fa318b5 .pt-button {
    padding: 16px 28px !important;
    white-space: nowrap;
    font-size: 13px !important;
  }

}
/* Dots visibles seulement sur mobile/tablet où le slider sert */
@media (max-width: 1023px) {

  .elementor-6689 .elementor-element.elementor-element-b344dfe .owl-dots {
    display: flex !important;
    justify-content: center;
    gap: 12px;
    margin-top: 30px;
    padding: 8px 0 !important;
    min-height: 28px;
    align-items: center;
  }

}
/* Mobile : grille 2x2 forcée (au lieu de 4 images stackées) — section bd88a7a */
@media (max-width: 768px) {

  .elementor-element-bd88a7a > .elementor-container {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 20px !important;
    flex-direction: row !important;
  }
  .elementor-element-bd88a7a .elementor-row {
    display: contents !important;
  }
  .elementor-element-bd88a7a > .elementor-container > .elementor-column,
  .elementor-element-bd88a7a > .elementor-container > .elementor-row > .elementor-column {
    width: 100% !important;
    flex: none !important;
    max-width: none !important;
  }
  .elementor-element-bd88a7a .elementor-element-populated {
    padding: 0 !important;
    margin: 0 !important;
  }
  .elementor-element-bd88a7a .elementor-widget-image,
  .elementor-element-bd88a7a .elementor-widget {
    margin: 0 !important;
  }
  /* Espacement vertical entre les 2 lignes de la grille mobile (la grid du container ne propage pas sur les widgets internes empilés en flex dans chaque colonne) */
  .elementor-element-bd88a7a .elementor-widget-image:first-child {
    margin-bottom: 20px !important;
  }
  .elementor-element-bd88a7a .elementor-widget-image img {
    aspect-ratio: 4 / 3 !important;
    border-radius: 10px !important;
    height: auto !important;
  }

}
@keyframes bl-pulse {
 0% { transform: scale(0.95); opacity: 0.8; } 50% { transform: scale(1.15); opacity: 0.2; } 100% { transform: scale(0.95); opacity: 0; } 
}
/* ============================================================
   Mobile typography normalization — hiérarchie cohérente
   H1 hero = 32px (le plus gros, hiérarchie)
   H2/H5 sections = 26px
   H2 CTA = 24px
   Sub-titles tags = 13px / 700
   Description = 15px
   ============================================================ */
@media (max-width: 480px) {

  /* Hero H1 : le plus gros */
  .elementor-element-8e2b769 h1,
  .elementor-element-8e2b769 .elementor-heading-title { font-size: 32px !important; line-height: 1.18 !important; }

  /* Tous les titres de sections : 26px */
  .elementor-6689 .elementor-element .pt-section-title,
  .elementor-element-f0cc311 .pt-section-title,
  .elementor-element-e2d5e92 .pt-section-title,
  .elementor-element-c816147 .pt-section-title { font-size: 26px !important; font-weight: 700 !important; line-height: 1.22 !important; }

  /* H2 CTA navy même taille que les autres titres */
  .elementor-6689 .elementor-element-dff7b79 .elementor-element-a9f3d5f h2,
  .elementor-element-dff7b79 .elementor-element-a9f3d5f h2,
  .elementor-element-dff7b79 .elementor-element-a9f3d5f .elementor-heading-title { font-size: 24px !important; line-height: 1.32 !important; font-weight: 600 !important; }

  /* Sub-titles tags uniformes — uppercase d'origine */
  .elementor-6689 .elementor-element.elementor-element-8e65473 .pt-section-title-box .pt-section-sub-title,
  .elementor-6689 .elementor-element.elementor-element-8eefafd .pt-section-title-box .pt-section-sub-title,
  .elementor-6689 .elementor-element .pt-section-sub-title,
  .pt-section-sub-title { font-size: 13px !important; font-weight: 700 !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; }

  /* Descriptions uniformes */
  .pt-section-description,
  .elementor-element-f0cc311 .pt-section-description,
  .elementor-element-c816147 .pt-section-description { font-size: 15px !important; line-height: 1.6 !important; }

  /* Icon-list checks À propos : taille raisonnable mobile */
  .elementor-element-6be91ef .elementor-icon-list-text,
  .elementor-element-6be91ef li,
  .elementor-element-6be91ef .elementor-icon-list-item,
  .elementor-6689 .elementor-element-6be91ef .elementor-icon-list-text { font-size: 14px !important; line-height: 1.55 !important; color: #2C3E50 !important; }

  /* Bouton "En savoir plus" : padding plus court pour fit 1 ligne */
  .elementor-element-ab77c09 .pt-button {
    padding: 16px 24px !important;
    font-size: 12px !important;
    white-space: nowrap;
  }

}
/* Sidebar hamburger toggle — caché sur desktop ≥1025px (utile uniquement pour le menu mobile) */
@media (min-width: 1025px) {

  .pt-header-action.menu-toggle,
  .pt-action-list .pt-toggle-btn,
  .pt-toggle-btn,
  .pt-header .menu-toggle,
  header .menu-toggle,
  .pt-sidebar-toggle,
  .pt-action-search-toggle ~ .menu-toggle,
  header .navbar-toggler,
  .navbar-expand-lg .navbar-toggler { display: none !important; }

}

/* Loupe recherche — hover propre (rond beige foncé comme les réseaux sociaux) */
.pt-menu-search-block a:hover,
.pt-menu-search-block > a:hover,
.pt-action-search-toggle:hover {
  color: #2C3E50 !important;
  background-color: transparent !important;
}
/* Container max-width sur très grands écrans (>1280) — éviter la dispersion */
@media (min-width: 1281px) {

  .elementor-element-8e2b769 > .elementor-container,
  .elementor-element-f0cc311 > .elementor-container,
  .elementor-element-e2d5e92 > .elementor-container,
  .elementor-element-dff7b79 > .elementor-container,
  .elementor-element-c816147 > .elementor-container {
    max-width: 1280px !important;
    margin: 0 auto !important;
  }

}
/* Header tablette — réduire la hauteur (130px → ~88px) */
@media (min-width: 768px) and (max-width: 1024px) {

  .pt-main-header,
  .pt-main-header .pt-header-row,
  header .pt-main-header { min-height: 88px !important; }
  .pt-main-header .pt-header-row { padding-top: 12px !important; padding-bottom: 12px !important; }

}
/* Top bar 1920 — limiter la largeur de contenu */
@media (min-width: 1601px) {

  .pt-top-header .container-fluid,
  .pt-top-header .container,
  .pt-main-header .container-fluid,
  .pt-main-header .container {
    max-width: 1280px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

}
/* Hero mobile : tasser espaces internes pour réduire la hauteur */
@media (max-width: 768px) {

  .elementor-element-8e2b769 .elementor-element-08ff1b9 .elementor-widget-heading,
  .elementor-element-8e2b769 .elementor-element-08ff1b9 .elementor-widget-text-editor {
    margin-bottom: 12px !important;
  }
  .elementor-element-8e2b769 .elementor-element-3220ac9 {
    margin-bottom: 8px !important;
  }
  .elementor-element-8e2b769 h1.elementor-heading-title {
    font-size: 28px !important;
    line-height: 1.2 !important;
    margin-bottom: 8px !important;
  }
  .elementor-element-8e2b769 .elementor-element-d6bd3bc p {
    font-size: 14px !important;
    line-height: 1.55 !important;
    margin: 0 0 6px !important;
  }
  .elementor-element-8e2b769 .elementor-section.elementor-inner-section {
    margin-top: 12px !important;
  }

}
/* Image col gauche — sticky desktop + ombre + radius */
@media (min-width: 1025px) {

  /* main.site-main has overflow:hidden which breaks sticky — override pour cette page */
  .page-id-166 main.site-main,
  .page-id-166 .site-main { overflow: visible !important; }
  .page-id-166 .elementor-element-7a8f3fa9 {
    position: sticky;
    top: 110px;
    align-self: flex-start;
  }
  .page-id-166 .elementor-element-7a8f3fa9 > .elementor-element-populated {
    padding: 0 !important;
  }
  .page-id-166 .elementor-element-7a8f3fa9 .elementor-widget-image:first-child img {
    border-radius: 16px !important;
    box-shadow: 0 30px 60px rgba(44,62,80,0.18), 0 8px 20px rgba(44,62,80,0.10);
    width: 100% !important;
    height: auto;
  }
  /* Cacher la 2e image — la 1re suffit */
  .page-id-166 .elementor-element-7a8f3fa9 .elementor-widget-image:nth-child(n+2) {
    display: none;
  }

}
/* Tablet : image entière (sans crop) en haut, ratio naturel préservé */
@media (min-width: 768px) and (max-width: 1024px) {

  .page-id-166 .elementor-element-4356eaad > .elementor-container {
    padding: 0 40px !important;
  }
  .page-id-166 .elementor-element-7a8f3fa9 .elementor-widget-image:first-child img {
    border-radius: 14px;
    width: 100%;
    height: auto;
    box-shadow: 0 18px 40px rgba(44,62,80,0.15);
  }
  .page-id-166 .elementor-element-7a8f3fa9 .elementor-widget-image:nth-child(n+2) { display: none; }

}
/* Mobile : photo de Claire EN HAUT (page de présentation : on voit qui c'est avant de lire),
   image entière sans crop pour préserver le visage quelle que soit la photo */
@media (max-width: 767px) {

  .page-id-166 .elementor-element-4356eaad > .elementor-container {
    flex-direction: column !important;
    padding: 0 20px !important;
  }
  .page-id-166 .elementor-element-7a8f3fa9 {
    order: 1 !important;
    width: 100% !important;
    margin-bottom: 30px;
  }
  .page-id-166 .elementor-element-18dd37f1 {
    order: 2 !important;
    width: 100% !important;
  }
  .page-id-166 .elementor-element-7a8f3fa9 .elementor-widget-image:first-child img {
    border-radius: 12px;
    width: 100%;
    height: auto;
    box-shadow: 0 14px 32px rgba(44,62,80,0.15);
  }
  .page-id-166 .elementor-element-7a8f3fa9 .elementor-widget-image:nth-child(n+2) { display: none; }
  .page-id-166 .elementor-element-4356eaad {
    padding: 50px 0 !important;
  }
  .page-id-166 .bl-checklist li {
    font-size: 14px;
    padding: 8px 0 8px 32px;
  }
  .page-id-166 .bl-checklist li::before {
    left: 4px;
    width: 20px;
    height: 20px;
  }

}
/* Centrer le widget vidéo hero (largeur fixe dans une colonne pleine) */
.bl-video-centered {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Focus-visible global — anneau navy pour clavier */
a:focus-visible,
button:focus-visible,
.elementor-button:focus-visible,
.pt-button:focus-visible,
input:focus-visible,
textarea:focus-visible,
.menu-item a:focus-visible {

  outline: 2px solid #2C3E50 !important;
  outline-offset: 3px !important;
  border-radius: 4px;

}
/* Cards mobile/tablet — pagination scroll-snap visible */
@media (max-width: 1023px) {

  .elementor-element-b344dfe { position: relative; }
  .elementor-element-b344dfe::after {
    content: '';
    display: block;
    position: relative;
    margin: 24px auto 0;
    width: 60px;
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(to right, #2C3E50 33.33%, rgba(44,62,80,0.2) 33.33%);
    background-size: 300% 100%;
    background-position: 0% 0%;
    transition: background-position 0.4s ease;
  }
  .elementor-element-b344dfe.bl-snap-1::after { background-position: 0% 0%; }
  .elementor-element-b344dfe.bl-snap-2::after { background-position: 50% 0%; }
  .elementor-element-b344dfe.bl-snap-3::after { background-position: 100% 0%; }

}
/* Hint "swipe" sous les cards mobile */
@media (max-width: 768px) {

  .elementor-element-b344dfe::before {
    content: '← Glissez pour voir les autres →';
    display: block;
    text-align: center;
    font-size: 12px;
    color: #89ADC9;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 12px;
    opacity: 0.85;
  }

}
/* Card heights — réduire le min-height par défaut maintenant qu'on a viré l'image */
@media (min-width: 1025px) {

  .elementor-element-b344dfe .pt-service-style-1 { min-height: 0; }

}
/* ============================================================
   P2 — Hero CTAs largeur égale (cohérence visuelle)
   ============================================================ */
@media (min-width: 481px) {

  .elementor-element-8e2b769 .elementor-element-08ff1b9 .elementor-widget-button {
    max-width: none !important;
    width: 320px !important;
  }
  .elementor-element-8e2b769 .elementor-widget-button .elementor-button {
    min-width: 320px !important;
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }

}
.pt-section-sub-title {

  font-size: 14px !important;
  letter-spacing: 0.1em !important;

}
@media (max-width: 768px) {
  /* override des règles existantes en 13px */
  .elementor-6689 .elementor-element .pt-section-sub-title,
  .pt-section-sub-title {
 font-size: 13px !important; 
  }
}
/* Mobile tweaks */
@media (max-width: 767px) {

  .page-id-2283 .elementor-element-2b2d985,
  .page-id-2283 .elementor-element-dc74d7f,
  .page-id-2283 .elementor-element-cdfa65e,
  .page-id-2283 .elementor-element-a8fb9bc {
    padding: 50px 0 !important;
  }
  /* .bl-os-h1 font-size mobile : géré via typography_font_size_mobile dans Elementor settings */
  .page-id-2283 .elementor-widget-fancybox .pt-fancy-box { padding: 26px 22px !important; }

  /* Tap feedback sur cards fancybox (pas de hover sur mobile) */
  .page-id-2283 .elementor-widget-fancybox .pt-fancy-box:active {
    transform: scale(0.99) !important;
    opacity: 0.96 !important;
    transition: transform 0.15s, opacity 0.15s !important;
  }
  .page-id-2283 .pt-pricebox:active {
    transform: scale(0.995) !important;
    opacity: 0.97 !important;
    transition: transform 0.15s, opacity 0.15s !important;
  }

}
/* Mobile tweaks */
@media (max-width: 767px) {

  .page-id-935 .elementor-element-5b1fb9b {
    padding: 50px 0 !important;
  }
  .page-id-935 .elementor-element-5b1fb9b > .elementor-container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .page-id-935 .elementor-element-9018ee9 {
    padding: 60px 20px !important;
  }
  .page-id-935 .pt-ad-title {
    padding: 18px 50px 18px 22px !important;
  }
  .page-id-935 .ad-title-text {
    font-size: 16px !important;
  }
  .page-id-935 .pt-accordion-box p,
  .page-id-935 .pt-accordion-box .pt-ad-details {
    font-size: 14px !important;
  }
  .page-id-935 .pt-ad-title::after {
    right: 18px;
    width: 26px;
    height: 26px;
    font-size: 20px;
  }

}
/* ============================================================
   FOOTER REDESIGN (theme widget-based, hors Elementor)
   Site-wide footer rendu par nutritius theme via widgets WP.
   Tout ce qui n'est pas contrôlable par widget config est ici.
   ============================================================ */

/* Screen reader only helper pour labels masqués */
.bl-sr-only {

  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;

}
/* ============================================================
   Audit fix G1/M1/F3 : container padding mobile homogène
   Standardise le gutter à 24px sur mobile pour eviter les
   titres qui collent au bord (sections e-con-box heritent de .container)
   ============================================================ */
@media (max-width: 767px) {

  .container {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  .e-con.e-flex.e-con-box > .e-con-inner,
  .elementor-element.e-con.e-flex.e-con-box {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

}
/* ============================================================
   Audit fix G2 : tap target icone recherche header >= 44x44
   ============================================================ */
.pt-menu-search-block > a {
  padding-inline: 14px;
  min-width: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
/* ============================================================
   Audit fix G3 : desactiver fadeIn Elementor sur section-title
   Les titres flashent invisibles pendant le scroll
   ============================================================ */
.elementor-widget-section-title.elementor-invisible,
.elementor-widget-heading.elementor-invisible {
  visibility: visible !important;
  opacity: 1 !important;
  animation: none !important;
}
/* ============================================================
   Audit fix A4/M4 : masquer icone + dans boutons sur mobile
   (le label est deja long, l icone force le wrap a 3 lignes)
   ============================================================ */
@media (max-width: 480px) {

  .elementor-button .elementor-button-icon,
  .elementor-button > span > i:first-child,
  .elementor-button > span > svg:first-child {
    display: none !important;
  }
  .elementor-button .elementor-button-content-wrapper {
    gap: 0 !important;
  }

}
/* ============================================================
   Audit fix A5 : CTAs section navy mobile en pleine largeur
   pour eviter les tailles incoherentes
   ============================================================ */
@media (max-width: 767px) {

  .elementor-element-dff7b79 .elementor-button {
    display: block !important;
    width: 100% !important;
    max-width: 320px !important;
    margin: 0 auto 12px !important;
    text-align: center !important;
  }

}
/* ============================================================
   Audit fix F1 : accordeons FAQ espacement reduit mobile
   ============================================================ */
@media (max-width: 767px) {

  .pt-accordion-box {
    margin-bottom: 10px !important;
  }

}
/* ============================================================
   Audit fix C4 : bouton submit Contact full-width mobile
   ============================================================ */
@media (max-width: 767px) {

  .page-id-206 .wpcf7-submit,
  .page-id-206 input[type="submit"] {
    display: block !important;
    width: 100% !important;
  }

}
/* ============================================================
   BOUTONS — remplacer les icônes "+" par la feuille du logo.
   Le theme Nutritius utilise <i class="ti-plus"> comme icône de CTA.
   On neutralise le contenu de l'icône et on applique la feuille via
   CSS mask : la couleur suit automatiquement la couleur du texte
   du bouton (blanc sur navy, navy sur blanc, etc.)
   ============================================================ */
.pt-button i.ti-plus,
.pt-button .pt-btn-text i.ti-plus,
.elementor-button i.ti-plus,
a.pt-button i.ti-plus {
  width: 16px !important;
  height: 16px !important;
  display: inline-block !important;
  vertical-align: middle !important;
  margin-right: 8px !important;
  background-color: currentColor !important;
  -webkit-mask: url('/wp-content/uploads/2022/08/Group-1-1.svg') center/contain no-repeat !important;
          mask: url('/wp-content/uploads/2022/08/Group-1-1.svg') center/contain no-repeat !important;
  /* Neutraliser la font-icon d'origine */
  font-family: initial !important;
  font-size: 0 !important;
  line-height: 0 !important;
}
.pt-button i.ti-plus::before,
.pt-button .pt-btn-text i.ti-plus::before,
.elementor-button i.ti-plus::before,
a.pt-button i.ti-plus::before {
  content: '' !important;
  display: none !important;
}

/* Ajouter la feuille devant le texte de TOUS les boutons Elementor CTA
   (même ceux qui n'ont pas de <i class="ti-plus">) */
.elementor-widget-button .elementor-button .elementor-button-text::before,
.elementor-widget-button a.elementor-button .elementor-button-text::before {
  content: '' !important;
  display: inline-block !important;
  vertical-align: middle !important;
  width: 16px !important;
  height: 16px !important;
  margin-right: 8px !important;
  background-color: currentColor !important;
  -webkit-mask: url('/wp-content/uploads/2022/08/Group-1-1.svg') center/contain no-repeat !important;
          mask: url('/wp-content/uploads/2022/08/Group-1-1.svg') center/contain no-repeat !important;
}

/* ============================================================
   TYPOGRAPHIE HARMONISÉE — branchée sur les Styles globaux Elementor
   Source de vérité : Elementor > Réglages du site > Styles de police globaux
     - Primary = Titres principaux (H1/H2)
     - Secondary = Sous-titres (H3/H4)
     - Text = Texte principal (paragraphes)
     - Accent = Petits labels (uppercase)
   Changer une valeur dans le BO Elementor → elle se propage partout.
   Les règles ci-dessous neutralisent les tailles hardcodées du thème
   Nutritius (.pt-*) qui battaient le Kit par spécificité CSS.
   ============================================================ */
/* Body text (paragraphes + items de liste) → Text global */
main p,
main ul li,
main ol li,
main .elementor-widget-text-editor p,
main .elementor-widget-text-editor li,
.pt-section-description,
.pt-section-description p,
.pt-fancy-description,
.pt-fancy-description p,
.pt-service-style-1 p,
.pt-service-style-1 .pt-service-description,
.pt-service-description,
.pt-service-description p,
.pt-fancy-box p,
.pt-fancy-box .pt-fancy-description,
.pt-accordion-box p,
.pt-accordion-box li,
.pt-accordion-box .pt-ad-details,
.elementor-widget-icon-list .elementor-icon-list-text,
.elementor-widget-icon-list .elementor-icon-list-item {
  font-size: var(--e-global-typography-text-font-size, 17px) !important;
  line-height: var(--e-global-typography-text-line-height, 1.65em) !important;
  font-weight: var(--e-global-typography-text-font-weight, 400) !important;
  font-family: var(--e-global-typography-text-font-family, "Montserrat", sans-serif) !important;
}
@media (max-width: 1024px) {
  main p,
  main ul li,
  main ol li,
  main .elementor-widget-text-editor p,
  main .elementor-widget-text-editor li,
  .pt-section-description,
  .pt-section-description p,
  .pt-fancy-description,
  .pt-fancy-description p,
  .pt-service-style-1 p,
  .pt-service-style-1 .pt-service-description,
  .pt-service-description,
  .pt-service-description p,
  .pt-fancy-box p,
  .pt-fancy-box .pt-fancy-description,
  .pt-accordion-box p,
  .pt-accordion-box li,
  .pt-accordion-box .pt-ad-details,
  .elementor-widget-icon-list .elementor-icon-list-text,
  .elementor-widget-icon-list .elementor-icon-list-item {
    font-size: var(--e-global-typography-text-font-size-tablet, 17px) !important;
  }
}
@media (max-width: 767px) {
  main p,
  main ul li,
  main ol li,
  main .elementor-widget-text-editor p,
  main .elementor-widget-text-editor li,
  .pt-section-description,
  .pt-section-description p,
  .pt-fancy-description,
  .pt-fancy-description p,
  .pt-service-style-1 p,
  .pt-service-style-1 .pt-service-description,
  .pt-service-description,
  .pt-service-description p,
  .pt-fancy-box p,
  .pt-fancy-box .pt-fancy-description,
  .pt-accordion-box p,
  .pt-accordion-box li,
  .pt-accordion-box .pt-ad-details,
  .elementor-widget-icon-list .elementor-icon-list-text,
  .elementor-widget-icon-list .elementor-icon-list-item {
    font-size: var(--e-global-typography-text-font-size-mobile, 16px) !important;
  }
}

/* Titres cards/services (niveau H3) → Secondary global */
.pt-fancy-box .pt-fancy-title,
.pt-service-style-1 .pt-service-title,
.pt-service-style-1 h3,
.pt-pricebox .pt-pricebox-title,
.pt-accordion-box .pt-ad-title,
.pt-accordion-box .ad-title-text {
  font-size: var(--e-global-typography-secondary-font-size, 24px) !important;
  font-weight: var(--e-global-typography-secondary-font-weight, 700) !important;
  line-height: var(--e-global-typography-secondary-line-height, 1.3em) !important;
}
@media (max-width: 767px) {
  .pt-fancy-box .pt-fancy-title,
  .pt-service-style-1 .pt-service-title,
  .pt-service-style-1 h3,
  .pt-pricebox .pt-pricebox-title,
  .pt-accordion-box .pt-ad-title,
  .pt-accordion-box .ad-title-text {
    font-size: var(--e-global-typography-secondary-font-size-mobile, 20px) !important;
  }
}

/* ============================================================
   FONT-FAMILY GLOBALE — catch-all pour tous les éléments résiduels
   qui utilisaient system-ui (fallback) alors qu'ils devraient être
   sur Montserrat comme le reste du site.
   Ciblage : formulaires, recherche, liens légaux, numéros déco, etc.
   ============================================================ */
input, textarea, select, button,
label, .wpcf7-form label, .wpcf7-form-control,
.search-form input, .search-form label, .search-form span,
.screen-reader-text,
.pt-service-number, .pt-service-number span,
.pt-legal-links a, .pt-copyright-footer a,
.bl-legal-links a,
footer a, footer span, footer li,
.pt-footer-bottom a, .pt-footer-bottom span,
.elementor-widget-breadcrumbs,
.elementor-widget-breadcrumbs a,
.elementor-widget-breadcrumbs span,
.elementor-widget-breadcrumbs li,
.breadcrumb,
.breadcrumb a,
.breadcrumb span,
.breadcrumb li,
.pt-breadcrumb,
.pt-breadcrumb a,
.pt-breadcrumb span,
.pt-breadcrumb li,
body input, body textarea, body select,
.skip-link {
  font-family: var(--e-global-typography-text-font-family, "Montserrat"), sans-serif !important;
}

/* Préserver font-family des icônes (Font Awesome / Themify / Ionicons).
   Ma catch-all Montserrat écrasait les font-family des icônes → glyphes
   invisibles. On remet la bonne police par famille d'icônes. */
i.fa, i.fas, i.far, i.fal, i[class^="fa "], i[class*=" fa-solid"],
i[class*=" fa-regular"], i[class*=" fa-light"] {
  font-family: "Font Awesome 5 Free", "Font Awesome 6 Free", FontAwesome !important;
}
i.fab, i[class*=" fa-brands"] {
  font-family: "Font Awesome 5 Brands", "Font Awesome 6 Brands" !important;
}
i[class^="ti-"], i[class*=" ti-"] {
  font-family: "themify" !important;
}
i[class*="ion-"], i.ion {
  font-family: "Ionicons" !important;
}

/* Labels uppercase theme-class → Accent global + tiret décoratif UNIFIÉ
   Standard : trait horizontal 28x2px à gauche du texte (inline-flex). */
.pt-section-sub-title,
.pt-subtitle {
  font-size: var(--e-global-typography-accent-font-size, 14px) !important;
  font-weight: var(--e-global-typography-accent-font-weight, 700) !important;
  letter-spacing: var(--e-global-typography-accent-letter-spacing, 2px) !important;
  text-transform: var(--e-global-typography-accent-text-transform, uppercase) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  position: static !important;
  padding-left: 0 !important;
}
.pt-section-sub-title::before,
.pt-subtitle::before {
  content: '' !important;
  display: inline-block !important;
  width: 28px !important;
  height: 2px !important;
  background: #89ADC9 !important;
  position: static !important;
  margin: 0 !important;
  flex: 0 0 auto !important;
  top: auto !important;
  left: auto !important;
  bottom: auto !important;
  right: auto !important;
}
.pt-section-sub-title::after,
.pt-subtitle::after {
  content: none !important;
  display: none !important;
}

/* "VOS RETOURS" — rendu comme un sub-title visuel (tiret + small uppercase) */
.elementor-element-b2c5b3c .elementor-heading-title,
.elementor-element-b2c5b3c h2.elementor-heading-title {
  font-size: var(--e-global-typography-accent-font-size, 14px) !important;
  font-weight: var(--e-global-typography-accent-font-weight, 700) !important;
  letter-spacing: var(--e-global-typography-accent-letter-spacing, 2px) !important;
  text-transform: uppercase !important;
  color: #2C3E50 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  line-height: 1 !important;
  margin: 0 0 10px !important;
}
.elementor-element-b2c5b3c .elementor-heading-title::before {
  content: '' !important;
  display: inline-block !important;
  width: 28px !important;
  height: 2px !important;
  background: #89ADC9 !important;
  flex: 0 0 auto !important;
}

/* Icon-box titles (widget Elementor) → Secondary global
   Sinon le widget utilise Primary par défaut (48px, trop gros pour une carte) */
.elementor-widget-icon-box .elementor-icon-box-title,
.elementor-widget-icon-box .elementor-icon-box-title a,
.elementor-widget-icon-box-more .elementor-icon-box-title {
  font-size: var(--e-global-typography-secondary-font-size, 24px) !important;
  font-weight: var(--e-global-typography-secondary-font-weight, 700) !important;
  line-height: var(--e-global-typography-secondary-line-height, 1.3em) !important;
  font-family: var(--e-global-typography-secondary-font-family, "Kumbh Sans"), sans-serif !important;
}
@media (max-width: 767px) {
  .elementor-widget-icon-box .elementor-icon-box-title,
  .elementor-widget-icon-box .elementor-icon-box-title a {
    font-size: var(--e-global-typography-secondary-font-size-mobile, 20px) !important;
  }
}

/* ============================================================
   H1/H2/H3 branchés sur Primary/Secondary globals
   (neutralise les tailles hardcodées du thème Nutritius)
   ============================================================ */
main h1,
.elementor-element .elementor-heading-title[class*="size-default"][data-elementor-type] h1,
main .elementor-widget-heading h1.elementor-heading-title,
main .elementor-widget-heading h1 {
  font-size: var(--e-global-typography-primary-font-size, 48px) !important;
  font-family: var(--e-global-typography-primary-font-family, "Kumbh Sans"), sans-serif !important;
  font-weight: var(--e-global-typography-primary-font-weight, 700) !important;
  line-height: var(--e-global-typography-primary-line-height, 1.15em) !important;
}
@media (max-width: 1024px) {
  main h1,
  main .elementor-widget-heading h1.elementor-heading-title,
  main .elementor-widget-heading h1 {
    font-size: var(--e-global-typography-primary-font-size-tablet, 40px) !important;
  }
}
@media (max-width: 767px) {
  main h1,
  main .elementor-widget-heading h1.elementor-heading-title,
  main .elementor-widget-heading h1 {
    font-size: var(--e-global-typography-primary-font-size-mobile, 32px) !important;
  }
}

/* H2 partout branchés sur Primary (titres de sections) */
main h2,
main .elementor-widget-heading h2.elementor-heading-title,
main .elementor-widget-heading h2,
main .pt-section-title,
main .pt-section-title-box h2 {
  font-size: var(--e-global-typography-primary-font-size, 48px) !important;
  font-family: var(--e-global-typography-primary-font-family, "Kumbh Sans"), sans-serif !important;
  font-weight: var(--e-global-typography-primary-font-weight, 700) !important;
  line-height: var(--e-global-typography-primary-line-height, 1.15em) !important;
}
@media (max-width: 1024px) {
  main h2,
  main .elementor-widget-heading h2,
  main .pt-section-title {
    font-size: var(--e-global-typography-primary-font-size-tablet, 40px) !important;
  }
}
@media (max-width: 767px) {
  main h2,
  main .elementor-widget-heading h2,
  main .pt-section-title {
    font-size: var(--e-global-typography-primary-font-size-mobile, 32px) !important;
  }
}

/* ============================================================
   Texte des cards service (home page) → branché sur Text global
   Beat les règles home.css `.elementor-element-b344dfe .pt-service-description p:first-child`
   par une spécificité supérieure (ID + classe + pseudo + descendant)
   ============================================================ */
.page-id-6689 main .pt-service-description,
.page-id-6689 main .pt-service-description p,
.page-id-6689 main .pt-service-description p:first-child,
.page-id-6689 main .pt-service-description p:first-child strong,
.page-id-6689 main .pt-service-description li,
.page-id-6689 main .pt-service-feature,
.page-id-6689 main .pt-service-feature li,
main .elementor-widget-Service_Box .pt-service-description,
main .elementor-widget-Service_Box .pt-service-description p,
main .elementor-widget-Service_Box .pt-service-description li {
  font-size: var(--e-global-typography-text-font-size, 17px) !important;
  font-family: var(--e-global-typography-text-font-family, "Montserrat"), sans-serif !important;
  line-height: var(--e-global-typography-text-line-height, 1.65em) !important;
}
@media (max-width: 767px) {
  .page-id-6689 main .pt-service-description,
  .page-id-6689 main .pt-service-description p,
  .page-id-6689 main .pt-service-description p:first-child,
  .page-id-6689 main .pt-service-description p:first-child strong,
  .page-id-6689 main .pt-service-description li,
  .page-id-6689 main .pt-service-feature,
  .page-id-6689 main .pt-service-feature li,
  main .elementor-widget-Service_Box .pt-service-description,
  main .elementor-widget-Service_Box .pt-service-description p,
  main .elementor-widget-Service_Box .pt-service-description li {
    font-size: var(--e-global-typography-text-font-size-mobile, 16px) !important;
  }
}

/* Header mobile — CTA "Prendre rendez-vous" : voir
   assets/css/components/header.css (source unique du header). */

/* Mobile : alignement cohérent sur la section "Votre premier pas" + boutons section vidéo */
@media (max-width: 767px) {
  /* Reset des paddings des wrappers internes (column populated) — top/bottom et L/R */
  .page-id-6689 .elementor-element-c816147 .elementor-widget-wrap.elementor-element-populated {
    padding: 0 !important;
  }
  /* Padding 24px sur les widgets de la section "Votre premier pas" (titre + Calendly)
     pour aligner avec le reste de la page */
  .page-id-6689 .elementor-element-8e65473,
  .page-id-6689 .elementor-element-520e345 {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  /* Boutons CTA Button custom : centrage cohérent dans leur section */
  .page-id-6689 .elementor-element-fa318b5,
  .page-id-6689 .elementor-element-5af91f2,
  .page-id-6689 .elementor-element-dc8c024 {
    text-align: center !important;
  }
  .page-id-6689 .elementor-element-fa318b5 .pt-button-container,
  .page-id-6689 .elementor-element-5af91f2 .pt-button-container,
  .page-id-6689 .elementor-element-dc8c024 .pt-button-container {
    display: flex !important;
    justify-content: center !important;
  }
}


/* ============================================================
   Menu principal — élément de la page courante mis en évidence
   (classe posée par includes/menu-active.php). Sobre : couleur
   de marque + soulignement fin.
   ============================================================ */
header .navbar-nav > li.current-menu-item > a,
header .navbar-nav > li.current_page_item > a,
header #pt-main-menu > li.current-menu-item > a,
header #pt-menu-contain .current-menu-item > a {
  color: #89ADC9 !important;
  text-decoration: underline !important;
  text-decoration-color: #89ADC9 !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 6px;
}
