/* Shared contrast contract for nested content surfaces.
   Opt in on the section with data-contrast-scope. Each differently coloured
   child carries data-design-surface; transparent wrappers inherit the context.
   Load first: important declarations in this layer precede legacy reset layers.
   Navigation, footer, forms and button palettes are outside this contract. */
@layer comemso-surface-contrast-v198 {
  html body.cmo-design-system main [data-contrast-scope] {
    --contrast-bg: #fff;
    --contrast-text: #001c32;
    --contrast-heading: #001c32;
    --contrast-link: #005b8f;
  }
  html body.cmo-design-system main :is([data-contrast-scope], [data-contrast-scope] [data-design-surface]):is([data-design-surface="dark"], [data-design-surface="blue"]) {
    --contrast-bg: #001c32;
    --contrast-text: #fff;
    --contrast-heading: #fff;
    --contrast-link: #fff;
  }
  html body.cmo-design-system main :is([data-contrast-scope], [data-contrast-scope] [data-design-surface]):is([data-design-surface="light"], [data-design-surface="mist"], [data-design-surface="grey"]) {
    --contrast-bg: #fff;
    --contrast-text: #001c32;
    --contrast-heading: #001c32;
    --contrast-link: #005b8f;
  }
  html body.cmo-design-system main :is([data-contrast-scope], [data-contrast-scope] [data-design-surface])[data-design-surface="blue"] { --contrast-bg: #005b8f; }
  html body.cmo-design-system main :is([data-contrast-scope], [data-contrast-scope] [data-design-surface]):is([data-design-surface="mist"], [data-design-surface="grey"]) { --contrast-bg: #f3f4f5; }
  html body.cmo-design-system main :is([data-contrast-scope], [data-contrast-scope] [data-design-surface])[data-revision-gradient] {
    --contrast-bg: var(--revision-surface-gradient);
  }
  html body.cmo-design-system main :is([data-contrast-scope], [data-contrast-scope] [data-design-surface])[data-design-tone="charcoal"] {
    --contrast-bg: #2b3035;
  }
  html body.cmo-design-system main [data-contrast-scope],
  html body.cmo-design-system main [data-contrast-scope] [data-design-surface]:not([data-design-surface="transparent"]) {
    color: var(--contrast-text) !important;
    -webkit-text-fill-color: currentColor !important;
    background: var(--contrast-bg) !important;
  }
  /* An explicit transparent surface inherits its parent palette and paint. */
  html body.cmo-design-system main [data-contrast-scope] :is([data-design-surface="transparent"],[data-design-layout-surface="transparent"]) {
    background:transparent!important;box-shadow:none!important;
  }
  html body.cmo-design-system main [data-contrast-scope] :is(p,li,dd,dt,td,th,small,figcaption,label,legend,span,em,b,strong,[data-cmo-text-label],[data-design-text]) {
    color: var(--contrast-text) !important;
    -webkit-text-fill-color: currentColor !important;
  }
  html body.cmo-design-system main [data-contrast-scope] :is(h1,h2,h3,h4,h5,h6) {
    color: var(--contrast-heading) !important;
    -webkit-text-fill-color: currentColor !important;
  }
  html body.cmo-design-system main [data-contrast-scope] a:not(.cmo-button):not([data-design-button]) {
    color: var(--contrast-link) !important;
    -webkit-text-fill-color: currentColor !important;
  }
  html body.cmo-design-system main [data-contrast-scope] a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
  }

  /* Number badges are coloured surfaces, not transparent text wrappers. */
  html body.cmo-design-system main [data-contrast-scope] :is([data-design-badge="step"],[data-design-step-number],.cmo-process__number) {
    --contrast-bg:#005b8f;--contrast-text:#fff;--contrast-heading:#fff;--contrast-link:#fff;
    color:var(--contrast-text)!important;-webkit-text-fill-color:currentColor!important;
    background:var(--contrast-bg)!important;
  }
}
