/* site.css — le site public www : fiches société rendues serveur. Complète /app.css (mêmes composants,
   mêmes rôles de /tokens.css) ; ne redéfinit rien de l'app. */
body.site { background:var(--surface-0); }
body.site #landing { display:block; }
/* Sélecteur de langue GROUPÉ (fondateur 02/10) : une pastille « 🌐 FR ▾ » → menu des 3 langues. Libère la place
   de « Tarifs » dans le header mobile. <details> natif ; fermeture au clic extérieur / Échap : base.html. */
.langdd { position:relative; }
.langdd summary { list-style:none; display:inline-flex; align-items:center; gap:5px; padding:6px 9px; border-radius:8px; cursor:pointer;
  border:1px solid var(--line); background:var(--surface-1); color:var(--text-primary); font-size:13px; font-weight:600; white-space:nowrap; user-select:none; }
.langdd summary::-webkit-details-marker { display:none; }
.langdd summary:hover, .langdd[open] summary { border-color:var(--ink); }
.langdd summary .ic { width:15px; height:15px; color:var(--text-secondary); }
.langdd summary .chev { font-size:9px; color:var(--text-secondary); transition:transform .15s; }
.langdd[open] summary .chev { transform:rotate(180deg); }
.langdd-menu { position:absolute; right:0; top:calc(100% + 6px); z-index:30; min-width:170px; padding:5px; border-radius:11px;
  background:var(--surface-1); border:1px solid var(--line); box-shadow:0 10px 30px color-mix(in srgb, var(--text-primary) 14%, transparent);
  display:flex; flex-direction:column; gap:2px; }
.langdd-menu a { display:flex; align-items:center; gap:10px; padding:9px 11px; border-radius:8px; font-size:14px; color:var(--text-primary); text-decoration:none; }
.langdd-menu a b { width:22px; font-size:11.5px; color:var(--text-secondary); letter-spacing:.03em; }
.langdd-menu a:hover { background:var(--surface-2); }
.langdd-menu a.on { background:var(--tint-ink); color:var(--ink); font-weight:600; }
.langdd-menu a.on b { color:var(--ink); }
@media (max-width:560px){
  /* « Tarifs » revient dans le header mobile (le sélecteur groupé lui fait la place) ; « FAQ » reste au pied. */
  body.site .lp-nav .lp-nav-link[href$="#lp-pricing"] { display:inline; padding:6px 2px; font-size:12.5px; }
  .langdd summary { padding:6px 7px; gap:4px; font-size:12px; }
  .langdd summary .ic { display:none; }
}
@media (max-width:370px){ body.site .lp-nav .lp-nav-link[href$="#lp-pricing"] { display:none; } }
.st-wrap { max-width:980px; margin:0 auto; padding:28px 20px 60px; }
.st-crumbs { font-size:13px; color:var(--text-secondary); margin-bottom:14px; } .st-crumbs a { color:var(--text-secondary); }
.st-head h1 { font-size:clamp(24px,3.6vw,34px); letter-spacing:-.02em; margin:0 0 6px; line-height:1.15; }
.st-head h1 .form { color:var(--text-secondary); font-weight:500; }
.st-meta { color:var(--text-secondary); font-size:14px; margin:0 0 20px; display:flex; flex-wrap:wrap; gap:4px 8px; }
.st-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.st-h2 { font-size:17px; letter-spacing:-.01em; margin:0 0 6px; }
.st-sub { color:var(--text-secondary); font-size:13.5px; margin:0 0 12px; line-height:1.5; }
.st-verdict .gauge { margin-bottom:34px; }
.st-comps { border-top:1px solid var(--line); padding-top:10px; }
.st-comps-t { font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-secondary); margin-bottom:6px; }
.st-comp { display:flex; justify-content:space-between; gap:12px; padding:6px 0; border-bottom:1px solid var(--line); font-size:13.5px; }
.st-comp:last-child { border-bottom:0; }
table.st-fin { min-width:0; }
table.st-fin th, table.st-fin td { padding:8px 10px; }
table.st-fin th:first-child, table.st-fin td:first-child { background:var(--surface-1); }
.st-reg-c { text-align:left; }
.st-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
@media (max-width:640px){ .st-two { grid-template-columns:1fr; } }
.st-fresh { font-size:12.5px; margin:12px 0 0; }
.st-cta { background:var(--ink); color:var(--text-on-ink); border-radius:var(--radius-card); padding:26px 24px; }
.st-cta .ac-kicker { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-on-ink); margin-bottom:4px; }
.st-cta h2 { margin:0 0 8px; font-size:22px; letter-spacing:-.02em; }
.st-cta p { margin:0 0 16px; color:color-mix(in srgb, var(--text-on-ink) 80%, transparent); line-height:1.55; }
.st-cta .lp-btn.primary { background:var(--accent); } .st-cta .lp-btn.primary:hover { background:var(--accent-text); }
.st-cta-note { margin-top:10px; font-size:12.5px; color:color-mix(in srgb, var(--text-on-ink) 70%, transparent); }
.st-search { margin-top:8px; }
.st-search .hm-search { max-width:none; margin:0; }
.st-search .hm-results { max-width:none; }
.st-nf { text-align:center; padding-top:60px; } .st-nf h1 { font-size:28px; }
/* étiquettes de registre et liens sources (fiche publique) */
.hm-reg-tag { font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; border-radius:999px; padding:1px 8px; border:1px solid; white-space:nowrap; }
.hm-reg-official  { color:var(--ink); border-color:color-mix(in srgb, var(--ink) 40%, transparent); background:var(--tint-ink); }
.hm-reg-computed  { color:var(--text-secondary); border-color:var(--line-strong); background:var(--surface-2); }
.hm-ex-src { display:flex; flex-wrap:wrap; gap:8px 10px; align-items:center; font-size:13px; color:var(--text-secondary); }
.hm-srclink { color:var(--ink); text-decoration:none; border:1px solid var(--line-strong); border-radius:999px; padding:5px 12px; font-weight:600; font-size:12.5px; }
.hm-srclink:hover { border-color:var(--ink); background:var(--tint-ink); }

/* ── guides (/guides/<slug>) : article de fond, typographie de lecture ── */
.gd .gd-head .lp-eyebrow { display:block; margin-bottom:6px; }
.gd .gd-head h1 { font-size:clamp(26px,3.8vw,38px); letter-spacing:-.02em; line-height:1.12; margin:6px 0 12px; max-width:820px; }
.gd-lead { font-size:18px; line-height:1.5; color:var(--text-secondary); max-width:760px; margin:0 0 8px; }
.gd-meta { font-size:13px; color:var(--text-secondary); margin:0 0 28px; }
.gd-body { max-width:760px; font-size:16.5px; line-height:1.65; }
.gd-body h2 { font-size:22px; letter-spacing:-.01em; margin:34px 0 10px; line-height:1.25; }
.gd-body p { margin:0 0 14px; }
.gd-body ul, .gd-body ol { padding-left:22px; margin:0 0 14px; }
.gd-body li { margin:6px 0; }
.gd-faq { max-width:760px; margin-top:38px; }
.gd-faq h2 { font-size:22px; margin:0 0 10px; }
.gd-faq details { border-top:1px solid var(--line); padding:10px 0; }
.gd-faq summary { cursor:pointer; font-weight:600; font-size:16px; }
.gd-faq p { margin:8px 0 0; color:var(--text-secondary); line-height:1.55; }
.gd-faq .faq-a { color:var(--text-secondary); line-height:1.55; }
.gd-faq .faq-a p { margin:8px 0 0; }
.gd-faq .faq-a ul { margin:6px 0 0; padding-left:22px; }
.gd-faq .faq-a li { margin:4px 0; }
.gd-faq .faq-a li::marker { color:var(--accent); }
/* FAQ : la question ouverte se détache des autres (fond teinté, filet ocre) ; bouton « copier le lien » au survol */
.gd-faq details, .gd-faq[id] { scroll-margin-top:84px; }   /* la nav est sticky (~64 px) : l'ancre ne passe pas dessous */
.gd-faq details { transition:background .12s; }
.gd-faq details[open] { background:var(--tint-accent); border-top-color:var(--accent); border-radius:var(--radius-ctl); padding:12px 14px; margin:2px -14px; }
.gd-faq details[open] summary { color:var(--accent-text); }
.gd-faq details[open] + details { border-top-color:transparent; }
.gd-faq summary { display:flex; align-items:center; gap:8px; list-style:none; }
.gd-faq summary::-webkit-details-marker { display:none; }
.gd-faq summary::before { content:'›'; flex:none; width:12px; color:var(--text-tertiary); transition:transform .12s; }
.gd-faq details[open] summary::before { transform:rotate(90deg); color:var(--accent-text); }
.faq-copy { flex:none; margin-left:auto; width:26px; height:26px; border:1px solid transparent; border-radius:var(--radius-ctl); background:none; color:var(--text-tertiary); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; opacity:0; transition:opacity .12s; }
.faq-copy .ic { width:15px; height:15px; }
.gd-faq summary:hover .faq-copy, .faq-copy:focus-visible, .faq-copy.done { opacity:1; }
.faq-copy:hover { color:var(--ink); border-color:var(--line-strong); background:var(--surface-1); }
.faq-copy.done { color:var(--status-ok); }
@media (hover:none) { .faq-copy { opacity:1; } }
.gd-with { max-width:760px; margin-top:40px; background:var(--surface-1); border:1px solid var(--line); border-radius:var(--radius-card); padding:26px 28px; }
.gd-with h2 { font-size:22px; margin:4px 0 8px; }
.gd-with > p { margin:0; color:var(--text-secondary); line-height:1.55; }
.gd-ctas { display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }
.gd-src { max-width:760px; font-size:12.5px; color:var(--text-secondary); margin:22px 0 0; }
.gd-more { max-width:760px; margin-top:34px; } .gd-more h2 { font-size:18px; margin:0 0 8px; } .gd-more ul { padding-left:20px; }
.gd-list { list-style:none; padding:0; margin:0; display:grid; gap:12px; max-width:820px; counter-reset:none; }
.gd-list a { display:flex; gap:16px; align-items:flex-start; background:var(--surface-1); border:1px solid var(--line); border-radius:var(--radius-card); padding:18px 20px; text-decoration:none; color:inherit; transition:border-color .12s, transform .12s; }
.gd-list a:hover { border-color:var(--ink); transform:translateY(-1px); }
.gd-n { flex:none; width:34px; height:34px; border-radius:10px; background:var(--tint-ink); color:var(--ink); font-weight:700; display:flex; align-items:center; justify-content:center; font-variant-numeric:tabular-nums; }
.gd-txt { flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; }
.gd-txt b { font-size:17px; line-height:1.3; }
.gd-d { color:var(--text-secondary); font-size:14px; line-height:1.45; }
.gd-m { font-size:12px; color:var(--text-secondary); margin-top:2px; }
.gd-arr { flex:none; color:var(--ink); font-size:18px; align-self:center; }
.gd .gd-head { display:block; background:none; border:0; padding:0; margin:0 0 6px; }

/* ── guides : composants (en bref, étapes, encadrés, repères, figures, checklist) ── */
.gd-brief { background:var(--tint-ink); border:1px solid color-mix(in srgb, var(--ink) 25%, transparent); border-radius:var(--radius-card); padding:16px 20px; margin:0 0 26px; }
.gd-brief-t { font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); margin-bottom:8px; }
.gd-brief ul { margin:0; padding-left:18px; } .gd-brief li { margin:4px 0; font-size:15.5px; }
.gd-step { display:flex; gap:16px; margin:22px 0; }
.gd-step-n { flex:none; width:36px; height:36px; border-radius:50%; background:var(--ink); color:var(--text-on-ink); font-weight:700; display:flex; align-items:center; justify-content:center; margin-top:2px; }
.gd-step-b { flex:1; min-width:0; border-left:2px solid var(--line); padding-left:18px; margin-left:-18px; padding-left:36px; }
.gd-step-b h3 { margin:6px 0 4px; font-size:19px; line-height:1.25; }
.gd-step-b p:last-child { margin-bottom:0; }
.gd-where { display:inline-block; font-size:12.5px; color:var(--accent-text); background:color-mix(in srgb, var(--accent) 12%, transparent); border-radius:999px; padding:3px 10px; margin:0 0 10px; }
.gd-call { border-left:4px solid var(--ink); background:var(--surface-1); border-radius:0 var(--radius-card) var(--radius-card) 0; padding:12px 16px; margin:18px 0; }
.gd-call b { display:block; font-size:14.5px; margin-bottom:4px; } .gd-call p { margin:0; font-size:15px; color:var(--text-secondary); line-height:1.5; }
.gd-call-warn { border-left-color:var(--status-serious); } .gd-call-warn b { color:var(--status-serious); }
.gd-call-ok { border-left-color:var(--status-ok); } .gd-call-ok b { color:var(--status-ok); }
.gd-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:10px; margin:14px 0 18px; }
.gd-kpi { background:var(--surface-1); border:1px solid var(--line); border-radius:12px; padding:12px 14px; }
.gd-kpi small { display:block; font-size:11.5px; color:var(--text-secondary); letter-spacing:.04em; text-transform:uppercase; }
.gd-kpi b { display:block; font-size:17px; margin:3px 0 4px; line-height:1.25; } .gd-kpi span { font-size:13.5px; color:var(--text-secondary); line-height:1.45; }
.gd-fig { margin:22px 0 26px; background:var(--surface-1); border:1px solid var(--line); border-radius:var(--radius-card); padding:16px 18px 10px; }
.gd-fig svg { width:100%; height:auto; display:block; font-family:inherit; }
.gd-fig figcaption { font-size:12.5px; color:var(--text-secondary); margin-top:8px; }
.gd-check { max-width:760px; margin-top:34px; background:var(--tint-ink); border-radius:var(--radius-card); padding:18px 22px; }
.gd-check h2 { font-size:20px; margin:0 0 10px; }
.gd-check ul { list-style:none; margin:0; padding:0; } .gd-check li { display:flex; gap:10px; align-items:flex-start; padding:6px 0; font-size:15.5px; }
.gd-box { flex:none; width:18px; height:18px; border:2px solid var(--ink); border-radius:4px; margin-top:3px; background:var(--surface-1); }
@media (max-width:760px){ .gd-step-b { padding-left:30px; } }

/* étiquette « HTVA » à côté de chaque prix affiché (décision fondateur 21/09 : prix hors TVA) */
.htva { display:inline-block; font-size:11px; font-weight:600; letter-spacing:.02em; color:var(--text-secondary, #6b7280); border:1px solid currentColor; border-radius:4px; padding:0 5px; line-height:16px; vertical-align:middle; opacity:.85; }

/* ── fiche publique v2 (docs/etude-seo-fiche-publique.md) ── */
.st-updated { font-size:12.5px; color:var(--text-secondary); margin:-12px 0 18px; }
.st-sector { font-size:14px; line-height:1.5; margin:0 0 10px; padding:10px 12px; background:var(--tint-ink); border-radius:var(--radius-ctl); }
.st-score { display:grid; grid-template-columns:200px minmax(0,1fr); gap:22px; align-items:center; }
.st-score-gauge { position:relative; }
.st-score-gauge svg { width:100%; display:block; filter:blur(1.5px); }
.st-lock { position:absolute; left:50%; top:58%; transform:translate(-50%,-50%); width:44px; height:44px; border-radius:50%; background:var(--ink); color:var(--text-on-ink); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:20px; }
.st-score .st-comps { list-style:none; margin:4px 0 14px; padding:8px 0 0; }
.st-score .st-comps li { display:flex; justify-content:space-between; gap:12px; padding:5px 0; border-bottom:1px solid var(--line); font-size:13.5px; }
.st-blur { color:var(--text-tertiary); filter:blur(3px); user-select:none; letter-spacing:2px; }
.st-score-cta { display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
.st-link { font-size:13.5px; color:var(--ink); }
@media (max-width:640px){ .st-score { grid-template-columns:1fr; } .st-score-gauge { max-width:220px; } }
.st-id { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:6px 18px; margin:6px 0 0; font-size:14px; }
.st-id dt { color:var(--text-secondary); } .st-id dd { margin:0; }
.st-filings td, .st-filings th { font-variant-numeric:tabular-nums; }
.st-faq details { border-top:1px solid var(--line); padding:8px 0; }
.st-faq summary { cursor:pointer; list-style:none; }
.st-faq summary::-webkit-details-marker { display:none; }
.st-faq summary h3 { display:inline; font-size:15px; font-weight:600; margin:0; }
.st-faq details p { margin:6px 0 2px; color:var(--text-secondary); line-height:1.55; font-size:14px; }

/* ── home v2 (étude SEO/acquisition 27/09) : recherche dans le hero, exemple vivant, capacités, pourquoi ── */
.hero-search { margin:26px auto 22px; text-align:left; }
.hero-search .hm-search { box-shadow:0 6px 24px color-mix(in srgb, var(--ink) 10%, transparent); }
.lp-statline { margin:26px 0 0; font-size:13.5px; color:var(--text-secondary); }
.ex .lp-h2, .ex .lp-lead, .caps .lp-h2, .why .lp-h2, .why .lp-lead { text-align:center; margin-left:auto; margin-right:auto; }
.ex-tabs { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin:22px 0 18px; }
.ex-tab { cursor:pointer; padding:8px 16px; border:1px solid var(--line-strong); border-radius:999px; font-weight:600; font-size:14px; background:var(--surface-1); transition:background .12s, color .12s; }
.ex-tab:hover { border-color:var(--ink); }
.ex-caption { text-align:center; max-width:720px; margin:16px auto 0; }
.cap-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-top:34px; }
.cap { background:var(--surface-1); border:1px solid var(--line); border-radius:var(--radius-card); padding:18px 20px 16px; }
.cap-shot { width:100%; height:auto; border-radius:10px; border:1px solid var(--line); margin-bottom:14px; display:block; }
.cap h3 { margin:0 0 6px; font-size:18px; } .cap p { margin:0; color:var(--text-secondary); line-height:1.55; }
@media (max-width:760px){ .cap-grid { grid-template-columns:1fr; } }
.why-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:30px; }
.why { background:var(--surface-1); border:1px solid var(--line); border-radius:var(--radius-card); padding:20px 22px; }
.why-n { width:32px; height:32px; border-radius:50%; background:var(--ink); color:var(--text-on-ink); display:flex; align-items:center; justify-content:center; font-weight:700; margin-bottom:10px; }
.why h3 { margin:0 0 6px; font-size:17px; } .why p { margin:0; color:var(--text-secondary); line-height:1.55; font-size:14.5px; }
@media (max-width:860px){ .why-grid { grid-template-columns:1fr; } }

/* ── home v2.1 (retours fondateur 28/09) : justification au survol, signaux, bouton fiche, zoom, beachhead ── */
.lp-trial-link { display:inline-block; color:var(--accent-text); font-weight:600; text-decoration:none; border-bottom:1px dashed currentColor; }
.lp-trial-link:hover { color:var(--ink); }
.ex-caption a { color:var(--ink); font-weight:600; }
.cap-zoom { position:relative; display:block; width:100%; padding:0; border:0; background:none; cursor:zoom-in; margin-bottom:14px; }
.cap-zoom .cap-shot { margin-bottom:0; transition:transform .15s, box-shadow .15s; }
.cap-zoom:hover .cap-shot { transform:translateY(-2px); box-shadow:0 8px 24px color-mix(in srgb, var(--ink) 14%, transparent); }
.cap-zi { position:absolute; right:10px; bottom:10px; width:30px; height:30px; border-radius:8px; background:var(--ink); color:var(--text-on-ink); display:flex; align-items:center; justify-content:center; font-size:16px; opacity:.85; }
.shot-dlg { max-width:min(1280px, 94vw); width:auto; border:0; border-radius:14px; padding:14px; background:var(--surface-1); box-shadow:0 20px 60px rgba(0,0,0,.35); }
.shot-dlg::backdrop { background:rgba(14,24,38,.72); }
.shot-dlg img { display:block; max-width:100%; max-height:80vh; border-radius:8px; }
.shot-dlg p { margin:10px 4px 0; font-weight:600; }
.shot-dlg form { position:absolute; right:10px; top:10px; margin:0; }
.shot-x { width:34px; height:34px; border-radius:50%; border:0; padding:0; display:grid; place-items:center; background:var(--ink); color:var(--text-on-ink); cursor:pointer; }
.shot-x svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; }   /* un tracé centré : le glyphe « × » tombait sous l'axe (fondateur 03/10) */
.bh-sec .lp-h2, .bh-sec .lp-lead { text-align:center; margin-left:auto; margin-right:auto; }
.bh-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:30px; }
.bh { background:var(--surface-1); border:1px solid var(--line); border-top:4px solid var(--ink); border-radius:var(--radius-card); padding:20px 22px; }
.bh-k { font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-text); }
.bh h3 { margin:6px 0 6px; font-size:21px; letter-spacing:-.01em; }
.bh p { margin:0 0 10px; color:var(--text-secondary); line-height:1.5; font-size:14.5px; }
.bh ul { margin:0; padding-left:18px; } .bh li { margin:5px 0; font-size:14.5px; } .bh li::marker { color:var(--accent); }
.bh-proof { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:26px; }
.bh-proof div { text-align:center; padding:14px 10px; }
.bh-proof b { display:block; font-size:28px; letter-spacing:-.02em; color:var(--ink); }
.bh-proof span { font-size:13px; color:var(--text-secondary); line-height:1.4; }
.bh-cta { text-align:center; margin-top:22px; }
@media (max-width:860px){ .bh-grid { grid-template-columns:1fr; } .bh-proof { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; } .bh-proof b { font-size:22px; } .bh-proof span { font-size:12px; } }
/* recherche : retour immédiat (la liste se déplie, un chargement tourne, puis les résultats) */
.hm-results { transition:opacity .15s; }
.hm-res-loading { display:flex; align-items:center; gap:10px; padding:14px 16px; color:var(--text-secondary); font-size:14px; }
.hm-spin { width:16px; height:16px; border:2px solid var(--line-strong); border-top-color:var(--ink); border-radius:50%; animation:spin .7s linear infinite; flex:none; }
.hm-results.open { animation:hmOpen .18s ease-out both; }
@keyframes hmOpen { from { opacity:0; transform:translateY(-4px); } }
.bh-cta a + a { margin-left:10px; }

/* ── vitrine v3 (fondateur 28/09 soir) : 3 colonnes lisibles, « Général », sélection persistante, i, secteur ── */

/* ── fiche publique v2.1 : micro-descriptif + aperçus de la fiche complète (fondateur 28/09) ── */
.st-intro { font-size:15.5px; line-height:1.6; color:var(--text-primary); max-width:820px; margin:4px 0 14px; }
.st-previews { margin-top:4px; }
.st-prev-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:12px; margin-top:10px; }
.st-prev { display:flex; flex-direction:column; align-items:flex-start; gap:4px; text-align:left; padding:10px 10px 12px; margin:0;
  background:var(--surface-1); border:1px solid var(--line); border-radius:var(--radius-card); cursor:zoom-in; transition:border-color .12s, transform .12s; font:inherit; color:inherit; }
.st-prev:hover { border-color:var(--ink); transform:translateY(-2px); }
.st-prev-img { position:relative; display:block; width:100%; aspect-ratio:16/10; overflow:hidden; border-radius:8px; background:var(--surface-2); margin-bottom:6px; }
.st-prev-img img { width:100%; height:100%; object-fit:cover; object-position:top left; filter:blur(3px) saturate(.8); transform:scale(1.06); transition:filter .2s; }
.st-prev:hover .st-prev-img img { filter:blur(1.5px) saturate(.9); }
.st-prev-lock { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:38px; height:38px; border-radius:50%; background:var(--ink); display:flex; align-items:center; justify-content:center; font-size:16px; box-shadow:0 2px 10px rgba(0,0,0,.25); }
.st-prev-t { font-weight:700; font-size:14.5px; }
.st-prev-d { font-size:13px; color:var(--text-secondary); line-height:1.4; }
.st-prev-see { font-size:12.5px; font-weight:600; color:var(--ink); margin-top:auto; padding-top:4px; }
.shot-cta { margin:12px 4px 2px; }

/* ── vitrine v4 (fondateur 28/09) : surlignage net, une seule valeur mise en avant, lignes empilées ── */
/* barre « composition » : chaque segment porte la teinte de son statut, même vide (liquidité à 0 = rouge pâle) */

/* ══ Fiche publique v3 (fondateur 28/09 : lisible, « comme si c'était la fiche ») ══ */
.st-wrap.sf { max-width:1180px; }
.sf-card { padding:22px 24px; } .sf-card .st-h2 { font-size:18px; margin-bottom:14px; }
.sf-card-h { display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap; }
.sf-src { font-size:12.5px; color:var(--text-secondary); }
.sf-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px 20px; margin:0; }
.sf-grid div.wide { grid-column:1 / -1; }
.sf-grid dt { font-size:12.5px; color:var(--text-secondary); margin-bottom:3px; }
.sf-grid dd { margin:0; font-size:15px; font-weight:600; color:var(--text-primary); }
.sf-grid dd .muted { font-weight:400; }
.sf-intro { margin:18px 0 0; padding-top:16px; border-top:1px solid var(--line); font-size:14.5px; line-height:1.6; color:var(--text-secondary); }
.sf-kpis { display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:10px; }
.sf-kpi { background:var(--surface-2); border-radius:12px; padding:14px 16px; display:flex; flex-direction:column; gap:4px; }
.sf-kpi-l { font-size:12.5px; color:var(--text-secondary); }
.sf-kpi b { font-size:24px; letter-spacing:-.02em; color:var(--ink); font-variant-numeric:tabular-nums; }
.sf-kpi b.neg { color:var(--status-critical); }
.sf-solv { margin-top:16px; padding:14px 16px; border:1px solid var(--line); border-radius:12px; }
.sf-solv-h { display:flex; justify-content:space-between; font-size:14px; } .sf-solv-h b { font-size:18px; color:var(--ink); }
.sf-solv-bar { position:relative; height:10px; background:var(--surface-2); border-radius:99px; margin:10px 0 8px; }
.sf-solv-bar i { position:absolute; inset:0 auto 0 0; border-radius:99px; background:var(--ink); animation:exBar .8s ease-out both; }
.sf-solv-med { position:absolute; top:-5px; bottom:-5px; width:2px; margin-left:-1px; background:var(--accent); }
.sf-solv-l { font-size:12.5px; color:var(--text-secondary); }
.sf-foot { font-size:12.5px; color:var(--text-secondary); margin:14px 0 0; }
.sf-more { display:inline-block; margin-top:10px; font-size:14px; font-weight:600; color:var(--ink); }
.sf-two { display:grid; grid-template-columns:1fr 1fr; gap:24px; } .sf-two p { margin:0 0 6px; line-height:1.5; }
.sf-filings { list-style:none; margin:0; padding:0; } .sf-filings li { display:flex; justify-content:space-between; gap:10px; padding:7px 0; border-bottom:1px solid var(--line); font-size:14px; }
.sf-filings li:last-child { border-bottom:0; }
/* colonne PRO : cartes verrouillées à la forme de la fiche */
/* bande de grandes captures */
.sf .st-faq, .sf .st-cta { margin-top:18px; }
.sf-sources { display:flex; flex-wrap:wrap; gap:6px 14px; font-size:13px; color:var(--text-secondary); margin:18px 0 0; }
.sf-sources a { color:var(--ink); }
@media (max-width:640px){ .sf-grid { grid-template-columns:1fr 1fr; } .sf-two { grid-template-columns:1fr; } }
/* ── Fiche publique v5 (fondateur 03/10) : vrais panneaux d'onglets + modale « fonctionnalité ».
   Zones fermées = FORMES VIDES (.sfx-sk) : jamais une vraie valeur floutée (le HTML est lu par les robots). ── */
.sf-panel { margin-top:16px; scroll-margin-top:calc(var(--navh) + 12px); }
.sf-tabbed .sf-panel { display:none; } .sf-tabbed .sf-panel.on { display:block; }
.sf-panel > .sc-card { margin:0; }
.sfx-h3 { font-size:15px; margin:22px 0 8px; }
.sfx-sk { display:inline-block; height:10px; width:64px; border-radius:99px; vertical-align:middle;
  background:linear-gradient(90deg, var(--surface-2), color-mix(in srgb, var(--line-strong) 60%, var(--surface-2)), var(--surface-2)); }
.sfx-sk.w0 { width:140px; } .sfx-sk.w1 { width:110px; } .sfx-sk.w2 { width:160px; } .sfx-sk.sm { width:70px; opacity:.7; }
[data-up] { cursor:pointer; }
[data-up] .sc-lk { width:14px; height:14px; fill:none; stroke:var(--text-secondary); stroke-width:2; flex:none; }
.sfx-tablewrap { overflow-x:auto; }
.sfx-table { width:100%; min-width:0; border-collapse:collapse; font-size:14px; }
.sfx-table th, .sfx-table td { padding:9px 10px; border-bottom:1px solid var(--line); text-align:right; white-space:nowrap; }
.sfx-table th:first-child { text-align:left; font-weight:500; color:var(--text-secondary); background:none; position:static; }
.sfx-table thead th { font-size:12.5px; font-weight:600; color:var(--text-secondary); }
.sfx-table td.cur { font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; } .sfx-table td.neg { color:var(--status-critical); }
.sfx-table th.cur { color:var(--ink); }
.sfx-table td.lk a { display:inline-block; padding:2px 0; }
.sfx-table tr:hover td.lk .sfx-sk { background:var(--surface-2); outline:1px dashed var(--line-strong); }
.sfx-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.sfx-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:24px; align-items:start; }
.sfx-ratios, .sfx-people, .sfx-acts { list-style:none; margin:0; padding:0; }
.sfx-ratios li { border-bottom:1px solid var(--line); }
.sfx-ratios li.open { display:flex; gap:10px; align-items:baseline; padding:10px 4px; flex-wrap:wrap; }
.sfx-ratios li.open b { color:var(--ink); margin-left:auto; } .sfx-ratios li.open .muted { width:100%; font-size:12.5px; }
.sfx-ratios a, .sfx-people a, .sfx-acts a { display:flex; align-items:center; gap:12px; padding:10px 4px; color:inherit; text-decoration:none; border-radius:8px; }
.sfx-ratios a span:first-child { flex:1; }
.sfx-ratios a:hover, .sfx-people a:hover, .sfx-acts a:hover { background:var(--surface-2); }
.sfx-people li, .sfx-acts li { border-bottom:1px solid var(--line); }
.sfx-av { width:30px; height:30px; border-radius:50%; flex:none; background:var(--surface-2); border:1px solid var(--line); }
.sfx-people .sfx-sk.sm { margin-left:auto; }
.sfx-acts .sfx-date { flex:none; width:96px; font-size:13px; color:var(--text-secondary); font-variant-numeric:tabular-nums; }
.sfx-acts .sfx-kind { font-weight:600; } .sfx-acts .sfx-sk { margin-left:auto; }
.sfx-ctl { display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-weight:600; color:var(--ink); }
.sfx-shot { display:block; width:100%; padding:8px; border:1px solid var(--line); border-radius:var(--radius-card); background:var(--surface-1);
  cursor:zoom-in; font:inherit; color:var(--text-secondary); text-align:left; transition:border-color .12s, transform .12s; }
.sfx-shot:hover { border-color:var(--line-strong); transform:translateY(-1px); }
.sfx-shot img { display:block; width:100%; height:auto; max-height:300px; object-fit:cover; object-position:top left; border-radius:8px; }
.sfx-shot span { display:block; font-size:12.5px; margin:8px 2px 0; }
.sc-card [data-up]:hover { background:var(--surface-2); }
/* modale */
.up-dlg { --updpad:26px; width:min(560px, 94vw); max-height:92vh; max-height:calc(100dvh - 24px); overflow:auto; overscroll-behavior:contain; border:0; border-radius:16px; padding:var(--updpad) 26px 20px;
  background:var(--surface-1); color:var(--text-primary); box-shadow:0 20px 60px rgba(0,0,0,.35); }
.up-dlg::backdrop { background:rgba(14,24,38,.62); }
.up-dlg form { position:absolute; right:12px; top:12px; margin:0; }
.up-dlg h2, .up-dlg .upd-title { font-weight:700; font-size:21px; letter-spacing:-.01em; line-height:1.25; margin:10px 34px 8px 0; }
.upd-lvl { display:inline-block; font-size:12px; font-weight:700; letter-spacing:.02em; padding:4px 10px; border-radius:99px; }
.upd-lvl.free { background:color-mix(in srgb, var(--status-ok) 14%, transparent); color:var(--status-ok); }
.upd-lvl.pro { background:color-mix(in srgb, var(--accent) 16%, transparent); color:var(--ink); }
.upd-d { margin:0 0 14px; line-height:1.55; color:var(--text-secondary); }
.upd-fig { display:block; width:100%; padding:6px; margin:0 0 16px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2);
  cursor:zoom-in; font:inherit; color:var(--text-secondary); text-align:left; }
.upd-fig img { display:block; width:100%; max-height:220px; object-fit:cover; object-position:top left; border-radius:8px; }
.upd-fig span { display:block; font-size:12px; margin:6px 2px 0; }
.upd-ctas { display:flex; flex-direction:column; gap:8px; }
.upd-ctas.free-first .upd-free { order:-1; }
.upd-ctas .lp-btn { justify-content:center; text-align:center; width:100%; }
.upd-note { text-align:center; font-size:12.5px; color:var(--text-secondary); margin:10px 0 4px; }
.upd-plans { border-top:1px solid var(--line); margin-top:12px; padding-top:10px; }
.upd-plans summary { cursor:pointer; font-weight:600; font-size:14px; }
.upd-plans .lp-cmp-wrap { margin-top:10px; }
.upd-plans .lp-cmp { font-size:12.5px; }
/* Tableau des formules (accueil + modale) : l'en-tête Free / Pro / Entreprise reste visible quand on descend (fondateur
   03/10). `overflow-x:clip` et non `auto` : un conteneur défilant casserait le `sticky` — le tableau tient à 390 px
   (table-layout:fixed), rien n'est rogné. Fond OPAQUE : les lignes passent dessous. */
body.site .lp-cmp-wrap { overflow-x:clip; }
body.site .lp-cmp thead th { position:sticky; top:var(--navh); z-index:2; background:var(--surface-0); }
body.site .lp-cmp thead th.pro { background:color-mix(in srgb, var(--accent) 7%, var(--surface-0)); }
html:has(.lp-secnav) body.site .lp-cmp thead th { top:calc(var(--navh) + var(--secnavh, 48px)); }   /* accueil : sous la barre des sections */
body.site .lp-cmp tbody th:first-child, body.site .lp-cmp td:first-child { position:static; }   /* la colonne collante GLOBALE (app.css) passait au-dessus de l'en-tête */
body.site .up-dlg .lp-cmp thead th { top:calc(-1 * var(--updpad)); background:var(--surface-1); }   /* collé au BORD de la modale, marge comprise */
body.site .up-dlg .lp-cmp thead th.pro { background:color-mix(in srgb, var(--accent) 7%, var(--surface-1)); }
.up-dlg .lp-cmp thead th:first-child { width:30%; }
.up-dlg .lp-cmp th, .up-dlg .lp-cmp td { padding:8px 5px; overflow-wrap:normal; word-break:normal; hyphens:manual; }
.up-dlg .lp-cmp thead th { font-size:12px; }
@media (max-width:760px){ .sfx-split { grid-template-columns:1fr; } .sfx-acts .sfx-date { width:84px; } .sfx-acts .sfx-sk { display:none; }
  .up-dlg { --updpad:22px; padding:var(--updpad) 18px 16px; } }
@keyframes exBar { from { width:0; } }
/* onglets de la vitrine : une carte du score (scorecard.js) par société */

/* ── HUBS SEO secteur / commune (pubsite hub_*.html) ── */
.hb .sf-card { margin-bottom:16px; }
.hb-hero { margin:4px 0 18px; }
.hb-hero h1 { font-size:30px; letter-spacing:-.02em; margin:4px 0 8px; line-height:1.2; }
.hb-kicker { font-size:12.5px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--accent); }
.hb-lead { font-size:15.5px; line-height:1.55; color:var(--text-secondary); max-width:780px; margin:0; }
.hb-switch { margin:10px 0 0; font-size:14px; }
.hb-kpis { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:10px; margin-bottom:16px; }
.hb-kpis .sf-kpi { background:var(--surface); border:1px solid var(--border); }
.hb-table-wrap { overflow-x:auto; }
.hb-table { width:100%; min-width:0; border-collapse:collapse; font-size:14px; }   /* le table global de l'app impose min-width:640px */
.hb-table th { text-align:left; font-size:12px; font-weight:600; color:var(--text-secondary); padding:8px 10px; border-bottom:1px solid var(--border); white-space:nowrap; }
.hb-table td { padding:9px 10px; border-bottom:1px solid var(--border); vertical-align:top; }
.hb-table tr:last-child td { border-bottom:0; }
.hb-table .r { text-align:right; } .hb-table .num { font-variant-numeric:tabular-nums; white-space:nowrap; }
.hb-table td.b { font-weight:700; color:var(--ink); } .hb-table td.neg { color:var(--status-critical); }
.hb-table td a { font-weight:600; }
.hb-two { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.hb-two .sf-card { margin-bottom:16px; }
.hb-bars { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px; }
.hb-bars li { display:grid; grid-template-columns:150px 1fr 64px; align-items:center; gap:10px; font-size:13.5px; }
.hb-bars.wide li { grid-template-columns:minmax(180px,340px) 1fr 64px; }
.hb-bars li > span, .hb-bars li > a { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hb-bars li i { display:block; height:8px; border-radius:4px; background:var(--accent); opacity:.75; min-width:3px; }
.hb-bars li b { text-align:right; font-variant-numeric:tabular-nums; font-weight:600; }
.hb-links { list-style:none; margin:0; padding:0; display:grid; gap:4px 24px; }
.hb-links.cols { grid-template-columns:repeat(2,minmax(0,1fr)); }
.hb-links.cols3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.hb-links li { display:flex; justify-content:space-between; gap:10px; font-size:14px; padding:5px 0; border-bottom:1px dashed var(--border); }
.hb-links li a { overflow:hidden; text-overflow:ellipsis; }
.hb-links li .muted { font-variant-numeric:tabular-nums; white-space:nowrap; }
.hb-index { display:flex; flex-direction:column; gap:8px; }
.hb-sec { padding:0; }
.hb-sec summary { display:flex; justify-content:space-between; gap:12px; padding:12px 18px; cursor:pointer; font-size:15px; }
.hb-sec summary a { font-weight:600; }
.hb-sec .hb-links { padding:0 18px 14px 32px; }
.hb-provnav { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; }
.hb-provnav a { font-size:13px; padding:5px 11px; border-radius:999px; background:var(--surface-2); color:var(--text-primary); text-decoration:none; }
.hb-method { font-size:12.5px; line-height:1.5; margin:18px 0 0; }
.sf-hubs { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.sf-hubs a { font-size:13px; padding:5px 11px; border-radius:999px; background:var(--surface-2); color:var(--text-primary); text-decoration:none; }
.sf-hubs a:hover { background:var(--accent-soft, var(--surface-2)); }
@media (max-width:760px){
  .hb-two { grid-template-columns:1fr; } .hb-links.cols, .hb-links.cols3 { grid-template-columns:1fr; }
  .hb-bars li, .hb-bars.wide li { grid-template-columns:minmax(0,1fr) 80px 56px; } .hb-hero h1 { font-size:24px; }
}
.hb-table th, .hb-table td { text-align:left; background:none; }
.hb-table th.r, .hb-table td.r { text-align:right; }
.hb-table td.hb-sub { color:var(--text-secondary); font-size:13px; }

/* Ancres (#sf-info, #sf-faq…) : la nav du site est collante (~64 px) — le titre ne doit pas passer dessous */
html { scroll-padding-top:84px; }
/* classements : onglets, colonne triée, nom sur 2 lignes (siège/secteur dessous) — le td global de l'app est nowrap */
.hb-rtabs { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:0 0 12px; font-size:13px; }
.hb-rtabs a { padding:5px 12px; border-radius:999px; border:1px solid var(--border); color:var(--text-primary); text-decoration:none; font-weight:600; }
.hb-rtabs a.on { background:var(--ink); color:var(--text-on-ink, #fff); border-color:var(--ink); }
.hb-table td.hb-name { white-space:normal; min-width:200px; }
.hb-table td.hb-name > a { display:block; }
.hb-table td.hb-name .hb-sub { display:block; margin-top:2px; font-size:12.5px; color:var(--text-secondary); font-weight:400; }
.hb-table td.hb-name .hb-sub a { font-weight:400; color:var(--text-secondary); }
.hb-table th.on { color:var(--ink); }
.hb-back { margin:0 0 16px; font-size:14px; }
@media (max-width:640px){ .hb-table .hb-opt { display:none; } .hb-table td.hb-name { min-width:140px; } }
/* <header class="hb-hero"> hérite du `header` de l'app (flex, fond, bordure, h1 nowrap) : on neutralise */
header.hb-hero { display:block; padding:0; border:0; background:none; }
header.hb-hero > h1 { display:block; white-space:normal; cursor:auto; font-size:clamp(24px,3.4vw,32px); }
@media (max-width:640px){ .hb-table td.hb-name { min-width:0; } }
/* accueil : bloc EXPLORER (villes, secteurs, classements, guides) */
.ex-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; margin-top:22px; text-align:left; align-items:start; }
.ex-col h3 { font-size:14px; letter-spacing:.04em; text-transform:uppercase; color:var(--text-secondary); margin:0 0 10px; }
/* rubriques = <details> (fondateur 02/10) : ouvertes et inertes sur grand écran, repliables sur mobile */
.ex-col summary { list-style:none; } .ex-col summary::-webkit-details-marker { display:none; }
@media (min-width:641px){ .ex-col summary { pointer-events:none; } }
.ex-col ul { list-style:none; margin:0 0 10px; padding:0; display:grid; gap:6px; }
.ex-col li a { font-size:14.5px; color:var(--ink); text-decoration:none; } .ex-col li a:hover { text-decoration:underline; }
.ex-more { font-size:13.5px; font-weight:600; }
@media (max-width:900px){ .ex-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:640px){
  /* Mobile : 4 lignes repliables (≈ 1 800 px de liens bruts auparavant) ; les villes en pastilles. */
  .ex-grid { grid-template-columns:1fr; gap:10px; }
  .ex-col { background:var(--surface-1); border:1px solid var(--line); border-radius:12px; padding:0 16px; }
  .ex-col summary { display:flex; align-items:center; justify-content:space-between; padding:15px 0; cursor:pointer; }
  .ex-col summary::after { content:'▾'; color:var(--text-secondary); font-size:12px; transition:transform .15s; }
  .ex-col[open] summary::after { transform:rotate(180deg); }
  .ex-col h3 { margin:0; color:var(--text-primary); font-size:13px; }
  .ex-col ul { gap:0; margin:0 0 6px; }
  .ex-col li a { display:block; padding:9px 0; border-top:1px solid var(--line); }
  .ex-col:first-child ul { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:12px; }
  .ex-col:first-child li a { border:1px solid var(--line); border-radius:999px; padding:6px 12px; font-size:13.5px; background:var(--surface-0); }
  .ex-more { display:inline-block; padding:4px 0 16px; }
}
/* ── Barre de sections de l'accueil (fondateur 02/10) : collée sous le header ; .on = section en cours ── */
:root { --navh:58px; }
.lp-secnav { position:sticky; top:var(--navh); z-index:19; background:color-mix(in srgb, var(--surface-1) 92%, transparent);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
.lp-secnav-in { position:relative; display:flex; justify-content:center; gap:4px; max-width:1100px; margin:0 auto; padding:8px 16px;
  overflow-x:auto; scrollbar-width:none; }
.lp-secnav-in::-webkit-scrollbar { display:none; }
.lp-secnav a { flex:none; padding:6px 13px; border-radius:999px; font-size:13.5px; font-weight:550; color:var(--text-secondary);
  text-decoration:none; white-space:nowrap; border:1px solid transparent; transition:background-color .15s, color .15s; }
@media (hover:hover){ .lp-secnav a:hover { color:var(--text-primary); background:var(--surface-2); } }
.lp-secnav a.on { color:var(--ink); background:var(--tint-ink); border-color:color-mix(in srgb, var(--ink) 22%, transparent); }
html:has(.lp-secnav) { scroll-padding-top:calc(var(--navh) + 48px); }   /* une ancre s'arrête SOUS header + barre */
@media (max-width:640px){
  .lp-secnav-in { justify-content:flex-start; padding:7px 12px; }
  .lp-secnav a { font-size:13px; padding:6px 11px; }
}
.lk-search { margin:0 0 18px; } .lk-ex { font-size:13.5px; margin-top:10px; } .lk-ex a { font-weight:600; }
.lk-list { margin:0; padding-left:18px; display:grid; gap:6px; font-size:14.5px; line-height:1.5; }
.lk-fmt { margin-top:12px; }
/* lexique : la formule en codes BNB */
.gl-formula { font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:14px; line-height:1.7; background:var(--surface-2); border-radius:10px; padding:12px 16px; }
.gl-formula .main { font-weight:700; color:var(--ink); }
/* Pied de page du site (fondateur 02/10) : marque · Produit · Explorer · Légal · Contact */
body.site .lp-foot-grid { grid-template-columns:1.5fr 1fr 1.1fr .9fr 1.2fr; }
@media (max-width:780px){ body.site .lp-foot-grid { grid-template-columns:1fr 1fr; } }
/* Accueil : « Tarifs » est déjà dans la barre de sections → pas de doublon dans le header */
body.site[data-page="home"] .lp-nav .lp-nav-link[href$="#lp-pricing"] { display:none; }
/* Accueil allégé (fondateur 02/10) : fonctionnalités = icône + titre + une phrase (plus de captures) ; « Pour qui »
   = tuiles icône + profil + question ; métiers = question + puces. Moins de texte courant, même ton. */
body.site .cap { display:flex; gap:16px; align-items:flex-start; padding:20px 22px; }
body.site .cap .lp-ic { flex:none; }
body.site .cap h3 { font-size:17px; }
body.site .cap p { font-size:14.5px; }
body.site .lp-who { margin-top:30px; }
body.site .lp-who .lp-step { padding:20px 22px; display:grid; grid-template-columns:auto 1fr; column-gap:14px; align-items:center; }
body.site .lp-who .lp-step .lp-ic { grid-row:span 2; }
body.site .lp-who .lp-step h3 { margin:2px 0 0; font-size:16.5px; line-height:1.35; }
body.site .bh h3 { margin-bottom:12px; }
@media (max-width:640px){
  body.site .cap { padding:16px; gap:13px; } body.site .cap .lp-ic { width:40px; height:40px; }
  body.site .cap-grid { gap:12px; margin-top:24px; }
  body.site .lp-who { gap:12px; } body.site .lp-who .lp-step { padding:16px; }
  body.site .bh-grid { gap:12px; }
}
/* ── Fiche publique v4 (fondateur 02/10) : le gabarit de la fiche de l'app (.topline, .pl-bar, .ftabs, carte du
   score de scorecard.css), en teasing. Ici seulement l'adaptation au rendu serveur (liens au lieu de boutons). ── */
.sf .sf-head { margin:0 0 12px; }
.sf-head h1 { margin:0 0 4px; font-size:28px; letter-spacing:-.02em; line-height:1.2; }
.sf-head h1 .form { color:var(--text-secondary); font-weight:500; }
.sf-head h1 .badge { vertical-align:5px; margin-left:4px; }
.sf-head .h1row { margin:0 0 4px; }
.sf-head .h1row h1 { display:inline; margin:0; }
.sf-head .h1row .badge { vertical-align:5px; margin-left:4px; }
.sf-head .meta .num { font-variant-numeric:tabular-nums; }
.sf-head .right a { text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.sf .pl-bar { margin:0 0 12px; }
.sf-ftabs { top:calc(var(--navh) + 6px); }
.sf-ftabs a.ftab-btn { text-decoration:none; }
.sf-tlock { display:inline-flex; align-items:center; } .sf-tlock .ic { width:11px; height:11px; }
.sf-synth { margin-bottom:16px; scroll-margin-top:calc(var(--navh) + 70px); }
.sf-synth .sc-note, .sf-synth .sc-rows li { cursor:default; }
.sf-synth .sc-rows li:hover { background:none; } .sf-synth .sc-rows li.sel:hover { background:var(--surface-1); }
.sf-gauge { position:relative; } .sf-gauge > .sc-lk { position:absolute; left:50%; bottom:6px; width:30px; height:30px; transform:translateX(-50%); }
.sf-note-l { font-size:13px; color:var(--text-secondary); margin:10px 0 0; line-height:1.45; }
.sf-synth .sc-sub .sc-bar { background:linear-gradient(90deg, var(--line), var(--surface-2), var(--line)); opacity:.7; }
.sf-synth .sc-st .sc-lk { display:inline-block; vertical-align:-2px; }
.sf-hint { font-style:normal; }
.sf-synth .sc-detail { min-height:0; }
.sf-synth .sc-detail .st-h2 { font-size:17px; margin:0 0 12px; }
.sf-synth .sf-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
.sf-synth .sf-kpi { padding:11px 13px; } .sf-synth .sf-kpi b { font-size:20px; }
.sf-below { display:grid; gap:16px; } .sf-below > .card { margin:0; }
#sf-info, #sf-filings, #sf-people, #sf-figures { scroll-margin-top:calc(var(--navh) + 70px); }
@media (max-width:640px){
  .sf-head .topline { flex-direction:column; align-items:stretch; }
  .sf-head .right { margin-left:0; }
  .sf-head h1 { font-size:24px; }
  .sf-synth { grid-template-columns:1fr; }
  .sf-synth .sc-col + .sc-col { border-left:0; border-top:1px solid var(--line); }
}
/* les actions de l'en-tête sont des LIENS (vers l'inscription) : on leur rend le gabarit du `button` de l'app */
.sf-head .right .askbtn, .sf-head .right .listbtn { border-radius:var(--radius-ctl); padding:8px 15px; font-size:13px; line-height:1.2; cursor:pointer; }
.sf-head .right .askbtn .ai-mark { --sz:18px; }
/* la fiche reprend la largeur de l'app (la carte du score a besoin de ses trois colonnes) */
.st-wrap.sf { max-width:1240px; }
.sf-synth.sf-nonote { grid-template-columns:minmax(0,.8fr) minmax(0,2fr); }
.sf-noletter { color:var(--text-secondary); font-size:40px; animation:none; }
@media (max-width:640px){ .sf-synth.sf-nonote { grid-template-columns:1fr; } }
/* ── Premier écran v2 (fondateur 02/10 : « simple, net, clair, précis ») : preuve · titre · une phrase · recherche
   (action d'essai, encre) · compte (action d'engagement, OCRE — distincte) · une ligne de réassurance. ── */
.hx { padding:64px 24px 56px; }
.hx-proof { display:inline-flex; align-items:center; gap:8px; margin:0 0 22px; padding:6px 14px; border-radius:999px;
  font-size:13px; font-weight:600; color:var(--text-primary); background:var(--surface-0); border:1px solid var(--line);
  font-variant-numeric:tabular-nums; }
.hx-proof i { width:7px; height:7px; border-radius:50%; background:var(--status-ok); box-shadow:0 0 0 3px color-mix(in srgb, var(--status-ok) 20%, transparent); }
.hx h1 { margin-bottom:14px; }
.hx .lp-sub { max-width:600px; margin:0 auto; font-size:clamp(16px,1.9vw,19px); }
.hx .hero-search { margin:30px auto 0; max-width:640px; }
.hx-try { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px 8px; margin-top:12px; font-size:13px; color:var(--text-secondary); }
.hx-try a { color:var(--ink); text-decoration:none; padding:3px 10px; border-radius:999px; border:1px solid var(--line); background:var(--surface-0); font-weight:550; }
.hx-try a:hover { border-color:var(--ink); }
.hx-cta { display:flex; flex-direction:column; align-items:center; gap:12px; margin-top:30px; }
.hx-signup { background:var(--accent); color:var(--text-on-ink); border:0; box-shadow:0 6px 18px -8px color-mix(in srgb, var(--accent) 70%, transparent); }
.hx-signup:hover { background:var(--accent-text); color:var(--text-on-ink); }
.hx-reassure { list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:4px 16px; margin:0; padding:0; font-size:13px; color:var(--text-secondary); }
.hx-reassure li::before { content:'✓'; color:var(--status-ok); font-weight:700; margin-right:6px; }
.hx-reassure a { color:inherit; text-decoration:none; border-bottom:1px dashed currentColor; }
.hx-reassure a:hover { color:var(--ink); }
@media (max-width:640px){
  .hx { padding:34px 18px 34px; }
  .hx-proof { font-size:12px; padding:5px 12px; margin-bottom:18px; }
  .hx .hero-search { margin-top:22px; }
  .hx-cta { margin-top:22px; }
  .hx-signup { width:100%; justify-content:center; }
}
/* Barre de sections : « Tarifs » mis en avant (fondateur 02/10) */
.lp-secnav a.sn-price { color:var(--accent-text); font-weight:700; border-color:color-mix(in srgb, var(--accent) 45%, transparent); }
.lp-secnav a.sn-price.on { background:color-mix(in srgb, var(--accent) 14%, var(--surface-1)); color:var(--accent-text); border-color:var(--accent); }
/* Carte Free : un vrai cadre (fondateur 02/10 : « pas de cadre, trop discret ») */
body.site .lp-price-card.free { background:var(--surface-1); border-style:solid; }
.hx-short { display:none; }
@media (max-width:640px){
  .hx-long { display:none; } .hx-short { display:inline; }
  .hx-try { flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; scrollbar-width:none; margin:12px -18px 0; padding:0 18px; }
  .hx-try::-webkit-scrollbar { display:none; }
  .hx-try a, .hx-try span { flex:none; white-space:nowrap; }
}
/* « Tarifs » toujours visible : collé au bord droit de la barre quand elle défile (mobile) */
.lp-secnav a.sn-price { position:sticky; right:0; background:var(--surface-1); box-shadow:-14px 0 12px -4px var(--surface-1); }
/* Tarifs : à qui s'adresse chaque formule, sous son nom (fondateur 02/10 : « structuration logique ») */
.pc-for { font-size:14px; font-weight:600; color:var(--text-primary); margin:2px 0 10px; }
body.site .lp-price-card.free .pc-price { color:var(--text-primary); }

/* ── Vitrine en SLIDER (fondateur 02/10) : onglets nom + lettre ; cartes en défilement aimanté, la suivante dépasse ── */
.ex-tab { display:inline-flex; align-items:center; gap:8px; font:inherit; font-weight:600; font-size:14px; color:var(--text-primary); }
.ex-tab.on { background:var(--ink); color:var(--text-on-ink); border-color:var(--ink); }
.ex-g { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:6px; font-size:12.5px; font-weight:800;
  color:var(--text-on-ink); background:var(--status-ok); }
.ex-g.gB { background:color-mix(in srgb, var(--status-ok) 70%, var(--accent)); }
.ex-slider { position:relative; }
#lp-example .sc-panels { display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:4px 0 10px;
  overscroll-behavior-x:contain; }
#lp-example .sc-panels::-webkit-scrollbar { display:none; }
#lp-example .sc-tabpanel { flex:0 0 100%; scroll-snap-align:center; min-width:0; }
.ex-arrow { position:absolute; top:42%; z-index:3; width:44px; height:44px; border-radius:50%; border:1px solid var(--line); background:var(--surface-1);
  color:var(--ink); font-size:26px; line-height:1; cursor:pointer; box-shadow:0 4px 14px color-mix(in srgb, var(--text-primary) 14%, transparent); }
.ex-arrow:hover { border-color:var(--ink); }
.ex-arrow.prev { left:-22px; } .ex-arrow.next { right:-22px; }
.ex-open { display:none; }
@media (max-width:640px){
  .ex-arrow { display:none; }
  .ex-tabs { flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; scrollbar-width:none; margin:18px -18px 14px; padding:0 18px; }
  .ex-tabs::-webkit-scrollbar { display:none; }
  .ex-tab { flex:none; padding:7px 12px; font-size:13.5px; }
  #lp-example .sc-panels { margin:0 -18px; padding:4px 18px 10px; gap:10px; }
  #lp-example .sc-tabpanel { flex-basis:86%; }
  /* déroulé en trois temps : note → composantes → détail */
  #lp-example .sc-card.m1:not(.m2) .sc-rowscol, #lp-example .sc-card.m1:not(.m3) .sc-detail { display:none; }
  #lp-example .sc-card.m1:not(.m2) .ex-open { display:inline-flex; align-items:center; gap:6px; margin-top:14px; padding:9px 16px; border-radius:999px;
    border:1px solid var(--ink); background:var(--surface-1); color:var(--ink); font:inherit; font-size:13.5px; font-weight:600; cursor:pointer; }
  #lp-example .sc-card.m1:not(.m2) .sc-prof { display:none; }
}
/* Fonctionnalités : 4 tuiles icône + un titre qui se suffit (fondateur 02/10 : moins de texte) */
body.site .cap { align-items:center; }
body.site .cap h3 { margin:0; font-size:16.5px; line-height:1.35; }
@media (max-width:640px){ body.site .cap-grid { grid-template-columns:1fr 1fr; gap:10px; } body.site .cap { flex-direction:column; align-items:flex-start; gap:10px; padding:14px; }
  body.site .cap h3 { font-size:14.5px; } }
/* Démo du chat : mini-liste de résultats d'une recherche multicritère */
.lp-rows { list-style:none; margin:8px 0 4px; padding:0; display:grid; gap:4px; }
.lp-rows li { display:grid; grid-template-columns:minmax(0,1fr) auto 22px; gap:10px; align-items:center; padding:6px 9px; border-radius:8px;
  background:var(--surface-1); border:1px solid var(--line); font-size:12.5px; }
.lp-rows li b { font-weight:650; color:var(--text-primary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lp-rows li span { color:var(--text-secondary); white-space:nowrap; }
.lp-rows .ex-g { width:20px; height:20px; font-size:11.5px; font-style:normal; }
.lp-more { color:var(--text-secondary); font-size:12.5px; margin-top:2px; }
/* note dépliée (mobile) : on signale qu'un nouveau clic la replie */
@media (max-width:640px){ #lp-example .sc-card.m2 .sc-note .sc-colh::after { content:' ▴'; color:var(--text-secondary); } }
/* Explorer : la recherche en tête du bloc (fondateur 03/10) */
.ex-search { max-width:640px; margin:18px auto 22px; text-align:left; position:relative; }
@media (max-width:640px){ .ex-search { margin:14px 0 16px; } }
/* Tuiles et questions : elles ouvrent une capture en plein écran (fondateur 03/10) */
/* la tuile est un bouton .cap-zoom : on lui rend son CADRE de carte (.cap-zoom = ancien bouton-image transparent) */
body.site button.cap.cap-zoom { font:inherit; color:inherit; text-align:left; cursor:zoom-in; width:100%; position:relative; margin:0;
  background:var(--surface-1); border:1px solid var(--line); border-radius:var(--radius-card); padding:20px 22px; transition:border-color .15s, transform .15s; }
body.site button.cap.cap-zoom:hover { border-color:var(--ink); transform:translateY(-2px); }
.cap-see { position:absolute; top:12px; right:12px; width:30px; height:30px; border-radius:8px; display:inline-flex; align-items:center; justify-content:center;
  font-size:18px; line-height:1; color:var(--ink); background:var(--surface-2); border:1px solid var(--line); }
.bh.clickable { cursor:pointer; transition:border-color .15s; } .bh.clickable:hover { border-color:var(--ink); }
.bh-see { margin-top:14px; padding:0; border:0; background:none; font:inherit; font-size:14px; font-weight:650; color:var(--ink); cursor:pointer; }
.bh-see:hover { text-decoration:underline; }
@media (max-width:640px){
  /* plein écran sur mobile : la capture prend toute la largeur, la légende reste lisible */
  .shot-dlg { max-width:100vw; width:100vw; max-height:100dvh; margin:0; border-radius:0; padding:48px 10px 14px; }
  .shot-dlg img { max-height:70dvh; margin:0 auto; }
}
.sfx-actions .xlsbtn { padding:12px 18px; font-size:14px; }   /* même gabarit que les boutons voisins du panneau Comptes */

/* Outil « valeur des parts au 31/12/2025 » (brouillon non public, pubsite/templates/tools/cgt_value.html) */
.cgt-err { color:var(--danger, #b42318); margin:8px 0 0; }
.cgt-num { color:var(--text-secondary); font-weight:500; font-size:15px; margin-left:6px; }
.cgt-src { color:var(--text-secondary); margin:0 0 12px; }
.cgt-tbl { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.cgt-tbl td, .cgt-tbl th { padding:6px 8px; border-bottom:1px solid var(--border, #e6e1d6); text-align:left; }
.cgt-tbl .cgt-sub th { padding-top:16px; font-size:13px; text-transform:uppercase; letter-spacing:.04em; color:var(--text-secondary); border-bottom:none; }
.cgt-code { width:70px; color:var(--text-secondary); font-size:13px; }
.cgt-v { text-align:right !important; white-space:nowrap; }
.cgt-tot td { font-weight:700; }
.cgt-final td { font-size:18px; border-bottom:none; }
.cgt-share { display:flex; flex-wrap:wrap; gap:10px 18px; align-items:center; margin:14px 0 4px; padding:12px 14px; border-radius:10px; background:var(--surface-2, #f3efe6); }
.cgt-share input { width:90px; margin:0 4px; }
.cgt-warn, .cgt-note { font-size:14px; color:var(--text-secondary); margin:10px 0 0; }
.cgt-warn { border-left:3px solid var(--accent, #c8892b); padding-left:10px; }

/* Teaser « évolution sur 3 ans » de la fiche publique (core.public_profile._evolution) */
.sf-evo { margin:10px 0 0; font-size:14px; color:var(--text-secondary); display:flex; flex-wrap:wrap; gap:4px 10px; align-items:baseline; }
.sf-evo b { color:var(--text-primary, inherit); font-weight:600; white-space:nowrap; }
.sf-evo b.neg { color:var(--danger, #b42318); }
.cgt-manual { margin:16px 0 0; padding:12px 14px; border:1px solid var(--border, #e6e1d6); border-radius:10px; }
.cgt-manual summary { cursor:pointer; font-weight:600; }
.cgt-mform { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:8px 18px; margin:12px 0 0; }
.cgt-mform label { display:grid; grid-template-columns:60px 1fr 130px; gap:8px; align-items:center; font-size:14px; }
.cgt-mform input { width:100%; text-align:right; font-variant-numeric:tabular-nums; }
.cgt-mform input.pub { background:var(--surface-2, #f3efe6); }
.cgt-mform button { grid-column:1 / -1; justify-self:start; margin-top:6px; }
.cgt-mres { margin:14px 0 0; padding:12px 14px; border-radius:10px; background:var(--surface-2, #f3efe6); }
.cgt-mres .cgt-big { font-size:18px; }

/* Outil « valeur des parts » v2 — écran unique (fondateur 04/10 : simple) */
.cgt-hero { max-width:760px; margin:0 auto; }
.cgt-hero h1 { margin:6px 0 8px; }
.cgt-lead { color:var(--text-secondary); font-size:16px; margin:0 0 16px; }
.cgt-search { margin:0; }
.cgt-card { max-width:760px; margin:22px auto 0; padding:22px 24px; }
.cgt-co { font-weight:600; margin:0 0 12px; }
.cgt-big-l { font-size:13px; text-transform:uppercase; letter-spacing:.04em; color:var(--text-secondary); }
.cgt-big { font-size:40px; font-weight:700; letter-spacing:-.02em; line-height:1.15; margin:2px 0 8px; font-variant-numeric:tabular-nums; }
.cgt-big.na { font-size:26px; color:var(--text-secondary); }
.cgt-msg { margin:0 0 10px; }
.cgt-src { color:var(--text-secondary); font-size:14px; margin:10px 0 0; }
.cgt-flag { font-size:14px; margin:8px 0 0; border-left:3px solid var(--accent, #c8892b); padding-left:10px; }
.cgt .cgt-warn { margin:16px 0 4px; padding:12px 14px; border-radius:10px; background:#fff6e0; border:1px solid #f0d48a; color:inherit; font-size:14px; line-height:1.45; }
.cgt-fold { margin:12px 0 0; border-top:1px solid var(--border, #e6e1d6); padding-top:10px; }
.cgt-fold summary { cursor:pointer; font-weight:600; }
.cgt-mres { margin:12px 0 0; padding:12px 14px; border-radius:10px; background:var(--surface-2, #f3efe6); }
.cgt-mbig { font-size:22px; margin:0 6px; }
.cgt-cta { max-width:760px; margin:18px auto 0; padding:16px 20px; border-radius:12px; border:1px dashed var(--border, #e6e1d6); }
.cgt-cta p { margin:6px 0 12px; color:var(--text-secondary); }
.cgt-faq { max-width:760px; margin:34px auto 0; }
.cgt-faq details { border-bottom:1px solid var(--border, #e6e1d6); padding:10px 0; }
.cgt-faq summary { cursor:pointer; font-weight:600; }
.cgt-faq p { margin:8px 0 2px; }
@media (max-width:640px) { .cgt-big { font-size:32px; } .cgt-mform label { grid-template-columns:52px 1fr 110px; } }

/* ── Demande de rappel « Parlons-en » (/contact, fondateur 04/10) ── */
.ct-form { display:flex; flex-direction:column; gap:14px; max-width:640px; padding:24px; margin:18px 0 0; }
.ct-f { display:flex; flex-direction:column; gap:6px; font-size:14px; font-weight:600; }
.ct-f input, .ct-f textarea { font:inherit; font-weight:400; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:var(--surface-0, #fff); color:inherit; }
.ct-f.bad input { border-color:var(--danger, #b42318); }
.ct-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:620px){ .ct-row { grid-template-columns:1fr; } }
.ct-hint, .ct-privacy, .ct-alt { font-size:13px; color:var(--text-secondary); margin:0; }
.ct-alt { margin-top:14px; }
.ct-pref { border:0; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:6px 18px; font-size:14px; }
.ct-pref legend { font-weight:600; margin-bottom:6px; }
.ct-errs { max-width:640px; margin:16px 0 0; padding:12px 16px; border:1px solid var(--danger, #b42318); border-radius:8px; color:var(--danger, #b42318); font-size:14px; }
.ct-errs ul { margin:6px 0 0; padding-left:18px; }
.ct-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.cgt-xlink { margin:0 0 16px; padding:12px 16px; border-radius:10px; background:var(--surface-2, #f3efe6); font-size:14px; }
.pp-yes { color:var(--ok, #1f7a4d); font-size:30px; }
.pp-id { margin:4px 0 0; font-size:16px; }

.pp-ok { color:#1f7a4d; font-weight:600; }   /* Peppol : inscrite (vert) */
/* bandeau « cette page existe aussi en … » (langue du navigateur ≠ langue de la page, base.html) */
.lang-suggest { display:flex; gap:12px; align-items:center; justify-content:center; flex-wrap:wrap; padding:8px 16px;
  background:var(--surface-2, #f3efe6); border-bottom:1px solid var(--border, #e4ddd0); font-size:14px; }
.lang-suggest a { font-weight:600; }
.lang-suggest button { border:0; background:none; font-size:18px; line-height:1; cursor:pointer; color:inherit; padding:0 4px; }
