/* RiskSonnar — shared identity. Paper, ink, evidence.
   Brand colors do not replace risk levels, scores or source statuses. */
.rs-identity {
  --brand-ink: #293326;
  --brand-paper: #FBFBF8;
  --brand-muted: #62665F;
  --brand-line: #DDDED7;
  --accent: #293326;
  --accent-hover: #45523F;
  --color-accent: #293326;
  --color-accent-hover: #45523F;
  --color-accent-light: #F0F2EB;
  --color-accent-50: #F8F9F4;
  --color-accent-100: #E8EBE1;
  --color-accent-500: #293326;
  --color-accent-600: #293326;
  --color-accent-700: #45523F;
  --rs-accent: #293326;
  --rs-accent-hover: #45523F;
  --rs-bg-alt: #F5F6F0;
  --font-display: 'Source Serif 4', Georgia, serif;
  --font-body: 'Public Sans', system-ui, sans-serif;
}
.rs-identity:not(.rs-workspace) {
  background-color: var(--brand-paper);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
}
.rs-identity :is(h1, h2, .hero-title, .section-h, .section-title) {
  font-family: 'Source Serif 4', Georgia, serif !important;
  font-weight: 400 !important;
  letter-spacing: -.025em;
}
.rs-identity :is(h3, h4) {
  font-family: 'Public Sans', system-ui, sans-serif !important;
  font-weight: 500;
}
.rs-identity :is(button, input, select, textarea) { font-family: 'Public Sans', system-ui, sans-serif; }
.rs-identity :is(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid #45523F !important;
  outline-offset: 3px !important;
  box-shadow: none !important;
}
.rs-identity :is(.nav, .dh) {
  background: #FFF !important;
  border-bottom: 1px solid var(--brand-line);
  box-shadow: none !important;
}
.rs-identity :is(.nav-logo, .dh-logo, nav .logo, .ft-logo) {
  display: inline-flex;
  align-items: center;
  gap: 0 !important;
  color: var(--brand-ink) !important;
  font: 600 19px/1.2 'Public Sans', system-ui, sans-serif !important;
  letter-spacing: -.025em !important;
  font-synthesis: none;
  text-decoration: none !important;
  white-space: nowrap;
}
.rs-identity :is(.nav-logo, .dh-logo, nav .logo, .ft-logo) :is(em, span) {
  font: inherit;
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}
.rs-identity .rs-brand-mark {
  display: block;
  flex: 0 0 28px;
  width: 28px !important;
  height: 28px !important;
  object-fit: contain;
  margin-right: 10px;
}
.rs-identity :is(.logo, .brand):has(> .rs-brand-mark) { gap: 0; }
.rs-identity :is(.logo, .brand):has(> .rs-brand-mark) em { color: inherit; font-style: normal; }
.rs-identity:has(.auth-line) .brand .rs-brand-mark { filter: brightness(0) invert(1); }
.rs-identity :is(.nav-logo, .dh-logo, nav .logo, .ft-logo):not(:has(.rs-brand-mark))::before {
  content: '';
  display: block;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  margin-right: 10px;
  background: currentColor;
  -webkit-mask: url('/static/brand/risksonnar-mark.svg?v=20260905k') center / contain no-repeat;
  mask: url('/static/brand/risksonnar-mark.svg?v=20260905k') center / contain no-repeat;
}
.rs-identity :is(.nav-logo, .dh-logo, nav .logo, .ft-logo) > svg { display: none; }
.rs-identity .nav-a { font-size: 13px; font-weight: 500; color: #555D50; }
.rs-identity .nav-a:hover { background: #F4F5EF; color: var(--brand-ink); }
.rs-identity :is(.nav-dd-menu, .nav-mobile) { background: #FFF !important; border: 1px solid var(--brand-line); border-radius: 4px !important; }
.rs-identity .nav-dd-item { color: #293326 !important; padding: 13px 16px; }
.rs-identity .nav-dd-item:hover { background: #F4F5EF !important; }
.rs-identity .nav-dd-item :is(b, em) { color: #293326 !important; }
.rs-identity .nav-dd-item > span > span { color: #62665F !important; font-size: 12px; line-height: 1.6; }
.rs-identity .nav-dd-item em { border-color: #CFD3C6; background: #F4F5EF; }
.rs-identity .nav-dd-item .di:empty { display: none; }
.rs-identity .nav-dd-item .di { background: #F4F5EF; color: #62665F; border-radius: 2px; }
.rs-identity .nav-mobile :is(a, button) { color: #293326 !important; }
.rs-identity :is(.btn, .nav-cta, .nav-signup, a.cta, button.cta, .btn-cta, .btn-cta-final, .cta-outline, .f-btn, .hero-cta-primary, .hero-cta-secondary) {
  border-radius: 4px !important;
  font-weight: 500;
  transition: background-color .16s, border-color .16s, color .16s;
}
.rs-identity :is(.nav-cta, .f-btn, .btn-primary, .hero-cta-primary, a.cta, button.cta, .btn-cta) {
  background: var(--brand-ink) !important;
  border-color: var(--brand-ink) !important;
  color: #FFF !important;
}
.rs-identity :is(.nav-cta, .f-btn, .btn-primary, .hero-cta-primary, a.cta, button.cta, .btn-cta):hover { background: #45523F !important; }
.rs-identity :is(.nav-signup, .cta-outline, .hero-cta-secondary) { color: #293326 !important; border-color: #C3CABB !important; background: #FFF !important; }
.rs-identity :is(.nav-cta, .hero-cta-primary)::after { display: none !important; }
.rs-identity :is(.card, .pricing-card, .prod, .feat-card):hover { transform: none; }
.rs-identity :is(.hero, .hero-wrap):not(#heroSection) {
  background: var(--brand-paper);
  background-image: none;
  color: var(--brand-ink);
}
.rs-identity :is(.hero, .hero-wrap) > p,
.rs-identity .hero :is(.crumb, .crumb a, .crumb .sep, .hs) { color: #62665F !important; }
.rs-identity .hero .hs strong { color: #293326; }
.rs-identity .hero .hs::before { background: #62665F; box-shadow: none; }
.rs-identity :is(.feat-img, .bc-img) img { filter: grayscale(1); }
.rs-identity :is(.feat-tag, .bc-tag) { color: #62665F !important; background: #F0F2EB !important; border-radius: 2px; }
.rs-identity .hero::before, .rs-identity .hero::after { display: none; }
.rs-identity .hero h1 { color: #293326; }
.rs-identity .hero h1 :is(em, span) { color: inherit !important; -webkit-text-fill-color: currentColor !important; }
.rs-identity :is(.hero-badge, .eyebrow, .sect-kicker, .kicker) {
  background: transparent !important;
  color: #62665F !important;
  border: 0 !important;
  border-radius: 0 !important;
  font: 500 11px/1.7 'IBM Plex Mono', ui-monospace, monospace !important;
  letter-spacing: .08em;
}
.rs-identity :is(.feat-card, .pricing-card, .callout, .notice, .guarantee) {
  border-color: var(--brand-line) !important;
  border-radius: 4px !important;
}
.rs-identity :is(.section-p, .hero-p) { color: #62665F !important; font-weight: 400; line-height: 1.75; }
.rs-identity :is(.price, .score, .metric, td) { font-variant-numeric: tabular-nums; }
.rs-identity :is(.ft-news, .guarantee, .info-panel) { background: #F4F5EF !important; border-color: var(--brand-line) !important; }
.rs-identity .ft { background: #F5F6F0 !important; border-top: 1px solid var(--brand-line); color: #293326; }
.rs-identity .ft :is(h4, .ft-tagline, .ft-bottom, .ft-disclaimer, .ft-copyright) { color: #62665F !important; }
.rs-identity .ft .ft-col a { color: #444D3E !important; }
.rs-identity .ft .ft-badge { color: #62665F; background: transparent; border-color: var(--brand-line); border-radius: 2px; }
.rs-identity .ft-top { gap: 48px; }
.rs-identity .ft-news button { background: #293326 !important; color: #FFF !important; }
.rs-identity .ft-news input { background: #FFF; color: #293326 !important; }
.rs-identity .editorial-kicker { font: 500 11px/1.5 'IBM Plex Mono', monospace; letter-spacing: .11em; text-transform: uppercase; color: #62665F; }
.rs-identity .hero-text .badge {
  display: flex !important;
  align-items: center;
  gap: 14px;
  border: 0 !important;
  padding: 0 !important;
  color: #62665F !important;
  background: transparent !important;
  font: 500 10px/1.6 'IBM Plex Mono', monospace !important;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.rs-identity .hero-text .badge::before {
  content: '';
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  background: url('/static/brand/risksonnar-badge.svg?v=20260905k') center / contain no-repeat;
}
.rs-identity .hero-text .badge-dot { display: none; }
/* App dark mode is an existing user preference, with its own surface tokens. */
.identity-mobile-menu { display: none; }
@media (max-width: 800px) {
  .rs-identity .nav.rs-nav-enhanced { height: 68px !important; min-height: 68px !important; flex-wrap: nowrap !important; gap: 12px; }
  .rs-identity .rs-nav-enhanced .nav-a, .rs-identity .rs-nav-enhanced .nav-cta { display: none !important; }
  .rs-identity .identity-mobile-menu { display: block; margin-left: auto; position: static; }
  .identity-mobile-menu > summary { list-style: none; cursor: pointer; padding: 12px 0 12px 16px; color: #293326; font: 500 13px/1.5 'Public Sans', sans-serif; }
  .identity-mobile-menu > summary::-webkit-details-marker { display: none; }
  .identity-mobile-menu > summary::after { content: '+'; margin-left: 10px; font-size: 16px; }
  .identity-mobile-menu[open] > summary::after { content: '−'; }
  .identity-mobile-links { position: absolute; top: 100%; left: 0; right: 0; padding: 12px 20px 20px; background: #FFF; border-bottom: 1px solid #DDDED7; box-shadow: 0 12px 24px -16px #29332640 !important; }
  .identity-mobile-links a { display: block; padding: 14px 12px; color: #293326 !important; font-size: 14px; text-decoration: none; }
  .identity-mobile-links a:hover { background: #F5F6F0; }
}
[data-theme="dark"] .rs-workspace { --brand-muted: #B8C0AE; --editorial-muted: #B8C0AE; }
[data-theme="dark"] .rs-workspace .dh { background: var(--chrome) !important; border-color: var(--chrome-bd); }
[data-theme="dark"] .rs-workspace .dh-logo { color: #EEF1E9 !important; }
[data-theme="dark"] .rs-workspace .rs-brand-mark { filter: brightness(0) invert(1); }
[data-theme="dark"] .rs-workspace :is(input, button, a):focus-visible { outline-color: #C5D3B7 !important; }
@media (max-width: 700px) {
  .rs-identity .nav { padding-inline: 20px; }
  .rs-identity :is(.nav-logo, .dh-logo, nav .logo, .ft-logo) { font-size: 18px !important; }
  .rs-identity .rs-brand-mark { width: 26px !important; height: 26px !important; flex-basis: 26px; margin-right: 9px; }
  .rs-identity :is(.nav-logo, .dh-logo, nav .logo, .ft-logo):not(:has(.rs-brand-mark))::before { width: 26px; height: 26px; flex-basis: 26px; margin-right: 9px; }
  .rs-identity .hero-text .badge::before { width: 36px; height: 36px; flex-basis: 36px; }
  .rs-identity .ft-top { gap: 28px; }
}

/* Content must be trustworthy at first paint. Route-local reveal scripts used
   opacity:0 until an observer or 1.5 s timeout fired, leaving visible sections
   washed out on fast scroll and slower devices. Keep motion for the brand mark
   and direct interactions, never for access to the page's evidence. */
html.rs-anim body.rs-identity.rs-home .rs-rev,
html.rs-anim body.rs-identity:not(.rs-home):not(.rs-workspace) .rs-rev {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* Mesure d'audience — choix first-party, sans motif sombre ni couleur d'alerte. */
.rs-measurement-consent {
  position: fixed;
  z-index: 10000;
  inset: auto 20px 20px auto;
  width: min(520px, calc(100vw - 40px));
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: end;
  padding: 18px 20px;
  color: #20251F;
  background: #F7F7F2;
  border: 1px solid #C9CCC3;
  border-radius: 4px;
  box-shadow: 0 18px 48px rgba(32, 37, 31, .14);
  font-family: 'Public Sans', system-ui, sans-serif;
}
.rs-measurement-consent strong { display:block; margin-bottom:4px; font-size:13px; }
.rs-measurement-consent p { margin:0 0 4px; color:#5F655D; font-size:12px; line-height:1.55; }
.rs-measurement-consent a { color:#20251F; font-size:11.5px; text-underline-offset:.18em; }
.rs-measurement-actions { display:flex; gap:8px; align-items:center; white-space:nowrap; }
.rs-measurement-actions button {
  min-height: 38px;
  padding: 8px 12px;
  border-radius: 3px;
  border: 1px solid #AEB3AA;
  font: 600 12px/1 'Public Sans', system-ui, sans-serif;
  cursor: pointer;
}
.rs-measurement-decline { color:#353A34; background:transparent; }
.rs-measurement-accept { color:#F8F8F4; background:#243326; border-color:#243326 !important; }
@media (max-width: 700px) {
  .rs-measurement-consent { inset:auto 10px 10px; width:auto; grid-template-columns:1fr; gap:8px; padding:13px 14px; }
  .rs-measurement-consent strong { margin-bottom:2px; }
  .rs-measurement-consent p { font-size:11.5px; line-height:1.45; }
  .rs-measurement-actions { display:grid; grid-template-columns:1fr auto; gap:7px; white-space:normal; }
  .rs-measurement-actions button { min-height:36px; padding:7px 10px; }
}

/* Secondary editorial system — BEGIN.
   Real public-page structures only. No grid, visibility, status, chart or
   form-state overrides. Important cosmetic declarations also work when this
   sheet precedes the old route-local <style> blocks. Families stay unchanged. */
body.rs-identity:not(.rs-home):not(.rs-workspace) > nav:has(.nav-logo) {
  background: var(--brand-paper) !important;
  border-bottom: 1px solid var(--brand-line) !important;
  box-shadow: none !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) > nav .nav-back {
  color: var(--brand-ink) !important;
  background: transparent !important;
  border: 1px solid var(--brand-line) !important;
  border-radius: 4px !important;
  font-weight: 500 !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) > .hero,
body.rs-identity:not(.rs-home):not(.rs-workspace) > .wrap > .hero {
  padding-block: clamp(44px, 6vw, 80px) 36px !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) .hero > h1 {
  font-size: clamp(34px, 2rem + 2vw, 62px) !important;
  line-height: 1.1 !important;
  letter-spacing: -.028em !important;
  text-wrap: balance !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) .wrap > h1 {
  font-size: clamp(32px, 1.7rem + 1.7vw, 48px) !important;
  line-height: 1.15 !important;
  letter-spacing: -.025em !important;
  text-wrap: balance !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) .hero > .sub {
  max-inline-size: 66ch !important;
  margin-inline: auto !important;
  color: var(--brand-muted) !important;
  font-size: clamp(15px, .9rem + .2vw, 17px) !important;
  line-height: 1.75 !important;
  text-wrap: pretty !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) .wrap > .lead {
  max-inline-size: 70ch !important;
  color: var(--brand-muted) !important;
  font-size: 16px !important;
  line-height: 1.8 !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) :is(.wrap > h2, .cat > h2, .socle > h2) {
  border-top: 1px solid var(--brand-line) !important;
  padding-top: 20px !important;
  margin-top: 40px !important;
  font-size: clamp(23px, 1.25rem + .5vw, 28px) !important;
  line-height: 1.3 !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) :is(.prod, .mod, .flow, .socle-item, .src, .hl-card, .m-row, .live-card) {
  background: #FFF !important;
  border-color: var(--brand-line) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) :is(.prod, .mod, .m-row):hover {
  border-color: #ACB1A8 !important;
  box-shadow: none !important;
  transform: none !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) .prod.ent {
  border-left: 3px solid var(--brand-ink) !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) :is(.prod p, .mod p, .m-row p) {
  font-size: 14px !important;
  line-height: 1.8 !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) :is(.prod .for, .j-step .by, .flow .fa) {
  color: var(--brand-muted) !important;
  font-weight: 500 !important;
}
/* Decorative product/mechanism icons only; never charts or status glyphs. */
body.rs-identity:not(.rs-home):not(.rs-workspace) :is(.prod > .pic, .mod > .ic, .m-row > .m-ic) :is(svg[aria-hidden="true"][stroke], svg[aria-hidden="true"] [stroke]):not([stroke="none"]) {
  stroke: var(--brand-ink) !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) :is(.prod > .pic, .mod > .ic, .m-row > .m-ic) :is(svg[aria-hidden="true"][fill], svg[aria-hidden="true"] [fill]):not([fill="none"]) {
  fill: var(--brand-ink) !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) .wrap > :is(p, ul, ol) a:not([class]) {
  color: var(--brand-ink) !important;
  text-decoration: underline !important;
  text-underline-offset: .18em !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) :is(.together, .data-band, .wrap > .final) {
  background: var(--brand-paper) !important;
  border: 1px solid var(--brand-line) !important;
  border-top: 2px solid var(--brand-ink) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}
/* .cta is also a whole section in sources.html; only links are buttons. */
body.rs-identity:not(.rs-home):not(.rs-workspace) .wrap > div.cta {
  background: transparent !important;
  border: 0 !important;
  color: var(--brand-ink) !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) :is(.wrap > div.cta > a, .wrap > .final > a) {
  background: var(--brand-ink) !important;
  color: var(--brand-paper) !important;
  border: 1px solid var(--brand-ink) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) :is(a.cta.ghost, .wrap > .final > a.ghost) {
  background: transparent !important;
  color: var(--brand-ink) !important;
  border: 1px solid #ACB1A8 !important;
}
/* Keep warnings, source badges, live figures and API/code syntax untouched. */
body.rs-identity:not(.rs-home):not(.rs-workspace) .wrap > .block {
  border-radius: 4px !important;
  box-shadow: none !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) > footer {
  background: var(--brand-paper) !important;
  border-top: 1px solid var(--brand-line) !important;
  color: var(--brand-muted) !important;
  line-height: 1.8 !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) > footer a {
  color: var(--brand-ink) !important;
  text-underline-offset: .2em !important;
}
/* Secondary editorial system — END. */
/* Article categories are navigation, not risk classifications. */
body.rs-identity:not(.rs-home):not(.rs-workspace) :is(.cat-pill, .bc-cat, .feat-cat) {
  background: #F1F2EC !important;
  color: var(--brand-ink) !important;
  border-radius: 2px !important;
}
body.rs-identity:not(.rs-home):not(.rs-workspace) .cat-card { border-color: var(--brand-line) !important; }
