/* ==========================================================================
   FA-RE 13 — Feuille de présentation (netsolution-presentation)
   --------------------------------------------------------------------------
   But : un rendu plus moderne, mieux aligné et plus professionnel, SANS
   toucher au contenu, aux couleurs de marque ni aux images.
   - Chargée après le thème eCademy et les feuilles Elementor.
   - Ne redéfinit aucune couleur de marque : réutilise les variables du thème
     (--mainColor, --blackColor, --optionalColor, --whiteColor, --fontFamily).
   - Les seules couleurs introduites sont des gris neutres de structure
     (bordures, fonds de tableaux, ombres).
   Sections : 1 jetons · 2 base/typo · 3 en-tête · 4 titres de page · 5 boutons
   et formulaires · 6 accueil · 7 pied de page · 8 Event Espresso (agenda,
   tableau, calendrier, fiche) · 9 praticiens · 10 adhésion · 11 blog/sidebar
   · 12 responsive.
   ========================================================================== */

/* 1. Jetons ------------------------------------------------------------- */
:root {
  --ns-line: #e6e9ef;
  --ns-line-soft: #eef1f5;
  --ns-surface: #f5f7fa;
  --ns-surface-2: #fafbfc;
  --ns-radius-s: 8px;
  --ns-radius: 12px;
  --ns-pill: 999px;
  --ns-shadow: 0 1px 2px rgba(34, 22, 56, .05), 0 8px 24px rgba(34, 22, 56, .07);
  --ns-shadow-hover: 0 2px 4px rgba(34, 22, 56, .06), 0 16px 32px rgba(34, 22, 56, .10);
  --ns-ease: cubic-bezier(.23, 1, .32, 1);
  --ns-t: 180ms;
  --ns-nav-h: 64px;
}

/* 2. Base et typographie ----------------------------------------------- */
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body { overflow-x: clip; }

h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  line-height: 1.2;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
p { text-wrap: pretty; }

/* Polices unifiées : les titres Elementor en Playfair Display reprennent la
   police du thème (Nunito). Désactivable via NS_PRESENTATION_UNIFIER_POLICES. */
body.ns-polices-unifiees .elementor-heading-title,
body.ns-polices-unifiees h1, body.ns-polices-unifiees h2, body.ns-polices-unifiees h3,
body.ns-polices-unifiees h4, body.ns-polices-unifiees h5, body.ns-polices-unifiees h6,
body.ns-polices-unifiees .single-program-box h3,
body.ns-polices-unifiees .single-lifestyle-box h3 {
  font-family: var(--fontFamily) !important;
}

/* Échelle de titres cohérente sur les pages Elementor (les tailles fixées
   widget par widget, 51 px par endroits, sont ramenées à une échelle fluide). */
.elementor-widget-heading h1.elementor-heading-title { font-size: clamp(30px, 3.6vw, 48px) !important; font-weight: 800; }
.elementor-widget-heading h2.elementor-heading-title { font-size: clamp(26px, 2.6vw, 36px) !important; font-weight: 800; }
.elementor-widget-heading h3.elementor-heading-title { font-size: clamp(20px, 1.8vw, 24px) !important; font-weight: 800; }
.section-title h2 { font-size: clamp(26px, 2.6vw, 36px); }
.section-title .sub-title { letter-spacing: .08em; font-size: 13px; }
.section-title p { max-width: 62ch; }

/* Focus clavier visible et homogène */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--mainColor);
  outline-offset: 2px;
  border-radius: var(--ns-radius-s);
}
a:focus:not(:focus-visible) { outline: none; }

/* 3. En-tête et navigation ---------------------------------------------- */
.navbar-area { padding-top: 10px; padding-bottom: 10px; }
.navbar-area.is-sticky {
  box-shadow: 0 1px 0 var(--ns-line), 0 8px 24px rgba(34, 22, 56, .06);
  background-color: rgba(255, 255, 255, .94);
  -webkit-backdrop-filter: saturate(160%) blur(10px);
  backdrop-filter: saturate(160%) blur(10px);
}
.ecademy-nav .container-fluid { padding-left: 32px; padding-right: 32px; }
.ecademy-nav .navbar { min-height: var(--ns-nav-h); align-items: center; flex-wrap: nowrap; }
.ecademy-nav .navbar .navbar-brand { flex: 0 0 auto; margin-right: 8px; }
.ecademy-nav .navbar .collapse.navbar-collapse { align-items: center; flex-wrap: nowrap; }

/* Le champ de recherche du thème interroge un type de contenu "cours" absent
   de ce site : il est retiré de la barre pour rendre sa place au menu.
   Désactivable via NS_PRESENTATION_MASQUER_RECHERCHE. */
body.ns-sans-recherche .ecademy-nav .navbar .search-box,
body.ns-sans-recherche .others-option-for-responsive .option-inner .search-box,
body.ns-sans-recherche .ecademy-responsive-nav .mean-container .search-box { display: none !important; }

.ecademy-nav .navbar .navbar-nav { margin-left: auto; flex-wrap: nowrap; align-items: center; }
.ecademy-nav .navbar .navbar-nav .nav-item { flex: 0 0 auto; }
.ecademy-nav .navbar .navbar-nav .nav-item a {
  font-size: 15px;
  font-weight: 700;
  margin-left: 9px;
  margin-right: 9px;
  padding: 20px 6px 20px 0;
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
  position: relative;
  text-decoration: none;
  text-underline-offset: 7px;
  text-decoration-thickness: 2px;
  transition: color var(--ns-t) var(--ns-ease);
}
.ecademy-nav .navbar .navbar-nav .nav-item > a.dropdown-toggle { padding-right: 18px; } /* place pour le chevron du thème */
.ecademy-nav .navbar .navbar-nav .nav-item > a.nav-link:hover,
.ecademy-nav .navbar .navbar-nav .nav-item.active > a.nav-link,
.ecademy-nav .navbar .navbar-nav .nav-item.current-menu-item > a.nav-link,
.ecademy-nav .navbar .navbar-nav .nav-item.current-menu-ancestor > a.nav-link { text-decoration: underline; }

/* Sous-menus */
.ecademy-nav .navbar .navbar-nav .nav-item .dropdown-menu {
  border-radius: 0 0 var(--ns-radius) var(--ns-radius);
  padding: 8px;
  width: 280px;
  top: 100%;
  margin-top: 0;
  box-shadow: var(--ns-shadow-hover);
}
.ecademy-nav .navbar .navbar-nav .nav-item:hover .dropdown-menu { margin-top: 0; }
.ecademy-nav .navbar .navbar-nav .nav-item .dropdown-menu li a {
  border-bottom: none;
  border-radius: var(--ns-radius-s);
  padding: 11px 14px;
  font-size: 15px;
  font-weight: 600;
  white-space: normal;
  transition: background-color var(--ns-t) var(--ns-ease), color var(--ns-t) var(--ns-ease);
}
.ecademy-nav .navbar .navbar-nav .nav-item .dropdown-menu li a:hover,
.ecademy-nav .navbar .navbar-nav .nav-item .dropdown-menu li a:focus-visible { background-color: var(--ns-surface) !important; }

/* Bouton « Se connecter » : marges symétriques (l'icône vide du thème
   laissait 55 px à gauche), une seule ligne, hauteur 44 px */
.ecademy-nav .navbar .others-option { margin-left: 18px; flex: 0 0 auto; }
.ecademy-nav .navbar .others-option .option-item .default-btn,
.others-option-for-responsive .option-inner .others-option .option-item .default-btn {
  padding: 11px 22px;
  font-size: 15px;
  white-space: nowrap;
  line-height: 1.4;
  border-radius: var(--ns-radius-s);
}
.ecademy-nav .navbar .others-option .option-item .default-btn i:empty,
.others-option-for-responsive .option-inner .others-option .option-item .default-btn i:empty { display: none; }

/* Entre 1200 et 1399 px, le thème cache le bouton et le remplace par un menu
   « … ». Sans le champ de recherche il y a la place : on garde le bouton. */
@media (min-width: 1200px) and (max-width: 1399px) {
  body.ns-sans-recherche .ecademy-nav .navbar .others-option { display: flex !important; }
  body.ns-sans-recherche .others-option-for-responsive { display: none !important; }
  body.ns-sans-recherche .ecademy-nav .container-fluid { max-width: none; padding-right: 32px; }
  .ecademy-nav .navbar .navbar-nav .nav-item a { font-size: 14.5px; margin-left: 7px; margin-right: 7px; }
}
/* Entre 1200 et 1299 px : on resserre encore pour rester sur une ligne */
@media (min-width: 1200px) and (max-width: 1299px) {
  .ecademy-nav .container-fluid { padding-left: 20px; padding-right: 20px; }
  .ecademy-nav .navbar .navbar-brand { width: 120px !important; margin-right: 4px; }
  .ecademy-nav .navbar .navbar-nav .nav-item a { font-size: 14px; margin-left: 5px; margin-right: 5px; }
  .ecademy-nav .navbar .navbar-nav .nav-item > a.dropdown-toggle { padding-right: 16px; }
  .ecademy-nav .navbar .others-option { margin-left: 10px; }
  .ecademy-nav .navbar .others-option .option-item .default-btn { padding: 10px 16px; font-size: 14px; }
}
.navbar-area { overflow-x: clip; }

/* Menu mobile (mean-menu) */
.ecademy-responsive-nav .ecademy-responsive-menu.mean-container .mean-nav {
  border-radius: 0 0 var(--ns-radius) var(--ns-radius);
  box-shadow: var(--ns-shadow-hover);
  overflow: hidden;
}
.mean-container .mean-nav ul li a {
  padding: 14px 20px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  border-top: 1px solid var(--ns-line-soft) !important;
  overflow-wrap: normal;
  word-break: normal;
}
.mean-container .mean-nav ul li li a { padding-left: 32px !important; font-weight: 500 !important; opacity: 1 !important; }
.others-option-for-responsive .option-inner { border-radius: var(--ns-radius); box-shadow: var(--ns-shadow-hover); }

/* 4. Bandeau de titre de page ------------------------------------------- */
.page-title-area {
  padding-top: 56px;
  padding-bottom: 56px;
  border-bottom: 1px solid var(--ns-line-soft);
  word-break: normal;
}
.page-title-content h2 { font-size: clamp(28px, 3vw, 40px); margin-bottom: 8px; }
.page-title-content ul li { font-size: 14px; font-weight: 600; }
.page-title-content ul li a { font-weight: 500; }
.page-title-content ul li::before { transform: none; height: 12px; top: 5px; opacity: .5; }
.page-title-content h2 .event-active-status,
.page-title-content ul li .event-active-status { display: none; }
.page-title-content #espresso-notices:empty { display: none; }

/* Bandeau avec photo de fond : léger voile et ombre portée pour garder le titre lisible */
.page-title-area[style*="url("] { position: relative; }
.page-title-area[style*="url("]::before { content: ""; position: absolute; inset: 0; background: rgba(34, 22, 56, .30); z-index: 0; }
.page-title-area[style*="url("] .container { position: relative; z-index: 1; }
.page-title-area[style*="url("] .page-title-content h2,
.page-title-area[style*="url("] .page-title-content ul li { text-shadow: 0 1px 2px rgba(0, 0, 0, .25), 0 4px 16px rgba(0, 0, 0, .25); }

/* 5. Boutons et formulaires --------------------------------------------- */
.default-btn {
  border-radius: var(--ns-radius-s);
  padding: 12px 26px 12px 54px;
  font-size: 15px;
  line-height: 1.4;
  transition: transform var(--ns-t) var(--ns-ease), box-shadow var(--ns-t) var(--ns-ease), background-color var(--ns-t) var(--ns-ease), color var(--ns-t) var(--ns-ease);
}
.default-btn:has(> i:empty), .default-btn:not(:has(> i)) { padding-left: 26px; }
.default-btn > i:empty { display: none; }
.default-btn i { top: 50%; transform: translateY(-50%); left: 26px; }
.default-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(34, 22, 56, .14); }
.default-btn:active { transform: translateY(0) scale(.98); box-shadow: none; }
.default-btn span { border-radius: var(--ns-radius-s); }

.elementor-button,
.wp-block-button__link,
.pmpro_btn,
.pmpro-has-access a.pmpro_btn,
.ticket-selector-submit-btn,
.comments-area .form-submit input,
input[type="submit"],
button[type="submit"] {
  border-radius: var(--ns-radius-s);
  transition: transform var(--ns-t) var(--ns-ease), box-shadow var(--ns-t) var(--ns-ease), background-color var(--ns-t) var(--ns-ease);
}
.elementor-button { padding: 12px 26px; font-weight: 700; line-height: 1.4; }
.elementor-button:hover, .pmpro_btn:hover, .ticket-selector-submit-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(34, 22, 56, .14); }
.elementor-button:active, .pmpro_btn:active, .ticket-selector-submit-btn:active { transform: translateY(0) scale(.98); box-shadow: none; }
.link-btn { text-underline-offset: 3px; }
.link-btn:hover { text-decoration: underline; }

/* Champs : hauteur, rayon et bordure homogènes (les couleurs de fond
   posées par le thème ou Elementor sont conservées) */
.form-control,
.entry-content input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="button"]),
.entry-content select,
.entry-content textarea,
.comment-form input:not([type="submit"]):not([type="checkbox"]),
.comment-form textarea,
.sidebar .widget_search .search-field {
  border-radius: var(--ns-radius-s);
  border: 1px solid var(--ns-line);
  transition: border-color var(--ns-t) var(--ns-ease), box-shadow var(--ns-t) var(--ns-ease);
}
.entry-content input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="button"]):focus,
.entry-content select:focus,
.entry-content textarea:focus,
.comment-form input:focus,
.comment-form textarea:focus {
  border-color: var(--mainColor);
  box-shadow: 0 0 0 3px rgba(53, 159, 209, .18);
  outline: none;
}
.comment-form input:not([type="submit"]):not([type="checkbox"]),
.comment-form textarea { padding: 10px 14px; }

/* 6. Accueil (widgets eCademy) ------------------------------------------ */
/* Section « Nos prochains ateliers » : le gabarit ne contient qu'un titre, sans
   liste d'ateliers derrière. Masquée tant qu'aucun contenu n'y est ajouté. */
.elementor-3745 .elementor-element-8c69c98.events-area { display: none; }
.elementor-3745 .elementor-element-349f6be .elementor-widget-text-editor .elementor-widget-container,
.elementor-7287 .elementor-widget-text-editor .elementor-widget-container { max-width: 78ch; margin-left: auto; margin-right: auto; }
.single-program-box {
  border-radius: var(--ns-radius);
  box-shadow: var(--ns-shadow);
  transition: transform var(--ns-t) var(--ns-ease), box-shadow var(--ns-t) var(--ns-ease);
}
.single-program-box:hover { transform: translateY(-3px); box-shadow: var(--ns-shadow-hover); }
.single-program-box h3 { font-size: 21px; }
.single-program-box p { font-size: 15px; line-height: 1.65; }

.single-lifestyle-box {
  border-style: solid;
  border-radius: var(--ns-radius);
  padding: 36px 24px;
  transition: transform var(--ns-t) var(--ns-ease), box-shadow var(--ns-t) var(--ns-ease), background-color var(--ns-t) var(--ns-ease);
}
.single-lifestyle-box:hover { transform: translateY(-3px); box-shadow: var(--ns-shadow-hover); }
.single-lifestyle-box .icon { width: 88px; height: 88px; line-height: 88px; font-size: 44px; margin-bottom: 20px; }
.single-lifestyle-box h3 { font-size: 20px; letter-spacing: .04em; margin-bottom: 12px; }
.single-lifestyle-box p { font-size: 15px; }

.single-funfacts-box {
  border-style: solid;
  border-radius: var(--ns-radius);
  padding-top: 48px;
  padding-bottom: 48px;
}
.single-funfacts-box h3 { font-size: 40px; }
.single-funfacts-box h3 span { font-size: 44px; }
.single-funfacts-box p { font-size: 13px; letter-spacing: .06em; margin-top: 12px; }

.single-feedback-item { border-radius: var(--ns-radius); box-shadow: var(--ns-shadow); }
.single-feedback-item .client-info img { border-radius: 50%; object-fit: cover; }

.single-pricing-box {
  border-radius: var(--ns-radius);
  box-shadow: var(--ns-shadow);
  background-color: var(--whiteColor);
  padding-bottom: 24px;
  overflow: hidden;
  transition: transform var(--ns-t) var(--ns-ease), box-shadow var(--ns-t) var(--ns-ease);
}
.single-pricing-box:hover { transform: translateY(-3px); box-shadow: var(--ns-shadow-hover); }
.single-pricing-box .pricing-header h3 { font-size: 18px; letter-spacing: .06em; border-radius: var(--ns-radius-s); }
.single-pricing-box .pricing-features ul li { font-size: 15px; font-weight: 500; }

.about-content .features-list li,
.experience-content .features-list li { font-size: 15px; }
.video-box .image, .video-box .image img { border-radius: var(--ns-radius); }
.download-syllabus-form form .form-group .form-control,
.download-syllabus-form form .form-group .nice-select { border-radius: var(--ns-radius-s); border: none; }
.contact-form form input, .contact-form form textarea { border-radius: var(--ns-radius-s); }
.contact-info ul li .icon { border-radius: var(--ns-radius); }

/* 7. Pied de page -------------------------------------------------------- */
.footer-area { padding-top: 72px; }
.footer-area .lines { display: none; }                       /* traits verticaux décoratifs */
.single-footer-widget .logo img { margin-bottom: 22px; border-radius: var(--ns-radius-s); }
.single-footer-widget p { font-size: 15px; line-height: 1.7; }
.single-footer-widget h3 {
  font-size: 15px;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 18px;
  padding-bottom: 12px;
}
.footer-area .single-footer-widget h3::before { width: 32px; height: 2px; border-radius: 2px; }
.footer-area .single-footer-widget ul { padding-left: 0; list-style: none; margin: 0; }
.footer-area .single-footer-widget ul li { margin-bottom: 10px; font-size: 15px; }
.footer-area .single-footer-widget.widget_nav_menu ul li { padding-left: 0 !important; }
.footer-area .single-footer-widget ul li::before { display: none !important; }
.footer-area .single-footer-widget ul li a { text-underline-offset: 3px; transition: color var(--ns-t) var(--ns-ease); }
.footer-area .single-footer-widget ul li a:hover { text-decoration: underline; }
.footer-area .single-footer-widget .footer-contact-info li { padding-left: 26px !important; }
.single-footer-widget .footer-contact-info li i { top: 4px; }
.single-footer-widget .social-link li a { width: 36px; height: 36px; border-radius: var(--ns-radius-s); transition: transform var(--ns-t) var(--ns-ease), background-color var(--ns-t) var(--ns-ease); }
.single-footer-widget .social-link li a:hover { transform: translateY(-2px); }
.footer-bottom-area { margin-top: 40px; border-top: 1px solid rgba(255, 255, 255, .14); padding-top: 22px; padding-bottom: 22px; font-size: 14px; }
.footer-bottom-area p, .footer-bottom-area ul li { font-size: 14px; }
.go-top { border-radius: var(--ns-radius-s); }

/* 8. Event Espresso ------------------------------------------------------ */
/* 8a. Agenda (liste d'événements) */
.page-header .page-title { font-size: clamp(26px, 2.6vw, 34px); font-weight: 800; margin: 0 0 24px; }
.entry-content > article.espresso_events,
.page-area article.espresso_events {
  position: relative;
  background: var(--whiteColor);
  border: 1px solid var(--ns-line);
  border-radius: var(--ns-radius);
  padding: 24px 28px 22px;
  margin-bottom: 18px;
  box-shadow: var(--ns-shadow);
  transition: box-shadow var(--ns-t) var(--ns-ease), transform var(--ns-t) var(--ns-ease);
}
.page-area article.espresso_events:hover { box-shadow: var(--ns-shadow-hover); transform: translateY(-2px); }
.espresso-event-header-dv { margin: 0; }
.espresso-event-header-dv .event-header .entry-title {
  font-size: 22px;
  font-weight: 800;
  margin: 0 0 12px;
  padding-right: 200px;
  line-height: 1.25;
}
.espresso-event-header-dv .event-header .entry-title a { text-decoration: none; display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.espresso-event-header-dv .event-header .entry-title a:hover { color: var(--mainColor); }
.espresso-event-list-wrapper-dv { margin: 0; padding: 0; }
.espresso-event-list-wrapper-dv .event-content { margin: 0; padding: 0; float: none; width: auto; }
.espresso-event-list-wrapper-dv .event-content > form:has(.view-details-btn) {
  position: absolute;
  top: 22px;
  right: 24px;
  margin: 0;
}
.espresso-event-list-wrapper-dv .event-content > form:has(.view-details-btn) br,
.espresso-event-list-wrapper-dv .event-content > form:has(.view-details-btn) .clear { display: none; }
.ticket-selector-submit-btn.view-details-btn {
  float: none;
  margin: 0;
  padding: 9px 16px;
  font-size: 14px;
  font-weight: 700;
  border-radius: var(--ns-radius-s);
  cursor: pointer;
}
.espresso-event-list-wrapper-dv .event-content > p { margin: 14px 0 0; font-size: 15px; line-height: 1.7; }
.espresso-event-list-wrapper-dv .event-content > p a { font-weight: 700; text-decoration: none; }
.espresso-event-list-wrapper-dv .event-content > p a:hover { text-decoration: underline; }

/* Badge de statut (à venir, en cours, …) */
.event-active-status {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: var(--ns-pill);
  line-height: 1.6;
  vertical-align: middle;
}

/* Dates / horaires / lieu : sur une ligne, avec icônes */
.event-datetimes { float: none; width: auto; margin: 0; }
.ee-event-datetimes-ul { list-style: none; margin: 0; padding: 0; }
.espresso_events .event-datetimes > .ee-event-datetimes-ul { justify-content: flex-start; margin: 0; }
.espresso_events .event-datetimes > .ee-event-datetimes-ul .ee-event-datetimes-li,
.espresso_events .event-datetimes > .ee-event-datetimes-ul--small .ee-event-datetimes-li { width: 100%; margin: 0 0 6px; }
.espresso_events .event-datetimes > .ee-event-datetimes-ul .ee-event-datetimes-li span { margin-block: 0; }
.ee-event-datetimes-li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 18px;
  margin: 0 0 6px;
  padding: 0;
  font-size: 15px;
  line-height: 1.5;
}
.ee-event-datetimes-li > br { display: none; }
.ee-event-datetimes-li-date-name {
  flex: 0 0 100%;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--optionalColor);
}
.ee-event-datetimes-li-daterange,
.ee-event-datetimes-li-timerange,
.ee-event-datetimes-li-venue { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--blackColor); }
.ee-event-datetimes-li .dashicons { font-size: 17px; width: 17px; height: 17px; line-height: 17px; color: var(--mainColor); }
.ee-event-datetimes-li-venue a { text-decoration: none; }
.ee-event-datetimes-li-venue a:hover { text-decoration: underline; }
.ee-event-datetimes-li-date-desc { flex: 0 0 100%; order: 10; font-size: 15px; color: var(--optionalColor); }
.download-iCal-frm { margin: 0; display: inline-flex; }
.ee-ical-sbmt { width: 26px !important; height: 26px !important; opacity: .55; border-radius: 6px; padding: 0 !important; transition: opacity var(--ns-t) var(--ns-ease); }
.ee-ical-sbmt:hover { opacity: 1; }

/* 8b. Tableau des ateliers */
.entry-content .category-filter,
.entry-content .category-filter + p {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 20px 20px 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--blackColor);
}
.entry-content .category-filter label { margin: 0; }
.entry-content #ee_filter_cat,
.entry-content #filter {
  height: 44px;
  padding: 0 14px;
  min-width: 220px;
  font-size: 15px;
  background-color: var(--whiteColor);
  border: 1px solid var(--ns-line);
  border-radius: var(--ns-radius-s);
}
.entry-content #ee_filter_cat { appearance: auto; }
.entry-content .category-filter .nice-select {
  float: none;
  display: inline-flex;
  align-items: center;
  height: 44px;
  line-height: 42px;
  min-width: 220px;
  padding: 0 40px 0 14px;
  font-size: 15px;
  border: 1px solid var(--ns-line);
  border-radius: var(--ns-radius-s);
  background-color: var(--whiteColor);
}
.entry-content .category-filter .nice-select .list { border-radius: var(--ns-radius-s); box-shadow: var(--ns-shadow-hover); margin-top: 6px; }
.entry-content .category-filter .nice-select .option { line-height: 40px; min-height: 40px; }

table.espresso-table#ee_filter_table {
  display: table;
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--ns-line);
  border-radius: var(--ns-radius);
  overflow: hidden;
  background: var(--whiteColor);
  box-shadow: var(--ns-shadow);
}
#ee_filter_table thead th {
  background: var(--ns-surface);
  color: var(--blackColor);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 14px 16px;
  border: none;
  border-bottom: 1px solid var(--ns-line);
  text-align: left;
}
#ee_filter_table tbody td {
  padding: 14px 16px;
  border: none;
  border-bottom: 1px solid var(--ns-line-soft);
  font-size: 15px;
  vertical-align: middle;
  background: transparent;
}
#ee_filter_table tbody tr:last-child td { border-bottom: none; }
#ee_filter_table tbody tr { transition: background-color var(--ns-t) var(--ns-ease); }
#ee_filter_table tbody tr:hover td { background: var(--ns-surface-2); }
#ee_filter_table td.event_title { font-weight: 700; color: var(--blackColor); }
#ee_filter_table td.start_date { white-space: nowrap; font-variant-numeric: tabular-nums; }
#ee_filter_table .ee-table-view-datetime-list { list-style: none; margin: 0; padding: 0; }
#ee_filter_table td.reg-col { text-align: right; }
#ee_filter_table .a_register_link {
  display: inline-block;
  padding: 7px 14px;
  border: 1.5px solid currentColor;
  border-radius: var(--ns-pill);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  line-height: 1.4;
  transition: background-color var(--ns-t) var(--ns-ease), color var(--ns-t) var(--ns-ease), transform var(--ns-t) var(--ns-ease);
}
#ee_filter_table .a_register_link:hover { background-color: var(--mainColor); border-color: var(--mainColor); color: var(--whiteColor); transform: translateY(-1px); }
#ee_filter_table tfoot td { padding: 10px 16px; background: var(--ns-surface); border: none; }
#ee_filter_table .pagination { margin: 0; justify-content: center; }
#ee_filter_table .pagination li a {
  border-radius: var(--ns-radius-s);
  padding: 6px 12px;
  border: 1px solid var(--ns-line);
  background: var(--whiteColor);
  margin: 0 2px;
  font-weight: 700;
}
#ee_filter_table .pagination li.active a { color: var(--whiteColor); background: var(--mainColor); border-color: var(--mainColor); }

/* 8c. Calendrier (FullCalendar) */
#espresso_calendar table { display: table; table-layout: fixed; width: 100%; }
#espresso_calendar .fc-header-title h2 { font-size: 24px; font-weight: 800; }
#espresso_calendar .fc-header { margin-bottom: 16px; }
#espresso_calendar .fc-button { border-radius: var(--ns-radius-s); }
#espresso_calendar .fc-widget-header,
#espresso_calendar .fc-day-header { font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: 8px 0; }
#espresso_calendar .fc-day-number { font-size: 13px; font-weight: 700; padding: 6px 8px; }
#espresso_calendar .fc-event {
  border-radius: 6px;
  padding: 3px 6px;
  font-size: 12px;
  line-height: 1.35;
  margin: 2px 3px;
  overflow-wrap: normal;
  word-break: normal;
}
#espresso_calendar .fc-event, #espresso_calendar .fc-event * { text-decoration: none !important; }
#espresso_calendar .fc-event-time { font-weight: 700; }

/* 8d. Fiche événement */
.blog-details-area.ptb-100 { padding-top: 56px; padding-bottom: 72px; }
.blog-details { border-radius: var(--ns-radius); }
.blog-details .blog-details-content .entry-meta ul li { font-size: 14px; }
.blog-details .blog-details-content .entry-meta ul li i { font-size: 20px; }
.blog-details .blog-details-content .event-datetimes { margin: 20px 0; padding: 16px 20px; background: var(--ns-surface); border-radius: var(--ns-radius); }
.blog-details .blog-details-content .event-datetimes ul { margin: 0; padding: 0; list-style: none; }
.blog-details .blog-details-content .event-datetimes ul li { list-style: none; margin: 0; }

.tkt-slctr-tbl-wrap-dv { margin: 20px 0; }
table.tkt-slctr-tbl {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--ns-line);
  border-radius: var(--ns-radius);
  overflow: hidden;
}
table.tkt-slctr-tbl thead th {
  background: var(--ns-surface);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 12px 16px;
  border: none;
  border-bottom: 1px solid var(--ns-line);
}
table.tkt-slctr-tbl td { padding: 14px 16px; border: none; border-bottom: 1px solid var(--ns-line-soft); vertical-align: middle; font-size: 15px; }
table.tkt-slctr-tbl tbody tr:last-of-type > td { border-bottom: none; }
table.tkt-slctr-tbl .tckt-slctr-tbl-td-name strong { font-size: 15px; }
table.tkt-slctr-tbl .tckt-price--nowrap { font-weight: 700; font-size: 16px; }
table.tkt-slctr-tbl .currency-code { font-size: 11px; font-weight: 600; opacity: .7; }
.ticket-selector-tbl-qty-slct { height: 40px; min-width: 72px; padding: 0 10px; border-radius: var(--ns-radius-s); border: 1px solid var(--ns-line); }
.ticket-selector-submit-btn.ticket-selector-submit-ajax { font-size: 16px; padding: 13px 26px; }
.ticket-selector-submit-btn.ticket-selector-submit-ajax:hover { transform: translateY(-1px); }

.espresso-venue-dv { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--ns-line-soft); }
.espresso-venue-dv h4 { font-size: 20px; font-weight: 800; margin-bottom: 12px; }
.espresso-venue-dv .dashicons { color: var(--mainColor); }
.espresso-venue-dv .ee-gmap-wrapper { margin: 16px 0; }
.espresso-venue-dv .ee-gmap { max-width: 100%; border-radius: var(--ns-radius); overflow: hidden; }
.espresso-venue-dv .ee-gmap-wrapper:has(.gm-err-container) { display: none; }  /* carte Google en erreur (clé API) : cadre gris caché */
.espresso-venue-dv > p { margin-bottom: 8px; }

.blog-details .blog-details-content .article-author { border-radius: var(--ns-radius); overflow: hidden; margin-top: 32px; }
.blog-details .blog-details-content .article-author .author-profile-header { height: 88px; }
.blog-details .blog-details-content .article-author .author-profile .author-profile-title img { border-radius: 50%; object-fit: cover; }
.blog-details .blog-details-content .article-author .author-profile .author-profile-title img:not([src]) { display: none; }
.blog-details .blog-details-content .article-author .author-profile .author-profile-title:has(img:not([src])) { margin-top: 0; padding-top: 18px; }
.blog-details .blog-details-content .article-author .author-profile-details h4 { font-size: 18px; margin-bottom: 0; }
.blog-details .blog-details-content .article-author .author-profile p:empty { display: none; }

.comments-area { border-radius: var(--ns-radius); }
.comments-area .comment-respond .comment-reply-title { font-size: 22px; }
.comments-area .form-submit input { border-radius: var(--ns-radius-s); text-transform: none; font-size: 15px; padding: 12px 24px; }

/* 9. Praticiens (Team Press, disposition tableau) ----------------------- */
.ex-tplist .etp-alphab-list { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 16px; }
.ex-tplist .etp-alphab-list li a {
  display: inline-block;
  min-width: 30px;
  padding: 5px 8px;
  border-radius: var(--ns-radius-s);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  text-align: center;
  transition: background-color var(--ns-t) var(--ns-ease), color var(--ns-t) var(--ns-ease);
}
.ex-tplist .etp-alphab-list li a:hover, .ex-tplist .etp-alphab-list li a.current { background: var(--ns-surface); }
.ex-tplist .extp-top-cat > li { border-radius: var(--ns-radius-s); overflow: hidden; }
.ex-tplist .extp-top-cat > li > span, .ex-tplist .extp-top-cat > li > a { font-weight: 700; font-size: 13px; }
.ex-tplist .extp-search input[type="text"],
.ex-tplist .extp-search input[type="search"],
.ex-tplist select { border-radius: var(--ns-radius-s); border: 1px solid var(--ns-line); height: 44px; padding: 0 14px; }
.ex-tplist .extp-search button { border-radius: var(--ns-radius-s); height: 44px; }

.ex-tplist.table-layout table.ex-table-1 {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--ns-line);
  border-radius: var(--ns-radius);
  overflow: hidden;
  box-shadow: var(--ns-shadow);
}
.ex-tplist.table-layout table.ex-table-1 thead th {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 14px 16px;
  border: none;
}
.ex-tplist.table-layout table.ex-table-1 tbody td {
  padding: 16px;
  border: none;
  border-bottom: 1px solid var(--ns-line-soft);
  vertical-align: middle;
  font-size: 15px;
  line-height: 1.5;
}
.ex-tplist.table-layout table.ex-table-1 tbody tr:last-child td { border-bottom: none; }
.ex-tplist.table-layout table.ex-table-1 tbody tr:hover td { background: var(--ns-surface-2); }
.ex-tplist.table-layout table.ex-table-1 td.exp-td-first { width: 128px; }
.exp-td-first img {
  width: 96px !important;
  height: 96px !important;
  object-fit: cover;
  border-radius: var(--ns-radius) !important;
  display: block;
}
.ex-tplist.table-layout .item-grid h3, .ex-tplist.table-layout td[data-sort] a { font-weight: 800; font-size: 16px; }
.ex-tplist .ex-social-account li a { border-radius: var(--ns-radius-s); transition: transform var(--ns-t) var(--ns-ease); }
.ex-tplist .ex-social-account li a:hover { transform: translateY(-2px); }

/* 10. Adhésion / Parcours / Dons (Paid Memberships Pro) ------------------ */
/* Le bloc des niveaux est collé dans un bloc « préformaté » : on lui rend
   une mise en page normale (police, retours à la ligne, espaces). */
pre.wp-block-preformatted:has(.pmpro) {
  white-space: normal;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  overflow: visible;
  color: inherit;
}
pre.wp-block-preformatted:has(.pmpro) .pmpro_spacer { height: 12px; }
.pmpro_card {
  border: 1px solid var(--ns-line);
  border-radius: var(--ns-radius);
  box-shadow: var(--ns-shadow);
  padding: 28px 32px;
  margin-bottom: 24px;
  background: var(--whiteColor);
}
.pmpro_card_title { font-size: 22px; font-weight: 800; margin: 0 0 8px; }
.pmpro_card_content > p { font-size: 15px; margin-bottom: 12px; }
.pmpro_levels_table { width: 100%; border-collapse: collapse; }
.pmpro_levels_table thead th {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--optionalColor);
  padding: 10px 12px;
  border-bottom: 1px solid var(--ns-line);
  text-align: left;
}
.pmpro_levels_table tbody th, .pmpro_levels_table tbody td {
  padding: 16px 12px;
  border-bottom: 1px solid var(--ns-line-soft);
  vertical-align: middle;
  font-size: 15px;
}
.pmpro_levels_table tbody tr:last-child th, .pmpro_levels_table tbody tr:last-child td { border-bottom: none; }
.pmpro_levels_table tbody th { font-weight: 700; color: var(--blackColor); width: 34%; }
.pmpro_levels_table .pmpro_level-price { margin: 0; font-size: 15px; }
.pmpro_levels_table td:last-child { text-align: right; width: 180px; }
.pmpro_levels_table .pmpro_btn-select { display: inline-block; width: auto !important; min-width: 140px; padding: 11px 22px; font-weight: 700; text-align: center; }
.pmpro_section { margin-bottom: 0; }

/* 11. Blog, sidebar, divers --------------------------------------------- */
.sidebar .widget { border-radius: var(--ns-radius); border: 1px solid var(--ns-line-soft); box-shadow: var(--ns-shadow); padding: 26px 24px; }
.sidebar .widget .widget-title { font-size: 18px; border-left-style: solid; }
.sidebar .widget_search form .search-field { border-radius: var(--ns-radius-s); }
.sidebar .widget_search form button { border-radius: var(--ns-radius-s); }
.sidebar .widget .ee-upcoming-events-widget-ul li { padding-left: 0; overflow: visible; }
.sidebar .widget .ee-upcoming-events-widget-ul li::before { display: none; }
.sidebar .widget .ee-upcoming-events-widget-ul .ee-event-datetimes-li { padding-left: 0; overflow: visible; }
.sidebar .widget .ee-upcoming-events-widget-li { padding: 14px 0; border-bottom: 1px solid var(--ns-line-soft); margin: 0; }
.sidebar .widget .ee-upcoming-events-widget-li:last-child { border-bottom: none; padding-bottom: 0; }
.sidebar .widget .ee-upcoming-events-widget-title-h5 { font-size: 16px; font-weight: 800; margin: 0 0 8px; }
.sidebar .widget .ee-upcoming-events-widget-li p { font-size: 14px; line-height: 1.6; margin: 8px 0 0 !important; color: var(--optionalColor); }
.sidebar .widget .ee-event-datetimes-li { font-size: 14px; }
.no-results { border-radius: var(--ns-radius); }
.pagination-area .page-numbers { border-radius: var(--ns-radius-s); width: 38px; height: 38px; line-height: 38px; }
.espresso-ajax-notices, .espresso-notices { border-radius: var(--ns-radius-s); }

/* 12. Responsive --------------------------------------------------------- */
@media (max-width: 1199px) {
  .ecademy-responsive-nav .ecademy-responsive-menu > .logo > a > img { width: 118px !important; }
}

@media (max-width: 991px) {
  .page-title-area { padding-top: 40px; padding-bottom: 40px; }
  .footer-area { padding-top: 56px; }
  .blog-details-area.ptb-100 { padding-top: 40px; padding-bottom: 48px; }
  .single-funfacts-box { padding-top: 36px; padding-bottom: 36px; }
  .single-feedback-item { padding: 36px 32px; }
}

@media (max-width: 767px) {
  .elementor-widget-heading h1.elementor-heading-title { font-size: 32px !important; }
  .elementor-widget-heading h2.elementor-heading-title { font-size: 26px !important; }
  .section-title { margin-bottom: 36px; }
  .page-title-content h2 { font-size: 28px; }

  /* Agenda : le bouton « détails » repasse sous le titre */
  .page-area article.espresso_events { padding: 20px 18px; }
  .espresso-event-header-dv .event-header .entry-title { padding-right: 0; font-size: 20px; }
  .espresso-event-list-wrapper-dv .event-content > form:has(.view-details-btn) { position: static; margin: 0 0 12px; }

  /* Tableau des ateliers : une carte par atelier */
  .entry-content .category-filter, .entry-content .category-filter + p { display: flex; margin-right: 0; }
  .entry-content #ee_filter_cat, .entry-content #filter { flex: 1; min-width: 0; }
  table.espresso-table#ee_filter_table { display: block; }
  #ee_filter_table thead { display: none; }
  #ee_filter_table tbody { display: block; }
  #ee_filter_table tbody tr {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2px 12px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--ns-line-soft);
  }
  #ee_filter_table tbody tr:last-child { border-bottom: none; }
  #ee_filter_table tbody td { display: block; padding: 0; border: none; }
  #ee_filter_table td.event_title { grid-column: 1 / -1; font-size: 16px; margin-bottom: 2px; }
  #ee_filter_table td.venue_title { grid-column: 1; font-size: 14px; color: var(--optionalColor); }
  #ee_filter_table td.start_date { grid-column: 1; font-size: 14px; }
  #ee_filter_table td.reg-col { grid-column: 2; grid-row: 2 / span 2; align-self: center; }
  #ee_filter_table tfoot { display: block; }
  #ee_filter_table tfoot tr, #ee_filter_table tfoot td { display: block; }

  /* Praticiens : photo à gauche, fiche à droite */
  .ex-tplist.table-layout table.ex-table-1 { display: block; border-radius: var(--ns-radius); }
  .ex-tplist.table-layout table.ex-table-1 thead { display: none; }
  .ex-tplist.table-layout table.ex-table-1 tbody { display: block; }
  .ex-tplist.table-layout table.ex-table-1 tbody tr {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 14px;
    padding: 14px;
    border-bottom: 1px solid var(--ns-line-soft);
  }
  .ex-tplist.table-layout table.ex-table-1 tbody td { display: block; padding: 0; border: none; min-width: 0; }
  .ex-tplist.table-layout table.ex-table-1 td.exp-td-first { width: 88px; }
  .exp-td-first img { width: 88px !important; height: 88px !important; }
  .ex-tplist.table-layout table.ex-table-1 td.extp-hide-screen { display: none; }

  /* Calendrier : défilement horizontal plutôt que des cases illisibles */
  #espresso_calendar { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  #espresso_calendar .fc-content, #espresso_calendar .fc-header { min-width: 720px; }

  /* Fiche événement */
  .blog-details .blog-details-content .event-datetimes { padding: 14px 16px; }
  .ticket-selector-submit-btn.ticket-selector-submit-ajax { width: 100%; }

  /* Adhésion : tableau en fiches */
  .pmpro_card { padding: 20px 18px; }
  .pmpro_levels_table thead { display: none; }
  .pmpro_levels_table, .pmpro_levels_table tbody, .pmpro_levels_table tr { display: block; }
  .pmpro_levels_table tbody tr { padding: 14px 0; border-bottom: 1px solid var(--ns-line-soft); }
  .pmpro_levels_table tbody th, .pmpro_levels_table tbody td { display: block; width: auto; padding: 4px 0; border: none; text-align: left; }
  .pmpro_levels_table td:last-child { padding-top: 10px; }
  .pmpro_levels_table .pmpro_btn-select { width: 100%; }

  /* Pied de page */
  .single-footer-widget { margin-bottom: 26px; }
  .footer-bottom-area { text-align: center; }
}

/* Mouvement réduit : on garde les changements d'état, sans déplacement */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; }
  .default-btn:hover, .elementor-button:hover, .single-program-box:hover, .single-lifestyle-box:hover,
  .single-pricing-box:hover, .page-area article.espresso_events:hover, #ee_filter_table .a_register_link:hover { transform: none; }
}
