/* Du bon de commande au remerciement, à l'identique de Podia (valeurs calculées relevées le 19/10 sur
   school.lefrugalisme.com : bon de commande, aperçu de la page « Checkout success », page d'upsells de l'aide).
   Trois pages ont ce gabarit : commande (/<slug>/buy), upsells après paiement et remerciement (/merci).
   En-tête et pied = « site » de Podia (Poppins) ; cartes de la commande = composants de l'interface (Inter 3.007).
   Aucun style en ligne (CSP stricte) : les comportements vivent dans /assets/js/ecole.js. */

/* Inter 3.7 en deux fichiers par graisse (levier C du 01/11) : « -latin » (≈ 39 Ko au lieu de ≈ 120) porte TOUT ce que
   l'école affiche aujourd'hui (latin, latin étendu A, ponctuation, €, ™, flèches, et chaque caractère relevé dans la
   base et le code qu'Inter dessine) ; le fichier complet d'origine sert le reste (grec, cyrillique, vietnamien…), et
   le navigateur ne le télécharge que si une page en contient. Plages disjointes : un caractère = une seule police.
   Mêmes tracés, mêmes chasses, mêmes crénages : façonnage HarfBuzz identique sur 143 501 lignes de texte réel × 4
   graisses (0 écart). Ne pas toucher aux plages sans refaire cette vérification. */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/Inter-3.7-Regular.woff2") format("woff2");
  unicode-range: U+180-1C3, U+1C5-1F2, U+1F4-2B2, U+2B4-2BA, U+2BD-2C5, U+2C7-2D9, U+2DB, U+2DD-2FF, U+303, U+305-307, U+309-31E, U+321-326, U+328, U+32A-346, U+348-36E, U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3E1, U+3F0-49D, U+4A0-4FF, U+52F, U+146B, U+1D43, U+1D47-1D48, U+1D4D, U+1D4F-1D50, U+1D52, U+1D56-1D58, U+1D5B, U+1D62-1D65, U+1D9C, U+1DA0, U+1DBB, U+1DBF-1DF5, U+1DFC-1F15, U+1F18-1F1D, U+1F20-1F45, U+1F48-1F4D, U+1F50-1F57, U+1F59, U+1F5B, U+1F5D, U+1F5F-1F7D, U+1F80-1FB4, U+1FB6-1FC4, U+1FC6-1FD3, U+1FD6-1FDB, U+1FDD-1FEF, U+1FF2-1FF4, U+1FF6-1FFE, U+2070-2071, U+2074-208E, U+2090-209C, U+20A0-20AB, U+20AD-20BE, U+20DB-20DC, U+20E3, U+20E8, U+20F0, U+2100-2101, U+2103, U+2105-2106, U+2109, U+2113, U+2116-2117, U+211E-2121, U+2123, U+2126, U+212A-212B, U+212E, U+2132, U+213B, U+214D, U+214F, U+2153, U+215A-2188, U+2202, U+2205-2206, U+220F, U+2211, U+221A, U+221E, U+222B, U+2264, U+2303, U+2305, U+2318, U+2325-2327, U+232B, U+2387, U+238B, U+23CE-23CF, U+2423, U+25B2, U+25BC, U+25C0, U+25C6-25C7, U+25CA-25CB, U+25E6, U+2600, U+2605-2606, U+263C, U+2661, U+2665, U+2717, U+2756, U+27EF, U+27F5-27F7, U+2B06, U+2C7C, U+2C7F, U+2DFF, U+2E18, U+A69F, U+A7FF, U+A92E, U+E000, U+E002-E12A, U+F6C3, U+FE20-FE2D, U+1F16A-1F16B; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/Inter-3.7-Regular-latin.woff2") format("woff2");
  unicode-range: U+0000-0148, U+014A-017F, U+02B3, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0302, U+0304, U+0308, U+0327, U+0329, U+036F, U+1D49, U+2000-200B, U+2010-2027, U+202F-205F, U+20AC, U+2122, U+2190-2199, U+21A9-21AA, U+21B0-21B1, U+21B3-21B5, U+21BA-21BB, U+21DE-21DF, U+21E4-21E5, U+21E7, U+21EA, U+2212, U+2248, U+2260, U+2265, U+25BA, U+25CF, U+2713, U+2764, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/Inter-3.7-Medium.woff2") format("woff2");
  unicode-range: U+180-1C3, U+1C5-1F2, U+1F4-2B2, U+2B4-2BA, U+2BD-2C5, U+2C7-2D9, U+2DB, U+2DD-2FF, U+303, U+305-307, U+309-31E, U+321-326, U+328, U+32A-346, U+348-36E, U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3E1, U+3F0-49D, U+4A0-4FF, U+52F, U+146B, U+1D43, U+1D47-1D48, U+1D4D, U+1D4F-1D50, U+1D52, U+1D56-1D58, U+1D5B, U+1D62-1D65, U+1D9C, U+1DA0, U+1DBB, U+1DBF-1DF5, U+1DFC-1F15, U+1F18-1F1D, U+1F20-1F45, U+1F48-1F4D, U+1F50-1F57, U+1F59, U+1F5B, U+1F5D, U+1F5F-1F7D, U+1F80-1FB4, U+1FB6-1FC4, U+1FC6-1FD3, U+1FD6-1FDB, U+1FDD-1FEF, U+1FF2-1FF4, U+1FF6-1FFE, U+2070-2071, U+2074-208E, U+2090-209C, U+20A0-20AB, U+20AD-20BE, U+20DB-20DC, U+20E3, U+20E8, U+20F0, U+2100-2101, U+2103, U+2105-2106, U+2109, U+2113, U+2116-2117, U+211E-2121, U+2123, U+2126, U+212A-212B, U+212E, U+2132, U+213B, U+214D, U+214F, U+2153, U+215A-2188, U+2202, U+2205-2206, U+220F, U+2211, U+221A, U+221E, U+222B, U+2264, U+2303, U+2305, U+2318, U+2325-2327, U+232B, U+2387, U+238B, U+23CE-23CF, U+2423, U+25B2, U+25BC, U+25C0, U+25C6-25C7, U+25CA-25CB, U+25E6, U+2600, U+2605-2606, U+263C, U+2661, U+2665, U+2717, U+2756, U+27EF, U+27F5-27F7, U+2B06, U+2C7C, U+2C7F, U+2DFF, U+2E18, U+A69F, U+A7FF, U+A92E, U+E000, U+E002-E12A, U+F6C3, U+FE20-FE2D, U+1F16A-1F16B; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/Inter-3.7-Medium-latin.woff2") format("woff2");
  unicode-range: U+0000-0148, U+014A-017F, U+02B3, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0302, U+0304, U+0308, U+0327, U+0329, U+036F, U+1D49, U+2000-200B, U+2010-2027, U+202F-205F, U+20AC, U+2122, U+2190-2199, U+21A9-21AA, U+21B0-21B1, U+21B3-21B5, U+21BA-21BB, U+21DE-21DF, U+21E4-21E5, U+21E7, U+21EA, U+2212, U+2248, U+2260, U+2265, U+25BA, U+25CF, U+2713, U+2764, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/Inter-3.7-SemiBold.woff2") format("woff2");
  unicode-range: U+180-1C3, U+1C5-1F2, U+1F4-2B2, U+2B4-2BA, U+2BD-2C5, U+2C7-2D9, U+2DB, U+2DD-2FF, U+303, U+305-307, U+309-31E, U+321-326, U+328, U+32A-346, U+348-36E, U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3E1, U+3F0-49D, U+4A0-4FF, U+52F, U+146B, U+1D43, U+1D47-1D48, U+1D4D, U+1D4F-1D50, U+1D52, U+1D56-1D58, U+1D5B, U+1D62-1D65, U+1D9C, U+1DA0, U+1DBB, U+1DBF-1DF5, U+1DFC-1F15, U+1F18-1F1D, U+1F20-1F45, U+1F48-1F4D, U+1F50-1F57, U+1F59, U+1F5B, U+1F5D, U+1F5F-1F7D, U+1F80-1FB4, U+1FB6-1FC4, U+1FC6-1FD3, U+1FD6-1FDB, U+1FDD-1FEF, U+1FF2-1FF4, U+1FF6-1FFE, U+2070-2071, U+2074-208E, U+2090-209C, U+20A0-20AB, U+20AD-20BE, U+20DB-20DC, U+20E3, U+20E8, U+20F0, U+2100-2101, U+2103, U+2105-2106, U+2109, U+2113, U+2116-2117, U+211E-2121, U+2123, U+2126, U+212A-212B, U+212E, U+2132, U+213B, U+214D, U+214F, U+2153, U+215A-2188, U+2202, U+2205-2206, U+220F, U+2211, U+221A, U+221E, U+222B, U+2264, U+2303, U+2305, U+2318, U+2325-2327, U+232B, U+2387, U+238B, U+23CE-23CF, U+2423, U+25B2, U+25BC, U+25C0, U+25C6-25C7, U+25CA-25CB, U+25E6, U+2600, U+2605-2606, U+263C, U+2661, U+2665, U+2717, U+2756, U+27EF, U+27F5-27F7, U+2B06, U+2C7C, U+2C7F, U+2DFF, U+2E18, U+A69F, U+A7FF, U+A92E, U+E000, U+E002-E12A, U+F6C3, U+FE20-FE2D, U+1F16A-1F16B; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/Inter-3.7-SemiBold-latin.woff2") format("woff2");
  unicode-range: U+0000-0148, U+014A-017F, U+02B3, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0302, U+0304, U+0308, U+0327, U+0329, U+036F, U+1D49, U+2000-200B, U+2010-2027, U+202F-205F, U+20AC, U+2122, U+2190-2199, U+21A9-21AA, U+21B0-21B1, U+21B3-21B5, U+21BA-21BB, U+21DE-21DF, U+21E4-21E5, U+21E7, U+21EA, U+2212, U+2248, U+2260, U+2265, U+25BA, U+25CF, U+2713, U+2764, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/Inter-3.7-Bold.woff2") format("woff2");
  unicode-range: U+180-1C3, U+1C5-1F2, U+1F4-2B2, U+2B4-2BA, U+2BD-2C5, U+2C7-2D9, U+2DB, U+2DD-2FF, U+303, U+305-307, U+309-31E, U+321-326, U+328, U+32A-346, U+348-36E, U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3E1, U+3F0-49D, U+4A0-4FF, U+52F, U+146B, U+1D43, U+1D47-1D48, U+1D4D, U+1D4F-1D50, U+1D52, U+1D56-1D58, U+1D5B, U+1D62-1D65, U+1D9C, U+1DA0, U+1DBB, U+1DBF-1DF5, U+1DFC-1F15, U+1F18-1F1D, U+1F20-1F45, U+1F48-1F4D, U+1F50-1F57, U+1F59, U+1F5B, U+1F5D, U+1F5F-1F7D, U+1F80-1FB4, U+1FB6-1FC4, U+1FC6-1FD3, U+1FD6-1FDB, U+1FDD-1FEF, U+1FF2-1FF4, U+1FF6-1FFE, U+2070-2071, U+2074-208E, U+2090-209C, U+20A0-20AB, U+20AD-20BE, U+20DB-20DC, U+20E3, U+20E8, U+20F0, U+2100-2101, U+2103, U+2105-2106, U+2109, U+2113, U+2116-2117, U+211E-2121, U+2123, U+2126, U+212A-212B, U+212E, U+2132, U+213B, U+214D, U+214F, U+2153, U+215A-2188, U+2202, U+2205-2206, U+220F, U+2211, U+221A, U+221E, U+222B, U+2264, U+2303, U+2305, U+2318, U+2325-2327, U+232B, U+2387, U+238B, U+23CE-23CF, U+2423, U+25B2, U+25BC, U+25C0, U+25C6-25C7, U+25CA-25CB, U+25E6, U+2600, U+2605-2606, U+263C, U+2661, U+2665, U+2717, U+2756, U+27EF, U+27F5-27F7, U+2B06, U+2C7C, U+2C7F, U+2DFF, U+2E18, U+A69F, U+A7FF, U+A92E, U+E000, U+E002-E12A, U+F6C3, U+FE20-FE2D, U+1F16A-1F16B; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/Inter-3.7-Bold-latin.woff2") format("woff2");
  unicode-range: U+0000-0148, U+014A-017F, U+02B3, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0302, U+0304, U+0308, U+0327, U+0329, U+036F, U+1D49, U+2000-200B, U+2010-2027, U+202F-205F, U+20AC, U+2122, U+2190-2199, U+21A9-21AA, U+21B0-21B1, U+21B3-21B5, U+21BA-21BB, U+21DE-21DF, U+21E4-21E5, U+21E7, U+21EA, U+2212, U+2248, U+2260, U+2265, U+25BA, U+25CF, U+2713, U+2764, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/Poppins-latin-400.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/Poppins-latin-700.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/Poppins-latin-500.woff2") format("woff2"); }

:root {
  --texte: #06040e;
  --attenue: #717073;
  --bordure: #d6d6d7;
  --gris: #ededed;
  --marque: #fcb900;
  --danger: #a01910;
  --succes: #006d3c;
}
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; }
body {
  min-height: 100vh; display: flex; flex-direction: column;
  font-family: "Inter", sans-serif; font-size: 14px; line-height: 24px; font-weight: 400; color: var(--texte); background: #fff;
}
a { color: inherit; }
img { max-width: 100%; }
.visuellement-cache { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 2px solid var(--texte); outline-offset: 2px; }
main { flex: 1 1 auto; display: flex; flex-direction: column; }

/* ---------- En-tête du site (noir, logo, « Panier » et « Rejoindre » ; menu sous 1025 px) ---------- */
.entete { background: #000; font-family: "Poppins", sans-serif; font-size: 16px; line-height: 27.4286px; position: relative; }
.entete__in { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 16px 20px; }
.entete--etroit .entete__in { max-width: 816px; margin: 0 auto; }
.entete__logo { display: flex; align-items: center; flex: 1 1 auto; text-decoration: none; }
.entete__logo img { display: block; width: 123px; height: 30px; }
.entete__droite { position: relative; display: flex; align-items: center; gap: 24px; flex: 0 0 auto; white-space: nowrap; }
.entete__bouton-menu { width: 24px; height: 24px; padding: 0; border: 0; background: none; color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.entete__bouton-menu svg { display: block; width: 24px; height: 24px; }
.entete__bouton-menu .i-fermer { display: none; }
.entete__bouton-menu[aria-expanded="true"] .i-burger { display: none; }
.entete__bouton-menu[aria-expanded="true"] .i-fermer { display: block; }
.entete__menu { position: absolute; top: 21.6px; right: 0; z-index: 1000; width: 160px; background: #fff; border-radius: 8px; box-shadow: 0 8px 16px rgba(26, 38, 45, .1); }
.entete__menu[hidden] { display: none; }
.entete__menu nav { display: flex; flex-direction: column; padding: 8px; }
.entete__menu a { display: block; padding: 4px 8px; border-radius: 8px; font-size: 12.8px; line-height: 23.04px; color: #1a262d; text-decoration: none; }
.entete__menu a:hover { background: rgba(26, 38, 45, .06); }
.entete__liens { display: none; align-items: center; gap: 24px; }
.entete__liens .lien { font-size: 16px; line-height: 27.4286px; }
.entete__liens .lien a { font-size: 12.8px; line-height: 23.04px; color: #fff; text-decoration: none; }
.entete__liens .lien a:hover { text-decoration: underline; }
.entete__rejoindre { display: block; padding: 8px 16px; border-radius: 2px; background: var(--marque); color: #040404; font-size: 12.8px; line-height: 23.04px; text-decoration: none; }
.entete__rejoindre:hover { filter: brightness(.95); }
.entete__compte { display: flex; align-items: center; text-decoration: none; }
.entete__avatar { width: 30px; height: 30px; border-radius: 50%; background: #6d5ce7; display: flex; align-items: center; justify-content: center; }
.entete__avatar svg { width: 19px; height: 19px; }
@media (min-width: 576px) { .entete__in { padding: 16px 32px; } }
@media (min-width: 992px) { .entete__in { padding: 16px 48px; } }
.entete--etroit .entete__in { padding-left: 20px; padding-right: 20px; }
@media (min-width: 1025px) {
  .entete__bouton-menu, .entete__menu { display: none; }
  .entete__liens { display: flex; }
  .entete__droite { min-height: 39px; }
}

/* ---------- Pied du site (noir, mentions de JBMC OÜ, réseaux, liens légaux) ---------- */
.pied { background: #0e0e0e; color: #fff; font-family: "Poppins", sans-serif; font-size: 16px; line-height: 27.4286px; }
.pied__in { padding: 40px 20px; }
@media (min-width: 576px) { .pied__in { padding: 40px 32px; } }
@media (min-width: 992px) { .pied__in { padding: 40px 48px; } }
.pied--etroit .pied__in { max-width: 864px; margin: 0 auto; padding-left: 20px; padding-right: 20px; }
.pied__corps { display: flex; flex-direction: column; align-items: flex-start; }
.pied__haut { width: 100%; display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 19.6px; }
.pied__infos { flex: 0 1 55%; min-width: 0; line-height: 28.8px; }
.pied__infos p { margin: 0 0 8.4px; }
.pied__infos p:last-child { margin-bottom: 16px; }
.pied__infos strong { font-weight: 500; }
.pied--etroit { line-height: 24px; }
.pied--etroit .pied__legal li { line-height: 24px; }
.pied--etroit .pied__infos p:last-child { margin-bottom: 0; }
.pied--etroit .pied__infos strong { font-weight: 700; }
.pied__infos a { color: #fff; text-decoration: underline; }
.pied__reseaux { flex: 0 1 37%; display: flex; align-items: center; gap: 14px; }
.pied__reseaux a { display: block; width: 24px; height: 27px; color: #fff; }
.pied__reseaux svg { display: block; width: 26px; height: 26px; margin: 1px 0 0 -1px; }
.pied__legal { margin: 11.2px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 5.6px 14px; }
.pied__legal li { line-height: 27.4286px; }
.pied__legal a { font-size: 12.8px; line-height: 23.04px; color: rgba(255, 255, 255, .4); text-decoration: none; }
.pied__legal a:hover { color: #fff; }
@media (max-width: 575.98px) {
  .pied__haut { flex-direction: column; }
  .pied__infos, .pied__reseaux { flex: 0 0 auto; width: 100%; }
}

/* ---------- Page de commande ---------- */
.cmd { padding: 20px; flex: 1 1 auto; width: 100%; max-width: 1440px; margin: 0 auto; }
@media (min-width: 576px) { .cmd { padding: 20px 32px; } }
@media (min-width: 992px) { .cmd { padding: 20px 48px; } }
.cmd__titre { margin: 0 0 16px; font-size: 18px; line-height: 24px; font-weight: 600; }
@media (min-width: 768px) { .cmd__titre { margin-bottom: 20px; } }
.cmd__grille { display: flex; flex-direction: column; gap: 20px; }
.cmd__principal { display: flex; flex-direction: column; gap: 32px; min-width: 0; }
@media (min-width: 920px) {
  .cmd__grille { display: grid; grid-template-columns: minmax(0, 1fr) clamp(320px, calc(100% - 972px), 372px); gap: 0 32px; align-items: start; }
}

.carte { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--bordure); border-radius: 8px; }
.carte__entete { padding: 20px 24px 0; }
.carte__corps { padding: 20px 24px; flex: 1 1 auto; }
.carte__titre { margin: 0; font-size: 16px; line-height: 24px; font-weight: 600; }
.carte__soustitre { margin: 4px 0 0; color: var(--attenue); }
.carte--paiement { padding-bottom: 28px; }
.carte__ligne { display: flex; align-items: center; justify-content: space-between; }
.carte__ligne > div { display: flex; flex-direction: column; min-width: 0; }
@media (max-width: 575.98px) {
  .carte { margin: 0 -20px; border-width: 1px 0; border-radius: 0; }
  .carte__entete { padding: 16px 20px 0; }
  .carte__corps { padding: 20px; }
}

.champ-groupe { margin: 0 0 12px; }
.champ-groupe label { display: inline-block; margin: 0 0 2px; font-size: 14px; line-height: 21.6px; font-weight: 500; }
.champ {
  display: block; width: 100%; padding: 4.752px 12px; background: #fff; color: var(--texte);
  font: inherit; font-size: 14px; line-height: 24px; border: 1px solid var(--bordure); border-radius: 8px; outline: 0; appearance: none;
}
.champ::placeholder { color: rgba(6, 4, 14, .4); }
.champ:focus { border-color: var(--texte); box-shadow: 0 0 0 3px rgba(6, 4, 14, .25); }
.champ-erreur { margin: 4px 0 0; color: var(--danger); font-size: 13px; line-height: 20px; }
.champ-aide { margin: 0 0 12px; color: var(--attenue); font-size: 13px; line-height: 20px; }
.suggestion { margin: 0 0 12px; padding: 10px 12px; background: #fffbeb; border: 1px solid #f5d27a; border-radius: 8px; font-size: 13px; line-height: 20px; }
.suggestion label { display: inline; font-weight: 400; margin: 0; font-size: 13px; line-height: 20px; }
.btn-lien { padding: 0; border: 0; background: none; color: var(--texte); font: inherit; text-decoration: underline; cursor: pointer; }
.cases { display: flex; flex-direction: column; gap: 12px; margin: 12px 0 0; }
.case { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; line-height: 20px; font-weight: 400; }
.case input { appearance: none; flex: none; width: 16px; height: 16px; margin: 2px 0 0; border-radius: 4px; background: #fff; box-shadow: inset 0 0 0 1px #8c8b8f; cursor: pointer; position: relative; }
.case input:checked { background: var(--texte); box-shadow: none; }
.case input:checked::after { content: ""; position: absolute; left: 5px; top: 2px; width: 4px; height: 8px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.case a { color: var(--texte); text-decoration: underline; }
.turnstile { margin: 0; min-height: 72px; }
/* « Continuer » (Podia : .mt-6.d-flex.justify-content-end, .btn-md.btn-dark) et « Modifier » (.btn-transparent-grey). */
.carte__actions { display: flex; justify-content: flex-end; margin: 24px 0 0; }
.carte__ligne > div:first-child { margin-right: 8px; }
.carte__modifier { flex: none; padding: 6px 12px; border: 0; border-radius: 8px; background: transparent; color: var(--attenue); font: inherit; font-weight: 500; line-height: 24px; text-decoration: none; white-space: nowrap; cursor: pointer; }
.carte__modifier:hover { background: rgba(6, 4, 14, .04); }
.carte__modifier:disabled { opacity: .4; cursor: default; background: transparent; }
.carte--repliee { padding-bottom: 28px; }
.carte--repliee .carte__soustitre { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.carte--ouverte { padding-bottom: 0; }
/* Champs de carte de Stripe (Payment Element, iframe de Stripe) et messages d'erreur. */
.paiement__element { min-height: 180px; }
.paiement__adresse { margin: 0 0 16px; }
.paiement .cases { margin: 16px 0 0; }
.cases--recap { margin: 0; }
.paiement__mention { margin: 12px 0 0; color: var(--attenue); font-size: 13px; line-height: 20px; }
.paiement--occupe .paiement__element { animation: pulsation 1.2s ease-in-out infinite; }
@keyframes pulsation { 50% { opacity: .5; } }
.paiement__erreur, .paiement__indisponible { margin: 12px 0 0; color: var(--danger); font-size: 14px; line-height: 20px; }
.cmd__erreurs { margin: 0 0 16px; }

/* Récapitulatif */
.recap { display: flex; flex-direction: column; gap: 12px; }
.recap__article { display: flex; align-items: flex-start; gap: 12px; }
.recap__vignette { flex: none; width: 64px; height: 64px; border-radius: 8px; background: rgba(6, 4, 14, .08); box-shadow: inset 0 0 0 1px rgba(6, 4, 14, .18); overflow: hidden; display: flex; align-items: center; justify-content: center; position: relative; }
.recap__vignette img { width: 100%; height: 100%; object-fit: cover; display: block; }
.recap__vignette svg { width: 16px; height: 16px; color: var(--attenue); }
.recap__vignette--photo::after { content: ""; position: absolute; inset: 0; border-radius: 8px; box-shadow: inset 0 0 0 1px rgba(6, 4, 14, .18); }
.recap__texte { flex: 1 1 auto; min-width: 0; }
.recap__texte > div { line-height: 24px; }
.recap__type { font-size: 13px; line-height: 20px; color: var(--attenue); }
.recap__nom { display: block; margin: -4px 0 0; font-size: 15px; line-height: 20px; font-weight: 600; }
.recap__prix s { color: var(--texte); }
.recap__retirer { flex: none; display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border-radius: 8px; color: var(--attenue); }
.recap__retirer:hover { background: rgba(6, 4, 14, .05); color: var(--texte); }
.recap__retirer svg { width: 16px; height: 16px; }
.recap hr { width: 100%; margin: 4px 0; border: 0; border-top: 1px solid rgba(0, 0, 0, .1); height: 0; }
.options { list-style: none; margin: 4px -8px 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.option { position: relative; display: grid; grid-template-columns: auto 1fr; align-items: center; padding: 4px 8px; border-radius: 8px; cursor: pointer; color: var(--attenue); font-weight: 500; }
.option:hover { background: rgba(6, 4, 14, .04); }
.option input { position: absolute; opacity: 0; width: 0; height: 0; }
.option__radio { width: 16px; height: 16px; margin: 0 8px 0 0; border-radius: 50%; box-shadow: inset 0 0 0 1.5px rgba(6, 4, 14, .25); }
.option input:checked + .option__radio { background: var(--texte); box-shadow: inset 0 0 0 4.5px var(--texte), inset 0 0 0 16px #fff; }
.option input:checked ~ .option__libelle { color: var(--texte); }
.option input:focus-visible + .option__radio { outline: 2px solid var(--texte); outline-offset: 2px; }
.option__libelle { padding: 0; }

.code { display: block; }
.code__lien { color: var(--attenue); text-decoration: underline; font-size: 14px; line-height: 24px; }
.code__champ { display: none; align-items: center; gap: 8px; }
.code__champ .champ { flex: 1 1 auto; min-width: 0; }
.code__appliquer { flex: none; padding: 6px 12px; border: 0; border-radius: 8px; background: #fff; box-shadow: inset 0 0 0 1px var(--bordure); color: var(--attenue); font: inherit; font-weight: 500; font-size: 14px; line-height: 24px; cursor: pointer; opacity: .4; }
.code__appliquer:not(:disabled) { opacity: 1; }
.code__appliquer:not(:disabled):hover { background: rgba(6, 4, 14, .04); }
.code__erreur { margin: 4px 0 0; color: var(--danger); font-size: 13px; line-height: 20px; }
@media (min-width: 768px) { .code__lien { display: none; } .code__champ { display: flex; } }
@media (max-width: 767.98px) { .code--ouvert .code__lien { display: none; } .code--ouvert .code__champ { display: flex; } }
.code__pastille { display: flex; align-items: center; }
.code__pastille span { display: inline-flex; align-items: center; height: 28px; padding: 2px 10px; background: var(--gris); border-radius: 6px 0 0 6px; color: var(--attenue); font-weight: 500; font-size: 14px; line-height: 24px; max-width: 100%; }
.code__pastille button { margin-left: 2px; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 0 6px 6px 0; background: var(--gris); color: var(--texte); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.code__pastille svg { width: 14px; height: 14px; }

.totaux { margin: 0; display: flex; flex-direction: column; gap: 4px; font-size: 13px; line-height: 20px; color: var(--attenue); }
.totaux div { display: flex; justify-content: space-between; }
.totaux dt, .totaux dd { margin: 0; font-weight: 400; }
.a-regler { display: flex; flex-direction: column; gap: 4px; }
.a-regler dl { margin: 0; display: flex; justify-content: space-between; align-items: center; }
.a-regler dt { margin: 0; font-weight: 500; }
.a-regler dd { margin: 0; display: flex; align-items: center; gap: 8px; }
.devise { display: flex; align-items: center; justify-content: center; padding: 2px 6px; border-radius: 6px; background: var(--gris); color: var(--attenue); font-size: 13px; line-height: 13px; }
.devise span { line-height: 16px; }
.suite { display: flex; flex-direction: column; gap: 12px; }
.btn { display: block; width: 100%; padding: 6px 12px; border: 0; border-radius: 8px; background: var(--texte); color: #fff; font: inherit; font-weight: 500; font-size: 14px; line-height: 24px; text-align: center; text-decoration: none; white-space: nowrap; cursor: pointer; }
.btn:hover { background: #2b2933; }
.btn:disabled, .btn[aria-disabled="true"] { opacity: .4; cursor: default; }
.btn:disabled:hover { background: var(--texte); }
.btn--contour { background: #fff; color: var(--texte); box-shadow: inset 0 0 0 1px var(--bordure); }
.btn--contour:hover { background: rgba(6, 4, 14, .04); }
.btn--auto { display: inline-block; width: auto; }
.mentions { margin: -4px 0 0; font-size: 13px; line-height: 20px; color: var(--attenue); }
.mentions a { color: var(--attenue); text-decoration: underline; }
.erreur-generale { margin: 0; padding: 10px 12px; border-radius: 8px; background: #f6ebeb; color: var(--danger); font-size: 13px; line-height: 20px; }

/* ---------- Remerciement : section « Checkout success » du site de Podia ---------- */
.site { font-family: "Poppins", sans-serif; color: #0d161b; font-size: 16px; line-height: 28.8px; }
.succes { background: #fff; flex: 1 1 auto; }
.succes__in { max-width: 816px; margin: 0 auto; padding: 40px 20px; text-align: center; }
.succes h2 { margin: 0; font-size: 28.8px; line-height: 43.2px; font-weight: 700; color: #0d161b; }
.succes__texte { margin: 8.4px 0 0; }
.succes__texte p { margin: 0 0 8.4px; }
.succes__texte p:last-child { margin-bottom: 0; }
.succes__texte strong { font-weight: 700; }
.succes__texte a { color: #0d161b; text-decoration: underline; font-weight: 700; }
.succes__texte a[href^="mailto:"] { font-weight: 400; text-decoration: none; }
.succes__actions { display: flex; justify-content: center; margin: 16.8px 0 0; }
.bouton-site { display: block; padding: 12px 20px; border-radius: 2px; background: var(--marque); color: #0d161b; font-size: 16px; line-height: 28.8px; text-decoration: none; }
.bouton-site:hover { filter: brightness(.95); }
.succes__info { margin: 24px 0 0; color: #5b6b73; font-size: 14px; line-height: 24px; }

/* ---------- Upsells après paiement ---------- */
.upsells { padding: 20px; flex: 1 1 auto; width: 100%; max-width: 1440px; margin: 0 auto; }
@media (min-width: 576px) { .upsells { padding: 20px 32px; } }
@media (min-width: 992px) { .upsells { padding: 20px 48px; } }
.upsells__in { max-width: 940px; margin: 0 auto; }
.upsells__tete { text-align: center; margin: 20px 0 40px; }
.upsells__tete h1 { margin: 0; font-size: 18px; line-height: 24px; font-weight: 600; }
.upsells__tete p { margin: 4px 0 0; color: var(--attenue); }
.alerte { margin: 0 0 16px; padding: 12px 16px; border-radius: 8px; font-size: 14px; line-height: 24px; background: #ebf5f1; color: var(--succes); }
.alerte--erreur { background: #f6ebeb; color: var(--danger); }
.alerte form { margin: 8px 0 0; }
.upsells__liste { display: flex; flex-direction: column; gap: 24px; }
.upsell { display: flex; flex-direction: column; gap: 16px; padding: 20px; border: 1px solid var(--bordure); border-radius: 8px; background: #fff; }
.upsell__image { display: block; width: 100%; aspect-ratio: 4 / 3; border-radius: 8px; object-fit: cover; background: rgba(6, 4, 14, .08); }
.upsell__image--vide { display: flex; align-items: center; justify-content: center; color: var(--attenue); }
.upsell__image--vide svg { width: 24px; height: 24px; }
.upsell__corps { flex: 1 1 auto; min-width: 0; }
.upsell__nom { margin: 0; font-size: 16px; line-height: 24px; font-weight: 600; }
.upsell__type { margin: 0; color: var(--attenue); }
.upsell__prix { margin: 16px 0 0; }
.upsell__prix .up-old { text-decoration: line-through; margin-right: 4px; }
.upsell__prix b { font-weight: 400; }
.upsell__description { margin: 16px 0 0; color: var(--attenue); white-space: pre-line; }
.upsell form { margin: 16px 0 0; }
.upsell .btn { display: inline-flex; align-items: center; gap: 8px; width: auto; }
.upsell .btn svg { width: 14px; height: 14px; }
@media (min-width: 768px) {
  .upsell { flex-direction: row; gap: 24px; padding: 28px 24px 28px 28px; }
  .upsell__visuel { flex: 0 0 45%; max-width: 429px; }
}
.upsells__mentions { margin: 16px 0 0; color: var(--attenue); font-size: 13px; line-height: 20px; }
.upsells__mentions a { color: var(--attenue); text-decoration: underline; }
.upsells__suite { display: flex; justify-content: center; margin: 24px 0 0; }
.ajoutes { margin: 0 0 24px; padding: 20px 24px; border: 1px solid var(--bordure); border-radius: 8px; }
.ajoutes p { margin: 0 0 4px; }
.ajoutes ul { margin: 4px 0 8px; padding-left: 20px; }
.etape-3ds { margin: 0 0 24px; padding: 20px 24px; border: 1px solid var(--bordure); border-radius: 8px; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.etape-3ds p { margin: 0; }
.etape-3ds form { margin: 0; }
.upsells .btn-lien { color: var(--texte); }

/* Bandeau de mesure d'audience (accord du visiteur avant tout outil de mesure) */
.bandeau-suivi { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 50; max-width: 720px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: center; justify-content: space-between; padding: 14px 16px; background: #fff; color: #223348; border: 1px solid #dde1e6; border-radius: 10px; box-shadow: 0 6px 24px rgba(0, 0, 0, .12); font-size: 14px; line-height: 1.5; }
.bandeau-suivi[hidden] { display: none; }
.bandeau-suivi p { margin: 0; flex: 1 1 320px; }
.bandeau-suivi__boutons { display: flex; gap: 8px; }
.bandeau-suivi__btn { min-height: 38px; padding: 0 16px; border-radius: 8px; border: 1px solid #223348; background: #fff; color: #223348; font: inherit; font-weight: 600; cursor: pointer; }
