.fxp-dora /* DORA register checker - Fund XP charte graphique */

:root {
  /* Charte graphique Fund XP */
  --green:    #005c4d;
  --teal:     #71b0aa;
  --ink:      #13100d;

  --green-dk: #00453a;
  --teal-pale:#E6F0EE;
  --paper:    #F2F4F3;
  --surface:  #FFFFFF;
  --line:     #D5DEDB;
  --slate:    #4C5450;
  --mute:     #5F6B67;
  --signal:   #A33B2A;

  --display: 'Archivo', 'Arial Narrow', system-ui, sans-serif;
  --body:    'Archivo', system-ui, sans-serif;
  --mono:    'IBM Plex Mono', ui-monospace, monospace;
}.fxp-dora, .fxp-dora * { box-sizing: border-box; }.fxp-dora { -webkit-text-size-adjust: 100%; }.fxp-dora {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--body);
  font-size: 19px;
  font-variation-settings: 'wdth' 100, 'wght' 400;
  line-height: 1.62;
}.fxp-dora .wrap { max-width: 1216px; margin: 0 auto; padding: 0 24px; }.fxp-dora h1, .fxp-dora h2, .fxp-dora h3 { font-family: var(--display); text-transform: uppercase; }.fxp-dora .eyebrow {
  font-family: var(--mono);
  font-size: 14px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--green);
  margin: 0 0 20px;
}.fxp-dora h1 {
  font-size: clamp(46.4px, 7.4vw, 92px);
  font-variation-settings: 'wdth' 64, 'wght' 800;
  line-height: .95;
  letter-spacing: .005em;
  margin: 0 0 24px;
  max-width: 20ch;
}.fxp-dora h2 {
  font-size: clamp(27.2px, 3.2vw, 40px);
  font-variation-settings: 'wdth' 68, 'wght' 800;
  letter-spacing: .01em;
  line-height: 1.05;
  margin: 0 0 16px;
}.fxp-dora h3 {
  font-size: 19px;
  font-variation-settings: 'wdth' 80, 'wght' 750;
  letter-spacing: .02em;
  margin: 0 0 7.2px;
}.fxp-dora .deck { font-size: 22px; color: var(--slate); max-width: 46ch; margin: 0; }.fxp-dora /* ---------- masthead ---------- */

.brandbar { padding: 32px 0 0; }.fxp-dora .masthead { padding: 48px 0 40px; }.fxp-dora /* the charte asks for 10mm of clear space around the mark */
footer .mark { height: 34px; width: auto; display: block; margin-bottom: 16px; opacity: .85; }.fxp-dora /* ---------- the working area ---------- */

.console {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 0;
  background: var(--surface);
  border: 1px solid var(--line);
  margin-bottom: 48px;
}.fxp-dora .console__form { padding: 32px; border-right: 1px solid var(--line); }.fxp-dora .console__manifest { padding: 32px; background: #F8FAF9; }@media (max-width: 820px) {.fxp-dora .console { grid-template-columns: 1fr; }.fxp-dora .console__form { border-right: 0; border-bottom: 1px solid var(--line); }
}.fxp-dora .field { margin-bottom: 24px; }.fxp-dora .label {
  display: block;
  font-family: var(--display);
  font-variation-settings: 'wdth' 84, 'wght' 750;
  font-size: 15px;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-bottom: 8px;
}.fxp-dora .hint { font-size: 16px; color: var(--mute); margin: 6.4px 0 0; }.fxp-dora /* drop zone */
.drop {
  display: block;
  width: 100%;
  border: 1.5px dashed var(--line);
  background: #FAFCFB;
  padding: 28px 20px;
  text-align: center;
  cursor: pointer;
  font-family: var(--mono);
  font-size: 14px;
  color: var(--slate);
  transition: border-color .15s, background .15s;
}.fxp-dora .drop:hover, .fxp-dora .drop:focus-visible { border-color: var(--green); background: var(--teal-pale); }.fxp-dora .drop[data-state="loaded"] {
  border-style: solid;
  border-color: var(--green);
  background: var(--teal-pale);
  color: var(--ink);
  word-break: break-all;
}.fxp-dora .drop input { position: absolute; width: 1px; height: 1px; opacity: 0; }.fxp-dora input[type="email"] {
  width: 100%;
  font: inherit;
  font-size: 16px;
  padding: 11.2px 13.6px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--ink);
  border-radius: 0;
}.fxp-dora input[type="email"]:focus-visible { outline: 2px solid var(--green); outline-offset: -1px; }.fxp-dora .consent { display: flex; gap: 11.2px; align-items: flex-start; font-size: 17px; }.fxp-dora .consent input { margin-top: 4.8px; flex: none; accent-color: var(--green); }.fxp-dora .honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }.fxp-dora .run {
  font-family: var(--display);
  font-variation-settings: 'wdth' 76, 'wght' 800;
  font-size: 18px;
  letter-spacing: .06em;
  text-transform: uppercase;
  width: 100%;
  padding: 15.2px 20px;
  border: 0;
  background: var(--green);
  color: #fff;
  cursor: pointer;
  transition: background .15s;
}.fxp-dora .run:hover:not(:disabled) { background: var(--green-dk); }.fxp-dora .run:disabled { background: var(--mute); cursor: not-allowed; }.fxp-dora .error-msg { color: var(--signal); font-size: 17px; margin: 12px 0 0; min-height: 1.4em; }.fxp-dora /* ---------- manifest: the signature element ---------- */

.manifest__title {
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--mute);
  margin: 0 0 16px;
  padding-bottom: 9.6px;
  border-bottom: 1px solid var(--line);
}.fxp-dora .manifest__list { list-style: none; margin: 0; padding: 0; font-family: var(--mono); font-size: 15px; }.fxp-dora .manifest__list li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 4.8px 0;
  color: var(--mute);
  border-bottom: 1px dotted #E3EAE8;
  transition: color .2s;
}.fxp-dora .manifest__list li[data-state="reading"] { color: var(--green); }.fxp-dora .manifest__list li[data-state="done"] { color: var(--ink); }.fxp-dora .manifest__mark::after { content: '·'; }.fxp-dora li[data-state="reading"] .manifest__mark::after { content: '›'; }.fxp-dora li[data-state="done"] .manifest__mark::after { content: '✓'; }.fxp-dora /* ---------- receipt ---------- */

.receipt {
  background: var(--surface);
  border: 1px solid var(--line);
  border-top: 4px solid var(--signal);
  padding: 32px;
  margin-bottom: 24px;
}.fxp-dora .receipt[hidden] { display: none; }.fxp-dora .receipt:has(.verdict[data-clean="true"]) { border-top-color: var(--green); }.fxp-dora .receipt__meta {
  font-family: var(--mono);
  font-size: 15px;
  color: var(--mute);
  display: flex;
  flex-wrap: wrap;
  gap: 5.6px 24px;
  padding-bottom: 20px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--line);
}.fxp-dora .verdict { display: flex; align-items: baseline; gap: 20px; flex-wrap: wrap; }.fxp-dora .verdict__count {
  font-family: var(--mono);
  font-weight: 600;
  font-size: clamp(57.6px, 11vw, 112px);
  line-height: .9;
  letter-spacing: -.03em;
  color: var(--signal);
}.fxp-dora .verdict[data-clean="true"] .verdict__count { color: var(--green); }.fxp-dora .verdict__label {
  font-family: var(--display);
  font-variation-settings: 'wdth' 76, 'wght' 780;
  text-transform: uppercase;
  font-size: 25.6px;
  line-height: 1.08;
  max-width: 22ch;
}.fxp-dora .receipt__note { font-size: 17px; color: var(--slate); margin: 24px 0 0; max-width: 56ch; }.fxp-dora /* ---------- cta ---------- */

.cta {
  background: var(--ink);
  color: #EDF2F0;
  padding: 40px 32px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: center;
  margin-bottom: 56px;
}@media (max-width: 720px) {.fxp-dora .cta { grid-template-columns: 1fr; } }.fxp-dora .cta h2 { margin-bottom: 12px; }.fxp-dora .cta p { margin: 0; max-width: 52ch; }.fxp-dora .cta .price { font-family: var(--mono); font-size: 14px; letter-spacing: .04em; }.fxp-dora .cta__btn {
  display: inline-block;
  font-family: var(--display);
  font-variation-settings: 'wdth' 76, 'wght' 800;
  font-size: 18px;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 18.4px 33.6px;
  background: #fff;
  color: var(--ink);
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s;
}.fxp-dora .cta__btn:hover { background: var(--teal-pale); }.fxp-dora /* ---------- prose sections ---------- */

.band { padding: 0 0 56px; }.fxp-dora .privacy {
  background: var(--surface);
  border-left: 3px solid var(--green);
  padding: 28px 32px;
  margin-bottom: 56px;
}.fxp-dora .privacy p { margin: 0 0 13.6px; max-width: 62ch; }.fxp-dora .privacy p:last-child { margin-bottom: 0; }.fxp-dora .cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(272px, 1fr)); gap: 28px 40px; }.fxp-dora .cols p { margin: 0; font-size: 17px; color: var(--slate); }.fxp-dora .faq { max-width: 864px; }.fxp-dora .faq > div { padding: 20px 0; border-bottom: 1px solid var(--line); }.fxp-dora .faq p { margin: 0; color: var(--slate); }.fxp-dora a:focus-visible, .fxp-dora button:focus-visible, .fxp-dora label:focus-visible, .fxp-dora input:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 2px;
}@media (prefers-reduced-motion: reduce) {.fxp-dora, .fxp-dora * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ===========================================================================
   OceanWP integration

   Two things drive the shape of this block.

   1. Load order. OceanWP's style.min.css arrives via a preload polyfill and its
      Customizer CSS is inlined at the end of <head>, so both land after this
      file and win any tie. Every rule is anchored on #content, which no theme
      rule can match.

   2. Fail-safe colour. A dark background and its light text live in the SAME
      declaration block, never in two. If a block is dropped - by an optimiser,
      a parse error, an undefined custom property - background and text go
      together and the text stays legible. Light text is never declared on an
      element whose dark background comes from somewhere else.
   =========================================================================== */

body.page-template-dora-checker.content-max-width #content-wrap,
body.page-template-dora-checker #content-wrap,
body.page-template-dora-checker #primary,
body.page-template-dora-checker #content {
  max-width: none;
  width: auto;
  padding-left: 0;
  padding-right: 0;
}

body.page-template-dora-checker #content-wrap { overflow-x: clip; }
body.page-template-dora-checker .page-header { display: none; }

#content .entry-content.fxp-dora {
  background: #F2F4F3;
  color: #13100d;
  margin-inline: calc(50% - 50vw);
  padding: 0 max(24px, calc(50vw - 640px)) 24px;
  margin-bottom: 0;
  font-family: var(--body);
  font-size: 19px;
  line-height: 1.62;
}

#content .entry-content.fxp-dora .wrap { max-width: none; padding: 0; margin: 0; }

/* Text colour is inherited, not restated. That is what keeps it in step with
   whatever background the surrounding section actually painted. */
#content .entry-content.fxp-dora p,
#content .entry-content.fxp-dora label,
#content .entry-content.fxp-dora li,
#content .entry-content.fxp-dora h1,
#content .entry-content.fxp-dora h2,
#content .entry-content.fxp-dora h3 { color: inherit; }

/* --- the dark masthead --------------------------------------------------- */
/* The site header is transparent, with a white logo and white menu links. Over
   a pale background both disappear. This band gives them something to sit on
   and clears the 90px header in the same move. */

#content .entry-content.fxp-dora .masthead {
  background: #13100d;
  color: #F5F7F6;
  margin-inline: calc(50% - 50vw);
  padding: 176px max(24px, calc(50vw - 640px)) 56px;
  margin-bottom: 48px;
}
/* opacity, not a colour: the deck can only ever be a dimmer version of
   whatever the masthead painted, so it cannot strand itself on a pale
   background if that block is ever dropped. */
#content .entry-content.fxp-dora .masthead .deck { opacity: .82; }
#content .entry-content.fxp-dora .masthead .eyebrow { color: #71b0aa; }
/* 7.67:1 on #13100d. The only named light-ish colour left outside a block
   that paints its own background, kept because it carries brand identity
   and stays visible either way. */

/* --- type --------------------------------------------------------------- */

#content .entry-content.fxp-dora p,
#content .entry-content.fxp-dora label,
#content .entry-content.fxp-dora li { font-family: var(--body); line-height: 1.62; }

#content .entry-content.fxp-dora .deck { font-size: 22px; line-height: 1.4; }
#content .entry-content.fxp-dora .hint { font-size: 16px; color: #5F6B67; }
#content .entry-content.fxp-dora .error-msg { font-size: 17px; color: #A33B2A; }
#content .entry-content.fxp-dora .consent label { font-size: 17px; }
#content .entry-content.fxp-dora .cols p,
#content .entry-content.fxp-dora .faq p,
#content .entry-content.fxp-dora .receipt__note { font-size: 17px; color: #4C5450; }

#content .entry-content.fxp-dora h1,
#content .entry-content.fxp-dora h2,
#content .entry-content.fxp-dora h3 {
  font-family: var(--display);
  text-transform: uppercase;
  font-weight: normal;
}
#content .entry-content.fxp-dora h1 {
  font-size: clamp(46px, 7.4vw, 92px);
  line-height: .95;
  font-variation-settings: 'wdth' 64, 'wght' 800;
}
#content .entry-content.fxp-dora h2 {
  font-size: clamp(27px, 3.2vw, 40px);
  line-height: 1.05;
  font-variation-settings: 'wdth' 68, 'wght' 800;
}
#content .entry-content.fxp-dora h3 {
  font-size: 19px;
  line-height: 1.25;
  font-variation-settings: 'wdth' 80, 'wght' 750;
}

#content .entry-content.fxp-dora .eyebrow,
#content .entry-content.fxp-dora .manifest__title,
#content .entry-content.fxp-dora .manifest__list li,
#content .entry-content.fxp-dora .receipt__meta,
#content .entry-content.fxp-dora .cta .price { font-family: var(--mono); }
#content .entry-content.fxp-dora .verdict__count { font-family: var(--mono); line-height: .9; }
#content .entry-content.fxp-dora .verdict__label {
  font-family: var(--display);
  text-transform: uppercase;
  font-variation-settings: 'wdth' 76, 'wght' 780;
  line-height: 1.08;
}

/* --- the CTA band ------------------------------------------------------- */
/* Background and text in one block. Headings and paragraphs inherit rather
   than declare, so nothing here can end up light on light. */

#content .entry-content.fxp-dora .cta {
  background: #13100d;
  color: #DCE5E2;
}
#content .entry-content.fxp-dora .cta__btn {
  background: #FFFFFF;
  color: #13100d;
  font-family: var(--display);
  text-transform: uppercase;
  letter-spacing: .06em;
  font-variation-settings: 'wdth' 76, 'wght' 800;
  font-size: 18px;
  text-decoration: none;
}
#content .entry-content.fxp-dora .cta__btn:hover { background: #E6F0EE; color: #13100d; }

/* --- controls ----------------------------------------------------------- */

#content .entry-content.fxp-dora button.run {
  background-color: #005c4d;
  color: #FFFFFF;
  font-family: var(--display);
  border: 0;
  border-radius: 0;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-variation-settings: 'wdth' 76, 'wght' 800;
  font-size: 18px;
}
#content .entry-content.fxp-dora button.run:hover:not(:disabled) {
  background-color: #00453a;
  color: #FFFFFF;
}
#content .entry-content.fxp-dora button.run:disabled {
  background-color: #66716E;
  color: #FFFFFF;
}

#content .entry-content.fxp-dora input[type="email"] {
  background: #FFFFFF;
  color: #13100d;
  border-radius: 0;
  border: 1px solid #D5DEDB;
  font-family: var(--body);
  font-size: 17px;
}

/* --- links -------------------------------------------------------------- */
/* axe's link-in-text-block rule wants a link inside running text to be
   distinguishable by something other than colour, OR to contrast at least 3:1
   with the text around it. Both are satisfied here rather than one, so the
   audit cannot fail on a single detail.

   #0A7560 is the charte green lightened just enough to clear all three
   thresholds at once:
     vs surrounding #13100d ... 3.36:1  (needs 3)
     vs white form panel ...... 5.64:1  (needs 4.5)
     vs #F2F4F3 page .......... 5.10:1  (needs 4.5)
   The original #005c4d reached only 2.38:1 against the surrounding text.

   Colour and underline sit in one block so they cannot come apart. */

#content .entry-content.fxp-dora a {
  color: #0A7560;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
#content .entry-content.fxp-dora a:hover { color: #00453a; }

/* The two buttons are not running text: they are unmistakable already, and an
   underline on them would read as a mistake. */
#content .entry-content.fxp-dora .cta__btn,
#content .entry-content.fxp-dora .cta__btn:hover { text-decoration-line: none; }

#content .entry-content.fxp-dora ul { margin: 0; padding: 0; }
#content .entry-content.fxp-dora li { margin: 0; }
#content .entry-content.fxp-dora input,
#content .entry-content.fxp-dora button { margin: 0; box-shadow: none; }

@media (max-width: 600px) {
  #content .entry-content.fxp-dora { padding-inline: 18px; }
  #content .entry-content.fxp-dora .masthead { padding: 120px 18px 40px; margin-bottom: 32px; }
  #content .entry-content.fxp-dora .console__form,
  #content .entry-content.fxp-dora .console__manifest,
  #content .entry-content.fxp-dora .receipt,
  #content .entry-content.fxp-dora .cta,
  #content .entry-content.fxp-dora .privacy { padding: 24px 20px; }
}

/* --- layout stability ---------------------------------------------------- */
/* The manifest is server-rendered, so its height is known before scripts run.
   min-height is the fallback: if the list is ever empty at first paint, the
   column still occupies its final height and nothing below it moves. */

#content .entry-content.fxp-dora .manifest__list { min-height: 405px; }

/* The drop zone swaps its label for the file name, which can wrap onto a second
   line. Reserving two lines keeps that swap from nudging the form. */
#content .entry-content.fxp-dora .drop { min-height: 92px; display: grid; place-items: center; }

/* The status line is written into after submission. */
#content .entry-content.fxp-dora .error-msg { min-height: 1.4em; }

/* Rules last-updated stamp, under the deck in the dark masthead. */
#content .entry-content.fxp-dora .masthead .updated {
  font-family: var(--mono);
  font-size: 14px;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .7;
  margin: 20px 0 0;
}

/* The rule-count claim, above the six columns. */
#content .entry-content.fxp-dora .lead {
  font-family: var(--display);
  text-transform: uppercase;
  font-variation-settings: 'wdth' 72, 'wght' 800;
  font-size: clamp(22px, 2.4vw, 32px);
  line-height: 1.05;
  color: #005c4d;
  margin: 0 0 12px;
  max-width: 20ch;
}
#content .entry-content.fxp-dora .lead-note {
  font-size: 17px;
  color: #4C5450;
  max-width: 60ch;
  margin: 0 0 32px;
}
