@charset "UTF-8";
/* Math Universe — pages boutique (Tutor natif) : panier, panier vide, validation de commande,
   confirmation (autour du composant de paiement payment-ui.css, inchange), avis « boutique fermee »
   et cartes de commande de l'espace eleve. Charge par boutique-style.php sur ces pages seulement.

   PROTECTION CONTRE LE THEME (meme methode que payment-ui.css). Le kit Elementor 1690 (boutons roses
   arrondis 25 px, titres Mulish 900 de 42-60 px, liens roses, champs sans bordure), Bootstrap, Histudy
   (dont des !important sur les champs de facturation), Rainbow Elements et WooCommerce s'appliquent aussi
   a ces pages. Donc :
     1. une couche de remise a zero a FAIBLE specificite (0,1,2)/(0,2,2), placee AVANT les regles ;
     2. des regles toutes prefixees « html body » + racine doublee (.tutor-cart-page.tutor-cart-page...),
        qui gagnent ensuite ; !important seulement contre les !important du theme (champs, radio,
        mode sombre) et du bloc commun d'api.php (.mu-native-btn{color:#fff!important}).
   Le kit pose aussi letter-spacing:-0.6px et line-height:1.7em sur <body> : les racines remettent
   letter-spacing:normal et line-height:1.5 (heritage), le bouclier traite les balises que le kit vise.
   Rien ne change les identifiants, classes ou attributs lus par tutor-front.js.
   Version 1.1.0 (2026-10-04) : corrections de la revue visuelle et fonctionnelle. */

/* ------------------------------------------------------------------------------------------------
   0. Jetons (memes valeurs que payment-ui.css)
   ------------------------------------------------------------------------------------------------ */
html body {
  --mb-ink: #1d1b2c;
  --mb-muted: #625f78;
  --mb-line: #e9e6f4;
  --mb-line-strong: #d9d4ea;
  --mb-soft: #f7f5fd;
  --mb-surface: #ffffff;
  --mb-brand: #5b2bd6;
  --mb-brand-deep: #4528a8;
  --mb-brand-soft: #efe9ff;
  --mb-accent: #12408f;
  --mb-ok: #0f6e3f;
  --mb-ok-soft: #e6f6ed;
  --mb-warn: #7a4a00;
  --mb-warn-soft: #fff3d6;
  --mb-danger: #b42318;
  --mb-danger-soft: #fff0ee;
  --mb-radius: 16px;
  --mb-radius-lg: 24px;       /* toutes les cartes (20 px sur telephone) */
  --mb-field-line: #8e89a6;   /* bordure des champs : 3,3:1 sur blanc (WCAG 1.4.11) */
  --mb-sticky-top: 104px;     /* en-tete Elementor collant (80 px) + marge ; + barre d'admin */
  --mb-shadow: 0 1px 2px rgba(29, 27, 44, .04), 0 22px 48px -32px rgba(40, 20, 90, .38);
  --mb-cta: linear-gradient(135deg, #4528a8 0%, #5b2bd6 55%, #7442ee 100%);
  --mb-cta-shadow: 0 16px 30px -16px rgba(91, 43, 214, .75);
  --mb-ring: 0 0 0 4px rgba(91, 43, 214, .16);
  --mb-ease: cubic-bezier(.22, 1.2, .36, 1);
  --mb-font: "Poppins", "Tajawal", system-ui, -apple-system, "Segoe UI", sans-serif;
  /* Icones (masques : la couleur vient de currentColor) */
  --mb-i-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --mb-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --mb-i-trash: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 7h16M10 11v6M14 11v6M6 7l1 13h10l1-13M9 7V4h6v3' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --mb-i-lock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 11V8a5 5 0 0 1 10 0v3M5.5 11h13v10h-13z' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
  --mb-i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='8.5' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M12 7.5V12l3 2' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  --mb-i-layers: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3 9 5-9 5-9-5 9-5Zm-9 9 9 5 9-5M3 16l9 5 9-5' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
  --mb-i-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m8 10 4 4 4-4' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --mb-i-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 8h11v13H8zM5 16H4V3h11v1' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
  --mb-i-wa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm5.3 14.1c-.2.6-1.3 1.2-1.8 1.2-.5.1-1 .2-3.3-.7-2.8-1.1-4.5-4-4.7-4.2-.1-.2-1.1-1.5-1.1-2.8s.7-2 1-2.3c.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.4 0 .5l-.4.6-.3.4c-.1.2-.3.3-.1.6.2.3.8 1.3 1.7 2.1 1.2 1 2.1 1.4 2.4 1.5.3.1.5.1.6-.1l.9-1.1c.2-.3.4-.2.6-.1l1.9.9c.3.1.5.2.5.3.1.2.1.6-.1 1.1Z'/%3E%3C/svg%3E");
  --mb-i-ms: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.4 2 2 6.1 2 11.6c0 2.9 1.2 5.4 3.2 7.1V22l2.9-1.6c1.2.3 2.5.5 3.9.5 5.6 0 10-4.1 10-9.4S17.6 2 12 2Zm1 12.6-2.5-2.7-5 2.7 5.5-5.8 2.6 2.7 4.9-2.7-5.5 5.8Z'/%3E%3C/svg%3E");
  /* Icones colorees (images de fond des pastilles de titre) */
  --mb-ic-bag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 8h14l-1 12H6L5 8Zm4 0V6a3 3 0 0 1 6 0v2' fill='none' stroke='%235b2bd6' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
  --mb-ic-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9ZM3.5 21a8.5 8.5 0 0 1 17 0' fill='none' stroke='%235b2bd6' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  --mb-ic-wallet: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 7.5A2.5 2.5 0 0 1 5.5 5H18v3M3 7.5V18a2 2 0 0 0 2 2h15V8H5.5A2.5 2.5 0 0 1 3 5.5M16 14h1.5' fill='none' stroke='%235b2bd6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --mb-i-tel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.2 15.2 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1l-2.3 2.2Z'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------------------------------------------
   1. Bouclier (faible specificite, AVANT les regles) : titres, paragraphes, listes, liens, boutons.
      :not(:where(.mupay *)) (specificite nulle) : le composant de paiement garde son propre bouclier.
   ------------------------------------------------------------------------------------------------ */
body :is(.mu-boutique-etapes, .tutor-cart-page, .tutor-checkout-page, .mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) :is(h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dd, figure, caption, label):not(:where(.mupay *)) {
  margin: 0; padding: 0; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit;
  color: inherit; letter-spacing: normal; text-transform: none; background: none; border: 0; text-align: inherit;
}
body :is(.mu-boutique-etapes, .tutor-cart-page, .tutor-checkout-page, .mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) :is(a, button, summary):not(:where(.mupay *)) {
  letter-spacing: normal; text-transform: none; text-shadow: none; text-decoration: none; font-family: inherit;
}
body :is(.mu-boutique-etapes, .tutor-cart-page, .tutor-checkout-page, .mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) :is(a, button):is(:hover, :focus, :active):not(:where(.mupay *)) {
  text-decoration: none;
}
body :is(.mu-boutique-etapes, .tutor-cart-page, .tutor-checkout-page, .mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) img:not(:where(.mupay *)) {
  max-width: 100%; height: auto; border: 0; box-shadow: none;
}

/* ------------------------------------------------------------------------------------------------
   2. Socle commun : police, fond de page, focus visible
   ------------------------------------------------------------------------------------------------ */
html body .mu-boutique-etapes, html body .tutor-cart-page, html body .tutor-checkout-page,
html body .mu-native-commande, html body .mu-native-fermeture, html body .mu-native-carte-commande {
  font-family: var(--mb-font); color: var(--mb-ink); -webkit-font-smoothing: antialiased;
  letter-spacing: normal; line-height: 1.5; /* kit Elementor sur <body> : -0.6px et 1.7em figes */
}
/* Carte de commande de l'espace eleve : la ligne entiere (badge, montant) herite aussi du kit.
   Deux regles : sans :has(), une liste commune serait ignoree en entier. */
html body .tutor-billing-card:has(.mu-native-carte-commande) { letter-spacing: normal; }
html body .tutor-billing-card.mu-native-carte-attente { letter-spacing: normal; }
/* Texte pour lecteurs d'ecran seulement (etapes terminees). */
html body .mu-boutique-etapes .mu-boutique-sr {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
html body :is(.mu-boutique-etapes, .tutor-cart-page, .tutor-checkout-page, .mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) *,
html body :is(.mu-boutique-etapes, .tutor-cart-page, .tutor-checkout-page, .mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) *::before,
html body :is(.mu-boutique-etapes, .tutor-cart-page, .tutor-checkout-page, .mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) *::after {
  box-sizing: border-box;
}
html body :is(.mu-boutique-etapes, .tutor-cart-page, .tutor-checkout-page, .mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) :is(a, button, summary, input):focus-visible:not(:where(.mupay *)) {
  outline: 3px solid #8b6cf0; outline-offset: 3px; box-shadow: none;
}

/* Zone de page (gabarit page.php du theme) : fond lavande doux, marges raisonnables. */
html body .rbt-page-area:has(.tutor-cart-page, .tutor-checkout-page, .mu-native-fermeture) {
  padding: 40px 0 72px;
  background: linear-gradient(180deg, #f4f0ff 0, #faf9ff 340px, #ffffff 100%);
}
html body .rbt-page-area:has(.tutor-cart-page, .tutor-checkout-page, .mu-native-fermeture) > .container {
  max-width: 1200px; padding-inline: 16px;
}
html body .rn-entry-content:has(> .tutor-cart-page, > .tutor-checkout-page) > :is(.tutor-cart-page, .tutor-checkout-page) {
  padding: 0; margin: 0;
}

/* ------------------------------------------------------------------------------------------------
   3. Etapes « Panier -> Coordonnees -> Paiement »
   ------------------------------------------------------------------------------------------------ */
html body .mu-boutique-etapes.mu-boutique-etapes { max-width: 560px; margin: 0 auto 30px; }
html body .mu-boutique-etapes.mu-boutique-etapes ol { display: flex; list-style: none; margin: 0; padding: 0; }
html body .mu-boutique-etapes.mu-boutique-etapes .mu-boutique-etapes__item { position: relative; flex: 1 1 0; display: flex; justify-content: center; margin: 0; padding: 0; }
html body .mu-boutique-etapes.mu-boutique-etapes .mu-boutique-etapes__item + .mu-boutique-etapes__item::before {
  content: ""; position: absolute; top: 16px; inset-inline-end: calc(50% + 24px); width: calc(100% - 48px); height: 2px;
  border-radius: 2px; background: var(--mb-line-strong);
}
html body .mu-boutique-etapes.mu-boutique-etapes .mu-boutique-etapes__item.is-faite + .mu-boutique-etapes__item::before,
html body .mu-boutique-etapes.mu-boutique-etapes .mu-boutique-etapes__item.is-courante::before { background: linear-gradient(90deg, var(--mb-ok), var(--mb-brand)); }
/* Entre deux etapes terminees : trait vert plein (« fait »), le degrade reste reserve a l'etape en cours. */
html body .mu-boutique-etapes.mu-boutique-etapes .mu-boutique-etapes__item.is-faite + .mu-boutique-etapes__item.is-faite::before { background: var(--mb-ok); }
html body .mu-boutique-etapes.mu-boutique-etapes .mu-boutique-etapes__item > :is(a, span) {
  display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 0 4px; border-radius: 12px;
  color: var(--mb-muted); font-size: 13.5px; font-weight: 600; line-height: 1.3; text-align: center;
}
html body .mu-boutique-etapes.mu-boutique-etapes .mu-boutique-etapes__item > a:hover { color: var(--mb-brand-deep); }
html body .mu-boutique-etapes.mu-boutique-etapes .mu-boutique-etapes__num {
  position: relative; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%;
  background: #fff; border: 2px solid var(--mb-line-strong); color: var(--mb-muted);
  font-size: 14px; font-weight: 800; line-height: 1;
}
html body .mu-boutique-etapes.mu-boutique-etapes .is-courante .mu-boutique-etapes__num {
  background: var(--mb-cta); border-color: transparent; color: #fff; box-shadow: 0 0 0 5px rgba(91, 43, 214, .14);
}
html body .mu-boutique-etapes.mu-boutique-etapes .is-courante .mu-boutique-etapes__txt { color: var(--mb-ink); font-weight: 800; }
html body .mu-boutique-etapes.mu-boutique-etapes .is-faite .mu-boutique-etapes__num { background: var(--mb-ok); border-color: var(--mb-ok); color: transparent; }
html body .mu-boutique-etapes.mu-boutique-etapes .is-faite .mu-boutique-etapes__num::after {
  content: ""; position: absolute; inset: 8px; background: #fff;
  -webkit-mask: var(--mb-i-check) center / contain no-repeat; mask: var(--mb-i-check) center / contain no-repeat;
}
html body .mu-boutique-etapes.mu-boutique-etapes .is-faite .mu-boutique-etapes__txt { color: var(--mb-ok); }
/* Panier vide (y compris apres le retrait du dernier article par tutor-front.js) : pas d'etapes. */
html body .mu-boutique-etapes:has(+ .tutor-cart-page .tutor-cart-empty-state) { display: none; }

/* ------------------------------------------------------------------------------------------------
   4. Panier
   ------------------------------------------------------------------------------------------------ */
html body .tutor-cart-page.tutor-cart-page { padding: 0; background: none; }
html body .tutor-cart-page.tutor-cart-page .tutor-cart-page-wrapper > .tutor-container { max-width: 1160px; margin: 0 auto; padding: 0; }
html body .tutor-cart-page.tutor-cart-page .tutor-container > .tutor-row {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 372px); gap: 28px; align-items: start; margin: 0;
}
html body .tutor-cart-page.tutor-cart-page .tutor-container > .tutor-row > [class*="tutor-col"] {
  width: auto; max-width: none; flex: none; margin: 0; padding: 0;
}
/* Titre « 2 cours dans le panier » */
html body .tutor-cart-page.tutor-cart-page .tutor-row > .tutor-col-lg-8 > h3 {
  display: flex; align-items: center; gap: 12px; margin: 0 0 16px;
  font-size: clamp(22px, 2.6vw, 28px); font-weight: 800; line-height: 1.25; color: var(--mb-ink); text-transform: none;
}
html body .tutor-cart-page.tutor-cart-page .tutor-row > .tutor-col-lg-8 > h3::before {
  content: ""; flex: none; width: 42px; height: 42px; border-radius: 14px;
  background: var(--mb-brand-soft) var(--mb-ic-bag) center / 22px no-repeat;
  box-shadow: inset 0 0 0 1px rgba(91, 43, 214, .12);
}

/* Liste des articles */
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-list {
  display: flex; flex-direction: column; gap: 0; padding: 6px 0; margin: 0;
  background: var(--mb-surface); border: 1px solid var(--mb-line); border-radius: var(--mb-radius-lg); box-shadow: var(--mb-shadow);
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-item {
  display: grid; grid-template-columns: 136px minmax(0, 1fr) auto; gap: 18px; align-items: center;
  margin: 0 18px; padding: 18px 0; border: 0;
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-item + .tutor-cart-course-item { border-top: 1px solid var(--mb-line); }
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-item .tutor-cart-course-thumb {
  width: 136px; height: auto; aspect-ratio: 16 / 10; border-radius: 14px; overflow: hidden; background: var(--mb-soft);
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-thumb a { display: block; width: 100%; height: 100%; }
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform .35s ease; }
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-thumb a:hover img { transform: scale(1.04); }
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-item .tutor-cart-course-title { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-title > .tutor-d-flex { display: flex; flex-wrap: wrap; align-items: center; gap: 6px !important; /* .tutor-gap-4px !important */ }
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-title > .tutor-d-flex:not(:has(*)) { display: none !important; /* .tutor-d-flex !important */ }
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-title h5 { margin: 0; font-size: 16.5px; font-weight: 700; line-height: 1.4; color: var(--mb-ink); }
/* Titres arabes ou francais : plaintext pour l'ordre bidi, mais alignes sur la mise en page (LTR) ;
   text-align:start resoudrait le cote par paragraphe et pousserait un titre arabe a droite. */
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-title h5 a {
  display: block; color: var(--mb-ink); unicode-bidi: plaintext; text-align: left; overflow-wrap: anywhere;
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-title h5 a:hover { color: var(--mb-brand-deep); }
/* Niveau / duree de Tutor : remplaces par le badge de famille et la duree d'acces. */
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-item .tutor-cart-course-info { display: none; }
/* Prix et retrait */
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-item .tutor-cart-course-price-wrapper {
  display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 10px; margin: 0; min-width: 96px;
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-price-wrapper .tutor-cart-course-price {
  display: flex; flex-direction: column; align-items: flex-end; gap: 0; color: var(--mb-ink);
}
html body .tutor-cart-page.tutor-cart-page .tutor-container .tutor-cart-course-price .tutor-fw-bold {
  font-size: 19px; font-weight: 800; line-height: 1.3; color: var(--mb-ink); white-space: nowrap;
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-price .tutor-cart-discount-price {
  font-size: 13.5px; font-weight: 500; color: var(--mb-muted); text-decoration: line-through; white-space: nowrap;
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-price-wrapper button.tutor-cart-remove-button {
  display: inline-flex; align-items: center; gap: 6px; height: 40px; min-height: 0; margin: 0; padding: 0 12px !important; /* .tutor-btn-link : padding 0 !important */
  border: 1px solid transparent; border-radius: 10px; background: transparent; box-shadow: none;
  color: var(--mb-muted); font-size: 13.5px; font-weight: 600; line-height: 1; cursor: pointer;
  transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-price-wrapper button.tutor-cart-remove-button::after {
  content: ""; order: -1; position: static; flex: none; width: 16px; height: 16px; background: currentColor; transition: none;
  -webkit-mask: var(--mb-i-trash) center / contain no-repeat; mask: var(--mb-i-trash) center / contain no-repeat;
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-price-wrapper button.tutor-cart-remove-button:is(:hover, :focus-visible) {
  color: var(--mb-danger); background: var(--mb-danger-soft); border-color: #ffd5cf;
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-price-wrapper button.tutor-cart-remove-button.is-loading { opacity: .7; pointer-events: none; }
html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-price-wrapper button.tutor-cart-remove-button.is-loading::after { display: none; }

/* Badges : famille, duree d'acces, pack (Tutor Pro) */
html body :is(.tutor-cart-page, .tutor-checkout-page) .mu-boutique-famille,
html body :is(.tutor-cart-page, .tutor-checkout-page) .mu-boutique-duree,
html body :is(.tutor-cart-page, .tutor-checkout-page) .tutor-checkout-course-bundle-badge {
  display: inline-flex; align-items: center; gap: 5px; height: 24px; padding: 0 10px; border-radius: 999px;
  font-size: 12px; font-weight: 700; line-height: 1; white-space: nowrap; letter-spacing: .01em;
}
html body :is(.tutor-cart-page, .tutor-checkout-page) .mu-boutique-famille { background: var(--mb-brand-soft); color: var(--mb-brand-deep); }
html body :is(.tutor-cart-page, .tutor-checkout-page) .mu-boutique-famille--sherekplus { background: #f3e8ff; color: #6b21a8; }
html body :is(.tutor-cart-page, .tutor-checkout-page) :is(.mu-boutique-famille--droussi, .mu-boutique-famille--droussiplus) { background: #e3f4fb; color: #0b5a7a; }
html body :is(.tutor-cart-page, .tutor-checkout-page) .mu-boutique-famille--ete { background: #fff1de; color: #8a4b00; }
html body :is(.tutor-cart-page, .tutor-checkout-page) :is(.mu-boutique-famille--gratuit, .mu-boutique-famille--tot) { background: var(--mb-ok-soft); color: var(--mb-ok); }
html body :is(.tutor-cart-page, .tutor-checkout-page) .mu-boutique-duree { background: #f3f2f7; color: var(--mb-muted); }
html body :is(.tutor-cart-page, .tutor-checkout-page) .mu-boutique-duree::before {
  content: ""; width: 13px; height: 13px; background: currentColor;
  -webkit-mask: var(--mb-i-clock) center / contain no-repeat; mask: var(--mb-i-clock) center / contain no-repeat;
}
/* Pack (Tutor Pro, « Pack · 2 cours ») : pastille pleine comme les autres, icone de pile. */
html body :is(.tutor-cart-page, .tutor-checkout-page) .tutor-checkout-course-bundle-badge { background: #fdeef3; color: #9d174d; box-shadow: none; }
html body :is(.tutor-cart-page, .tutor-checkout-page) .tutor-checkout-course-bundle-badge::before {
  content: ""; width: 13px; height: 13px; background: currentColor;
  -webkit-mask: var(--mb-i-layers) center / contain no-repeat; mask: var(--mb-i-layers) center / contain no-repeat;
}
/* Cadeau (Tutor Pro) : meme gabarit de pastille. */
html body :is(.tutor-cart-page, .tutor-checkout-page) .tutor-checkout-gift-course-badge {
  display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 999px;
  background: var(--mb-brand-soft); color: var(--mb-brand-deep); font-size: 12px; font-weight: 700; line-height: 1; white-space: nowrap;
}

/* Recapitulatif (carte collante) */
html body .tutor-cart-page.tutor-cart-page .tutor-container > .tutor-row > .tutor-col-lg-4 {
  position: sticky; top: calc(var(--mb-sticky-top) + var(--wp-admin--admin-bar--height, 0px)); padding: 22px; background: var(--mb-surface);
  border: 1px solid var(--mb-line); border-radius: var(--mb-radius-lg); box-shadow: var(--mb-shadow);
}
html body .tutor-cart-page.tutor-cart-page .tutor-container .tutor-row > .tutor-col-lg-4 > h3 {
  margin: 0 0 14px; font-size: 18px; font-weight: 800; line-height: 1.3; color: var(--mb-ink);
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-summery { border: 0; border-radius: 0; background: none; }
html body .tutor-cart-page.tutor-cart-page .tutor-cart-summery .tutor-cart-summery-top {
  display: flex; flex-direction: column; gap: 10px; padding: 0 0 14px; border-bottom: 1px dashed var(--mb-line-strong);
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-summery .tutor-cart-summery-bottom { padding: 14px 0 0; }
/* Sans taxe, « Sous-total » repete le total (et differait du sous-total de la validation, avant
   remise) : la ligne est masquee, seul le total reste. Avec une ligne de taxe, tout reste visible. */
html body .tutor-cart-page.tutor-cart-page .tutor-cart-summery .tutor-cart-summery-top:has(> .tutor-cart-summery-item:only-child) { display: none; }
html body .tutor-cart-page.tutor-cart-page .tutor-cart-summery:has(> .tutor-cart-summery-top > .tutor-cart-summery-item:only-child) .tutor-cart-summery-bottom { padding-top: 0; }
html body .tutor-cart-page.tutor-cart-page .tutor-cart-summery .tutor-cart-summery-item {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0;
  font-size: 15px; font-weight: 500; color: var(--mb-muted);
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-summery .tutor-cart-summery-item > div:last-child { color: var(--mb-ink); font-weight: 700; white-space: nowrap; }
html body .tutor-cart-page.tutor-cart-page .tutor-cart-summery .tutor-cart-summery-bottom .tutor-cart-summery-item {
  margin: 0 0 18px; color: var(--mb-ink); font-size: 16px; font-weight: 700;
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-summery .tutor-cart-summery-bottom .tutor-cart-summery-item > div:last-child {
  font-size: 26px; font-weight: 800; letter-spacing: -.01em; line-height: 1.2; color: var(--mb-brand-deep);
}
/* Bouton principal (panier : « Valider mon panier », libelle de boutique-style.php) */
html body .tutor-cart-page.tutor-cart-page .tutor-cart-summery .tutor-cart-summery-bottom a.tutor-btn[data-cy="tutor-native-checkout-button"],
html body .tutor-cart-page.tutor-cart-page .tutor-cart-empty-state a.tutor-btn,
html body .tutor-checkout-page.tutor-checkout-page #tutor-checkout-pay-now-button.tutor-btn {
  position: relative; display: flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%; min-height: 54px; height: auto; margin: 0; padding: 14px 22px;
  border: 0; border-radius: 14px; background: var(--mb-cta); background-size: 100% 100%; box-shadow: var(--mb-cta-shadow);
  color: #fff; font-family: inherit; font-size: 16px; font-weight: 800; line-height: 1.3; text-align: center; text-decoration: none;
  text-wrap: balance; cursor: pointer; transition: transform .2s var(--mb-ease), box-shadow .2s ease, filter .2s ease;
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-summery .tutor-cart-summery-bottom a.tutor-btn[data-cy="tutor-native-checkout-button"]::after,
html body .tutor-cart-page.tutor-cart-page .tutor-cart-empty-state a.tutor-btn::after,
html body .tutor-checkout-page.tutor-checkout-page #tutor-checkout-pay-now-button.tutor-btn::after {
  content: ""; flex: none; width: 20px; height: 20px; background: currentColor;
  -webkit-mask: var(--mb-i-arrow) center / contain no-repeat; mask: var(--mb-i-arrow) center / contain no-repeat;
  transition: transform .2s var(--mb-ease);
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-summery .tutor-cart-summery-bottom a.tutor-btn[data-cy="tutor-native-checkout-button"]:is(:hover, :focus-visible),
html body .tutor-cart-page.tutor-cart-page .tutor-cart-empty-state a.tutor-btn:is(:hover, :focus-visible),
html body .tutor-checkout-page.tutor-checkout-page #tutor-checkout-pay-now-button.tutor-btn:is(:hover, :focus-visible) {
  color: #fff; background: var(--mb-cta); background-position: 0 0; filter: brightness(1.08); transform: translateY(-1px);
  box-shadow: 0 20px 34px -16px rgba(91, 43, 214, .85);
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-summery .tutor-cart-summery-bottom a.tutor-btn[data-cy="tutor-native-checkout-button"]:hover::after,
html body .tutor-cart-page.tutor-cart-page .tutor-cart-empty-state a.tutor-btn:hover::after,
html body .tutor-checkout-page.tutor-checkout-page #tutor-checkout-pay-now-button.tutor-btn:hover::after { transform: translateX(3px); }
html body .tutor-cart-page.tutor-cart-page .tutor-cart-summery .tutor-cart-summery-bottom a.tutor-btn[data-cy="tutor-native-checkout-button"]:active,
html body .tutor-checkout-page.tutor-checkout-page #tutor-checkout-pay-now-button.tutor-btn:active { transform: translateY(0); filter: brightness(.97); }
/* Reassurance sous le bouton du panier */
html body .tutor-cart-page.tutor-cart-page .tutor-cart-summery .tutor-cart-summery-bottom::after {
  content: "Aucun paiement en ligne : les coordonnées de paiement s’affichent après la commande.";
  display: block; margin-top: 14px; padding-inline-start: 24px; min-height: 18px;
  font-size: 12.5px; line-height: 1.5; color: var(--mb-muted);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 11V8a5 5 0 0 1 10 0v3M5.5 11h13v10h-13z' fill='none' stroke='%23625f78' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E") 0 1px / 16px 16px no-repeat;
}

/* ------------------------------------------------------------------------------------------------
   5. Panier vide
   ------------------------------------------------------------------------------------------------ */
html body .tutor-cart-page.tutor-cart-page .tutor-cart-empty-state {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0;
  max-width: 600px; margin: 0 auto; padding: 40px clamp(20px, 5vw, 48px) 44px;
  background: var(--mb-surface); border: 1px solid var(--mb-line); border-radius: var(--mb-radius-lg); box-shadow: var(--mb-shadow);
  text-align: center;
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-empty-state img { width: 100%; max-width: 280px; height: auto; margin: 0 auto 8px; }
html body .tutor-cart-page.tutor-cart-page .tutor-cart-empty-state p {
  margin: 0 0 24px; padding: 0; font-size: 22px; font-weight: 800; line-height: 1.35; color: var(--mb-ink);
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-empty-state p::after {
  content: "Parcourez nos classes et ajoutez un cours ou un pack pour commencer."; display: block; margin-top: 8px;
  font-size: 15px; font-weight: 400; line-height: 1.6; color: var(--mb-muted);
}
html body .tutor-cart-page.tutor-cart-page .tutor-cart-empty-state a.tutor-btn { width: auto; min-width: 260px; padding-inline: 28px; }

/* ------------------------------------------------------------------------------------------------
   6. Validation de commande
   ------------------------------------------------------------------------------------------------ */
html body .tutor-checkout-page.tutor-checkout-page { padding: 0; background: none; }
html body .tutor-checkout-page.tutor-checkout-page > .tutor-container { max-width: 1160px; margin: 0 auto; padding: 0; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-container { max-width: none; margin: 0; }
html body .tutor-checkout-page.tutor-checkout-page #tutor-checkout-form > .tutor-row {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr); gap: 28px; align-items: start; margin: 0;
}
html body .tutor-checkout-page.tutor-checkout-page #tutor-checkout-form > .tutor-row > [class*="tutor-col"] {
  width: auto; max-width: none; flex: none; margin: 0; padding: 0;
}
html body .tutor-checkout-page.tutor-checkout-page #tutor-checkout-form > .tutor-row > [tutor-checkout-details] { position: sticky; top: calc(var(--mb-sticky-top) + var(--wp-admin--admin-bar--height, 0px)); }

/* Cartes : recapitulatif, coordonnees, moyen de paiement */
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-details .tutor-checkout-details-inner,
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing .mu-checkout-carte,
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing .tutor-payment-method-wrapper {
  margin: 0; padding: 22px; background: var(--mb-surface); border: 1px solid var(--mb-line);
  border-radius: var(--mb-radius-lg); box-shadow: var(--mb-shadow);
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing { padding: 0; background: none; border-radius: 0; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing .tutor-payment-method-wrapper { margin-top: 18px; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing .tutor-payment-method-wrapper.tutor-d-none { display: none; }
/* Titres des cartes, avec icone */
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-details .tutor-checkout-details-inner > h5,
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing .mu-checkout-carte > h5,
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing .tutor-payment-method-wrapper > h5 {
  display: flex; align-items: center; gap: 10px; margin: 0 0 16px; padding: 0; border: 0;
  font-size: 18px; font-weight: 800; line-height: 1.3; color: var(--mb-ink); text-transform: none;
}
html body .tutor-checkout-page.tutor-checkout-page :is(.tutor-checkout-details-inner, .mu-checkout-carte, .tutor-payment-method-wrapper) > h5::before {
  content: ""; flex: none; width: 38px; height: 38px; border-radius: 12px;
  background: var(--mb-brand-soft) var(--mb-ic-bag) center / 20px no-repeat;
  box-shadow: inset 0 0 0 1px rgba(91, 43, 214, .12);
}
html body .tutor-checkout-page.tutor-checkout-page .mu-checkout-carte > h5::before { background-image: var(--mb-ic-user); }
html body .tutor-checkout-page.tutor-checkout-page .tutor-payment-method-wrapper > h5::before { background-image: var(--mb-ic-wallet); }

/* Recapitulatif de la commande */
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-detail-item { padding: 0; border: 0; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-courses { display: flex; flex-direction: column; gap: 0; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-item {
  display: flex; flex-direction: column; gap: 8px; padding: 14px 0; color: var(--mb-ink);
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-item + .tutor-checkout-course-item { border-top: 1px solid var(--mb-line); }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-item:first-child { padding-top: 0; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-item > .tutor-d-flex { display: flex; flex-wrap: wrap; gap: 6px !important; order: 2; padding-inline-start: 78px; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-item > .tutor-d-flex:not(:has(*)) { display: none !important; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-content { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-content > .tutor-d-flex { min-width: 0; flex: 1 1 auto; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-thumb-title { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 14px; align-items: center; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-thumb-title img {
  display: block; width: 64px; height: 44px; margin: 0; object-fit: cover; border-radius: 10px; background: var(--mb-soft);
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-title { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.4; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-title a { display: block; color: var(--mb-ink); unicode-bidi: plaintext; text-align: left; overflow-wrap: anywhere; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-title a:hover { color: var(--mb-brand-deep); }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-content .tutor-text-right { text-align: end; white-space: nowrap; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-content .tutor-text-right .tutor-fw-bold { font-size: 16px; font-weight: 800; color: var(--mb-ink); }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-discount-price { font-size: 13px; color: var(--mb-muted); text-decoration: line-through; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-summary {
  display: flex; flex-direction: column; gap: 8px; margin-top: 16px; padding: 14px 0 0; border-top: 1px dashed var(--mb-line-strong);
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-summary-item {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-size: 14.5px; color: var(--mb-muted);
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-summary-item > div:last-child { color: var(--mb-ink); font-weight: 700; white-space: nowrap; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-summary .tutor-checkout-summary-item:nth-child(2):not(.tutor-have-a-coupon):not(.tutor-checkout-coupon-wrapper) > div:last-child { color: var(--mb-ok); }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-summary-item.tutor-d-none { display: none; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-details-inner > .tutor-pt-12 {
  margin-top: 14px; padding: 14px 16px; border-radius: 14px; background: var(--mb-soft);
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-details-inner > .tutor-pt-12 .tutor-checkout-summary-item:first-child { color: var(--mb-ink); font-size: 15.5px; font-weight: 700; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-details-inner .tutor-checkout-summary-item > .tutor-checkout-grand-total {
  font-size: 26px; font-weight: 800; letter-spacing: -.01em; line-height: 1.2; color: var(--mb-brand-deep);
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-incl-tax-label:not(:has(div:not(:empty))) { display: none; }

/* Coordonnees : champs avec libelles visibles (Tutor les masquait) */
html body .tutor-checkout-page.tutor-checkout-page .mu-native-billing-minimal > .tutor-row {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0;
}
html body .tutor-checkout-page.tutor-checkout-page .mu-native-billing-minimal > .tutor-row > [class*="tutor-col"] { width: auto; max-width: none; margin: 0; padding: 0; }
html body .tutor-checkout-page.tutor-checkout-page .mu-native-billing-minimal > .tutor-row > .tutor-col-12:not(.tutor-col-sm-6) { grid-column: 1 / -1; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing .tutor-billing-fields .tutor-col-12 .tutor-mb-16 { margin: 0 !important; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing .tutor-billing-fields .tutor-form-label {
  display: block; margin: 0 0 6px; font-size: 13.5px; font-weight: 600; line-height: 1.4; color: var(--mb-ink); letter-spacing: 0;
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing .tutor-billing-fields .tutor-col-12 .tutor-form-control {
  display: block; width: 100%; height: 50px; margin: 0; padding: 0 14px !important; text-indent: 0;
  border: 1px solid var(--mb-field-line) !important; border-radius: 12px !important; background: #fff;
  box-shadow: none; color: var(--mb-ink) !important; font-family: inherit; font-size: 16px !important; font-weight: 500; line-height: 48px !important; /* !important : theme enfant (.tutor-form-control) */
  transition: border-color .2s ease, box-shadow .2s ease;
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing .tutor-billing-fields .tutor-col-12 .tutor-form-control::placeholder { color: #8a879c; opacity: 1; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing .tutor-billing-fields .tutor-col-12 .tutor-form-control:hover { border-color: #6f6a88 !important; }
/* Focus : bordure de 2 px (1 px + ombre interne, sans decalage du texte) et halo bien visible. */
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing .tutor-billing-fields .tutor-col-12 .tutor-form-control:focus {
  border-color: var(--mb-brand) !important; box-shadow: inset 0 0 0 1px var(--mb-brand), 0 0 0 4px rgba(91, 43, 214, .3); outline: none;
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing .tutor-billing-fields .tutor-col-12 .tutor-form-control:user-invalid { border-color: var(--mb-danger) !important; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-billing-fields #mu-billing-phone-help { margin: 6px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--mb-muted); }

/* Moyen de paiement */
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-payment-options {
  display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; border: 0; border-radius: 0; background: none;
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-payment-options .tutor-checkout-payment-item {
  display: flex; align-items: center; gap: 12px; margin: 0; padding: 14px 16px; cursor: pointer;
  border: 1.5px solid var(--mb-line-strong); border-radius: 14px; background: #fff;
  font-size: 15.5px; font-weight: 700; line-height: 1.4; color: var(--mb-ink);
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-payment-options .tutor-checkout-payment-item:hover { border-color: #c4bde0; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-payment-options .tutor-checkout-payment-item:is(.active, :has(input:checked)) {
  border-color: var(--mb-brand); background: linear-gradient(180deg, #faf8ff, #f4efff); box-shadow: var(--mb-ring);
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-payment-item .tutor-payment-item-content { display: flex; align-items: center; gap: 8px; width: auto; flex: 1 1 auto; color: var(--mb-ink); font-size: 15.5px; font-weight: 700; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-payment-item input[type="radio"].tutor-form-check-input {
  flex: none; appearance: none; -webkit-appearance: none; width: 22px; height: 22px; margin: 0; padding: 0 !important;
  border: 2px solid var(--mb-field-line) !important; border-radius: 50%; background: #fff !important; background-image: none !important;
  box-shadow: none; cursor: pointer; display: grid; place-items: center; transition: border-color .2s ease;
}
/* Point du bouton radio : degrade radial (un pseudo-element sur <input> n'est pas rendu partout). */
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-payment-item input[type="radio"].tutor-form-check-input:checked {
  border-color: var(--mb-brand) !important; background: radial-gradient(circle, var(--mb-brand) 0 5px, #fff 5.5px) !important;
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-payment-item input[type="radio"].tutor-form-check-input:focus-visible { outline: 3px solid #8b6cf0; outline-offset: 2px; }
/* Moyens acceptes (logos) et reassurance (boutique-style.php) */
html body .tutor-checkout-page.tutor-checkout-page .mu-boutique-moyens { margin: 14px 0 0; }
html body .tutor-checkout-page.tutor-checkout-page .mu-boutique-moyens__logos { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; padding: 0; list-style: none; }
html body .tutor-checkout-page.tutor-checkout-page .mu-boutique-moyens__logos li {
  display: grid; place-items: center; width: 64px; height: 40px; margin: 0; padding: 5px 7px;
  border: 1px solid var(--mb-line); border-radius: 10px; background: #fff;
}
html body .tutor-checkout-page.tutor-checkout-page .mu-boutique-moyens__logos img { display: block; width: auto; height: auto; max-width: 100%; max-height: 28px; object-fit: contain; border-radius: 4px; }
html body .tutor-checkout-page.tutor-checkout-page .mu-boutique-moyens__texte {
  position: relative; margin: 0; padding: 10px 12px 10px 40px; border-radius: 12px; background: var(--mb-ok-soft);
  font-size: 13.5px; line-height: 1.55; color: #0b4f2e;
}
html body .tutor-checkout-page.tutor-checkout-page .mu-boutique-moyens__texte::before {
  content: ""; position: absolute; inset-inline-start: 13px; top: 12px; width: 17px; height: 17px; background: var(--mb-ok);
  -webkit-mask: var(--mb-i-lock) center / contain no-repeat; mask: var(--mb-i-lock) center / contain no-repeat;
}
/* Instructions de paiement brutes de Tutor : gardees dans la page pour tutor-front.js, jamais
   affichees (attribut hidden dans la surcharge checkout.php ; ceci couvre une ancienne surcharge
   encore en <details>). La confirmation les presente avec le composant de paiement. */
html body .tutor-checkout-page.tutor-checkout-page .mu-checkout-instructions { display: none; }

/* Code promo (si active dans Tutor) : lien, champ et pastille du code applique. */
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-summary .tutor-have-a-coupon { align-items: center; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-have-a-coupon #tutor-toggle-coupon-button.tutor-btn {
  display: inline-flex; align-items: center; height: auto; min-height: 36px; margin: 0; padding: 4px 10px !important; /* .tutor-btn-link */
  border: 0; border-radius: 10px; background: transparent; box-shadow: none;
  color: var(--mb-brand-deep); font-size: 14px; font-weight: 700; line-height: 1.3; text-decoration: underline; text-underline-offset: 3px;
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-have-a-coupon #tutor-toggle-coupon-button.tutor-btn::after { display: none; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-have-a-coupon #tutor-toggle-coupon-button.tutor-btn:is(:hover, :focus-visible) { background: var(--mb-brand-soft); color: var(--mb-brand-deep); }
html body .tutor-checkout-page.tutor-checkout-page .tutor-apply-coupon-form { display: flex; gap: 8px; margin: 2px 0 4px; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-apply-coupon-form input[name="coupon_code"] {
  flex: 1 1 auto; min-width: 0; height: 44px; margin: 0; padding: 0 12px; border: 1px solid var(--mb-field-line); border-radius: 12px;
  background: #fff; box-shadow: none; color: var(--mb-ink); font-family: inherit; font-size: 15px; line-height: 42px;
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-apply-coupon-form input[name="coupon_code"]:focus {
  border-color: var(--mb-brand); box-shadow: inset 0 0 0 1px var(--mb-brand), 0 0 0 4px rgba(91, 43, 214, .3); outline: none;
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-apply-coupon-form #tutor-apply-coupon-button.tutor-btn {
  flex: none; display: inline-flex; align-items: center; justify-content: center; height: 44px; min-height: 0; margin: 0; padding: 0 16px;
  border: 0; border-radius: 12px; background: var(--mb-brand-soft); box-shadow: none;
  color: var(--mb-brand-deep); font-size: 14.5px; font-weight: 700; line-height: 1;
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-apply-coupon-form #tutor-apply-coupon-button.tutor-btn:is(:hover, :focus-visible) { background: #e2d8ff; color: var(--mb-brand-deep); }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-coupon-badge {
  display: inline-flex; align-items: center; gap: 6px; min-height: 28px; padding: 2px 4px 2px 10px; border-radius: 999px;
  background: var(--mb-ok-soft); color: var(--mb-ok); font-size: 13px; font-weight: 700;
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-coupon-badge #tutor-checkout-remove-coupon.tutor-btn {
  display: grid; place-items: center; width: 24px; height: 24px; min-height: 0; margin: 0; padding: 0;
  border: 0; border-radius: 50%; background: transparent; box-shadow: none; color: inherit; font-size: 12px;
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-coupon-badge #tutor-checkout-remove-coupon.tutor-btn:is(:hover, :focus-visible) { background: rgba(15, 110, 63, .14); }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-coupon-wrapper .tutor-discount-amount { color: var(--mb-ok); }

/* Visiteur non connecte : encadre « Vous avez deja un compte ? » + bouton de connexion. */
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing-inner > .tutor-border:has(.tutor-open-login-modal) {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 18px; padding: 14px 16px;
  border: 1px solid var(--mb-line) !important; border-radius: var(--mb-radius); background: var(--mb-soft);
  font-size: 14.5px; color: var(--mb-ink);
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing-inner button.tutor-open-login-modal.tutor-btn {
  display: inline-flex; align-items: center; justify-content: center; height: 40px; min-height: 0; margin: 0; padding: 0 18px;
  border: 1.5px solid rgba(91, 43, 214, .45); border-radius: 12px; background: #fff; box-shadow: none;
  color: var(--mb-brand-deep); font-size: 14.5px; font-weight: 700; line-height: 1;
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing-inner button.tutor-open-login-modal.tutor-btn:is(:hover, :focus-visible) { border-color: var(--mb-brand); background: var(--mb-brand-soft); color: var(--mb-brand-deep); }
/* Consentements, erreurs */
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing-inner > .tutor-mt-20 .tutor-form-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.5; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing-inner > .tutor-mt-20 .tutor-form-check a { color: var(--mb-brand-deep); text-decoration: underline; text-underline-offset: 2px; }
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing-inner .tutor-alert {
  margin: 16px 0 0; padding: 12px 14px; border: 1px solid #ffd5cf; border-radius: 12px; background: var(--mb-danger-soft); color: var(--mb-danger); font-size: 14px;
}
html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing-inner .tutor-alert :is(div, li) { color: var(--mb-danger); }
/* Bouton « Payer maintenant » (variante du bouton principal, plus haut) */
html body .tutor-checkout-page.tutor-checkout-page #tutor-checkout-pay-now-button.tutor-btn { min-height: 58px; margin-top: 20px; font-size: 17px; }
html body .tutor-checkout-page.tutor-checkout-page #tutor-checkout-pay-now-button.tutor-btn:disabled { filter: grayscale(.5) brightness(1.1); opacity: .7; cursor: not-allowed; transform: none; }
html body .tutor-checkout-page.tutor-checkout-page #tutor-checkout-pay-now-button.tutor-btn.is-loading::after { display: none; }
html body .tutor-checkout-page.tutor-checkout-page #tutor-checkout-pay-now-button.tutor-btn.is-loading::before { margin: 0; color: #fff; }

/* ------------------------------------------------------------------------------------------------
   7. Confirmation (autour du composant de paiement .mupay, dont l'apparence ne change pas)
   ------------------------------------------------------------------------------------------------ */
html body .mu-native-commande.mu-native-commande {
  max-width: 912px; margin: 0 auto; padding: 36px 16px 64px;
  background: #faf8ff; box-shadow: 0 0 0 100vmax #faf8ff; clip-path: inset(0 -100vmax);
}
html body .mu-native-commande.mu-native-commande .mu-native-carte {
  margin: 0 0 20px; padding: clamp(18px, 3.4vw, 28px); background: var(--mb-surface);
  border: 1px solid var(--mb-line); border-radius: var(--mb-radius-lg); box-shadow: var(--mb-shadow);
}
html body .mu-native-commande.mu-native-commande .mu-native-resume__tete { display: flex; align-items: flex-start; gap: 16px; margin: 0 0 18px; }
html body .mu-native-commande.mu-native-commande .mu-native-resume__icone {
  flex: none; display: grid; place-items: center; width: 54px; height: 54px; border-radius: 18px;
  background: var(--mb-ok-soft); color: var(--mb-ok); box-shadow: inset 0 0 0 1px rgba(15, 110, 63, .14);
}
html body .mu-native-commande.mu-native-commande .mu-native-resume__icone svg { display: block; width: 28px; height: 28px; }
html body .mu-native-commande.mu-native-commande .mu-native-resume__textes { min-width: 0; }
html body .mu-native-commande.mu-native-commande .mu-native-resume__merci { margin: 0 0 2px; font-size: 14.5px; font-weight: 700; line-height: 1.4; color: var(--mb-ok); }
html body .mu-native-commande.mu-native-commande .mu-native-resume__textes h1 {
  margin: 0 0 6px; font-size: clamp(24px, 3.4vw, 30px); font-weight: 800; line-height: 1.2; color: var(--mb-ink); letter-spacing: -.01em;
}
html body .mu-native-commande.mu-native-commande .mu-native-resume__meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0; font-size: 14px; line-height: 1.5; color: var(--mb-muted);
}
html body .mu-native-commande.mu-native-commande .mu-native-pastille {
  display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 11px; border-radius: 999px;
  background: var(--mb-warn-soft); color: var(--mb-warn); font-size: 12.5px; font-weight: 700; white-space: nowrap;
}
html body .mu-native-commande.mu-native-commande .mu-native-pastille::before {
  content: ""; width: 14px; height: 14px; background: currentColor;
  -webkit-mask: var(--mb-i-clock) center / contain no-repeat; mask: var(--mb-i-clock) center / contain no-repeat;
}
/* Lignes de la commande */
html body .mu-native-commande.mu-native-commande table.mu-native-lignes {
  width: 100%; margin: 0; border: 0; border-collapse: separate; border-spacing: 0; background: var(--mb-soft); border-radius: 16px; overflow: hidden;
}
html body .mu-native-commande.mu-native-commande .mu-native-lignes caption.mu-native-lignes__titre {
  caption-side: top; padding: 0 0 8px; text-align: start; font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--mb-muted);
}
html body .mu-native-commande.mu-native-commande .mu-native-lignes td {
  padding: 13px 16px; border: 0; border-bottom: 1px solid var(--mb-line); background: none;
  font-size: 15px; line-height: 1.45; color: var(--mb-ink); vertical-align: middle;
}
html body .mu-native-commande.mu-native-commande .mu-native-lignes td:first-child { unicode-bidi: plaintext; text-align: left; }
html body .mu-native-commande.mu-native-commande .mu-native-lignes td:last-child { text-align: end; white-space: nowrap; }
html body .mu-native-commande.mu-native-commande .mu-native-lignes td del { margin-inline-end: 6px; font-size: 13.5px; color: var(--mb-muted); }
html body .mu-native-commande.mu-native-commande .mu-native-lignes td strong { font-weight: 700; color: var(--mb-ink); }
/* Fond blanc porte par la rangee (sur les cellules, une jointure sous-pixel laissait voir le fond). */
html body .mu-native-commande.mu-native-commande .mu-native-lignes tr.mu-native-lignes__total { background: #fff; }
html body .mu-native-commande.mu-native-commande .mu-native-lignes tr.mu-native-lignes__total td { border-bottom: 0; background: none; box-shadow: inset 0 1px 0 var(--mb-line-strong); padding-block: 16px; }
html body .mu-native-commande.mu-native-commande .mu-native-lignes tr.mu-native-lignes__total td:first-child strong { font-size: 16px; font-weight: 800; }
html body .mu-native-commande.mu-native-commande .mu-native-lignes tr.mu-native-lignes__total td:last-child strong { font-size: 24px; font-weight: 800; color: var(--mb-brand-deep); letter-spacing: -.01em; }
/* Section « Comment payer » : titre de section, puis le composant tel quel */
html body .mu-native-commande.mu-native-commande .mu-native-section--paiement { margin: 32px 0 20px; }
html body .mu-native-commande.mu-native-commande .mu-native-section__titre {
  display: flex; align-items: center; gap: 12px; margin: 0 0 14px; padding: 0 4px;
  font-size: 13px; font-weight: 800; line-height: 1.4; letter-spacing: .07em; text-transform: uppercase; color: var(--mb-muted);
}
html body .mu-native-commande.mu-native-commande .mu-native-section__titre::after { content: ""; flex: 1 1 auto; height: 1px; background: var(--mb-line-strong); }
html body .mu-native-commande.mu-native-commande .mu-native-section--paiement > .mupay { margin: 0 auto; }
html body .mu-native-commande.mu-native-commande .mu-native-instructions { white-space: pre-line; unicode-bidi: plaintext; text-align: start; font-size: 15px; line-height: 1.8; }
/* Carte « Envoyez-nous votre commande » */
html body .mu-native-commande.mu-native-commande .mu-native-carte--contact > h2 { margin: 0 0 6px; font-size: 18px; font-weight: 800; line-height: 1.3; color: var(--mb-ink); }
html body .mu-native-commande.mu-native-commande .mu-native-carte--contact > p { margin: 0 0 16px; font-size: 14.5px; line-height: 1.6; color: var(--mb-muted); }
/* Carte secondaire (confirmation.php, quand le composant de paiement a deja ses boutons d'envoi) :
   bandeau discret, boutons blancs a icone coloree ; tous les liens restent dans la page. */
html body .mu-native-commande.mu-native-commande .mu-native-carte--discret {
  background: transparent; border: 1.5px dashed var(--mb-line-strong); box-shadow: none;
}
html body .mu-native-commande.mu-native-commande .mu-native-carte--discret > h2 { font-size: 17px; }
html body .mu-native-commande.mu-native-commande .mu-native-carte--discret .mu-native-contact :is(a.mu-native-btn, button.mu-native-copier) {
  background: #fff; color: var(--mb-ink) !important; /* api.php : .mu-native-btn{color:#fff!important} */
  box-shadow: inset 0 0 0 1.5px var(--mb-line-strong);
}
html body .mu-native-commande.mu-native-commande .mu-native-carte--discret .mu-native-contact :is(a.mu-native-btn, button.mu-native-copier):is(:hover, :focus, :active) {
  color: var(--mb-ink) !important; background: var(--mb-soft); box-shadow: inset 0 0 0 1.5px #b9b2d6;
}
html body .mu-native-commande.mu-native-commande .mu-native-carte--discret .mu-native-contact a.mu-native-btn--whatsapp::before { background: #15803d; }
html body .mu-native-commande.mu-native-commande .mu-native-carte--discret .mu-native-contact a.mu-native-btn--messenger::before { background: #0a6fc2; }
html body .mu-native-commande.mu-native-commande .mu-native-carte--discret .mu-native-contact a.mu-native-btn--telephone::before { background: var(--mb-brand-deep); }
/* Sorties */
html body .mu-native-commande.mu-native-commande .mu-native-commande__sorties { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 8px; }
html body .mu-native-commande.mu-native-commande .mu-native-commande__sorties a.tutor-btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 46px; height: auto; margin: 0; padding: 10px 22px;
  border: 1.5px solid var(--mb-line-strong); border-radius: 14px; background: #fff; box-shadow: none;
  color: var(--mb-ink); font-size: 15px; font-weight: 700; line-height: 1.3; transition: border-color .2s ease, color .2s ease, background-color .2s ease;
}
html body .mu-native-commande.mu-native-commande .mu-native-commande__sorties a.tutor-btn.tutor-btn-secondary { border-color: rgba(91, 43, 214, .45); color: var(--mb-brand-deep); }
html body .mu-native-commande.mu-native-commande .mu-native-commande__sorties a.tutor-btn:is(:hover, :focus-visible) { border-color: var(--mb-brand); color: var(--mb-brand-deep); background: var(--mb-brand-soft); }

/* ------------------------------------------------------------------------------------------------
   8. Boutons de contact (confirmation, avis « boutique fermee », cartes de l'espace eleve)
   ------------------------------------------------------------------------------------------------ */
/* Rangee de boutons : flex avec croissance (chaque rangee est remplie, pas de bouton isole a gauche). */
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact.mu-native-contact {
  display: flex; flex-wrap: wrap; gap: 10px; margin: 0;
}
html body :is(.mu-native-commande, .mu-native-fermeture) .mu-native-contact :is(a.mu-native-btn, button.mu-native-copier) { flex: 1 1 auto; }
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact a.mu-native-btn,
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact button.mu-native-copier {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; height: auto; margin: 0;
  padding: 10px 16px; border: 0; border-radius: 12px; box-shadow: none; cursor: pointer;
  font-family: inherit; font-size: 14.5px; font-weight: 700; line-height: 1.2; letter-spacing: normal; text-decoration: none; white-space: nowrap;
  transition: transform .2s var(--mb-ease), filter .2s ease, box-shadow .2s ease, background-color .2s ease;
}
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact a.mu-native-btn::before,
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact button.mu-native-copier::before {
  content: ""; flex: none; width: 18px; height: 18px; background: currentColor;
  -webkit-mask: var(--mb-i-tel) center / contain no-repeat; mask: var(--mb-i-tel) center / contain no-repeat;
}
/* Couleurs pleines, texte blanc >= 4,5:1 (WhatsApp #15803d : 5,0:1 ; Messenger des #0a6fc2 : 5,2:1). */
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact a.mu-native-btn--whatsapp { background: #15803d; color: #fff; }
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact a.mu-native-btn--whatsapp::before { -webkit-mask-image: var(--mb-i-wa); mask-image: var(--mb-i-wa); }
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact a.mu-native-btn--messenger { background: linear-gradient(135deg, #0a6fc2, #8a2be2); color: #fff; }
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact a.mu-native-btn--messenger::before { -webkit-mask-image: var(--mb-i-ms); mask-image: var(--mb-i-ms); }
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact a.mu-native-btn--telephone { background: var(--mb-ink); color: #fff; }
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact button.mu-native-copier {
  background: #fff; color: var(--mb-ink); box-shadow: inset 0 0 0 1.5px var(--mb-line-strong);
}
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact button.mu-native-copier::before { -webkit-mask-image: var(--mb-i-copy); mask-image: var(--mb-i-copy); }
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact :is(a.mu-native-btn, button.mu-native-copier):hover { transform: translateY(-1px); filter: brightness(1.06); }
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact a.mu-native-btn:is(:hover, :focus, :active) { color: #fff; }
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact button.mu-native-copier:is(:hover, :focus, :active) { background: var(--mb-soft); color: var(--mb-ink); }
/* « Appeler le 27 950 555 » : l'espace de la rangee flex s'ajoutait a l'espace du texte. */
html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact bdi { margin-inline-start: -4px; font-weight: 800; }

/* ------------------------------------------------------------------------------------------------
   9. Avis « boutique fermee » (fermeture.php) a la place du panier et de la validation
   ------------------------------------------------------------------------------------------------ */
html body .mu-native-fermeture.mu-native-fermeture:not(.mu-native-fermeture--compact) {
  position: relative; max-width: 640px; margin: 8px auto; padding: 36px clamp(20px, 5vw, 44px) 32px;
  background: var(--mb-surface); border: 1px solid var(--mb-line); border-radius: var(--mb-radius-lg); box-shadow: var(--mb-shadow);
  color: var(--mb-ink); text-align: center;
}
html body .mu-native-fermeture.mu-native-fermeture:not(.mu-native-fermeture--compact)::before {
  content: ""; display: block; width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 20px;
  background: var(--mb-warn-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z' fill='none' stroke='%237a4a00' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 30px no-repeat;
}
html body .mu-native-fermeture.mu-native-fermeture:not(.mu-native-fermeture--compact) > strong {
  display: block; margin: 0 0 8px; font-size: 22px; font-weight: 800; line-height: 1.3; color: var(--mb-ink);
}
html body .mu-native-fermeture.mu-native-fermeture:not(.mu-native-fermeture--compact) > p { margin: 0 auto 22px; max-width: 480px; font-size: 15px; line-height: 1.7; color: var(--mb-muted); }
html body .mu-native-fermeture.mu-native-fermeture:not(.mu-native-fermeture--compact) .mu-native-contact { justify-content: center; }

/* ------------------------------------------------------------------------------------------------
   10. Espace eleve : carte d'une commande en attente (Compte > Facturation, Tutor 4)
   ------------------------------------------------------------------------------------------------ */
/* Deux regles distinctes : sans :has(), une liste commune serait ignoree en entier. */
html body .tutor-billing-card.mu-native-carte-attente .tutor-badge-rounded {
  background: var(--mb-warn-soft); color: var(--mb-warn); border-color: transparent; font-weight: 700; letter-spacing: normal;
}
html body .tutor-billing-card:has(.mu-native-carte-commande) .tutor-badge-rounded {
  background: var(--mb-warn-soft); color: var(--mb-warn); border-color: transparent; font-weight: 700; letter-spacing: normal;
}
/* Montant : la donnee principale de la carte, plus lisible que les boutons. */
html body .tutor-billing-card.mu-native-carte-attente .tutor-billing-card-amount { font-size: 18px; font-weight: 700; letter-spacing: normal; }
html body .tutor-billing-card:has(.mu-native-carte-commande) .tutor-billing-card-amount { font-size: 18px; font-weight: 700; letter-spacing: normal; }
html body .mu-native-carte-commande.mu-native-carte-commande {
  width: 100%; max-width: 320px; margin-top: 10px; display: flex; flex-direction: column; align-items: stretch; gap: 8px; text-align: start;
  font-family: inherit; /* police de l'espace eleve Tutor 4 */
}
/* « Comment payer » : seul bouton plein de la carte. */
html body .mu-native-carte-commande.mu-native-carte-commande a.mu-native-payer.tutor-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 44px; height: auto; margin: 0; padding: 9px 16px !important; /* .tutor-btn-link */
  border: 0; border-radius: 12px; background: var(--mb-cta); box-shadow: 0 10px 22px -14px rgba(91, 43, 214, .7);
  color: #fff; font-size: 14.5px; font-weight: 800; line-height: 1.2; text-decoration: none; transition: transform .2s var(--mb-ease), filter .2s ease;
}
html body .mu-native-carte-commande.mu-native-carte-commande a.mu-native-payer.tutor-btn::after {
  content: ""; position: static; flex: none; width: 18px; height: 18px; background: currentColor; transition: none;
  -webkit-mask: var(--mb-i-arrow) center / contain no-repeat; mask: var(--mb-i-arrow) center / contain no-repeat;
}
html body .mu-native-carte-commande.mu-native-carte-commande a.mu-native-payer.tutor-btn:is(:hover, :focus-visible) { color: #fff; filter: brightness(1.08); transform: translateY(-1px); }
/* Contacts : teintes douces (pas quatre boutons satures empiles), cibles de 40 px. */
html body .mu-native-carte-commande.mu-native-carte-commande .mu-native-contact.mu-native-contact {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin: 0;
}
html body .mu-native-carte-commande.mu-native-carte-commande .mu-native-contact :is(a.mu-native-btn, button.mu-native-copier) {
  min-height: 40px; padding: 7px 10px; border-radius: 10px; font-size: 13px; gap: 6px; box-shadow: none;
}
html body .mu-native-carte-commande.mu-native-carte-commande .mu-native-contact :is(a.mu-native-btn, button.mu-native-copier)::before { width: 15px; height: 15px; }
/* Espace de rangee de 6 px ici : 2 px de moins suffisent pour un seul espace avant le numero. */
html body .mu-native-carte-commande.mu-native-carte-commande .mu-native-contact bdi { margin-inline-start: -2px; }
/* color !important : api.php pose .mu-native-btn{color:#fff!important}. */
html body .mu-native-carte-commande.mu-native-carte-commande .mu-native-contact a.mu-native-btn--whatsapp { background: #e8f6ee; color: #11602f !important; }
html body .mu-native-carte-commande.mu-native-carte-commande .mu-native-contact a.mu-native-btn--messenger { background: #eaf1ff; color: #1d4fb8 !important; }
html body .mu-native-carte-commande.mu-native-carte-commande .mu-native-contact a.mu-native-btn--telephone { grid-column: 1 / -1; background: #f3f2f7; color: var(--mb-ink) !important; }
html body .mu-native-carte-commande.mu-native-carte-commande .mu-native-contact a.mu-native-btn:is(:hover, :focus-visible) { filter: brightness(.95); transform: none; }
html body .mu-native-carte-commande.mu-native-carte-commande .mu-native-contact button.mu-native-copier {
  grid-column: 1 / -1; min-height: 40px; padding: 4px 10px; background: transparent; box-shadow: none; color: var(--mb-brand-deep);
}
html body .mu-native-carte-commande.mu-native-carte-commande .mu-native-contact button.mu-native-copier:is(:hover, :focus-visible) { background: var(--mb-brand-soft); color: var(--mb-brand-deep); transform: none; filter: none; }

/* ------------------------------------------------------------------------------------------------
   11. Tablettes et telephones
   ------------------------------------------------------------------------------------------------ */
@media (min-width: 992px) {
  /* Carte recapitulative alignee sur la liste des articles (titre de 42 px + 16 px de marge). */
  html body .tutor-cart-page.tutor-cart-page .tutor-container > .tutor-row > .tutor-col-lg-4 { margin-top: 58px; }
}
@media (max-width: 991.98px) {
  html body .tutor-cart-page.tutor-cart-page .tutor-container > .tutor-row { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  html body .tutor-cart-page.tutor-cart-page .tutor-container > .tutor-row > .tutor-col-lg-4 { position: static; }
}
@media (max-width: 860px) {
  html body .tutor-checkout-page.tutor-checkout-page #tutor-checkout-form > .tutor-row { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  html body .tutor-checkout-page.tutor-checkout-page #tutor-checkout-form > .tutor-row > [tutor-checkout-details] { position: static; }
}
@media (max-width: 575.98px) {
  html body { --mb-radius-lg: 20px; }
  html body .rbt-page-area:has(.tutor-cart-page, .tutor-checkout-page, .mu-native-fermeture) { padding: 22px 0 48px; }
  html body .mu-boutique-etapes.mu-boutique-etapes { margin-bottom: 22px; }
  html body .mu-boutique-etapes.mu-boutique-etapes .mu-boutique-etapes__item > :is(a, span) { font-size: 12.5px; }
  html body .mu-boutique-etapes.mu-boutique-etapes .mu-boutique-etapes__num { width: 30px; height: 30px; font-size: 13px; }
  html body .mu-boutique-etapes.mu-boutique-etapes .mu-boutique-etapes__item + .mu-boutique-etapes__item::before { top: 14px; inset-inline-end: calc(50% + 22px); width: calc(100% - 44px); }
  html body .mu-boutique-etapes.mu-boutique-etapes .is-faite .mu-boutique-etapes__num::after { inset: 7px; }

  html body .tutor-cart-page.tutor-cart-page .tutor-row > .tutor-col-lg-8 > h3 { font-size: 21px; }
  html body .tutor-cart-page.tutor-cart-page .tutor-row > .tutor-col-lg-8 > h3::before { width: 36px; height: 36px; border-radius: 12px; }
  html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-item {
    grid-template-columns: 92px minmax(0, 1fr); grid-template-areas: "vignette titre" "prix prix"; gap: 12px 14px; align-items: start;
    margin: 0 14px; padding: 14px 0;
  }
  html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-item .tutor-cart-course-thumb { grid-area: vignette; width: 92px; border-radius: 12px; }
  html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-item .tutor-cart-course-title { grid-area: titre; gap: 6px; }
  html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-title h5 { font-size: 15px; }
  html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-item .tutor-cart-course-price-wrapper {
    grid-area: prix; flex-direction: row; align-items: center; justify-content: space-between; min-width: 0;
    padding: 8px 8px 8px 12px; border-radius: 12px; background: var(--mb-soft);
  }
  html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-price-wrapper .tutor-cart-course-price { flex-direction: row-reverse; align-items: baseline; gap: 8px; }
  html body .tutor-cart-page.tutor-cart-page .tutor-container .tutor-cart-course-price .tutor-fw-bold { font-size: 17px; }
  /* !important : la regle de bureau l'est deja (contre .tutor-btn-link{padding:0!important}). */
  html body .tutor-cart-page.tutor-cart-page .tutor-cart-course-price-wrapper button.tutor-cart-remove-button { height: 40px; padding: 0 12px !important; background: #fff; border-color: var(--mb-line); }
  html body :is(.tutor-cart-page, .tutor-checkout-page) :is(.mu-boutique-famille, .mu-boutique-duree, .tutor-checkout-course-bundle-badge) { height: 22px; padding: 0 8px; font-size: 11.5px; }
  html body .tutor-cart-page.tutor-cart-page .tutor-container > .tutor-row > .tutor-col-lg-4 { padding: 18px; }
  html body .tutor-cart-page.tutor-cart-page .tutor-cart-empty-state { padding: 28px 18px 30px; }
  html body .tutor-cart-page.tutor-cart-page .tutor-cart-empty-state p { font-size: 19px; }
  html body .tutor-cart-page.tutor-cart-page .tutor-cart-empty-state a.tutor-btn { width: 100%; min-width: 0; }

  html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-details .tutor-checkout-details-inner,
  html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing .mu-checkout-carte,
  html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing .tutor-payment-method-wrapper { padding: 18px 16px; }
  /* Badges deja montres dans le panier : le recapitulatif raccourcit, le formulaire remonte. */
  html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-item > .tutor-d-flex { display: none !important; /* .tutor-d-flex !important */ }
  html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-item { padding: 12px 0; }
  html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-thumb-title { grid-template-columns: 52px minmax(0, 1fr); gap: 12px; }
  html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-thumb-title img { width: 52px; height: 38px; border-radius: 9px; }
  html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-title { font-size: 14.5px; }
  html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-details-inner .tutor-checkout-summary-item > .tutor-checkout-grand-total { font-size: 23px; }
  html body .tutor-checkout-page.tutor-checkout-page .mu-boutique-moyens__logos { gap: 6px; }
  html body .tutor-checkout-page.tutor-checkout-page .mu-boutique-moyens__logos li { width: 52px; height: 36px; padding: 4px 5px; }
  html body .tutor-checkout-page.tutor-checkout-page .mu-boutique-moyens__logos img { max-height: 24px; }

  html body .mu-native-commande.mu-native-commande { padding: 22px 16px 48px; }
  html body .mu-native-commande.mu-native-commande .mu-native-resume__tete { gap: 12px; }
  html body .mu-native-commande.mu-native-commande .mu-native-resume__icone { width: 44px; height: 44px; border-radius: 14px; }
  html body .mu-native-commande.mu-native-commande .mu-native-resume__icone svg { width: 24px; height: 24px; }
  html body .mu-native-commande.mu-native-commande .mu-native-lignes td { padding: 12px; font-size: 14.5px; }
  html body .mu-native-commande.mu-native-commande .mu-native-lignes td:last-child { white-space: normal; }
  html body .mu-native-commande.mu-native-commande .mu-native-lignes td del { display: block; margin: 0; }
  /* « COMMENT PAYER — VIREMENT / VERSEMENT / D17 » sur une ligne, sans trait decoratif. */
  html body .mu-native-commande.mu-native-commande .mu-native-section__titre { font-size: 12px; letter-spacing: .04em; text-wrap: balance; }
  html body .mu-native-commande.mu-native-commande .mu-native-section__titre::after { display: none; }
  html body :is(.mu-native-commande, .mu-native-fermeture) .mu-native-contact :is(a.mu-native-btn, button.mu-native-copier) { flex: 1 1 calc(50% - 5px); }
  html body .mu-native-commande.mu-native-commande .mu-native-commande__sorties a.tutor-btn { flex: 1 1 100%; }

  html body .mu-native-carte-commande.mu-native-carte-commande { max-width: none; }
}
@media (max-width: 399.98px) {
  html body .tutor-checkout-page.tutor-checkout-page .mu-native-billing-minimal > .tutor-row { grid-template-columns: minmax(0, 1fr); }
}
/* Si une langue RTL est un jour activee : titres alignes a droite. */
html[dir="rtl"] body .tutor-cart-page.tutor-cart-page .tutor-cart-course-title h5 a,
html[dir="rtl"] body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-title a,
html[dir="rtl"] body .mu-native-commande.mu-native-commande .mu-native-lignes td:first-child { text-align: right; }

/* ------------------------------------------------------------------------------------------------
   12. Mode sombre du theme (body.active-dark-mode). Fond de page sombre, cartes blanches.
       Histudy force alors en blanc (!important) les h1-h6, les titres des articles et les lignes
       des recapitulatifs : a l'interieur des cartes, l'encre est remise (!important, specificite
       superieure) ; hors des cartes (etapes, titre du panier, consentements), texte clair.
   ------------------------------------------------------------------------------------------------ */
html body.active-dark-mode .rbt-page-area:has(.tutor-cart-page, .tutor-checkout-page, .mu-native-fermeture) { background: transparent; }
html body.active-dark-mode .mu-native-commande.mu-native-commande { background: transparent; box-shadow: none; }
html body.active-dark-mode .mu-boutique-etapes.mu-boutique-etapes .mu-boutique-etapes__item > :is(a, span) { color: #c9c5dd; }
html body.active-dark-mode .mu-boutique-etapes.mu-boutique-etapes .is-courante .mu-boutique-etapes__txt { color: #fff; }
html body.active-dark-mode .mu-boutique-etapes.mu-boutique-etapes .is-faite .mu-boutique-etapes__txt { color: #6ee7a8; }
html body.active-dark-mode .tutor-cart-page.tutor-cart-page .tutor-row > .tutor-col-lg-8 > h3 { color: #fff !important; }
html body.active-dark-mode .mu-native-commande.mu-native-commande .mu-native-section__titre { color: #e5e3f0 !important; }
html body.active-dark-mode .mu-native-commande.mu-native-commande .mu-native-carte--discret { background: var(--mb-surface); border-style: solid; border-color: var(--mb-line); }
/* Titres dans les cartes */
html body.active-dark-mode .tutor-cart-page.tutor-cart-page .tutor-container .tutor-row > .tutor-col-lg-4 > h3,
html body.active-dark-mode .tutor-cart-page.tutor-cart-page .tutor-cart-course-title h5,
html body.active-dark-mode .tutor-cart-page.tutor-cart-page .tutor-cart-course-title h5 a,
html body.active-dark-mode .tutor-cart-page.tutor-cart-page .tutor-cart-empty-state p,
html body.active-dark-mode .tutor-checkout-page.tutor-checkout-page :is(.tutor-checkout-details-inner, .mu-checkout-carte, .tutor-payment-method-wrapper) > h5,
html body.active-dark-mode .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-title,
html body.active-dark-mode .tutor-checkout-page.tutor-checkout-page .tutor-checkout-course-title a,
html body.active-dark-mode .mu-native-commande.mu-native-commande .mu-native-carte :is(h1, h2, h3),
html body.active-dark-mode .mu-native-fermeture.mu-native-fermeture > strong,
html body.active-dark-mode .tutor-checkout-page.tutor-checkout-page .tutor-checkout-details .tutor-text-right .tutor-fw-bold { color: var(--mb-ink) !important; }
/* Lignes des recapitulatifs (Histudy : blanc !important) */
html body.active-dark-mode .tutor-cart-page.tutor-cart-page .tutor-cart-summery .tutor-cart-summery-item,
html body.active-dark-mode .tutor-checkout-page.tutor-checkout-page .tutor-checkout-summary-item { color: var(--mb-muted) !important; }
html body.active-dark-mode .tutor-cart-page.tutor-cart-page .tutor-cart-summery .tutor-cart-summery-bottom .tutor-cart-summery-item,
html body.active-dark-mode .tutor-checkout-page.tutor-checkout-page .tutor-checkout-details-inner > .tutor-pt-12 .tutor-checkout-summary-item:first-child { color: var(--mb-ink) !important; }
html body.active-dark-mode .tutor-cart-page.tutor-cart-page .tutor-cart-course-price .tutor-cart-discount-price,
html body.active-dark-mode .tutor-checkout-page.tutor-checkout-page .tutor-checkout-details .tutor-checkout-discount-price { color: var(--mb-muted) !important; }
/* Traits sombres d'Histudy a l'interieur des cartes blanches : retires (nos separateurs restent). */
html body.active-dark-mode .tutor-cart-page.tutor-cart-page .tutor-cart-course-list .tutor-cart-course-item { border-bottom: 0; }
html body.active-dark-mode .tutor-checkout-page.tutor-checkout-page .tutor-checkout-details .tutor-checkout-detail-item { border-bottom: 0; }
/* Hors des cartes : consentement (case a cocher) */
html body.active-dark-mode .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing-inner > .tutor-mt-20 .tutor-form-check { color: #e5e3f0; }
html body.active-dark-mode .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing-inner > .tutor-mt-20 .tutor-form-check :is(span, label) { color: #e5e3f0; }
html body.active-dark-mode .tutor-checkout-page.tutor-checkout-page .tutor-checkout-billing-inner > .tutor-mt-20 .tutor-form-check a { color: #c4b5fd; }

/* ------------------------------------------------------------------------------------------------
   13. Mouvement reduit (trois selecteurs : un pseudo-element n'est pas valide dans :is()).
   ------------------------------------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  html body :is(.mu-boutique-etapes, .tutor-cart-page, .tutor-checkout-page, .mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) *,
  html body :is(.mu-boutique-etapes, .tutor-cart-page, .tutor-checkout-page, .mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) *::before,
  html body :is(.mu-boutique-etapes, .tutor-cart-page, .tutor-checkout-page, .mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) *::after {
    transition: none !important; animation-duration: .01ms !important;
  }
  html body :is(.tutor-cart-page, .tutor-checkout-page, .mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) :is(a, button):hover { transform: none !important; }
}

/* ------------------------------------------------------------------------------------------------
   14. Couleurs forcees (Windows, contraste eleve) : radio natif, bordures visibles.
   ------------------------------------------------------------------------------------------------ */
@media (forced-colors: active) {
  html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-payment-item input[type="radio"].tutor-form-check-input { appearance: auto !important; -webkit-appearance: radio !important; }
  html body .tutor-checkout-page.tutor-checkout-page .tutor-checkout-payment-options .tutor-checkout-payment-item,
  html body :is(.mu-native-commande, .mu-native-fermeture, .mu-native-carte-commande) .mu-native-contact :is(a.mu-native-btn, button.mu-native-copier) { border: 1px solid ButtonText; }
  html body .mu-boutique-etapes.mu-boutique-etapes .mu-boutique-etapes__num { forced-color-adjust: none; }
}
