/* ═══════════════════════════════════════════════════════════════════════════
   PROSPECTING MANUAL — pm-global.css
   Feuille unique du site. Elementor → Custom Code, ou fichier enfant du thème.

   COMPOSITION
     · Sections 1 à 43   — v6.2, inchangée, référence en lecture seule.
     · Sections 44 à 64  — socle et composants partagés, issus de la scission
                           de `02-CSS-additif-v6_3.css`.
     · Sections 101 à 109, 120 et 127 à 134 — composants promus au socle à leur
                           deuxième usage (décision 21).

   Ce fichier ne contient RIEN qui ne serve qu'à un seul template. Ce qui ne
   sert qu'à la review vit dans `review/02-CSS-additif-review.css`, ce qui ne
   sert qu'au classement dans `decision-ranking/02-CSS-additif-decision-ranking.css`.

   NUMÉROTATION — 48, 54 et 59 sont vides définitivement. Une section coupée
   en deux par la scission porte un suffixe (47.1 ici, 47.2 dans la review) :
   un numéro appartient à son contenu, pas à son fichier, et aucun numéro ne
   recule jamais. Le prochain template libre reprend à 187 (184 : l'encre de base des paragraphes, 185 : la palette des cartes de situation, 186 : la ligne « Also reviewed », décision 129 ; 157 : divulgation en deux temps
   sur carte claire, promue le 21 septembre 2026, décision 120 ; 158 et 159 : bandeau « What this
   page does » et tri de lecture, promus le 22 septembre 2026, décision 123 ; 160 à 166 :
   additif de `guide-playbook` ; 167 à 169 : ouverture d'un guide, frise d'étapes à cocher (`pm-ticks*`, décision 126), lignes
   d'outil groupées, promues le 22 septembre 2026, décision 125 ; 170 à 175 : additif de
   `guide-procedure` ; 176 : puces du cadre « at a glance » et liste copiée, promues le 22 septembre
   2026, décision 127 ; 177 à 180 : additif de `guide-diagnostic` ; 181 à 183 : additif d'`index`).

   SOCLE HÉRITÉ — depuis le 22 septembre 2026 (étape 3.8, chantier A, décision 129), les règles de la v6.2
   qu'aucun des 14 templates n'emploie (491 règles : hero, badges, tool card, pricing cards, pros / cons,
   comparison table, CTA, ancienne FAQ, cluster grid, header / nav, footer…) vivent dans `pm-legacy-v62.css`,
   écrit par `_SCRIPTS/scinder_socle.py`, chargé AVANT ce fichier, sous les mêmes numéros de section. Il reste
   chargé tant que `compteurs-site.json` compte une page « déjà en ligne » ; il se retire sur accord du
   propriétaire. Ce fichier-ci ne porte plus que ce que les 14 templates emploient.

   BUGS DE LA v6.2 CORRIGÉS ICI
     1. `.pm-ck` utilisée dans les tableaux mais jamais définie ...... § 57
     2. `.pm-btn-sm` déclarée après `.pm-btn-g`, écrasant son fond ... § 45
     3. `.pm-faq` n'était pas un accordéon ......................... § 56
     4. `.pm-section` redéfinie dans le CSS inline de l'ancien hub .. sans objet
        (le CSS inline disparaît avec les nouveaux gabarits)
     5. `.pm-tbl tbody th` forcée en `!important` sur une couleur de
        surface claire, illisible dans le tiroir sombre ............ § 57

   CORRECTIONS DE CONTRASTE — les niveaux --pm-dt4 (.36) et --pm-lt4/lt5
   servaient pour du contenu et non pour de la décoration. Les textes
   concernés sont remontés d'un cran. Les jetons eux-mêmes ne sont pas
   touchés : ils restent ceux de la v6.2.
   ═══════════════════════════════════════════════════════════════════════════ */



/* ═══════════════════════════════════════════════════════════════════════════
   PROSPECTING MANUAL — GLOBAL CSS SYSTEM
   Version: 6.2 — Ultra Premium / Dark Editorial / Futuristic Luxe
   Stack: WordPress + Elementor + Astra
   ═══════════════════════════════════════════════════════════════════════════ */



/* ═══════════════════════════════════════════════════════════════════════════
   PROSPECTING MANUAL — GLOBAL CSS SYSTEM
   Version: 6.2 — Ultra Premium / Dark Editorial / Futuristic Luxe
   Stack: WordPress + Elementor + Astra
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   1. DESIGN TOKENS
   ═══════════════════════════════════════════════════════════════════════════ */
:root{
  --pm-d0: #030810;
  --pm-d1: #060C18;
  --pm-d2: #091220;
  --pm-d3: #0D1A2E;
  --pm-d4: #122038;
  --pm-d5: #172744;

  --pm-b5: #1D4ED8;
  --pm-b4: #2563EB;
  --pm-b3: #3B82F6;
  --pm-b2: #60A5FA;
  --pm-b1: #93C5FD;
  --pm-b0: #BFDBFE;

  --pm-v5: #3730A3;
  --pm-v4: #4338CA;
  --pm-v3: #4F46E5;
  --pm-v2: #6366F1;
  --pm-v1: #818CF8;
  --pm-v0: #A5B4FC;

  --pm-c3: #0891B2;
  --pm-c2: #06B6D4;
  --pm-c1: #22D3EE;
  --pm-c0: #67E8F9;

  --pm-ok:      #15803D;
  --pm-ok-l:    #22C55E;
  --pm-ok-0:    #86EFAC;
  --pm-err:     #DC2626;
  --pm-err-l:   #F87171;
  --pm-warn:    #D97706;
  --pm-warn-l:  #FCD34D;
  --pm-info:    #0891B2;
  --pm-info-l:  #22D3EE;

  --pm-grad:          linear-gradient(135deg, #2563EB 0%, #4F46E5 52%, #7C3AED 100%);
  --pm-grad-h:        linear-gradient(135deg, #1D55D8 0%, #4338CA 52%, #6D28D9 100%);
  --pm-grad-text:     linear-gradient(118deg, #60A5FA 0%, #818CF8 40%, #A78BFA 72%, #C084FC 100%);
  --pm-grad-subtle:   linear-gradient(135deg, rgba(37,99,235,.12) 0%, rgba(79,70,229,.10) 100%);
  --pm-grad-bdr: linear-gradient(
    90deg,
    transparent 0%,
    rgba(59, 124, 248, .50) 20%,
    rgba(107, 99, 240, .72) 50%,
    rgba(145, 135, 245, .44) 80%,
    transparent 100%
  );
  --pm-gbdr-top: linear-gradient(
    90deg,
    transparent 0%,
    rgba(59, 124, 248, .28) 25%,
    rgba(107, 99, 240, .42) 50%,
    rgba(145, 135, 245, .26) 75%,
    transparent 100%
  );

  --pm-l0: #F1F5FD;
  --pm-l1: #E8EEF9;
  --pm-l2: #DDE5F4;
  --pm-l3: #D2DCEF;
  --pm-lc: #EBF0FA;

  --pm-lt1: #0A1428;
  --pm-lt2: #192C4E;
  --pm-lt3: #354D72;
  --pm-lt4: #5B729A;
  --pm-lt5: #8097BE;

  --pm-dt1: #EEF4FF;
  --pm-dt2: rgba(238, 244, 255, .88);
  --pm-dt3: rgba(238, 244, 255, .62);
  --pm-dt4: rgba(238, 244, 255, .36);
  --pm-dt5: rgba(238, 244, 255, .20);

  --pm-db1: rgba(255, 255, 255, .07);
  --pm-db2: rgba(99, 102, 241, .22);
  --pm-db3: rgba(255, 255, 255, .12);

  --pm-fd: 'Urbanist', sans-serif;
  --pm-fb: 'Plus Jakarta Sans', sans-serif;
  --pm-fm: 'DM Mono', monospace;

  --pm-s1:  4px;
  --pm-s2:  8px;
  --pm-s3: 12px;
  --pm-s4: 16px;
  --pm-s5: 24px;
  --pm-s6: 32px;
  --pm-s7: 48px;
  --pm-s8: 64px;
  --pm-s9: 80px;

  --pm-r1:  6px;
  --pm-r2:  10px;
  --pm-r3:  14px;
  --pm-r4:  18px;
  --pm-r5:  22px;
  --pm-r6:  26px;
  --pm-r7:  32px;
  --pm-r-pill: 999px;

  --pm-shadow-xs: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.08);
  --pm-shadow-sm: 0 2px 8px rgba(0,0,0,.12), 0 4px 16px rgba(0,0,0,.08);
  --pm-shadow-md: 0 4px 16px rgba(0,0,0,.18), 0 8px 32px rgba(0,0,0,.12);
  --pm-shadow-lg: 0 8px 30px rgba(0,0,0,.24), 0 20px 60px rgba(0,0,0,.18);
  --pm-shadow-xl: 0 16px 48px rgba(0,0,0,.32), 0 36px 96px rgba(0,0,0,.24);

  --pm-t1:  .14s ease;
  --pm-t2:  .22s ease;
  --pm-t3:  .32s ease;
  --pm-t-spring: .26s cubic-bezier(.34, 1.56, .64, 1);
  --pm-t-smooth: .28s cubic-bezier(.4, 0, .2, 1);
}


/* ═══════════════════════════════════════════════════════════════════════════
   2. RESET & BASE
   ═══════════════════════════════════════════════════════════════════════════ */
*, *::before, *::after{ box-sizing: border-box; }

html{
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
html, body{ max-width: 100%; }

html body,
html body.elementor-page{
  background-color: var(--pm-d2) !important;
}

body{
  background:
    radial-gradient(
      ellipse 140% 90% at 50% -12%,
      #1C3468 0%,
      #162654 16%,
      #102042 30%,
      #0D1A38 46%,
      #0A152C 62%,
      #070F20 80%,
      #040A16 100%
    );
  font-family: var(--pm-fb);
  color: var(--pm-dt1);
  overflow-x: hidden;
  position: relative;
  font-size: var(--pm-fs-sm);
  line-height: 1.7;
}

body::before{
  content: '';
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 70% 40% at 50% 2%,    rgba(79, 120, 255, .22) 0%,  rgba(60, 100, 240, .08) 30%,  transparent 62%),
    radial-gradient(ellipse 36% 26% at 84% 10%,   rgba(139, 92, 246, .14) 0%,  rgba(109, 72, 216, .04) 44%,  transparent 72%),
    radial-gradient(ellipse 28% 20% at 18% 14%,   rgba(56, 120, 255, .10) 0%,  rgba(40, 96, 220, .02) 46%,   transparent 76%),
    radial-gradient(ellipse 50% 28% at 50% 36%,   rgba(50, 95, 230, .05) 0%,   rgba(36, 74, 200, .01) 50%,   transparent 78%),
    radial-gradient(ellipse 24% 12% at 24% 8%,    rgba(255, 255, 255, .055) 0%, rgba(255, 255, 255, .014) 28%, transparent 66%),
    linear-gradient(180deg,                         rgba(255, 255, 255, .026) 0%, rgba(255, 255, 255, .010) 10%, transparent 30%),
    radial-gradient(ellipse 100% 50% at 50% 100%,  rgba(42, 90, 230, .04) 0%,   transparent 64%);
}

body::after{
  content: '';
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, .055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .055) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, .022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .022) 1px, transparent 1px);
  background-size: 84px 84px, 84px 84px, 21px 21px, 21px 21px;
  background-position: center top, center top, 10px -6px, 10px -6px;
  opacity: .48;
  mask-image: linear-gradient(to bottom, black 0%, black 45%, rgba(0,0,0,.36) 74%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 45%, rgba(0,0,0,.36) 74%, transparent 100%);
}

.elementor-section-wrap, .e-con{ background-color: transparent !important; }
.elementor-section-wrap::before{ display: none; }
.elementor-section, .e-con, .elementor-widget-wrap,
.elementor-section-wrap, .e-con-inner{
  position: relative; z-index: auto !important; isolation: auto;
}
.elementor-widget-html,
.elementor-widget-html .elementor-widget-container{
  width: 100% !important; max-width: 100% !important;
  padding: 0 !important; margin: 0 !important;
  overflow-x: clip !important; overflow-y: visible !important;
  position: relative; z-index: auto !important; min-width: 0 !important;
  background: transparent !important; border: none !important;
  box-shadow: none !important; outline: none !important;
}
img, svg, video, iframe{ display: block; max-width: 100%; height: auto; }

.pm-wrap, .pm-wrap-lg, .pm-light, .pm-dark, .pm-tool, .pm-faq, .pm-step,
.pm-ri, .pm-rel-card, .pm-cta, .pm-footer, .pm-tool-n, .pm-ri-n,
.pm-rel-title, .pm-faq-q, .pm-step-title, .pm-cta-title,
.pm-cluster-name, .pm-tool-rg-name{
  overflow-wrap: anywhere; word-break: normal;
}


/* ═══════════════════════════════════════════════════════════════════════════
   3. GRAIN TEXTURE
   ═══════════════════════════════════════════════════════════════════════════ */

@keyframes pm-grain {
  0%,100% { transform: translate(0, 0); }
  10%     { transform: translate(-2%, -3%); }
  20%     { transform: translate(3%, 1%); }
  30%     { transform: translate(-1%, 4%); }
  40%     { transform: translate(2%, -2%); }
  50%     { transform: translate(-3%, 2%); }
  60%     { transform: translate(1%, -4%); }
  70%     { transform: translate(4%, 2%); }
  80%     { transform: translate(-2%, 1%); }
  90%     { transform: translate(3%, -1%); }
}


/* ═══════════════════════════════════════════════════════════════════════════
   4. TYPOGRAPHY — Calibrated scale
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-text-grad{
  background: var(--pm-grad-text);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  filter: saturate(.88) brightness(1.14);
}

.pm-h1{
  font-family: var(--pm-fd);
  font-size: var(--pm-fs-h1);
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1.04;
  color: var(--pm-dt1);
}


.pm-h3{
  font-family: var(--pm-fd);
  font-size: var(--pm-fs-h3);
  font-weight: 700;
  letter-spacing: -.022em;
  line-height: 1.24;
  color: var(--pm-lt1);
}


.pm-dark     .pm-body,
.pm-dark     .pm-body-lg,
.pm-dark     .pm-body-sm,
.pm-dark     p, .pm-dark li,
.pm-dark     .pm-verdict-p,
.pm-dark-section .pm-body,
/* La règle d'encre forcée de la v6.2 qui vivait ici (.pm-page-wrap.pm-section p { … !important }) est partie dans
   pm-legacy-v62.css, restreinte aux pages sans pm-wide ; l'encre de base des pages de la v8 est la section 184, en
   fin de fichier, sans !important (étape 3.8, chantier B, décision 129). */


/* ═══════════════════════════════════════════════════════════════════════════
   5. LAYOUT WRAPPERS
   ═══════════════════════════════════════════════════════════════════════════ */


.pm-page-wrap{ width: 100%; max-width: 1040px; margin: 0 auto; padding: 0 24px; }
.pm-section{ padding: 48px 0; }


/* ═══════════════════════════════════════════════════════════════════════════
   6. DARK CARD SURFACE
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   7. BREADCRUMB
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-bc{
  display: flex; align-items: center; gap: var(--pm-s2);
  flex-wrap: wrap; margin-bottom: 18px;
  font-family: var(--pm-fm); font-size:var(--pm-fs-meta);
  letter-spacing: .04em; color: var(--pm-ink-d2);
  position: relative; z-index: 2;
}
.pm-bc a{ color: var(--pm-ink-d2); text-decoration: none; transition: color var(--pm-t1); }
.pm-bc a:hover{ color: var(--pm-b2); }
.pm-bc .pm-bc-sep{ color: rgba(255,255,255,.14); font-size:var(--pm-fs-meta); }
.pm-bc .pm-bc-current{ color: var(--pm-ink-d1); }


/* ═══════════════════════════════════════════════════════════════════════════
   8. HERO — Compact premium
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   9. BADGES
   ═══════════════════════════════════════════════════════════════════════════ */


@keyframes pm-blink {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .28; transform: scale(.66); }
}


/* ═══════════════════════════════════════════════════════════════════════════
   10. BUTTONS
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-btns{ display: flex; align-items: center; gap: 10px; flex-wrap: wrap; position: relative; }
.pm-btns > *{ min-width: 0; }
.pm-btn, .pm-btn-s, .pm-btn-l, .pm-btn-lf, .pm-btn-sm{ text-decoration: none !important; }

.pm-btn{
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 24px; border-radius: var(--pm-r3); border: none; cursor: pointer;
  position: relative; overflow: hidden;
  font-family: var(--pm-fb); font-size: var(--pm-fs-ui); font-weight: 700; letter-spacing: normal;
  color: #fff !important; -webkit-text-fill-color: #fff !important;
  background: var(--pm-grad);
  box-shadow:
    0 0 0 1px rgba(99,102,241,.36), inset 0 1px 0 rgba(255,255,255,.20),
    inset 0 -1px 0 rgba(0,0,0,.14), 0 4px 16px rgba(37,99,235,.38), 0 12px 38px rgba(99,102,241,.24);
  transition: transform var(--pm-t-spring), box-shadow var(--pm-t2);
}
.pm-btn::before{
  content: ''; position: absolute; top: 0; left: -110%; width: 56%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.22), transparent);
  transform: skewX(-14deg); transition: left .60s ease;
}
.pm-btn::after{
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.07) 0%, transparent 52%, rgba(0,0,0,.06) 100%);
}
.pm-btn:hover::before{ left: 168%; }
.pm-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 0 0 1px rgba(129,140,248,.52), inset 0 1px 0 rgba(255,255,255,.24),
    inset 0 -1px 0 rgba(0,0,0,.16), 0 8px 26px rgba(37,99,235,.50), 0 18px 50px rgba(99,102,241,.32);
}
.pm-btn:active{ transform: translateY(0); }
.pm-btn .ic{
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: 7px;
  background: rgba(255,255,255,.20); font-size: var(--pm-fs-xs);
  transition: transform .34s cubic-bezier(.34,1.56,.64,1);
  position: relative; z-index: 1; flex-shrink: 0;
}
.pm-btn > span:not(.ic){ position: relative; z-index: 1; }
.pm-btn:hover .ic{ transform: translateX(5px) scale(1.16); }


.pm-btn-g{
  display: inline-flex; align-items: center; gap: 5px;
  padding: 7px 13px; border-radius: var(--pm-r2);
  background: transparent; border: 1px solid rgba(255,255,255,.09);
  cursor: pointer; font-size: var(--pm-fs-meta); font-weight: 600;
  color: var(--pm-ink-d2) !important; text-decoration: none !important;
  transition: all var(--pm-t1);
}
.pm-btn-g:hover{ color: var(--pm-ink-d1) !important; border-color: rgba(255,255,255,.18); }


.pm-btn-sm{
  display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  padding: 8px 16px; border-radius: var(--pm-r2); border: none; cursor: pointer;
  position: relative; overflow: hidden;
  font-family: var(--pm-fb); font-size: var(--pm-fs-meta); font-weight: 700; letter-spacing: normal;
  color: #fff !important; -webkit-text-fill-color: #fff !important;
  background: var(--pm-grad);
  box-shadow: 0 2px 10px rgba(37,99,235,.30), 0 5px 20px rgba(99,102,241,.20);
  transition: transform var(--pm-t-spring), box-shadow var(--pm-t2);
}
.pm-btn-sm:hover{
  transform: translateY(-1.5px);
  box-shadow: 0 4px 18px rgba(37,99,235,.46), 0 10px 32px rgba(99,102,241,.28);
}


/* ═══════════════════════════════════════════════════════════════════════════
   11. STATS BAR — compact
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   12. VERDICT BLOCK
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   13. TRUST BAR
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   14. LIGHT SECTION
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   15. SECTION LABEL
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   16. TOOL CARD
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   17. PRICING CARDS
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   18. TAGS
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   19. PROS / CONS
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   20. COMPARISON TABLE
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-tw{
  margin-bottom: 22px; border-radius: var(--pm-r3);
  overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch;
  background: transparent !important;
  box-shadow: 0 0 0 1px rgba(99,102,241,.14), 0 2px 10px rgba(99,102,241,.06), 0 10px 28px rgba(0,0,0,.06);
}
.pm-tbl{ width: 100%; min-width: 100%; border-collapse: separate !important; border-spacing: 0 !important; font-size: var(--pm-fs-meta); }
.pm-tbl thead, .pm-tbl thead tr{ background: #091426 !important; }
.pm-tbl thead th{
  background: #091426 !important; color: rgba(222,234,255,.72) !important;
  font-family: var(--pm-fm) !important; font-size:var(--pm-fs-xs) !important;
  font-weight: 600 !important; letter-spacing: .13em !important; text-transform: uppercase !important;
  padding: 14px 16px !important; border-right: 1px solid rgba(255,255,255,.10) !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06) !important;
  vertical-align: middle !important; text-align: left; white-space: nowrap;
}
.pm-tbl thead th:first-child{ border-top-left-radius: 14px !important; }
.pm-tbl thead th:last-child{ border-top-right-radius: 14px !important; border-right: none !important; }
.pm-tbl tbody tr, .pm-tbl tbody tr:nth-child(odd), .pm-tbl tbody tr:nth-child(even){ background: #EBF1F9 !important; }
.pm-tbl tbody td, .pm-tbl tbody th{
  background: #EBF1F9 !important; background-image: none !important; color: var(--pm-ink-l2) !important;
  padding: 12px 15px; vertical-align: middle;
  border-bottom: 1px solid rgba(110,128,200,.10) !important; border-right: 1px solid rgba(110,128,200,.08) !important; box-shadow: none !important;
}
.pm-tbl tbody td:last-child, .pm-tbl tbody th:last-child{ border-right: none !important; }
.pm-tbl tbody tr:first-child td, .pm-tbl tbody tr:first-child th{ border-top: 1px solid rgba(0,0,0,.06) !important; background: #EBF1F9 !important; }
.pm-tbl tbody th, .pm-tbl tbody .pm-tn, .pm-tbl tbody td:first-child{ color: #0A1426 !important; font-family: var(--pm-fd) !important; font-weight: 800 !important; background: #EBF1F9 !important; }
.pm-tbl tbody .pm-td-price, .pm-tbl tbody strong{ color: var(--pm-lt1) !important; }
.pm-tbl tbody tr:hover, .pm-tbl tbody tr:hover td, .pm-tbl tbody tr:hover th{ background: #E2EBF5 !important; background-image: none !important; }


.pm-tbl tbody tr::before, .pm-tbl tbody tr::after, .pm-tbl tbody td::before, .pm-tbl tbody td::after, .pm-tbl tbody th::before, .pm-tbl tbody th::after{ background: none !important; background-image: none !important; box-shadow: none !important; }


/* ═══════════════════════════════════════════════════════════════════════════
   21. CTA BOX
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   22. FAQ ACCORDION
   ═══════════════════════════════════════════════════════════════════════════ */


.pm-faq-q{ display: flex; align-items: flex-start; gap: 10px; margin-bottom: 8px; font-family: var(--pm-fb); font-size: var(--pm-fs-ui); font-weight: 700; letter-spacing: normal; color: #0A1426; }
.pm-faq-ic{ display: inline-flex; align-items: center; justify-content: center; width: 19px; height: 19px; margin-top: 1px; flex-shrink: 0; border-radius: 6px; background: var(--pm-grad); color: #fff; font-family: var(--pm-fm); font-size: 9px; }
.pm-faq-a{ padding-left: 29px; font-size: var(--pm-fs-ui); line-height: 1.78; font-weight: 400; color: var(--pm-ink-l2); }


/* ═══════════════════════════════════════════════════════════════════════════
   23. RELATED CARDS
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   24. EDITORIAL NOTE
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   25. CALLOUT BLOCKS
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   26. NUMBERED STEPS
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-steps{ list-style: none; margin: 0 0 22px; padding: 0; display: flex; flex-direction: column; gap: 10px; counter-reset: pm-step; }


/* ═══════════════════════════════════════════════════════════════════════════
   27. AFFILIATE NOTICES
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-aff{ display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 10px; position: relative; font-size:var(--pm-fs-meta); color: var(--pm-ink-d2); }
.pm-aff a{ color: var(--pm-ink-d2); text-decoration: underline; text-underline-offset: 3px; transition: color var(--pm-t1); }
.pm-aff a:hover{ color: var(--pm-b2); }


/* ═══════════════════════════════════════════════════════════════════════════
   28. HEADER / NAV — Fixed, glassy, premium
   ═══════════════════════════════════════════════════════════════════════════ */
@keyframes pm-shimmer-cta {
  0%   { transform: translateX(-140%) skewX(-22deg); opacity: 0; }
  8%   { opacity: 1; }
  92%  { opacity: 1; }
  100% { transform: translateX(360%)  skewX(-22deg); opacity: 0; }
}
@keyframes pm-logo-pulse {
  0%, 100% { box-shadow: 0 0 0 1px rgba(37,99,235,.20), 0 4px 18px rgba(37,99,235,.30), 0 0 36px rgba(99,102,241,.12), inset 0 1px 0 rgba(255,255,255,.13); }
  50%       { box-shadow: 0 0 0 1px rgba(99,102,241,.36), 0 6px 26px rgba(99,102,241,.44), 0 0 54px rgba(129,140,248,.22), inset 0 1px 0 rgba(255,255,255,.20); }
}
@keyframes pm-cta-glow {
  0%, 100% { box-shadow: 0 0 0 1px rgba(99,102,241,.34), 0 4px 18px rgba(37,99,235,.38), 0 10px 36px rgba(99,102,241,.22); }
  50%       { box-shadow: 0 0 0 1px rgba(129,140,248,.50), 0 6px 24px rgba(37,99,235,.54), 0 16px 50px rgba(99,102,241,.34); }
}


/* ═══════════════════════════════════════════════════════════════════════════
   29. FOOTER
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   30. GLOBAL KEYFRAMES & ENTRANCE ANIMATIONS
   ═══════════════════════════════════════════════════════════════════════════ */


@keyframes pm-fadein {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes pm-logo-levitate {
  0%, 100% { transform: translateY(0px) scale(1.00); filter: brightness(1.00) drop-shadow(0 4px 12px rgba(99,102,241,.24)); }
  50%       { transform: translateY(-7px) scale(1.08); filter: brightness(1.16) drop-shadow(0 12px 26px rgba(99,102,241,.50)); }
}
@keyframes pm-badge-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(129,140,248,.0), 0 0 7px rgba(129,140,248,.24); }
  50%       { box-shadow: 0 0 0 4px rgba(129,140,248,.0), 0 0 16px rgba(129,140,248,.48); }
}
@keyframes pm-arr-bounce {
  0%   { transform: translateX(0px); }
  40%  { transform: translateX(9px); }
  70%  { transform: translateX(4px); }
  100% { transform: translateX(6px); }
}
@keyframes pm-shimmer-card {
  0%   { left: -92%; opacity: 0; }
  6%   { opacity: 1; }
  94%  { opacity: 1; }
  100% { left: 134%; opacity: 0; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   31. DARK SECTION & EDITORIAL LAYOUT
   ═══════════════════════════════════════════════════════════════════════════ */


.pm-page-wrap.pm-section > p a,
.pm-page-wrap.pm-section-sm > p a,
.pm-page-wrap.pm-section-lg > p a{ color: #38BDF8 !important; text-decoration: none !important; font-weight: 500 !important; }
.pm-page-wrap.pm-section > p a:hover{ color: #7DD3FC !important; }


/* ═══════════════════════════════════════════════════════════════════════════
   32. CLUSTER GRID
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   33. ROUTE GRID
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   34. TOOL SHOWCASE GRID
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   35. READ & RELATED GRID
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   36. LIGHT SECTION TEXT CONSISTENCY
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   37. DIRECTORY TOOL CARDS (2-col auto-grid)
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   38. WRAPPER SHELL
   ═══════════════════════════════════════════════════════════════════════════ */
body main:has(.pm-bc), body article:has(.pm-bc), body .site-content:has(.pm-bc),
body .entry-content:has(.pm-bc), body .elementor:has(.pm-bc),
body .elementor-section-wrap:has(.pm-bc), body .e-con:has(.pm-bc),
body .e-con-inner:has(.pm-bc), body .elementor-widget-wrap:has(.pm-bc),
body .elementor-widget-container:has(.pm-bc){
  background: transparent !important; background-image: none !important;
  border: none !important; border-radius: 0 !important;
  box-shadow: none !important; outline: none !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
body main:has(.pm-bc)::before, body main:has(.pm-bc)::after,
body article:has(.pm-bc)::before, body article:has(.pm-bc)::after,
body .elementor:has(.pm-bc)::before, body .elementor:has(.pm-bc)::after,
body .elementor-section-wrap:has(.pm-bc)::before, body .elementor-section-wrap:has(.pm-bc)::after,
body .e-con:has(.pm-bc)::before, body .e-con:has(.pm-bc)::after,
body .e-con-inner:has(.pm-bc)::before, body .e-con-inner:has(.pm-bc)::after,
body .elementor-widget-wrap:has(.pm-bc)::before, body .elementor-widget-wrap:has(.pm-bc)::after,
body .elementor-widget-container:has(.pm-bc)::before, body .elementor-widget-container:has(.pm-bc)::after{
  content: none !important; display: none !important;
  background: none !important; background-image: none !important;
  border: none !important; box-shadow: none !important; outline: none !important;
}
.pm-bc, .pm-dark.pm-hero, .pm-trust, .pm-page-wrap, .pm-dark-section{ position: relative; z-index: 2; }


/* ═══════════════════════════════════════════════════════════════════════════
   39. DESKTOP HOVER — threshold 1440px
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   40. RESPONSIVE — burger threshold 1440px
   ═══════════════════════════════════════════════════════════════════════════ */


/* ── Laptop compact 1540px — tighter before burger kicks in ── */


@media (max-width: 1100px){
  
  
  
  
  
  
  
  
  
  
  .elementor, .elementor-section, .e-con, .elementor-widget-wrap,
  .elementor-section-wrap, .e-con-inner{ overflow-x: clip !important; overflow-y: visible !important; }
  .pm-h1{ font-size: var(--pm-fs-h1); }
  
  
  
}


/* ═══════════════════════════════════════════════════════════════════════════
   41. RESPONSIVE — Mobile 768px
   ═══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 768px){
  
  
  
  
  
  

  .pm-wrap, .pm-wrap-lg, .pm-page-wrap{ padding-left: 14px; padding-right: 14px; }
  
  
  

  
  
  
  
  
  
  
  
  
  

  
  
  
  
  

  .pm-btns, .pm-cta-row{ flex-direction: column; align-items: stretch; }
  .pm-btn, .pm-btn-s, .pm-btn-l, .pm-btn-lf, .pm-btn-sm{ width: 100%; justify-content: center; }
  
  
  .pm-tbl{ min-width: 540px; }
  
  
  

  .pm-h1{ font-size: var(--pm-fs-h2); line-height: 1.06; letter-spacing: -.036em; }
  
  .pm-h3{ font-size: var(--pm-fs-lead); }
  
  
  
  
  
  
  
}


/* ═══════════════════════════════════════════════════════════════════════════
   42. RESPONSIVE — Small mobile 480px
   ═══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 480px){
  .pm-h1{ font-size: var(--pm-fs-2xl); }
  
  
  
  
  
  
}


/* ═══════════════════════════════════════════════════════════════════════════
   43. REDUCE MOTION
   ═══════════════════════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce){
  .pm-cluster-icon, .pm-drop-link-icon,
  .pm-tool-rg-card .pm-tool-rg-header > img.pm-tool-logo,
  .pm-step::before, .pm-btn .ic, .pm-btn-l .arr-ic, .pm-footer-link,
  .pm-nav-actions .pm-btn.pm-nav-cta, .pm-logo-icon, .pm-badge-dot{ transition: none !important; animation: none !important; }
  
}


/* 44. CARTE DE BLOC */
.pm-card{position:relative;overflow:hidden;border-radius:var(--pm-r5);margin-bottom:12px;
  background:radial-gradient(circle at 84% 6%,rgba(79,120,255,.15) 0%,transparent 38%),
  radial-gradient(circle at 12% 0%,rgba(255,255,255,.04) 0%,transparent 26%),
  linear-gradient(180deg,#132340 0%,#101E36 58%,#0C1728 100%);
  border:1px solid rgba(148,168,255,.19);
  box-shadow:0 12px 30px rgba(0,0,0,.26),0 28px 68px rgba(0,0,0,.20),inset 0 1px 0 rgba(255,255,255,.04)}
.pm-card-b{padding:22px 24px}
.pm-card-l{border:none;
  background:radial-gradient(ellipse 76% 44% at 92% 0%,rgba(99,102,241,.045) 0%,transparent 62%),
  radial-gradient(ellipse 54% 34% at 8% 100%,rgba(37,99,235,.032) 0%,transparent 62%),
  linear-gradient(180deg,#EFF4FB 0%,#E5EDF7 100%);
  box-shadow:0 0 0 1px rgba(110,128,200,.18),0 8px 28px rgba(0,0,0,.10),0 28px 72px rgba(0,0,0,.14)}
.pm-card-l::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(circle,rgba(99,102,241,.065) 1px,transparent 1px);background-size:30px 30px;
  mask-image:radial-gradient(ellipse 80% 52% at 92% 0%,black 0%,transparent 62%),radial-gradient(ellipse 64% 42% at 8% 100%,black 0%,transparent 62%);
  -webkit-mask-image:radial-gradient(ellipse 80% 52% at 92% 0%,black 0%,transparent 62%),radial-gradient(ellipse 64% 42% at 8% 100%,black 0%,transparent 62%);opacity:.48}
.pm-card-l>*{position:relative;z-index:1}
/* liseré dégradé en tête de carte, repris de .pm-light-top */

.pm-card-l .pm-h3{color:var(--pm-lt1)}
.pm-card-l .pm-h3 span{color:var(--pm-ink-l2)}

.pm-h3{font-family:var(--pm-fb);font-size:var(--pm-fs-lead);font-weight:700;letter-spacing:normal;margin:0 0 14px;color:var(--pm-dt1)}
.pm-h3 span{font-weight:500;color:var(--pm-ink-d2);font-size:var(--pm-fs-meta);letter-spacing:0;margin-left:8px}

.pm-fine{font-family:var(--pm-fm);font-size:var(--pm-fs-meta);line-height:1.6;color:var(--pm-ink-d2);margin:12px 0 0}
.pm-card-l .pm-fine{color:var(--pm-ink-l2)}
.pm-fine a{color:var(--pm-b2);text-decoration:none}

/* 45. BOUTONS */
.pm-btn,.pm-btn-l,.pm-btn-sm{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border-radius:var(--pm-r-pill);font-family:var(--pm-fb);font-weight:700;letter-spacing:-.01em;
  text-decoration:none;cursor:pointer;border:none;transition:transform var(--pm-t-spring),box-shadow var(--pm-t2),background var(--pm-t2)}
.pm-btn{padding:11px 22px;font-size:var(--pm-fs-ui);background:var(--pm-grad);color:#fff;box-shadow:0 4px 14px rgba(79,70,229,.32)}
.pm-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(79,70,229,.44)}


.pm-btn-sm{padding:7px 15px;font-size:var(--pm-fs-meta);background:rgba(255,255,255,.05);color:var(--pm-ink-d1);border:1px solid rgba(255,255,255,.14)}
.pm-btn-sm:hover{background:rgba(255,255,255,.09)}
.pm-btn-sm.pm-btn-g{background:var(--pm-grad);color:#fff;border-color:transparent}
.pm-btn-sm.is-added{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.3);color:var(--pm-ok-0)}
.pm-btns{display:flex;flex-wrap:wrap;gap:9px}
/* variante teintee — action interne, entre le fantome et le degrade */
.pm-btn-sm.pm-btn-b,.pm-btn-l.pm-btn-b{background:rgba(99,102,241,.17);border-color:rgba(129,140,248,.38);color:var(--pm-b1)}
.pm-btn-sm.pm-btn-b:hover,.pm-btn-l.pm-btn-b:hover{background:rgba(99,102,241,.26);border-color:rgba(129,140,248,.55)}
/* CORRIGE : les boutons secondaires etaient blancs translucides sur carte claire, donc invisibles */
.pm-card-l .pm-btn-l,.pm-card-l .pm-btn-sm{background:var(--pm-l0);color:var(--pm-ink-l1);border:1px solid var(--pm-l3)}
.pm-card-l .pm-btn-l:hover,.pm-card-l .pm-btn-sm:hover{background:var(--pm-l1);border-color:rgba(99,102,241,.42);color:var(--pm-lt1)}
.pm-card-l .pm-btn-sm.pm-btn-b,.pm-card-l .pm-btn-l.pm-btn-b{background:rgba(79,70,229,.1);border-color:rgba(79,70,229,.28);color:var(--pm-v4)}
.pm-card-l .pm-btn-sm.pm-btn-b:hover,.pm-card-l .pm-btn-l.pm-btn-b:hover{background:rgba(79,70,229,.16);color:var(--pm-v5)}
.pm-card-l .pm-btn-sm.is-added{background:rgba(21,128,61,.11);border-color:rgba(21,128,61,.32);color:#15803D}

/* 46. BARRE STICKY */
.pm-stick{position:fixed;top:0;left:0;right:0;z-index:60;transform:translateY(-102%);transition:transform var(--pm-t-smooth);
  background:linear-gradient(180deg,rgba(9,18,32,.96),rgba(7,15,28,.98));
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(148,168,255,.16);box-shadow:0 8px 28px rgba(0,0,0,.4)}
.pm-stick.is-on{transform:translateY(0)}
.pm-stick-in{max-width:900px;margin:0 auto;padding:9px 20px;display:flex;align-items:center;gap:11px}
.pm-stick-logo{width:26px;height:26px;border-radius:7px;flex-shrink:0;background:rgba(255,255,255,.06);padding:3px}
.pm-stick-n{font-family:var(--pm-fb);font-size:var(--pm-fs-ui);font-weight:700;letter-spacing:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-pill{display:inline-flex;align-items:baseline;gap:3px;padding:3px 10px;border-radius:var(--pm-r-pill);
  background:rgba(99,102,241,.14);border:1px solid rgba(99,102,241,.3);flex-shrink:0}
.pm-pill b{font-family:var(--pm-fb);font-size:var(--pm-fs-ui);font-weight:700;color:var(--pm-b1);letter-spacing:normal}
.pm-pill i{font-family:var(--pm-fm);font-size:var(--pm-fs-meta);color:var(--pm-ink-d2);font-style:normal}
.pm-stick-sp{flex:1}
.pm-stick-esc{flex-shrink:0;font-size:var(--pm-fs-meta);font-weight:600;color:var(--pm-ink-d2);text-decoration:none;
  padding:7px 13px;border-radius:var(--pm-r-pill);border:1px solid rgba(255,255,255,.13);transition:all var(--pm-t2)}
.pm-stick-esc:hover{color:var(--pm-dt1);border-color:rgba(148,168,255,.4)}
.pm-stick .pm-btn{padding:9px 17px;font-size:var(--pm-fs-meta)}
/* séance 134 (« Tranché par délégation — séance 130 », point 1) : la barre ne sort plus de l'écran d'un téléphone — la pastille
   rétrécit jusqu'à son mot le plus long et sa période va à la ligne (jamais de points de suspension : la période est un fait) ;
   le bouton reprend sa largeur naturelle, 40 % de la barre au plus, et va lui aussi à la ligne quand la place manque (sous 768 px,
   la règle des boutons du socle le mettait à 100 % : il prenait toute la place et la pastille, qui ne rétrécissait pas, le
   poussait hors de l'écran) */
.pm-stick .pm-pill{flex-shrink:1}
.pm-stick .pm-pill b{flex-shrink:0}
.pm-stick .pm-btn{width:auto;max-width:40%}

/* ═══════════════════════════════════════════════════════════════════════════
   47.1 EN-TÊTE COMMUN ET BARRES DE SCORE — moitié socle de l'ancienne 47.
   Tout ce qui sert à plus d'un template : l'attaque de page et la famille
   de barres notées. La moitié propre à la review vit en 47.2.
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-eye{font-family:var(--pm-fm);font-size:var(--pm-fs-xs);letter-spacing:.13em;text-transform:uppercase;color:var(--pm-b2);margin-bottom:10px}
.pm-h1{font-family:var(--pm-fd);font-size:clamp(26px,3.5vw,35px);font-weight:800;letter-spacing:-.04em;line-height:1.08;margin:0 0 14px;color:var(--pm-dt1)}


.pm-aff{display:flex;align-items:baseline;gap:8px;margin:16px 0 0;padding-left:11px;
  border-left:2px solid rgba(129,140,248,.42);font-size:var(--pm-fs-meta);line-height:1.6;color:var(--pm-ink-d2);max-width:640px}
.pm-aff a{color:var(--pm-b2);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}


/* étoiles — dérivées du score du site, jamais d'une note tierce */


/* barres notées — une dimension par ligne */
.pm-sc-row{display:flex;align-items:center;gap:11px;padding:7px 0}
.pm-sc-lab{font-size:var(--pm-fs-meta);color:var(--pm-ink-d2);min-width:118px;flex-shrink:0}
.pm-sc-lab i{font-family:var(--pm-fm);font-size:var(--pm-fs-xs);font-style:normal;letter-spacing:.09em;text-transform:uppercase;color:var(--pm-ink-d2);display:block;margin-top:1px}
.pm-sc-trk{flex:1;height:5px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden;min-width:0}
/* dégradé porteur de sens : rouge sous 4,5 · ambre 4,5–6 · vert-jaune 6–7,2 · vert 7,2+ */
.pm-sc-fil{display:block;height:100%;width:0;border-radius:3px;transition:width 1.2s cubic-bezier(.22,1,.36,1)}
.pm-sc-fil[data-band="bad"]{background:linear-gradient(90deg,#B91C1C,#EF4444);box-shadow:0 0 11px rgba(239,68,68,.42)}
.pm-sc-fil[data-band="weak"]{background:linear-gradient(90deg,#D97706,#FBBF24);box-shadow:0 0 11px rgba(251,191,36,.4)}
.pm-sc-fil[data-band="ok"]{background:linear-gradient(90deg,#84CC16,#BEF264);box-shadow:0 0 11px rgba(190,242,100,.4)}
.pm-sc-fil[data-band="good"]{background:linear-gradient(90deg,#16A34A,#4ADE80);box-shadow:0 0 11px rgba(74,222,128,.44)}
.pm-sc-fil[data-band="top"]{background:linear-gradient(90deg,#15803D,#34D399);box-shadow:0 0 13px rgba(52,211,153,.5)}
.pm-sc-v[data-band="bad"]{color:#FCA5A5}
.pm-sc-v[data-band="weak"]{color:#FCD34D}
.pm-sc-v[data-band="ok"]{color:#D9F99D}
.pm-sc-v[data-band="good"]{color:#86EFAC}
.pm-sc-v[data-band="top"]{color:#6EE7B7}
.pm-sc-v{font-family:var(--pm-fb);font-size:var(--pm-fs-ui);font-weight:700;color:var(--pm-dt1);min-width:24px;text-align:right;flex-shrink:0}


/* note éditoriale — seul texte libre d'un bloc de décision */
.pm-ednote{margin-top:20px;padding-left:14px;border-left:2px solid rgba(129,140,248,.5)}
.pm-ednote p{margin:0;font-size:var(--pm-fs-meta);line-height:1.7;color:var(--pm-ink-d2);font-style:italic}
.pm-ednote p b{color:var(--pm-ink-d1);font-weight:700;font-style:normal}

/* 50. VIDÉO */
.pm-vid{position:relative;border-radius:var(--pm-r4);overflow:hidden;
  background:radial-gradient(ellipse 70% 90% at 50% 50%,rgba(99,102,241,.3) 0%,transparent 62%),
  linear-gradient(150deg,#1B3054 0%,#132340 45%,#0C1728 100%);
  border:1px solid rgba(148,168,255,.22);aspect-ratio:16/9;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px}
.pm-vid-play{width:58px;height:58px;border-radius:50%;background:var(--pm-grad);color:#fff;font-size:var(--pm-fs-body);
  display:flex;align-items:center;justify-content:center;box-shadow:0 8px 26px rgba(79,70,229,.45);transition:transform var(--pm-t-spring)}
.pm-vid:hover .pm-vid-play{transform:scale(1.09)}
.pm-vid-t{font-size:var(--pm-fs-meta);font-weight:600;color:var(--pm-ink-d1)}
.pm-vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* 56. FAQ — accordéon. Corrige le bug 3 de la v6.2 (.pm-faq n'en était pas un).
   CORRIGÉ ICI : les couleurs étaient calées sur la carte claire uniquement, ce
   qui rendait le bloc illisible sur carte sombre. La déclaration par défaut vise
   maintenant la surface sombre, la carte claire surcharge. */
.pm-faq-i{border-bottom:1px solid rgba(255,255,255,.08)}
.pm-faq-i:last-child{border-bottom:none}
.pm-faq-q{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px 0;
  border:none;background:none;cursor:pointer;text-align:left;font-family:var(--pm-fb);font-size:var(--pm-fs-ui);
  font-weight:700;color:var(--pm-dt1)}
.pm-faq-ic{width:19px;height:19px;border-radius:50%;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;flex-shrink:0;
  font-family:var(--pm-fm);font-size:var(--pm-fs-xs);color:var(--pm-ink-d2);transition:transform var(--pm-t-spring)}
.pm-faq-q[aria-expanded="true"] .pm-faq-ic{transform:rotate(45deg);background:var(--pm-grad);border-color:transparent;color:#fff}
.pm-faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--pm-t-smooth)}
.pm-faq-q[aria-expanded="true"]+.pm-faq-a{grid-template-rows:1fr}
/* Décision 94 (18 septembre 2026) : la question est un <h3 class="pm-faq-h"> qui contient le bouton ;
   le titre ne porte aucune typographie (le bouton la porte) ; la forme sans <h3> reste reconnue
   au-dessus tant que les autres templates ne sont pas repris (étape 3.7). */
.pm-faq-h{display:block;margin:0;padding:0;font:inherit;line-height:inherit}
.pm-faq-h:has(>.pm-faq-q[aria-expanded="true"])+.pm-faq-a{grid-template-rows:1fr}
.pm-faq-a>div{overflow:hidden}
.pm-faq-a p{margin:0;padding:0 0 15px;font-size:var(--pm-fs-meta);line-height:1.7;color:var(--pm-ink-d2);max-width:70ch}
/* même bloc posé sur carte claire */
.pm-card-l .pm-faq-i{border-bottom-color:rgba(110,128,200,.16)}
.pm-card-l .pm-faq-q{color:var(--pm-lt1)}
.pm-card-l .pm-faq-ic{background:rgba(110,128,200,.14);border-color:rgba(110,128,200,.24);color:var(--pm-ink-l3)}
.pm-card-l .pm-faq-a p{color:var(--pm-ink-l2)}

/* 57. SHORTLIST + TIROIR */
.pm-slist{position:fixed;left:50%;bottom:20px;transform:translate(-50%,150%);z-index:70;display:flex;align-items:center;gap:11px;
  padding:9px 12px 9px 18px;border-radius:var(--pm-r-pill);
  background:linear-gradient(180deg,rgba(13,27,48,.97),rgba(9,19,32,.98));
  border:1px solid rgba(148,168,255,.22);box-shadow:0 16px 44px rgba(0,0,0,.5);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:transform var(--pm-t-spring);max-width:calc(100vw - 28px)}
.pm-slist.is-on{transform:translate(-50%,0)}
.pm-slist-l{font-family:var(--pm-fm);font-size:var(--pm-fs-meta);letter-spacing:.08em;color:var(--pm-ink-d2);white-space:nowrap}
.pm-slist-items{display:flex;gap:5px;flex-wrap:wrap;min-width:0}
.pm-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 7px 4px 11px;border-radius:var(--pm-r-pill);
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.11);font-size:var(--pm-fs-meta);font-weight:600;color:var(--pm-ink-d1);white-space:nowrap}
.pm-chip button{border:none;background:none;padding:0;width:15px;height:15px;border-radius:50%;cursor:pointer;color:var(--pm-ink-d2);font-size:var(--pm-fs-meta);line-height:1}
.pm-chip button:hover{background:rgba(255,255,255,.12);color:var(--pm-dt1)}
.pm-drawer{position:fixed;inset:0;z-index:90;display:none;align-items:flex-end;justify-content:center;background:rgba(3,8,16,.72);backdrop-filter:blur(6px)}
.pm-drawer.is-on{display:flex}
.pm-drawer-in{width:100%;max-width:860px;max-height:86vh;overflow-y:auto;padding:24px 26px 28px;
  border-radius:var(--pm-r6) var(--pm-r6) 0 0;background:linear-gradient(180deg,#0E1D34,#0A1526);
  border:1px solid rgba(148,168,255,.2);border-bottom:none;animation:pm-up .3s cubic-bezier(.22,1,.36,1)}
@keyframes pm-up{from{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}
.pm-drawer-h{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}
.pm-drawer-x{border:none;background:rgba(255,255,255,.06);color:var(--pm-ink-d1);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:var(--pm-fs-lead);flex-shrink:0}
.pm-tw{border-radius:var(--pm-r2);overflow-x:auto;-webkit-overflow-scrolling:touch}
.pm-tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--pm-fs-meta)}
.pm-tbl th,.pm-tbl td{padding:10px 13px;text-align:left;border-bottom:1px solid rgba(255,255,255,.07);border-right:1px solid rgba(255,255,255,.06)}
.pm-tbl thead th{background:rgba(255,255,255,.05);font-family:var(--pm-fm);font-size:var(--pm-fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--pm-ink-d2);white-space:nowrap}
.pm-tbl tbody th{font-family:var(--pm-fm);font-size:var(--pm-fs-meta);color:var(--pm-ink-d2);font-weight:400}
.pm-tbl tbody td{color:var(--pm-ink-d1)}
.pm-tbl th:last-child,.pm-tbl td:last-child{border-right:none}
.pm-tbl tbody tr:hover td{background:rgba(255,255,255,.03)}
.pm-ck,.pm-cx{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:5px;font-family:var(--pm-fm);font-size:var(--pm-fs-meta)}
.pm-ck{background:rgba(34,197,94,.14);color:var(--pm-ok-0)}
.pm-cx{background:rgba(220,38,38,.13);color:var(--pm-err-l)}
.pm-ck::before{content:'✓'}.pm-cx::before{content:'✕'}

/* CORRIGE — bug 5 de la v6.2 : `.pm-tbl tbody th, .pm-tbl tbody td:first-child`
   y est forcee en `!important` avec une couleur de surface claire (#0A1426 sur
   #EBF1F9). Dans le tiroir, qui est sombre, la colonne de gauche devenait noire
   sur bleu pale. Une specificite superieure ne suffit pas contre `!important` :
   il faut le neutraliser, en le limitant au tiroir pour ne rien casser ailleurs. */
.pm-drawer .pm-tbl tbody th,
.pm-drawer .pm-tbl tbody td:first-child{color:var(--pm-ink-d1)!important;background:transparent!important;
  font-family:var(--pm-fb)!important;font-weight:600!important}
.pm-drawer .pm-tbl thead th{color:var(--pm-ink-d2)!important;background:transparent!important}

/* 61. SECTIONS À ANCRES — le contenu long, en carte claire */
.pm-toc{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:26px;padding-bottom:22px;border-bottom:1px solid rgba(110,128,200,.2)}
.pm-toc a{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:var(--pm-r-pill);
  background:rgba(255,255,255,.55);border:1px solid rgba(110,128,200,.22);
  font-size:var(--pm-fs-meta);font-weight:600;color:var(--pm-ink-l1);text-decoration:none;transition:all var(--pm-t2)}
.pm-toc a:hover{background:#fff;border-color:rgba(99,102,241,.4);color:var(--pm-lt1);transform:translateY(-1px)}
.pm-toc a::before{content:'↓';font-family:var(--pm-fm);font-size:10px;color:var(--pm-ink-l3)}
.pm-sec{margin-bottom:28px;scroll-margin-top:70px}
.pm-sec:last-child{margin-bottom:0}
.pm-sec h2{margin:0 0 12px;font-family:var(--pm-fd);font-size:var(--pm-fs-h3);font-weight:800;letter-spacing:-.03em;color:var(--pm-lt1)}
.pm-sec p{margin:0 0 12px;font-size:var(--pm-fs-sm);line-height:1.75;color:var(--pm-ink-l2)}
.pm-sec p:last-child{margin-bottom:0}
.pm-sec p b{color:var(--pm-lt1);font-weight:700}
.pm-sec-tag{display:inline-block;margin-bottom:9px;font-family:var(--pm-fm);font-size:var(--pm-fs-xs);letter-spacing:.12em;
  text-transform:uppercase;color:var(--pm-ink-l3)}

/* 62. ENTRÉE DE COMPARAISON DIRECTE */


/* ═══════════════════════════════════════════════════════════════════════════
   58.1 RESPONSIVE DU SOCLE — moitié socle de l'ancienne 58.
   Ne traite que les classes présentes dans pm-global.css. Les réglages
   propres à la review vivent en 58.2, ceux du classement en 70.
   ═══════════════════════════════════════════════════════════════════════════ */
@media (max-width:768px){
  .pm-bc{padding:0 var(--pm-s4);font-size:var(--pm-fs-meta)}
  .pm-page-wrap{padding:0 var(--pm-s4)}
  .pm-card-b{padding:24px 20px}
  .pm-sc-lab{min-width:96px;font-size:var(--pm-fs-meta)}
  .pm-stick-n,.pm-stick-esc{display:none}
  .pm-slist{left:12px;right:12px;bottom:12px;transform:translateY(150%)}
  .pm-slist.is-on{transform:translateY(0)}
  .pm-drawer-in{max-height:88vh;padding:22px 18px}
  .pm-toc{gap:6px}
  .pm-sec h2{font-size:var(--pm-fs-lead)}
  
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
  .pm-sc-fil{transition:none}
}
:focus-visible{outline:2px solid var(--pm-b2);outline-offset:3px;border-radius:var(--pm-r1)}


/* ═══════════════════════════════════════════════════════════════════════════
   64. UTILITAIRES — remplacent les derniers styles inline du HTML de page.
   Le brief interdit tout style inline dans un bloc de page.
   `.pm-alert` est repliée dans la section 63 de l'additif review, où elle
   était déjà définie : elle ne peut pas rester déclarée deux fois.
   `.pm-chat-sug` part avec la section 55, même raison.
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-fine-r{text-align:right}

.pm-tail{height:70px}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTIONS 79 À 81 — PROMUES DEPUIS L'ADDITIF PRICING LE 14 SEPTEMBRE 2026
   Étape 3.3, décision 33. Elles corrigent les défauts 10 à 13 du socle, qui
   ne viennent pas de `pricing` et touchent des composants partagés. Leur
   numéro les suit : un numéro appartient à son contenu, pas à son fichier.
   Elles ont été RETIRÉES de `pricing/02-CSS-additif-pricing.css` dans le même
   mouvement : aucune déclaration ne subsiste en double.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════════
   79. TEXTE SUR SURFACE CLAIRE — correction d'une règle de la v6.2

   POURQUOI CETTE SECTION EXISTE
   La v6.2 force la couleur de TOUT paragraphe placé dans le conteneur de
   page :

       .pm-page-wrap.pm-section p { color: var(--pm-ink-d1) }

   C'est une couleur de texte sur fond sombre, appliquée sans condition et en
   ``. Elle est ensuite rattrapée par une liste blanche de contextes
   clairs — `.pm-faq p`, `.pm-pricing-card p`, `.pm-route-card p`, `.pm-tool p`
   et quelques autres — qui les repasse en `--pm-lt3`.

   Tout paragraphe posé sur carte claire SANS figurer dans cette liste blanche
   s'affiche donc en blanc cassé sur fond clair : illisible. Ce n'est pas une
   erreur de ce template, c'est le comportement par défaut du socle pour toute
   classe née après la v6.2.

   CE QUI EST CORRIGÉ ICI
   Uniquement les composants de ce template. Deux corrections concernent en
   revanche des classes PARTAGÉES — `.pm-sec p`, le contenu long, et
   `.pm-fine`, la mention de bas de bloc. Elles sont réparées ici pour que la
   page soit lisible tout de suite, mais leur place définitive est le socle :
   à signaler à l'étape 3.8, avec vérification du bloc de contenu long de
   `decision-ranking`, qui emploie `.pm-sec` dans le même conteneur et est
   donc atteint par le même défaut.

   MÉTHODE — aucune classe du socle n'est redéfinie. Chaque règle est
   contextuelle et porte une spécificité de trois classes, strictement
   supérieure aux deux classes et un élément de la règle v6.2, de sorte que le
   résultat ne dépend jamais de l'ordre de chargement des fichiers.

   MISE À JOUR DU 22 SEPTEMBRE 2026 (étape 3.8, chantier B, décision 129) — la règle forcée de la v6.2 est
   partie dans pm-legacy-v62.css, restreinte aux pages sans pm-wide ; le socle vivant pose une encre de base à
   une classe et un élément, en dernier du fichier (section 184) : elle gagne sur toute règle à une seule classe
   et perd devant deux ; les règles de cette section et de la section 108, comme les gardes des additifs, ont
   perdu leur !important : elles gagnent par leur spécificité (trois classes). Règle pour un composant neuf :
   un paragraphe se style avec deux classes (celle de la carte, la sienne), jamais avec !important.
   ═══════════════════════════════════════════════════════════════════════════ */

/* — surfaces sombres : rendre au texte sa hiérarchie, que la règle aplatit — */

.pm-page-wrap .pm-pr-drv-c .pm-pr-drv-t{color:var(--pm-ink-d2)}

/* — surfaces claires : rendre le texte visible — */

.pm-page-wrap .pm-card-l .pm-sec p{color:var(--pm-ink-l2);line-height:1.75}
.pm-page-wrap .pm-card-l .pm-sec p b{color:var(--pm-lt1)}
.pm-page-wrap .pm-card-l .pm-sec p a{color:#1868A8;text-decoration:underline;text-underline-offset:3px}
.pm-page-wrap .pm-card-l .pm-sec p a:hover{color:#145A90}
.pm-page-wrap .pm-card-l .pm-fine{color:var(--pm-ink-l2)}
.pm-page-wrap .pm-card-l .pm-fine a{color:#1868A8}

/* — la ligne de limite d'un profil garde son ambre, que la liste blanche de
     la v6.2 repasserait autrement en gris de corps — */


/* ═══════════════════════════════════════════════════════════════════════════
   80. BOUTONS SUR CARTE CLAIRE — deuxième correction d'une règle de la v6.2

   LE DÉFAUT
   La v6.2 déclare, dans sa moitié haute :

       .pm-btn-sm { color:#fff !important; -webkit-text-fill-color:#fff !important }

   La section 45 du socle redéclare ensuite `.pm-btn-sm` avec une couleur de
   texte adaptée, et `.pm-card-l .pm-btn-sm` en donne une pour carte claire —
   mais aucune des deux ne porte `!important`. La déclaration de la v6.2 gagne
   donc partout : **tout `.pm-btn-sm` du site affiche son texte en blanc**,
   quel que soit son fond.

   Sur carte sombre, personne ne le voit. Sur carte claire, le fond est bien
   repassé en clair par la section 45 mais le texte reste blanc : le bouton
   devient une pastille vide. Neuf boutons de cette page étaient dans ce cas —
   les trois rangées d'actions des profils et les trois `+ Compare` du bloc de
   sortie.

   `-webkit-text-fill-color` AVANT `color`
   Dans les navigateurs Chrome, Edge et Safari, `-webkit-text-fill-color` prime
   sur `color`. Corriger `color` seul ne suffit donc pas : les deux propriétés
   sont réécrites ensemble. C'est la raison pour laquelle ce défaut a pu passer
   inaperçu — une correction de `color` semble marcher, et ne marche pas.

   PORTÉE — ce défaut ne concerne pas ce template. `.pm-btn-sm` est le bouton
   secondaire de tout le site : review, alternatives, vs, decision-ranking.
   Partout où l'un d'eux est posé sur `.pm-card-l`, il est illisible. La
   correction a sa place dans le socle, à l'étape 3.8 ; elle est faite ici pour
   que la page soit utilisable tout de suite.
   ═══════════════════════════════════════════════════════════════════════════ */

/* action secondaire — encre sombre sur fond clair */
.pm-page-wrap .pm-card-l .pm-btn-sm,
.pm-page-wrap .pm-card-l .pm-btn-l{
  color:var(--pm-ink-l1)!important;-webkit-text-fill-color:var(--pm-lt2)!important}
.pm-page-wrap .pm-card-l .pm-btn-sm:hover,
.pm-page-wrap .pm-card-l .pm-btn-l:hover{
  color:var(--pm-lt1)!important;-webkit-text-fill-color:var(--pm-lt1)!important}

/* action teintée — le violet du système, pas le bleu de surface sombre */
.pm-page-wrap .pm-card-l .pm-btn-sm.pm-btn-b,
.pm-page-wrap .pm-card-l .pm-btn-l.pm-btn-b{
  color:var(--pm-v4)!important;-webkit-text-fill-color:var(--pm-v4)!important}
.pm-page-wrap .pm-card-l .pm-btn-sm.pm-btn-b:hover,
.pm-page-wrap .pm-card-l .pm-btn-l.pm-btn-b:hover{
  color:var(--pm-v5)!important;-webkit-text-fill-color:var(--pm-v5)!important}

/* état ajouté à la comparaison — vert lisible sur clair */
.pm-page-wrap .pm-card-l .pm-btn-sm.is-added{
  color:#15803D!important;-webkit-text-fill-color:#15803D!important}

/* action principale rémunérée — elle GARDE son dégradé et son texte blanc.
   La section 45 lui retirait son fond sur carte claire, ce qui la rendait
   indiscernable des deux autres : sur une page de prix, le bouton payant doit
   se distinguer, faute de quoi la divulgation ne porte sur rien de visible. */
.pm-page-wrap .pm-card-l .pm-btn-sm.pm-btn-g{
  background:var(--pm-grad)!important;border-color:transparent!important;
  color:#fff!important;-webkit-text-fill-color:#fff!important}


/* ═══════════════════════════════════════════════════════════════════════════
   81. BARRE STICKY — couleur de texte manquante dans le socle

   `.pm-stick`, `.pm-stick-in` et `.pm-stick-n` ne déclarent aucune couleur de
   texte. Dans la démo, le `body` en fournit une ; en production, l'élément
   hérite de celle du thème WordPress, qui est une encre sombre destinée à un
   fond clair. Le nom de l'outil s'afficherait alors en sombre sur la barre
   sombre.

   Le défaut est invisible sur toute démo autonome : il ne se voit qu'en
   raisonnant sur la cascade, jamais en regardant l'écran. Il appartient au
   socle et doit y remonter à l'étape 3.8, avec les trois autres.
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-stick .pm-stick-n{color:var(--pm-dt1)}
.pm-stick .pm-stick-esc{color:var(--pm-ink-d2)}


/* ═══════════════════════════════════════════════════════════════════════════
   101 à 109 — COMPOSANTS PROMUS DEPUIS `review` AU DEUXIÈME USAGE
   Étape 3.5, 16 septembre 2026, décision 59 (application de la décision 21).
   Créés pour la refonte de `review` (sections 92 à 100 de son additif),
   réemployés tels quels par `alternatives`. Renommés sans `rv`.

   Le conteneur de page porte `pm-wide` : cartes larges, police de lecture
   partout (le jeton à espacement fixe est neutralisé, décision 54), plancher
   12 px hors étiquettes en capitales espacées. Un template peut y ajouter sa
   propre classe de conteneur pour ce qui n'est qu'à lui.

   Règles suivies : aucune couleur de texte ne dépend d'une variable posée sur
   une classe (décision 38) — chaque texte a sa couleur sur carte sombre, et
   une règle `.pm-card-l …` la réécrit sur carte claire. Le jeton
   « inconvénient » est le corail #E8B4A4 / #A8502F (décision 53).
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 101. JETONS DE PANNEAU ET CONTENEUR LARGE ──────────────────────────
   Fonds et bordures des panneaux intérieurs d'une carte : variables locales,
   lues par les fonds et les bordures seulement.                            */
.pm-card{--pm-well:rgba(148,168,255,.13);--pm-well2:rgba(148,168,255,.2);--pm-line:rgba(148,168,255,.34);--pm-okbg:rgba(34,197,94,.13);--pm-badbg:rgba(232,180,164,.12)}
.pm-card-l{--pm-well:#FFFFFF;--pm-well2:#EEF2FA;--pm-line:rgba(110,128,200,.4);--pm-okbg:rgba(21,128,61,.1);--pm-badbg:rgba(168,80,47,.08)}
.pm-wide{--pm-fm:var(--pm-fb)}
.pm-wide .pm-card{border-radius:28px;margin-bottom:24px}
.pm-wide .pm-card-b{padding:40px 44px}
.pm-wide .pm-h1{font-size:var(--pm-fs-h1);line-height:1.04;margin:0 0 22px}
.pm-wide .pm-aff{font-size:var(--pm-fs-meta);margin:0 0 20px;max-width:560px}
.pm-wide .pm-pill{gap:2px}
.pm-wide .pm-pill i{font-family:var(--pm-fb);font-size:var(--pm-fs-meta);letter-spacing:0;color:var(--pm-ink-d2)}
.pm-wide .pm-faq-i:first-of-type{border-top:1px solid var(--pm-line)}
/* carte de décision — décision 52 */
.pm-card-hi.pm-card{background:radial-gradient(circle at 82% 0%,rgba(124,58,237,.13) 0%,transparent 46%),linear-gradient(180deg,#152142 0%,#101B36 55%,#0B1429 100%);border-color:rgba(167,139,250,.26);box-shadow:0 14px 36px rgba(10,12,50,.4)}
.pm-card-hi.pm-card-l{background:linear-gradient(180deg,#F4F6FE 0%,#EAEDF9 100%);box-shadow:0 0 0 1px rgba(99,102,241,.2),0 10px 30px rgba(79,70,229,.08)}
/* liens de saut dans la barre fixe */
.pm-jump{display:flex;gap:4px;flex-shrink:0}
.pm-jump a{font-size:var(--pm-fs-meta);font-weight:600;color:var(--pm-ink-d2);text-decoration:none;padding:6px 9px;border-radius:999px}
.pm-jump a:hover{color:#EEF4FF;background:rgba(255,255,255,.07)}

/* ── 102. EN-TÊTES DE BLOC, SOUS-TITRES, NOTES, INFOBULLE, GLOSSAIRE, PETIT BOUTON ── */
.pm-bh{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:26px}
.pm-bh-eye{font-size:var(--pm-fs-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#60A5FA;margin-bottom:8px}
.pm-card-l .pm-bh-eye{color:#1868A8}
.pm-bh h2{font-family:var(--pm-fd);font-size:var(--pm-fs-h2);letter-spacing:-.03em;margin:0;font-weight:800;line-height:1.1;color:#EEF4FF}
.pm-card-l .pm-bh h2{color:#0A1428}
.pm-bh-sub{margin:8px 0 0;font-size:var(--pm-fs-sm);color:var(--pm-ink-d2);max-width:640px}
.pm-card-l .pm-bh-sub{color:var(--pm-ink-l3)}
.pm-bh-side{font-size:var(--pm-fs-meta);color:var(--pm-ink-d2);text-align:right}
.pm-card-l .pm-bh-side{color:var(--pm-ink-l3)}
.pm-bh-side a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.pm-ss{display:flex;align-items:center;gap:14px;margin:34px 0 14px}
.pm-ss b{font-size:var(--pm-fs-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pm-ink-d2);white-space:nowrap}
.pm-ss i{flex:1;height:1px;background:var(--pm-line)}
.pm-ss span{font-size:var(--pm-fs-meta);color:var(--pm-ink-d2)}
.pm-card-l .pm-ss b,.pm-card-l .pm-ss span{color:var(--pm-ink-l3)}
.pm-fn{font-size:var(--pm-fs-meta);color:var(--pm-ink-d2);margin:14px 0 0;line-height:1.6}
.pm-card-l .pm-fn{color:var(--pm-ink-l3)}
.pm-fn a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.pm-src{font-size:var(--pm-fs-meta);color:var(--pm-ink-d2);margin:18px 0 0;line-height:1.6}
.pm-card-l .pm-src{color:var(--pm-ink-l3)}
.pm-src a{color:#60A5FA}.pm-card-l .pm-src a{color:#1868A8}
.pm-how{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1px solid var(--pm-line);background:var(--pm-well);color:#60A5FA;font-size:10px;font-weight:700;cursor:help;position:relative;vertical-align:2px;margin-left:5px;padding:0;font-family:var(--pm-fb)}
.pm-card-l .pm-how{color:#1868A8}
.pm-how::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);width:260px;padding:10px 12px;border-radius:10px;background:#0A1426;color:var(--pm-ink-d1);font-size:var(--pm-fs-meta);line-height:1.5;text-align:left;box-shadow:0 10px 30px rgba(0,0,0,.45);border:1px solid rgba(148,168,255,.19);display:none;z-index:6;font-weight:400}
.pm-how:hover::after,.pm-how:focus::after{display:block}
.pm-gl{text-decoration:underline dotted;text-underline-offset:3px;cursor:help;position:relative}
.pm-gl::after{content:attr(title);position:absolute;left:0;bottom:calc(100% + 6px);width:240px;padding:9px 11px;border-radius:9px;background:#0A1426;color:var(--pm-ink-d1);font-size:var(--pm-fs-meta);line-height:1.45;font-weight:400;border:1px solid rgba(148,168,255,.19);box-shadow:0 10px 30px rgba(0,0,0,.45);display:none;z-index:6}
.pm-gl:hover::after{display:block}
.pm-sm{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 14px;border-radius:999px;font-size:var(--pm-fs-meta);font-weight:700;text-decoration:none;cursor:pointer;font-family:var(--pm-fb);background:rgba(255,255,255,.07);color:var(--pm-ink-d1);border:1px solid var(--pm-line)}
.pm-card-l .pm-sm{background:#fff;color:var(--pm-ink-l1)}
.pm-sm.is-cta{background:var(--pm-grad);color:#fff;border-color:transparent}
.pm-card-l .pm-sm.is-cta{color:#fff}

/* ── 103. HERO À CARTE DE SCORE — verdict, ligne de méthode, auteur, jauge,
   prix et fraîcheur, paragraphe replié ─────────────────────────────────── */
.pm-hero-g{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px;align-items:center}
.pm-vd{font-size:var(--pm-fs-h3);line-height:1.5;color:var(--pm-ink-d1);margin:0 0 22px;max-width:560px}
.pm-vd b{color:#fff;display:block;margin-bottom:6px}
.pm-vd-meta{font-size:var(--pm-fs-meta);color:var(--pm-ink-d2);margin:0 0 20px}
.pm-vd-meta b{color:var(--pm-ink-d1);font-weight:600}
.pm-by{font-size:var(--pm-fs-meta);color:var(--pm-ink-d2);margin:22px 0 0}
.pm-by a{color:#60A5FA;text-decoration:none}
.pm-by a:hover{text-decoration:underline}
.pm-vc{border-radius:22px;background:var(--pm-well);border:1px solid var(--pm-line);padding:24px 20px 20px;text-align:center}
.pm-vc-who{font-size:var(--pm-fs-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pm-ink-d2);margin-bottom:12px}
.pm-vc-who img{width:26px;height:26px;border-radius:8px;vertical-align:middle;margin-right:8px;object-fit:contain}
.pm-vc-who b{display:block;font-family:var(--pm-fb);font-size:var(--pm-fs-lead);letter-spacing:normal;text-transform:none;color:#EEF4FF;margin-top:6px}
.pm-gauge{position:relative;display:flex;flex-direction:column;align-items:center}
.pm-gauge svg{width:210px;height:118px;overflow:visible}
.pm-gauge-trk{fill:none;stroke:rgba(255,255,255,.1);stroke-width:14;stroke-linecap:round}
.pm-gauge-arc{fill:none;stroke:url(#pmGaugeGrad);stroke-width:14;stroke-linecap:round;transition:stroke-dasharray 1s cubic-bezier(.22,1,.36,1)}
.pm-gauge-dot{fill:#fff}
.pm-gauge-n{position:absolute;top:48px;font-family:var(--pm-fd);font-size:var(--pm-fs-num);font-weight:800;letter-spacing:-.02em;line-height:1;background:var(--pm-grad-text);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.pm-gauge-l{font-size:var(--pm-fs-meta);font-weight:700;letter-spacing:.12em;color:var(--pm-ink-d2);margin-top:-8px}
.pm-vc-sep{height:1px;margin:18px 0;background:linear-gradient(90deg,transparent,rgba(148,168,255,.22) 18%,rgba(148,168,255,.22) 82%,transparent)}
.pm-vc-price b{font-family:var(--pm-fd);font-size:var(--pm-fs-h1);font-weight:800;letter-spacing:-.02em;line-height:1;color:#EEF4FF}
.pm-vc-price b small{font-family:var(--pm-fb);font-size:var(--pm-fs-ui);font-weight:500;color:var(--pm-ink-d2);display:inline-block;max-width:100%;line-height:1.3;letter-spacing:normal;margin-left:.3em}
.pm-vc-price span{display:block;font-size:var(--pm-fs-meta);color:var(--pm-ink-d1);margin-top:6px}
.pm-fresh{display:block;font-size:var(--pm-fs-meta);color:var(--pm-ink-d2);margin-top:8px;line-height:1.5}
.pm-fresh a{color:var(--pm-ink-d2)}
.pm-fresh.is-stale{color:#FCD34D}
.pm-stale{display:block;margin-top:4px;color:#FCD34D}
.pm-stale[hidden]{display:none}
.pm-card-l .pm-stale,.pm-card-l .pm-fresh.is-stale{color:#92400E}
.pm-card-l .pm-fresh{color:var(--pm-ink-l3)}   /* séance 141 : la ligne sous la note sur une carte claire (duel, cartes d'alternatives, podium, fiches) */
.pm-short{margin-top:30px;border-top:1px solid var(--pm-line);padding-top:18px}
.pm-short summary{list-style:none;cursor:pointer;font-size:var(--pm-fs-meta);font-weight:700;color:var(--pm-ink-d2);display:inline-flex;align-items:center;gap:8px}
.pm-short summary::-webkit-details-marker{display:none}
.pm-short summary::before{content:'▸';display:inline-block;transition:transform .15s}
.pm-short[open] summary::before{transform:rotate(90deg)}
.pm-short p{margin:10px 0 0;font-size:var(--pm-fs-sm);line-height:1.65;color:var(--pm-ink-d1);max-width:72ch}

/* ── 104. CARTES D'ALTERNATIVE — une par outil concurrent, factuelle, avec
   sa faiblesse (interdit 8) ────────────────────────────────────────────── */
.pm-alts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px}
.pm-alt{position:relative;text-align:left;padding:20px 20px 18px;border-radius:20px;background:var(--pm-well);border:1.5px solid var(--pm-line);cursor:pointer;color:#EEF4FF;transition:transform .15s,border-color .15s}
.pm-card-l .pm-alt{color:#0A1428}
.pm-alt:hover{transform:translateY(-2px);border-color:rgba(99,102,241,.6)}
.pm-alt.is-on{border-color:#4F46E5;box-shadow:0 0 0 2px rgba(79,70,229,.25)}
.pm-alt-top{display:flex;align-items:flex-start;gap:10px}
.pm-alt-top img{width:42px;height:42px;border-radius:12px;flex-shrink:0;object-fit:contain}
.pm-alt-nm{font-family:var(--pm-fd);font-size:var(--pm-fs-h3);font-weight:800;line-height:1.1}
.pm-alt-why{font-size:var(--pm-fs-meta);color:var(--pm-ink-d2);margin-top:3px}
.pm-card-l .pm-alt-why{color:var(--pm-ink-l3)}
.pm-alt-sc{margin-left:auto;text-align:right;flex-shrink:0;max-width:42%}
.pm-alt-top>div:not(.pm-alt-sc){min-width:0}
.pm-alt-sc b{display:block;font-family:var(--pm-fd);font-size:var(--pm-fs-2xl);font-weight:800;letter-spacing:-.02em;line-height:1;color:#EEF4FF}
.pm-card-l .pm-alt-sc b{color:#0A1428}
.pm-alt-sc b[data-band="top"],.pm-alt-sc b[data-band="good"]{color:#86EFAC}
.pm-alt-sc b[data-band="ok"]{color:#D9F99D}
.pm-alt-sc b[data-band="weak"],.pm-alt-sc b[data-band="bad"]{color:#FCD34D}
.pm-card-l .pm-alt-sc b[data-band="top"],.pm-card-l .pm-alt-sc b[data-band="good"]{color:#15803D}
.pm-card-l .pm-alt-sc b[data-band="ok"]{color:#4D7C0F}
.pm-card-l .pm-alt-sc b[data-band="weak"],.pm-card-l .pm-alt-sc b[data-band="bad"]{color:#B45309}
.pm-alt-sc span{display:block;margin-top:3px;font-size:var(--pm-fs-meta);font-weight:600;color:var(--pm-ink-d2)}
.pm-card-l .pm-alt-sc span{color:var(--pm-ink-l3)}
.pm-alt-facts{display:flex;flex-wrap:wrap;gap:6px 14px;margin:14px 0 12px;padding:10px 12px;border-radius:12px;background:var(--pm-well2);font-size:var(--pm-fs-meta);color:var(--pm-ink-d1)}
.pm-card-l .pm-alt-facts{color:var(--pm-ink-l1)}
.pm-alt-facts:not(:has(*)){display:none}
.pm-alt-facts b{font-family:var(--pm-fb);font-size:var(--pm-fs-sm);color:#EEF4FF}
.pm-card-l .pm-alt-facts b{color:#0A1428}
.pm-alt ul{list-style:none;margin:0;padding:0;font-size:var(--pm-fs-meta);line-height:1.5;color:var(--pm-ink-d1)}
.pm-card-l .pm-alt ul{color:var(--pm-ink-l1)}
.pm-alt li{position:relative;padding-left:20px;margin:4px 0}
.pm-alt li::before{position:absolute;left:0;top:0;font-weight:800}
.pm-alt li.is-plus::before{content:'✓';color:#86EFAC}.pm-alt li.is-minus::before{content:'−';color:#E8B4A4}
.pm-card-l .pm-alt li.is-plus::before{color:#15803D}.pm-card-l .pm-alt li.is-minus::before{color:#A8502F}
.pm-alt li b{color:#EEF4FF}.pm-card-l .pm-alt li b{color:#0A1428}
.pm-alt-acts{display:flex;gap:6px;margin-top:14px;align-items:center;flex-wrap:wrap}
.pm-alt-sel{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;border:1.5px solid #4F46E5;background:transparent;color:#C7D2FE;font-family:var(--pm-fb);font-size:var(--pm-fs-meta);font-weight:700;cursor:pointer}
.pm-card-l .pm-alt-sel{color:#4338CA}
.pm-alt.is-on .pm-alt-sel{background:#4F46E5;color:#fff}
.pm-card-l .pm-alt.is-on .pm-alt-sel{color:#fff}
.pm-alt.is-on .pm-alt-sel::before{content:'✓ '}

/* ── 105. CÔTE À CÔTE — tableau HTML complet, le JS masque des colonnes et
   des lignes, souligne la meilleure valeur, révèle la lecture écrite
   (décisions 25 et 58) ─────────────────────────────────────────────────── */
.pm-cmp{border-radius:22px;padding:24px 26px 20px;background:var(--pm-well);border:1px solid var(--pm-line)}
.pm-cmp-top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.pm-cmp-top h3{font-family:var(--pm-fd);font-size:var(--pm-fs-xl);letter-spacing:-.03em;margin:4px 0 0;font-weight:800;color:#EEF4FF}
.pm-card-l .pm-cmp-top h3{color:#0A1428}
.pm-cmp-l{font-size:var(--pm-fs-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pm-ink-d2)}
.pm-card-l .pm-cmp-l{color:var(--pm-ink-l3)}
.pm-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pm-tabs .pm-cmp-l{margin-right:6px}
.pm-tab{padding:8px 14px;border-radius:999px;border:1.5px solid var(--pm-line);background:rgba(255,255,255,.06);color:var(--pm-ink-d1);font-family:var(--pm-fb);font-weight:700;font-size:var(--pm-fs-meta);cursor:pointer}
.pm-card-l .pm-tab{background:#fff;color:var(--pm-ink-l1)}
.pm-tab[aria-pressed="true"]{background:#4F46E5;border-color:#4F46E5;color:#fff}
.pm-card-l .pm-tab[aria-pressed="true"]{color:#fff}
.pm-ct{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:var(--pm-fs-ui)}
.pm-ct th,.pm-ct td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--pm-line);vertical-align:middle;overflow-wrap:anywhere}
.pm-ct thead th{font-size:var(--pm-fs-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--pm-ink-d2)}
.pm-card-l .pm-ct thead th{color:var(--pm-ink-l3)}
.pm-ct thead th img{width:28px;height:28px;border-radius:6px;vertical-align:-8px;margin-right:8px;object-fit:contain}
.pm-ct thead th.is-me{color:#EEF4FF}.pm-card-l .pm-ct thead th.is-me{color:#0A1428}
.pm-ct tbody th{font-weight:600;color:var(--pm-ink-d1);width:24%}
.pm-card-l .pm-ct tbody th{color:var(--pm-ink-l1)}
.pm-ct td{color:var(--pm-ink-d1)}.pm-card-l .pm-ct td{color:var(--pm-ink-l1)}
.pm-cell b{font-family:var(--pm-fb);font-size:var(--pm-fs-body);color:#EEF4FF}
.pm-card-l .pm-cell b{color:#0A1428}
.pm-ct td.is-best .pm-cell b{color:#86EFAC}.pm-card-l .pm-ct td.is-best .pm-cell b{color:#15803D}
.pm-ct td.is-best .pm-cell b::after{content:' ✓';font-size:var(--pm-fs-meta)}
.pm-mb{display:block;height:5px;border-radius:999px;background:rgba(127,140,180,.2);margin-top:6px;overflow:hidden}
/* Décision 103 (21 septembre 2026), révisée au lot 6.3 (décision 138, point 17) : une barre est neutre ; quand une ligne a
   sa meilleure valeur cochée selon la règle de supériorité (pm-global.js, section 12), elle est verte (is-best) et les autres
   orange clair — le jeton « moins bien » (is-below) ; sans coche, aucune couleur ne dit « au-dessus » ni « en dessous ». */
.pm-mb span{display:block;height:100%;width:0;background:#94A3C8;border-radius:999px}
.pm-ct td.is-below .pm-mb span{background:#FB923C}
.pm-ct td.is-best .pm-mb span{background:#22C55E}
.pm-ct tr.is-sec th{padding-top:18px;font-size:var(--pm-fs-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--pm-ink-d2);border-bottom:none}
.pm-card-l .pm-ct tr.is-sec th{color:var(--pm-ink-l3)}
.pm-ct tr.is-same td,.pm-ct tr.is-same th,.pm-ct tr.is-same .pm-cell b{color:var(--pm-ink-d2)}
.pm-card-l .pm-ct tr.is-same td,.pm-card-l .pm-ct tr.is-same th,.pm-card-l .pm-ct tr.is-same .pm-cell b{color:var(--pm-ink-l3)}
.pm-ct tr.is-hide,.pm-ct .is-col-off{display:none}
.pm-take{margin:14px 0 0;font-size:var(--pm-fs-sm);color:var(--pm-ink-d1)}
.pm-card-l .pm-take{color:var(--pm-ink-l1)}
.pm-take b{color:#EEF4FF}.pm-card-l .pm-take b{color:#0A1428}
.pm-take[hidden]{display:none}
.pm-cmp-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--pm-line)}
.pm-tog{display:inline-flex;align-items:center;gap:8px;font-size:var(--pm-fs-meta);color:var(--pm-ink-d1);cursor:pointer;user-select:none}
.pm-card-l .pm-tog{color:var(--pm-ink-l1)}
.pm-tog i{width:34px;height:20px;border-radius:999px;background:rgba(127,140,180,.3);position:relative;transition:background .2s}
.pm-tog i::after{content:'';position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .2s}
.pm-tog input{position:absolute;opacity:0;width:0;height:0}
.pm-tog input:checked+i{background:#4F46E5}.pm-tog input:checked+i::after{left:17px}
.pm-share{display:flex;gap:8px;align-items:center;flex:1;min-width:280px;justify-content:flex-end}
.pm-share input{width:300px;max-width:100%;font-family:var(--pm-fb);font-size:var(--pm-fs-meta);padding:8px 12px;border-radius:999px;border:1px solid var(--pm-line);background:rgba(255,255,255,.06);color:var(--pm-ink-d1)}
.pm-card-l .pm-share input{background:#fff;color:var(--pm-ink-l1)}

/* ── 106. BARRES DE THÈMES — comptes imprimés, largeur relative au plus cité ── */
.pm-ev{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px}
.pm-evc{padding:18px 20px;border-radius:16px;background:var(--pm-well);border:1px solid var(--pm-line)}
.pm-evc.is-pos{border-color:rgba(34,197,94,.35);background:var(--pm-okbg)}
.pm-evc-t{font-size:var(--pm-fs-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pm-ink-d2);margin-bottom:12px}
.pm-card-l .pm-evc-t{color:var(--pm-ink-l3)}
.pm-evc.is-pos .pm-evc-t{color:#86EFAC}.pm-card-l .pm-evc.is-pos .pm-evc-t{color:#15803D}
.pm-freq{display:flex;flex-direction:column;gap:9px}
.pm-fr{display:grid;grid-template-columns:130px 1fr 40px;gap:12px;align-items:center}
.pm-fr span{font-size:var(--pm-fs-meta);color:var(--pm-ink-d1)}.pm-card-l .pm-fr span{color:var(--pm-ink-l1)}
.pm-fr-t{height:8px;border-radius:999px;background:rgba(127,140,180,.2);overflow:hidden}
.pm-fr-t i{display:block;height:100%;width:0;transition:width .9s cubic-bezier(.22,1,.36,1);background:linear-gradient(90deg,#B4552F,#E8B4A4)}
.pm-evc.is-pos .pm-fr-t i{background:linear-gradient(90deg,#16A34A,#4ADE80)}
.pm-fr b{font-family:var(--pm-fb);font-size:var(--pm-fs-meta);text-align:right;color:var(--pm-ink-d1)}.pm-card-l .pm-fr b{color:var(--pm-ink-l1)}
.pm-evc.is-small .pm-fr{grid-template-columns:96px 1fr 34px}
.pm-evc.is-small .pm-fr span{font-size:var(--pm-fs-meta)}
.pm-evc.is-small .pm-fr-t{height:5px}

/* ── 107. LIENS DE SORTIE ET CONTENU LONG SUR CARTE SOMBRE ──────────────── */
.pm-next-links{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px}
/* chaque destination est un panneau teinté, avec liseré et pastille fléchée ; la première,
   la destination principale, est en carte sombre. Couleurs de texte écrites sur les deux fonds. */
.pm-nl{position:relative;display:block;padding:18px 56px 18px 20px;border-radius:18px;text-decoration:none;color:#EEF4FF;
  background:linear-gradient(180deg,rgba(148,168,255,.2),rgba(148,168,255,.1));border:1px solid var(--pm-line);border-left:3px solid #818CF8;
  transition:transform .15s,box-shadow .15s,border-color .15s}
.pm-nl::after{content:'→';position:absolute;right:16px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;
  background:var(--pm-grad);color:#fff;font-weight:800;font-size:var(--pm-fs-ui);display:flex;align-items:center;justify-content:center;transition:transform .15s}
.pm-nl b{display:block;font-family:var(--pm-fb);font-size:var(--pm-fs-body);font-weight:700;letter-spacing:normal;color:#EEF4FF;margin-bottom:4px}
.pm-nl span{display:block;font-size:var(--pm-fs-meta);line-height:1.5;color:var(--pm-ink-d2)}
.pm-nl:hover{transform:translateY(-2px);border-color:rgba(99,102,241,.6);box-shadow:0 10px 26px rgba(79,70,229,.22)}
.pm-nl:hover::after{transform:translateY(-50%) translateX(3px)}
.pm-card-l .pm-nl{background:linear-gradient(180deg,#EEF1FE 0%,#E0E6FA 100%);border-color:rgba(99,102,241,.3);border-left-color:#4F46E5;box-shadow:0 2px 10px rgba(30,40,100,.07)}
.pm-card-l .pm-nl,.pm-card-l .pm-nl b{color:#0A1428}
.pm-card-l .pm-nl span{color:var(--pm-ink-l2)}
.pm-nl:first-child,.pm-card-l .pm-nl:first-child{background:radial-gradient(circle at 85% 0%,rgba(129,140,248,.32) 0%,transparent 60%),linear-gradient(180deg,#1B2C55 0%,#111E3C 100%);
  border-color:transparent;border-left-color:#818CF8;box-shadow:0 12px 30px rgba(37,60,140,.28)}
.pm-card-l .pm-nl:first-child,.pm-card-l .pm-nl:first-child b{color:#FFFFFF}
.pm-card-l .pm-nl:first-child span{color:var(--pm-ink-d1)}
/* sommaire et sections du socle (61), écrits pour carte claire : leur variante sombre */
.pm-card:not(.pm-card-l) .pm-toc a{background:rgba(255,255,255,.06);border-color:var(--pm-line);color:var(--pm-ink-d1)}
.pm-card:not(.pm-card-l) .pm-toc a::before{color:var(--pm-ink-d2)}
.pm-card:not(.pm-card-l) .pm-toc{border-bottom-color:var(--pm-line)}
.pm-card:not(.pm-card-l) .pm-sec h2{color:#EEF4FF}
.pm-card:not(.pm-card-l) .pm-sec p b{color:#fff}
.pm-card:not(.pm-card-l) .pm-sec-tag{color:#60A5FA}
.pm-wide .pm-sec{margin-bottom:34px}
.pm-wide .pm-sec h2{font-size:var(--pm-fs-xl);margin-bottom:10px}
.pm-wide .pm-sec p{font-size:var(--pm-fs-sm);max-width:74ch}

/* ── 108. PARAGRAPHES DES COMPOSANTS PROMUS — la v6.2 force
   `.pm-page-wrap.pm-section p` en texte clair et en (section 79).
   Même méthode : trois classes,. ─────────────────────────────── */
.pm-page-wrap .pm-card .pm-bh-sub,.pm-page-wrap .pm-card .pm-vd-meta,.pm-page-wrap .pm-card .pm-by,
.pm-page-wrap .pm-card .pm-src,.pm-page-wrap .pm-card .pm-fn{color:var(--pm-ink-d2);line-height:1.6}
.pm-page-wrap .pm-card .pm-vd-meta b{color:var(--pm-ink-d1)}
.pm-page-wrap .pm-card .pm-vd{color:var(--pm-ink-d1);line-height:1.5}
.pm-page-wrap .pm-card .pm-short p,.pm-page-wrap .pm-card .pm-take{color:var(--pm-ink-d1);line-height:1.6}
.pm-page-wrap .pm-card-l .pm-bh-sub,.pm-page-wrap .pm-card-l .pm-src,.pm-page-wrap .pm-card-l .pm-fn{color:var(--pm-ink-l3)}
.pm-page-wrap .pm-card-l .pm-take{color:var(--pm-ink-l1)}
.pm-page-wrap .pm-card-l .pm-faq-a p{color:var(--pm-ink-l2);line-height:1.6}

/* ── 109. RESPONSIVE ET IMPRESSION DES COMPOSANTS PROMUS ─────────────────── */
@media (max-width:1100px){
  .pm-hero-g{grid-template-columns:minmax(0,1fr) 280px;gap:32px}
}
@media (max-width:768px){
  .pm-wide .pm-card-b{padding:26px 20px}
  .pm-wide .pm-card{border-radius:22px}
  .pm-wide .pm-h1{font-size:var(--pm-fs-3xl)}
  .pm-hero-g,.pm-ev,.pm-alts,.pm-next-links{grid-template-columns:1fr}
  .pm-bh-side{text-align:left}
  .pm-jump{display:none}
  .pm-ct{font-size:var(--pm-fs-meta)}
  .pm-ct th,.pm-ct td{padding:9px 8px}
  .pm-cmp{padding:18px 16px 16px}
  .pm-share{flex:1 1 100%;min-width:0}
  .pm-share input{flex:1;width:auto}
  .pm-ss{flex-wrap:wrap;gap:8px}
  .pm-ss b{white-space:normal}
  .pm-ss i{display:none}
  .pm-ss span{flex-basis:100%}
}
/* Décision 141, lot 2, règle 23 (« go » du 2 octobre 2026, point 2 ; écrit séance 45) : à 480 px et moins, le libellé
   d'une ligne du côte à côte (section 105) passe au-dessus de ses valeurs, qui se partagent la largeur à parts égales —
   « Free trial (length not stated) » tient en deux lignes au lieu de trois, un libellé de limite en deux lignes au plus au
   lieu de quatre. Seul le côte à côte à onglets (`.pm-cmp` : `review`, `alternatives`) est touché ; celui de `vs` vit sous
   `.pm-tw`, garde sa largeur minimale et défile. `:where()` laisse ces sélecteurs sous le poids de `.pm-ct tr.is-hide`
   et de `.pm-ct .is-col-off` : les lignes et les colonnes que le JS masque le restent, sans `!important`. Le `colspan`
   des titres de groupe (`is-sec`) n'a plus d'effet à cette largeur : le titre prend toute la ligne. */
@media (max-width:480px){
  :where(.pm-cmp) .pm-ct,:where(.pm-cmp) .pm-ct thead,:where(.pm-cmp) .pm-ct tbody{display:block}
  :where(.pm-cmp) .pm-ct tr{display:flex;flex-wrap:wrap}
  :where(.pm-cmp) .pm-ct tbody th{flex:0 0 100%;width:auto}
  :where(.pm-cmp) .pm-ct tbody tr:not(.is-sec)>th{border-bottom:none;padding-bottom:0}
  :where(.pm-cmp) .pm-ct td,:where(.pm-cmp) .pm-ct thead th[data-pm-col]{flex:1 1 0;min-width:0}
  /* le coin vide de l'en-tête prend une ligne sans hauteur : masqué par `display:none`, il sortirait de l'arbre
     d'accessibilité et l'en-tête aurait une case de moins que les lignes du corps (les noms d'outil coifferaient la mauvaise
     colonne pour un lecteur d'écran) */
  :where(.pm-cmp) .pm-ct thead th:not([data-pm-col]){flex:0 0 100%;height:0;padding:0;border:0;overflow:hidden}
  /* « Show all » : quatre à six colonnes ne se lisent pas à cette largeur — la case est masquée, et le JS (12) ne tient pas
     compte d'une case qui n'est pas dessinée (un lien partagé à plusieurs alternatives s'ouvre sur la première) : le seuil n'est
     écrit qu'ici — séance 45, « go » du 2 octobre 2026, point 9 */
  .pm-cmp-foot .pm-tog:has([data-pm-cmp-all]){display:none}
}
@media (prefers-reduced-motion:reduce){
  .pm-fr-t i,.pm-gauge-arc,.pm-alt,.pm-nl,.pm-nl::after{transition:none}
}
@media print{
  .pm-stick,.pm-bc,.pm-btns,.pm-btn,.pm-sm,.pm-jump,.pm-tabs,.pm-cmp-foot,.pm-alt-acts,.pm-how,.pm-vid,.pm-cmp,.pm-ev,.pm-short,.pm-sec:nth-of-type(n+2),.pm-toc{display:none!important}
  .pm-wide .pm-card{break-inside:avoid;background:#fff!important;color:#000!important;border:1px solid #ccc;box-shadow:none;border-radius:8px;margin-bottom:12px;--pm-well:#f5f5f5;--pm-well2:#eee;--pm-line:#ddd}
  .pm-wide .pm-card-b{padding:16px}
  .pm-wide .pm-card *{color:#000!important}
  .pm-gauge-n{-webkit-text-fill-color:#000;background:none}
}


/* ── 120. ÉTAPES RELIÉES — une ligne de N étapes numérotées, reliées par un
   trait ; `is-warn` colore en ambre l'étape qui coûte. Créées par `alternatives`
   (la migration en quatre étapes, ex-section 113), promues au socle à leur
   deuxième usage, `system-methodology` (de l'avis au score, cinq étapes) —
   décision 21, 18 septembre 2026. La grille s'adapte au nombre d'étapes.
   Couleurs de texte écrites sur les deux fonds (décision 38). ─────────────── */
.pm-chain{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));counter-reset:pmchain}
.pm-chain-c{position:relative;padding:26px 16px 0 0;counter-increment:pmchain}
.pm-chain-c::before{content:'';position:absolute;top:11px;left:0;right:0;height:2px;background:var(--pm-line)}
.pm-chain-c::after{content:counter(pmchain);position:absolute;top:0;left:0;width:24px;height:24px;border-radius:50%;background:#4F46E5;color:#fff;font-family:var(--pm-fb);font-size:var(--pm-fs-meta);font-weight:700;display:flex;align-items:center;justify-content:center}
.pm-chain-c.is-warn::after{background:#D97706}
.pm-chain-l{font-size:var(--pm-fs-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--pm-ink-d2);margin:10px 0 4px}
.pm-card-l .pm-chain-l{color:var(--pm-ink-l3)}
.pm-chain-v{font-family:var(--pm-fb);font-size:var(--pm-fs-lead);font-weight:700;letter-spacing:normal;color:#EEF4FF;line-height:1.15}
.pm-card-l .pm-chain-v{color:#0A1428}
.pm-chain-c.is-warn .pm-chain-v{color:#FCD34D}
.pm-card-l .pm-chain-c.is-warn .pm-chain-v{color:#92400E}
.pm-chain-s{font-size:var(--pm-fs-meta);line-height:1.5;color:var(--pm-ink-d2);margin-top:5px}
.pm-card-l .pm-chain-s{color:var(--pm-ink-l3)}
/* « Step N » déduit du compteur, jamais saisi (décision 95) : un libellé qui porte `pm-chain-n`
   reçoit son numéro. Créé par `system-methodology`, promu ici à son deuxième usage, `system-page`
   (19 septembre 2026). */
.pm-chain-n::after{content:" " counter(pmchain)}
@media (max-width:768px){
  .pm-chain{grid-template-columns:1fr 1fr;row-gap:22px}
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTIONS 127 À 134 — huit composants créés par `system-methodology` (ex-sections
   121, 123, 124 et 125 de son additif), promus au socle à leur deuxième usage,
   `system-page` (les huit pages système) — décision 21, 19 septembre 2026.
   Classes renommées sans le préfixe de page ; rien ne change à l'écran sur
   `/how-we-score/`. Chaque encre est écrite en clair pour son fond (décision 38) ;
   plancher 12 px (décision 46) ; bascules 1100, 768 et 480 px.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 127. HERO À HALO — halo, titre centré, énoncé, ligne de faits datés, boutons.
   Se pose sur une carte sombre `pm-card pm-card-hi`. Ex-section 121. ─────────── */
.pm-card.pm-halo-card{background:radial-gradient(ellipse 70% 60% at 50% -20%,rgba(99,102,241,.36) 0%,transparent 62%),radial-gradient(circle at 90% 10%,rgba(168,85,247,.22) 0%,transparent 40%),linear-gradient(180deg,#121D40 0%,#0D172F 60%,#0A1328 100%);border-color:rgba(167,139,250,.38);box-shadow:0 18px 50px rgba(49,46,129,.4),0 0 0 1px rgba(129,140,248,.1)}
.pm-halo{text-align:center;padding:12px 0 6px}
.pm-halo-h1{max-width:900px;margin:0 auto;font-size:var(--pm-fs-h1);line-height:1.06}
.pm-halo-vd{max-width:720px;margin:22px auto 0;text-align:center}
.pm-halo-meta{max-width:720px;margin:0 auto 22px;text-align:center;line-height:1.7}
.pm-halo-meta time{color:var(--pm-ink-d1);font-weight:600}
.pm-halo-btns{justify-content:center}
@media (max-width:1100px){
  .pm-halo-h1{font-size:var(--pm-fs-h1)}
}
@media (max-width:768px){
  .pm-halo{text-align:left}
  .pm-halo-vd,.pm-halo-meta{margin-left:0;text-align:left}
  .pm-halo-btns{justify-content:flex-start}
  .pm-halo-h1{font-size:var(--pm-fs-h2);margin-left:0}
}
@media (max-width:480px){
  .pm-halo-h1{font-size:var(--pm-fs-2xl)}
}

/* ── 128. TUILES LIBELLÉ · VALEUR — une pile de tuiles claires : un libellé court
   en capitales, sa valeur (Period · Floor · How sur `/how-we-score/`, « In short »
   sur les pages système). `is-stack` pose le libellé au-dessus de la valeur.
   Ex-section 124. ─────────────────────────────────────────────────────────── */
.pm-kvs{display:grid;gap:10px;align-content:start}
.pm-kv{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:baseline;padding:12px 16px;border-radius:14px;background:#E9EDFF;border:1px solid rgba(67,56,202,.22)}
.pm-kv.is-stack{grid-template-columns:minmax(0,1fr);gap:4px}
.pm-kv i{font-style:normal;font-size:var(--pm-fs-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#4338CA}
.pm-kv b{font-size:var(--pm-fs-sm);font-weight:700;line-height:1.45;color:#0A1428}
@media (max-width:480px){
  .pm-kv{grid-template-columns:minmax(0,1fr);gap:4px}
}

/* ── 129. DEUX COLONNES ✓ / ✗ — ce qui est fait, ce qui ne l'est jamais ; coches
   `pm-ck` / `pm-cx` du socle (section 57). Encres écrites pour les deux fonds.
   Ex-section 124. ─────────────────────────────────────────────────────────── */
.pm-dodont{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pm-dodont-col{padding:18px 20px;border-radius:16px;background:var(--pm-well);border:1px solid var(--pm-line)}
.pm-dodont-col.is-do{border-top:3px solid #22C55E}
.pm-dodont-col.is-dont{border-top:3px solid #F87171}
.pm-dodont-t{font-size:var(--pm-fs-xs);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--pm-ink-d2);margin-bottom:12px}
.pm-card-l .pm-dodont-t{color:var(--pm-ink-l3)}
.pm-dodont-col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pm-dodont-col li{display:flex;align-items:flex-start;gap:10px;font-size:var(--pm-fs-ui);line-height:1.55;color:var(--pm-ink-d1)}
.pm-card-l .pm-dodont-col li{color:#0A1428}
.pm-dodont-col li > span:first-child{flex-shrink:0;margin-top:1px}
@media (max-width:768px){
  .pm-dodont{grid-template-columns:minmax(0,1fr)}
}

/* ── 130. GRAND NOMBRE ET SA PHRASE — un compte lu dans `controle/compteurs-site.json`
   (décision 75) et ce qu'il compte ; `is-quiet` pour le second nombre, en retrait.
   Sur carte sombre. Ex-section 125. ───────────────────────────────────────── */
.pm-big{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;padding:16px 18px;border-radius:16px;background:linear-gradient(135deg,rgba(37,99,235,.3),rgba(124,58,237,.24));border:1px solid rgba(167,139,250,.42)}
.pm-big b{font-family:var(--pm-fd);font-size:var(--pm-fs-h1);font-weight:800;letter-spacing:-.02em;line-height:1;color:#fff}
.pm-big span{font-size:var(--pm-fs-ui);line-height:1.5;color:var(--pm-ink-d1)}
.pm-big.is-quiet{background:var(--pm-well);border-color:var(--pm-line)}
.pm-big.is-quiet b{color:var(--pm-ink-d1)}
@media (max-width:480px){
  .pm-big{grid-template-columns:minmax(0,1fr);gap:6px}
}

/* ── 131. RÈGLES COURTES À FILET GAUCHE — une liste de faits : un titre, sa phrase,
   et une ligne de précision facultative (`i` : qui reçoit, combien de temps).
   Sur carte sombre. Ex-section 125. ───────────────────────────────────────── */
.pm-facts{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pm-facts li{padding:12px 14px;border-radius:12px;background:var(--pm-well);border:1px solid var(--pm-line);border-left:3px solid #818CF8}
.pm-facts b{display:block;font-family:var(--pm-fb);font-size:var(--pm-fs-body);font-weight:700;line-height:1.25;color:#EEF4FF}
.pm-facts span{display:block;margin-top:4px;font-size:var(--pm-fs-ui);line-height:1.5;color:var(--pm-ink-d2)}
.pm-facts i{display:block;margin-top:6px;font-style:normal;font-size:var(--pm-fs-meta);line-height:1.5;color:var(--pm-ink-d2)}

/* ── 132. CARTES AMBRÉES DE LIMITES — ce qu'une page ne peut pas dire, ce que le
   site ne fait pas. Fond ambré clair quel que soit le fond de la carte ; la v6.2
   force l'encre des paragraphes en !important, trois classes la reprennent.
   Ex-section 125. ─────────────────────────────────────────────────────────── */
.pm-limits{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.pm-limit{padding:18px 18px 16px;border-radius:16px;background:#FFF7ED;border:1px solid rgba(217,119,6,.3);border-top:4px solid #D97706}
.pm-limit b{display:block;font-family:var(--pm-fb);font-size:var(--pm-fs-lead);font-weight:700;line-height:1.2;letter-spacing:normal;color:#0A1428}
.pm-limit p{margin:8px 0 0;font-size:var(--pm-fs-ui);line-height:1.55;color:var(--pm-ink-l2)}
.pm-page-wrap .pm-card .pm-limit p{color:var(--pm-ink-l2)!important;line-height:1.55!important}

/* ── 133. JOURNAL DATÉ — date · quoi · pourquoi, la plus récente en premier. Le
   journal de méthode sur `/how-we-score/`, les versions et corrections sur les
   pages système. Encres écrites pour les deux fonds. Ex-section 125. ────────── */
.pm-journal{list-style:none;margin:0;padding:0}
.pm-journal li{display:grid;grid-template-columns:130px minmax(0,1fr);gap:16px;padding:14px 0;border-top:1px solid var(--pm-line)}
.pm-journal li:first-child{border-top:none;padding-top:0}
.pm-journal time{font-family:var(--pm-fb);font-size:var(--pm-fs-ui);font-weight:700;color:#A5B4FC}
.pm-card-l .pm-journal time{color:#4338CA}
.pm-journal b{display:block;font-size:var(--pm-fs-sm);font-weight:700;line-height:1.35;color:#EEF4FF}
.pm-card-l .pm-journal b{color:#0A1428}
.pm-journal span{display:block;margin-top:3px;font-size:var(--pm-fs-meta);line-height:1.5;color:var(--pm-ink-d2)}
.pm-card-l .pm-journal span{color:var(--pm-ink-l2)}
@media (max-width:768px){
  .pm-journal li{grid-template-columns:minmax(0,1fr);gap:4px}
}

/* ── 134. LIGNES DE CATÉGORIE À PASTILLES DE LIENS — une ligne par catégorie, à la
   couleur et au numéro de son étape (décisions 83 et 95) : l'étape et la catégorie
   à gauche, une cellule de milieu facultative (la dimension D5 sur `/how-we-score/`),
   les pages liées à droite. `is-two` retire la cellule du milieu. Fond et filets
   lisent la variable, chaque encre est écrite en clair par classe (décision 38).
   Ex-section 123. ─────────────────────────────────────────────────────────── */
.pm-cat.is-s1{--pm-cat-c:#0E7490;--pm-cat-t:rgba(14,116,144,.06);--pm-cat-l:rgba(14,116,144,.38)}
.pm-cat.is-s2{--pm-cat-c:#1D4ED8;--pm-cat-t:rgba(29,78,216,.06);--pm-cat-l:rgba(29,78,216,.36)}
.pm-cat.is-s3{--pm-cat-c:#4338CA;--pm-cat-t:rgba(67,56,202,.06);--pm-cat-l:rgba(67,56,202,.36)}
.pm-cat.is-s4{--pm-cat-c:#6D28D9;--pm-cat-t:rgba(109,40,217,.06);--pm-cat-l:rgba(109,40,217,.36)}
.pm-cat.is-s5{--pm-cat-c:#A21CAF;--pm-cat-t:rgba(162,28,175,.06);--pm-cat-l:rgba(162,28,175,.34)}
.pm-cats{display:grid;gap:10px}
.pm-cat{display:grid;grid-template-columns:minmax(150px,.75fr) minmax(0,1.5fr) minmax(0,1.1fr);gap:8px 22px;align-items:start;padding:14px 18px 14px 16px;border-radius:14px;background:linear-gradient(var(--pm-cat-t,transparent),var(--pm-cat-t,transparent)) #fff;border:1px solid var(--pm-cat-l,rgba(99,102,241,.22));border-left:5px solid var(--pm-cat-c,#4338CA);box-shadow:0 2px 10px rgba(30,40,100,.06)}
.pm-cat.is-two{grid-template-columns:minmax(150px,.75fr) minmax(0,2.6fr)}
.pm-cat-h{display:flex;flex-direction:column;gap:3px}
.pm-cat-h em{font-style:normal;font-size:var(--pm-fs-xs);font-weight:800;letter-spacing:.14em;text-transform:uppercase;line-height:1.3;color:#4338CA}
.pm-cat-h span{font-size:var(--pm-fs-sm);font-weight:800;letter-spacing:normal;line-height:1.25;color:#0A1428}
.pm-cat-h i{font-style:normal;font-size:var(--pm-fs-meta);font-weight:700;color:var(--pm-ink-l3)}
.pm-cat-d{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;align-items:baseline}
.pm-cat-d em{font-style:normal;padding:2px 8px;border-radius:999px;border:1px solid var(--pm-cat-l,rgba(99,102,241,.3));font-family:var(--pm-fb);font-size:var(--pm-fs-meta);font-weight:700;letter-spacing:.04em;white-space:nowrap;color:#4338CA}
.pm-cat-d b{font-family:var(--pm-fd);font-size:var(--pm-fs-h3);font-weight:800;letter-spacing:-.02em;line-height:1.15;color:#0A1428}
.pm-cat-d small{grid-column:1 / -1;font-size:var(--pm-fs-meta);font-weight:500;line-height:1.45;color:var(--pm-ink-l2)}
.pm-cat-r{display:flex;flex-direction:column;gap:6px}
.pm-cat-r > i{font-style:normal;font-size:var(--pm-fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pm-ink-l3)}
.pm-cat.is-s1 .pm-cat-h em,.pm-cat.is-s1 .pm-cat-d em,.pm-cat.is-s1 .pm-cat-l a::after{color:#0E7490}
.pm-cat.is-s2 .pm-cat-h em,.pm-cat.is-s2 .pm-cat-d em,.pm-cat.is-s2 .pm-cat-l a::after{color:#1D4ED8}
.pm-cat.is-s3 .pm-cat-h em,.pm-cat.is-s3 .pm-cat-d em,.pm-cat.is-s3 .pm-cat-l a::after{color:#4338CA}
.pm-cat.is-s4 .pm-cat-h em,.pm-cat.is-s4 .pm-cat-d em,.pm-cat.is-s4 .pm-cat-l a::after{color:#6D28D9}
.pm-cat.is-s5 .pm-cat-h em,.pm-cat.is-s5 .pm-cat-d em,.pm-cat.is-s5 .pm-cat-l a::after{color:#A21CAF}
.pm-cat-l{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.pm-cat-l li{margin:0}
.pm-cat-l a{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:#fff;border:1px solid var(--pm-cat-l,rgba(99,102,241,.3));font-size:var(--pm-fs-meta);font-weight:700;line-height:1.3;color:#1E2B4D;text-decoration:none;transition:background .15s,color .15s,border-color .15s}
.pm-cat-l a::after{content:"→";font-weight:800;color:#4338CA}
.pm-cat-l a:hover{background:var(--pm-cat-c,#4338CA);border-color:var(--pm-cat-c,#4338CA);color:#fff}
.pm-cat-l a:hover::after,.pm-cat.is-s1 .pm-cat-l a:hover::after,.pm-cat.is-s2 .pm-cat-l a:hover::after,.pm-cat.is-s3 .pm-cat-l a:hover::after,.pm-cat.is-s4 .pm-cat-l a:hover::after,.pm-cat.is-s5 .pm-cat-l a:hover::after{color:#fff}
.pm-cat-l a:focus-visible{outline:3px solid #6366F1;outline-offset:2px}
@media (max-width:1100px){
  .pm-cat{grid-template-columns:minmax(150px,.8fr) minmax(0,1.6fr)}
  .pm-cat-r{grid-column:1 / -1}
  .pm-cat.is-two .pm-cat-r{grid-column:auto}
}
@media (max-width:768px){
  .pm-cat{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){
  .pm-cat-l a{transition:none}
}


/* ── 139. AFFICHER CE QUI CORRESPOND AU CHOIX — dans un groupe [data-pm-showgroup], un clic sur
   [data-pm-show="clé"] montre les panneaux [data-pm-panel="clé"] et masque les autres : le JS du
   socle pose `is-js` sur le groupe et `is-on` sur les panneaux choisis ; ici, seule la règle qui
   masque. Sans JavaScript, sans `is-js`, tout est visible ; à l'impression aussi. Aucun `display`
   n'est imposé au panneau montré : il garde le sien (bloc, grille…). Créé par `homepage` (la carte
   du métier), promu au socle à son deuxième usage, `system-page` (`/start-here/`) — décision 21,
   21 septembre 2026 (décision 99). ───────────────────────────────────────────── */
@media screen{
  [data-pm-showgroup].is-js [data-pm-panel]:not(.is-on){display:none}
}


/* ── 151. CARTE DE SCORE — pm-pod : une grille de cartes égales (logo, nom, score / 10, étiquette,
   lecture, ligne de prix datée, drapeau, actions). Créée par `decision-ranking` (le podium, décisions
   108 et 109), promue au socle à son deuxième usage, `vs` (le face à face) — décisions 21 et 59,
   21 septembre 2026 (décision 114). Sous `.is-ranked`, chaque place porte une médaille (or, argent,
   bronze) et un fond teinté par sa position ; sous `.is-duo`, deux colonnes ; une carte `.is-lead`
   (le score le plus haut d'un duel) porte un fond indigo sobre et son liseré. Les encres sont
   écrites en clair (décision 38). ──────────────────────────────────────────────────────── */
.pm-pod{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:20px}
.pm-pod.is-duo{grid-template-columns:repeat(2,minmax(0,1fr))}
.pm-pod-c{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);gap:13px;padding:17px 18px;
  border-radius:var(--pm-r3);background:#fff;border:1px solid var(--pm-l2);box-shadow:var(--pm-shadow-xs)}
/* fonds teintés du podium : or, argent, bronze, sur toute la carte (décision 109) ; les encres restent sombres */
.pm-pod.is-ranked .pm-pod-c:nth-child(1){background:linear-gradient(180deg,#FFEDB5 0%,#FFF8E3 100%);border-color:rgba(201,150,43,.6)}
.pm-pod.is-ranked .pm-pod-c:nth-child(2){background:linear-gradient(180deg,#E3E8F0 0%,#F4F6FA 100%);border-color:rgba(120,136,160,.6)}
.pm-pod.is-ranked .pm-pod-c:nth-child(3){background:linear-gradient(180deg,#F3D3B8 0%,#FAEBDF 100%);border-color:rgba(180,113,63,.6)}
/* le score le plus haut d'un duel : fond indigo sobre et liseré, sans médaille */
.pm-pod-c.is-lead{background:linear-gradient(180deg,#E4E6FF 0%,#F5F6FF 100%);border-color:rgba(79,70,229,.55);
  box-shadow:0 0 0 3px rgba(79,70,229,.12)}
.pm-pod-c>img{width:38px;height:38px;border-radius:11px}
/* la médaille : un disque au rang, en haut à droite (podium seulement) */
.pm-pod-rank{position:absolute;top:12px;right:12px;display:flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:50%;font-family:var(--pm-fb);font-size:var(--pm-fs-meta);font-weight:700;line-height:1;
  color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.25);pointer-events:none;
  background:linear-gradient(145deg,#F6D97B,#C8962A);box-shadow:0 0 0 3px rgba(201,150,43,.18),0 2px 6px rgba(0,0,0,.14)}
.pm-pod-rank::after{content:'';position:absolute;top:-7px;left:50%;width:10px;height:9px;margin-left:-5px;
  border-radius:2px 2px 0 0;background:inherit;opacity:.85;z-index:-1}
.pm-pod.is-ranked .pm-pod-c:nth-child(2) .pm-pod-rank{background:linear-gradient(145deg,#E8ECF3,#9AA5B8);box-shadow:0 0 0 3px rgba(148,163,184,.22),0 2px 6px rgba(0,0,0,.14)}
.pm-pod.is-ranked .pm-pod-c:nth-child(3) .pm-pod-rank{background:linear-gradient(145deg,#E4B08A,#A7683A);box-shadow:0 0 0 3px rgba(180,113,63,.2),0 2px 6px rgba(0,0,0,.14)}
.pm-pod-n{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding-right:36px;font-family:var(--pm-fb);
  font-size:var(--pm-fs-lead);font-weight:700;letter-spacing:normal;color:#0F172A}
.pm-pod:not(.is-ranked) .pm-pod-n{padding-right:0}
.pm-pod-n span{font-family:var(--pm-fm);font-size:var(--pm-fs-meta);font-weight:500;letter-spacing:0;color:var(--pm-ink-l3)}
.pm-pod-tag{display:inline-block;margin-top:8px;padding:2px 9px;border-radius:var(--pm-r-pill);
  background:rgba(99,102,241,.1);border:1px solid rgba(99,102,241,.28);font-size:var(--pm-fs-meta);color:#3730A3}
.pm-page-wrap .pm-card-l .pm-pod-d{margin:9px 0 0;font-size:var(--pm-fs-meta);color:var(--pm-ink-l2)}
/* la ligne de prix : montant, essai, date de relevé ; l'avertissement d'ancienneté
   est révélé par le socle au-delà de 180 jours (décision 29) */
.pm-price-l{margin-top:12px;font-family:var(--pm-fm);font-size:var(--pm-fs-meta);line-height:1.5;color:var(--pm-ink-l3)}
.pm-price-l b{font-weight:700;color:#0F172A}
.pm-price-l .pm-stale{color:#92400E}
.pm-flag{display:flex;align-items:flex-start;gap:6px;margin-top:8px;font-size:var(--pm-fs-meta);line-height:1.5;color:#92400E}
.pm-flag::before{content:'!';display:flex;align-items:center;justify-content:center;flex-shrink:0;width:14px;
  height:14px;margin-top:1px;border-radius:4px;background:rgba(217,119,6,.14);font-family:var(--pm-fm);font-size:10px}
/* les actions — toujours en ligne, toujours repliables */
.pm-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:13px}
@media (max-width:768px){
  .pm-pod,.pm-pod.is-duo{grid-template-columns:minmax(0,1fr)}
  .pm-pod-rank{font-size:var(--pm-fs-2xl)}
}

/* ── 157. DIVULGATION EN FIN DE PAGE SUR CARTE CLAIRE — le bloc complet `.pm-aff` (la phrase unique de la
   décision 89, avec le lien ; contrôle F41) posé sur la carte claire qui ferme la page (contrôle F39 :
   dans la dernière carte, sur toute page qui porte un lien d'affiliation). Créé par `directory`
   (décision 111), repris par `vs` (décision 114), promu au socle à son troisième usage,
   `guide-definition` (décision 120, 21 septembre 2026). La ligne courte `pm-paid-line`, qui précédait
   le premier Try, a été retirée le 22 septembre 2026 sur arbitrage du propriétaire (décision 130 : la
   divulgation est en fin de page, nulle part ailleurs). Encres écrites en clair (décision 38), sans
   `!important` depuis le chantier B de l'étape 3.8 (décision 129). ── */
.pm-page-wrap .pm-card-l .pm-aff{color:var(--pm-ink-l3);border-left-color:rgba(99,102,241,.5);margin:22px 0 0}
.pm-page-wrap .pm-card-l .pm-aff a{color:#3730A3}


/* ── 158. BANDEAU « WHAT THIS PAGE DOES » — trois à cinq étapes numérotées, une par carte à ouvrir,
   sous un titre et une phrase qui disent à quoi sert la page et pourquoi elle existe (décision 121).
   Le numéro est un compteur CSS : il suit l'ordre des étapes écrites, rien à saisir. Chaque étape
   porte une teinte par nature de contenu — `is-concept`, `is-limit`, `is-tools`, `is-faq` (les guides
   de définition), `is-play`, `is-route`, `is-trap` (les playbooks) : les variables locales ne servent
   qu'aux fonds et aux bordures, chaque encre est écrite en clair (décision 38). La grille s'adapte au
   nombre d'étapes. Créé par `guide-definition` (ex-section 82 c), promu au socle à son deuxième usage,
   `guide-playbook` — décision 21, 22 septembre 2026 (décision 123). Sur carte sombre. ───────────── */
.pm-does{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:9px;margin-top:18px;padding-top:16px;
  border-top:1px solid rgba(255,255,255,.10);counter-reset:pmdoes}
.pm-does-h{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:3px}
.pm-does-l{font-family:var(--pm-fm);font-size:var(--pm-fs-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#C7D2FE}
.pm-does-d{font-size:var(--pm-fs-ui);line-height:1.5;color:var(--pm-ink-d1)}
.pm-does-s{--accbg:rgba(255,255,255,.08);--accbd:rgba(255,255,255,.18);
  display:flex;align-items:flex-start;gap:11px;min-width:0;padding:13px 14px;border-radius:var(--pm-r3);
  text-decoration:none;background:rgba(255,255,255,.04);border:1px solid var(--accbd);
  transition:background var(--pm-t2),border-color var(--pm-t2),transform var(--pm-t-spring)}
.pm-does-s:hover{background:rgba(255,255,255,.08);transform:translateY(-2px)}
.pm-does-n{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;
  border-radius:9px;background:var(--accbg);border:1px solid var(--accbd);
  font-family:var(--pm-fb);font-size:var(--pm-fs-ui);font-weight:700;line-height:1;color:#E2E8F0}
.pm-does-n::before{counter-increment:pmdoes;content:counter(pmdoes)}
.pm-does-b{min-width:0}
.pm-does-b b{display:block;margin-bottom:3px;font-family:var(--pm-fb);font-size:var(--pm-fs-sm);font-weight:700;
  letter-spacing:normal;line-height:1.25;color:#FFFFFF}
.pm-does-b span{display:block;font-size:var(--pm-fs-meta);line-height:1.45;color:var(--pm-ink-d1)}
.pm-does-s.is-concept,.pm-does-s.is-play{--accbg:rgba(129,140,248,.18);--accbd:rgba(129,140,248,.38)}
.pm-does-s.is-limit,.pm-does-s.is-trap{--accbg:rgba(217,119,6,.18);--accbd:rgba(217,119,6,.44)}
.pm-does-s.is-tools{--accbg:rgba(34,211,238,.14);--accbd:rgba(34,211,238,.38)}
.pm-does-s.is-route{--accbg:rgba(45,212,191,.14);--accbd:rgba(45,212,191,.38)}
.pm-does-s.is-faq{--accbg:rgba(255,255,255,.08);--accbd:rgba(255,255,255,.18)}
/* l'encre du numéro, par teinte (décision 38) */
.pm-does-s.is-concept .pm-does-n,.pm-does-s.is-play .pm-does-n{color:#C7D2FE}
.pm-does-s.is-limit .pm-does-n,.pm-does-s.is-trap .pm-does-n{color:#FCD34D}
.pm-does-s.is-tools .pm-does-n{color:#A5F3FC}
.pm-does-s.is-route .pm-does-n{color:#99F6E4}
@media (max-width:1100px){
  .pm-does{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:480px){
  .pm-does{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .pm-does-s{transition:none}
  .pm-does-s:hover{transform:none}
}


/* ── 159. TRI DE LECTURE « READ THIS IF · SKIP IT IF » — une barre en deux moitiés, chacune ouverte
   par un signe tracé en SVG (flèche vers le bas pour « continue », flèche qui sort pour « va
   ailleurs »), jamais les caractères ✓ et ✗. Aucun rouge : la moitié « passe ton chemin » (`is-no`)
   est en ardoise et en encre atténuée, ce qui dit « pas pour toi » sans dire « erreur ». L'étiquette
   est un titre de 16 px, pas une légende : c'est elle qui fait le tri. Encres écrites par variante
   (décision 38). Créé par `guide-definition` (ex-section 82 b), promu au socle à son deuxième usage,
   `guide-playbook` — décision 21, 22 septembre 2026 (décision 123). Sur carte sombre. ──────────── */
.pm-rs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-top:13px;
  border-radius:var(--pm-r3);overflow:hidden;border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.035)}
.pm-rs-c{display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;align-items:start;
  padding:18px 20px;min-width:0}
.pm-rs-c+.pm-rs-c{border-left:1px solid rgba(255,255,255,.11)}
.pm-rs-c.is-yes{--accbg:rgba(79,70,229,.20);--accbd:rgba(129,140,248,.40);
  background:linear-gradient(95deg,rgba(79,70,229,.16) 0%,rgba(79,70,229,.035) 76%,transparent 100%)}
.pm-rs-c.is-no{--accbg:rgba(255,255,255,.07);--accbd:rgba(255,255,255,.16)}
.pm-rs-i{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:11px;
  flex-shrink:0;background:var(--accbg);border:1px solid var(--accbd)}
.pm-rs-c.is-yes .pm-rs-i{color:#A5B4FC}
.pm-rs-c.is-no .pm-rs-i{color:#CBD5E1}
.pm-rs-i svg{width:18px;height:18px;display:block;stroke:currentColor;fill:none;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}
.pm-rs-k{display:block;margin-bottom:5px;font-family:var(--pm-fb);font-size:var(--pm-fs-body);font-weight:700;
  letter-spacing:normal;line-height:1.2;color:#FFFFFF}
.pm-rs-c.is-yes .pm-rs-k{color:#C7D2FE}
.pm-rs-d{display:block;font-size:var(--pm-fs-sm);line-height:1.55;color:var(--pm-ink-d1)}
@media (max-width:768px){
  .pm-rs-c{grid-template-columns:30px minmax(0,1fr);gap:12px;padding:16px 16px}
  .pm-rs-i{width:30px;height:30px;border-radius:10px}
  .pm-rs-k{font-size:var(--pm-fs-sm)}
}
@media (max-width:480px){
  .pm-rs{grid-template-columns:1fr}
  .pm-rs-c+.pm-rs-c{border-left:none;border-top:1px solid rgba(255,255,255,.10)}
}


/* ── 167. L'OUVERTURE D'UN GUIDE — sous le H1, un cadre indigo porte une étiquette, la ligne à
   retenir en gros (`pm-lead-r`, 27 px : la règle d'un playbook, le résultat d'une procédure) et une
   ligne secondaire derrière une pastille (`pm-lead-m`, `pm-lead-mk` : « First move », « Scope »).
   Deux champs, deux budgets : une hiérarchie (décision 37). Les deux lignes sont des <div>, jamais
   des <p> : la section 79 forcerait leur encre. Puis « at a glance » (`pm-glance`) : un cadre discret
   autour de la chaîne du socle (120), une case par étape, chaque case un lien vers le corps ; seules
   la taille de l'affirmation et la décoration du lien sont réglées ici. Créé par `guide-playbook`
   (ex-section 160, décisions 123 et 124), promu au socle à son deuxième usage, `guide-procedure` —
   décision 21, 22 septembre 2026 (décision 125). Sur carte sombre. Encres en clair (décision 38). ── */
.pm-lead{position:relative;margin-top:20px;padding:22px 26px 22px 30px;border-radius:var(--pm-r4);
  background:radial-gradient(circle at 3% 0%,rgba(79,70,229,.20) 0%,transparent 58%),rgba(255,255,255,.05);
  border:1px solid rgba(148,168,255,.26)}
.pm-lead::before{content:'';position:absolute;top:0;left:0;bottom:0;width:4px;
  border-radius:var(--pm-r4) 0 0 var(--pm-r4);background:linear-gradient(180deg,#4F46E5,#818CF8)}
/* étiquette en capitales espacées, exemptée du plancher de 12 px (décision 46) */
.pm-lead-l{display:block;margin-bottom:10px;font-family:var(--pm-fm);font-size:var(--pm-fs-xs);font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:#C7D2FE}
.pm-lead-r{max-width:34ch;font-family:var(--pm-fd);font-size:var(--pm-fs-2xl);font-weight:800;letter-spacing:-.02em;
  line-height:1.22;color:#FFFFFF}
.pm-lead-m{display:block;margin-top:13px;max-width:70ch;font-size:var(--pm-fs-sm);line-height:1.6;color:var(--pm-ink-d1)}
/* la pastille de la ligne secondaire, en capitales espacées (exemptée du plancher de 12 px, décision 46) */
.pm-lead-mk{display:inline-block;margin-right:9px;padding:2px 9px;border-radius:var(--pm-r-pill);vertical-align:1px;
  background:rgba(79,70,229,.30);border:1px solid rgba(129,140,248,.46);
  font-family:var(--pm-fm);font-size:var(--pm-fs-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#C7D2FE}
.pm-glance{margin-top:16px;padding:16px 18px 16px;border-radius:var(--pm-r3);
  background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.10)}
.pm-glance-l{display:block;margin-bottom:4px;font-family:var(--pm-fm);font-size:var(--pm-fs-xs);font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:#C7D2FE}
.pm-glance .pm-chain-c{text-decoration:none;color:inherit;border-radius:8px;transition:background var(--pm-t2)}
.pm-glance .pm-chain-c:hover{background:rgba(255,255,255,.05)}
.pm-glance .pm-chain-v{font-size:var(--pm-fs-sm);letter-spacing:normal;line-height:1.3}
@media (max-width:1100px){
  .pm-lead-r{font-size:var(--pm-fs-xl)}
}
@media (max-width:768px){
  .pm-lead{padding:18px 18px 18px 22px}
  .pm-lead-r{font-size:var(--pm-fs-h3);max-width:none}
  .pm-glance{padding:14px 14px 12px}
}
@media (max-width:480px){
  .pm-lead-r{font-size:var(--pm-fs-h3)}
}
@media (prefers-reduced-motion:reduce){
  .pm-glance .pm-chain-c{transition:none}
}


/* ── 168. LA FRISE D'ÉTAPES À COCHER (`pm-ticks*` : `pm-steps` et `pm-step` sont pris par la liste de la v6.2, section
   « étapes » ci-dessus, décision 126) — sur carte claire : le numéro hors de la carte (compteur CSS,
   rien à saisir) sur un rail vertical qui relie les étapes ; la carte porte l'affirmation en h3 — un
   verbe, un ordre (décision 37) — qui est un bouton à cocher, le détail, et une ligne d'état étiquetée
   (`pm-step-note`, `pm-step-note-k` : « Done when », « How you know it worked »). Le JS du socle
   (section 16) pose sur la liste `data-pm-ticklist` = `idle`, `some` ou `all` ; le CSS révèle l'une
   des trois lignes de verdict déjà écrites dans le HTML (`pm-steps-v`). Sans JavaScript, l'attribut
   reste vide : aucune ligne ne s'affiche, les étapes restent lisibles. La coche est un tracé SVG,
   jamais le caractère ✓. Le halo du numéro reprend le fond de la carte claire (`--pm-l0`). Créé par
   `guide-playbook` (ex-section 161, décisions 123 et 124), promu au socle à son deuxième usage,
   `guide-procedure` — décision 21, 22 septembre 2026 (décision 125). Encres en clair (décision 38) ;
   la section 79 force l'encre des paragraphes : rattrapés ici avec la même force. ───────────────── */
.pm-ticks{position:relative;display:grid;gap:12px;counter-reset:pmstep}
.pm-ticks::before{content:'';position:absolute;left:21px;top:26px;bottom:26px;width:2px;border-radius:2px;
  background:linear-gradient(180deg,rgba(79,70,229,.30),rgba(79,70,229,.12))}
.pm-tick{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;align-items:start}
.pm-tick-n{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:44px;height:44px;
  border-radius:50%;background:linear-gradient(135deg,#2563EB 0%,#4F46E5 52%,#7C3AED 100%);color:#FFFFFF;
  font-family:var(--pm-fb);font-size:var(--pm-fs-lead);font-weight:700;letter-spacing:normal;line-height:1;
  box-shadow:0 0 0 4px #F1F5FD,0 6px 16px rgba(79,70,229,.22);
  background-repeat:no-repeat;background-position:center;background-size:20px}
.pm-tick-n::before{counter-increment:pmstep;content:counter(pmstep)}
/* étape cochée : le numéro cède la place à la coche, en sarcelle */
.pm-tick:has(.pm-tick-q[aria-pressed="true"]) .pm-tick-n{background-color:#0F766E;background-image:
  url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'/></svg>");
  box-shadow:0 0 0 4px #F1F5FD,0 6px 16px rgba(15,118,110,.22)}
.pm-tick:has(.pm-tick-q[aria-pressed="true"]) .pm-tick-n::before{content:''}
.pm-tick-b{min-width:0;padding:17px 20px 18px;border-radius:var(--pm-r4);
  background:rgba(255,255,255,.62);border:1px solid rgba(110,128,200,.18);
  transition:border-color var(--pm-t2),background var(--pm-t2),box-shadow var(--pm-t2)}
.pm-tick:hover .pm-tick-b{border-color:rgba(79,70,229,.28);box-shadow:0 8px 24px rgba(0,0,0,.06)}
.pm-tick:has(.pm-tick-q[aria-pressed="true"]) .pm-tick-b{background:rgba(15,118,110,.06);border-color:rgba(15,118,110,.36)}
.pm-tick-h{margin:0 0 7px;font-family:var(--pm-fb);font-size:var(--pm-fs-lead);font-weight:700;letter-spacing:normal;line-height:1.3}
.pm-tick-q{display:flex;align-items:flex-start;gap:11px;width:100%;margin:0;padding:0;border:0;background:none;
  font:inherit;text-align:left;color:#0A1428;cursor:pointer}
.pm-tick-q::before{content:'';flex-shrink:0;width:20px;height:20px;margin-top:2px;border-radius:6px;
  border:2px solid rgba(79,70,229,.55);background:#FFFFFF;background-repeat:no-repeat;background-position:center;
  background-size:12px;transition:background-color var(--pm-t2),border-color var(--pm-t2)}
.pm-tick-q[aria-pressed="true"]::before{background-color:#0F766E;border-color:#0F766E;background-image:
  url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'/></svg>")}
.pm-tick-q:focus-visible{outline:2px solid #4F46E5;outline-offset:3px;border-radius:4px}
.pm-tick-d{margin:0;padding-left:31px;font-size:var(--pm-fs-sm);line-height:1.62;color:var(--pm-ink-l1)}
.pm-tick-note{margin:10px 0 0;padding:10px 12px;border-radius:var(--pm-r3);
  background:rgba(79,70,229,.06);border:1px solid rgba(79,70,229,.16);
  font-size:var(--pm-fs-ui);line-height:1.55;color:var(--pm-ink-l2)}
/* l'étiquette de la ligne d'état, en capitales espacées (exemptée du plancher de 12 px, décision 46) */
.pm-tick-note-k{display:inline-block;margin-right:8px;padding:2px 8px;border-radius:var(--pm-r-pill);vertical-align:1px;
  background:#FFFFFF;border:1px solid rgba(79,70,229,.30);
  font-family:var(--pm-fm);font-size:var(--pm-fs-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#3730A3}
/* la preuve mise en avant (`is-proof`) : la ligne d'état prend un fond sarcelle et une coche tracée en SVG —
   ce que le lecteur doit voir avant de cocher se distingue du détail. Créée par `guide-procedure` (décision
   126), promue ici à son deuxième usage, `guide-diagnostic` (décision 127). */
.pm-tick-note.is-proof{position:relative;padding-left:38px;background:rgba(15,118,110,.07);border-color:rgba(15,118,110,.26)}
.pm-tick-note.is-proof::before{content:'';position:absolute;left:12px;top:11px;width:18px;height:18px;border-radius:6px;background-color:#0F766E;
  background-repeat:no-repeat;background-position:center;background-size:12px;background-image:
  url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'/></svg>")}
/* le verdict : trois lignes écrites dans le HTML, une seule visible selon l'état */
.pm-ticks-v{margin-top:14px}
.pm-ticks-v p{display:none;margin:0;padding:13px 16px;border-radius:var(--pm-r3);font-size:var(--pm-fs-sm);line-height:1.55;font-weight:600}
[data-pm-ticklist="idle"]+.pm-ticks-v .pm-ticks-v-idle,
[data-pm-ticklist="none"]+.pm-ticks-v .pm-ticks-v-idle{display:block;font-weight:500;
  background:rgba(79,70,229,.05);border:1px dashed rgba(79,70,229,.30)}
[data-pm-ticklist="some"]+.pm-ticks-v .pm-ticks-v-some{display:block;
  background:rgba(79,70,229,.09);border:1px solid rgba(79,70,229,.30)}
[data-pm-ticklist="all"]+.pm-ticks-v .pm-ticks-v-all{display:block;
  background:rgba(15,118,110,.10);border:1px solid rgba(15,118,110,.34)}
.pm-page-wrap .pm-card-l .pm-tick-d{color:var(--pm-ink-l2)!important}
.pm-page-wrap .pm-card-l .pm-tick-note{color:var(--pm-ink-l3)!important}
.pm-page-wrap .pm-card-l .pm-ticks-v p{color:#26365A!important}
@media (max-width:768px){
  .pm-ticks::before{left:17px}
  .pm-tick{grid-template-columns:36px minmax(0,1fr);gap:12px}
  .pm-tick-n{width:36px;height:36px;font-size:var(--pm-fs-sm);background-size:17px}
  .pm-tick-b{padding:14px 15px 15px}
  .pm-tick-h{font-size:var(--pm-fs-body)}
}
@media print{
  .pm-ticks-v{display:none}
}
@media (prefers-reduced-motion:reduce){
  .pm-tick-b,.pm-tick-q::before{transition:none}
}


/* ── 169. LIGNES D'OUTIL GROUPÉES SOUS L'ÉTAPE QU'ELLES SERVENT — sur carte claire : un en-tête par
   étape (pastille « Step N », l'affirmation de l'étape), ouvert par la première ligne de l'étape ;
   puis une ligne par outil, alphabétique dans l'étape : logo, nom (le lien vers la review), rôle daté
   facultatif, prix d'entrée daté facultatif (`data-pm-price-checked` : le marqueur d'ancienneté du
   socle, JS 8, révèle l'avertissement au-delà de 180 jours), et la pastille Try — deux actions, jamais
   plus (décision 34). Aucun score : un ordre par la note ferait un classement, rôle de /best/. La
   note ferme la liste. Créé par `guide-playbook` (ex-section 164, décisions 123 et 124), promu au
   socle à son deuxième usage, `guide-procedure` — décision 21, 22 septembre 2026 (décision 125).
   Encres en clair (décision 38) ; la note est un <p> rattrapé avec la force de la section 79. ──── */
.pm-trows{display:grid;gap:8px}
.pm-trows-h{display:flex;align-items:center;gap:11px;margin:14px 0 2px;padding:0 2px}
.pm-trows-h:first-child{margin-top:0}
/* la pastille « Step N », en capitales espacées (exemptée du plancher de 12 px, décision 46) */
.pm-trows-hn{flex-shrink:0;padding:4px 11px;border-radius:var(--pm-r-pill);
  background:linear-gradient(135deg,#2563EB 0%,#4F46E5 52%,#7C3AED 100%);color:#FFFFFF;
  font-family:var(--pm-fm);font-size:var(--pm-fs-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.pm-trows-hl{font-family:var(--pm-fb);font-size:var(--pm-fs-body);font-weight:700;letter-spacing:normal;line-height:1.25;color:#0A1428}
.pm-trow{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px 15px;
  border-radius:var(--pm-r3);background:rgba(255,255,255,.62);border:1px solid rgba(110,128,200,.18);
  transition:border-color var(--pm-t2),box-shadow var(--pm-t2),background var(--pm-t2)}
.pm-trow:hover{border-color:rgba(79,70,229,.30);box-shadow:0 8px 22px rgba(0,0,0,.07)}
.pm-trow-logo{width:40px;height:40px;border-radius:11px;background:rgba(110,128,200,.10)}
.pm-trow-b{min-width:0}
.pm-trow-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.pm-trow-n{font-family:var(--pm-fb);font-size:var(--pm-fs-body);font-weight:700;letter-spacing:normal;line-height:1.25;
  color:#0A1428;text-decoration:none}
.pm-trow-n:hover{color:#3730A3;text-decoration:underline;text-underline-offset:3px}
.pm-trow-r{display:block;margin-top:3px;font-size:var(--pm-fs-ui);line-height:1.45;color:var(--pm-ink-l1)}
.pm-trow-price{display:block;margin-top:4px;font-size:var(--pm-fs-meta);line-height:1.5;color:var(--pm-ink-l2)}
.pm-trow-price b{color:#0A1428;font-weight:800}
/* la pastille Try : capitales espacées, exemptée du plancher de 12 px (décision 46) */
.pm-trow-try{justify-self:end;padding:8px 15px;border-radius:var(--pm-r-pill);text-decoration:none;
  background:var(--pm-grad);border:1px solid transparent;color:#FFFFFF;-webkit-text-fill-color:#FFFFFF;
  font-family:var(--pm-fm);font-size:var(--pm-fs-xs);font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  transition:filter var(--pm-t2)}
.pm-trow-try:hover{filter:brightness(1.12)}
.pm-trows-note{margin:18px 0 0;padding-top:14px;border-top:1px solid rgba(110,128,200,.18);
  font-size:var(--pm-fs-ui);line-height:1.6;color:var(--pm-ink-l1)}
.pm-page-wrap .pm-card-l .pm-trows-note{color:var(--pm-ink-l2)!important}
@media (max-width:768px){
  .pm-trow{grid-template-columns:40px minmax(0,1fr)}
  .pm-trow-try{grid-column:2;justify-self:start;margin-top:2px}
}
@media (max-width:480px){
  .pm-trows-h{flex-wrap:wrap;gap:6px}
}
@media (prefers-reduced-motion:reduce){
  .pm-trow,.pm-trow-try{transition:none}
}


/* ── 176. LES PUCES DU CADRE « AT A GLANCE » ET LA LISTE COPIÉE D'UN GUIDE — dans le cadre `pm-glance`
   (167), un rang de puces à signe tracé en SVG (« You need » sur une procédure, « It comes from » sur un
   diagnostic), chaque puce un lien vers la carte qui détaille ; `pm-glance-l2` donne au second libellé du
   cadre sa marge et son filet. `pm-copysrc` : la liste `<ol data-pm-copy-src hidden>` que le bouton
   « Copy … » du socle (JS 13) lit, écrite dans la page et jamais affichée ; son encre est posée pour
   l'audit de contraste. Créés par `guide-procedure` (ex-sections 170 et 171, décision 126), promus au
   socle à leur deuxième usage, `guide-diagnostic` — décision 21, 22 septembre 2026 (décision 127). Noms
   cherchés dans tout le socle avant d'être choisis (décision 126). Sur carte sombre. ───────────────── */
.pm-glance-chips{display:flex;flex-wrap:wrap;gap:7px;margin:6px 0 14px}
.pm-glance-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px 6px 9px;border-radius:var(--pm-r-pill);
  text-decoration:none;font-size:var(--pm-fs-meta);font-weight:600;line-height:1.3;color:#EEF4FF;
  background:rgba(129,140,248,.14);border:1px solid rgba(129,140,248,.36);transition:background var(--pm-t2)}
.pm-glance-chip:hover{background:rgba(129,140,248,.26)}
.pm-glance-chip svg{width:13px;height:13px;flex-shrink:0;stroke:#C7D2FE;fill:none;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.pm-glance-l2{margin-top:2px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}
.pm-copysrc{display:none;color:#0A1428}
@media (prefers-reduced-motion:reduce){
  .pm-glance-chip{transition:none}
}

/* ═══════════════════════════════════════════════════════════════════════════
   185. LA PALETTE DES CARTES DE SITUATION — six teintes par position

   Le même dessin vivait deux fois avec les mêmes couleurs : les cartes de
   situation de l'accueil (pm-hp-sit, décision 99) et les réponses de
   /start-here/ (pm-sp-ans, décision 100). Une carte porte la classe pm-tint et
   reçoit, selon sa position parmi ses sœurs, un fond, un filet et un accent ;
   son additif les emploie (var(--pm-tint-bg), var(--pm-tint-line),
   var(--pm-tint-acc)) et ne connaît plus aucune couleur. Promue à l'étape 3.8
   (décision 129) ; le filet de la première teinte est aligné sur celui de
   /start-here/ (alpha .3, l'accueil avait .28).
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-tint{--pm-tint-bg:#E9EDFF;--pm-tint-line:rgba(67,56,202,.3);--pm-tint-acc:#4338CA}
.pm-tint:nth-child(6n+2){--pm-tint-bg:#E2F3F8;--pm-tint-line:rgba(14,116,144,.3);--pm-tint-acc:#0E7490}
.pm-tint:nth-child(6n+3){--pm-tint-bg:#EFE9FF;--pm-tint-line:rgba(109,40,217,.28);--pm-tint-acc:#6D28D9}
.pm-tint:nth-child(6n+4){--pm-tint-bg:#E3EDFF;--pm-tint-line:rgba(29,78,216,.28);--pm-tint-acc:#1D4ED8}
.pm-tint:nth-child(6n+5){--pm-tint-bg:#F8E8FB;--pm-tint-line:rgba(162,28,175,.26);--pm-tint-acc:#A21CAF}
.pm-tint:nth-child(6n){--pm-tint-bg:#FFF7ED;--pm-tint-line:rgba(180,83,9,.3);--pm-tint-acc:#B45309}


/* ═══════════════════════════════════════════════════════════════════════════
   186. LA LIGNE « ALSO REVIEWED » — les outils liés par le CSV sans être cités

   Une ligne courte sous les tuiles ou les lignes d'outil d'un guide : « Also
   reviewed: » puis les noms, séparés par un point médian, chacun vers sa
   review. Sans rôle, sans Try. Créée par guide-definition (décision 120),
   reprise à l'identique par guide-procedure (décision 125), promue à l'étape
   3.8 (décision 129). Sur carte claire, l'encre est posée à deux classes.
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-more{margin:18px 0 0;font-size:var(--pm-fs-ui);line-height:1.6;color:var(--pm-ink-l1)}
.pm-card-l .pm-more{color:var(--pm-ink-l2)}
.pm-more-a{color:#1868A8;text-decoration:underline;text-underline-offset:3px}
.pm-more-a:hover{color:#145A90}
.pm-more-a+.pm-more-a::before{content:' · ';color:var(--pm-ink-l2);text-decoration:none;display:inline-block;margin:0 2px 0 0}


/* ═══════════════════════════════════════════════════════════
   187. LES RETOURS DU PROPRIÉTAIRE SUR L'ÉCHANTILLON (séance 237, 21 octobre 2026)

   Ce qu'un lecteur voyait de travers, réglé une fois pour toutes les pages :
   · un petit texte posé dans un gros chiffre (« /mo », « /seat /mo billed
     annually ») ne prend plus l'espacement serré du chiffre ;
   · la note d'une alternative et son écart restent dans la carte ;
   · le nom de l'outil sujet d'un titre (review, alternatives, prix, duel)
     porte le dégradé du titre de l'accueil — la classe est posée par
     generer_page.marquer_outils_du_titre ;
   · les libellés des lignes d'un tableau comparatif sont en bleu, en gras ;
   · les logos des colonnes d'un tableau comparatif passent de 22 à 28 px ;
   · un bouton qui mène chez l'éditeur (rel « nofollow ») luit et un reflet
     le traverse deux fois à l'arrivée (moins de 5 s, WCAG 2.2.2), puis au
     survol ; rien pour qui a demandé moins d'animations ; les « Try » des
     lignes de tableau (annuaire, classement) gardent le reflet au survol seul ;
   · la bulle d'un « ? » est dessinée par pm-global.js (section 18) en
     position fixe, au-dessus de tout : une carte qui masque ce qui dépasse la
     coupait ; sans JavaScript, la bulle CSS de la section 102 reste.
   Contrôle : verifier_debordements.py (chevauchements, textes tassés,
   débordements de carte, logos à vide).
   ═══════════════════════════════════════════════════════════ */
:where(.pm-page-wrap) small{letter-spacing:normal}

.pm-h1-tool{background:linear-gradient(100deg,#60A5FA 0%,#818CF8 38%,#A78BFA 68%,#E879F9 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#A78BFA;-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* un nom d'un seul long mot (CallTrackingMetrics) passait sous le médaillon du rang d'une carte de podium étroite */
.pm-pod-n{overflow-wrap:anywhere}

.pm-ct tbody tr:not(.is-sec)>th{color:#93C5FD;font-weight:700}
.pm-card-l .pm-ct tbody tr:not(.is-sec)>th{color:#1D4ED8}

@keyframes pm-try-glow{0%,100%{box-shadow:0 4px 14px rgba(79,70,229,.32)}50%{box-shadow:0 0 0 3px rgba(129,140,248,.28),0 8px 26px rgba(79,70,229,.55)}}
@keyframes pm-cta-shine{0%,72%{left:-110%}100%{left:168%}}
/* deux passages de 2,4 s : l'animation s'arrête d'elle-même avant 5 s (WCAG 2.2.2) ; les « Try » des lignes de tableau ne bougent pas */
.pm-btn[rel~="nofollow"],.pm-sm.is-cta:not(td *){animation:pm-try-glow 2.4s ease-in-out 2}
.pm-btn[rel~="nofollow"]::before{animation:pm-cta-shine 2.4s ease-in-out 2}
.pm-sm.is-cta{position:relative;overflow:hidden}
.pm-sm.is-cta::before{content:'';position:absolute;top:0;left:-110%;width:56%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-14deg);pointer-events:none;transition:left .6s ease}
.pm-sm.is-cta:not(td *)::before{animation:pm-cta-shine 2.4s ease-in-out 2}
.pm-sm.is-cta:hover::before{left:168%}
.pm-btn[rel~="nofollow"]:hover,.pm-btn[rel~="nofollow"]:hover::before,.pm-sm.is-cta:hover,.pm-sm.is-cta:hover::before{animation:none}
.pm-sm.is-cta:hover{box-shadow:0 0 0 3px rgba(129,140,248,.3),0 8px 22px rgba(79,70,229,.5);transform:translateY(-1px)}

.pm-tip-js .pm-how::after{display:none!important}
.pm-tip{position:fixed;left:0;top:0;z-index:2147483000;width:max-content;max-width:min(320px,calc(100vw - 16px));padding:10px 12px;border-radius:10px;background:#0A1426;color:var(--pm-ink-d1);font-family:var(--pm-fb);font-size:var(--pm-fs-meta);font-weight:400;line-height:1.5;letter-spacing:normal;text-align:left;text-transform:none;box-shadow:0 10px 30px rgba(0,0,0,.45);border:1px solid rgba(148,168,255,.19);pointer-events:none}
.pm-tip[hidden]{display:none}

@media (prefers-reduced-motion:reduce){
  .pm-btn[rel~="nofollow"],.pm-btn[rel~="nofollow"]::before,.pm-sm.is-cta,.pm-sm.is-cta::before{animation:none}
}
@media print{
  .pm-h1-tool{-webkit-text-fill-color:currentColor;background:none}
  .pm-tip{display:none}
}


/* ═══════════════════════════════════════════════════════════
   188. LE CADRAGE DES LOGOS — écrit par _SCRIPTS/cadrer_logos.py, jamais à la main

   Un logo dont le dessin n'occupe qu'une partie de son image (du vide autour,
   une image en largeur) paraissait minuscule dans sa case carrée. Pour chacun,
   le script mesure le dessin sur les pixels et écrit une règle sur son adresse
   exacte (colonne « Logo Outil » du CSV outils), sous :where(.pm-wide) — les
   pages du gabarit v8 seulement ; les anciennes pages (pm-legacy) affichent
   ces logos hors d'une case carrée. L'image est agrandie autour du dessin
   (translate et scale, propriétés séparées : un transform de survol, comme
   celui des tuiles de guide, se compose par-dessus) et coupée à sa case
   (clip-path), sans changer la place qu'elle prend dans la page. Les fichiers
   et le CSV ne changent pas.
   ═══════════════════════════════════════════════════════════ */
/* CADRAGE DES LOGOS : DÉBUT */
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/Lemlist-logo.png"]{object-fit:contain;transform-origin:50% 48%;translate:0.00% 2.00%;scale:1.217;clip-path:inset(6.93% 8.93% 10.93% 8.93% round 21.4%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/Pipedrive-logo.png"]{object-fit:contain;transform-origin:50% 47.50%;translate:0.00% 2.50%;scale:1.388;clip-path:inset(11.49% 13.99% 16.49% 13.99% round 18.7%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/Salesforge-logo.png"]{object-fit:contain;transform-origin:49.88% 47.50%;translate:0.12% 2.50%;scale:1.292;clip-path:inset(8.81% 11.43% 13.81% 11.18% round 20.1%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/Snovio-logo.png"]{object-fit:contain;transform-origin:51.12% 49.62%;translate:-1.12% 0.38%;scale:1.394;clip-path:inset(13.76% 13.01% 14.51% 15.26% round 18.6%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/amplemarket-logo.png"]{object-fit:contain;transform-origin:52.75% 51.75%;translate:-2.75% -1.75%;scale:1.448;clip-path:inset(17.22% 12.73% 13.73% 18.23% round 18.0%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/breakcold-logo.png"]{object-fit:contain;transform-origin:50% 48.63%;translate:0.00% 1.37%;scale:2.333;clip-path:inset(27.20% 28.57% 29.94% 28.57% round 11.1%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/champify-logo.webp"]{object-fit:contain;transform-origin:49.88% 49.88%;translate:0.12% 0.12%;scale:1.639;clip-path:inset(19.37% 19.62% 19.62% 19.37% round 15.9%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/clay-logo.webp"]{object-fit:contain;transform-origin:49.61% 50%;translate:0.39% 0.00%;scale:1.195;clip-path:inset(8.15% 8.54% 8.15% 7.76% round 21.8%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/demandbase-logo.webp"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.600;clip-path:inset(18.75% 18.75% 18.75% 18.75% round 16.2%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/dux-soup-logo.png"]{object-fit:contain;transform-origin:51.25% 46.63%;translate:-1.25% 3.37%;scale:1.128;clip-path:inset(2.28% 4.40% 9.03% 6.90% round 23.1%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/emailable-logo.webp"]{object-fit:contain;transform-origin:50.12% 50%;translate:-0.12% 0.00%;scale:1.592;clip-path:inset(18.60% 18.48% 18.60% 18.73% round 16.3%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/findymail-logo.png"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:2.600;clip-path:inset(30.77% 30.77% 30.77% 30.77% round 10.0%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/gong-logo.png"]{object-fit:contain;transform-origin:49.83% 50%;translate:0.17% 0.00%;scale:1.518;clip-path:inset(17.06% 17.23% 17.06% 16.90% round 17.1%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/klenty-logo.png"]{object-fit:contain;transform-origin:49.62% 48.88%;translate:0.38% 1.12%;scale:1.383;clip-path:inset(12.71% 14.21% 14.96% 13.46% round 18.8%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/la-growth-machine-logo.webp"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.585;clip-path:inset(18.45% 18.45% 18.45% 18.45% round 16.4%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/meet-alfred-logo.png"]{object-fit:contain;transform-origin:51.38% 50.50%;translate:-1.38% -0.50%;scale:1.222;clip-path:inset(9.58% 7.70% 8.58% 10.45% round 21.3%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/neverbounce-logo.webp"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.344;clip-path:inset(12.80% 12.80% 12.80% 12.80% round 19.3%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/regie-logo.png"]{object-fit:contain;transform-origin:50.25% 47.75%;translate:-0.25% 2.25%;scale:1.366;clip-path:inset(11.14% 13.14% 15.64% 13.64% round 19.0%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/saleshandy-logo.png"]{object-fit:contain;transform-origin:50.12% 50%;translate:-0.12% 0.00%;scale:1.592;clip-path:inset(18.60% 18.48% 18.60% 18.73% round 16.3%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/smartlead-logo.png"]{object-fit:contain;transform-origin:50.62% 50.38%;translate:-0.62% -0.38%;scale:1.171;clip-path:inset(7.67% 6.67% 6.92% 7.92% round 22.2%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/smartwriter-logo.png"]{object-fit:contain;transform-origin:51.20% 49.85%;translate:-1.20% 0.15%;scale:1.202;clip-path:inset(8.25% 7.20% 8.56% 9.61% round 21.6%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/texau-logo.webp"]{object-fit:contain;transform-origin:50.12% 50%;translate:-0.12% 0.00%;scale:1.577;clip-path:inset(18.30% 18.18% 18.30% 18.43% round 16.5%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/03/usergems-logo.webp"]{object-fit:contain;transform-origin:50.12% 50%;translate:-0.12% 0.00%;scale:1.592;clip-path:inset(18.60% 18.48% 18.60% 18.73% round 16.3%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/BombBomb.webp"]{object-fit:contain;transform-origin:50.12% 50%;translate:-0.12% 0.00%;scale:1.592;clip-path:inset(18.60% 18.48% 18.60% 18.73% round 16.3%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Capsule.png"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.474;clip-path:inset(16.07% 16.07% 16.07% 16.07% round 17.6%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Chili-Piper.png"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.080;clip-path:inset(3.70% 3.70% 3.70% 3.70% round 24.1%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/ClickUp.webp"]{object-fit:contain;transform-origin:50% 48.88%;translate:0.00% 1.12%;scale:1.297;clip-path:inset(10.33% 11.46% 12.58% 11.46% round 20.0%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/CoPilot-AI.webp"]{object-fit:contain;transform-origin:49.88% 49.88%;translate:0.12% 0.12%;scale:2.600;clip-path:inset(30.64% 30.89% 30.89% 30.64% round 10.0%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Conversica.png"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.600;clip-path:inset(18.75% 18.75% 18.75% 18.75% round 16.2%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Crystal.png"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.091;clip-path:inset(4.17% 4.17% 4.17% 4.17% round 23.8%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Decktopus.png"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.388;clip-path:inset(13.99% 13.99% 13.99% 13.99% round 18.7%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Dubb.webp"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.260;clip-path:inset(10.32% 10.32% 10.32% 10.32% round 20.6%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Folk.png"]{object-fit:contain;transform-origin:50% 48.62%;translate:0.00% 1.37%;scale:1.313;clip-path:inset(10.53% 11.90% 13.28% 11.90% round 19.8%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/FullEnrich.png"]{object-fit:contain;transform-origin:50% 49.17%;translate:0.00% 0.83%;scale:1.241;clip-path:inset(8.89% 9.72% 10.56% 9.72% round 20.9%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/GetAccept.webp"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.680;clip-path:inset(20.24% 20.24% 20.24% 20.24% round 15.5%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Growbots.png"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.120;clip-path:inset(5.36% 5.36% 5.36% 5.36% round 23.2%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Harmonic.png"]{object-fit:contain;transform-origin:51.75% 49.88%;translate:-1.75% 0.12%;scale:1.349;clip-path:inset(12.82% 11.20% 13.07% 14.70% round 19.3%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Observe-AI.png"]{object-fit:contain;transform-origin:50.20% 50%;translate:-0.20% 0.00%;scale:1.352;clip-path:inset(13.03% 12.83% 13.03% 13.23% round 19.2%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Outplay.avif"]{object-fit:contain;transform-origin:50.19% 50.19%;translate:-0.19% -0.19%;scale:1.163;clip-path:inset(7.20% 6.83% 6.83% 7.20% round 22.4%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Prospeo.png"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:2.000;clip-path:inset(25% 25% 25% 25% round 13.0%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Quickmail.png"]{object-fit:contain;transform-origin:50.20% 47.85%;translate:-0.20% 2.15%;scale:1.188;clip-path:inset(5.77% 7.72% 10.06% 8.11% round 21.9%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Revenue-Grid.webp"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.600;clip-path:inset(18.75% 18.75% 18.75% 18.75% round 16.2%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Seismic.webp"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.273;clip-path:inset(10.71% 10.71% 10.71% 10.71% round 20.4%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Sendspark.png"]{object-fit:contain;transform-origin:50.12% 50%;translate:-0.12% 0.00%;scale:1.592;clip-path:inset(18.60% 18.48% 18.60% 18.73% round 16.3%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Storydoc.png"]{object-fit:contain;transform-origin:50.12% 48.75%;translate:-0.12% 1.25%;scale:1.191;clip-path:inset(6.79% 7.91% 9.29% 8.16% round 21.8%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Synthesia.png"]{object-fit:contain;transform-origin:50.12% 50%;translate:-0.12% 0.00%;scale:1.592;clip-path:inset(18.60% 18.48% 18.60% 18.73% round 16.3%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/04/Wistia.png"]{object-fit:contain;transform-origin:50% 49.62%;translate:0.00% 0.38%;scale:2.000;clip-path:inset(24.62% 25% 25.38% 25% round 13.0%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/Bombora.png"]{object-fit:contain;transform-origin:50% 49.88%;translate:0.00% 0.13%;scale:1.268;clip-path:inset(10.44% 10.57% 10.69% 10.57% round 20.5%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/Brevo.webp"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.680;clip-path:inset(20.24% 20.24% 20.24% 20.24% round 15.5%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/Demoboost.webp"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.600;clip-path:inset(18.75% 18.75% 18.75% 18.75% round 16.2%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/EmailBison.png"]{object-fit:contain;transform-origin:49.42% 45.92%;translate:0.58% 4.08%;scale:1.916;clip-path:inset(19.83% 24.49% 27.99% 23.33% round 13.6%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/LeadMagic.png"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.080;clip-path:inset(3.70% 3.70% 3.70% 3.70% round 24.1%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/Mailbutler.png"]{object-fit:contain;transform-origin:50.17% 50.50%;translate:-0.17% -0.50%;scale:1.266;clip-path:inset(11.02% 10.35% 10.02% 10.68% round 20.5%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/Mailforge.webp"]{object-fit:contain;transform-origin:50.12% 50%;translate:-0.12% 0.00%;scale:1.592;clip-path:inset(18.60% 18.48% 18.60% 18.73% round 16.3%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/Mailmeteor.png"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.222;clip-path:inset(9.08% 9.08% 9.08% 9.08% round 21.3%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/Mixmax.png"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.120;clip-path:inset(5.36% 5.36% 5.36% 5.36% round 23.2%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/Octoparse.png"]{object-fit:contain;transform-origin:48.05% 50.20%;translate:1.95% -0.20%;scale:1.114;clip-path:inset(5.32% 7.08% 4.93% 3.17% round 23.3%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/PersistIQ.png"]{object-fit:contain;transform-origin:49.62% 49.88%;translate:0.38% 0.13%;scale:1.268;clip-path:inset(10.44% 10.94% 10.69% 10.19% round 20.5%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/Salesflare.png"]{object-fit:contain;transform-origin:50% 50.18%;translate:0.00% -0.18%;scale:1.120;clip-path:inset(5.54% 5.36% 5.18% 5.36% round 23.2%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/Showpad.webp"]{object-fit:contain;transform-origin:49.12% 51.62%;translate:0.88% -1.62%;scale:1.222;clip-path:inset(10.70% 9.95% 7.45% 8.20% round 21.3%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/Surfer-SEO.png"]{object-fit:contain;transform-origin:49.88% 49.25%;translate:0.12% 0.75%;scale:1.360;clip-path:inset(12.49% 13.37% 13.99% 13.12% round 19.1%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/Zendesk.png"]{object-fit:contain;transform-origin:50% 50%;translate:0.00% 0.00%;scale:1.159;clip-path:inset(6.85% 6.85% 6.85% 6.85% round 22.4%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/maildoso.webp"]{object-fit:contain;transform-origin:50.25% 50%;translate:-0.25% 0.00%;scale:2.000;clip-path:inset(25% 24.75% 25% 25.25% round 13.0%)}
:where(.pm-wide) img[src="https://prospectingmanual.com/wp-content/uploads/2026/08/noCRM.io_.webp"]{object-fit:contain;transform-origin:49.88% 50%;translate:0.12% 0.00%;scale:1.333;clip-path:inset(12.50% 12.63% 12.50% 12.38% round 19.5%)}
/* CADRAGE DES LOGOS : FIN */


/* ═══════════════════════════════════════════════════════════
   189. L'ENCRE ET LA POLICE DE TEXTE — design system v9 (séance 237)

   Cinq encres franches remplacent les blancs translucides et les gris-bleus
   (design_system.py les pose dans les seules déclarations color ; jetons au
   :root, décision 38). Inter devient la police du texte et de l'interface sur
   les pages du gabarit v8 (.pm-wide et, hors de la page, la bulle, la barre
   de comparaison, le tiroir) ; les anciennes pages gardent Plus Jakarta Sans.
   Un prix ou une durée d'essai seul dans sa phrase est posé en
   <strong class="pm-key"> par generer_page.mettre_en_valeur_les_prix.
   ═══════════════════════════════════════════════════════════ */
:root{--pm-ink-d1:#E9EEF8;--pm-ink-d2:#BAC6DC;--pm-ink-l1:#12213B;--pm-ink-l2:#22385D;--pm-ink-l3:#3A5488}
.pm-wide{--pm-fb:'Inter','Plus Jakarta Sans',sans-serif;font-family:var(--pm-fb)}
body:has(.pm-wide) :is(.pm-tip,.pm-slist,.pm-drawer){--pm-fb:'Inter','Plus Jakarta Sans',sans-serif;font-family:var(--pm-fb)}
strong.pm-key{font-weight:700;color:#FFFFFF}
.pm-card-l strong.pm-key{color:#0A1428}

/* ═══════════════════════════════════════════════════════════
   191. LA COUCHE DE COMPOSANTS — design system v9 (séance 237, « go » du propriétaire du 22 octobre 2026)

   Écrite par _SCRIPTS/design_system.py (--appliquer), relue par deux agents
   Opus et sur les retours du propriétaire. Titres (Urbanist pour l'affichage
   seulement), haut de page (la conclusion d'abord, décision 37), surtitres,
   nombres alignés, relief (trois niveaux sur fond sombre, deux sur carte
   claire ; ce qui se clique se soulève), boutons (primaire : le dégradé avec
   relief et une flèche, tous les Try affiliés ou non, décision 65, en premier
   dans leur rangée ; secondaire : surface et filet ; sélectionné : indigo
   plein), tableaux, alignements (jamais un texte aligné à droite qui passe
   à la ligne), couleur du bloc prix, mobile et tablette. Chaque sélecteur
   porte « body » (ou « body:has(.pm-wide) » hors de la page) : la couche gagne
   les égalités contre les additifs, chargés après le socle.
   Contrôles : verifier_debordements.py, design_system.py --controle.
   ═══════════════════════════════════════════════════════════ */
:root{--pm-fs-xs:12px;--pm-fs-meta:13px;--pm-fs-ui:14px;--pm-fs-sm:15px;--pm-fs-body:16px;--pm-fs-lead:18px;--pm-fs-h3:20px;--pm-fs-vd:22px;--pm-fs-xl:24px;--pm-fs-2xl:28px;--pm-fs-h2:30px;--pm-fs-h1m:32px;--pm-fs-3xl:36px;--pm-fs-h1:44px;--pm-fs-num:56px;
 --pm-e1:0 1px 2px rgba(2,6,23,.28);
 --pm-e2:inset 0 1px 0 rgba(255,255,255,.06),0 1px 2px rgba(2,6,23,.30),0 10px 24px -12px rgba(2,6,23,.55);
 --pm-e3:inset 0 1px 0 rgba(255,255,255,.06),0 2px 6px rgba(2,6,23,.25),0 28px 64px -28px rgba(2,6,23,.75);
 --pm-el1:0 1px 2px rgba(15,23,60,.07),0 4px 12px -6px rgba(15,23,60,.12);
 --pm-el2:0 2px 4px rgba(15,23,60,.08),0 16px 32px -14px rgba(15,23,60,.28);
 --pm-ring:0 0 0 3px rgba(129,140,248,.45)}
body .pm-wide{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}

/* Titres : Urbanist pour l'affichage seulement (H1, H2, grands nombres), moins serré ; une ligne de lecture de 68 caractères */
body .pm-wide .pm-h1{font-weight:800;letter-spacing:-.022em;line-height:1.08}
body .pm-wide .pm-h1:not(.pm-hp-h1){font-size:var(--pm-fs-h1)}
body .pm-wide .pm-hp-stat b{font-size:var(--pm-fs-3xl)}
body :where(.pm-wide) :where(button,input,select){font:inherit}
body .pm-wide h2{letter-spacing:-.015em;line-height:1.18}
body .pm-wide .pm-sec p{font-size:var(--pm-fs-body);line-height:1.65;max-width:68ch}

/* Le haut de page : la conclusion en premier, le reste un cran plus bas (décision 37) */
body .pm-wide .pm-vd{font-size:var(--pm-fs-lead);line-height:1.6;font-weight:400}
body .pm-wide .pm-vd b{font-size:var(--pm-fs-vd);line-height:1.32;font-weight:700;letter-spacing:-.01em;margin-bottom:10px}

/* Les surtitres : une seule forme, partout */
body .pm-wide :is(.pm-eye,.pm-bh-eye,.pm-sec-tag){font-family:var(--pm-fb);font-size:var(--pm-fs-xs);font-weight:700;letter-spacing:.09em}

/* Les nombres alignés (notes, prix, tableaux) */
body .pm-wide :is(.pm-cell b,.pm-rk-sc,.pm-rv-brow-v,.pm-alt-sc b,.pm-rv-plan-p,.pm-vc-price b,.pm-rv-avg,.pm-rv-pos b,[data-pm-score]){font-variant-numeric:tabular-nums}

/* Profondeur : les grandes cartes flottent, les cartes internes ont un relief net, les cliquables se soulèvent */
body .pm-wide .pm-card:not(.pm-card-l){box-shadow:var(--pm-e3)}
body .pm-wide .pm-card.pm-card-l{box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 2px 6px rgba(2,6,23,.2),0 30px 70px -30px rgba(2,6,23,.8)}
body .pm-wide .pm-card:not(.pm-card-l) .pm-alt,body .pm-wide .pm-card:not(.pm-card-l) .pm-rv-plan,body .pm-wide .pm-card:not(.pm-card-l) .pm-rv-brow,body .pm-wide .pm-card:not(.pm-card-l) .pm-vc,body .pm-wide .pm-card:not(.pm-card-l) .pm-facts,body .pm-wide .pm-card:not(.pm-card-l) .pm-big,body .pm-wide .pm-card:not(.pm-card-l) .pm-evc,body .pm-wide .pm-card:not(.pm-card-l) .pm-rv-drv,body .pm-wide .pm-card:not(.pm-card-l) .pm-rv-per,body .pm-wide .pm-card:not(.pm-card-l) .pm-rv-res,body .pm-wide .pm-card:not(.pm-card-l) .pm-rv-trend,body .pm-wide .pm-card:not(.pm-card-l) .pm-rv-ask,body .pm-wide .pm-card:not(.pm-card-l) .pm-al-stay-c,body .pm-wide .pm-card:not(.pm-card-l) .pm-dodont-col,body .pm-wide .pm-card:not(.pm-card-l) .pm-hp-dim,body .pm-wide .pm-card:not(.pm-card-l) .pm-hp-out,body .pm-wide .pm-card:not(.pm-card-l) .pm-hp-top,body .pm-wide .pm-card:not(.pm-card-l) .pm-hs-dim,body .pm-wide .pm-card:not(.pm-card-l) .pm-hs-result,body .pm-wide .pm-card:not(.pm-card-l) .pm-al-named-i,body .pm-wide .pm-card:not(.pm-card-l) .pm-pod-c,body .pm-wide .pm-card:not(.pm-card-l) .pm-en,body .pm-wide .pm-card:not(.pm-card-l) .pm-nl,body .pm-wide .pm-card:not(.pm-card-l) .pm-gd-tile,body .pm-wide .pm-card:not(.pm-card-l) .pm-hp-sit,body .pm-wide .pm-card:not(.pm-card-l) .pm-sp-ans{background-image:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,0));box-shadow:var(--pm-e2)}
body .pm-wide .pm-card-l .pm-alt,body .pm-wide .pm-card-l .pm-rv-plan,body .pm-wide .pm-card-l .pm-rv-brow,body .pm-wide .pm-card-l .pm-vc,body .pm-wide .pm-card-l .pm-facts,body .pm-wide .pm-card-l .pm-big,body .pm-wide .pm-card-l .pm-evc,body .pm-wide .pm-card-l .pm-rv-drv,body .pm-wide .pm-card-l .pm-rv-per,body .pm-wide .pm-card-l .pm-rv-res,body .pm-wide .pm-card-l .pm-rv-trend,body .pm-wide .pm-card-l .pm-rv-ask,body .pm-wide .pm-card-l .pm-al-stay-c,body .pm-wide .pm-card-l .pm-dodont-col,body .pm-wide .pm-card-l .pm-hp-dim,body .pm-wide .pm-card-l .pm-hp-out,body .pm-wide .pm-card-l .pm-hp-top,body .pm-wide .pm-card-l .pm-hs-dim,body .pm-wide .pm-card-l .pm-hs-result,body .pm-wide .pm-card-l .pm-al-named-i,body .pm-wide .pm-card-l .pm-pod-c,body .pm-wide .pm-card-l .pm-en,body .pm-wide .pm-card-l .pm-nl,body .pm-wide .pm-card-l .pm-gd-tile,body .pm-wide .pm-card-l .pm-hp-sit,body .pm-wide .pm-card-l .pm-sp-ans{box-shadow:var(--pm-el1);border-color:rgba(110,128,200,.32)}
body .pm-wide .pm-alt,body .pm-wide .pm-nl,body .pm-wide .pm-gd-tile,body .pm-wide .pm-hp-sit,body .pm-wide .pm-sp-ans{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
body .pm-wide .pm-card-l .pm-alt:hover,body .pm-wide .pm-card-l .pm-nl:hover,body .pm-wide .pm-card-l .pm-gd-tile:hover,body .pm-wide .pm-card-l .pm-hp-sit:hover,body .pm-wide .pm-card-l .pm-sp-ans:hover{transform:translateY(-3px);box-shadow:var(--pm-el2)}
body .pm-wide .pm-card:not(.pm-card-l) .pm-alt:hover,body .pm-wide .pm-card:not(.pm-card-l) .pm-nl:hover,body .pm-wide .pm-card:not(.pm-card-l) .pm-gd-tile:hover,body .pm-wide .pm-card:not(.pm-card-l) .pm-hp-sit:hover,body .pm-wide .pm-card:not(.pm-card-l) .pm-sp-ans:hover{transform:translateY(-3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 18px 36px -14px rgba(2,6,23,.75)}

/* Boutons, trois niveaux.
   Primaire : le dégradé du site, avec du relief (reflet en haut, ombre portée colorée), une flèche qui avance au survol ;
   les boutons qui mènent chez l'éditeur sont tous primaires, affiliés ou non (décision 65). */
body :where(.pm-wide) a.pm-btn:not([rel]),body :where(.pm-wide) a[rel~="nofollow"]:is(.pm-btn,.pm-sm.is-cta,.pm-trow-try,.pm-gd-tile-try),body :where(.pm-wide) .pm-rv-plan.is-feat a.pm-rv-plan-bt[rel~="nofollow"],body:has(.pm-wide) .pm-drawer a.pm-btn-g[rel~="nofollow"]{background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(255,255,255,0) 52%),linear-gradient(135deg,#2563EB 0%,#4F46E5 55%,#7C3AED 100%)!important;
 color:#FFFFFF!important;-webkit-text-fill-color:#FFFFFF!important;border:0!important;font-weight:700!important;letter-spacing:0!important;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.38),inset 0 -2px 0 rgba(30,16,110,.38),0 1px 2px rgba(10,15,50,.35),0 10px 22px -8px rgba(79,70,229,.8)!important;
 transition:transform .16s ease,box-shadow .16s ease,filter .16s ease!important}
body :where(.pm-wide) a.pm-btn:not([rel]):hover,body :where(.pm-wide) a[rel~="nofollow"]:is(.pm-btn,.pm-sm.is-cta,.pm-trow-try,.pm-gd-tile-try):hover,body :where(.pm-wide) .pm-rv-plan.is-feat a.pm-rv-plan-bt[rel~="nofollow"]:hover,body:has(.pm-wide) .pm-drawer a.pm-btn-g[rel~="nofollow"]:hover{transform:translateY(-2px);filter:brightness(1.07) saturate(1.06);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.42),inset 0 -2px 0 rgba(30,16,110,.38),0 2px 4px rgba(10,15,50,.3),0 16px 30px -10px rgba(79,70,229,.9)!important}
body :where(.pm-wide) a.pm-btn:not([rel]):active,body :where(.pm-wide) a[rel~="nofollow"]:is(.pm-btn,.pm-sm.is-cta,.pm-trow-try,.pm-gd-tile-try):active,body :where(.pm-wide) .pm-rv-plan.is-feat a.pm-rv-plan-bt[rel~="nofollow"]:active,body:has(.pm-wide) .pm-drawer a.pm-btn-g[rel~="nofollow"]:active{transform:translateY(0);box-shadow:inset 0 2px 6px rgba(20,10,80,.45),0 1px 2px rgba(10,15,50,.3)!important}
body :where(.pm-wide) a[rel~="nofollow"]:is(.pm-btn,.pm-sm.is-cta,.pm-trow-try,.pm-gd-tile-try):not(:has(.ic))::after,body :where(.pm-wide) .pm-rv-plan.is-feat a.pm-rv-plan-bt[rel~="nofollow"]:not(:has(.ic))::after,body:has(.pm-wide) .pm-drawer a.pm-btn-g[rel~="nofollow"]:not(:has(.ic))::after{content:'→'!important;content:'→'/''!important;position:static!important;inset:auto!important;display:inline-block;background:none!important;
 margin-left:7px;font-weight:700;transition:transform .18s ease}
body :where(.pm-wide) a[rel~="nofollow"]:is(.pm-btn,.pm-sm.is-cta,.pm-trow-try,.pm-gd-tile-try):hover::after,body :where(.pm-wide) .pm-rv-plan.is-feat a.pm-rv-plan-bt[rel~="nofollow"]:hover::after,body:has(.pm-wide) .pm-drawer a.pm-btn-g[rel~="nofollow"]:hover::after{transform:translateX(3px)}
body :where(.pm-wide) .pm-card-hi .pm-btns>a.pm-btn{padding:14px 26px;font-size:var(--pm-fs-sm)}
/* Secondaire : une surface, un filet, du relief léger ; il ne concurrence jamais le primaire */
body .pm-wide .pm-card:not(.pm-card-l) :is(.pm-btn-sm:not(.pm-btn-g),.pm-sm:not(.is-cta),.pm-alt-sel:not([aria-pressed="true"]),.pm-rv-plan-bt),body:has(.pm-wide) .pm-stick .pm-btn-sm{background:linear-gradient(180deg,#1E2D55,#17244A)!important;border:1px solid rgba(148,168,255,.32)!important;
 color:#EEF2FB!important;-webkit-text-fill-color:#EEF2FB!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 1px 2px rgba(2,6,23,.4)!important}
body .pm-wide .pm-card-l :is(.pm-btn-sm:not(.pm-btn-g),.pm-sm:not(.is-cta),.pm-alt-sel:not([aria-pressed="true"]),.pm-rv-plan-bt){background:#FFFFFF!important;border:1px solid #C3CEE6!important;color:#14223F!important;
 -webkit-text-fill-color:#14223F!important;box-shadow:inset 0 -1px 0 rgba(15,23,60,.05),0 1px 2px rgba(15,23,60,.08)!important}
body .pm-wide :is(.pm-btn-sm:not(.pm-btn-g),.pm-sm:not(.is-cta),.pm-alt-sel:not([aria-pressed="true"]),.pm-rv-plan-bt){transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
body .pm-wide .pm-card:not(.pm-card-l) :is(.pm-btn-sm:not(.pm-btn-g),.pm-sm:not(.is-cta),.pm-alt-sel:not([aria-pressed="true"]),.pm-rv-plan-bt):hover{border-color:rgba(165,180,252,.7)!important;transform:translateY(-1px)}
body .pm-wide .pm-card-l :is(.pm-btn-sm:not(.pm-btn-g),.pm-sm:not(.is-cta),.pm-alt-sel:not([aria-pressed="true"]),.pm-rv-plan-bt):hover{border-color:#8B9DD3!important;transform:translateY(-1px);box-shadow:var(--pm-el1)!important}
/* Sélectionné (onglets, comparer avec) : l'indigo plein */
body .pm-wide .pm-alt.is-on .pm-alt-sel::before{margin-right:4px}
body .pm-wide :is(.pm-alt-sel,.pm-tab,.pm-rv-opt,.pm-rk-o,.pm-di-so,.pm-sm:not(.is-cta),.pm-btn-sm)[aria-pressed="true"],body .pm-wide .pm-tab[aria-selected="true"]{background:#4338CA!important;color:#fff!important;
 -webkit-text-fill-color:#fff!important;border-color:#4338CA!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 4px 12px -4px rgba(67,56,202,.7)!important}
body .pm-wide :is(a,button,summary,input,select):focus-visible{outline:2px solid #A5B4FC;outline-offset:3px}
body .pm-wide .pm-card-l :is(a,button,summary,input,select):focus-visible{outline-color:#4338CA}
/* Primaire compact dans les listes et les tuiles : même dégradé (décision 65), sans halo ni flèche ; un seul primaire lumineux par zone */
body .pm-wide table a.pm-sm.is-cta,body .pm-wide a.pm-trow-try,body .pm-wide a.pm-gd-tile-try{box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 1px 2px rgba(10,15,50,.3)!important;text-transform:none;animation:none}
body .pm-wide table a.pm-sm.is-cta::after,body .pm-wide a.pm-trow-try::after,body .pm-wide a.pm-gd-tile-try::after{display:none!important}
/* Le Try toujours en premier dans sa rangée de boutons ; les cartes d'alternatives alignées par le bas */
body .pm-wide :is(.pm-btns,.pm-alt-acts,.pm-en-cta)>a[rel~="nofollow"]{order:-1}
body .pm-wide .pm-alt{display:flex;flex-direction:column}
body .pm-wide .pm-alt-acts{margin-top:auto}
/* Petits textes encore sous AA */
body .pm-wide .pm-di-price em{color:#166534}
/* Les logos sombres sur les lignes sombres */
body .pm-wide .pm-card:not(.pm-card-l) :is(td,th) img{background:#FFFFFF}
/* La carte de score : un seul très grand nombre, la note */
body .pm-wide .pm-vc-price b{font-size:var(--pm-fs-3xl)}

/* Tableaux comparatifs : libellés d'encre forte (indigo), nombres alignés, survol de ligne, logos de 32 px */
body .pm-wide .pm-ct tbody tr:not(.is-sec)>th{color:#A5B4FC;font-weight:600}
body .pm-wide .pm-card-l .pm-ct tbody tr:not(.is-sec)>th{color:#312E81;font-weight:600}
body .pm-wide .pm-ct td{font-weight:500}
body .pm-wide .pm-ct tbody tr:not(.is-sec):hover>*{background:rgba(99,102,241,.06)}
body .pm-wide .pm-ct thead th img{width:32px;height:32px;border-radius:8px;vertical-align:-10px}
body .pm-wide .pm-mb span{background:linear-gradient(90deg,#6366F1,#8B5CF6)}

/* La barre fixe : plus large sur ordinateur, ses petits textes compacts, le bouton jamais coupé */
body:has(.pm-wide) .pm-stick .pm-stick-in{max-width:1100px}
body:has(.pm-wide) .pm-stick .pm-pill i{font-size:var(--pm-fs-xs)}
@media (min-width:769px){body:has(.pm-wide) .pm-stick a.pm-btn{white-space:nowrap;max-width:none;font-size:var(--pm-fs-meta);padding:9px 16px}}

/* Le prix de la carte de score : le montant, puis sa période sur sa ligne */
body .pm-wide .pm-vc-price b small{display:block;margin:6px 0 0;line-height:1.35}
/* Les paliers de prix : la valeur ne passe plus sous son libellé */
body .pm-wide .pm-rv-plan dl div{align-items:baseline}
/* L'en-tête d'un bloc : la précision de droite devient un encadré lisible */
body .pm-wide .pm-bh-side{text-align:left;max-width:340px;padding:10px 0 10px 14px;border-left:2px solid rgba(129,140,248,.55);font-size:var(--pm-fs-meta);line-height:1.55}

@media (min-width:769px) and (max-width:1024px){body .pm-wide .pm-h1:not(.pm-hp-h1){font-size:var(--pm-fs-3xl)}}
@media (pointer:coarse){body .pm-wide :is(.pm-sm,.pm-btn-sm,.pm-tab,.pm-alt-sel,.pm-rk-o,.pm-di-so,.pm-di-chip,.pm-glance-chip,.pm-trow-try,.pm-gd-tile-try){min-height:44px}body:has(.pm-wide) .pm-how::before{content:'';position:absolute;inset:-14px}}
@media (max-width:768px){
 body .pm-wide .pm-h1:not(.pm-hp-h1){font-size:var(--pm-fs-h1m)}
 body .pm-wide h2{font-size:var(--pm-fs-xl)}
 body .pm-wide .pm-hp-stat b{font-size:var(--pm-fs-xl)}
 body .pm-wide :is(.pm-btns,.pm-alt-acts)>a[rel~="nofollow"]{flex-basis:100%}
 body:has(.pm-wide) .pm-stick a.pm-btn{white-space:nowrap;padding:10px 16px;font-size:var(--pm-fs-ui);max-width:62vw;overflow:hidden;text-overflow:ellipsis}
 body:has(.pm-wide) .pm-stick a.pm-btn::after{display:none!important}
 body .pm-wide .pm-card .pm-tw :is(th,td):first-child{position:sticky;left:0;z-index:1;background:var(--pm-sticky-bg,#111C38);box-shadow:6px 0 8px -6px rgba(2,6,23,.45)}
 body .pm-wide .pm-card-l .pm-tw :is(th,td):first-child{--pm-sticky-bg:#F3F6FD;box-shadow:6px 0 8px -6px rgba(15,23,60,.18)}
 body .pm-wide .pm-vd{font-size:var(--pm-fs-body)}
 body .pm-wide .pm-vd b{font-size:var(--pm-fs-h3)}
 body .pm-wide .pm-bh-side{max-width:none}
}
@media (max-width:480px){body:has(.pm-wide) .pm-slist{flex-wrap:wrap}body:has(.pm-wide) .pm-slist-items{order:3;flex-basis:100%}body:has(.pm-wide) .pm-slist-l{font-family:var(--pm-fb)}}
@media (prefers-reduced-motion:reduce){
 body :where(.pm-wide) a.pm-btn:not([rel]):hover,body :where(.pm-wide) a[rel~="nofollow"]:is(.pm-btn,.pm-sm.is-cta,.pm-trow-try,.pm-gd-tile-try):hover,body :where(.pm-wide) .pm-rv-plan.is-feat a.pm-rv-plan-bt[rel~="nofollow"]:hover,body:has(.pm-wide) .pm-drawer a.pm-btn-g[rel~="nofollow"]:hover,body .pm-wide .pm-alt:hover,body .pm-wide .pm-nl:hover,body .pm-wide .pm-gd-tile:hover,body .pm-wide .pm-hp-sit:hover,body .pm-wide .pm-sp-ans:hover,body .pm-wide :is(.pm-btn-sm:not(.pm-btn-g),.pm-sm:not(.is-cta),.pm-alt-sel:not([aria-pressed="true"]),.pm-rv-plan-bt):hover{transform:none}
}

/* ── Alignements nets (retours du propriétaire, 21 octobre 2026) : jamais de texte aligné à droite qui passe à la ligne, jamais
   deux colonnes étroites qui se coupent ensemble ── */
/* Ce que l'outil fait : le nom et sa valeur sur une ligne, la précision dessous, à gauche */
body .pm-wide .pm-rv-cap{grid-template-columns:minmax(min-content,1fr) minmax(0,auto);column-gap:14px;row-gap:3px;align-items:baseline;padding:12px 0 12px 28px}
body .pm-wide .pm-rv-cap-n{grid-column:1;grid-row:1;font-size:var(--pm-fs-sm);font-weight:600}
body .pm-wide .pm-rv-cap-v{grid-column:2;grid-row:1;text-align:right;font-size:var(--pm-fs-ui)}
@media (min-width:1025px){body .pm-wide .pm-rv-cap-v{white-space:nowrap}}
body .pm-wide .pm-rv-cap-s{grid-column:1/-1;grid-row:2;text-align:left;font-size:var(--pm-fs-meta);line-height:1.5}
body .pm-wide .pm-rv-cap::before{top:15px}
/* Les fiches (intégrations, sécurité, support) et les paliers : la valeur garde sa ligne, le libellé passe à la ligne */
body .pm-wide .pm-rv-fact li{align-items:baseline;flex-wrap:wrap;row-gap:2px}
body .pm-wide .pm-rv-fact li b{flex:0 1 auto;max-width:100%;margin-left:auto}
body .pm-wide .pm-rv-plan dl div{align-items:baseline;flex-wrap:wrap;row-gap:2px}
body .pm-wide .pm-rv-plan dt{flex:1 1 auto}
body .pm-wide .pm-rv-plan dd{flex:0 1 auto;max-width:100%;margin-left:auto;text-align:right}
/* Le prix d'un palier : le montant, puis sa période sur sa ligne, au même bord gauche */
body .pm-wide .pm-rv-plan-p small{display:block;margin:6px 0 0;line-height:1.35}
body .pm-wide .pm-rv-plan-p small{font-weight:400;font-size:var(--pm-fs-meta)}
body .pm-wide .pm-alt-acts>:not([rel~="nofollow"]){font-size:var(--pm-fs-meta);padding:10px 8px;line-height:1.25}
/* Les cartes d'alternatives : la phrase « If… » sur toute la largeur, le Try sur toute la largeur, les deux autres côte à côte */
body .pm-wide .pm-alt-top{display:grid;grid-template-columns:42px minmax(0,1fr) auto;column-gap:12px;row-gap:8px;align-items:center}
body .pm-wide .pm-alt-top>div:not(.pm-alt-sc){display:contents}
body .pm-wide .pm-alt-top>img{grid-column:1;grid-row:1}
body .pm-wide .pm-alt-nm{grid-column:2;grid-row:1}
body .pm-wide .pm-alt-sc{grid-column:3;grid-row:1;max-width:120px;align-self:start}
body .pm-wide .pm-alt-why{grid-column:1/-1;grid-row:2}
/* Carte étroite (trois cartes sur une ligne de tablette) : la note passe sous le nom, jamais par-dessus */
body .pm-wide .pm-alt{container-type:inline-size}
@container (max-width:290px){
 body .pm-wide .pm-alt-top{grid-template-columns:42px minmax(0,1fr)}
 body .pm-wide .pm-alt-sc{grid-column:2;grid-row:2;text-align:left;max-width:none;display:flex;align-items:baseline;gap:8px}
 body .pm-wide .pm-alt-sc span{margin-top:0}
 body .pm-wide .pm-alt-sc{flex-wrap:wrap;column-gap:8px;row-gap:2px}
 body .pm-wide .pm-alt-acts{grid-template-columns:1fr}
 body .pm-wide .pm-alt-acts>*{grid-column:1/-1}
 body .pm-wide .pm-alt-why{grid-row:3}
 body .pm-wide .pm-alt-nm{font-size:var(--pm-fs-sm);overflow-wrap:anywhere}
}
body .pm-wide .pm-alt-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
body .pm-wide .pm-alt-acts>*{width:100%;justify-content:center;text-align:center;margin:0}
body .pm-wide .pm-alt-acts>a[rel~="nofollow"]{grid-column:1/-1}
body .pm-wide .pm-alt-acts>:only-child,body .pm-wide .pm-alt-acts>:last-child:nth-child(even){grid-column:1/-1}
body .pm-wide .pm-alt-acts>a[rel~="nofollow"]:last-child:nth-child(even){grid-column:1/-1}
/* Les surtitres de rangée alignés au centre de leurs pastilles */
/* Les lignes de dimension (fiches des classements, pages de prix) : le libellé et la note sur une ligne, la barre dessous sur toute
   la largeur — toutes les barres d'une liste ont la même longueur, au même endroit */
body .pm-wide .pm-sc-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"lab v" "trk trk";column-gap:12px;row-gap:6px;align-items:baseline;padding:7px 0;min-height:0}
body .pm-wide .pm-sc-lab{grid-area:lab;min-width:0;line-height:1.35}
body .pm-wide .pm-sc-lab i{display:inline;margin:0 0 0 6px;font-family:var(--pm-fb);font-size:var(--pm-fs-xs);letter-spacing:.06em}
body .pm-wide .pm-sc-v{grid-area:v;min-width:0;text-align:right;font-variant-numeric:tabular-nums}
body .pm-wide .pm-sc-trk{grid-area:trk;width:100%}
body .pm-wide .pm-al-named-i{display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:10px;row-gap:2px;align-items:center}
body .pm-wide .pm-al-named-i img{grid-row:1/3}
body .pm-wide .pm-al-named-i span{grid-column:2;white-space:normal;overflow:visible}
body .pm-wide .pm-al-named-i b{grid-column:2;font-size:var(--pm-fs-meta)}
body .pm-wide .pm-rv-opts{align-items:center}
body .pm-wide .pm-rv-opts-l{line-height:1}

/* ── De la couleur où elle porte un sens ── */
/* Le bloc prix : le nom du palier en indigo, le prix au dégradé du site, une tête de carte teintée, des « Choose » en contour indigo */
body .pm-wide .pm-card-l .pm-rv-plan:not(.is-feat){background:linear-gradient(180deg,#EEF0FF 0,#FFFFFF 104px);border-color:rgba(99,102,241,.3)}
body .pm-wide .pm-card-l .pm-rv-plan-n{color:#4338CA}
body .pm-wide .pm-card:not(.pm-card-l) .pm-rv-plan-n{color:#A5B4FC}
body .pm-wide .pm-card-l .pm-rv-plan:not(.is-feat) .pm-rv-plan-p{background:linear-gradient(100deg,#1E3A8A 0%,#4338CA 50%,#7C3AED 100%);
 -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#3730A3}
body .pm-wide .pm-card:not(.pm-card-l) .pm-rv-plan:not(.is-feat) .pm-rv-plan-p{background:linear-gradient(100deg,#BFDBFE 0%,#C7D2FE 50%,#E9D5FF 100%);
 -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#C7D2FE}
body .pm-wide .pm-card-l .pm-rv-plan-p small{-webkit-text-fill-color:#3A5488;color:#3A5488}
body .pm-wide .pm-card:not(.pm-card-l) .pm-rv-plan-p small{-webkit-text-fill-color:#BAC6DC;color:#BAC6DC}
body .pm-wide .pm-card-l .pm-rv-plan dd{color:#0A1428}
body .pm-wide .pm-card-l .pm-rv-plan-per{color:#3A5488}
/* Les boutons secondaires sur carte claire : le contour et l'encre indigo (le primaire reste seul plein) */
body .pm-wide .pm-card-l :is(.pm-btn-sm:not(.pm-btn-g),.pm-sm:not(.is-cta),.pm-alt-sel:not([aria-pressed="true"]),.pm-rv-plan-bt){border-color:rgba(99,102,241,.5)!important;
 color:#3730A3!important;-webkit-text-fill-color:#3730A3!important}
body .pm-wide .pm-card-l :is(.pm-btn-sm:not(.pm-btn-g),.pm-sm:not(.is-cta),.pm-alt-sel:not([aria-pressed="true"]),.pm-rv-plan-bt):hover{background:#EEF0FF!important;border-color:#6366F1!important}
/* Ce que le prix ne dit pas : l'ambre de l'attention */
body .pm-wide .pm-rv-drv{border-left-color:#F59E0B}
body .pm-wide .pm-card-l .pm-rv-drv{border-left-color:#D97706;background:linear-gradient(90deg,#FFF8EB 0,#FFFFFF 64px)}
/* L'encadré d'information d'un bloc : bleu pâle, filet indigo */
body .pm-wide .pm-bh-side{background:rgba(99,102,241,.1);border-left:3px solid #6366F1;border-radius:0 10px 10px 0;padding:10px 14px}
body .pm-wide .pm-card-l .pm-bh-side{background:#EEF0FF}
/* Le verdict à choisir : « Buy it if » en vert, « Skip it if » en corail */
body .pm-wide .pm-rv-res p b:first-of-type{color:#86EFAC}
body .pm-wide .pm-rv-res p b:nth-of-type(2){color:#FDA4AF}
body .pm-wide .pm-card-l .pm-rv-res p b:first-of-type{color:#15803D}
body .pm-wide .pm-card-l .pm-rv-res p b:nth-of-type(2){color:#BE123C}
/* Le tableau des notes : l'en-tête et les lignes sur les mêmes colonnes, assez larges pour leurs titres ; titres alignés par le bas */
body .pm-wide :is(.pm-rv-bhead,.pm-rv-brow){grid-template-columns:minmax(0,1fr) 56px 96px 112px;column-gap:12px}
body .pm-wide .pm-rv-bhead{align-items:end;padding:0 15px 8px;letter-spacing:.08em}
body .pm-wide .pm-rv-bhead span{line-height:1.3;text-wrap:balance}
body .pm-wide .pm-rv-bhead .pm-how{vertical-align:1px}
@media (max-width:1100px){body .pm-wide :is(.pm-rv-bhead,.pm-rv-brow){grid-template-columns:minmax(0,1fr) 64px 116px 156px}}
@media (max-width:768px){body .pm-wide :is(.pm-rv-bhead,.pm-rv-brow){grid-template-columns:minmax(0,1fr) 50px 84px 104px;column-gap:8px}}
@media (max-width:480px){body .pm-wide :is(.pm-rv-bhead,.pm-rv-brow){grid-template-columns:minmax(0,1fr) 44px 64px;column-gap:6px}body .pm-wide .pm-rv-bhead{padding:0 11px 8px}}
/* Les cartes de prix : les cartes d'une rangée partagent leurs lignes (sous-grille) : nom, prix, ligne annuelle, liste, bouton à la
   même hauteur partout ; dans la liste, le libellé au-dessus de sa valeur, partout pareil */
body .pm-wide .pm-rv-plan{display:grid;grid-template-rows:subgrid;grid-row:span 5;row-gap:0;align-content:start}
body .pm-wide .pm-rv-plan-per{align-self:stretch}
body .pm-wide .pm-rv-plan dl{margin:0 0 18px}
body .pm-wide .pm-rv-plan dl div{display:grid;grid-template-columns:minmax(0,1fr);row-gap:1px;padding:6px 0}
body .pm-wide .pm-rv-plan dt{font-size:var(--pm-fs-meta)}
body .pm-wide .pm-rv-plan dd{margin:0;text-align:left;max-width:none;font-size:var(--pm-fs-sm)}
body .pm-wide .pm-rv-plan-bt{align-self:end}
@media print{body .pm-wide .pm-rv-plan-p{-webkit-text-fill-color:currentColor!important;background:none!important}}


/* ═══════════════════════════════════════════════════════════════════════════
   192. LE TÉLÉPHONE — toute la largeur, les tableaux en cartes (séance 246, demande du propriétaire du 26 octobre 2026)

   À 480 px et moins (tout téléphone tenu droit), la page prend toute la largeur de l'écran : plus de marge
   de page ; les cartes vont d'un bord à l'autre (sans rayon ni bordure de
   côté, 12 px entre deux cartes) et leur contenu garde 16 px de chaque côté ;
   le fil d'Ariane et le bas de page gardent les mêmes 16 px. Colonne de texte :
   343 px sur un écran de 375 (263 avant). Les titres équilibrent leurs lignes.
   Sur un écran tactile, les lignes d'index, les interrupteurs et les volets
   prennent 44 px de haut, comme les boutons (section 191).
   Le tableau en cartes : quand le classement (`.pm-rk`) ou un annuaire
   (`.pm-di-tbl`) ne tient plus dans sa boîte (requête de conteneur sur
   `.pm-tw`, 879 px : la largeur minimale du classement, la plus grande des
   deux) — téléphone, téléphone couché, tablette —, chaque ligne devient une
   carte au lieu de défiler ; l'en-tête du tableau reste dans le DOM, masqué à
   l'écran (le JS, section 19, pose les rôles de tableau que Safari retire) ;
   la colonne figée de la section 191 n'a plus d'objet ; les trois boutons se
   partagent la largeur. Le placement des cellules et leurs libellés sont dans
   l'additif de chaque template (sections 145 et 150). Révise, pour ces deux
   tableaux, la « première colonne fixe sur mobile » de la séance 237.
   Aussi, repris pendant la séance (mesure de `verifier_mobile.py`, audit Fable
   5.1) : la barre fixe (bouton coupé proprement) et son logo sur fond blanc, le tiroir de
   comparaison lisible (défaut d'avant), la liste flottante et la bulle « ? »
   à la taille du design system, les rangées d'actions, les lignes d'outil des
   guides, le bas de page ; Safari ne grossit plus le texte en paysage
   (`text-size-adjust`, que portait la feuille d'Astra).
   ═══════════════════════════════════════════════════════════════════════════ */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* le logo de la barre fixe sur fond blanc, comme ceux des lignes sombres (section 191) : un logo sombre y disparaissait */
body:has(.pm-wide) .pm-stick .pm-stick-logo{background:#FFFFFF}
/* Le tiroir de comparaison (défaut d'avant la séance, vu à l'audit, à toutes les largeurs) : hors de la page, il héritait de l'encre
   sombre du thème (titre et note invisibles sur son fond sombre) ; ses lignes restaient peintes en bleu pâle par la règle de la
   v6.2 en !important (section 20) sous des libellés devenus blancs (section 57) : neutralisée ici, dans le tiroir seulement, comme
   la section 57 le fait déjà pour la première colonne ; quand le tableau défile (trois ou quatre outils sur un téléphone), la
   colonne des libellés reste figée ; le bouton de l'éditeur tient sur une ligne. */
body:has(.pm-wide) .pm-drawer-in{color:var(--pm-ink-d1)}
body:has(.pm-wide) .pm-drawer .pm-drawer-h :is(b,h3){color:var(--pm-ink-d1)}
body:has(.pm-wide) .pm-drawer .pm-fn{color:var(--pm-ink-d2)}
.pm-drawer .pm-tbl tbody tr{background:transparent!important}
.pm-drawer .pm-tbl tbody tr:nth-child(n) td{background:transparent!important;color:var(--pm-ink-d1)!important}
.pm-drawer .pm-tw .pm-tbl :is(th,td):first-child{position:sticky;left:0;z-index:1;background:#0D1B31!important}
body:has(.pm-wide) .pm-drawer a.pm-btn-g{white-space:nowrap}
.pm-drawer .pm-tbl tbody th{min-width:118px}
/* la bulle d'un « ? » : son signe à 12 px, le plancher du design system v9 (il était à 10 px) */
body .pm-wide .pm-how{width:18px;height:18px;font-size:var(--pm-fs-xs)}
@media (max-width:480px){
 body .pm-page-wrap.pm-wide{padding-left:0;padding-right:0}
 body .pm-page-wrap.pm-wide>:is(.pm-bc,.pm-tail){padding-left:16px;padding-right:16px}
 body .pm-wide .pm-card{border-radius:0;border-left-width:0;border-right-width:0;margin-bottom:12px}
 body .pm-wide .pm-card-b{padding:26px 16px}
 body .pm-wide :is(h1,h2){text-wrap:balance}
 /* une rangée d'actions (podium, cartes de situation, duel, profils de prix) : le bouton de l'éditeur d'abord, sur toute la
    largeur, puis les autres côte à côte (il restait seul sur sa ligne, à gauche) */
 body .pm-wide .pm-acts>.pm-sm.is-cta{order:-1;flex:1 1 100%;justify-content:center;text-align:center}
 body .pm-wide .pm-acts>.pm-sm:not(.is-cta){flex:1 1 0;justify-content:center;text-align:center}
 /* la barre fixe : la note entière ; le prix prend la place qui reste, son montant entier, sa période à la ligne quand elle est
    longue (jamais coupée : c'est une valeur bornée, mesurer_bornes.py) ; le bouton de l'éditeur au plus 40 % de l'écran, coupé
    proprement (« Try Anymail… » ; il était tronqué au milieu) ; les deux pastilles restent (séance 134) */
 body:has(.pm-wide) .pm-stick .pm-stick-in{padding-left:12px;padding-right:12px;gap:8px}
 body:has(.pm-wide) .pm-stick .pm-pill{flex-shrink:0}
 body:has(.pm-wide) .pm-stick .pm-pill+.pm-pill{flex:1 1 auto;min-width:0;flex-wrap:wrap;border-radius:12px}
 body:has(.pm-wide) .pm-stick .pm-pill+.pm-pill b{flex-shrink:0}
 body:has(.pm-wide) .pm-stick .pm-pill+.pm-pill i{min-width:0;line-height:1.3}
 body:has(.pm-wide) .pm-stick a.pm-btn{display:block;flex:0 0 auto;max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
 /* le bouton « Try » d'une ligne d'outil de guide occupe la largeur du texte (il restait seul, à gauche) ; les actions d'une
    carte d'alternative de même hauteur (« Compare with … » passe sur deux lignes à côté de « Our review ») */
 body .pm-wide .pm-trow-try{justify-self:stretch;text-align:center}
 body .pm-wide .pm-alt-acts{align-items:stretch}
 /* le tiroir qui défile : sa colonne de droite s'efface vers le bord, signe qu'il reste à voir */
 body:has(.pm-wide) .pm-drawer .pm-tw{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
 /* le bas de page : 24 px avant le pied (118 px de bande sombre) ; la place de la liste flottante quand elle est ouverte */
 body .pm-page-wrap.pm-wide>.pm-tail{height:24px}
 body:has(.pm-slist.is-on) .pm-page-wrap.pm-wide>.pm-tail{height:110px}
}
/* une liste de catégories à deux colonnes (`.pm-cat.is-two`) gardait ses deux colonnes sous 768 px : sa règle bat celle d'une
   colonne (section 134), et ses liens sortaient de la carte sur un téléphone */
@media (max-width:768px){
 body .pm-wide .pm-cat.is-two{grid-template-columns:minmax(0,1fr)}
 /* le tiroir de comparaison : sa hauteur suit l'écran visible (la barre d'adresse d'un téléphone coupait le bas en `vh`) */
 body:has(.pm-wide) .pm-drawer-in{max-height:88dvh}
}
@media (pointer:coarse){
 body .pm-wide :is(.pm-ix-row,.pm-tog,.pm-hp-more>summary,.pm-short>summary,.pm-toc a,.pm-dr-more-i,.pm-tick-q,.pm-rv-opt,.pm-pb-route-a,.pm-gd-lim-q,.pm-cat-l a,.pm-pr-tog button){min-height:44px}
 body .pm-wide :is(.pm-share,.pm-ix-search,.pm-di-search) input{min-height:44px}
 body .pm-wide .pm-tog{display:inline-flex;align-items:center}
 /* les liens de texte seuls sur leur ligne (nom d'outil d'une ligne de guide, fil d'Ariane, liens du bas de l'accueil, précision
    d'un en-tête de bloc) : la zone à toucher s'agrandit, la mise en page ne bouge pas */
 body .pm-wide :is(.pm-trow-n,.pm-bc a,.pm-hp-sys a,.pm-gd-ch-go,.pm-pr-peer-n){padding-top:12px;padding-bottom:12px;margin-top:-12px;margin-bottom:-12px}
 body .pm-wide .pm-bh-side a{display:inline-block;padding-top:14px;padding-bottom:14px;margin-top:-14px;margin-bottom:-14px}
 /* la liste flottante, sœur de la page : ses boutons à 44 px, la croix d'un outil touchable sur 48 px */
 body:has(.pm-wide) .pm-slist :is(.pm-sm,.pm-btn,.pm-btn-sm){min-height:44px}
 /* le tiroir : sa croix et le bouton de l'éditeur à 44 px */
 body:has(.pm-wide) .pm-drawer .pm-drawer-x{width:44px;height:44px}
 body:has(.pm-wide) .pm-drawer a.pm-btn-sm{min-height:44px}
 body:has(.pm-wide) .pm-slist .pm-chip{min-height:36px}
 body:has(.pm-wide) .pm-slist .pm-chip [data-pm-rm]{position:relative;min-width:28px;min-height:28px}
 body:has(.pm-wide) .pm-slist .pm-chip [data-pm-rm]::before{content:'';position:absolute;inset:-10px}
}
.pm-tw{container-type:inline-size}
@container (max-width:879px){
 body .pm-wide :is(.pm-rk,.pm-di-tbl){display:block;min-width:0}
 body .pm-wide :is(.pm-rk,.pm-di-tbl) thead{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 body .pm-wide :is(.pm-rk,.pm-di-tbl) tbody{display:block}
 body .pm-wide :is(.pm-rk,.pm-di-tbl) tbody tr td{display:block;padding:0;border:none;background:none}
 body .pm-wide .pm-card .pm-tw :is(.pm-rk,.pm-di-tbl) :is(th,td):first-child{position:static;background:none;box-shadow:none}
 body .pm-wide :is(.pm-rk-act,.pm-di-act){justify-content:stretch;gap:8px}
 body .pm-wide :is(.pm-rk-act,.pm-di-act) .pm-sm{flex:1 1 0;justify-content:center;text-align:center;padding-left:8px;padding-right:8px}
 body .pm-wide :is(.pm-rk-tool,.pm-di-tool) b{overflow-wrap:anywhere}
}

/* ═══════════════════════════════════════════════════════════════════════════
   184. L'ENCRE DE BASE DES PARAGRAPHES — la règle de la v6.2, sans !important, en dernier

   La v6.2 forçait tout paragraphe du conteneur de page en texte clair et à
   un interligne de 1,8, en !important : chaque composant devait la rattraper
   par une garde. Depuis le 22 septembre 2026 (étape 3.8, chantier B, décision
   129), la même encre est posée ici, en dernier du fichier, à une classe et un
   élément : elle gagne sur toute règle du socle à une seule classe ou à une
   classe et un élément écrite plus haut, et perd devant deux classes — les
   listes blanches des sections 79 et 108 et les gardes des additifs gagnent
   donc sans !important. L'aspect validé des quatorze templates ne change pas
   (contrôle de parité de rendu, relever_rendu.py). Un composant neuf qui veut
   une autre encre ou un autre interligne sur un paragraphe l'écrit avec deux
   classes (celle de la carte, la sienne).
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-wide p{color:var(--pm-ink-d1);line-height:1.65}
