/**
 * Pont Elementor.
 *
 * Les pages converties reprennent les classes du thème (section, container,
 * grid, card, feature...). Ce fichier neutralise les styles par défaut des
 * conteneurs et widgets Elementor pour que theme.css reprenne la main, puis
 * rejoue les règles que le kit Elementor écraserait à cause de sa spécificité.
 *
 * @package eve-kinesiologie
 */

/* ---------------------------------------------------------------
   1. Neutralisation des conteneurs Elementor
   --------------------------------------------------------------- */

.elementor .eve-el.e-con,
.elementor .eve-el.e-con > .e-con-inner {
  --padding-block-start: 0px;
  --padding-block-end: 0px;
  --padding-inline-start: 0px;
  --padding-inline-end: 0px;
  --gap: 0px;
  --row-gap: 0px;
  --column-gap: 0px;
  --margin-block-start: 0px;
  --margin-block-end: 0px;
  --margin-inline-start: 0px;
  --margin-inline-end: 0px;
  --width: auto;
  --min-height: 0;
  display: block;
  flex-direction: row;
  width: auto;
  max-width: none;
  padding: 0;
  margin: 0;
  gap: 0;
}

/* Les classes du thème qui imposent un mode d'affichage le reprennent. */
.elementor .eve-el.section {
  padding-block: clamp(72px, 10vw, 130px);
}
.elementor .eve-el.section--sand {
  background: var(--sand-100);
}
.elementor .eve-el.section--teal {
  background: linear-gradient(160deg, var(--teal-700), var(--teal-900));
  color: var(--teal-100);
}
.elementor .eve-el.grid {
  display: grid;
  gap: 32px;
}
.elementor .eve-el.grid--2 {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
.elementor .eve-el.grid--3 {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.elementor .eve-el.grid--4 {
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}
.elementor .eve-el.stack-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.elementor .eve-el.stack-actions--center {
  justify-content: center;
}
.elementor .eve-el.card,
.elementor .eve-el.card__body,
.elementor .eve-el.steps,
.elementor .eve-el.form-footer {
  display: flex;
  flex-direction: column;
}
.elementor .eve-el.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: 24px;
}
.elementor .eve-el.container--narrow {
  max-width: 820px;
}
.elementor .eve-el.section-head {
  max-width: 720px;
  margin-bottom: 56px;
}
.elementor .eve-el.section-head--center {
  margin-inline: auto;
  text-align: center;
}
.elementor .eve-el.split,
.elementor .eve-el.seance,
.elementor .eve-el.contact {
  display: grid;
}
.elementor .eve-el.hero,
.elementor .eve-el.page-hero {
  display: flex;
}

/* ---------------------------------------------------------------
   2. Neutralisation des widgets
   --------------------------------------------------------------- */

.elementor .eve-el-w.elementor-widget {
  margin: 0;
  width: auto;
}
/* Elementor impose `max-width: 100%` avec une specificite (0,4,0) sur les
   widgets enfants directs d'un conteneur : on repasse au-dessus. */
.elementor.elementor .e-con > .eve-el-w.elementor-widget,
.elementor.elementor .e-con > .e-con-inner > .eve-el-w.elementor-widget {
  max-width: none;
}
.elementor.elementor .eve-el.e-con .eve-el-w.hero__text {
  max-width: 520px;
}
.elementor.elementor .eve-el.e-con .eve-el-w.page-hero__text {
  max-width: 640px;
}
.elementor .eve-el-w > .elementor-widget-container {
  margin: 0;
  padding: 0;
}

/* Titres : le kit Elementor cible .elementor-kit-x h2, plus spécifique que
   le sélecteur d'élément du thème. On rejoue donc les règles ici. */
.elementor .eve-el-w .elementor-heading-title {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
}
.elementor .eve-el-w h1.elementor-heading-title,
.elementor .eve-el-w h2.elementor-heading-title,
.elementor .eve-el-w h3.elementor-heading-title,
.elementor .eve-el-w h4.elementor-heading-title {
  font-family: var(--font-title);
  color: var(--teal-900);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0 0 0.5em;
}
.elementor .eve-el-w h1.elementor-heading-title {
  font-size: clamp(2.6rem, 6vw, 4.4rem);
}
.elementor .eve-el-w h2.elementor-heading-title {
  font-size: clamp(2rem, 4vw, 3rem);
}
.elementor .eve-el-w h3.elementor-heading-title {
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
}

/* Textes */
.elementor .eve-el-w.elementor-widget-text-editor {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.75;
  color: var(--ink-700);
}
.elementor .eve-el-w.elementor-widget-text-editor p {
  margin: 0 0 1.1em;
}

/* Images */
.elementor .eve-el-w.elementor-widget-image .elementor-widget-container,
.elementor .eve-el-w.elementor-widget-image figure,
.elementor .eve-el-w.elementor-widget-image a {
  margin: 0;
  padding: 0;
  display: block;
}
.elementor .eve-el-w.elementor-widget-image img {
  display: block;
  max-width: 100%;
}

/* ---------------------------------------------------------------
   3. Sur-titre et chapeau
   --------------------------------------------------------------- */

.elementor .eve-el-w.eyebrow {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--clay-600);
  margin-bottom: 14px;
}
.elementor .eve-el-w.eyebrow .elementor-heading-title {
  display: inline;
}
.section--teal .eve-el-w.eyebrow {
  color: var(--teal-300);
}

.elementor .eve-el-w.lead,
.elementor .eve-el-w.lead p {
  font-size: 1.12rem;
  color: var(--ink-500);
}
.section--teal .eve-el-w.lead,
.section--teal .eve-el-w.lead p {
  color: var(--teal-100);
}

/* ---------------------------------------------------------------
   4. Boutons
   --------------------------------------------------------------- */

.elementor .eve-btn .elementor-button-wrapper {
  display: inline-flex;
}
.elementor .eve-btn .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 15px 34px;
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.75;
  background: none;
  transition: all 0.3s var(--ease);
  white-space: nowrap;
}
.elementor .eve-btn .elementor-button .elementor-button-content-wrapper,
.elementor .eve-btn .elementor-button .elementor-button-text {
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
}

.elementor .eve-btn--primary .elementor-button {
  background: var(--teal-700);
  color: var(--white);
  box-shadow: 0 10px 26px rgba(47, 111, 99, 0.28);
}
.elementor .eve-btn--primary .elementor-button:hover {
  background: var(--teal-900);
  color: var(--white);
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(47, 111, 99, 0.34);
}

.elementor .eve-btn--outline .elementor-button {
  background: transparent;
  color: var(--teal-900);
  border-color: var(--teal-300);
}
.elementor .eve-btn--outline .elementor-button:hover {
  background: var(--teal-700);
  border-color: var(--teal-700);
  color: var(--white);
}

.elementor .eve-btn--light .elementor-button {
  background: var(--white);
  color: var(--teal-900);
}
.elementor .eve-btn--light .elementor-button:hover {
  background: var(--sand-200);
  color: var(--teal-900);
  transform: translateY(-2px);
}

.elementor .eve-btn--ghost-light .elementor-button {
  background: transparent;
  color: var(--white);
  border-color: rgba(255, 255, 255, 0.5);
}
.elementor .eve-btn--ghost-light .elementor-button:hover {
  background: rgba(255, 255, 255, 0.14);
  color: var(--white);
}

/* ---------------------------------------------------------------
   5. Grande bannière
   --------------------------------------------------------------- */

.elementor .eve-el.hero {
  position: relative;
  min-height: min(88vh, 780px);
  align-items: center;
  overflow: hidden;
  background: var(--sand-50);
}
.elementor .eve-el.hero > .hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.elementor .eve-el.hero > .hero__media,
.elementor .eve-el.hero > .hero__media .eve-el-w,
.elementor .eve-el.hero > .hero__media .elementor-widget-container {
  height: 100%;
}
.elementor .eve-el.hero .hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
}
.elementor .eve-el.hero .hero__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    rgba(253, 250, 245, 0.96) 0%,
    rgba(253, 250, 245, 0.88) 42%,
    rgba(253, 250, 245, 0.32) 74%,
    rgba(29, 74, 66, 0.18) 100%
  );
}
.elementor .eve-el.hero__inner {
  position: relative;
  z-index: 1;
  padding-block: 90px;
}
.elementor .eve-el.hero__content {
  max-width: 640px;
}
.elementor .eve-el-w.hero__logo img {
  width: 112px;
  height: 112px;
  object-fit: contain;
}
.elementor .eve-el-w.hero__logo {
  margin-bottom: 22px;
}
.elementor .eve-el.hero .eve-el-w h1.elementor-heading-title {
  margin-bottom: 0.1em;
}
.elementor .eve-el-w.hero__baseline {
  font-family: var(--font-title);
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-style: italic;
  color: var(--clay-600);
  margin-bottom: 0.7em;
}
.elementor .eve-el-w.hero__text,
.elementor .eve-el-w.hero__text p {
  max-width: 520px;
  font-size: 1.1rem;
}
.elementor .eve-el-w.hero__text p {
  margin: 0;
}
.elementor .eve-el-w.hero__text {
  margin-bottom: 2em;
}

/* ---------------------------------------------------------------
   6. Bannière de page
   --------------------------------------------------------------- */

.elementor .eve-el.page-hero {
  position: relative;
  align-items: center;
  min-height: min(56vh, 460px);
  overflow: hidden;
  background: var(--sand-100);
}
.elementor .eve-el.page-hero > .page-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.elementor .eve-el.page-hero > .page-hero__media,
.elementor .eve-el.page-hero > .page-hero__media .eve-el-w,
.elementor .eve-el.page-hero > .page-hero__media .elementor-widget-container {
  height: 100%;
}
.elementor .eve-el.page-hero .page-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.elementor .eve-el.page-hero .page-hero__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    rgba(253, 250, 245, 0.95) 0%,
    rgba(253, 250, 245, 0.86) 48%,
    rgba(253, 250, 245, 0.5) 100%
  );
}
.elementor .eve-el.page-hero__inner {
  position: relative;
  z-index: 1;
  padding-block: 80px;
  max-width: 900px;
}
.elementor .eve-el.page-hero .eve-el-w h1.elementor-heading-title {
  font-size: clamp(2.3rem, 5vw, 3.6rem);
}
.elementor .eve-el-w.page-hero__text,
.elementor .eve-el-w.page-hero__text p {
  max-width: 640px;
  font-size: 1.1rem;
  color: var(--ink-500);
  margin: 0;
}

/* ---------------------------------------------------------------
   7. Cartes
   --------------------------------------------------------------- */

.elementor .eve-el.card {
  background: var(--white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
  flex-direction: column;
}
.elementor .eve-el.card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow);
}
.elementor .eve-el-w.card__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--sand-200);
  display: block;
}
.elementor .eve-el-w.card__media .elementor-widget-container {
  height: 100%;
}
.elementor .eve-el-w.card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s var(--ease);
}
.elementor .eve-el.card:hover .card__media img {
  transform: scale(1.06);
}
.elementor .eve-el.card__body {
  padding: 30px 30px 34px;
  flex: 1;
  flex-direction: column;
}
.elementor .eve-el.card__body .elementor-widget-text-editor,
.elementor .eve-el.card__body .elementor-widget-text-editor p {
  color: var(--ink-500);
  font-size: 0.97rem;
}
.elementor .eve-el.card__body h3.elementor-heading-title {
  margin-bottom: 0.5em;
}
.elementor .eve-el-w.card__link {
  margin-top: auto;
  padding-top: 12px;
}
.elementor .eve-el-w.card__link .elementor-button {
  display: inline;
  padding: 0;
  border: none;
  border-radius: 0;
  background: none;
  box-shadow: none;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.82rem;
  line-height: 1.75;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--teal-700);
  white-space: normal;
}
.elementor .eve-el-w.card__link .elementor-button:hover {
  color: var(--clay-600);
  background: none;
  transform: none;
}

/* ---------------------------------------------------------------
   8. Points clés
   --------------------------------------------------------------- */

.elementor .eve-el.feature {
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 38px 32px;
  box-shadow: var(--shadow-sm);
}
.elementor .eve-el.feature--numbered {
  padding-top: 40px;
  border-top: 3px solid var(--teal-300);
}
.elementor .eve-el-w.feature__index {
  display: block;
  font-family: var(--font-title);
  font-size: 2.4rem;
  color: var(--teal-300);
  line-height: 1;
  margin-bottom: 12px;
}
.elementor .eve-el.feature h3.elementor-heading-title {
  margin-bottom: 0.5em;
}
.elementor .eve-el.feature .elementor-widget-text-editor,
.elementor .eve-el.feature .elementor-widget-text-editor p {
  color: var(--ink-500);
  margin: 0;
  font-size: 0.97rem;
}

/* ---------------------------------------------------------------
   9. Texte + image
   --------------------------------------------------------------- */

.elementor .eve-el.split {
  align-items: center;
  gap: 60px;
}
.elementor .eve-el.split--reverse .split__media {
  order: 2;
}
.elementor .eve-el-w.split__media img {
  width: 100%;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
.elementor .eve-el-w.split__media--cover img {
  aspect-ratio: 4 / 5;
  object-fit: cover;
}
.elementor .eve-el-w.split__media--framed {
  display: grid;
  place-items: center;
  background: var(--sand-100);
  border-radius: var(--radius-lg);
  padding: 48px;
  box-shadow: var(--shadow-sm);
}
.elementor .eve-el-w.split__media--framed img {
  width: min(320px, 100%);
  height: auto;
  object-fit: contain;
  border-radius: 0;
  box-shadow: none;
}
.elementor .eve-el-w.split__quote {
  margin: 28px 0;
  padding: 18px 24px;
  border-left: 3px solid var(--clay-500);
  background: rgba(201, 138, 107, 0.08);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.elementor .eve-el-w.split__quote,
.elementor .eve-el-w.split__quote p {
  font-family: var(--font-title);
  font-size: 1.2rem;
  font-style: italic;
  color: var(--teal-900);
}
.elementor .eve-el-w.split__quote p {
  margin: 0;
}

@media (max-width: 900px) {
  .elementor .eve-el.split--reverse .split__media {
    order: 0;
  }
}

/* ---------------------------------------------------------------
   10. Étapes
   --------------------------------------------------------------- */

.elementor .eve-el.seance {
  align-items: center;
  gap: 60px;
}
.elementor .eve-el.seance--image-left .seance__media {
  order: -1;
}
.elementor .eve-el.seance__media img {
  width: 100%;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
  aspect-ratio: 4 / 5;
  object-fit: cover;
}
.elementor .eve-el.steps {
  flex-direction: column;
  gap: 26px;
  counter-reset: step;
}
.elementor .eve-el.steps__item {
  counter-increment: step;
  position: relative;
  padding-left: 62px;
}
.elementor .eve-el.steps__item::before {
  content: counter(step);
  position: absolute;
  left: 0;
  top: 0;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--teal-700);
  color: var(--white);
  font-family: var(--font-title);
  font-size: 1.2rem;
}
.elementor .eve-el-w.steps__title {
  display: block;
  font-family: var(--font-title);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--teal-900);
  margin-bottom: 4px;
}
.elementor .eve-el-w.steps__text,
.elementor .eve-el-w.steps__text p {
  color: var(--ink-500);
  font-size: 0.97rem;
  line-height: calc(17px * 1.75);
  margin: 0;
}

@media (max-width: 900px) {
  .elementor .eve-el.seance__media {
    order: -1;
  }
}

/* ---------------------------------------------------------------
   11. Informations pratiques
   --------------------------------------------------------------- */

.elementor .eve-el.infos {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 28px 0;
}.elementor .eve-el.infos__item {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  justify-content: space-between;
  padding: 14px 0;
  border-bottom: 1px solid var(--sand-200);
}
.elementor .eve-el.infos__item > .eve-el-w {
  flex: 0 1 auto;
  width: auto;
  max-width: 100%;
}
.elementor .eve-el.contact__aside .infos__item {
  flex-direction: column;
  gap: 4px;
  padding: 16px 0;
  justify-content: flex-start;
}
.elementor .eve-el.contact__aside .infos__item > .eve-el-w {
  width: 100%;
}
.elementor .eve-el-w.infos__label {
  font-family: var(--font-body);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--clay-600);
}
.elementor .eve-el-w.infos__value,
.elementor .eve-el-w.infos__value p {
  color: var(--ink-700);
  margin: 0;
}
.elementor .eve-el.note {
  background: var(--sand-100);
  border-radius: var(--radius);
  padding: 20px 24px;
  margin-top: 8px;
}
.elementor .eve-el.note .elementor-widget-text-editor,
.elementor .eve-el.note .elementor-widget-text-editor p {
  margin: 0;
  font-size: 0.92rem;
  color: var(--ink-500);
}
.elementor .eve-el.aside__note {
  background: var(--sand-100);
  border-radius: var(--radius);
  padding: 20px 24px;
}
.elementor .eve-el.aside__note .elementor-widget-text-editor,
.elementor .eve-el.aside__note .elementor-widget-text-editor p {
  margin: 0;
  font-size: 0.9rem;
  color: var(--ink-500);
}

/* ---------------------------------------------------------------
   12. Galerie
   --------------------------------------------------------------- */

.elementor .eve-el-w.shot img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}
.elementor .eve-el-w.shot .widget-image-caption,
.elementor .eve-el-w.shot .elementor-image-caption,
.elementor .eve-el-w.shot figcaption {
  margin-top: 10px;
  font-size: 0.9rem;
  color: var(--ink-500);
  text-align: center;
  font-style: normal;
}

/* ---------------------------------------------------------------
   13. Appel à l'action et sections teintées
   --------------------------------------------------------------- */

.elementor .eve-el.section--teal h1.elementor-heading-title,
.elementor .eve-el.section--teal h2.elementor-heading-title,
.elementor .eve-el.section--teal h3.elementor-heading-title,
.elementor .eve-el.section--teal h4.elementor-heading-title {
  color: var(--white);
}
.elementor .eve-el.section--teal .elementor-widget-text-editor,
.elementor .eve-el.section--teal .elementor-widget-text-editor p {
  color: var(--teal-100);
}
.elementor .eve-el.text-center {
  text-align: center;
}
.elementor .eve-el.text-center .eve-el-w.eyebrow {
  text-align: center;
}

/* ---------------------------------------------------------------
   14. Formulaire de rendez-vous
   --------------------------------------------------------------- */

.elementor .eve-el.contact {
  grid-template-columns: 0.85fr 1.15fr;
  gap: 60px;
  align-items: start;
}

@media (max-width: 980px) {
  .elementor .eve-el.contact {
    grid-template-columns: 1fr;
    gap: 44px;
  }
}

/* ---------------------------------------------------------------
   15. Éditeur Elementor
   --------------------------------------------------------------- */

.elementor-editor-active .eve-el.e-con {
  min-height: 0;
}
