/*
 * Plan Locatif : design system
 * Toutes les classes sont préfixées « pl- » et les styles de base sont scopés sous .pl-site
 * pour pouvoir injecter les blocs dans un thème WordPress existant sans collision.
 * Rayons : contrôles 10px, panneaux 18px, pastilles 999px (règle unique, appliquée partout).
 * Échelle z-index : nav 40, menu mobile 45, toast 60.
 */

:root {
  --pl-bg: #f3f4f6;
  --pl-surface: #fbfbfc;
  --pl-surface-2: #eceef2;
  --pl-ink: #12151c;
  --pl-ink-2: #434a57;
  --pl-ink-3: #596070;
  --pl-line: #dbdfe6;
  --pl-line-strong: #c4cad4;
  --pl-accent: #2347cf;
  --pl-accent-hover: #1b3aae;
  --pl-accent-soft: #e6ebfb;
  --pl-accent-ink: #1a359a;
  --pl-on-accent: #ffffff;
  --pl-pos: #0d7250;
  --pl-neg: #b0261f;
  --pl-warn: #8f5500;
  --pl-pos-soft: #e3f3ec;
  --pl-neg-soft: #f8e7e5;
  --pl-shadow: 0 1px 2px rgb(18 21 28 / .05), 0 18px 40px -18px rgb(35 71 207 / .22);
  --pl-shadow-sm: 0 1px 2px rgb(18 21 28 / .06), 0 6px 16px -10px rgb(18 21 28 / .18);
  --pl-r-ctl: 10px;
  --pl-r-panel: 18px;
  --pl-r-pill: 999px;
  --pl-font: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --pl-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --pl-max: 1240px;
  --pl-gutter: clamp(16px, 4vw, 40px);
  --pl-ease: cubic-bezier(.16, 1, .3, 1);
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --pl-bg: #0d0f14;
    --pl-surface: #151821;
    --pl-surface-2: #1b1f2a;
    --pl-ink: #eceef3;
    --pl-ink-2: #b4bac6;
    --pl-ink-3: #9aa1af;
    --pl-line: #262b37;
    --pl-line-strong: #353b49;
    --pl-accent: #4766f0;
    --pl-accent-hover: #5a78ff;
    --pl-accent-soft: #1b2445;
    --pl-accent-ink: #b5c4ff;
    --pl-on-accent: #ffffff;
    --pl-pos: #4fc79a;
    --pl-neg: #ff8a80;
    --pl-warn: #f2b45c;
    --pl-pos-soft: #12291f;
    --pl-neg-soft: #2c1615;
    --pl-shadow: 0 1px 2px rgb(0 0 0 / .4), 0 18px 40px -18px rgb(0 0 0 / .6);
    --pl-shadow-sm: 0 1px 2px rgb(0 0 0 / .4), 0 6px 16px -10px rgb(0 0 0 / .5);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --pl-bg: #0d0f14;
  --pl-surface: #151821;
  --pl-surface-2: #1b1f2a;
  --pl-ink: #eceef3;
  --pl-ink-2: #b4bac6;
  --pl-ink-3: #9aa1af;
  --pl-line: #262b37;
  --pl-line-strong: #353b49;
  --pl-accent: #4766f0;
  --pl-accent-hover: #5a78ff;
  --pl-accent-soft: #1b2445;
  --pl-accent-ink: #b5c4ff;
  --pl-on-accent: #ffffff;
  --pl-pos: #4fc79a;
  --pl-neg: #ff8a80;
  --pl-warn: #f2b45c;
  --pl-pos-soft: #12291f;
  --pl-neg-soft: #2c1615;
  --pl-shadow: 0 1px 2px rgb(0 0 0 / .4), 0 18px 40px -18px rgb(0 0 0 / .6);
  --pl-shadow-sm: 0 1px 2px rgb(0 0 0 / .4), 0 6px 16px -10px rgb(0 0 0 / .5);
  color-scheme: dark;
}

/* ---------- Base (scopée) ---------- */
.pl-site { margin: 0; background: var(--pl-bg); color: var(--pl-ink); font-family: var(--pl-font); font-size: 17px; line-height: 1.6; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
.pl-site *, .pl-site *::before, .pl-site *::after { box-sizing: border-box; }
.pl-site img { max-width: 100%; height: auto; display: block; }
.pl-site figure { margin: 0; }
/* L'attribut hidden doit toujours masquer, même sur un composant en display: flex ou grid (messages de formulaire, champs conditionnels). */
[hidden] { display: none !important; }
:where(.pl-site) a { color: inherit; }
:where(.pl-site) :is(h1, h2, h3, h4) { margin: 0; color: var(--pl-ink); font-weight: 600; letter-spacing: -0.025em; }
:where(.pl-site) p { margin: 0; }
:where(.pl-site) :is(ul, ol) { margin: 0; padding: 0; }
.pl-site :focus-visible { outline: 2px solid var(--pl-accent); outline-offset: 3px; border-radius: 4px; }
.pl-num { font-family: var(--pl-mono); font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.pl-skip { position: absolute; left: -9999px; top: 8px; background: var(--pl-ink); color: var(--pl-bg); padding: 10px 14px; border-radius: var(--pl-r-ctl); z-index: 70; }
.pl-skip:focus { left: 8px; }
.pl-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.pl-wrap { width: 100%; max-width: var(--pl-max); margin: 0 auto; padding: 0 var(--pl-gutter); }
.pl-section { padding: clamp(64px, 9vw, 112px) 0; }
.pl-section--tight { padding: clamp(48px, 6vw, 72px) 0; }
.pl-h1 { font-size: clamp(2.2rem, 1.5rem + 2.2vw, 2.95rem); line-height: 1.05; letter-spacing: -0.04em; }
.pl-h2 { font-size: clamp(1.75rem, 1.3rem + 1.7vw, 2.65rem); line-height: 1.08; letter-spacing: -0.035em; }
.pl-h3 { font-size: 1.2rem; line-height: 1.3; letter-spacing: -0.02em; }
.pl-lead { font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); color: var(--pl-ink-2); max-width: 58ch; }
.pl-body { color: var(--pl-ink-2); max-width: 65ch; }
.pl-muted { color: var(--pl-ink-3); }
.pl-eyebrow { display: inline-block; font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--pl-accent-ink); margin-bottom: 14px; }
.pl-site .pl-stack > * + * { margin-top: 18px; }

/* ---------- Boutons ---------- */
.pl-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px; border-radius: var(--pl-r-ctl); border: 1px solid transparent; font: 600 .98rem/1 var(--pl-font); text-decoration: none; white-space: nowrap; cursor: pointer; transition: transform .25s var(--pl-ease), background-color .2s, border-color .2s, color .2s, box-shadow .25s var(--pl-ease); }
.pl-btn i { font-size: 1.1em; }
.pl-btn:active { transform: translateY(1px) scale(.985); }
.pl-btn--primary { background: var(--pl-accent); color: var(--pl-on-accent); box-shadow: 0 1px 0 rgb(255 255 255 / .18) inset, 0 8px 20px -10px var(--pl-accent); }
.pl-btn--primary:hover { background: var(--pl-accent-hover); }
.pl-btn--ghost { background: transparent; color: var(--pl-ink); border-color: var(--pl-line-strong); }
.pl-btn--ghost:hover { border-color: var(--pl-ink); }
.pl-btn--sm { min-height: 40px; padding: 0 16px; font-size: .92rem; }
.pl-btn--block { width: 100%; }
.pl-link { color: var(--pl-accent-ink); font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.pl-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.pl-actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Bandeau d'annonce ---------- */
.pl-band { background: var(--pl-accent); color: var(--pl-on-accent); font-size: .88rem; line-height: 1.4; }
.pl-band__in { position: relative; display: flex; align-items: center; justify-content: center; min-height: 40px; padding: 8px 52px; text-align: center; }
.pl-band p { margin: 0; }
.pl-band strong { font-weight: 600; }
.pl-band a { color: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; margin-left: 6px; }
.pl-band a:hover { text-decoration-thickness: 2px; }
.pl-band__close { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; display: grid; place-items: center; border: 0; border-radius: var(--pl-r-ctl); background: transparent; color: inherit; cursor: pointer; font-size: 1rem; }
.pl-band__close:hover { background: rgb(255 255 255 / .16); }
.pl-site .pl-band :focus-visible { outline-color: var(--pl-on-accent); }
.pl-band-off .pl-band { display: none; }
@media (max-width: 640px) { .pl-band__more { display: none; } .pl-band__in { justify-content: flex-start; text-align: left; padding: 8px 48px 8px var(--pl-gutter); } .pl-band a { margin-left: 0; } }

/* ---------- Navigation ---------- */
.pl-nav { position: sticky; top: 0; z-index: 40; background: color-mix(in srgb, var(--pl-bg) 86%, transparent); backdrop-filter: saturate(160%) blur(14px); -webkit-backdrop-filter: saturate(160%) blur(14px); border-bottom: 1px solid var(--pl-line); }
.pl-nav__in { display: flex; align-items: center; gap: 20px; height: 68px; }
.pl-brand { display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; text-decoration: none; font-weight: 700; letter-spacing: -0.03em; font-size: 1.08rem; color: var(--pl-ink); }
.pl-brand svg { width: 28px; height: 28px; flex: none; }
@media (max-width: 480px) { .pl-nav .pl-brand { font-size: .98rem; white-space: nowrap; gap: 8px; } }
.pl-nav__links { display: flex; gap: 2px; list-style: none; margin: 0 auto 0 4px; }
.pl-nav__links a { display: block; white-space: nowrap; padding: 8px 9px; border-radius: var(--pl-r-ctl); text-decoration: none; color: var(--pl-ink-2); font-size: .95rem; font-weight: 500; }
.pl-nav__links a:hover, .pl-nav__links a[aria-current="page"] { color: var(--pl-ink); background: var(--pl-surface-2); }
.pl-nav__right { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.pl-dd { position: relative; }
.pl-dd > button { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; padding: 8px 9px; border: 0; border-radius: var(--pl-r-ctl); background: transparent; color: var(--pl-ink-2); font: 500 .95rem var(--pl-font); cursor: pointer; }
.pl-dd > button i { font-size: .85em; transition: transform .25s var(--pl-ease); }
.pl-dd > button:hover, .pl-dd > button[aria-expanded="true"], .pl-dd > button[aria-current="page"] { color: var(--pl-ink); background: var(--pl-surface-2); }
.pl-dd > button[aria-expanded="true"] i { transform: rotate(180deg); }
.pl-dd__panel { position: absolute; top: calc(100% + 8px); left: -8px; min-width: 300px; padding: 8px; border-radius: var(--pl-r-panel); border: 1px solid var(--pl-line); background: var(--pl-surface); box-shadow: var(--pl-shadow); display: none; z-index: 41; }
.pl-dd__panel[data-open="true"] { display: grid; gap: 2px; }
.pl-nav__links .pl-dd__panel a { display: grid; grid-template-columns: 28px 1fr; gap: 2px 10px; align-items: start; padding: 10px 12px; border-radius: var(--pl-r-ctl); color: var(--pl-ink); background: transparent; }
.pl-nav__links .pl-dd__panel a:hover { background: var(--pl-surface-2); }
.pl-dd__panel a i { grid-row: span 2; font-size: 1.3rem; color: var(--pl-accent); margin-top: 1px; }
.pl-dd__panel a strong { font-weight: 600; font-size: .95rem; }
.pl-dd__panel a span { font-size: .84rem; color: var(--pl-ink-3); line-height: 1.35; }
.pl-dd__panel hr { border: 0; border-top: 1px solid var(--pl-line); margin: 6px 4px; }
.pl-mobilemenu h2 { font-size: .8rem; color: var(--pl-ink-3); font-weight: 600; margin: 22px 0 4px; letter-spacing: .02em; }
.pl-mobilemenu h2:first-child { margin-top: 0; }
.pl-nav__login { padding: 8px 12px; text-decoration: none; color: var(--pl-ink-2); font-weight: 500; font-size: .95rem; }
.pl-nav__login:hover { color: var(--pl-ink); }
.pl-iconbtn { width: 40px; height: 40px; display: inline-grid; place-items: center; border-radius: var(--pl-r-ctl); border: 1px solid var(--pl-line); background: transparent; color: var(--pl-ink-2); cursor: pointer; font-size: 1.15rem; }
.pl-iconbtn:hover { color: var(--pl-ink); border-color: var(--pl-line-strong); }
.pl-theme-dark { display: none; }
:root[data-theme="dark"] .pl-theme-dark { display: inline; }
:root[data-theme="dark"] .pl-theme-light { display: none; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .pl-theme-dark { display: inline; } :root:not([data-theme="light"]) .pl-theme-light { display: none; } }
.pl-burger { display: none; }
.pl-mobilemenu { display: none; }
@media (max-width: 1239px) {
  .pl-nav__links, .pl-nav__login, .pl-nav__right .pl-btn { display: none; }
  .pl-nav__right { margin-left: auto; }
  .pl-burger { display: inline-grid; }
  .pl-mobilemenu[data-open="true"] { display: block; position: fixed; inset: 68px 0 0 0; z-index: 45; background: var(--pl-bg); padding: 24px var(--pl-gutter); overflow-y: auto; }
  .pl-mobilemenu ul { list-style: none; }
  .pl-mobilemenu li a { display: block; padding: 12px 0; font-size: 1.1rem; font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--pl-line); }
  .pl-mobilemenu .pl-actions { margin-top: 24px; flex-direction: column; }
  .pl-mobilemenu .pl-btn { width: 100%; }
}

/* ---------- Héros accueil ---------- */
.pl-hero { padding: clamp(40px, 6vw, 80px) 0 clamp(56px, 7vw, 96px); }
.pl-hero__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.pl-hero__copy .pl-lead { margin-top: 22px; max-width: 46ch; }
.pl-hero__copy .pl-actions { margin-top: 32px; }
.pl-hero__visual { position: relative; padding-bottom: 28px; }
.pl-hero__photo { border-radius: var(--pl-r-panel); overflow: hidden; aspect-ratio: 4 / 5; background: var(--pl-surface-2); }
.pl-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.pl-hero__sim { position: absolute; left: -40px; bottom: 0; width: 340px; }
@media (max-width: 900px) {
  .pl-hero__grid { grid-template-columns: 1fr; }
  .pl-hero__photo { margin-left: 0; aspect-ratio: 4 / 3; }
  .pl-hero__sim { position: relative; left: auto; width: auto; margin: -72px 12px 0; }
  .pl-hero__visual { padding-bottom: 0; }
}

/* ---------- Bandeau éditeur (héros) ---------- */
.pl-editeur { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 28px; }
.pl-editeur__by { display: flex; align-items: center; gap: 14px; }
.pl-avatars { display: inline-flex; flex: none; text-decoration: none; }
.pl-avatars img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; border: 2px solid var(--pl-accent); box-shadow: 0 0 0 2px var(--pl-bg); background: var(--pl-surface-2); }
.pl-avatars img + img { margin-left: -12px; }
.pl-editeur__by p { font-size: .9rem; color: var(--pl-ink-2); line-height: 1.4; max-width: 34ch; }
.pl-editeur__by strong { color: var(--pl-ink); font-weight: 600; }
.pl-editeur__li { display: inline-grid; place-items: center; width: 26px; height: 26px; margin-left: 4px; vertical-align: middle; border-radius: 6px; color: var(--pl-accent-ink); background: var(--pl-accent-soft); text-decoration: none; font-size: 1rem; }
.pl-editeur__li:hover { background: var(--pl-accent); color: var(--pl-on-accent); }
.pl-hero .pl-editeur { margin-top: 26px; }

/* ---------- Comment ça marche ---------- */
.pl-how { background: var(--pl-surface); border-top: 1px solid var(--pl-line); border-bottom: 1px solid var(--pl-line); }
.pl-how__head { max-width: 760px; }
.pl-how__list { list-style: none; display: grid; gap: 16px; margin-top: 44px; counter-reset: how; }
.pl-how__step { display: grid; grid-template-columns: 72px minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1fr); gap: 24px 32px; padding: 28px; border-radius: var(--pl-r-panel); border: 1px solid var(--pl-line); background: var(--pl-bg); align-items: start; }
.pl-how__num { font-family: var(--pl-mono); font-size: 2.6rem; font-weight: 500; line-height: 1; letter-spacing: -0.05em; color: var(--pl-accent); }
.pl-how__step h3 { font-size: 1.25rem; }
.pl-how__step > div > p { color: var(--pl-ink-2); margin-top: 8px; font-size: .97rem; }
.pl-how__col h4 { font-size: .82rem; font-weight: 600; color: var(--pl-ink-3); margin: 0 0 10px; display: flex; gap: 6px; align-items: center; letter-spacing: 0; }
.pl-how__col h4 i { color: var(--pl-accent); font-size: 1rem; }
.pl-how__col ul { list-style: none; display: grid; gap: 6px; font-size: .93rem; color: var(--pl-ink-2); }
.pl-how__col li { display: grid; grid-template-columns: 16px 1fr; gap: 8px; align-items: baseline; }
.pl-how__col li i { color: var(--pl-accent); font-size: .85rem; }
.pl-how__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 28px; padding: 22px 26px; border-radius: var(--pl-r-panel); background: var(--pl-accent-soft); }
.pl-how__foot p { color: var(--pl-ink-2); max-width: 60ch; }
.pl-how__foot strong { color: var(--pl-ink); }
@media (max-width: 1080px) { .pl-how__step { grid-template-columns: 56px minmax(0, 1fr); } .pl-how__col { grid-column: 2; } }
@media (max-width: 560px) { .pl-how__step { grid-template-columns: 1fr; padding: 22px; } .pl-how__col { grid-column: auto; } }

/* ---------- Mini simulateur ---------- */
.pl-card { background: var(--pl-surface); border: 1px solid var(--pl-line); border-radius: var(--pl-r-panel); box-shadow: var(--pl-shadow); }
.pl-sim { padding: 20px 20px 18px; }
.pl-sim__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 14px; }
.pl-sim__title { font-size: .95rem; font-weight: 600; }
.pl-sim__tag { font-size: .78rem; color: var(--pl-ink-3); }
.pl-range { display: block; margin-bottom: 12px; }
.pl-range__row { display: flex; justify-content: space-between; align-items: baseline; font-size: .88rem; color: var(--pl-ink-2); margin-bottom: 4px; }
.pl-range__row output { font-family: var(--pl-mono); color: var(--pl-ink); font-weight: 500; font-size: .92rem; }
.pl-site input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 22px; background: transparent; cursor: pointer; margin: 0; }
.pl-site input[type="range"]::-webkit-slider-runnable-track { height: 4px; border-radius: 4px; background: linear-gradient(to right, var(--pl-accent) var(--fill, 50%), var(--pl-line) var(--fill, 50%)); }
.pl-site input[type="range"]::-moz-range-track { height: 4px; border-radius: 4px; background: var(--pl-line); }
.pl-site input[type="range"]::-moz-range-progress { height: 4px; border-radius: 4px; background: var(--pl-accent); }
.pl-site input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 20px; height: 20px; border-radius: 50%; background: var(--pl-surface); border: 2px solid var(--pl-accent); margin-top: -8px; box-shadow: var(--pl-shadow-sm); transition: transform .2s var(--pl-ease); }
.pl-site input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: var(--pl-surface); border: 2px solid var(--pl-accent); }
.pl-site input[type="range"]:active::-webkit-slider-thumb { transform: scale(1.15); }
.pl-sim__out { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--pl-line); }
.pl-sim__out dt { font-size: .74rem; color: var(--pl-ink-3); line-height: 1.25; }
.pl-sim__out dd { margin: 4px 0 0; font-family: var(--pl-mono); font-size: 1.12rem; font-weight: 500; letter-spacing: -0.03em; }
.pl-sim__foot { margin-top: 12px; font-size: .78rem; color: var(--pl-ink-3); }
.is-pos { color: var(--pl-pos); }
.is-neg { color: var(--pl-neg); }

/* ---------- Bandeau critères bancaires ---------- */
.pl-criteria { border-top: 1px solid var(--pl-line); padding-top: clamp(48px, 6vw, 72px); }
.pl-criteria__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 4vw, 56px); align-items: start; }
.pl-criteria__grid > :first-child { grid-column: 1 / -1; max-width: 640px; margin-bottom: 8px; }
.pl-criteria__big { font-family: var(--pl-mono); font-size: clamp(2.6rem, 2rem + 2vw, 3.6rem); font-weight: 500; letter-spacing: -0.05em; line-height: 1; color: var(--pl-ink); }
.pl-criteria__item p { margin-top: 12px; color: var(--pl-ink-2); font-size: .97rem; }
.pl-criteria__item h3 { margin-top: 16px; font-size: 1.02rem; }
@media (max-width: 900px) { .pl-criteria__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .pl-criteria__grid { grid-template-columns: 1fr; } }

/* ---------- Comparateur de régimes (accueil) ---------- */
.pl-regimes { background: var(--pl-surface); border-top: 1px solid var(--pl-line); border-bottom: 1px solid var(--pl-line); }
.pl-regimes__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.pl-bars { list-style: none; display: grid; gap: 14px; }
.pl-bars li { display: grid; grid-template-columns: 170px 1fr 112px; align-items: center; gap: 16px; font-size: .95rem; }
.pl-bars__label { color: var(--pl-ink-2); }
.pl-bars__track { position: relative; height: 26px; }
.pl-bars__zero { position: absolute; top: -4px; bottom: -4px; width: 1px; background: var(--pl-line-strong); }
.pl-bars__bar { position: absolute; top: 3px; height: 20px; border-radius: 4px; background: var(--pl-ink-3); opacity: .55; transition: left .5s var(--pl-ease), width .5s var(--pl-ease); }
.pl-bars__bar.is-best { background: var(--pl-accent); opacity: 1; }
.pl-bars__val { font-family: var(--pl-mono); text-align: right; font-size: .95rem; }
.pl-bars li.is-best .pl-bars__label { color: var(--pl-ink); font-weight: 600; }
.pl-bars__legend { margin-top: 18px; font-size: .84rem; color: var(--pl-ink-3); }
@media (max-width: 900px) { .pl-regimes__grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .pl-bars li { grid-template-columns: 1fr 96px; } .pl-bars__track { grid-column: 1 / -1; grid-row: 2; } }

/* ---------- Bento fonctionnalités ---------- */
.pl-bento { display: grid; grid-template-columns: repeat(6, 1fr); grid-auto-rows: minmax(210px, auto); gap: 16px; margin-top: 48px; }
.pl-bento__cell { border-radius: var(--pl-r-panel); border: 1px solid var(--pl-line); background: var(--pl-surface); padding: 26px; display: flex; flex-direction: column; gap: 10px; position: relative; overflow: hidden; }
.pl-bento__cell h3 { font-size: 1.15rem; }
.pl-bento__cell p { color: var(--pl-ink-2); font-size: .97rem; max-width: 44ch; }
.pl-bento__icon { font-size: 1.6rem; color: var(--pl-accent); }
.pl-bento__cell--pdf { grid-column: span 4; grid-row: span 2; padding: 0; display: grid; grid-template-rows: auto 1fr; }
.pl-bento__cell--pdf .pl-bento__txt { padding: 28px 28px 0; display: flex; flex-direction: column; gap: 10px; }
.pl-bento__cell--pdf figure { margin: 22px 0 0; overflow: hidden; }
.pl-bento__cell--pdf img { width: 100%; height: 100%; object-fit: cover; }
.pl-bento__cell--market { grid-column: span 2; background: var(--pl-accent); border-color: var(--pl-accent); color: var(--pl-on-accent); }
.pl-bento__cell--market h3, .pl-bento__cell--market p, .pl-bento__cell--market .pl-bento__icon { color: var(--pl-on-accent); }
.pl-bento__cell--market p { opacity: .9; }
.pl-bento__cell--stress { grid-column: span 2; background: var(--pl-surface-2); }
.pl-bento__cell--team { grid-column: span 3; }
.pl-bento__cell--exit { grid-column: span 3; background-image: linear-gradient(140deg, var(--pl-accent-soft), var(--pl-surface) 62%); }
.pl-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 8px; list-style: none; }
.pl-chips li { font-size: .82rem; padding: 6px 10px; border-radius: var(--pl-r-pill); border: 1px solid var(--pl-line-strong); color: var(--pl-ink-2); background: var(--pl-surface); }
.pl-exitline { display: grid; grid-template-columns: 1fr auto; gap: 6px 16px; margin-top: auto; font-size: .92rem; max-width: 420px; }
.pl-exitline dt { color: var(--pl-ink-2); }
.pl-exitline dd { margin: 0; font-family: var(--pl-mono); text-align: right; }
.pl-exitline .is-total { font-weight: 600; color: var(--pl-ink); padding-top: 6px; border-top: 1px solid var(--pl-line); }
@media (max-width: 1000px) {
  .pl-bento { grid-template-columns: repeat(2, 1fr); }
  .pl-bento__cell--pdf { grid-column: 1 / -1; grid-row: auto; }
  .pl-bento__cell--market, .pl-bento__cell--stress, .pl-bento__cell--team, .pl-bento__cell--exit { grid-column: span 1; }
}
@media (max-width: 640px) { .pl-bento { grid-template-columns: 1fr; } .pl-bento__cell--market, .pl-bento__cell--stress, .pl-bento__cell--team, .pl-bento__cell--exit { grid-column: 1 / -1; } }

/* ---------- Étapes (colonne collante) ---------- */
.pl-steps { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(32px, 6vw, 96px); }
.pl-steps__aside { position: sticky; top: 100px; align-self: start; }
.pl-steps__aside figure { margin: 32px 0 0; border-radius: var(--pl-r-panel); overflow: hidden; aspect-ratio: 3 / 2; }
.pl-steps__aside img { width: 100%; height: 100%; object-fit: cover; }
.pl-steps__list { list-style: none; display: grid; gap: clamp(40px, 6vw, 72px); padding-top: 8px; }
.pl-steps__list li { display: grid; grid-template-columns: 52px 1fr; gap: 20px; }
.pl-steps__ico { width: 52px; height: 52px; border-radius: var(--pl-r-ctl); display: grid; place-items: center; background: var(--pl-accent-soft); color: var(--pl-accent-ink); font-size: 1.5rem; }
.pl-steps__list h3 { font-size: 1.35rem; margin-top: 10px; }
.pl-steps__list p { margin-top: 10px; color: var(--pl-ink-2); }
.pl-steps__list ul { margin-top: 14px; list-style: none; display: grid; gap: 6px; color: var(--pl-ink-2); font-size: .95rem; }
.pl-steps__list ul li { display: flex; gap: 8px; align-items: baseline; }
.pl-steps__list ul i { color: var(--pl-accent); }
@media (max-width: 900px) { .pl-steps { grid-template-columns: 1fr; } .pl-steps__aside { position: static; } }

/* ---------- Rangée d'outils défilante ---------- */
.pl-rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px, 1fr); gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px 2px 18px; margin-top: 36px; scrollbar-width: thin; }
.pl-rail > * { scroll-snap-align: start; }
.pl-tool { display: flex; flex-direction: column; gap: 10px; padding: 22px; border-radius: var(--pl-r-panel); border: 1px solid var(--pl-line); background: var(--pl-surface); text-decoration: none; min-height: 190px; transition: border-color .2s, transform .3s var(--pl-ease); }
a.pl-tool:hover { border-color: var(--pl-accent); transform: translateY(-2px); }
.pl-tool i.pl-tool__ico { font-size: 1.6rem; color: var(--pl-accent); }
.pl-tool strong { font-size: 1.05rem; letter-spacing: -0.02em; }
.pl-tool span { color: var(--pl-ink-2); font-size: .93rem; }
.pl-tool .pl-tool__go { margin-top: auto; font-weight: 600; color: var(--pl-accent-ink); display: inline-flex; gap: 6px; align-items: center; font-size: .92rem; }
.pl-tool.is-soon { background: transparent; border-style: dashed; }
.pl-tool.is-soon .pl-tool__go { color: var(--pl-ink-3); }

/* ---------- Académie (2 colonnes groupées) ---------- */
.pl-paths { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(32px, 5vw, 72px); margin-top: 40px; }
.pl-path { padding: 22px 0; border-top: 1px solid var(--pl-line); display: grid; grid-template-columns: 44px 1fr; gap: 16px; }
.pl-path i { font-size: 1.5rem; color: var(--pl-accent); margin-top: 2px; }
.pl-path h3 { font-size: 1.08rem; }
.pl-path p { color: var(--pl-ink-2); font-size: .95rem; margin-top: 6px; }
@media (max-width: 760px) { .pl-paths { grid-template-columns: 1fr; } }

/* ---------- FAQ ---------- */
.pl-faq { max-width: 860px; }
.pl-faq details { border-bottom: 1px solid var(--pl-line); }
.pl-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 24px; padding: 22px 0; font-weight: 600; font-size: 1.06rem; letter-spacing: -0.015em; }
.pl-faq summary::-webkit-details-marker { display: none; }
.pl-faq summary i { flex: none; font-size: 1.2rem; color: var(--pl-ink-3); transition: transform .3s var(--pl-ease); margin-top: 3px; }
.pl-faq details[open] summary i { transform: rotate(180deg); color: var(--pl-accent); }
.pl-faq__a { padding: 0 0 24px; color: var(--pl-ink-2); max-width: 70ch; }
.pl-site .pl-faq__a > * + * { margin-top: 10px; }
.pl-faq__a ul { padding-left: 1.2em; }

/* ---------- Bandeau final ---------- */
.pl-final { position: relative; border-radius: var(--pl-r-panel); overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); background: var(--pl-accent-soft); border: 1px solid var(--pl-line); }
.pl-final__copy { padding: clamp(32px, 5vw, 64px); display: flex; flex-direction: column; gap: 18px; justify-content: center; }
.pl-final__copy p { color: var(--pl-ink-2); max-width: 46ch; }
.pl-final__copy .pl-actions { margin-top: 6px; }
.pl-final figure { margin: 0; min-height: 320px; }
.pl-final img { width: 100%; height: 100%; object-fit: cover; object-position: center 15%; }
@media (max-width: 820px) { .pl-final { grid-template-columns: 1fr; } .pl-final figure { min-height: 220px; order: -1; } }

/* ---------- Pied de page ---------- */
.pl-footer { border-top: 1px solid var(--pl-line); padding: 56px 0 36px; margin-top: clamp(64px, 9vw, 112px); font-size: .93rem; }
.pl-footer__grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 32px; }
.pl-footer h2 { font-size: .9rem; margin-bottom: 14px; letter-spacing: 0; }
.pl-footer ul { list-style: none; display: grid; gap: 8px; }
.pl-footer a { color: var(--pl-ink-2); text-decoration: none; }
.pl-footer a:hover { color: var(--pl-ink); text-decoration: underline; }
.pl-footer__about p { color: var(--pl-ink-2); margin-top: 14px; max-width: 40ch; }
.pl-footer__about p a { color: var(--pl-ink); text-decoration: underline; text-underline-offset: 3px; }
.pl-footer a.pl-btn--primary, .pl-footer a.pl-btn--primary:hover { color: var(--pl-on-accent); text-decoration: none; }
.pl-footer__legal { margin-top: 44px; padding-top: 22px; border-top: 1px solid var(--pl-line); color: var(--pl-ink-3); font-size: .82rem; line-height: 1.55; display: grid; gap: 10px; }
@media (max-width: 820px) { .pl-footer__grid { grid-template-columns: 1fr 1fr; } .pl-footer__about { grid-column: 1 / -1; } }

/* ---------- En-têtes de pages internes ---------- */
.pl-pagehead { padding: clamp(40px, 6vw, 72px) 0 clamp(28px, 4vw, 44px); }
.pl-pagehead .pl-lead { margin-top: 18px; }
.pl-crumbs { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; font-size: .86rem; color: var(--pl-ink-3); margin-bottom: 18px; }
.pl-crumbs a { text-decoration: none; color: var(--pl-ink-2); }
.pl-crumbs a:hover { text-decoration: underline; }
.pl-crumbs li + li::before { content: "/"; margin-right: 6px; color: var(--pl-line-strong); }

/* ---------- Tarifs ---------- */
.pl-toggle { display: inline-flex; padding: 4px; border-radius: var(--pl-r-pill); background: var(--pl-surface-2); border: 1px solid var(--pl-line); }
.pl-toggle button { border: 0; background: transparent; font: 600 .92rem var(--pl-font); color: var(--pl-ink-2); padding: 9px 18px; border-radius: var(--pl-r-pill); cursor: pointer; }
.pl-toggle button[aria-pressed="true"] { background: var(--pl-surface); color: var(--pl-ink); box-shadow: var(--pl-shadow-sm); }
.pl-toggle small { color: var(--pl-pos); font-weight: 600; margin-left: 4px; }
.pl-plans { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 36px; align-items: stretch; }
.pl-plan { padding: 26px 24px; display: flex; flex-direction: column; gap: 14px; border-radius: var(--pl-r-panel); border: 1px solid var(--pl-line); background: var(--pl-surface); }
.pl-plan.is-featured { border: 2px solid var(--pl-accent); box-shadow: var(--pl-shadow); }
.pl-plan__name { font-size: 1.15rem; font-weight: 600; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.pl-badge { font-size: .74rem; font-weight: 600; padding: 4px 9px; border-radius: var(--pl-r-pill); background: var(--pl-accent-soft); color: var(--pl-accent-ink); letter-spacing: .01em; }
.pl-plan__for { color: var(--pl-ink-2); font-size: .94rem; min-height: 3em; }
.pl-plan__price { display: flex; align-items: baseline; gap: 6px; }
.pl-plan__price strong { font-family: var(--pl-mono); font-size: 2.3rem; font-weight: 500; letter-spacing: -0.05em; line-height: 1; }
.pl-plan__price span { color: var(--pl-ink-3); font-size: .9rem; }
.pl-plan__bill { font-size: .84rem; color: var(--pl-ink-3); min-height: 1.3em; }
.pl-plan ul { list-style: none; display: grid; gap: 9px; font-size: .93rem; color: var(--pl-ink-2); margin-top: 4px; }
.pl-plan ul li { display: grid; grid-template-columns: 18px 1fr; gap: 8px; align-items: baseline; }
.pl-plan ul i { color: var(--pl-accent); }
.pl-plan .pl-btn { margin-top: auto; }
@media (max-width: 1080px) { .pl-plans { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .pl-plans { grid-template-columns: 1fr; } }
.pl-matrix { margin-top: 28px; display: grid; gap: 28px; }
.pl-matrix__group h3 { font-size: 1rem; margin-bottom: 10px; color: var(--pl-ink); }
.pl-tablewrap { overflow-x: auto; border: 1px solid var(--pl-line); border-radius: var(--pl-r-panel); background: var(--pl-surface); }
.pl-table { width: 100%; border-collapse: collapse; font-size: .93rem; min-width: 640px; }
.pl-table th, .pl-table td { padding: 12px 14px; text-align: left; vertical-align: top; }
.pl-table tbody td:first-child { white-space: nowrap; }
.pl-regtable tbody td:first-child { white-space: normal; min-width: 150px; }
.pl-table thead th { font-size: .82rem; color: var(--pl-ink-3); font-weight: 600; border-bottom: 1px solid var(--pl-line); background: var(--pl-surface-2); }
.pl-table tbody tr:nth-child(even) { background: color-mix(in srgb, var(--pl-surface-2) 55%, transparent); }
.pl-table td.c, .pl-table th.c { text-align: center; }
.pl-table td.r, .pl-table th.r { text-align: right; font-family: var(--pl-mono); font-variant-numeric: tabular-nums; }
.pl-table .ph-check { color: var(--pl-pos); font-size: 1.1rem; }
.pl-table .ph-minus { color: var(--pl-ink-3); }

/* ---------- Formulaires ---------- */
.pl-form { display: grid; gap: 20px; }
.pl-field { display: grid; gap: 8px; }
.pl-field label, .pl-field .pl-label { font-weight: 600; font-size: .93rem; color: var(--pl-ink); }
.pl-field .pl-help { font-size: .84rem; color: var(--pl-ink-3); }
.pl-field .pl-error { font-size: .84rem; color: var(--pl-neg); display: none; }
.pl-field.has-error .pl-error { display: block; }
.pl-field.has-error input, .pl-field.has-error textarea, .pl-field.has-error select { border-color: var(--pl-neg); }
.pl-input, .pl-site select.pl-input, .pl-site textarea.pl-input { width: 100%; min-height: 46px; padding: 10px 14px; border-radius: var(--pl-r-ctl); border: 1px solid var(--pl-line-strong); background: var(--pl-surface); color: var(--pl-ink); font: 400 1rem var(--pl-font); transition: border-color .2s, box-shadow .2s; }
.pl-input::placeholder { color: var(--pl-ink-3); opacity: 1; }
.pl-input:focus { outline: none; border-color: var(--pl-accent); box-shadow: 0 0 0 3px var(--pl-accent-soft); }
textarea.pl-input { min-height: 150px; resize: vertical; }
.pl-unit { position: relative; }
.pl-unit .pl-input { padding-right: 52px; font-family: var(--pl-mono); }
.pl-unit span { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: var(--pl-ink-3); font-size: .9rem; pointer-events: none; }
.pl-check { display: flex; gap: 10px; align-items: flex-start; font-size: .93rem; color: var(--pl-ink-2); }
.pl-check input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--pl-accent); }
.pl-notice { display: flex; gap: 12px; padding: 14px 16px; border-radius: var(--pl-r-ctl); background: var(--pl-accent-soft); color: var(--pl-accent-ink); font-size: .93rem; }
.pl-notice i { font-size: 1.2rem; flex: none; margin-top: 2px; }
.pl-notice--ok { background: var(--pl-pos-soft); color: var(--pl-pos); }
.pl-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.pl-notice--warn { background: var(--pl-neg-soft); color: var(--pl-neg); }

/* ---------- Outils : mise en page ---------- */
.pl-toolgrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.pl-toolpanel { padding: clamp(20px, 3vw, 32px); }
.pl-toolpanel h2 { font-size: 1.2rem; margin-bottom: 20px; }
.pl-fields2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pl-result { position: sticky; top: 92px; }
.pl-result__main { padding: 26px; border-bottom: 1px solid var(--pl-line); }
.pl-result__label { font-size: .88rem; color: var(--pl-ink-2); }
.pl-result__big { font-family: var(--pl-mono); font-size: clamp(2.4rem, 2rem + 1.6vw, 3.3rem); font-weight: 500; letter-spacing: -0.05em; line-height: 1.05; margin-top: 6px; }
.pl-result__verdict { margin-top: 10px; font-size: .93rem; color: var(--pl-ink-2); }
.pl-result__rows { padding: 18px 26px 22px; display: grid; grid-template-columns: 1fr auto; gap: 10px 16px; font-size: .94rem; margin: 0; }
.pl-result__rows dt { color: var(--pl-ink-2); }
.pl-result__rows dd { margin: 0; text-align: right; font-family: var(--pl-mono); }
.pl-result__rows .is-total { font-weight: 600; color: var(--pl-ink); border-top: 1px solid var(--pl-line); padding-top: 10px; }
.pl-result__cta { padding: 0 26px 26px; }
@media (max-width: 900px) { .pl-toolgrid { grid-template-columns: 1fr; } .pl-result { position: static; } }
@media (max-width: 520px) { .pl-fields2 { grid-template-columns: 1fr; } }
.pl-seg { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.pl-seg label { position: relative; }
.pl-seg input { position: absolute; opacity: 0; inset: 0; }
.pl-seg span { display: inline-block; padding: 9px 14px; border-radius: var(--pl-r-pill); border: 1px solid var(--pl-line-strong); font-size: .9rem; font-weight: 500; cursor: pointer; color: var(--pl-ink-2); }
.pl-seg input:checked + span { background: var(--pl-ink); border-color: var(--pl-ink); color: var(--pl-bg); }
.pl-seg input:focus-visible + span { outline: 2px solid var(--pl-accent); outline-offset: 2px; }
.pl-gauge { margin-top: 14px; }
.pl-gauge__bar { position: relative; height: 10px; }
.pl-gauge__fill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 4px; background: var(--pl-accent); transition: width .5s var(--pl-ease), background-color .3s; }
.pl-gauge__mark { position: absolute; top: -6px; bottom: -6px; width: 2px; background: var(--pl-ink); }
.pl-gauge__scale { display: flex; justify-content: space-between; font-size: .76rem; color: var(--pl-ink-3); margin-top: 8px; font-family: var(--pl-mono); }

/* ---------- Contenu éditorial (outils + articles) ---------- */
.pl-prose { max-width: 720px; font-size: 1.04rem; color: var(--pl-ink-2); }
.pl-site .pl-prose > * + * { margin-top: 1.1em; }
.pl-site .pl-prose h2 { font-size: clamp(1.45rem, 1.2rem + .8vw, 1.85rem); margin-top: 2.2em; color: var(--pl-ink); line-height: 1.15; scroll-margin-top: 96px; }
.pl-site .pl-prose h3 { font-size: 1.18rem; margin-top: 1.8em; color: var(--pl-ink); scroll-margin-top: 96px; }
.pl-prose strong { color: var(--pl-ink); font-weight: 600; }
.pl-prose a { color: var(--pl-accent-ink); text-underline-offset: 3px; text-decoration-thickness: 1px; font-weight: 500; }
.pl-prose a.pl-btn { text-decoration: none; font-weight: 600; }
.pl-prose a.pl-btn--primary, .pl-prose a.pl-btn--primary:hover { color: var(--pl-on-accent); }
.pl-prose a.pl-btn--ghost { color: var(--pl-ink); }
.pl-site .pl-prose .pl-sources { font-size: .92rem; gap: .6em; }
.pl-prose ul, .pl-prose ol { padding-left: 1.3em; display: grid; gap: .45em; }
.pl-prose blockquote { margin: 1.6em 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--pl-accent); color: var(--pl-ink); font-size: 1.08rem; }
.pl-prose .pl-tablewrap { margin: 1.6em 0; }
.pl-prose .pl-table { min-width: 520px; font-size: .92rem; }
.pl-formula { font-family: var(--pl-mono); background: var(--pl-surface-2); border-radius: var(--pl-r-ctl); padding: 14px 16px; font-size: .92rem; color: var(--pl-ink); overflow-x: auto; }
.pl-keybox { border-radius: var(--pl-r-panel); background: var(--pl-surface); border: 1px solid var(--pl-line); padding: 22px 24px; }
.pl-keybox h2, .pl-keybox h3 { margin-top: 0 !important; font-size: 1.05rem !important; }
.pl-keybox ul { margin-top: 12px; }
.pl-site .pl-profil { border-radius: var(--pl-r-panel); background: var(--pl-surface); border: 1px solid var(--pl-line); padding: 22px 24px; margin-top: 1.4em; }
.pl-site .pl-profil h3 { margin-top: 0; display: flex; align-items: center; gap: 10px; }
.pl-profil h3 .ph { color: var(--pl-accent-ink); font-size: 1.3rem; }
.pl-site .pl-profil > * + * { margin-top: .8em; }
.pl-profil__cap { border-top: 1px solid var(--pl-line); padding-top: .8em; color: var(--pl-ink); }
.pl-site .pl-related { margin-top: 2.6em; }
.pl-site .pl-related h2 { font-size: 1.05rem; margin-top: 0; }
.pl-site .pl-related ul { list-style: none; padding: 0; margin-top: 14px; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.pl-related a { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 16px 18px; border: 1px solid var(--pl-line); border-radius: var(--pl-r-panel); background: var(--pl-surface); color: var(--pl-ink); font-weight: 600; line-height: 1.35; text-decoration: none; transition: border-color .2s; }
.pl-related a:hover { border-color: var(--pl-ink); }
.pl-related small { color: var(--pl-ink-3); font-size: .78rem; font-weight: 500; }

/* ---------- Article ---------- */
.pl-article { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: clamp(32px, 6vw, 88px); align-items: start; }
.pl-article__meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 22px; color: var(--pl-ink-3); font-size: .9rem; }
.pl-article__meta span { display: inline-flex; align-items: center; gap: 6px; }
.pl-site .pl-article__cover { margin: clamp(40px, 5vw, 64px) 0 0; border-radius: var(--pl-r-panel); overflow: hidden; aspect-ratio: 16 / 7; }
.pl-site .pl-credit { margin-top: 8px; text-align: right; font-size: .78rem; color: var(--pl-ink-3); }
.pl-credit a { color: inherit; text-underline-offset: 2px; }
.pl-article__cover img { width: 100%; height: 100%; object-fit: cover; }
.pl-toc { position: sticky; top: 92px; font-size: .9rem; }
.pl-toc h2 { font-size: .86rem; color: var(--pl-ink-3); font-weight: 600; margin-bottom: 12px; letter-spacing: 0; }
.pl-toc ol { list-style: none; display: grid; gap: 2px; border-left: 1px solid var(--pl-line); }
.pl-toc ol a { display: block; padding: 6px 0 6px 14px; margin-left: -1px; border-left: 2px solid transparent; text-decoration: none; color: var(--pl-ink-2); line-height: 1.35; }
.pl-toc ol a:hover { color: var(--pl-ink); }
.pl-toc ol a.is-active { color: var(--pl-accent-ink); border-left-color: var(--pl-accent); }
.pl-toc .pl-card { margin-top: 28px; padding: 20px; box-shadow: none; }
.pl-toc .pl-card p { color: var(--pl-ink-2); margin: 8px 0 14px; font-size: .9rem; }
.pl-toc .pl-card .pl-btn + .pl-btn { margin-top: 10px; }
.pl-author { display: grid; grid-template-columns: 52px 1fr; gap: 16px; padding: 22px 24px; border-radius: var(--pl-r-panel); background: var(--pl-surface); border: 1px solid var(--pl-line); margin-top: 48px; }
.pl-author__mark { width: 52px; height: 52px; border-radius: 50%; background: var(--pl-accent-soft); color: var(--pl-accent-ink); display: grid; place-items: center; font-size: 1.4rem; }
.pl-author p { color: var(--pl-ink-2); font-size: .93rem; margin-top: 4px; }
@media (max-width: 1000px) { .pl-article { grid-template-columns: 1fr; } .pl-toc { position: static; order: -1; } .pl-toc ol { display: none; } .pl-toc h2 { display: none; } .pl-toc .pl-card { margin-top: 0; } }

/* ---------- Qui sommes-nous ---------- */
.pl-about { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.pl-site .pl-about__text > * + * { margin-top: 1em; }
.pl-about__text p { color: var(--pl-ink-2); font-size: 1.04rem; }
.pl-about__text strong { color: var(--pl-ink); font-weight: 600; }
.pl-site .pl-about__text ul { list-style: none; display: grid; gap: 12px; padding: 0; margin-top: 1.6em; }
.pl-about__text li { display: grid; grid-template-columns: 24px 1fr; gap: 10px; color: var(--pl-ink-2); }
.pl-about__text li i { color: var(--pl-accent); font-size: 1.15rem; margin-top: 2px; }
@media (max-width: 900px) { .pl-about { grid-template-columns: 1fr; } }
.pl-services { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 40px; }
.pl-service { padding: 24px; border-radius: var(--pl-r-panel); border: 1px solid var(--pl-line); background: var(--pl-bg); }
.pl-service > i { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--pl-accent-soft); color: var(--pl-accent-ink); font-size: 1.35rem; }
.pl-service h3 { margin-top: 18px; font-size: 1.06rem; line-height: 1.25; }
.pl-service p { margin-top: 8px; color: var(--pl-ink-2); font-size: .94rem; }
@media (max-width: 1080px) { .pl-services { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .pl-services { grid-template-columns: 1fr; } }
.pl-facts { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: 28px; color: var(--pl-ink-2); font-size: .95rem; }
.pl-facts span { display: inline-flex; align-items: center; gap: 8px; }
.pl-facts i { color: var(--pl-accent); font-size: 1.1rem; }
.pl-team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 40px; }
.pl-member { display: flex; flex-direction: column; border-radius: var(--pl-r-panel); border: 1px solid var(--pl-line); background: var(--pl-surface); overflow: hidden; }
.pl-member figure { aspect-ratio: 4 / 3.6; overflow: hidden; background: var(--pl-surface-2); border-bottom: 3px solid var(--pl-accent); }
.pl-member img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.pl-member__body { flex: 1; display: flex; flex-direction: column; gap: 8px; padding: 22px 24px 24px; }
.pl-member__body h3 { font-size: 1.2rem; letter-spacing: -0.02em; }
.pl-member__role { color: var(--pl-accent-ink); font-size: .88rem; font-weight: 600; }
.pl-member__body p { color: var(--pl-ink-2); font-size: .95rem; }
.pl-member__links { display: flex; flex-wrap: wrap; gap: 16px; margin-top: auto; padding-top: 10px; font-size: .92rem; }
@media (max-width: 900px) { .pl-team { grid-template-columns: 1fr; max-width: 520px; } }

/* ---------- Auteurs ---------- */
.pl-author img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; }
.pl-author__links { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 10px; font-size: .9rem; }
.pl-byline { display: inline-flex; align-items: center; gap: 8px; }
.pl-byline img { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; }
.pl-byline a { color: var(--pl-ink); font-weight: 600; text-decoration: none; }
.pl-byline a:hover { text-decoration: underline; text-underline-offset: 3px; }
.pl-authors { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 36px; }
.pl-authorcard { display: flex; flex-direction: column; border-radius: var(--pl-r-panel); border: 1px solid var(--pl-line); background: var(--pl-surface); overflow: hidden; text-decoration: none; transition: border-color .2s, transform .3s var(--pl-ease); }
.pl-authorcard:hover { border-color: var(--pl-accent); transform: translateY(-2px); }
.pl-authorcard figure { aspect-ratio: 4 / 3.4; overflow: hidden; background: var(--pl-surface-2); }
.pl-authorcard img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }
.pl-authorcard div { padding: 20px 22px 24px; display: grid; gap: 6px; }
.pl-authorcard strong { font-size: 1.12rem; letter-spacing: -0.02em; }
.pl-authorcard span { color: var(--pl-ink-2); font-size: .93rem; }
.pl-profile { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.pl-profile__photo { border-radius: var(--pl-r-panel); overflow: hidden; aspect-ratio: 4 / 5; background: var(--pl-surface-2); }
.pl-profile__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.pl-profile__links { display: grid; gap: 8px; margin-top: 18px; }
@media (max-width: 860px) { .pl-authors { grid-template-columns: 1fr; } .pl-profile { grid-template-columns: 1fr; } .pl-profile__photo { max-width: 240px; } }

/* ---------- Hub outils / académie ---------- */
.pl-toolhub { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.pl-toolhub .pl-tool--wide { grid-column: span 2; flex-direction: row; gap: 24px; align-items: stretch; padding: 0; overflow: hidden; }
.pl-tool--wide .pl-tool__body { padding: 26px; display: flex; flex-direction: column; gap: 10px; }
.pl-tool--wide figure { margin: 0; flex: 0 0 44%; }
.pl-tool--wide img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 960px) { .pl-toolhub { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .pl-toolhub { grid-template-columns: 1fr; } .pl-toolhub .pl-tool--wide { grid-column: auto; flex-direction: column; } .pl-tool--wide figure { flex-basis: 180px; } }
.pl-feature { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); border-radius: var(--pl-r-panel); overflow: hidden; border: 1px solid var(--pl-line); background: var(--pl-surface); text-decoration: none; }
.pl-feature figure { margin: 0; min-height: 280px; }
.pl-feature img { width: 100%; height: 100%; object-fit: cover; }
.pl-feature__body { padding: clamp(24px, 4vw, 44px); display: flex; flex-direction: column; gap: 14px; justify-content: center; }
.pl-feature__body p { color: var(--pl-ink-2); }
@media (max-width: 820px) { .pl-feature { grid-template-columns: 1fr; } .pl-feature figure { min-height: 200px; } }
.pl-search { position: relative; max-width: 560px; margin-top: 28px; }
.pl-search i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--pl-ink-3); font-size: 1.15rem; }
.pl-search .pl-input { padding-left: 42px; min-height: 52px; }
.pl-pathcols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 32px; margin-top: 48px; }
.pl-pathcol h2 { font-size: 1.1rem; display: flex; gap: 10px; align-items: center; }
.pl-pathcol h2 i { color: var(--pl-accent); font-size: 1.3rem; }
.pl-pathcol p { color: var(--pl-ink-3); font-size: .9rem; margin-top: 6px; }
.pl-pathcol ul { list-style: none; margin-top: 14px; display: grid; gap: 2px; }
.pl-pathcol li a, .pl-pathcol li span { display: block; padding: 8px 0; color: var(--pl-ink-2); text-decoration: none; font-size: .95rem; line-height: 1.4; }
.pl-pathcol li a { color: var(--pl-ink); font-weight: 500; }
.pl-pathcol li a:hover { color: var(--pl-accent-ink); text-decoration: underline; text-underline-offset: 3px; }
.pl-pathcol li span em { font-style: normal; font-size: .76rem; color: var(--pl-ink-3); margin-left: 6px; }
.pl-pathcol[hidden] { display: none; }
@media (max-width: 960px) { .pl-pathcols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .pl-pathcols { grid-template-columns: 1fr; } }
.pl-empty { padding: 40px 24px; text-align: center; color: var(--pl-ink-2); border: 1px dashed var(--pl-line-strong); border-radius: var(--pl-r-panel); margin-top: 32px; }
.pl-empty i { font-size: 1.8rem; color: var(--pl-ink-3); display: block; margin-bottom: 8px; }

/* ---------- Simulateur complet (démo) ---------- */
.pl-demo { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 24px; align-items: start; }
.pl-demo__inputs { position: sticky; top: 88px; max-height: calc(100dvh - 104px); overflow-y: auto; padding: 6px; scrollbar-width: thin; }
.pl-group { border: 1px solid var(--pl-line); border-radius: var(--pl-r-panel); background: var(--pl-surface); margin-bottom: 10px; }
.pl-group summary { list-style: none; cursor: pointer; padding: 16px 18px; font-weight: 600; display: flex; align-items: center; gap: 10px; }
.pl-group summary::-webkit-details-marker { display: none; }
.pl-group summary i:first-child { color: var(--pl-accent); font-size: 1.2rem; }
.pl-group summary .ph-caret-down { margin-left: auto; color: var(--pl-ink-3); transition: transform .3s var(--pl-ease); }
.pl-group[open] summary .ph-caret-down { transform: rotate(180deg); }
.pl-group__body { padding: 2px 18px 18px; display: grid; gap: 14px; }
.pl-mini { display: grid; gap: 6px; }
.pl-mini label { font-size: .86rem; font-weight: 500; color: var(--pl-ink-2); display: flex; justify-content: space-between; gap: 8px; }
.pl-mini label small { font-weight: 400; color: var(--pl-ink-3); }
.pl-mini .pl-input { min-height: 40px; padding: 8px 12px; font-size: .95rem; }
.pl-mini2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pl-demo__out { display: grid; gap: 16px; min-width: 0; }
.pl-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border: 1px solid var(--pl-line); border-radius: var(--pl-r-panel); background: var(--pl-surface); overflow: hidden; }
.pl-kpi { padding: 20px 20px 18px; border-left: 1px solid var(--pl-line); }
.pl-kpi:first-child { border-left: 0; }
.pl-kpi dt { font-size: .82rem; color: var(--pl-ink-2); }
.pl-kpi dd { margin: 6px 0 0; font-family: var(--pl-mono); font-size: 1.7rem; letter-spacing: -0.05em; font-weight: 500; line-height: 1.1; }
.pl-kpi small { display: block; font-size: .78rem; color: var(--pl-ink-3); margin-top: 6px; font-family: var(--pl-font); letter-spacing: 0; }
@media (max-width: 1180px) { .pl-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pl-kpi:nth-child(3) { border-left: 0; } .pl-kpi:nth-child(n+3) { border-top: 1px solid var(--pl-line); } }
.pl-panel { border: 1px solid var(--pl-line); border-radius: var(--pl-r-panel); background: var(--pl-surface); padding: clamp(18px, 2.4vw, 26px); min-width: 0; }
.pl-panel__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.pl-panel__head h2 { font-size: 1.15rem; }
.pl-panel__head p { color: var(--pl-ink-3); font-size: .88rem; }
.pl-regtable td:first-child { font-weight: 500; color: var(--pl-ink); }
.pl-regtable tr.is-best td { background: var(--pl-accent-soft); }
.pl-regtable tr.is-best td:first-child { color: var(--pl-accent-ink); }
.pl-regtable tr.is-off td { color: var(--pl-ink-3); }
.pl-regtable button { all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.pl-regtable button:focus-visible { outline: 2px solid var(--pl-accent); outline-offset: 2px; border-radius: 4px; }
.pl-regtable tr.is-sel td:first-child button::after { content: "affiché"; font-size: .7rem; font-weight: 600; padding: 2px 7px; border-radius: var(--pl-r-pill); background: var(--pl-ink); color: var(--pl-bg); }
.pl-chart { width: 100%; height: 260px; display: block; }
.pl-chart text { font-family: var(--pl-mono); font-size: 11px; fill: var(--pl-ink-3); }
.pl-chart .grid { stroke: var(--pl-line); stroke-width: 1; }
.pl-chart .zero { stroke: var(--pl-line-strong); stroke-width: 1; }
.pl-chart .bar-pos { fill: var(--pl-accent); }
.pl-chart .bar-neg { fill: var(--pl-neg); opacity: .8; }
.pl-chart .line { fill: none; stroke: var(--pl-ink); stroke-width: 2; }
.pl-chart .dot { fill: var(--pl-ink); }
.pl-legend { display: flex; flex-wrap: wrap; gap: 16px; font-size: .82rem; color: var(--pl-ink-2); margin-top: 10px; }
.pl-legend span { display: inline-flex; align-items: center; gap: 6px; }
.pl-legend i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.pl-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.pl-kv { display: grid; grid-template-columns: 1fr auto; gap: 9px 16px; font-size: .93rem; margin: 0; }
.pl-kv dt { color: var(--pl-ink-2); }
.pl-kv dd { margin: 0; text-align: right; font-family: var(--pl-mono); }
.pl-kv .is-total { font-weight: 600; color: var(--pl-ink); border-top: 1px solid var(--pl-line); padding-top: 9px; }
.pl-stress { display: flex; flex-wrap: wrap; gap: 8px; }
.pl-stress label { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: var(--pl-r-pill); border: 1px solid var(--pl-line-strong); font-size: .88rem; cursor: pointer; color: var(--pl-ink-2); }
.pl-stress input { accent-color: var(--pl-neg); }
.pl-stress label:has(input:checked) { border-color: var(--pl-neg); color: var(--pl-neg); background: var(--pl-neg-soft); }
.pl-verdict { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: var(--pl-r-ctl); font-size: .92rem; margin-top: 14px; }
.pl-verdict.ok { background: var(--pl-pos-soft); color: var(--pl-pos); }
.pl-verdict.mid { background: var(--pl-accent-soft); color: var(--pl-accent-ink); }
.pl-verdict.ko { background: var(--pl-neg-soft); color: var(--pl-neg); }
.pl-verdict i { font-size: 1.15rem; flex: none; margin-top: 1px; }
.pl-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; border-radius: var(--pl-r-panel); background: var(--pl-accent-soft); border: 1px solid var(--pl-line); }
.pl-banner p { color: var(--pl-ink-2); font-size: .95rem; max-width: 60ch; }
.pl-banner strong { color: var(--pl-ink); }
.pl-scenarios { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.pl-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; padding: 14px 18px; border-radius: var(--pl-r-panel); background: var(--pl-accent-soft); border: 1px solid var(--pl-line); }
.pl-toolbar p { color: var(--pl-ink-2); font-size: .92rem; max-width: 46ch; display: flex; gap: 8px; align-items: flex-start; }
.pl-toolbar p i { color: var(--pl-accent-ink); font-size: 1.15rem; margin-top: 2px; }
.pl-toolbar .pl-actions { gap: 8px; }
.pl-toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 16px); z-index: 60; padding: 12px 18px; border-radius: var(--pl-r-ctl); background: var(--pl-ink); color: var(--pl-bg); font-size: .93rem; box-shadow: var(--pl-shadow); opacity: 0; pointer-events: none; transition: opacity .25s, transform .3s var(--pl-ease); }
.pl-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.pl-printonly { display: none; }
@media (max-width: 1080px) { .pl-demo { grid-template-columns: 1fr; } .pl-demo__inputs { position: static; max-height: none; overflow: visible; padding: 0; } .pl-two { grid-template-columns: 1fr; } }

/* ---------- Mouvement ---------- */
@media (prefers-reduced-motion: no-preference) {
  .pl-js .pl-reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s var(--pl-ease), transform .6s var(--pl-ease); transition-delay: calc(var(--i, 0) * 60ms); }
  .pl-js .pl-reveal.is-in { opacity: 1; transform: none; }
  .pl-hero__copy > * { animation: pl-rise .9s var(--pl-ease) both; }
  .pl-hero__copy > :nth-child(2) { animation-delay: .06s; }
  .pl-hero__copy > :nth-child(3) { animation-delay: .12s; }
  .pl-hero__visual { animation: pl-rise 1s var(--pl-ease) .1s both; }
  .pl-flash { animation: pl-flash .6s var(--pl-ease); }
}
@keyframes pl-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes pl-flash { from { background-color: var(--pl-accent-soft); } to { background-color: transparent; } }
@media (prefers-reduced-motion: reduce) { .pl-site * { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }

/* ---------- Impression (dossier) ---------- */
@page { size: A4; margin: 14mm 12mm; }
@media print {
  :root, :root:not([data-theme="light"]), :root[data-theme="dark"] { --pl-bg: #ffffff; --pl-surface: #ffffff; --pl-surface-2: #f1f3f6; --pl-ink: #12151c; --pl-ink-2: #3a404c; --pl-ink-3: #5a6170; --pl-line: #d9dde4; --pl-line-strong: #c4cad4; --pl-accent: #2347cf; --pl-accent-soft: #e9edfb; --pl-accent-ink: #1a359a; --pl-pos: #0d7250; --pl-neg: #b0261f; --pl-pos-soft: #e3f3ec; --pl-neg-soft: #f8e7e5; --pl-shadow: none; --pl-shadow-sm: none; }
  .pl-site { background: #fff; font-size: 11pt; }
  .pl-site * { -webkit-print-color-adjust: exact; print-color-adjust: exact; box-shadow: none !important; }
  .pl-band, .pl-nav, .pl-footer, .pl-skip, .pl-pagehead, .pl-demo__inputs, .pl-toolbar, .pl-noprint, .pl-toast { display: none !important; }
  .pl-printonly { display: block; }
  .pl-wrap { max-width: none; padding: 0; }
  .pl-section--tight { padding: 0; }
  .pl-demo { display: block; }
  .pl-demo__out { gap: 10px; }
  .pl-panel, .pl-kpis, .pl-two > * { break-inside: avoid; }
  .pl-panel { padding: 12px 14px; }
  .pl-tablewrap { overflow: visible; }
  .pl-table { min-width: 0; font-size: 9pt; }
  .pl-table th, .pl-table td { padding: 6px 8px; }
  .pl-kpi dd { font-size: 1.35rem; }
  .pl-two { grid-template-columns: 1fr 1fr; }
  .pl-chart { height: 200px; }
  .pl-print-break { break-before: page; }
}
