/* =====================================================================
   Adaptation Elementor.
   Les pages sont construites avec Elementor ; le thème garde la main sur le
   rendu : les classes posées sur les conteneurs (classe « nc » + classes de
   main.css) et sur les widgets reprennent les styles du thème. Ce qu'Elementor
   pilote par variables (marges, remplissages, écarts, rayon, affichage) est
   exprimé avec ces variables : un réglage fait dans l'éditeur garde la priorité.
   ===================================================================== */

/* ---------- conteneurs du thème ---------- */
.nc { --width: auto; --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --row-gap: 0px; --column-gap: 0px; }
.elementor-widget:not(:last-child) { --kit-widget-spacing: 0px; }
/* Widgets décoratifs (cercles) : hors du flux, pour ne pas occuper une cellule de grille ni une ligne de colonne. */
.e-con > .elementor-widget.deco { position: absolute; inset: 0; width: auto; max-width: none; margin: 0; pointer-events: none; }
.elementor-widget.deco > .elementor-widget-container, .elementor-widget.deco .elementor-shortcode { position: static; }
.nc.hero__grid, .nc.hero__stat, .nc.page-head, .nc.band__content, .nc.band__book-wrap, .nc.cta-dark__content, .nc.video__label { position: relative; }

/* Marges et largeurs des textes : la classe est portée par le widget, et Elementor fixe max-width et marge basse des widgets
   avec une forte spécificité. On les exprime donc en variables (--wmax, --wmb), lues par une règle plus forte qu'Elementor. */
.elementor.elementor .e-con > .elementor-widget { max-width: var(--wmax, 100%); margin-block-end: var(--wmb, 0px); }
.elementor.elementor .e-con > .elementor-widget:last-child { margin-block-end: 0; }
.kicker { --wmb: 14px; } .kicker--light { --wmb: 16px; } .kicker--band { --wmb: 12px; } .offres__head .kicker { --wmb: 12px; }
.hero__badge { --wmb: 30px; } .hero__title { --wmb: 24px; } .hero__text { --wmax: 460px; --wmb: 34px; }
.page-head__title { --wmb: 20px; }
.lead, .p-body { --wmb: 20px; } .quote { --wmb: 34px; } .tags, .oser { --wmb: 26px; }
.section-text { --wmax: 560px; --wmb: 40px; }
.piliers__text { --wmax: 560px; --wmb: 52px; }
.offres__text { --wmax: 320px; }
.histoire__title { --wmb: 24px; } .histoire__p { --wmax: 520px; --wmb: 24px; }
.band__title { --wmb: 16px; } .band__text { --wmax: 440px; --wmb: 28px; }
.vision__text { --wmax: 600px; }
.cta-dark__title { --wmb: 16px; } .cta-dark__quote { --wmax: 720px; --wmb: 26px; } .cta-dark__sub { --wmb: 32px; } .cta-dark__text { --wmax: 520px; --wmb: 30px; }
.contact__title { --wmb: 18px; } .contact__text { --wmb: 26px; }
.accomp-intro .elementor-widget-heading { --wmb: 20px; } .accomp-intro__text { --wmax: 520px; --wmb: 30px; }
.formule__kicker { --wmb: 12px; } .formule__title { --wmb: 14px; }
.duo__title { --wmb: 16px; } .duo__text { --wmb: 28px; }
.etape__num { --wmb: 18px; }
.t3 { --wmb: 9px; }
.mb-10 { --wmb: 10px; } .mb-30 { --wmb: 30px; } .mb-40 { --wmb: 40px; }
.prose-block > .elementor-widget-heading { --wmb: 20px; }

/* Les classes btn--* sont portées par le widget : on neutralise leur rendu sur le conteneur, le style va sur le bouton lui-même. */
.elementor-widget[class*="btn--"], .elementor-widget[class*="btn--"]:hover, .elementor-widget.formule__btn, .elementor-widget.formule__btn:hover { background: none; border: 0; padding: 0; color: inherit; border-radius: 0; opacity: 1; font-size: inherit; }

/* ---------- widgets : la classe posée sur le widget pilote le texte ---------- */
.elementor-widget-heading .elementor-heading-title { font: inherit; line-height: inherit; letter-spacing: inherit; color: inherit; text-wrap: inherit; margin: 0; }
.elementor-widget-heading .elementor-heading-title a { color: inherit; }
.elementor-widget-text-editor p { margin: 0; }
.elementor-widget-text-editor p + p, .elementor-widget-text-editor ul + p, .elementor-widget-text-editor p + ul { margin-top: 1.1em; }
.elementor-widget-image { text-align: left; }
.elementor-widget-image img { display: block; width: 100%; }
.elementor-widget-html > .elementor-widget-container:empty { display: none; }

/* boutons */
.elementor-widget-button .elementor-button { display: inline-block; background: #B5764F; color: #F7F1E6; padding: 14px 26px; border-radius: 999px; font-family: var(--sans); font-size: 14px; font-weight: 600; line-height: 1.2; border: 0; text-align: center; white-space: nowrap; fill: currentColor; transition: color .25s ease, background .25s ease, opacity .25s ease; }
.elementor-widget-button .elementor-button:hover, .elementor-widget-button .elementor-button:focus { color: #F7F1E6; background: #A56841; }
.btn--lg .elementor-button { padding: 15px 28px; font-size: 14.5px; }
.btn--sm .elementor-button { padding: 11px 20px; font-size: 12.5px; }
.btn--block .elementor-button-wrapper, .btn--block .elementor-button { display: block; width: 100%; }
.btn--block .elementor-button { padding: 14px; white-space: normal; }
.btn--brand .elementor-button { background: var(--brand); }
.btn--brand .elementor-button:hover { background: var(--brand); opacity: .9; }
.btn--cream .elementor-button { background: #F7F1E6; color: var(--brand); }
.btn--cream .elementor-button:hover { background: #fff; color: var(--brand); }
.btn--accent2 .elementor-button { background: var(--accent2); }
.btn--accent2 .elementor-button:hover { background: var(--accent2); opacity: .9; }
.btn--outline .elementor-button { background: transparent; border: 1.5px solid rgba(247,241,230,.35); color: #F7F1E6; }
.btn--outline .elementor-button:hover { background: rgba(247,241,230,.08); color: #F7F1E6; }
.btn--outline-dark .elementor-button { background: transparent; border: 1.5px solid var(--brand); color: var(--brand); }
.btn--outline-dark .elementor-button:hover { background: var(--brand); color: #F7F1E6; }
.formule__btn .elementor-button, .formule__btn .elementor-button:hover { background: var(--f-btn-bg); color: var(--f-btn-fg); }
.formule__btn .elementor-button:hover { opacity: .9; }
.duo .elementor-widget-button .elementor-button { padding: 13px 24px; }

/* lien « en savoir plus » (widget titre avec lien) */
.link-more .elementor-heading-title a { display: inline-flex; align-items: center; gap: 8px; }

/* photos (widget image) */
.e-con > .elementor-widget-image[class*="photo--"] { --container-widget-width: 100%; width: 100%; }
.elementor-widget-image[class*="photo--"] > .elementor-widget-container, .elementor-widget-image[class*="photo--"] img { height: 100%; }
.elementor-widget-image[class*="photo--"] img { object-fit: cover; background: #E3D3C0; }
.photo--hero img { border-radius: var(--r-hero-photo); object-position: center 15%; background: var(--photo-bg); }
.photo--about img { border-radius: var(--r-photo-about); object-position: center 15%; }
.photo--portrait img { border-radius: var(--r-photo-portrait); object-position: center 22%; }
.photo--accomp img { border-radius: var(--r-photo-accomp); object-position: center 18%; }

/* listes éditables (widget texte) */
.tags ul, .oser ul, .formule__points ul { list-style: none; margin: 0; padding: 0; }
.oser ul { display: flex; flex-direction: column; gap: 12px; }
.formule__points ul { display: flex; flex-direction: column; gap: 11px; }
.elementor-widget.tags, .elementor-widget.oser, .elementor-widget.formule__points { display: block; }
.quote p { margin: 0; }
.histoire__p p + p { margin-top: 18px; }

/* ---------- mise en page (variables Elementor) ---------- */
.nc.container { max-width: 1180px; margin-inline: auto; --padding-left: 22px; --padding-right: 22px; }
.nc.container--narrow { max-width: 760px; }
.nc.container--mid { max-width: 860px; }
.nc.container--video { max-width: 1000px; }
.nc.block { --border-radius: var(--r-block); --padding-top: 74px; --padding-bottom: 74px; --padding-left: 60px; --padding-right: 60px; }
.nc.block--tight { --padding-top: 60px; --padding-bottom: 60px; }
.nc.block--contact { --padding-top: 66px; --padding-bottom: 66px; }
.nc.block > .nc.container, .nc.piliers > .nc.container { --padding-left: 0px; --padding-right: 0px; }
.nc.mt-56 { --margin-top: 56px; } .nc.mt-60 { --margin-top: 60px; } .nc.mt-78 { --margin-top: 78px; } .nc.mt-84 { --margin-top: 84px; }
.nc.mt-86 { --margin-top: 86px; } .nc.mt-90 { --margin-top: 90px; } .nc.mt-96 { --margin-top: 96px; }
/* Elementor écrit --display:flex pour chaque conteneur dans le CSS de la page : !important nécessaire. */
.nc.grid { --display: grid !important; --row-gap: 18px; --column-gap: 18px; }
.nc.grid--4 { --row-gap: 22px; --column-gap: 22px; }
.nc.grid--3 { --row-gap: 24px; --column-gap: 24px; }
.nc.grid--2 { --row-gap: 26px; --column-gap: 26px; }
.nc.grid--gap-52 { --row-gap: 52px; --column-gap: 52px; }
.nc.grid--gap-26 { --row-gap: 26px; --column-gap: 26px; }
.nc.grid--gap-22 { --row-gap: 22px; --column-gap: 22px; }
.nc.stack { --row-gap: 18px; }
.nc.stack--12 { --row-gap: 12px; }
.nc.center { --text-align: center; }

/* en-tête coloré : hero (accueil) et titre des pages */
.nc.masthead__body { position: relative; overflow: hidden; background: var(--brand); --border-radius: 0 0 var(--r-block) var(--r-block); --padding-left: 26px; --padding-right: 26px; }
.nc.hero__grid { --display: grid !important; grid-template-columns: 1fr .78fr; --column-gap: 44px; --row-gap: 44px; --align-items: end; --padding-top: 34px; --padding-left: 6px; --padding-right: 6px; }
.nc.hero__body { --padding-bottom: 74px; }
.nc.hero__actions { --container-widget-width: auto; --flex-direction: row; --flex-wrap: wrap; --align-items: center; --column-gap: 12px; --row-gap: 12px; }
.elementor-widget.hero__badge { display: block; border: 0; padding: 0; margin-bottom: 30px; }
.hero__badge .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; padding: 8px 18px; border: 1px solid rgba(201,138,100,.5); border-radius: 999px; }
.nc.hero__stat { --width: fit-content; --container-widget-width: auto; --flex-direction: row; --flex-wrap: wrap; --align-items: center; --column-gap: 26px; --row-gap: 26px; --padding-top: 16px; --padding-bottom: 16px; --padding-left: 26px; --padding-right: 26px; --border-radius: var(--r-stat); background: #F7F1E6; }
.nc.hero__stat-item { --container-widget-width: auto; --flex-direction: row; --align-items: center; --column-gap: 14px; }
.nc.page-head { max-width: 820px; margin-inline: auto; --padding-top: 56px; --padding-bottom: 78px; --padding-left: 20px; --padding-right: 20px; --text-align: center; }

/* accueil */
.nc.piliers { --padding-top: 86px; --padding-left: 22px; --padding-right: 22px; --text-align: center; }
.nc.histoire__grid { --display: grid !important; grid-template-columns: .8fr 1fr; --column-gap: 66px; --row-gap: 66px; --align-items: center; }
.nc.offres__head { --container-widget-width: auto; --flex-direction: row; --flex-wrap: wrap; --align-items: flex-end; --justify-content: space-between; --column-gap: 24px; --row-gap: 24px; --margin-bottom: 40px; }
.nc.offer { background: #fff; --border-radius: var(--r-card-lg); overflow: hidden; }
.nc.offer__img { --display: block !important; --height: 250px; background-color: #E3D3C0; }
.elementor-widget.offer__title { position: absolute; }
.nc.offer__body { --padding-top: 26px; --padding-bottom: 28px; --padding-left: 26px; --padding-right: 26px; --row-gap: 20px; flex: 1; }
.nc.offer__body > .elementor-widget-text-editor { flex: 1; font-size: 14.5px; line-height: 1.7; color: #7A6858; }
.nc.band { --display: grid !important; grid-template-columns: 1.25fr .85fr; --column-gap: 48px; --row-gap: 48px; --align-items: center; --padding-top: 54px; --padding-bottom: 54px; --padding-left: 58px; --padding-right: 58px; --border-radius: var(--r-block-lg); background: var(--accent2); color: #F7F1E6; position: relative; overflow: hidden; }
.nc.band__content { position: relative; }
.nc.band__book-wrap { --container-widget-width: auto; --flex-direction: row; --justify-content: center; }

/* à propos */
.nc.portrait { --display: grid !important; grid-template-columns: .62fr 1fr; --column-gap: 60px; --row-gap: 60px; --align-items: center; }
.nc.vision__head { --text-align: center; --margin-bottom: 40px; }
.nc.cta-dark { background: var(--brand); --border-radius: var(--r-block-lg); --padding-top: 60px; --padding-bottom: 60px; --padding-left: 56px; --padding-right: 56px; --text-align: center; color: #F7F1E6; position: relative; overflow: hidden; }
.nc.cta-dark--quote { --padding-top: 66px; --padding-bottom: 66px; }
.nc.cta-dark__content { position: relative; }

/* cartes */
.nc.card { background: #fff; --border-radius: var(--r-card); --padding-top: 32px; --padding-bottom: 32px; --padding-left: 26px; --padding-right: 26px; --text-align: left; }
.nc.card--tight { --padding-top: 30px; --padding-bottom: 30px; }
.nc.card--row { --padding-top: 26px; --padding-bottom: 26px; --padding-left: 28px; --padding-right: 28px; }
.nc.card--md { --border-radius: var(--r-card-md); --padding-left: 28px; --padding-right: 28px; }
.nc.card--faq { --padding-top: 26px; --padding-bottom: 26px; --padding-left: 30px; --padding-right: 30px; }

/* ateliers */
.nc.formule { --border-radius: var(--r-block); --padding-top: 42px; --padding-bottom: 42px; --padding-left: 40px; --padding-right: 40px; --row-gap: 22px; }
.nc.formule__foot { --container-widget-width: auto; --margin-top: auto; --flex-direction: row; --flex-wrap: wrap; --align-items: center; --justify-content: space-between; --column-gap: 16px; --row-gap: 16px; }
.nc.section-head { --container-widget-width: auto; --flex-direction: row; --flex-wrap: wrap; --align-items: flex-end; --justify-content: space-between; --column-gap: 20px; --row-gap: 20px; --margin-bottom: 34px; }

/* accompagnement */
.nc.accomp-intro { --display: grid !important; grid-template-columns: 1fr .62fr; --column-gap: 60px; --row-gap: 60px; --align-items: center; }
.nc.duo { --border-radius: var(--r-block); --padding-top: 46px; --padding-bottom: 46px; --padding-left: 44px; --padding-right: 44px; }

/* business */
.nc.video { --border-radius: var(--r-block); overflow: hidden; background: var(--brand); aspect-ratio: 16 / 9; position: relative; }
.nc.video--placeholder { --container-widget-width: auto; --align-items: center; --justify-content: center; --row-gap: 18px; }
.nc.video__label { --text-align: center; position: relative; }
.nc.contact { --display: grid !important; grid-template-columns: .85fr 1.15fr; --column-gap: 56px; --row-gap: 56px; }

/* ---------- responsive (mêmes seuils que main.css) ---------- */
@media (max-width: 1024px) {
  .nc.hero__grid { grid-template-columns: 1fr .72fr; --column-gap: 30px; --row-gap: 30px; }
  .nc.block { --padding-top: 56px; --padding-bottom: 56px; --padding-left: 40px; --padding-right: 40px; }
  .nc.block--tight, .nc.block--contact { --padding-top: 50px; --padding-bottom: 50px; }
  .nc.band { --padding-top: 44px; --padding-bottom: 44px; --padding-left: 40px; --padding-right: 40px; }
  .nc.formule { --padding-top: 34px; --padding-bottom: 34px; --padding-left: 30px; --padding-right: 30px; }
  .nc.contact { --column-gap: 36px; --row-gap: 36px; }
}
@media (max-width: 767px) {
  .nc.masthead__body { --padding-left: 18px; --padding-right: 18px; }
  .nc.hero__grid { grid-template-columns: 1fr; --column-gap: 26px; --row-gap: 26px; --padding-top: 26px; --padding-left: 0px; --padding-right: 0px; }
  .nc.hero__body { --padding-bottom: 26px; }
  .nc.hero__stat { --margin-top: 18px; --width: 100%; --flex-wrap: nowrap; --column-gap: 18px; }
  .nc.page-head { --padding-top: 36px; --padding-bottom: 52px; --padding-left: 8px; --padding-right: 8px; }
  .nc.histoire__grid, .nc.portrait, .nc.accomp-intro, .nc.contact { grid-template-columns: 1fr; }
  .nc.histoire__grid { --column-gap: 30px; --row-gap: 30px; }
  .nc.accomp-intro > .photo--accomp { order: -1; }
  .nc.block { --padding-top: 44px; --padding-bottom: 44px; --padding-left: 22px; --padding-right: 22px; }
  .nc.block--tight, .nc.block--contact { --padding-top: 40px; --padding-bottom: 40px; }
  .nc.band { grid-template-columns: 1fr; --padding-top: 34px; --padding-bottom: 34px; --padding-left: 24px; --padding-right: 24px; }
  .nc.band__book-wrap { --display: none !important; }
  .nc.cta-dark, .nc.cta-dark--quote { --padding-top: 44px; --padding-bottom: 44px; --padding-left: 24px; --padding-right: 24px; }
  .nc.duo { --padding-top: 34px; --padding-bottom: 34px; --padding-left: 26px; --padding-right: 26px; }
  .nc.formule { --padding-top: 30px; --padding-bottom: 30px; --padding-left: 24px; --padding-right: 24px; }
  .nc.mt-96, .nc.mt-90, .nc.mt-86, .nc.mt-84 { --margin-top: 64px; }
  .nc.mt-78 { --margin-top: 56px; }
  .nc.mt-60, .nc.mt-56 { --margin-top: 44px; }
  .nc.piliers { --padding-top: 64px; --padding-left: 0px; --padding-right: 0px; }
}
@media (max-width: 600px) {
  .nc.hero__stat { --width: 100%; --column-gap: 18px; --row-gap: 18px; }
  .nc.offres__head, .nc.section-head { --align-items: flex-start; }
  .nc.hero__actions > .elementor-widget-button { flex: 1 1 auto; }
  .nc.hero__actions .elementor-button-wrapper, .nc.hero__actions .elementor-button { display: block; width: 100%; }
}

/* ---------- photos qui remplissent leur bloc (cartes offres / ateliers, vidéo) ---------- */
.e-con > .elementor-widget.photo--fill { position: absolute; inset: 0; --container-widget-width: 100%; width: 100%; height: 100%; margin: 0; }
.elementor-widget.photo--fill > .elementor-widget-container, .elementor-widget.photo--fill img { width: 100%; height: 100%; object-fit: cover; }
.offer__photo img { object-position: center 35%; }
.video__photo img { object-position: center 20%; opacity: .28; }
.video--jaquette .video__photo img { opacity: 1; object-position: center; } /* jaquette YouTube affichée telle quelle */
.elementor-widget.offer__title { z-index: 1; }

/* ---------- cartes = widgets Naicha : la carte remplit sa cellule de grille ---------- */
.elementor-widget-naicha-carte, .elementor-widget-naicha-atelier, .elementor-widget-naicha-ressource, .elementor-widget-naicha-temoignage { display: flex; flex-direction: column; }
.nc.grid:not(.grid--start) > .elementor-widget-naicha-carte, .nc.grid:not(.grid--start) > .elementor-widget-naicha-atelier, .nc.grid:not(.grid--start) > .elementor-widget-naicha-ressource { align-self: stretch; height: auto; }
.elementor-widget-naicha-carte > .elementor-widget-container, .elementor-widget-naicha-atelier > .elementor-widget-container, .elementor-widget-naicha-ressource > .elementor-widget-container, .elementor-widget-naicha-temoignage > .elementor-widget-container { display: flex; flex-direction: column; flex: 1; width: 100%; }
.elementor-widget-naicha-carte .card, .elementor-widget-naicha-atelier .atelier, .elementor-widget-naicha-ressource .ressource, .elementor-widget-naicha-temoignage .temoignage { flex: 1; width: 100%; }

/* ---------- en-tête blanc (axe « En-tête » des Réglages d'apparence) ---------- */
.entete-blanc .nc.masthead__body { background: #fff; }
.entete-blanc .masthead__body .btn--outline .elementor-button { border-color: rgba(var(--brand-rgb), .4); color: var(--brand); }
.entete-blanc .masthead__body .btn--outline .elementor-button:hover, .entete-blanc .masthead__body .btn--outline .elementor-button:focus { background: rgba(var(--brand-rgb), .07); color: var(--brand); }
