/* MDWeb widgets. Colours come from the theme tokens, with fallbacks for any other theme. */
.mdw-w-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: .8em 1.5em; border-radius: 999px; font-weight: 700; text-decoration: none; line-height: 1.2;
  background: var(--mdw-indigo, #3b2eb0); color: #fff; border: 2px solid var(--mdw-indigo, #3b2eb0);
}
.mdw-w-btn:hover, .mdw-w-btn:focus-visible { background: var(--mdw-indigo-dark, #2d2390); border-color: var(--mdw-indigo-dark, #2d2390); color: #fff; }
.mdw-w-btn--ghost { background: var(--mdw-surface, #fff); color: var(--mdw-ink, #221a4f); border-color: var(--mdw-line, #e4e0fb); }
.mdw-w-btn--ghost:hover, .mdw-w-btn--ghost:focus-visible { background: var(--mdw-surface, #fff); color: var(--mdw-indigo, #3b2eb0); border-color: var(--mdw-indigo, #3b2eb0); }
.mdw-w-btn--yellow { background: var(--mdw-yellow, #ffd36b); color: var(--mdw-ink, #221a4f); border-color: var(--mdw-yellow, #ffd36b); }
.mdw-w-btn--yellow:hover, .mdw-w-btn--yellow:focus-visible { background: #fff; color: var(--mdw-ink, #221a4f); border-color: #fff; }

/* Hero */
.mdw-w-hero { display: grid; gap: 32px; align-items: center; padding-block: 24px; }
@media (min-width: 960px) { .mdw-w-hero { grid-template-columns: 55fr 45fr; gap: 48px; } }
.mdw-w-hero__body { display: grid; gap: 18px; justify-items: start; }
.mdw-w-hero__title { margin: 0; font-family: var(--mdw-font-display, inherit); font-weight: 800; font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1.04; letter-spacing: -.025em; color: var(--mdw-ink, #221a4f); text-wrap: balance; }
.mdw-w-mark { background: linear-gradient(transparent 58%, var(--mdw-yellow, #ffd36b) 58% 92%, transparent 92%); color: inherit; }
.mdw-w-hero__text { margin: 0; font-size: 1.2rem; color: var(--mdw-muted, #5a5388); max-width: 48ch; }
.mdw-w-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.mdw-w-hero__media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 28px 28px 28px 8px; }

/* CTA band */
.mdw-w-cta {
  display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between;
  padding: 32px; border-radius: var(--mdw-radius-card, 20px); background: var(--mdw-indigo, #3b2eb0); color: #fff;
}
.mdw-w-cta__title { margin: 0; font-family: var(--mdw-font-display, inherit); font-weight: 800; line-height: 1.1; font-size: clamp(1.4rem, 3vw, 2rem); color: #fff; }

/* Offers */
.mdw-w-offers { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .mdw-w-offers { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1025px) { .mdw-w-offers { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mdw-w-offer { position: relative; display: grid; gap: 10px; align-content: start; padding: 24px; border-radius: var(--mdw-radius-card, 20px); background: var(--mdw-surface, #fff); transition: transform .15s ease, box-shadow .15s ease; }
.mdw-w-offer--link:hover, .mdw-w-offer--link:focus-within { transform: translateY(-3px); box-shadow: 0 18px 40px -22px rgba(34, 26, 79, .45); }
.mdw-w-offer__visual { display: grid; place-items: center; min-width: 48px; height: 48px; justify-self: start; border-radius: 14px; font-family: var(--mdw-font-display, inherit); font-weight: 800; font-size: 1.1rem; color: #fff; }
.mdw-w-offer__visual--image { height: 64px; border-radius: 0; background: none; }
.mdw-w-offer__visual--image img { max-height: 64px; width: auto; }
.mdw-w-offer__visual--icon svg { width: 22px; height: 22px; fill: currentColor; }
.mdw-w-offer__visual--icon i { font-size: 22px; }
.mdw-w-offer__visual--letter, .mdw-w-offer__visual--icon { padding-inline: 12px; }
.mdw-w-color--indigo:not(.mdw-w-offer__visual--image) { background: var(--mdw-indigo, #3b2eb0); }
.mdw-w-color--ink:not(.mdw-w-offer__visual--image) { background: var(--mdw-ink, #221a4f); }
.mdw-w-color--green:not(.mdw-w-offer__visual--image) { background: #1f8a5b; }
.mdw-w-color--yellow:not(.mdw-w-offer__visual--image) { background: var(--mdw-yellow, #ffd36b); color: var(--mdw-ink, #221a4f); }
.mdw-w-offer__title { margin: 0; font-family: var(--mdw-font-display, inherit); font-size: 1.3rem; font-weight: 700; line-height: 1.2; color: var(--mdw-ink, #221a4f); }
.mdw-w-offer__title a { color: inherit; text-decoration: none; }
.mdw-w-offer__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.mdw-w-offer__text { margin: 0; color: var(--mdw-muted, #5a5388); }

/* References */
.mdw-w-refs { padding: 24px 28px; border-radius: var(--mdw-radius-card, 20px); background: var(--mdw-surface, #fff); }
.mdw-w-refs__title { margin: 0 0 16px; font-family: var(--mdw-font-display, inherit); font-weight: 800; line-height: 1.1; font-size: 1.3rem; color: var(--mdw-ink, #221a4f); }
.mdw-w-refs__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 16px 36px; align-items: center; }
.mdw-w-refs__logo { display: block; max-height: calc(56px * var(--mdw-logo-scale, 1)); width: auto; mix-blend-mode: multiply; }
.mdw-w-refs__name { font-family: var(--mdw-font-display, inherit); font-weight: 700; font-size: 1.1rem; color: var(--mdw-muted, #5a5388); }

/* Steps */
.mdw-w-steps__heading { margin: 0 0 20px; font-family: var(--mdw-font-display, inherit); font-weight: 800; line-height: 1.1; font-size: clamp(1.6rem, 3vw, 2.2rem); color: var(--mdw-ink, #221a4f); }
.mdw-w-steps__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; counter-reset: mdw-step; }
@media (min-width: 960px) { .mdw-w-steps__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mdw-w-steps__item { counter-increment: mdw-step; display: grid; gap: 8px; align-content: start; padding: 22px; border-radius: var(--mdw-radius-card, 20px); background: var(--mdw-surface, #fff); }
.mdw-w-steps__item::before {
  content: counter(mdw-step); display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
  background: var(--mdw-yellow, #ffd36b); color: var(--mdw-ink, #221a4f); font-family: var(--mdw-font-display, inherit); font-weight: 800;
}
.mdw-w-steps__title { margin: 0; font-weight: 700; color: var(--mdw-ink, #221a4f); }
.mdw-w-steps__text { margin: 0; color: var(--mdw-muted, #5a5388); }

/* References, tile grid (partners) */
.mdw-w-refs--grid { padding: 0; background: none; text-align: center; }
.mdw-w-refs--grid .mdw-w-refs__title { font-size: clamp(1.8rem, 4vw, 2.6rem); margin-bottom: 8px; }
.mdw-w-refs__subtitle { margin: 0 0 28px; color: var(--mdw-muted, #5a5388); font-size: 1.1rem; }
.mdw-w-refs--grid .mdw-w-refs__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 768px) { .mdw-w-refs--grid .mdw-w-refs__list { gap: 20px; } }
.mdw-w-refs--grid .mdw-w-refs__item > a, .mdw-w-refs--grid .mdw-w-refs__item > img, .mdw-w-refs--grid .mdw-w-refs__item > span {
  display: grid; place-items: center; height: 88px; padding: 12px;
  background: var(--mdw-surface, #fff); border: 2px solid transparent; border-radius: var(--mdw-radius-card, 20px);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.mdw-w-refs--grid .mdw-w-refs__item > a:hover, .mdw-w-refs--grid .mdw-w-refs__item > a:focus-visible {
  transform: translateY(-3px); border-color: var(--mdw-indigo, #3b2eb0); box-shadow: 0 18px 40px -22px rgba(34, 26, 79, .45);
}
.mdw-w-refs--grid .mdw-w-refs__logo { max-height: min(60px, calc(56px * var(--mdw-logo-scale, 1))); max-width: min(85%, calc(85% * var(--mdw-logo-scale, 1))); object-fit: contain; mix-blend-mode: multiply; }
@media (min-width: 768px) {
  .mdw-w-refs--grid .mdw-w-refs__item > a, .mdw-w-refs--grid .mdw-w-refs__item > img, .mdw-w-refs--grid .mdw-w-refs__item > span { height: 128px; padding: 20px; }
  .mdw-w-refs--grid .mdw-w-refs__logo { max-height: min(84px, calc(80px * var(--mdw-logo-scale, 1))); max-width: min(95%, calc(75% * var(--mdw-logo-scale, 1))); }
}

/* References, continuous scroll (clients) */
.mdw-w-refs--marquee { padding: 0; background: none; }
.mdw-w-refs--marquee .mdw-w-refs__title { text-align: center; font-size: clamp(1.6rem, 3.5vw, 2.2rem); margin-bottom: 20px; }
.mdw-w-refs__viewport {
  --mdw-marquee-gap: 56px;
  display: flex; gap: var(--mdw-marquee-gap); overflow: hidden; padding-block: 8px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}
.mdw-w-refs--marquee .mdw-w-refs__list {
  flex: 0 0 auto; min-width: 100%; flex-wrap: nowrap; justify-content: space-around; gap: var(--mdw-marquee-gap);
  animation: mdw-w-marquee 45s linear infinite;
  /* The animated transform isolates the logos' blend: paint the page colour behind them (white under other themes). */
  background: var(--mdw-lavender, #fff);
}
.mdw-w-refs__viewport:hover .mdw-w-refs__list, .mdw-w-refs__viewport:focus-within .mdw-w-refs__list { animation-play-state: paused; }
.mdw-w-refs--marquee .mdw-w-refs__logo { max-height: calc(64px * var(--mdw-logo-scale, 1)); max-width: calc(160px * var(--mdw-logo-scale, 1)); object-fit: contain; }
@keyframes mdw-w-marquee { to { transform: translateX(calc(-100% - var(--mdw-marquee-gap))); } }
@media (prefers-reduced-motion: reduce) {
  .mdw-w-refs__viewport { -webkit-mask-image: none; mask-image: none; }
  .mdw-w-refs--marquee .mdw-w-refs__list { animation: none; flex-wrap: wrap; justify-content: center; min-width: 0; }
  .mdw-w-refs--marquee .mdw-w-refs__list[aria-hidden="true"] { display: none; }
}

/* Projects (réalisations): aligned bento grid, first project large */
.mdw-w-projects { text-align: center; }
.mdw-w-projects__title { margin: 0 0 8px; font-family: var(--mdw-font-display, inherit); font-weight: 800; line-height: 1.1; font-size: clamp(1.8rem, 4vw, 2.6rem); color: var(--mdw-ink, #221a4f); }
.mdw-w-projects--dark .mdw-w-projects__title { color: #fff; }
.mdw-w-projects__subtitle { margin: 0 0 8px; color: var(--mdw-muted, #5a5388); }
.mdw-w-projects--dark .mdw-w-projects__subtitle { color: #e9e6ff; }
.mdw-w-projects__grid { list-style: none; margin: 28px 0 0; padding: 0; display: grid; gap: 16px; grid-template-columns: 1fr; grid-auto-rows: 220px; text-align: left; }
@media (min-width: 768px) {
  .mdw-w-projects__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mdw-w-project:first-child { grid-column: span 2; }
}
@media (min-width: 1025px) {
  .mdw-w-projects__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 210px; gap: 20px; }
  .mdw-w-project:first-child { grid-column: span 2; grid-row: span 2; }
}
.mdw-w-project { position: relative; overflow: hidden; border-radius: var(--mdw-radius-card, 20px); background: var(--mdw-surface, #fff); }
.mdw-w-project__link { display: block; height: 100%; color: inherit; text-decoration: none; }
/* Two classes: Elementor's `.elementor img { height: auto }` would otherwise win. */
.mdw-w-projects .mdw-w-project__img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: left center; /* brand names sit on the left of the mock-ups */ transition: transform .4s ease; }
.mdw-w-projects .mdw-w-project:hover .mdw-w-project__img, .mdw-w-projects .mdw-w-project:focus-within .mdw-w-project__img { transform: scale(1.04); }
.mdw-w-project__caption {
  position: absolute; inset: auto 0 0 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px;
  padding: 36px 18px 14px; background: linear-gradient(transparent, rgba(34, 26, 79, .85)); color: #fff;
}
.mdw-w-project__name { font-family: var(--mdw-font-display, inherit); font-weight: 800; font-size: 1.15rem; }
.mdw-w-project__sector { font-size: .9rem; opacity: .85; }
.mdw-w-project__link:focus-visible { outline: 3px solid var(--mdw-yellow, #ffd36b); outline-offset: -3px; }
@media (prefers-reduced-motion: reduce) { .mdw-w-projects .mdw-w-project__img { transition: none; } }

/* Hero: handwritten note with an arrow pointing to the title */
.mdw-w-hero__note { display: flex; align-items: center; gap: 10px; margin: 0; font-family: var(--mdw-font-hand, cursive); font-weight: 700; font-size: clamp(1.5rem, 2.4vw, 1.9rem); line-height: 1.1; color: var(--mdw-indigo, #3b2eb0); transform: rotate(-2deg); transform-origin: left center; }
.mdw-w-hero__note svg { flex: none; width: 70px; height: 34px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }

/* « Mot du dirigeant » */
.mdw-w-quote { margin: 0; display: grid; gap: 40px; align-items: center; padding-block: 24px; }
@media (min-width: 900px) { .mdw-w-quote { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 72px; } }
.mdw-w-quote__photo { position: relative; justify-self: center; width: min(300px, 70vw); }
.mdw-w-quote .mdw-w-quote__img, .elementor .mdw-w-quote__img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 50%; border: 10px solid #fff; box-shadow: 0 24px 50px -28px rgb(34 26 79 / .5); }
.mdw-w-quote__badge { position: absolute; right: -24px; bottom: 6px; padding: .55em 1em; border-radius: 999px; background: var(--mdw-yellow, #ffd36b); color: var(--mdw-ink, #221a4f); font-weight: 700; font-size: .95rem; transform: rotate(-4deg); white-space: nowrap; }
.mdw-w-quote__body { display: grid; gap: 22px; justify-items: start; }
.mdw-w-quote__mark { width: 56px; height: 44px; fill: var(--mdw-indigo, #3b2eb0); }
.mdw-w-quote__text { margin: 0; }
.mdw-w-quote__text p { margin: 0; font-family: var(--mdw-font-display, inherit); font-weight: 700; font-size: clamp(1.6rem, 3vw, 2.5rem); line-height: 1.2; letter-spacing: -.01em; color: var(--mdw-ink, #221a4f); text-wrap: pretty; }
.mdw-w-quote__caption { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; }
.mdw-w-quote__sign { display: inline-block; font-family: var(--mdw-font-hand, cursive); font-weight: 700; font-size: clamp(2.4rem, 4vw, 3.2rem); line-height: 1; color: var(--mdw-indigo, #3b2eb0); transform: rotate(-3deg); }
.mdw-w-quote__role { font-size: 1.05rem; color: var(--mdw-muted, #5a5388); }
@media (max-width: 599px) { .mdw-w-hero__note svg { display: none; } }

/* « Carte et adresse » */
.mdw-w-map { position: relative; border-radius: 24px; overflow: hidden; background: #e7e4f7; }
.mdw-w-map__frame { height: 360px; }
.mdw-w-map__frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.mdw-w-map__card { background: #fff; padding: 24px 28px; }
@media (min-width: 768px) { .mdw-w-map__card { position: absolute; top: 24px; right: 24px; width: 280px; border-radius: 20px; box-shadow: 0 24px 48px -28px rgb(34 26 79 / .55); } }
.mdw-w-map__title { margin: 0 0 12px; font-family: var(--mdw-font-display, inherit); font-weight: 800; line-height: 1.1; font-size: 1.4rem; color: var(--mdw-ink, #221a4f); }
.mdw-w-map__address { font-style: normal; line-height: 1.6; margin-bottom: 14px; }

/* « Note manuscrite » */
.mdw-w-note { display: flex; flex-wrap: wrap; align-items: center; gap: 0 .35em; margin: 0; font-family: var(--mdw-font-hand, cursive); font-weight: 700; font-size: 1.7rem; line-height: 1.2; color: var(--mdw-muted, #5a5388); transform: rotate(-2deg); transform-origin: left center; }
.mdw-w-note--s { font-size: 1.35rem; }
.mdw-w-note--l { font-size: 2.2rem; }
.mdw-w-note a { color: var(--mdw-indigo, #3b2eb0); }
.mdw-w-note svg { width: 60px; height: 30px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }

/* Réalisations: « toutes les réalisations » link */
.mdw-w-projects__more { margin-top: 32px; }
.mdw-w-projects--dark .mdw-w-projects__more { background: var(--mdw-yellow, #ffd36b); color: var(--mdw-ink, #221a4f); }
.mdw-w-projects--dark .mdw-w-projects__more:hover, .mdw-w-projects--dark .mdw-w-projects__more:focus-visible { background: #fff; color: var(--mdw-ink, #221a4f); }

/* « FAQ » */
.mdw-w-faq { display: grid; gap: 12px; }
.mdw-w-faq__title { margin: 0 0 8px; font-family: var(--mdw-font-display, inherit); font-weight: 800; line-height: 1.1; font-size: clamp(1.6rem, 3vw, 2.2rem); color: var(--mdw-ink, #221a4f); }
.mdw-w-faq__item { background: #fff; border: 1px solid var(--mdw-line, #e4e0fb); border-radius: 18px; }
.mdw-w-faq__item[open] { box-shadow: 0 18px 40px -30px rgb(34 26 79 / .45); }
.mdw-w-faq__question { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; cursor: pointer; list-style: none; font-weight: 700; font-size: 1.1rem; color: var(--mdw-ink, #221a4f); border-radius: 18px; }
.mdw-w-faq__question::-webkit-details-marker { display: none; }
.mdw-w-faq__question:focus-visible { outline: 3px solid var(--mdw-yellow, #ffd36b); outline-offset: 2px; }
.mdw-w-faq__question svg { flex: none; width: 22px; height: 22px; fill: none; stroke: var(--mdw-indigo, #3b2eb0); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.mdw-w-faq__item[open] .mdw-w-faq__question svg { transform: rotate(180deg); }
.mdw-w-faq__answer { padding: 0 22px 20px; color: var(--mdw-muted, #5a5388); line-height: 1.6; }
.mdw-w-faq__answer > :first-child { margin-top: 0; }
.mdw-w-faq__answer > :last-child { margin-bottom: 0; }
@media (prefers-reduced-motion: reduce) { .mdw-w-faq__question svg { transition: none; } }

/* « Témoignage client » */
.mdw-w-testi { margin: 0; display: grid; gap: 20px; padding: 36px; border-radius: 28px; background: #fff; box-shadow: 0 24px 50px -36px rgb(34 26 79 / .5); }
.mdw-w-testi__mark { width: 44px; height: 34px; fill: var(--mdw-yellow, #ffd36b); }
.mdw-w-testi__text { margin: 0; }
.mdw-w-testi__text p { margin: 0; font-family: var(--mdw-font-display, inherit); font-weight: 700; font-size: clamp(1.3rem, 2.4vw, 1.8rem); line-height: 1.3; color: var(--mdw-ink, #221a4f); text-wrap: pretty; }
.mdw-w-testi__author { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.mdw-w-testi .mdw-w-testi__logo, .elementor .mdw-w-testi__logo { width: 56px; height: 56px; object-fit: contain; border-radius: 14px; background: var(--mdw-lavender, #f7f5ff); padding: 6px; }
.mdw-w-testi__who { display: grid; }
.mdw-w-testi__name { color: var(--mdw-ink, #221a4f); }
.mdw-w-testi__company { color: var(--mdw-muted, #5a5388); font-size: .95rem; }
.mdw-w-testi__link { margin-left: auto; font-weight: 700; color: var(--mdw-indigo, #3b2eb0); }
.mdw-w-testi__link::after { content: " →"; }

/* « Chiffres clés » */
.mdw-w-stats { list-style: none; margin: 0; padding: 28px 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 24px 40px; border-block: 2px solid var(--mdw-ink, #221a4f); }
.mdw-w-stats__item { display: grid; gap: 2px; }
.mdw-w-stats__value { font-family: var(--mdw-font-display, inherit); font-weight: 800; font-size: clamp(2rem, 4vw, 2.6rem); line-height: 1; color: var(--mdw-ink, #221a4f); }
.mdw-w-stats__label { color: var(--mdw-muted, #5a5388); }

/* « Encadré » */
.mdw-w-callout { --callout: var(--mdw-indigo, #3b2eb0); --callout-bg: #efedff; padding: 20px 24px; border-radius: 18px; background: var(--callout-bg); color: var(--mdw-ink, #221a4f); }
.mdw-w-callout--tip { --callout: #8a5a00; --callout-bg: #fff4d6; }
.mdw-w-callout--warning { --callout: #a3261d; --callout-bg: #fdecea; }
.mdw-w-callout--summary { --callout: var(--mdw-indigo, #3b2eb0); --callout-bg: #fff; border: 2px solid var(--mdw-indigo, #3b2eb0); }
.mdw-w-callout__title { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; font-weight: 800; color: var(--callout); }
.mdw-w-callout__title svg { flex: none; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.mdw-w-callout__text > :first-child { margin-top: 0; }
.mdw-w-callout__text > :last-child { margin-bottom: 0; }

/* « Bandeau certification » */
.mdw-w-cert { display: grid; gap: 24px; align-items: center; padding: 28px 32px; border-radius: 28px; background: #fff; border: 1px solid var(--mdw-line, #e4e0fb); }
@media (min-width: 768px) { .mdw-w-cert { grid-template-columns: auto 1fr; gap: 36px; } }
.mdw-w-cert .mdw-w-cert__badge, .elementor .mdw-w-cert__badge { width: 160px; height: auto; }
.mdw-w-cert__body { display: grid; gap: 10px; justify-items: start; }
.mdw-w-cert__title { margin: 0; font-family: var(--mdw-font-display, inherit); font-weight: 800; line-height: 1.1; font-size: clamp(1.4rem, 2.6vw, 1.9rem); color: var(--mdw-ink, #221a4f); }
.mdw-w-cert__text { margin: 0; color: var(--mdw-muted, #5a5388); }

/* « Équipe » */
.mdw-w-team__title { margin: 0 0 24px; font-family: var(--mdw-font-display, inherit); font-weight: 800; line-height: 1.1; font-size: clamp(1.8rem, 3.5vw, 2.4rem); color: var(--mdw-ink, #221a4f); }
.mdw-w-team__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 28px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mdw-w-team__member { display: grid; gap: 4px; justify-items: start; }
.mdw-w-team .mdw-w-team__photo, .elementor .mdw-w-team__photo { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 22px; margin-bottom: 10px; filter: grayscale(1); transition: filter .3s ease; }
.mdw-w-team__member:hover .mdw-w-team__photo { filter: none; }
.mdw-w-team__name { margin: 0; font-family: var(--mdw-font-display, inherit); font-weight: 800; font-size: 1.25rem; color: var(--mdw-ink, #221a4f); }
.mdw-w-team__role { margin: 0; color: var(--mdw-muted, #5a5388); }
.mdw-w-team__note { margin: 4px 0 0; font-family: var(--mdw-font-hand, cursive); font-weight: 700; font-size: 1.4rem; line-height: 1.1; color: var(--mdw-indigo, #3b2eb0); transform: rotate(-2deg); }

/* « Carte de module » */
.mdw-w-module { display: grid; height: 100%; border-radius: 24px; overflow: hidden; background: #fff; border: 1px solid var(--mdw-line, #e4e0fb); }
.mdw-w-module__media { display: grid; place-items: center; padding: 28px; background: var(--mdw-lavender, #f7f5ff); }
.mdw-w-module .mdw-w-module__img, .elementor .mdw-w-module__img { max-width: 140px; max-height: 110px; width: auto; height: auto; object-fit: contain; }
.mdw-w-module__body { display: grid; gap: 8px; align-content: start; justify-items: start; padding: 24px; }
.mdw-w-module__badge { padding: .3em .8em; border-radius: 999px; background: var(--mdw-yellow, #ffd36b); color: var(--mdw-ink, #221a4f); font-weight: 700; font-size: .85rem; }
.mdw-w-module__name { margin: 0; font-family: var(--mdw-font-display, inherit); font-weight: 800; line-height: 1.15; font-size: 1.35rem; color: var(--mdw-ink, #221a4f); }
.mdw-w-module__desc { margin: 0; color: var(--mdw-muted, #5a5388); }
.mdw-w-module__compat { margin: 0; font-size: .9rem; font-weight: 600; color: var(--mdw-indigo, #3b2eb0); }
.mdw-w-module__price { margin: 0; font-family: var(--mdw-font-display, inherit); font-weight: 800; font-size: 1.2rem; color: var(--mdw-ink, #221a4f); }
.mdw-w-module__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: 8px; }
.mdw-w-module__doc { font-weight: 700; color: var(--mdw-indigo, #3b2eb0); }

/* « Comparatif » */
.mdw-w-table { overflow-x: auto; border-radius: 20px; background: #fff; border: 1px solid var(--mdw-line, #e4e0fb); }
.mdw-w-table:focus-visible { outline: 3px solid var(--mdw-yellow, #ffd36b); outline-offset: 2px; }
.mdw-w-table table { width: 100%; min-width: 560px; border-collapse: collapse; }
.mdw-w-table__caption { caption-side: top; text-align: left; padding: 20px 22px 8px; font-family: var(--mdw-font-display, inherit); font-weight: 800; font-size: 1.3rem; color: var(--mdw-ink, #221a4f); }
.mdw-w-table :is(th, td) { padding: 14px 18px; text-align: center; border-top: 1px solid var(--mdw-line, #e4e0fb); color: var(--mdw-ink, #221a4f); }
.mdw-w-table thead th { font-family: var(--mdw-font-display, inherit); font-weight: 800; background: var(--mdw-lavender, #f7f5ff); }
.mdw-w-table tbody th { text-align: left; font-weight: 600; position: sticky; left: 0; background: #fff; }
.mdw-w-table :is(.mdw-w-table__yes, .mdw-w-table__no) svg { width: 22px; height: 22px; fill: none; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; vertical-align: middle; }
.mdw-w-table__yes svg { stroke: #1f7a4d; }
.mdw-w-table__no svg { stroke: #a3261d; }

/* « Avant / Après » */
.mdw-w-ba--metrics { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.mdw-w-ba__metric { display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: 18px; padding: 16px 22px; border-radius: 18px; background: #fff; border: 1px solid var(--mdw-line, #e4e0fb); }
.mdw-w-ba__label { font-weight: 700; color: var(--mdw-ink, #221a4f); }
.mdw-w-ba__before, .mdw-w-ba__after { display: grid; justify-items: center; font-family: var(--mdw-font-display, inherit); font-weight: 800; font-size: 1.6rem; line-height: 1; }
.mdw-w-ba__before { color: var(--mdw-muted, #5a5388); }
.mdw-w-ba__before .mdw-w-ba__value { text-decoration: line-through; text-decoration-thickness: 2px; }
.mdw-w-ba__after { color: var(--mdw-indigo, #3b2eb0); }
.mdw-w-ba__metric small { font-family: var(--mdw-font-body, inherit); font-weight: 600; font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 4px; }
.mdw-w-ba__arrow { width: 22px; height: 22px; fill: none; stroke: var(--mdw-yellow, #ffd36b); stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 599px) { .mdw-w-ba__metric { grid-template-columns: auto auto auto; } .mdw-w-ba__label { grid-column: 1 / -1; } }
/* Images: side by side without JavaScript, overlaid with a slider once enhanced. */
.mdw-w-ba--images { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.mdw-w-ba__pane { margin: 0; position: relative; }
.mdw-w-ba--images .mdw-w-ba__img, .elementor .mdw-w-ba__img { display: block; width: 100%; height: auto; border-radius: 18px; }
.mdw-w-ba__pane figcaption { position: absolute; top: 12px; padding: .3em .8em; border-radius: 999px; background: rgb(34 26 79 / .8); color: #fff; font-weight: 700; font-size: .85rem; }
.mdw-w-ba__pane--before figcaption { left: 12px; }
.mdw-w-ba__pane--after figcaption { right: 12px; }
.mdw-w-ba__range { display: none; }
.mdw-w-ba--images.is-enhanced { display: block; }
.mdw-w-ba--images.is-enhanced .mdw-w-ba__pane--before { position: absolute; inset: 0; z-index: 1; clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.mdw-w-ba--images.is-enhanced::after { content: ""; position: absolute; z-index: 1; top: 0; bottom: 0; left: var(--pos); width: 3px; margin-left: -1.5px; background: #fff; box-shadow: 0 0 0 1px rgb(34 26 79 / .2); pointer-events: none; }
.mdw-w-ba--images.is-enhanced .mdw-w-ba__range { display: block; position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.mdw-w-ba--images.is-enhanced:has(.mdw-w-ba__range:focus-visible) { outline: 3px solid var(--mdw-yellow, #ffd36b); outline-offset: 4px; border-radius: 18px; }

/* « Tableau »: pasted table, sideways scroll on small screens, header kept at the top of the screen by data-table.js */
.mdw-w-dtable { position: relative; }
.mdw-w-dtable__scroll { overflow-x: auto; border-radius: var(--mdw-radius-card, 20px); background: var(--mdw-surface, #fff); border: 1px solid var(--mdw-line, #e4e0fb); }
.mdw-w-dtable__scroll:focus-visible { outline: 3px solid var(--mdw-yellow, #ffd36b); outline-offset: 2px; }
.mdw-w-dtable table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .98rem; }
.mdw-w-dtable__caption { caption-side: top; text-align: left; padding: 18px 18px 10px; font-family: var(--mdw-font-display, inherit); font-weight: 800; font-size: 1.2rem; color: var(--mdw-ink, #221a4f); }
.mdw-w-dtable :is(th, td) { box-sizing: border-box; min-width: 6em; padding: 12px 16px; text-align: left; vertical-align: top; border-top: 1px solid var(--mdw-line, #e4e0fb); color: var(--mdw-ink, #221a4f); line-height: 1.45; }
.mdw-w-dtable--center :is(td, thead th) { text-align: center; }
.mdw-w-dtable thead th { font-family: var(--mdw-font-display, inherit); font-weight: 700; background: var(--mdw-lavender, #f7f5ff); border-top: 0; border-bottom: 2px solid var(--mdw-indigo, #3b2eb0); }
.mdw-w-dtable tbody th { font-weight: 600; }
.mdw-w-dtable :is(tbody td, tbody th) { background: var(--mdw-surface, #fff); }
.mdw-w-dtable--striped tbody tr:nth-child(even) :is(td, th) { background: #faf9ff; }
.mdw-w-dtable--first-col .mdw-w-dtable__scroll :is(tbody th, thead th:first-child) { position: sticky; left: 0; z-index: 1; box-shadow: 1px 0 0 var(--mdw-line, #e4e0fb); }
.mdw-w-dtable__float { position: fixed; z-index: 30; display: none; overflow: hidden; border-radius: 0 0 12px 12px; box-shadow: 0 10px 24px -16px rgba(34, 26, 79, .45); pointer-events: none; }
.mdw-w-dtable.is-floating .mdw-w-dtable__float { display: block; }
.mdw-w-dtable__float table { width: auto; }
/* Phones: columns take their natural width (up to 16em) and the table scrolls sideways, instead of squeezing text into tall rows. */
@media (max-width: 767px) {
  .mdw-w-dtable table { width: max-content; }
  .mdw-w-dtable :is(th, td) { max-width: 16em; }
}
.mdw-w-dtable--first-col .mdw-w-dtable__float thead th:first-child { position: relative; z-index: 1; box-shadow: 1px 0 0 var(--mdw-line, #e4e0fb); }
