/* ============================================================
   PLAN DE VALEUR : exemple public de demonstration (8D-3)
   Version scopee sous .pdv-doc : n'affecte pas le reste du site
   et n'est pas affectee par lui. Derive du prototype valide 8D-2 TER
   (correction responsive du bloc Confiance incluse).
   Palette : encre / creme / bronze.
   ============================================================ */

.pdv-doc {
  --ink: #1c1a17;
  --ink-soft: #4a453d;
  --ink-faint: #7a7264;
  --paper: #fffdf8;
  --cream: #f6f1e7;
  --line: #d9d2c2;
  --line-strong: #b9ae97;
  --bronze: #7c6039;
  --bronze-soft: #8a6d45;
  --alert: #7a3b2e;
  --serif: Georgia, "Times New Roman", "Liberation Serif", serif;
  --sans: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  font-family: var(--serif);
  color: var(--ink);
  font-size: 10.5pt;
  line-height: 1.55;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

/* ---------- pages ---------- */

.pdv-doc .page {
  width: 210mm;
  height: 297mm;
  background: var(--paper);
  border-top: none;
  margin: 0 auto;
  padding: 17mm 17mm 12mm 17mm;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}

@media screen {
  .pdv-doc { padding: 24px 0; }
  .pdv-doc .page { margin-bottom: 24px; box-shadow: 0 2px 14px rgba(40,32,18,.18); }
}

@media print {
  .pdv-doc .page { page-break-after: always; break-after: page; box-shadow: none; }
  .pdv-doc .page:last-child { page-break-after: auto; break-after: auto; }
}

/* ---------- pied de page ---------- */

.pdv-doc .foot {
  margin-top: auto;
  padding-top: 3mm;
  border-top: 0.4pt solid var(--line);
  display: flex;
  justify-content: space-between;
  font-family: var(--sans);
  font-size: 6.6pt;
  letter-spacing: .06em;
  color: var(--ink-faint);
}

/* ---------- typographie ---------- */

.pdv-doc .secnum {
  font-family: var(--sans);
  font-size: 7pt;
  letter-spacing: .2em;
  color: var(--ink-faint);
}

.pdv-doc h2.sec {
  font-size: 21pt;
  font-weight: normal;
  line-height: 1.15;
  letter-spacing: .01em;
  margin: 1mm 0 2.5mm 0;
}

.pdv-doc .sechead { border-bottom: 0.7pt solid var(--ink); padding-bottom: 3mm; margin-bottom: 5.5mm; }
.pdv-doc .sechead .lede { color: var(--ink-soft); font-size: 10pt; max-width: 150mm; margin: 0; }

.pdv-doc h3.sub {
  font-family: var(--sans);
  font-size: 8pt;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--ink);
  margin: 5mm 0 2mm 0;
}

.pdv-doc p { margin: 0; }
.pdv-doc p + p { margin-top: 2.2mm; }
.pdv-doc .muted { color: var(--ink-faint); }
.pdv-doc .small { font-size: 8.5pt; }

/* ---------- carte d'identite : lignes de faits ---------- */

.pdv-doc .fact {
  display: grid;
  grid-template-columns: 44mm 1fr 40mm;
  column-gap: 4mm;
  align-items: baseline;
  padding: 2.1mm 0;
  border-bottom: 0.4pt solid var(--line);
}
.pdv-doc .fact .f-label { font-family: var(--sans); font-size: 7.2pt; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); }
.pdv-doc .fact .f-value { font-size: 10.5pt; }
.pdv-doc .fact .f-status { text-align: right; }

/* ---------- valeur en bref ---------- */

.pdv-doc .value-band {
  border-top: 1pt solid var(--ink);
  border-bottom: 1pt solid var(--ink);
  padding: 6mm 0 5mm 0;
  margin: 2mm 0 5mm 0;
}
.pdv-doc .range {
  display: flex;
  align-items: baseline;
  gap: 5mm;
  justify-content: center;
}
.pdv-doc .range .bound { font-size: 25pt; letter-spacing: .01em; }
.pdv-doc .range .to { font-family: var(--sans); font-size: 8pt; letter-spacing: .2em; color: var(--ink-faint); text-transform: uppercase; }
.pdv-doc .range-caption { text-align: center; font-family: var(--sans); font-size: 7pt; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-faint); margin-top: 2mm; }

.pdv-doc .refline {
  display: flex; justify-content: center; align-items: baseline; gap: 4mm; margin-top: 4mm;
  font-family: var(--sans); font-size: 8pt; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft);
}

.pdv-doc .conf {
  display: flex; align-items: baseline; gap: 4mm;
  background: var(--cream);
  padding: 3.5mm 4.5mm;
  margin: 4mm 0;
}
.pdv-doc .conf .lvl { font-family: var(--sans); font-size: 8.5pt; font-weight: 700; letter-spacing: .2em; white-space: nowrap; }
.pdv-doc .conf .why { font-size: 9pt; color: var(--ink-soft); }

.pdv-doc .grid2 { display: grid; grid-template-columns: 1fr 1fr; column-gap: 8mm; }

.pdv-doc ul.plusminus { list-style: none; margin: 0; padding: 0; }
.pdv-doc ul.plusminus li { padding: 1.8mm 0 1.8mm 5mm; border-bottom: 0.4pt solid var(--line); position: relative; font-size: 9.5pt; }
.pdv-doc ul.plusminus li::before { content: ""; position: absolute; left: 0; top: 3.4mm; width: 2.4mm; height: 0.8pt; background: var(--bronze); }
.pdv-doc ul.plusminus.minus li::before { background: var(--alert); }

.pdv-doc .avis {
  margin-top: 5mm;
  padding: 4.5mm 5mm;
  border-left: 1.4pt solid var(--bronze);
  background: var(--cream);
  font-size: 11pt;
  line-height: 1.5;
}
.pdv-doc .avis .who { font-family: var(--sans); font-size: 6.8pt; letter-spacing: .22em; text-transform: uppercase; color: var(--bronze); margin-bottom: 1.6mm; }

/* ---------- moteurs et freins ---------- */

.pdv-doc .driver { display: grid; grid-template-columns: 40mm 1fr; column-gap: 5mm; padding: 2.8mm 0; border-bottom: 0.4pt solid var(--line); }
.pdv-doc .driver .d-level { font-family: var(--sans); font-size: 7pt; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.pdv-doc .driver .d-level.sf { color: var(--bronze); }
.pdv-doc .driver .d-level.sm { color: var(--bronze-soft); }
.pdv-doc .driver .d-level.n  { color: var(--ink-faint); }
.pdv-doc .driver .d-level.fm { color: var(--ink-soft); }
.pdv-doc .driver .d-name { font-size: 10pt; }
.pdv-doc .driver .d-expl { font-size: 8.8pt; color: var(--ink-soft); margin-top: .8mm; }

.pdv-doc .driver-cols { display: grid; grid-template-columns: 1fr 1fr; column-gap: 8mm; }
.pdv-doc .driver-cols .colhead {
  font-family: var(--sans); font-size: 7.4pt; letter-spacing: .2em; text-transform: uppercase;
  font-weight: 600; color: var(--ink); border-bottom: 0.7pt solid var(--ink);
  padding-bottom: 1.4mm; margin-bottom: 1mm;
}
.pdv-doc .driver-cols .driver { grid-template-columns: 1fr; row-gap: .6mm; }
.pdv-doc .driver-cols .driver .d-level { margin-bottom: .4mm; }

/* ---------- methode ---------- */

.pdv-doc ol.method { counter-reset: m; list-style: none; margin: 0; padding: 0; }
.pdv-doc ol.method li { counter-increment: m; display: grid; grid-template-columns: 10mm 1fr; column-gap: 3mm; padding: 2.6mm 0; border-bottom: 0.4pt solid var(--line); }
.pdv-doc ol.method li::before { content: counter(m, decimal-leading-zero); font-family: var(--sans); font-size: 9pt; color: var(--bronze); letter-spacing: .1em; }
.pdv-doc ol.method .m-t { font-family: var(--sans); font-size: 8pt; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; }
.pdv-doc ol.method .m-d { font-size: 9pt; color: var(--ink-soft); margin-top: .6mm; }

.pdv-doc .doctrine {
  margin-top: 5mm;
  padding: 4mm 5mm;
  border: 0.6pt solid var(--line-strong);
  background: var(--paper);
  font-size: 9.5pt;
  font-style: italic;
  color: var(--ink-soft);
}

/* ---------- couverture ---------- */

.pdv-doc .cover { justify-content: flex-start; }
.pdv-doc .cover .c-top { display: flex; justify-content: space-between; font-family: var(--sans); font-size: 6.8pt; letter-spacing: .22em; text-transform: uppercase; color: var(--ink-faint); border-bottom: 0.5pt solid var(--line); padding-bottom: 3mm; }
.pdv-doc .cover .c-title { margin-top: 34mm; }
.pdv-doc .cover .c-title .over { font-family: var(--sans); font-size: 8pt; letter-spacing: .34em; text-transform: uppercase; color: var(--bronze); margin-bottom: 4mm; }
.pdv-doc .cover .c-h1 { font-family: var(--serif); font-size: 40pt; font-weight: normal; line-height: 1.04; letter-spacing: .005em; margin: 0; text-transform: none; }
.pdv-doc .cover .c-prop { margin-top: 12mm; border-top: 0.7pt solid var(--ink); padding-top: 5mm; font-size: 13pt; line-height: 1.5; }
.pdv-doc .cover .c-prop .q { color: var(--ink-soft); }
.pdv-doc .cover .c-geo {
  margin-top: 9mm;
  font-family: var(--sans); font-size: 7pt; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-faint);
  display: flex; align-items: center; gap: 3mm; flex-wrap: wrap;
}
.pdv-doc .cover .c-geo .sep { color: var(--line-strong); }
.pdv-doc .cover .c-meta { margin-top: auto; display: grid; grid-template-columns: 1fr 1fr; row-gap: 3.5mm; border-top: 0.5pt solid var(--line); padding-top: 5mm; }
.pdv-doc .cover .c-meta .m { font-size: 9.5pt; }
.pdv-doc .cover .c-meta .m .k { font-family: var(--sans); font-size: 6.6pt; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-faint); display: block; margin-bottom: 1mm; }

/* ---------- rue par rue ---------- */

.pdv-doc .gran { display: flex; align-items: center; gap: 2.5mm; flex-wrap: wrap; font-family: var(--sans); font-size: 7pt; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 4mm; }
.pdv-doc .gran b { color: var(--ink); font-weight: 600; }
.pdv-doc .gran .arrow { color: var(--line-strong); }

.pdv-doc .editorial { columns: 2; column-gap: 8mm; font-size: 9.8pt; text-align: justify; hyphens: auto; }
.pdv-doc .editorial p { break-inside: avoid-column; }

/* ---------- mention ---------- */

.pdv-doc .mention {
  margin-top: 6mm;
  padding-top: 3.5mm;
  border-top: 0.5pt solid var(--line);
  font-size: 7.8pt;
  color: var(--ink-faint);
  line-height: 1.5;
}
.pdv-doc .mention .warn { font-family: var(--sans); font-size: 6.6pt; letter-spacing: .16em; text-transform: uppercase; color: var(--alert); display: block; margin-bottom: 1.4mm; }

/* ---------- sous-titre preuve ---------- */

.pdv-doc .proof {
  font-family: var(--sans);
  font-size: 7.4pt;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--bronze);
  margin: 1mm 0 0 0;
}

/* ---------- marquage fiction ---------- */

.pdv-doc .fict {
  display: inline-block;
  font-family: var(--sans);
  font-size: 6.4pt;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--bronze);
  border: 0.7pt solid var(--bronze-soft);
  padding: .6mm 2mm;
  border-radius: 1px;
  background: var(--paper);
}

.pdv-doc .fict-banner {
  border: 1pt solid var(--bronze);
  background: var(--cream);
  text-align: center;
  padding: 3.5mm 5mm;
  font-family: var(--sans);
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--ink);
  font-size: 9pt;
  font-weight: 700;
}
.pdv-doc .fict-banner span { display: block; font-size: 6.8pt; font-weight: 400; letter-spacing: .18em; color: var(--bronze); margin-top: 1.4mm; }

.pdv-doc .fict-note {
  font-family: var(--sans);
  font-size: 7.4pt;
  letter-spacing: .04em;
  color: var(--ink-soft);
  border-left: 1.4pt solid var(--bronze);
  background: var(--cream);
  padding: 2.6mm 4mm;
  margin: 3mm 0;
}

/* ---------- transactions ---------- */

.pdv-doc .txd-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4.5mm; }
.pdv-doc .txd-card { border: 0.6pt solid var(--line-strong); background: var(--paper); padding: 3.5mm 4.5mm; }
.pdv-doc .txd-head { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 0.5pt solid var(--line); padding-bottom: 1.4mm; margin-bottom: 2mm; }
.pdv-doc .txd-id { font-family: var(--sans); font-size: 8pt; font-weight: 700; letter-spacing: .16em; }
.pdv-doc .badge { font-family: var(--sans); font-size: 6.3pt; font-weight: 700; letter-spacing: .14em; padding: .5mm 1.8mm; border: 0.6pt solid currentColor; }
.pdv-doc .badge.tp { color: var(--bronze); }
.pdv-doc .badge.pe { color: var(--ink-soft); }
.pdv-doc .badge.in { color: var(--ink-faint); }
.pdv-doc .txd-zone { font-family: var(--sans); font-size: 6.8pt; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 1.6mm; }
.pdv-doc .txd-price { font-size: 14pt; }
.pdv-doc .txd-price small { font-family: var(--sans); font-size: 6.4pt; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-faint); display: block; }
.pdv-doc .txd-specs { font-family: var(--sans); font-size: 7.3pt; color: var(--ink-soft); margin-top: 1.4mm; line-height: 1.6; }
.pdv-doc .txd-why { font-size: 8.4pt; color: var(--ink-soft); margin-top: 1.8mm; border-top: 0.3pt dotted var(--line); padding-top: 1.6mm; }

/* ---------- strategie ---------- */

.pdv-doc .duo { display: grid; grid-template-columns: 1fr 1fr; column-gap: 0; border: 0.7pt solid var(--ink); margin: 4mm 0 5mm 0; }
.pdv-doc .duo > div { padding: 4.5mm 5mm; }
.pdv-doc .duo > div + div { border-left: 0.7pt solid var(--ink); }
.pdv-doc .duo .t { font-family: var(--sans); font-size: 6.8pt; letter-spacing: .22em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 2mm; }
.pdv-doc .duo .v { font-size: 17pt; }
.pdv-doc .duo .note { font-size: 8pt; color: var(--ink-soft); margin-top: 1.6mm; }

/* ---------- CTA du document ---------- */

.pdv-doc .cta {
  margin-top: 6mm;
  border-top: 1pt solid var(--ink);
  padding-top: 4.5mm;
  text-align: center;
}
.pdv-doc .cta .c1 { font-size: 12.5pt; }
.pdv-doc .cta a.c2 {
  display: inline-block;
  margin-top: 3mm;
  font-family: var(--sans);
  font-size: 9pt;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--paper);
  background: var(--ink);
  padding: 3mm 7mm;
  text-decoration: none;
}
.pdv-doc .cta a.c2:focus-visible { outline: 2px solid var(--bronze); outline-offset: 2px; }
.pdv-doc .cta .c3 { font-family: var(--sans); font-size: 7.6pt; letter-spacing: .18em; color: var(--ink-faint); margin-top: 2.4mm; text-transform: uppercase; }

/* ---------- mobile : le document reflue pour rester lisible ---------- */

@media screen and (max-width: 820px) {
  .pdv-doc .page { width: 100%; height: auto; min-height: 0; padding: 7vw 6vw; }
  .pdv-doc .cover { min-height: 130vw; }
  .pdv-doc .fact { grid-template-columns: 1fr; row-gap: 1mm; }
  .pdv-doc .fact .f-status { text-align: left; }
  .pdv-doc .fact .f-status:empty { display: none; }
  .pdv-doc .grid2 { display: block; }
  .pdv-doc .grid2 > * + * { margin-top: 4mm; }
  .pdv-doc .editorial { columns: 1; }
  .pdv-doc .driver-cols { display: block; }
  .pdv-doc .driver-cols > * + * { margin-top: 4mm; }
  .pdv-doc .cover .c-meta { grid-template-columns: 1fr; }
  .pdv-doc .txd-grid { display: block; }
  .pdv-doc .txd-grid > * + * { margin-top: 4mm; }
  .pdv-doc .range { flex-wrap: wrap; row-gap: 1mm; }
  .pdv-doc .range .bound { font-size: 19pt; }
  .pdv-doc .refline { flex-wrap: wrap; text-align: center; }
  .pdv-doc .duo { display: block; }
  .pdv-doc .duo > div + div { border-left: none; border-top: 0.7pt solid var(--ink); }
  /* bloc Confiance : empilement (correction validee 8D-2 TER) */
  .pdv-doc .conf { display: block; }
  .pdv-doc .conf .lvl { display: block; white-space: normal; margin-bottom: 2mm; }
}
