/* MOVEXPRESS — CSS des composants (extrait du design system, anciennement injecté en JS) */
.mvx-card{
  background: var(--surface-card);
  border: var(--border-w) solid var(--border-subtle);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: var(--space-6);
  transition: var(--transition-base);
}
.mvx-card--tint{ background: var(--surface-tint); border-color: transparent; }
.mvx-card--ink{ background: var(--gradient-ink); border-color: transparent; color: var(--text-on-dark); box-shadow: var(--shadow-lg); }
.mvx-card--flat{ box-shadow:none; }
.mvx-card--pad-lg{ padding: var(--space-7); }
.mvx-card--interactive{ cursor:pointer; }
.mvx-card--interactive:hover{ box-shadow: var(--shadow-lg); transform: translateY(-3px); border-color: var(--border-default); }
.mvx-sech{ display:flex; flex-direction:column; gap:var(--space-3); max-width:46rem; }
.mvx-sech--center{ align-items:center; text-align:center; margin-inline:auto; }
.mvx-sech__eyebrow{ font-family:var(--font-display); font-weight:var(--weight-bold); font-size:var(--text-xs); letter-spacing:var(--tracking-caps); text-transform:uppercase; color:var(--brand); display:inline-flex; align-items:center; gap:.5em; }
.mvx-sech__eyebrow svg{ width:1.1em; height:1.1em; }
.mvx-sech__title{ font-family:var(--font-display); font-weight:var(--weight-extra); letter-spacing:var(--tracking-tight); line-height:var(--leading-tight); color:var(--text-strong); margin:0; font-size:var(--text-3xl); }
.mvx-sech__sub{ font-size:var(--text-lg); color:var(--text-muted); margin:0; line-height:var(--leading-relaxed); }
.mvx-sech--on-dark .mvx-sech__title{ color:#fff; }
.mvx-sech--on-dark .mvx-sech__sub{ color:var(--text-on-dark-muted); }
.mvx-sech--on-dark .mvx-sech__eyebrow{ color:var(--brand-bright); }
.mvx-service{
  display:flex; flex-direction:column; gap:var(--space-4);
  background: var(--surface-card);
  border: var(--border-w) solid var(--border-subtle);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: var(--space-6);
  transition: box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}
.mvx-service--interactive{ cursor:pointer; }
.mvx-service--interactive:hover{ box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.mvx-service--interactive:hover .mvx-service__ico{ background: var(--brand); color:#fff; }
.mvx-service--featured{ background: var(--gradient-ink); border-color:transparent; color:var(--text-on-dark); box-shadow:var(--shadow-lg); }
.mvx-service--featured .mvx-service__desc{ color:var(--text-on-dark-muted); }
.mvx-service--featured .mvx-service__ico{ background: rgba(255,255,255,.14); color:#fff; }
.mvx-service--featured .mvx-service__feat{ color:#fff; }

.mvx-service__ico{
  width:54px; height:54px; border-radius: var(--radius-md);
  display:inline-flex; align-items:center; justify-content:center;
  background: var(--surface-tint); color: var(--brand);
  transition: var(--transition-base); flex:0 0 auto;
}
.mvx-service__ico svg{ width:26px; height:26px; }
.mvx-service__title{ font-family:var(--font-display); font-weight:var(--weight-bold); font-size:var(--text-xl); color:inherit; margin:0; letter-spacing:-0.01em; }
.mvx-service--featured .mvx-service__title, .mvx-service__title{ color: var(--text-strong); }
.mvx-service--featured .mvx-service__title{ color:#fff; }
.mvx-service__desc{ font-size:var(--text-md); color:var(--text-muted); margin:0; line-height:var(--leading-relaxed); }
.mvx-service__feats{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.mvx-service__feat{ display:flex; align-items:flex-start; gap:.55em; font-size:var(--text-sm); color:var(--text-body); font-weight:var(--weight-medium); }
.mvx-service--featured .mvx-service__feat{ color:#EaF3Fb; }
.mvx-service__feat svg{ width:1.05em; height:1.05em; color:var(--brand); flex:0 0 auto; margin-top:.15em; }
.mvx-service--featured .mvx-service__feat svg{ color:var(--brand-bright); }
.mvx-service__foot{ margin-top:auto; padding-top:var(--space-2); }
.mvx-service__link{ display:inline-flex; align-items:center; gap:.4em; font-family:var(--font-display); font-weight:var(--weight-bold); font-size:var(--text-sm); color:var(--brand); text-decoration:none; }
.mvx-service--featured .mvx-service__link{ color:var(--brand-bright); }
.mvx-service__link svg{ width:1.05em; height:1.05em; transition: transform var(--dur-fast) var(--ease-out); }
.mvx-service:hover .mvx-service__link svg{ transform: translateX(3px); }
.mvx-stat{ display:flex; align-items:center; gap:var(--space-3); }
.mvx-stat__ico{ width:44px; height:44px; flex:0 0 auto; border-radius:var(--radius-md); display:inline-flex; align-items:center; justify-content:center; background:var(--surface-tint); color:var(--brand); }
.mvx-stat__ico svg{ width:22px; height:22px; }
.mvx-stat__body{ display:flex; flex-direction:column; gap:.05em; }
.mvx-stat__value{ font-family:var(--font-display); font-weight:var(--weight-extra); font-size:var(--text-2xl); line-height:1; color:var(--text-strong); letter-spacing:-0.01em; }
.mvx-stat__value.mvx-mono{ font-family:var(--font-mono); font-weight:var(--weight-bold); }
.mvx-stat__label{ font-size:var(--text-sm); color:var(--text-muted); }
.mvx-stat--on-dark .mvx-stat__value{ color:#fff; }
.mvx-stat--on-dark .mvx-stat__label{ color:var(--text-on-dark-muted); }
.mvx-stat--on-dark .mvx-stat__ico{ background:rgba(255,255,255,.14); color:var(--brand-bright); }
.mvx-stat--stack{ flex-direction:column; align-items:flex-start; gap:var(--space-2); }
.mvx-badge{
  display:inline-flex; align-items:center; gap:.4em;
  font-family: var(--font-display); font-weight: var(--weight-bold);
  font-size: var(--text-xs); line-height:1;
  padding: .4em .7em; border-radius: var(--radius-pill);
  letter-spacing:.01em; white-space:nowrap;
}
.mvx-badge svg{ width:1.1em; height:1.1em; }
.mvx-badge--dot::before{ content:""; width:.5em; height:.5em; border-radius:50%; background:currentColor; }

.mvx-badge--brand{ background: var(--brand-tint); color: var(--brand-active); }
.mvx-badge--neutral{ background: var(--neutral-100); color: var(--neutral-700); }
.mvx-badge--success{ background: var(--success-tint); color: #0E7A3F; }
.mvx-badge--warning{ background: var(--warning-tint); color: #9A6206; }
.mvx-badge--danger{ background: var(--danger-tint); color: #B5302F; }
.mvx-badge--solid{ background: var(--brand); color: var(--brand-on); }
.mvx-badge--ink{ background: var(--brand-ink); color:#fff; }
.mvx-btn{
  --_bg: var(--brand);
  --_fg: var(--brand-on);
  --_bd: transparent;
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family: var(--font-display);
  font-weight: var(--weight-bold);
  line-height:1; white-space:nowrap; text-decoration:none; cursor:pointer;
  border:var(--border-w-2) solid var(--_bd);
  background:var(--_bg); color:var(--_fg);
  border-radius: var(--radius-md);
  transition: var(--transition-base);
  -webkit-tap-highlight-color: transparent;
}
.mvx-btn:focus-visible{ outline:none; box-shadow:0 0 0 4px var(--focus-ring); }
.mvx-btn:active{ transform: scale(.98); }
.mvx-btn[aria-disabled="true"], .mvx-btn:disabled{ opacity:.5; pointer-events:none; }
.mvx-btn .mvx-btn__ico{ display:inline-flex; }
.mvx-btn .mvx-btn__ico svg{ width:1.15em; height:1.15em; }

/* tailles */
.mvx-btn--sm{ font-size: var(--text-sm); padding: .5rem .85rem; border-radius: var(--radius-sm); }
.mvx-btn--md{ font-size: var(--text-md); padding: .72rem 1.15rem; }
.mvx-btn--lg{ font-size: var(--text-lg); padding: .95rem 1.6rem; }

/* variantes */
.mvx-btn--primary{ --_bg: var(--brand); --_fg: var(--brand-on); box-shadow: var(--shadow-brand-sm); }
.mvx-btn--primary:hover{ --_bg: var(--brand-hover); box-shadow: var(--shadow-brand); }
.mvx-btn--secondary{ --_bg: transparent; --_fg: var(--brand); --_bd: var(--border-default); }
.mvx-btn--secondary:hover{ --_bd: var(--brand); background: var(--brand-tint); }
.mvx-btn--ghost{ --_bg: transparent; --_fg: var(--brand); --_bd: transparent; }
.mvx-btn--ghost:hover{ background: var(--brand-tint); }
.mvx-btn--ink{ --_bg: var(--brand-ink); --_fg: var(--text-on-dark); box-shadow: var(--shadow-md); }
.mvx-btn--ink:hover{ --_bg: #06203B; }
.mvx-btn--light{ --_bg: var(--neutral-0); --_fg: var(--brand-ink); box-shadow: var(--shadow-md); }
.mvx-btn--light:hover{ --_bg: var(--neutral-50); }
.mvx-btn--block{ width:100%; }
.mvx-iconbtn{
  --_bg: transparent; --_fg: var(--text-body); --_bd: transparent;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--_bg); color:var(--_fg);
  border:var(--border-w) solid var(--_bd);
  border-radius: var(--radius-md); cursor:pointer;
  transition: var(--transition-base);
  -webkit-tap-highlight-color: transparent;
}
.mvx-iconbtn svg{ width:1.25em; height:1.25em; }
.mvx-iconbtn:focus-visible{ outline:none; box-shadow:0 0 0 4px var(--focus-ring); }
.mvx-iconbtn:active{ transform: scale(.94); }
.mvx-iconbtn:disabled{ opacity:.45; pointer-events:none; }

.mvx-iconbtn--sm{ width:36px; height:36px; font-size:16px; }
.mvx-iconbtn--md{ width:44px; height:44px; font-size:20px; }
.mvx-iconbtn--lg{ width:52px; height:52px; font-size:22px; }

.mvx-iconbtn--solid{ --_bg: var(--brand); --_fg: var(--brand-on); box-shadow: var(--shadow-brand-sm); }
.mvx-iconbtn--solid:hover{ --_bg: var(--brand-hover); }
.mvx-iconbtn--soft{ --_bg: var(--brand-tint); --_fg: var(--brand); }
.mvx-iconbtn--soft:hover{ --_bg: var(--blue-100); }
.mvx-iconbtn--outline{ --_bd: var(--border-default); --_fg: var(--text-body); }
.mvx-iconbtn--outline:hover{ --_bd: var(--brand); --_fg: var(--brand); }
.mvx-iconbtn--ghost:hover{ --_bg: var(--neutral-100); }
.mvx-logo{ display:inline-flex; align-items:center; gap:.55em; font-family: var(--font-display); line-height:1; }
.mvx-logo--lockup{ flex-direction:column; gap:.35em; }
.mvx-logo__mark{ display:block; width:auto; }
.mvx-logo__word{
  font-style: italic; font-weight: var(--weight-extra);
  letter-spacing: -0.01em; white-space:nowrap;
  color: var(--brand);
}
.mvx-logo__word .mvx-logo__x{ color: var(--neutral-900); }
.mvx-logo--on-dark .mvx-logo__word{ color: #FFFFFF; }
.mvx-logo--on-dark .mvx-logo__word .mvx-logo__x{ color: var(--brand-bright); }
.mvx-tag{
  display:inline-flex; align-items:center; gap:.45em;
  font-family: var(--font-body); font-weight: var(--weight-semibold);
  font-size: var(--text-sm); line-height:1;
  padding: .5em .9em; border-radius: var(--radius-pill);
  border: var(--border-w) solid var(--border-default);
  background: var(--neutral-0); color: var(--text-body);
  cursor: default; transition: var(--transition-base);
}
.mvx-tag svg{ width:1.05em; height:1.05em; }
button.mvx-tag, .mvx-tag--clickable{ cursor:pointer; }
button.mvx-tag:hover, .mvx-tag--clickable:hover{ border-color: var(--brand); color: var(--brand); }
.mvx-tag:focus-visible{ outline:none; box-shadow:0 0 0 4px var(--focus-ring); }
.mvx-tag--selected{ background: var(--brand); border-color: var(--brand); color: var(--brand-on); }
.mvx-tag--selected:hover{ background: var(--brand-hover); border-color: var(--brand-hover); color:#fff; }
.mvx-tag__close{ display:inline-flex; margin-left:.1em; opacity:.7; }
.mvx-tag__close:hover{ opacity:1; }
.mvx-field{ display:flex; flex-direction:column; gap:.4rem; font-family:var(--font-body); }
.mvx-field__label{ font-family:var(--font-display); font-weight:var(--weight-semibold); font-size:var(--text-sm); color:var(--text-strong); display:flex; gap:.3em; align-items:center; }
.mvx-field__req{ color:var(--danger); }
.mvx-field__opt{ color:var(--text-subtle); font-weight:var(--weight-regular); font-family:var(--font-body); }
.mvx-field__hint{ font-size:var(--text-xs); color:var(--text-muted); }
.mvx-field__error{ font-size:var(--text-xs); color:var(--danger); display:flex; align-items:center; gap:.3em; }
.mvx-field__error svg{ width:1em; height:1em; }
.mvx-control{
  font-family: var(--font-body); font-size: var(--text-md);
  color: var(--text-body); background: var(--neutral-0);
  border: var(--border-w) solid var(--border-default);
  border-radius: var(--radius-md);
  padding: .72rem .9rem; width:100%; line-height:1.4;
  transition: var(--transition-base);
  -webkit-appearance:none; appearance:none;
}
.mvx-control::placeholder{ color: var(--text-subtle); }
.mvx-control:hover{ border-color: var(--border-strong); }
.mvx-control:focus{ outline:none; border-color: var(--brand); box-shadow:0 0 0 4px var(--focus-ring); }
.mvx-control:disabled{ background: var(--neutral-50); color: var(--text-muted); cursor:not-allowed; }
.mvx-control[aria-invalid="true"]{ border-color: var(--danger); box-shadow:0 0 0 4px color-mix(in srgb, var(--danger) 22%, transparent); }

.mvx-input-wrap{ position:relative; display:flex; align-items:center; }
.mvx-input-wrap .mvx-input-ico{ position:absolute; left:.85rem; display:inline-flex; color:var(--text-muted); pointer-events:none; }
.mvx-input-wrap .mvx-input-ico svg{ width:1.15em; height:1.15em; }
.mvx-input-wrap--icon .mvx-control{ padding-left: 2.6rem; }
.mvx-select-wrap{ position:relative; display:block; }
.mvx-select-wrap .mvx-select-chevron{ position:absolute; right:.9rem; top:50%; transform:translateY(-50%); color:var(--text-muted); pointer-events:none; display:inline-flex; }
.mvx-select-wrap .mvx-select-chevron svg{ width:1.15em; height:1.15em; }
select.mvx-control{ padding-right: 2.6rem; cursor:pointer; }
