/* Repris du widget « pricing v3 » d'EM_design (02/11/2026), sélecteurs passés en classe. */
.empi { --b1: #1c7db3; --b2: #28a3e6; --rouge: #b11c1d; --vert: #159753; --lb: #e8f4fd; --jaune: #fde68a;
    --ink: #0f2a3d; --mute: #64798a; --line: #e4edf3;
    position: relative; isolation: isolate; padding: 10px 0 30px;
    font-family: "Poppins", "Segoe UI", system-ui, sans-serif; color: var(--ink); -webkit-font-smoothing: antialiased; }
  .empi *, .empi *::before, .empi *::after { box-sizing: border-box; }
  .empi svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
  .empi button { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .empi button:focus-visible { outline: 2px solid var(--jaune); outline-offset: 2px; }
  .empi button[disabled] { opacity: .35; cursor: default; }
  .empi ul { list-style: none; margin: 0; padding: 0; }


  .empi .ttl { text-align: center; color: #fff; }
  .empi .ttl h2, .empi .ttl p { color: #fff; }
  .empi .ttl h2 { margin: 0; font-size: clamp(22px, 3vw, 30px); font-weight: 700; letter-spacing: -.02em; }
  .empi .ttl p { margin: 4px 0 0; font-size: 14.5px; opacity: .85; }

  /* ---------- sélecteur « Dock » ---------- */
  .empi .dock { display: flex; align-items: stretch; width: fit-content; max-width: 100%; margin: 24px auto 0; padding: 8px; border-radius: 22px; background: #fff;
    box-shadow: 0 22px 44px -22px rgba(0,25,45,.7); }
  .empi .f { position: relative; display: flex; align-items: center; gap: 12px; padding: 6px 18px 6px 8px; }
  .empi .f + .f { padding-left: 18px; }
  .empi .f + .f::before { content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 1px; background: var(--line); }
  .empi .ic { flex: none; width: 42px; height: 42px; padding: 10px; border-radius: 13px; color: var(--b1); background: var(--lb); }
  .empi .lbl { display: block; font-size: 11px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: var(--mute); }
  .empi .st { display: flex; align-items: center; gap: 10px; margin-top: 3px; }
  .empi .st button { width: 30px; height: 30px; padding: 8px; border-radius: 50%; color: var(--b1); background: var(--lb); transition: background .2s, color .2s, transform .15s; }
  .empi .st button[data-act$="+"] { color: #fff; background: linear-gradient(135deg, var(--b2), var(--b1)); box-shadow: 0 6px 12px -6px rgba(28,125,179,.9); }
  .empi .st button:hover:not([disabled]) { transform: scale(1.08); }
  .empi .st output { min-width: 20px; text-align: center; font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; }
  .empi .st output.up { animation: empi-oup .3s ease; }
  .empi .st output.dn { animation: empi-odn .3s ease; }
  @keyframes empi-oup { from { transform: translateY(8px); opacity: 0; } }
  @keyframes empi-odn { from { transform: translateY(-8px); opacity: 0; } }
  .empi .seg { position: relative; display: flex; margin-top: 4px; padding: 3px; border-radius: 12px; background: var(--lb); }
  .empi .seg button { position: relative; z-index: 1; padding: 6px 12px; border-radius: 9px; font-size: 13px; font-weight: 600; color: var(--b1); white-space: nowrap; transition: color .3s; }
  .empi .seg button.on { color: #fff; }
  .empi .seg em { font-style: normal; margin-left: 5px; padding: 1px 6px; border-radius: 99px; font-size: 10.5px; font-weight: 700; color: #7a5800; background: var(--jaune); }
  .empi .thumb { position: absolute; left: 0; top: 0; border-radius: 9px; background: linear-gradient(135deg, var(--b2), var(--b1)); box-shadow: 0 6px 14px -6px rgba(28,125,179,.9);
    transition: transform .45s cubic-bezier(.3,1.35,.5,1), width .45s cubic-bezier(.3,1.35,.5,1), height .45s; }

  /* ---------- clic automatique à l'affichage : fausse souris ---------- */
  .empi .auto-press { animation: empi-apress .35s ease; }
  @keyframes empi-apress { 40% { transform: scale(.82); box-shadow: 0 0 0 6px rgba(40,163,230,.25); } }
  .empi .ghost { position: absolute; left: 0; top: 0; z-index: 60; width: 28px; height: 28px; pointer-events: none; opacity: 0;
    transition: transform .26s cubic-bezier(.45,0,.2,1), opacity .2s; filter: drop-shadow(0 4px 6px rgba(0,0,0,.35)); }
  .empi .ghost.on { opacity: 1; }
  .empi .ghost svg { position: relative; z-index: 1; }
  .empi .ghost::before { content: ""; position: absolute; left: -11px; top: -12px; width: 30px; height: 30px; border-radius: 50%; background: rgba(40,163,230,.45); transform: scale(0); opacity: 0; }
  .empi .ghost.press::before { animation: empi-tap .45s ease-out; }
  .empi .ghost.press svg { animation: empi-tapsvg .25s ease; }
  @keyframes empi-tap { 0% { transform: scale(.2); opacity: 1; } 100% { transform: scale(1.5); opacity: 0; } }
  @keyframes empi-tapsvg { 50% { transform: scale(.82); } }

  /* ---------- cartes ---------- */
  .empi .em-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; max-width: 1100px; margin: 30px auto 0; align-items: stretch; }
  .empi .em-card { position: relative; display: flex; flex-direction: column; background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 26px 50px -26px rgba(0,25,45,.75); }
  /* header : identique à l'existant */
  .empi .em-head { color: #fff; padding: 20px; text-align: center; font-size: 27px; font-style: italic; font-weight: bold; text-shadow: 2px 2px 4px rgba(0,0,0,.5); }
  .empi .em-body { position: relative; flex: 1; padding: 18px 18px 22px; }
  /* footer : identique à l'existant */
  .empi .card-footer { position: relative; color: #fff; padding: 20px; text-align: center; font-size: 22px; font-weight: bold; text-shadow: 2px 2px 4px rgba(0,0,0,.5);
    text-decoration: none; display: block; overflow: hidden; transition: all .4s cubic-bezier(.23,1,.32,1); cursor: pointer; }
  .empi .card-footer.classique { background: linear-gradient(135deg, #28a3e6, #1b7cb1); background-size: 200% 200%; animation: gradientShift 3s ease infinite, pulse-blue 2s infinite; }
  .empi .card-footer.confort { background: linear-gradient(135deg, #099c4c, #1b7cb1); background-size: 200% 200%; animation: gradientShift 3s ease infinite, pulse-green 2s infinite; }
  .empi .card-footer.zen { background: linear-gradient(135deg, #f4c503, #1b7cb1); background-size: 200% 200%; animation: gradientShift 3s ease infinite, pulse-yellow 2s infinite; }
  .empi .card-footer::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.4), transparent); transition: left .6s; }
  .empi .card-footer:hover::before { left: 100%; }
  .empi .card-footer::after { content: ''; position: absolute; top: 50%; left: 50%; width: 0; height: 0; border-radius: 50%; background: rgba(255,255,255,.2); transition: all .6s; transform: translate(-50%,-50%); }
  .empi .card-footer:hover::after { width: 300px; height: 300px; }
  .empi .card-footer:hover { transform: translateY(-3px) scale(1.02); }
  /* contenu du bouton : nom de l'offre + action, séparateur, chevron */
  .empi .card-footer { padding: 17px 18px; font-size: 19px; letter-spacing: -.01em; }
  .empi .cta { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; gap: 14px; }
  .empi .cta-l { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.15; text-align: left; }
  .empi .cta-l small { font-size: 12.5px; font-weight: 600; opacity: .9; letter-spacing: .02em; }
  .empi .cta-sep { width: 1px; align-self: stretch; background: rgba(255,255,255,.4); }
  .empi .cta-ch { flex: none; width: 22px; height: 22px; transition: transform .3s; }
  .empi .cta-ch svg { stroke-width: 2.4; }
  .empi .card-footer:hover .cta-ch { transform: translateX(5px); }
  @keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
  @keyframes pulse-blue { 0%,100% { box-shadow: 0 8px 25px rgba(40,163,230,.3); } 50% { box-shadow: 0 8px 25px rgba(40,163,230,.6), 0 0 20px rgba(40,163,230,.5); } }
  @keyframes pulse-green { 0%,100% { box-shadow: 0 8px 25px rgba(9,156,76,.3); } 50% { box-shadow: 0 8px 25px rgba(9,156,76,.6), 0 0 20px rgba(9,156,76,.5); } }
  @keyframes pulse-yellow { 0%,100% { box-shadow: 0 8px 25px rgba(244,197,3,.3); } 50% { box-shadow: 0 8px 25px rgba(244,197,3,.6), 0 0 20px rgba(244,197,3,.5); } }

  /* ---------- tarifs (version « Tuiles ») ---------- */
  .empi .pr { padding: 12px 10px 14px; border-radius: 14px; text-align: center; background: linear-gradient(160deg, #f3f9fd, #e4f1fa); }
  .empi .pr-old { display: block; height: 0; overflow: hidden; opacity: 0; font-size: 16px; font-weight: 600; color: #8ea3b2; font-variant-numeric: tabular-nums; transition: height .3s, opacity .3s; }
  .empi .pr-old span { position: relative; display: inline-block; }
  .empi .pr-old span::after { content: ""; position: absolute; left: -3px; right: -3px; top: 52%; height: 2px; border-radius: 2px; background: var(--rouge); transform-origin: left; }
  .empi .has-disc .pr-old { height: 24px; opacity: 1; }
  .empi .disc-pop .pr-old span::after { animation: empi-strike .45s .1s cubic-bezier(.6,0,.3,1) backwards; }
  @keyframes empi-strike { from { transform: scaleX(0); } }
  .empi .pr-main { position: relative; display: inline-block; }
  .empi .pr-amt { display: block; font-size: 44px; line-height: 1.1; font-weight: 700; font-style: italic; letter-spacing: -.02em; color: var(--b1); font-variant-numeric: tabular-nums; white-space: nowrap; transition: color .3s, text-shadow .3s; }
  .empi .pr-amt.up { color: var(--b2); text-shadow: 0 0 18px rgba(40,163,230,.35); }
  .empi .pr-amt.down { color: var(--vert); text-shadow: 0 0 18px rgba(21,151,83,.3); }
  .empi .pr-delta { position: absolute; left: 100%; top: -4px; margin-left: -6px; padding: 2px 8px; border-radius: 99px; font-size: 12.5px; font-weight: 700; white-space: nowrap; pointer-events: none; animation: empi-delta 1.5s ease forwards; }
  .empi .pr-delta.up { background: #fff; color: var(--b1); }
  .empi .pr-delta.down { background: #e2f5ea; color: var(--vert); }
  @keyframes empi-delta { 0% { opacity: 0; transform: translateY(10px) scale(.7); } 14% { opacity: 1; transform: none; } 72% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateY(-16px); } }
  .empi .pr-save { max-height: 0; opacity: 0; overflow: hidden; margin-top: 2px; font-size: 13px; font-weight: 600; color: var(--vert); transition: max-height .4s, opacity .4s; }
  .empi .has-disc .pr-save { max-height: 24px; opacity: 1; }
  .empi .pr-pay { margin-top: 6px; font-size: 12.5px; color: var(--mute); }
  .empi .pr-pay b { color: var(--ink); }
  .empi .ribbon { position: absolute; z-index: 3; top: -4px; right: 14px; padding: 12px 9px 16px; font-size: 14px; font-weight: 800; line-height: 1; color: #fff;
    background: linear-gradient(180deg, #1aa864, #0f7d47); clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 80%, 0 100%); filter: drop-shadow(0 4px 4px rgba(0,0,0,.2));
    opacity: 0; visibility: hidden; transform: translateY(-40%); transition: transform .35s ease, opacity .25s, visibility .25s; }
  .empi .has-disc .ribbon { opacity: 1; visibility: visible; transform: none; }
  .empi .disc-pop .ribbon { animation: empi-ribbon .8s cubic-bezier(.3,1.6,.5,1); }
  @keyframes empi-ribbon { 0% { transform: translateY(-110%); } 60% { transform: translateY(6%) rotate(-4deg); } 80% { transform: rotate(3deg); } 100% { transform: none; } }
  .empi .tag { margin: 5px 2px 14px; text-align: center; font-size: 14px; font-weight: 500; line-height: 1.55; color: #3a5465; }
  .empi .tag b { font-weight: 600; color: var(--ink); }
  .empi .tag span { display: inline-block; padding: 0 8px; border-radius: 99px; font-weight: 600; color: var(--vert); background: #e2f5ea; white-space: nowrap; }

  /* ---------- accordéons et listes (version « Phrase ») ---------- */
  .empi .acc { border-radius: 14px; border: 1px solid var(--line); overflow: hidden; }
  .empi .acc-sec { position: relative; transition: background .3s; }
  .empi .acc-sec + .acc-sec { border-top: 1px solid var(--line); }
  .empi .acc-sec.open { background: #f7fbfe; }
  .empi .acc-sec.fresh { background: #eef9f3; }
  .empi .acc-h { display: flex; align-items: center; gap: 12px; width: 100%; padding: 5px 5px; text-align: left; font-size: 14.5px; font-weight: 600; }
  .empi .acc-ic { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-size: 16px; background: #fff; border: 2px solid var(--c); transition: transform .4s cubic-bezier(.3,1.6,.5,1); }
  .empi .acc-sec.open .acc-ic { transform: scale(1.1) rotate(-8deg); }
  .empi .acc-t { flex: 1; min-width: 0; line-height: 1.25; }
  .empi .acc-t small { display: block; margin-top: 1px; font-size: 11.5px; font-weight: 500; color: var(--vert); }
  .empi .acc-t small:empty { display: none; }
  .empi .new-badge { display: none; margin-left: 6px; padding: 1px 7px; border-radius: 99px; font-size: 10.5px; font-weight: 700; font-style: normal; color: #fff; background: var(--vert); vertical-align: 2px; }
  .empi .acc-sec.fresh .new-badge { display: inline-block; animation: empi-pop .5s cubic-bezier(.3,1.7,.5,1); }
  @keyframes empi-pop { from { transform: scale(0); } }
  .empi .acc-x { flex: none; width: 18px; height: 18px; color: var(--mute); transition: transform .4s cubic-bezier(.3,1.4,.5,1), color .3s; }
  .empi .acc-sec.open .acc-x { transform: rotate(180deg); color: var(--c); }
  .empi .acc-c { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .45s cubic-bezier(.2,.8,.2,1); }
  .empi .acc-sec.open > .acc-c { grid-template-rows: 1fr; }
  .empi .acc-in { overflow: hidden; min-height: 0; }
  .empi .acc-in ul { position: relative; display: grid; gap: 2px; padding: 2px 14px 16px 50px; }
  .empi .acc-in ul::before { content: ""; position: absolute; left: 28px; top: 8px; bottom: 22px; width: 2px; border-radius: 2px; background: linear-gradient(var(--c), rgba(28,125,179,.15));
    transform: scaleY(0); transform-origin: top; transition: transform .6s ease; }
  .empi .acc-sec.open ul::before { transform: scaleY(1); transition-delay: .1s; }
  .empi .acc-in li { position: relative; display: flex; gap: 8px; padding: 4px 0; font-size: 13.5px; line-height: 1.4; color: #2b4152;
    opacity: 0; transform: translateX(-8px); transition: opacity .3s, transform .3s; }
  .empi .acc-sec.open li { opacity: 1; transform: none; transition: opacity .4s ease, transform .45s cubic-bezier(.2,.9,.3,1.2); transition-delay: calc(var(--i) * 45ms + 80ms); }
  .empi .acc-in li::before { content: ""; position: absolute; left: -27px; top: 9px; width: 10px; height: 10px; border-radius: 50%; background: #fff; border: 2px solid var(--c); }
  .empi .acc-in li .e { flex: none; font-size: 14px; }
  .empi .acc-in li b { color: var(--vert); }
  .empi .acc-sec.is-new { animation: empi-secIn .6s cubic-bezier(.2,.8,.2,1); }
  .empi .acc-sec.leaving { animation: empi-secOut .4s ease forwards; pointer-events: none; }
  @keyframes empi-secIn { from { opacity: 0; max-height: 0; transform: translateY(-10px) scale(.96); } to { opacity: 1; max-height: 90px; } }
  @keyframes empi-secOut { from { max-height: 90px; } to { opacity: 0; max-height: 0; transform: scale(.96); } }

  /* ---------- responsive ---------- */
  @media (max-width: 960px) {
    .empi .em-cards { grid-template-columns: 1fr; max-width: 480px; }
    .empi .dock { display: grid; grid-template-columns: 1fr 1fr; width: 100%; max-width: 520px; }
    .empi .f { padding-right: 8px; }
    .empi .f.date { grid-column: 1 / -1; padding: 10px 8px 6px; }
    .empi .f.date::before { left: 10px; right: 10px; top: 0; bottom: auto; width: auto; height: 1px; }
    .empi .f.date > div { flex: 1; min-width: 0; }
    .empi .seg button { flex: 1; padding: 7px 4px; font-size: 12px; white-space: normal; }
    .empi .seg em { display: block; width: fit-content; margin: 2px auto 0; }
  }
  @media (max-width: 520px) {
    .empi { padding: 10px 0 30px; }
    .empi .ic { display: none; }
    .empi .f, .empi .f + .f { padding-left: 10px; }
    .empi .em-head { font-size: 24px; }
    .empi .pr-amt { font-size: 40px; }
  }
  @media (prefers-reduced-motion: reduce) { .empi *, .empi *::before, .empi *::after { animation: none; transition: none; } }

/* fenêtre du formulaire « Démarrer » (form_modale.js) : s'arrête à 10 % du bas de l'écran, pour que les boutons d'appel et de chat ne cachent pas la fin du formulaire */
.fm { position: fixed; inset: 0; z-index: 99990; display: flex; align-items: flex-start; justify-content: center; padding: 32px 32px 10vh; background: rgb(15 42 61 / .62); backdrop-filter: blur(3px); animation: fm-fond .2s ease-out; }
.fm[hidden] { display: none; }
.fm-boite { position: relative; width: min(920px, 100%); max-height: calc(90vh - 32px); border-radius: 22px; overflow: hidden; background: #fff; box-shadow: 0 40px 80px -30px rgb(15 42 61 / .8); animation: fm-monte .28s cubic-bezier(.2, .8, .2, 1); }
.fm-cadre { display: block; width: 100%; height: calc(90vh - 32px); border: 0; }
.fm-x { position: absolute; top: 10px; right: 12px; z-index: 2; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%; font-size: 24px; line-height: 1; cursor: pointer; color: #fff; background: #1c7db3; box-shadow: 0 6px 14px -6px rgb(15 42 61 / .7); transition: background .2s; }
.fm-x:hover { background: #135c86; }
html.fm-ouverte { overflow: hidden; }
html.fm-ouverte #emn-host { display: none; }
@keyframes fm-fond { from { opacity: 0; } }
@keyframes fm-monte { from { opacity: 0; transform: translateY(18px); } }
@media (max-width: 960px) {
  .fm { padding: 12px 12px 10vh; padding-bottom: 10dvh; }
  .fm-boite { max-height: calc(90dvh - 12px); border-radius: 18px; }
  .fm-cadre { height: calc(90vh - 12px); height: calc(90dvh - 12px); }
}