/* Public visual contract: final readable colors and article rhythm. */
:root{
  --ds-ink:#152238;
  --ds-ink-soft:#47576e;
  --ds-link:#0a4f87;
  --ds-link-visited:#5d3a72;
  --ds-link-hover:#8c1d2c;
  --ds-paper:#ffffff;
  --ds-paper-soft:#f7f5ef;
  --ds-border:#d8d1c3;
  --ds-night:#102846;
}
html{scroll-behavior:smooth}
body{color:var(--ds-ink)}
:where(.knowledge-section,.ds-bible-chapter,.ds-redress-longform,.articles-section,.seo-main,
.article-card,.resource-card,.metric-card,.level-card,.method-tile,.support-block,
.ds-target-doors>*,.query-grid>*,.ds-redress-calendar-grid>*,.ds-redress-objections-grid>*){
  color:var(--ds-ink);
}
:where(.knowledge-section,.ds-bible-chapter,.ds-redress-longform,.articles-section,.seo-main,
.article-card,.resource-card,.metric-card,.level-card,.method-tile,.support-block,
.ds-target-doors>*,.query-grid>*,.ds-redress-calendar-grid>*,.ds-redress-objections-grid>*) 
:where(p,li,dd,dt,figcaption,.meta,.muted,.note,.small,.subtle){
  color:var(--ds-ink-soft);
}
:where(.knowledge-section,.ds-bible-chapter,.ds-redress-longform,.articles-section,.seo-main,
.article-card,.resource-card,.metric-card,.level-card,.method-tile,.support-block,
.ds-target-doors>*,.query-grid>*,.ds-redress-calendar-grid>*,.ds-redress-objections-grid>*) a:not(.button):not(.btn){
  color:var(--ds-link);
  text-decoration-thickness:.08em;
  text-underline-offset:.15em;
}
:where(.knowledge-section,.ds-bible-chapter,.ds-redress-longform,.articles-section,.seo-main,
.article-card,.resource-card,.metric-card,.level-card,.method-tile,.support-block,
.ds-target-doors>*,.query-grid>*,.ds-redress-calendar-grid>*,.ds-redress-objections-grid>*) a:not(.button):not(.btn):visited{
  color:var(--ds-link-visited);
}
:where(.knowledge-section,.ds-bible-chapter,.ds-redress-longform,.articles-section,.seo-main,
.article-card,.resource-card,.metric-card,.level-card,.method-tile,.support-block,
.ds-target-doors>*,.query-grid>*,.ds-redress-calendar-grid>*,.ds-redress-objections-grid>*) a:not(.button):not(.btn):hover{
  color:var(--ds-link-hover);
}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{
  outline:3px solid #c2262e!important;
  outline-offset:3px!important;
}
:where(.site-header,.plan-home-feature,.live-inline-gateway,.ds-target-hero,.english-mars-gateway,
.french-mars-gateway,.portal-cta){
  color:#fff;
}
.ds-redress-longform{
  max-width:980px;
  margin-inline:auto;
}
.ds-redress-longform :where(p,li){
  font-size:clamp(1rem, .97rem + .12vw, 1.075rem);
  line-height:1.78;
}
.ds-redress-longform h2{
  margin-top:2.6rem;
  line-height:1.18;
}
.ds-redress-longform h3{
  margin-top:1.9rem;
  line-height:1.25;
}
.ds-book-chapter{
  max-width:940px;
  margin:2.8rem auto;
  padding:0 1rem;
}
.ds-book-chapter h2{
  font-size:clamp(1.55rem,1.25rem + 1vw,2.25rem);
  line-height:1.15;
  margin:2.6rem 0 1rem;
  color:#102846;
}
.ds-book-chapter h3{
  font-size:clamp(1.15rem,1.02rem + .42vw,1.45rem);
  margin:2rem 0 .7rem;
  color:#173a63;
}
.ds-book-chapter p,.ds-book-chapter li{
  font-size:clamp(1rem,.97rem + .12vw,1.075rem);
  line-height:1.82;
  color:#26374d;
}
.ds-book-chapter .ds-source-note{
  margin:1.6rem 0;
  padding:1rem 1.1rem;
  border-left:4px solid #c2262e;
  background:#f7f5ef;
  color:#33445a;
}
.ds-book-chapter .ds-equation{
  margin:1.5rem 0;
  padding:1rem 1.2rem;
  background:#eef3f7;
  border:1px solid #cbd6df;
  border-radius:8px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  color:#102846;
  overflow-wrap:anywhere;
}
.ds-compact-sources{
  max-width:940px;
  margin:2rem auto;
  padding:1rem 1.2rem;
  border:1px solid var(--ds-border);
  background:#faf9f6;
  border-radius:10px;
}
.ds-compact-sources h2,.ds-compact-sources h3{margin-top:.3rem}
.ds-compact-sources ul{columns:2;column-gap:2rem}
.ds-compact-sources li{break-inside:avoid;margin:.45rem 0}
@media(max-width:760px){
  .ds-compact-sources ul{columns:1}
  .ds-book-chapter{padding:0 .9rem}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}
}


/* Reader-facing corrections for legacy France families */
.ds-v20480-chapter > h2,
.ds-v20480-chapter > h3,
.ds-v20480-chapter > p,
.ds-v20480-chapter > ul > li{
  color:#26374d!important;
}
.ds-v20480-chapter > h2,
.ds-v20480-chapter > h3{color:#102846!important}
.ds-v20480-linkcard{
  color:#173a63!important;
}
.ds-v20480-linkcard:visited{color:#4b315f!important}
.ds-v20480-linkcard:hover{color:#8c1d2c!important}

.ds-canonical-page-v20430{
  max-width:100%;
  box-sizing:border-box;
  white-space:normal!important;
  overflow-wrap:anywhere;
}
@media(max-width:760px){
  main table,
  .audit94-table{
    display:block;
    width:100%;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
}

/* Poster cards: preserve complete master artwork, never crop. */
.article-card[data-special="books"] .article-card__cover img,
.article-card[data-special="videos"] .article-card__cover img,
.article-card[href="/france/fuite-donnees-dgfip-responsabilite-etat.html"] .article-card__cover img{object-fit:contain!important;object-position:center!important;background:#0b2342!important}
.knowledge-gateway-v2069 .knowledge-gateway-picture{display:block;overflow:hidden;border-radius:10px;margin:-8px -8px 18px}
.knowledge-gateway-v2069 .knowledge-gateway-picture img{display:block;width:100%;height:auto;max-height:260px;object-fit:contain;background:#f5f7f9}
