/* ============================================================
   LE MANIFESTE — PAGES INTÉRIEURES (compagnon de manifeste.css)
   Reskin éditorial des ~60 pages hors home : papier crème, encre
   vert-noir, Fraunces / Inter / JetBrains Mono, rouge ECG en
   micro-accents. Aucune restructuration : on neutralise le
   « premium green glass » legacy (style.css, conversion.css,
   <style> inline, utilitaires Tailwind) par cascade + spécificité.

   - Tout est scopé sous body.manifeste (classe ajoutée par
     apply-manifeste.js).
   - Tout est wrappé dans @media screen : RIEN ne fuite dans le
     @media print des pages ressources/ (cartes d'urgence, carnets).
   - Chargée APRÈS tailwind.css, style.css, conversion.css et les
     <style> inline : à spécificité égale elle gagne par ordre ;
     le préfixe body.manifeste la fait gagner partout ailleurs.
   ============================================================ */

@media screen {

/* ============================================================
   1. BASE & TYPOGRAPHIE
   ============================================================ */

/* Titres : Outfit -> Fraunces, graisse éditoriale */
body.manifeste h1, body.manifeste h2, body.manifeste h3, body.manifeste h4,
body.manifeste .font-display {
    font-family: var(--serif);
    letter-spacing: -0.015em;
}
body.manifeste h1 { font-weight: 500; text-wrap: balance; }
body.manifeste h2 { font-weight: 550; }
body.manifeste h3, body.manifeste h4 { font-weight: 600; }

/* Codes & données -> JetBrains Mono */
body.manifeste code, body.manifeste kbd, body.manifeste samp,
body.manifeste .font-mono { font-family: var(--mono); }

/* Texte dégradé / clippé -> encre pleine */
body.manifeste .text-gradient,
body.manifeste .mf-grad-text,
body.manifeste [class*="bg-clip-text"] {
    background: none;
    -webkit-background-clip: initial;
    background-clip: initial;
    -webkit-text-fill-color: currentColor;
    color: var(--ink);
}

/* Surlignage éditorial .mf-hl : âme rouge ECG en marqueur fin sous
   le texte (remplace les bg-clip-text / surlignages verts legacy).
   box-decoration-break: clone pour les spans coupés sur 2 lignes. */
body.manifeste .mf-hl {
    color: inherit;
    padding: 0 0.06em;
    background-image: linear-gradient(to top, color-mix(in srgb, var(--accent) 26%, transparent), color-mix(in srgb, var(--accent) 26%, transparent));
    background-repeat: no-repeat;
    background-size: 100% 0.3em;
    background-position: 0 92%;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}

/* Eyebrows uppercase -> kicker mono discret */
body.manifeste [class*="uppercase"][class*="tracking-wide"],
body.manifeste [class*="uppercase"][class*="tracking-wider"] {
    font-family: var(--mono);
    font-weight: 500;
    letter-spacing: 0.16em;
    color: var(--ink-3);
}

/* Liens « primaires » legacy -> encre soulignée, hover accent */
body.manifeste a.text-primary-600,
body.manifeste a.text-primary-700,
body.manifeste .prose a,
body.manifeste article a:not([class]) {
    color: var(--ink);
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, var(--accent) 45%, transparent);
    text-underline-offset: 3px;
}
body.manifeste a.text-primary-600:hover,
body.manifeste a.text-primary-700:hover,
body.manifeste .prose a:hover,
body.manifeste article a:not([class]):hover { color: var(--accent-deep); }

/* strong teinté vert dans les chapôs -> encre */
body.manifeste strong.text-primary-600,
body.manifeste strong.text-primary-700 { color: var(--ink); }

/* Focus visible cohérent avec l'encre */
body.manifeste a:focus-visible,
body.manifeste button:focus-visible,
body.manifeste summary:focus-visible {
    outline: 2px solid var(--accent-deep);
    outline-offset: 2px;
    border-radius: 3px;
}

/* Scrollbar : vert -> encre sur papier */
@media (min-width: 768px) {
    body.manifeste ::-webkit-scrollbar-thumb {
        background: color-mix(in srgb, var(--ink) 22%, var(--paper-2));
        border-color: var(--paper);
    }
    body.manifeste ::-webkit-scrollbar-thumb:hover {
        background: color-mix(in srgb, var(--ink) 40%, var(--paper-2));
    }
}

/* ============================================================
   2. REMAP DES NEUTRES TAILWIND -> PALETTE PAPIER
   ============================================================ */
body.manifeste .bg-white { background-color: var(--surface); }
body.manifeste .bg-gray-50 { background-color: var(--paper-2); }
body.manifeste .bg-gray-100 { background-color: var(--paper-2); }
body.manifeste .bg-gray-900 { background-color: var(--ink); }

body.manifeste .text-gray-900,
body.manifeste .text-gray-800 { color: var(--ink); }
body.manifeste .text-gray-700,
body.manifeste .text-gray-600 { color: var(--ink-2); }
body.manifeste .text-gray-500,
body.manifeste .text-gray-400 { color: var(--ink-3); }

body.manifeste .border-gray-100,
body.manifeste .border-gray-200,
body.manifeste .border-gray-300 { border-color: var(--rule); }

/* Ombres : quasi nulles, neutres */
body.manifeste .shadow,
body.manifeste .shadow-md,
body.manifeste .shadow-lg,
body.manifeste .shadow-xl,
body.manifeste .shadow-2xl,
body.manifeste .hover\:shadow:hover,
body.manifeste .hover\:shadow-md:hover,
body.manifeste .hover\:shadow-lg:hover,
body.manifeste .hover\:shadow-xl:hover,
body.manifeste .open\:shadow-lg[open] {
    box-shadow: 0 1px 2px color-mix(in srgb, var(--ink) 7%, transparent);
}

/* Survol des cartes : filet encre renforcé, pas de halo vert */
body.manifeste .hover\:border-primary-300:hover,
body.manifeste .hover\:border-primary-400:hover,
body.manifeste .hover\:border-primary-500:hover { border-color: var(--rule-strong); }

/* ============================================================
   3. TEINTES CATÉGORIELLES DÉSATURÉES (papier-compatible)
   Distinction fonctionnelle conservée, fluo supprimé.
   ============================================================ */

/* Sauge (ex-vert primary / emerald / green) */
body.manifeste .bg-primary-50, body.manifeste .bg-emerald-50, body.manifeste .bg-green-50 { background-color: #ecefe6; }
body.manifeste .bg-primary-100, body.manifeste .bg-emerald-100, body.manifeste .bg-green-100 { background-color: #dfe5d4; }
body.manifeste .text-primary-500, body.manifeste .text-primary-600, body.manifeste .text-primary-700,
body.manifeste .text-emerald-600, body.manifeste .text-emerald-700,
body.manifeste .text-green-600, body.manifeste .text-green-700 { color: #46573f; }
body.manifeste .border-primary-100, body.manifeste .border-primary-200, body.manifeste .border-primary-300,
body.manifeste .border-emerald-200, body.manifeste .border-green-200 { border-color: color-mix(in srgb, #46573f 22%, var(--paper)); }

/* Ardoise bleue */
body.manifeste .bg-blue-50 { background-color: #e9ecf0; }
body.manifeste .bg-blue-100 { background-color: #d8dfe7; }
body.manifeste .text-blue-600, body.manifeste .text-blue-700, body.manifeste .text-blue-800 { color: #40546a; }
body.manifeste .border-blue-100, body.manifeste .border-blue-200, body.manifeste .border-blue-300 { border-color: color-mix(in srgb, #40546a 22%, var(--paper)); }

/* Ocre (ex-ambre/jaune) */
body.manifeste .bg-amber-50, body.manifeste .bg-yellow-50 { background-color: #f0ebdc; }
body.manifeste .bg-amber-100, body.manifeste .bg-yellow-100 { background-color: #e7dcc0; }
body.manifeste .text-amber-600, body.manifeste .text-amber-700, body.manifeste .text-amber-800, body.manifeste .text-amber-900,
body.manifeste .text-yellow-600, body.manifeste .text-yellow-700, body.manifeste .text-yellow-900 { color: #6b562e; }
body.manifeste .border-amber-100, body.manifeste .border-amber-200, body.manifeste .border-amber-300,
body.manifeste .border-yellow-200, body.manifeste .border-yellow-300 { border-color: color-mix(in srgb, #6b562e 25%, var(--paper)); }

/* Mauve (ex-violet/fuchsia) */
body.manifeste .bg-purple-50, body.manifeste .bg-fuchsia-50 { background-color: #ece8ee; }
body.manifeste .bg-purple-100, body.manifeste .bg-fuchsia-100 { background-color: #e0d8e3; }
body.manifeste .text-purple-600, body.manifeste .text-purple-700, body.manifeste .text-purple-800,
body.manifeste .text-fuchsia-600, body.manifeste .text-fuchsia-700 { color: #5d4f66; }
body.manifeste .border-purple-100, body.manifeste .border-purple-200, body.manifeste .border-purple-300 { border-color: color-mix(in srgb, #5d4f66 22%, var(--paper)); }

/* Rouge désaturé (sémantique danger — la seule famille qui garde du rouge) */
body.manifeste .bg-red-50 { background-color: #f1e4e1; }
body.manifeste .bg-red-100 { background-color: #ecd5d1; }
body.manifeste .text-red-500, body.manifeste .text-red-600, body.manifeste .text-red-700,
body.manifeste .text-red-800, body.manifeste .text-red-900 { color: #7d3a32; }
body.manifeste .border-red-100, body.manifeste .border-red-200, body.manifeste .border-red-300 { border-color: color-mix(in srgb, #7d3a32 25%, var(--paper)); }

/* Indigo / teal / cyan / orange résiduels */
body.manifeste .bg-indigo-50 { background-color: #e9e9ef; }
body.manifeste .bg-indigo-100 { background-color: #d9d9e4; }
body.manifeste .text-indigo-600, body.manifeste .text-indigo-700 { color: #4b4e69; }
body.manifeste .bg-teal-50, body.manifeste .bg-cyan-50 { background-color: #e6ecea; }
body.manifeste .bg-teal-100, body.manifeste .bg-cyan-100 { background-color: #d5e2de; }
body.manifeste .text-teal-600, body.manifeste .text-teal-700, body.manifeste .text-cyan-700 { color: #3f5f56; }
body.manifeste .bg-orange-50 { background-color: #f1e9db; }
body.manifeste .bg-orange-100 { background-color: #e9dcc4; }
body.manifeste .text-orange-600, body.manifeste .text-orange-700 { color: #71502c; }

/* Pastilles « live » pulsantes -> micro-accent rouge ECG */
body.manifeste .rounded-full.bg-primary-300,
body.manifeste .rounded-full.bg-primary-500,
body.manifeste .rounded-full.bg-green-400 { background-color: var(--accent); }

/* ============================================================
   4. HEROES DE PAGES : bandeaux dégradés -> papier + filet
   ============================================================ */

/* conversion.css impose des dégradés en !important : on répond en
   !important avec une spécificité supérieure (body.manifeste > header). */
body.manifeste > header[class*="bg-gradient"],
body.manifeste > header[class*="from-"],
body.manifeste > header.hero-conditions,
body.manifeste > header.hero-comp {
    background: var(--paper) !important;
    background-image: none !important;
    border-bottom: 1px solid var(--rule);
    color: var(--ink);
}
body.manifeste > header.hero-conditions::before,
body.manifeste > header.hero-comp::before { opacity: 0.5; }

/* Texte blanc du bandeau -> encre ; sous-titres -> encre secondaire */
body.manifeste > header.text-white,
body.manifeste > header .text-white { color: var(--ink); }
body.manifeste > header .text-primary-100,
body.manifeste > header .text-primary-200,
body.manifeste > header .text-purple-100,
body.manifeste > header .text-fuchsia-100 { color: var(--ink-2); }

/* Pill verre du bandeau -> chip mono papier */
body.manifeste > header .bg-white\/10 {
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: 3px;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    font-family: var(--mono);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    color: var(--ink-2);
}

/* Boutons du bandeau (encre sur papier) */
body.manifeste > header .btn-primary { background: var(--ink); color: var(--paper); border: 1px solid var(--ink); }
body.manifeste > header .btn-primary:hover { background: var(--accent-deep); border-color: var(--accent-deep); color: #fff; }
body.manifeste > header .btn-secondary {
    background: transparent; color: var(--ink);
    border: 1px solid var(--rule-strong); box-shadow: none;
}
body.manifeste > header .btn-secondary:hover { background: var(--paper-2); border-color: var(--ink); }

/* Fil d'Ariane -> mono discret */
body.manifeste nav[aria-label*="Ariane"],
body.manifeste nav[aria-label="Breadcrumb"],
body.manifeste nav[aria-label="breadcrumb"] {
    font-family: var(--mono);
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    color: var(--ink-3);
}
body.manifeste nav[aria-label*="Ariane"] a,
body.manifeste nav[aria-label="Breadcrumb"] a,
body.manifeste nav[aria-label="breadcrumb"] a { color: var(--ink-2); text-decoration: none; }
body.manifeste nav[aria-label*="Ariane"] a:hover,
body.manifeste nav[aria-label="Breadcrumb"] a:hover,
body.manifeste nav[aria-label="breadcrumb"] a:hover { color: var(--accent-deep); }
body.manifeste nav[aria-label*="Ariane"] .text-gray-700,
body.manifeste nav[aria-label="Breadcrumb"] .text-gray-700 { color: var(--ink-3); }

/* ============================================================
   5. BOUTONS LEGACY -> .mf-btn ÉQUIVALENT
   ============================================================ */
body.manifeste .btn-primary {
    background: var(--ink);
    color: var(--paper);
    border: 1px solid var(--ink);
    border-radius: 3px;
    box-shadow: none;
    font-weight: 600;
    overflow: visible;
    transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
body.manifeste .btn-primary::after { content: none; }
body.manifeste .btn-primary:hover,
body.manifeste .btn-primary:active {
    background: var(--accent-deep);
    border-color: var(--accent-deep);
    color: #fff;
    transform: none;
    box-shadow: none;
}
body.manifeste .btn-secondary {
    background: transparent;
    color: var(--ink);
    border: 1px solid var(--rule-strong);
    border-radius: 3px;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
body.manifeste .btn-secondary:hover {
    background: var(--paper-2);
    border-color: var(--ink);
    color: var(--ink);
    transform: none;
    box-shadow: none;
}

/* Boutons Tailwind « bg-primary-600 » (outils, hubs) */
body.manifeste a.bg-primary-600,
body.manifeste a.bg-primary-700,
body.manifeste button.bg-primary-600,
body.manifeste button.bg-primary-700 {
    background-color: var(--ink);
    color: var(--paper);
    border-radius: 3px;
    border: 1px solid var(--ink);
    transition: background-color .18s ease, color .18s ease;
}
body.manifeste a.bg-primary-600:hover,
body.manifeste a.bg-primary-700:hover,
body.manifeste button.bg-primary-600:hover,
body.manifeste button.bg-primary-700:hover {
    background-color: var(--accent-deep);
    border-color: var(--accent-deep);
    color: #fff;
}

/* Boutons blancs sur bandeau encre (cta-final, pricing-close…) */
body.manifeste .btn-white {
    background: var(--paper);
    color: var(--ink);
    border: 1px solid var(--paper);
    border-radius: 3px;
    box-shadow: none;
}
body.manifeste .btn-white:hover { background: var(--accent-deep); border-color: var(--accent-deep); color: #fff; transform: none; box-shadow: none; }
body.manifeste .btn-outline-white {
    background: transparent;
    color: var(--paper);
    border: 1px solid color-mix(in srgb, var(--paper) 45%, transparent);
    border-radius: 3px;
}
body.manifeste .btn-outline-white:hover { background: transparent; border-color: var(--paper); }

/* ============================================================
   6. CARTES & SURFACES : filet 1px encre 12%, radius doux
   ============================================================ */

/* Cartes « design system » legacy */
body.manifeste .feature-card,
body.manifeste .professional-card,
body.manifeste .mf-glass {
    background: var(--surface);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    border: 1px solid var(--rule);
    border-radius: 10px;
    box-shadow: none;
}
body.manifeste .feature-card:hover,
body.manifeste .professional-card:hover {
    transform: none;
    border-color: var(--rule-strong);
    box-shadow: 0 1px 2px color-mix(in srgb, var(--ink) 7%, transparent);
}

/* Tuiles d'icônes en dégradé arc-en-ciel -> encre unie
   (le glyphe blanc reste lisible) ou tuile papier */
body.manifeste [class*="bg-gradient-to-"] { background-image: none; }
body.manifeste [class*="from-primary-400"],
body.manifeste [class*="from-primary-500"],
body.manifeste [class*="from-blue-400"],
body.manifeste [class*="from-blue-500"],
body.manifeste [class*="from-purple-500"],
body.manifeste [class*="from-amber-500"],
body.manifeste [class*="from-teal-400"],
body.manifeste [class*="from-teal-500"],
body.manifeste [class*="from-green-400"],
body.manifeste [class*="from-green-500"],
body.manifeste [class*="from-indigo-500"],
body.manifeste [class*="from-cyan-500"],
body.manifeste [class*="from-orange-500"],
body.manifeste [class*="from-fuchsia-500"],
body.manifeste [class*="from-rose-500"] { background-color: var(--ink); }

/* Cartes de contenu claires (from-*-50 -> surface papier) */
body.manifeste [class*="from-primary-50"],
body.manifeste [class*="from-blue-50"],
body.manifeste [class*="from-amber-50"],
body.manifeste [class*="from-teal-50"],
body.manifeste [class*="from-purple-50"],
body.manifeste [class*="from-red-50"],
body.manifeste [class*="from-orange-50"],
body.manifeste [class*="from-green-50"] {
    background-color: var(--surface);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}
body.manifeste .prose-content [class*="from-primary-50"],
body.manifeste .prose-content [class*="from-red-50"],
body.manifeste .prose-content [class*="from-orange-50"],
body.manifeste .prose-content [class*="from-blue-50"],
body.manifeste .prose-content [class*="from-purple-50"],
body.manifeste .prose-content [class*="from-teal-50"],
body.manifeste .prose-content [class*="from-amber-50"] {
    border: 1px solid var(--rule);
    border-radius: 6px !important;
    box-shadow: none;
}
body.manifeste .prose-content [class*="from-primary-50"]:hover,
body.manifeste .prose-content [class*="from-red-50"]:hover,
body.manifeste .prose-content [class*="from-orange-50"]:hover,
body.manifeste .prose-content [class*="from-blue-50"]:hover,
body.manifeste .prose-content [class*="from-purple-50"]:hover,
body.manifeste .prose-content [class*="from-teal-50"]:hover,
body.manifeste .prose-content [class*="from-amber-50"]:hover {
    transform: none;
    border-color: var(--rule-strong);
    box-shadow: none;
}

/* Conteneurs de tableaux (conversion.css, glass !important) */
body.manifeste .overflow-x-auto[class*="rounded"][class*="border"] {
    background: var(--surface) !important;
    border-color: var(--rule) !important;
    box-shadow: none;
}

/* ============================================================
   7. BLOCS CTA EN DÉGRADÉ -> ENCRE UNIE
   ============================================================ */
body.manifeste .cta-final,
body.manifeste .pricing-close,
body.manifeste [class*="from-primary-600"],
body.manifeste [class*="from-primary-700"],
body.manifeste [class*="from-primary-800"],
body.manifeste [class*="from-purple-600"],
body.manifeste [class*="from-purple-700"],
body.manifeste [class*="from-indigo-600"],
body.manifeste [class*="from-fuchsia-700"],
body.manifeste [class*="from-amber-600"],
body.manifeste [class*="from-orange-600"] {
    background-color: var(--ink) !important;
    background-image: none !important;
    color: color-mix(in srgb, var(--paper) 92%, transparent);
    border-radius: 10px;
}
body.manifeste .cta-final::before { content: none; }
/* Dans les bandeaux encre, les titres doivent être papier même quand
   conversion.css (.prose-content h2, même spécificité, chargé avant)
   imposait l'encre — sinon titre invisible encre-sur-encre. */
body.manifeste :is(.cta-final, .pricing-close, [class*="from-primary-600"], [class*="from-primary-700"], [class*="from-primary-800"], [class*="from-purple-600"], [class*="from-purple-700"], [class*="from-indigo-600"], [class*="from-fuchsia-700"], [class*="from-amber-600"], [class*="from-orange-600"]) :is(h1, h2, h3, h4) {
    color: var(--paper);
}
body.manifeste :is(.cta-final, .pricing-close, [class*="from-primary-600"], [class*="from-primary-700"], [class*="from-primary-800"], [class*="from-purple-600"], [class*="from-purple-700"], [class*="from-indigo-600"], [class*="from-fuchsia-700"], [class*="from-amber-600"], [class*="from-orange-600"]) :is([class*="text-primary-100"], [class*="text-purple-100"], [class*="text-fuchsia-100"], [class*="text-indigo-100"], [class*="text-amber-100"]) {
    color: color-mix(in srgb, var(--paper) 74%, transparent);
}
/* strong/b hérite de la couleur du contexte dans les bandeaux encre
   (sinon .manifeste strong { ink } = invisible encre-sur-encre, ex. complements/index) */
body.manifeste :is(.cta-final, .pricing-close, [class*="from-primary-600"], [class*="from-primary-700"], [class*="from-primary-800"], [class*="from-purple-600"], [class*="from-purple-700"], [class*="from-indigo-600"], [class*="from-fuchsia-700"], [class*="from-amber-600"], [class*="from-orange-600"], [class*="from-blue-600"]) :is(strong, b) {
    color: inherit;
}
body.manifeste .cta-final-title,
body.manifeste .cta-final h2,
body.manifeste .pricing-close h2 {
    font-family: var(--serif);
    font-weight: 500;
    letter-spacing: -0.015em;
    color: var(--paper);
}
body.manifeste .cta-final-text,
body.manifeste .cta-final .text-primary-100,
body.manifeste .pricing-close p { color: color-mix(in srgb, var(--paper) 72%, transparent); }
body.manifeste .pricing-close .pc-cta {
    background: var(--paper);
    color: var(--ink);
    border: 1px solid var(--paper);
    border-radius: 3px;
    box-shadow: none;
}
body.manifeste .pricing-close .pc-cta:hover { background: var(--accent-deep); border-color: var(--accent-deep); color: #fff; transform: none; }
/* Bouton blanc dans bandeau Tailwind (blog index) */
body.manifeste [class*="from-primary-600"] a.bg-white,
body.manifeste [class*="from-purple-600"] a.bg-white {
    background-color: var(--paper);
    color: var(--ink);
    border-radius: 3px;
}
body.manifeste [class*="from-primary-600"] a.bg-white:hover,
body.manifeste [class*="from-purple-600"] a.bg-white:hover { background-color: var(--accent-deep); color: #fff; }

/* ============================================================
   8. PROSE ÉDITORIALE (articles conditions/, blog/, légal)
   ============================================================ */
body.manifeste .prose-content p,
body.manifeste .prose-content ul,
body.manifeste .prose-content ol,
body.manifeste article.prose p,
body.manifeste article.prose li { max-width: 68ch; }

body.manifeste .prose-content h2 {
    font-family: var(--serif);
    font-weight: 550;
    letter-spacing: -0.01em;
    padding-left: 0;
    padding-top: 1.6rem;
    margin-top: 2.6rem;
    border-top: 1px solid var(--rule);
}
body.manifeste .prose-content h2::before { content: none; }
body.manifeste section:first-of-type > .prose-content h2,
body.manifeste .prose-content section:first-of-type h2:first-child { border-top: 0; padding-top: 0; margin-top: 0; }
body.manifeste .prose-content h3 { font-family: var(--serif); font-weight: 600; }
body.manifeste article.prose h2 {
    padding-top: 1.6rem;
    margin-top: 2.4rem;
    border-top: 1px solid var(--rule);
}
body.manifeste article.prose section:first-of-type h2 { border-top: 0; padding-top: 0; margin-top: 0; }

/* Lettrine sur le premier paragraphe des articles */
body.manifeste .prose-content section:first-of-type > p:first-of-type::first-letter {
    font-family: var(--serif);
    font-weight: 600;
    font-size: 3.1em;
    float: left;
    line-height: 0.85;
    padding-right: 0.12em;
    padding-top: 0.06em;
    color: var(--ink);
}

/* Puces : pastille verte + halo -> tiret accent discret */
body.manifeste .prose-content ul.list-disc > li::before {
    width: 0.7em;
    height: 1px;
    border-radius: 0;
    background: var(--accent);
    box-shadow: none;
    top: 0.85em;
}

/* Sommaire (aside) : carte verre -> encadré papier filet */
body.manifeste .prose-content aside {
    background: var(--surface) !important;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    border: 1px solid var(--rule) !important;
    border-radius: 4px !important;
    box-shadow: none;
}
body.manifeste .prose-content aside::before { content: none; }
body.manifeste .prose-content aside h2 { border-top: 0; padding-top: 0; margin-top: 0; }
body.manifeste .toc-link,
body.manifeste .prose-content aside ol li a { color: var(--ink-2); text-decoration: none; }
body.manifeste .toc-link:hover,
body.manifeste .prose-content aside ol li a:hover { color: var(--accent-deep); }

/* Citation / note de source -> note de marge mono */
body.manifeste .citation,
body.manifeste .prose-content .citation {
    font-family: var(--mono);
    font-style: normal;
    font-size: 0.78rem;
    line-height: 1.6;
    color: var(--ink-3);
    background: transparent;
    border-left: 2px solid var(--rule-strong) !important;
    border-radius: 0 !important;
    padding: 0.4rem 0 0.4rem 1rem !important;
}

/* Note marginale « information éducative » (glycoguard) */
body.manifeste .border-l-4.border-gray-300 {
    border-left-color: var(--rule-strong);
    font-family: var(--mono);
    font-size: 0.78rem;
    color: var(--ink-3);
}

/* ============================================================
   9. CALLOUTS : alert / info / tip / warn — surfaces papier
   ============================================================ */
body.manifeste .alert-box,
body.manifeste .info-box,
body.manifeste .tip-box,
body.manifeste .prose-content .alert-box,
body.manifeste .prose-content .info-box,
body.manifeste .prose-content .tip-box {
    background: var(--surface) !important;
    border: 1px solid var(--rule);
    border-radius: 3px !important;
    box-shadow: none;
}
body.manifeste .alert-box,
body.manifeste .prose-content .alert-box { border-left: 3px solid var(--accent) !important; }
body.manifeste .info-box,
body.manifeste .prose-content .info-box { border-left: 3px solid #557a5e !important; }
body.manifeste .tip-box,
body.manifeste .prose-content .tip-box { border-left: 3px solid #62748a !important; }

body.manifeste .alert-warn,
body.manifeste .alert-good,
body.manifeste .tip-info,
body.manifeste .alert-priority {
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: 3px;
    box-shadow: none;
}
body.manifeste .alert-warn { border-left: 3px solid var(--accent); }
body.manifeste .alert-warn h3 { color: var(--accent-deep); font-family: var(--serif); }
body.manifeste .alert-good { border-left: 3px solid #557a5e; }
body.manifeste .tip-info { border-left: 3px solid #62748a; }
body.manifeste .alert-priority { border-left: 3px solid #a8853f; background: #f6f1e4; }

/* Encadrés d'avertissement ambrés (outils) */
body.manifeste .bg-amber-50.border { border-left: 3px solid #a8853f; }

/* ============================================================
   10. TABLES ÉDITORIALES
   ============================================================ */
body.manifeste .prose-content table,
body.manifeste .supp-table,
body.manifeste .supp-recap-table,
body.manifeste .compare-table,
body.manifeste table[class*="text-sm"] {
    background: transparent;
    border: 0 !important;
    border-collapse: collapse;
    box-shadow: none;
    border-radius: 0;
    font-size: 0.92rem;
}
body.manifeste .prose-content table th,
body.manifeste .supp-table th,
body.manifeste .supp-recap-table th,
body.manifeste .compare-table th {
    background: transparent !important;
    font-family: var(--mono);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--ink-3) !important;
    text-align: left;
    border: 0 !important;
    border-bottom: 1px solid var(--ink) !important;
    padding: 0.6rem 1rem 0.6rem 0 !important;
}
body.manifeste .prose-content table td,
body.manifeste .supp-table td,
body.manifeste .supp-recap-table td,
body.manifeste .compare-table td {
    border: 0 !important;
    border-bottom: 1px solid var(--rule) !important;
    padding: 0.7rem 1rem 0.7rem 0 !important;
    color: var(--ink-2);
}
body.manifeste .prose-content table td:first-child,
body.manifeste .supp-table td:first-child,
body.manifeste .supp-recap-table td:first-child { color: var(--ink); font-weight: 550; }
body.manifeste .prose-content table tbody tr:hover td,
body.manifeste .supp-table tbody tr:hover td,
body.manifeste .supp-recap-table tbody tr:hover,
body.manifeste .compare-table tbody tr:hover td { background: color-mix(in srgb, var(--paper-2) 60%, transparent); }

/* ============================================================
   11. BADGES DE PREUVE (A–D) & TIERS — désaturés, mono
   ============================================================ */
body.manifeste .evidence-badge,
body.manifeste .tier-badge {
    font-family: var(--mono);
    font-weight: 600;
    letter-spacing: 0.08em;
    border-radius: 2px;
    border: 1px solid transparent;
}
body.manifeste .evidence-A { background: #dfe5d4; color: #3d5240; border-color: color-mix(in srgb, #3d5240 30%, transparent); }
body.manifeste .evidence-B { background: #d8dfe7; color: #3c5069; border-color: color-mix(in srgb, #3c5069 30%, transparent); }
body.manifeste .evidence-C { background: #e7dcc0; color: #655326; border-color: color-mix(in srgb, #655326 30%, transparent); }
body.manifeste .evidence-D { background: #ecd5d1; color: #7d3a32; border-color: color-mix(in srgb, #7d3a32 35%, transparent); }
body.manifeste .tier-1 { background: #dfe5d4; color: #3d5240; }
body.manifeste .tier-2 { background: #d8dfe7; color: #3c5069; }
body.manifeste .tier-3 { background: #e7dcc0; color: #655326; }

/* ============================================================
   12. FAQ details/summary -> accordéon éditorial à filets
   ============================================================ */
body.manifeste details[class*="border"],
body.manifeste .pricing-faq details {
    background: transparent;
    border: 0;
    border-top: 1px solid var(--rule);
    border-radius: 0;
    box-shadow: none;
    padding: 0;
    overflow: visible;
}
body.manifeste details[class*="border"]:last-of-type,
body.manifeste .pricing-faq details:last-child { border-bottom: 1px solid var(--rule); }
body.manifeste details[class*="border"][open],
body.manifeste .pricing-faq details[open] { border-color: var(--rule); box-shadow: none; }
body.manifeste details[class*="border"] summary,
body.manifeste .pricing-faq summary {
    font-family: var(--serif);
    font-weight: 550;
    font-size: 1.05rem;
    color: var(--ink);
    padding: 1rem 0;
    cursor: pointer;
}
body.manifeste details[class*="border"] summary:hover { color: var(--accent-deep); }
body.manifeste details[class*="border"] summary svg { color: var(--accent); }
body.manifeste details[class*="border"] > div,
body.manifeste details[class*="border"] > p,
body.manifeste .pricing-faq details > div {
    padding: 0 0 1.1rem;
    color: var(--ink-2);
    max-width: 68ch;
}
body.manifeste .pricing-faq summary::after { color: var(--accent); font-family: var(--mono); }
/* Les details glycoguard (p-4 compact) gardent un rythme resserré */
body.manifeste details[class*="border"].p-4 summary { padding: 0.85rem 0; }

/* ============================================================
   13. FORMULAIRES & CALCULATEURS
   ============================================================ */
body.manifeste input[type="text"],
body.manifeste input[type="email"],
body.manifeste input[type="number"],
body.manifeste input[type="tel"],
body.manifeste input[type="url"],
body.manifeste select,
body.manifeste textarea {
    background: var(--surface);
    border: 1px solid var(--rule-strong);
    border-radius: 3px;
    color: var(--ink);
    font-family: var(--sans);
}
body.manifeste input[type="number"] { font-family: var(--mono); }
body.manifeste input:focus,
body.manifeste select:focus,
body.manifeste textarea:focus {
    outline: none;
    border-color: var(--ink);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ink) 12%, transparent);
}
body.manifeste .focus\:ring-primary-500:focus { --tw-ring-color: color-mix(in srgb, var(--ink) 25%, transparent); }
body.manifeste label { color: var(--ink); }
body.manifeste form label + input,
body.manifeste form label + select,
body.manifeste form label + textarea { background: var(--surface); }

/* Panneau calculateur (conversion.css) */
body.manifeste .calc-form {
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: 6px;
    box-shadow: none;
}
body.manifeste .calc-form label { color: var(--ink); font-weight: 600; }
body.manifeste .calc-form input[type="number"],
body.manifeste .calc-form select {
    background: var(--surface);
    border: 1px solid var(--rule-strong);
    border-radius: 3px;
    color: var(--ink);
}
body.manifeste .calc-form input[type="number"]:focus,
body.manifeste .calc-form select:focus {
    border-color: var(--ink);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ink) 12%, transparent);
}
body.manifeste .calc-form button {
    background: var(--ink);
    color: var(--paper);
    border: 1px solid var(--ink);
    border-radius: 3px;
    font-weight: 600;
    transition: background-color .18s ease, color .18s ease;
}
body.manifeste .calc-form button:hover { background: var(--accent-deep); border-color: var(--accent-deep); color: #fff; }

body.manifeste .calc-result {
    background: var(--surface);
    border: 1px solid var(--rule);
    border-left: 3px solid var(--ink);
    border-radius: 3px;
}
body.manifeste .calc-result h3 {
    font-family: var(--serif);
    font-weight: 550;
    color: var(--ink);
}
body.manifeste .calc-result .big-number {
    font-family: var(--mono);
    font-weight: 600;
    font-size: 2.4rem;
    color: var(--ink);
}
body.manifeste .calc-result .equiv-list { border-top: 1px solid var(--rule); }

/* ============================================================
   14. COMPOSANTS CONVERSION.CSS (bandeaux, preuves, modales)
   ============================================================ */

/* Barre de confiance */
body.manifeste .trust-bar {
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: 4px;
    color: var(--ink-2);
    font-family: var(--mono);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
}
body.manifeste .trust-bar .check { color: #557a5e; }

/* Bandeau CTA collant */
body.manifeste .sticky-cta-banner {
    background: var(--surface);
    border-top: 1px solid var(--rule-strong);
    box-shadow: 0 -6px 18px -12px color-mix(in srgb, var(--ink) 35%, transparent);
}
body.manifeste .sticky-cta-banner .message { color: var(--ink-2); }
body.manifeste .sticky-cta-banner .message strong { color: var(--ink); }
body.manifeste .sticky-cta-banner .btn-cta {
    background: var(--ink);
    color: var(--paper);
    border: 1px solid var(--ink);
    border-radius: 3px;
}
body.manifeste .sticky-cta-banner .btn-cta:hover { background: var(--accent-deep); border-color: var(--accent-deep); }
body.manifeste .sticky-cta-banner .close-btn { color: var(--ink-3); }
body.manifeste .sticky-cta-banner .close-btn:hover { color: var(--ink); }

/* Modale exit-intent */
body.manifeste .exit-intent-modal { background: color-mix(in srgb, var(--ink) 55%, transparent); }
body.manifeste .exit-intent-modal .content {
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: 6px;
    box-shadow: 0 24px 60px -24px color-mix(in srgb, var(--ink) 55%, transparent);
}
body.manifeste .exit-intent-modal h3 { font-family: var(--serif); font-weight: 550; color: var(--ink); }
body.manifeste .exit-intent-modal p { color: var(--ink-2); }
body.manifeste .exit-intent-modal .close-x { color: var(--ink-3); }
body.manifeste .exit-intent-modal input[type="email"]:focus { border-color: var(--ink); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ink) 12%, transparent); }
body.manifeste .exit-intent-modal button[type="submit"] {
    background: var(--ink);
    border: 1px solid var(--ink);
    border-radius: 3px;
}
body.manifeste .exit-intent-modal button[type="submit"]:hover { background: var(--accent-deep); border-color: var(--accent-deep); }
body.manifeste .exit-intent-modal .small-print { color: var(--ink-3); }

/* Chiffres de preuve sociale -> mono encre */
body.manifeste .social-proof-strip {
    background: transparent;
    border-top: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
}
body.manifeste .social-proof-strip .stat-number {
    font-family: var(--mono);
    font-weight: 600;
    color: var(--ink);
}
body.manifeste .social-proof-strip .stat-label { color: var(--ink-2); }
body.manifeste .social-proof-strip .since { font-family: var(--mono); color: var(--ink-3); }

/* Témoignages -> citation serif + méta mono */
body.manifeste .testimonials-section { background: transparent; }
body.manifeste .testimonial-card {
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: 6px;
    box-shadow: none;
}
body.manifeste .testimonial-card .stars { color: #a8853f; }
body.manifeste .testimonial-card blockquote {
    font-family: var(--serif);
    font-style: italic;
    color: var(--ink);
}
body.manifeste .testimonial-card .author { border-top: 1px solid var(--rule); }
body.manifeste .testimonial-card .avatar {
    background: var(--ink);
    color: var(--paper);
    font-family: var(--serif);
    border-radius: 50%;
}
body.manifeste .testimonial-card .name { color: var(--ink); }
body.manifeste .testimonial-card .meta,
body.manifeste .testimonial-card .composite-tag { font-family: var(--mono); color: var(--ink-3); }

/* Bouton flottant d'impression (ressources/, écran seulement) */
body.manifeste .floating-print-btn {
    background: var(--ink);
    color: var(--paper);
    border: 1px solid var(--ink);
    border-radius: 3px;
    box-shadow: 0 2px 8px -2px color-mix(in srgb, var(--ink) 40%, transparent);
}
body.manifeste .floating-print-btn:hover { background: var(--accent-deep); border-color: var(--accent-deep); transform: none; box-shadow: 0 2px 8px -2px color-mix(in srgb, var(--ink) 40%, transparent); }

/* ============================================================
   15. PRICING
   ============================================================ */
body.manifeste .pricing-eyebrow {
    font-family: var(--mono);
    font-weight: 500;
    letter-spacing: 0.18em;
    color: var(--ink-3);
    background: transparent;
    border: 1px solid var(--rule);
    border-radius: 2px;
}
body.manifeste .pricing-social { color: var(--ink-3); font-family: var(--mono); font-size: 0.78rem; }
body.manifeste .pricing-social b { color: var(--ink); }
body.manifeste .pricing-social .stars { color: #a8853f; }

body.manifeste .bill-toggle {
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: 3px;
}
body.manifeste .bill-toggle button { color: var(--ink-2); font-weight: 600; border-radius: 2px; }
body.manifeste .bill-toggle button.active { color: var(--paper); }
body.manifeste .bill-toggle .bill-pill {
    background: var(--ink);
    border-radius: 2px;
    box-shadow: none;
}
body.manifeste .bill-save {
    font-family: var(--mono);
    background: #e7dcc0;
    color: #655326;
    border-radius: 2px;
}

body.manifeste .plan {
    background: var(--surface);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    border: 1px solid var(--rule);
    border-radius: 10px;
    box-shadow: none;
}
body.manifeste .plan:hover { transform: none; border-color: var(--rule-strong); box-shadow: none; }
body.manifeste .plan--pop {
    background: var(--ink);
    border-color: var(--ink);
    box-shadow: none;
    color: color-mix(in srgb, var(--paper) 85%, transparent);
}
body.manifeste .plan--pop .plan-name,
body.manifeste .plan--pop .plan-price-amount { color: var(--paper); }
body.manifeste .plan--pop .plan-tag,
body.manifeste .plan--pop .plan-price-period,
body.manifeste .plan--pop .plan-price-sub,
body.manifeste .plan--pop .plan-reassure { color: color-mix(in srgb, var(--paper) 60%, transparent); }
body.manifeste .plan--pop .feat { color: color-mix(in srgb, var(--paper) 82%, transparent); }
body.manifeste .plan--pop .feat strong { color: var(--paper); }
body.manifeste .plan--pop .feat--head { color: var(--paper); }
body.manifeste .plan--pop .plan-foot { border-color: color-mix(in srgb, var(--paper) 18%, transparent); }
body.manifeste .plan-ribbon {
    background: var(--accent);
    color: #fff;
    border-radius: 2px;
    box-shadow: none;
    font-family: var(--mono);
    letter-spacing: 0.1em;
}
body.manifeste .plan-name { font-family: var(--serif); font-weight: 550; }
body.manifeste .plan-price-amount { font-family: var(--mono); font-weight: 600; font-size: 2.6rem; }
body.manifeste .plan-price-sub .save { color: #6b562e; }
body.manifeste .plan--pop .plan-price-sub .save { color: #e7dcc0; }

body.manifeste .plan-cta--primary {
    background: var(--ink);
    color: var(--paper);
    border: 1px solid var(--ink);
    border-radius: 3px;
    box-shadow: none;
}
body.manifeste .plan-cta--primary:hover { background: var(--accent-deep); border-color: var(--accent-deep); color: #fff; transform: none; box-shadow: none; }
body.manifeste .plan--pop .plan-cta--primary { background: var(--paper); color: var(--ink); border-color: var(--paper); }
body.manifeste .plan--pop .plan-cta--primary:hover { background: var(--accent-deep); border-color: var(--accent-deep); color: #fff; }
body.manifeste .plan-cta--ghost {
    background: transparent;
    color: var(--ink);
    border: 1px solid var(--rule-strong);
    border-radius: 3px;
}
body.manifeste .plan-cta--ghost:hover { background: var(--paper-2); border-color: var(--ink); transform: none; }
body.manifeste .plan-reassure b { color: var(--ink); }
body.manifeste .plan--pop .plan-reassure b { color: var(--paper); }

body.manifeste .feat-ico--on { background: var(--ink); color: var(--paper); }
body.manifeste .plan--pop .feat-ico--on { background: color-mix(in srgb, var(--paper) 18%, transparent); color: var(--paper); }
body.manifeste .feat-ico--off { background: color-mix(in srgb, var(--ink) 8%, transparent); color: var(--ink-3); }
body.manifeste .feat--off { color: var(--ink-3); }
body.manifeste .feat--head { color: var(--ink); font-family: var(--mono); font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; }

body.manifeste .guarantee {
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: 6px;
}
body.manifeste .guarantee .g-item { color: var(--ink-2); }
body.manifeste .guarantee .g-item svg { color: var(--ink); }

/* Colonne « pro » du comparatif pricing -> papier-2 + tag encre */
body.manifeste .compare-table th.col-pro {
    background: var(--ink) !important;
    color: var(--paper) !important;
}
body.manifeste .compare-table td.col-pro { background: color-mix(in srgb, var(--paper-2) 70%, transparent); }
body.manifeste .compare-table tbody tr:hover td.col-pro { background: var(--paper-2); }
body.manifeste .ct-yes { color: var(--ink); }
body.manifeste .ct-no { color: color-mix(in srgb, var(--ink) 25%, transparent); }

/* ============================================================
   16. HUBS : conditions / compléments / blog / outils / ressources
   ============================================================ */

/* --- conditions/index --- */
body.manifeste .stat-card {
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: 6px;
    box-shadow: none;
}
body.manifeste .stat-card::before { background: var(--ink); height: 2px; }
body.manifeste .stat-card:hover { transform: none; border-color: var(--rule-strong); box-shadow: none; }
body.manifeste .stat-number {
    font-family: var(--mono);
    font-weight: 600;
    background: none;
    -webkit-text-fill-color: currentColor;
    color: var(--ink);
}
body.manifeste .stat-label { color: var(--ink-3); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; }

body.manifeste .category-header { border-bottom: 1px solid var(--rule); }
body.manifeste .category-icon {
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: 6px;
    box-shadow: none;
}
body.manifeste .cat-glyco { color: #46573f; }
body.manifeste .cat-meta { color: #40546a; }
body.manifeste .cat-musc { color: #5d4f66; }
body.manifeste .cat-derm { color: #6d4a56; }
body.manifeste .category-title { font-family: var(--serif); font-weight: 550; color: var(--ink); }
body.manifeste .category-meta { color: var(--ink-3); font-family: var(--mono); font-size: 0.78rem; }

body.manifeste .condition-card {
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: 6px;
    box-shadow: none;
}
body.manifeste .condition-card:hover { transform: none; border-color: var(--rule-strong); box-shadow: none; }
body.manifeste .condition-card::after { content: none; }
body.manifeste .condition-icon {
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: 6px;
}
body.manifeste .condition-meta {
    font-family: var(--mono);
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: 2px;
    color: var(--ink-2);
}
body.manifeste .cat-glyco-card .condition-meta { color: #3d5240; }
body.manifeste .cat-meta-card .condition-meta { color: #3c5069; }
body.manifeste .cat-musc-card .condition-meta { color: #5d4f66; }
body.manifeste .cat-derm-card .condition-meta { color: #6d4a56; }
body.manifeste .condition-name { font-family: var(--serif); font-weight: 600; color: var(--ink); }
body.manifeste .condition-desc { color: var(--ink-2); }
body.manifeste .condition-features { border-top: 1px solid var(--rule); }
body.manifeste .feature-tag {
    font-family: var(--mono);
    background: transparent;
    border: 1px solid var(--rule);
    border-radius: 2px;
    color: var(--ink-3);
}
body.manifeste .condition-arrow { color: var(--accent-deep); }

body.manifeste .roadmap-section {
    background: var(--paper-2);
    border: 1px dashed var(--rule-strong);
    border-radius: 6px;
}
body.manifeste .roadmap-item {
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: 3px;
    color: var(--ink-2);
}
body.manifeste .roadmap-item:hover { background: var(--surface); border-color: var(--rule-strong); color: var(--ink); }
body.manifeste .roadmap-item .dot { background: var(--ink-3); }
body.manifeste .badge-planned {
    font-family: var(--mono);
    background: transparent;
    color: var(--ink-3);
    border: 1px dashed var(--rule-strong);
    border-radius: 2px;
}

body.manifeste .cat-filter a {
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: 3px;
    color: var(--ink-2);
    font-family: var(--mono);
    font-size: 0.78rem;
}
body.manifeste .cat-filter a:hover { background: var(--paper-2); border-color: var(--ink); color: var(--ink); transform: none; }

body.manifeste .trust-pill { color: var(--ink-2); font-family: var(--mono); font-size: 0.78rem; }
body.manifeste .trust-pill svg { color: var(--ink); }

/* --- complements/ --- */
body.manifeste .supp-card {
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: 6px;
    box-shadow: none;
}
body.manifeste .supp-card:hover { transform: none; border-color: var(--rule-strong); box-shadow: none; }
body.manifeste .supp-icon {
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: 6px;
    color: var(--ink-2);
}
body.manifeste .supp-detail {
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: 6px;
    box-shadow: none;
}
body.manifeste .supp-detail h3 { font-family: var(--serif); font-weight: 550; }
body.manifeste .tier-section { border-top: 1px solid var(--rule); }

/* --- tuiles d'icônes des hubs outils/ressources (bg primaire clair) --- */
body.manifeste .w-12.h-12.rounded-xl,
body.manifeste .w-12.h-12.rounded-2xl {
    background-color: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: 6px;
}

/* --- cartes de liens génériques (blog, outils, glycoguard) --- */
body.manifeste a.block[class*="border"],
body.manifeste a[class*="rounded-xl"][class*="border"],
body.manifeste a[class*="rounded-2xl"][class*="border"],
body.manifeste div[class*="rounded-2xl"][class*="border-gray-200"],
body.manifeste form[class*="rounded-2xl"][class*="border"],
body.manifeste aside[class*="rounded-2xl"][class*="border"],
body.manifeste section[class*="rounded-2xl"][class*="border"] {
    border-color: var(--rule);
    transition: border-color .18s ease, background-color .18s ease;
}
body.manifeste a.block[class*="border"]:hover,
body.manifeste a[class*="rounded-xl"][class*="border"]:hover,
body.manifeste a[class*="rounded-2xl"][class*="border"]:hover {
    border-color: var(--rule-strong);
    transform: none;
}

/* ============================================================
   17. COMPARATEURS (blog/concurrents — cmp-table)
   ============================================================ */
body.manifeste .cmp-section { background: transparent; }
body.manifeste .cmp-wrap {
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: 6px;
    box-shadow: none;
}
body.manifeste .cmp-table { background: transparent; }
body.manifeste .cmp-table thead th {
    font-family: var(--mono);
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ink-3);
    background: transparent;
    border-bottom: 1px solid var(--ink);
}
body.manifeste .cmp-table tbody td { border-bottom: 1px solid var(--rule); color: var(--ink-2); }
body.manifeste .cmp-table tbody td:first-child { color: var(--ink); }
body.manifeste .cmp-table tbody tr:hover td { background: color-mix(in srgb, var(--paper-2) 60%, transparent); }
body.manifeste .cmp-col-own { background: color-mix(in srgb, var(--paper-2) 65%, transparent) !important; }
body.manifeste .cmp-table thead th.cmp-col-own {
    background: var(--paper-2) !important;
    color: var(--ink);
    border-top: 2px solid var(--ink);
    border-radius: 0;
}
body.manifeste .cmp-own-tag {
    font-family: var(--mono);
    background: var(--ink);
    color: var(--paper);
    border-radius: 2px;
}
body.manifeste .cmp-yes { background: var(--ink); color: var(--paper); border-radius: 2px; }
body.manifeste .cmp-no { background: color-mix(in srgb, var(--ink) 7%, transparent); color: var(--ink-3); border-radius: 2px; }
body.manifeste .cmp-partial { background: #e7dcc0; color: #655326; border-radius: 2px; }
body.manifeste .cmp-txt { color: var(--ink-3); }
body.manifeste .cmp-col-own .cmp-txt { color: var(--ink-2); }
body.manifeste .cmp-legend, body.manifeste .cmp-note { font-family: var(--mono); font-size: 0.74rem; color: var(--ink-3); }

/* ============================================================
   18. RESSOURCES : la feuille imprimable reste une feuille blanche
   posée sur le papier (métaphore document) — écran seulement.
   ============================================================ */
body.manifeste .printable {
    border: 1px solid var(--rule);
    box-shadow: 0 2px 10px -4px color-mix(in srgb, var(--ink) 25%, transparent);
}

/* ============================================================
   19. CORRECTIFS ADDITIFS DE BUGS LEGACY (trouvés en QA crawl)
   Utilitaires absents du tailwind compilé — préexistants au
   reskin, corrigés ici sans toucher au HTML.
   ============================================================ */
/* glycoguard.html (+ en/) : w-56/md:w-64 non compilés -> la montre
   SVG occupait toute la largeur du conteneur (~960px). */
body.manifeste header svg[viewBox="0 0 220 300"] {
    display: block;
    width: min(16rem, 100%);
    height: auto;
}
/* md:grid-cols-[1.1fr_0.9fr] non compilé -> hero sur une colonne. */
@media (min-width: 768px) {
    body.manifeste header[class*="1.1fr_0.9fr"] { grid-template-columns: 1.1fr 0.9fr; }
}

/* ============================================================
   20. MCARDLE/ALIMENTS (pages générées par build-food-pages.js)
   ============================================================ */
/* Barre de verdict : ex-style inline saturé -> filet 2px désaturé.
   Rouge ECG réservé au verdict « attention » (vigilance). */
body.manifeste .food-strip { height: 2px; border-radius: 0; margin-bottom: 2rem; }
body.manifeste .food-strip--pre-effort { background: #557a5e; }
body.manifeste .food-strip--fond { background: #62748a; }
body.manifeste .food-strip--moderation { background: #a8853f; }
body.manifeste .food-strip--attention { background: var(--accent); }

/* Chiffres IG / glucides -> mono */
body.manifeste .food-facts strong { font-family: var(--mono); font-weight: 600; color: var(--ink); }

/* Titres de groupes de l'index : tick désaturé par verdict */
body.manifeste .food-group-title::before {
    content: '';
    display: inline-block;
    width: 0.8em;
    height: 2px;
    margin-right: 0.55em;
    vertical-align: middle;
    background: var(--ink);
}
body.manifeste .food-group-title--pre-effort::before { background: #557a5e; }
body.manifeste .food-group-title--fond::before { background: #62748a; }
body.manifeste .food-group-title--moderation::before { background: #a8853f; }
body.manifeste .food-group-title--attention::before { background: var(--accent); }

} /* fin @media screen */
