.pac-simu-wrap {
  /* Couleurs de la charte HDR Energie (mai 2026) — ne pas modifier */
  --canard: #005260; /* vert canard : HDR + baseline */
  --eco: #94b422; /* vert éco : ENERGIE */

  /* Nuances dérivées pour l'écran (contraste, survol, fonds) */
  --canard-d: #003b46;
  --eco-d: #6e8719; /* vert éco assombri : seul utilisable pour du texte (4,6:1 sur blanc) */
  --eco-l: #f2f8df;
  --ink: #06333c; /* texte principal : canard très assombri */
  --ink-2: #005260; /* texte secondaire : le vert canard de la charte, 8,8:1 */
  --ink-3: #3b7784; /* texte tertiaire : canard éclairci, 5,1:1 — l'ancien gris
                            tombait à 3,1:1, sous le seuil de lisibilité */
  --paper: #ffffff;
  --mist: #ebf2f2;
  --mist-2: #f6fafa;
  --line: #d2e0e1;
  --radius: 14px;
  --radius-s: 9px;

  all: initial;
  display: block;
  font-family:
    "Figtree",
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;

  .row > div {
    padding: 0;
  }

  svg {
    width: auto;
    height: auto;
  }
}
.pac-simu-wrap *,
.pac-simu-wrap *::before,
.pac-simu-wrap *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family: inherit;
}
.pac-simu-wrap button,
.pac-simu-wrap input,
.pac-simu-wrap select,
.pac-simu-wrap textarea {
  font: inherit;
  color: inherit;
}

/* ---------- Ossature ---------- */
.pac-simu-wrap .shell {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  max-width: 1120px;
  margin: 0 auto;
  box-shadow:
    0 1px 2px rgba(11, 27, 43, 0.04),
    0 12px 32px -20px rgba(11, 27, 43, 0.28);
}
.pac-simu-wrap .masthead {
  background: var(--paper);
  border-bottom: 3px solid var(--eco);
  padding: 16px 26px;
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.pac-simu-wrap .masthead img {
  height: 44px;
  width: auto;
  display: block;
}
.pac-simu-wrap .masthead .claim {
  font-size: 10.5px;
  letter-spacing: 0.16em;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ink-3);
  border-left: 1px solid var(--line);
  padding-left: 18px;
}
.pac-simu-wrap .masthead .rule {
  flex: 1;
  min-width: 8px;
}
.pac-simu-wrap .masthead .rge {
  height: 34px;
  width: auto;
  display: block;
  flex: none;
}
@media (max-width: 600px) {
  .pac-simu-wrap .masthead {
    padding: 14px 18px;
    gap: 12px;
  }
  .pac-simu-wrap .masthead img {
    height: 36px;
  }
  .pac-simu-wrap .masthead .rge {
    height: 26px;
  }
  .pac-simu-wrap .masthead .claim {
    display: none;
  }
}

.pac-simu-wrap .body {
  display: grid;
  grid-template-columns: 268px 1fr;
  min-height: 500px;
}
@media (max-width: 860px) {
  .pac-simu-wrap .body {
    grid-template-columns: 1fr;
  }
}

/* ---------- Rail gauche : la fiche projet ---------- */
.pac-simu-wrap .rail {
  background: var(--mist-2);
  border-right: 1px solid var(--line);
  padding: 24px 22px 28px;
}
@media (max-width: 860px) {
  .pac-simu-wrap .rail {
    border-right: 0;
    border-bottom: 1px solid var(--line);
    padding: 16px 20px;
  }
  .pac-simu-wrap .rail.is-collapsed .sheet {
    display: none;
  }
}
.pac-simu-wrap .rail h2 {
  margin: 0;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ink-3);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.pac-simu-wrap .rail h2 .toggle {
  display: none;
}
@media (max-width: 860px) {
  .pac-simu-wrap .rail h2 .toggle {
    display: inline;
    color: var(--canard);
    cursor: pointer;
  }
}

.pac-simu-wrap .sheet {
  margin-top: 16px;
  border-left: 1px solid var(--line);
  padding-left: 0;
}
.pac-simu-wrap .sheet .row {
  display: grid;
  grid-template-columns: 12px 1fr;
  gap: 10px;
  padding: 9px 0 9px 12px;
  position: relative;
}
.pac-simu-wrap .sheet .row + .row {
  border-top: 1px dashed var(--line);
}
/* Lignes modifiables : on repart d'une étape sans refaire toute la simulation */
.pac-simu-wrap .sheet button.row {
  background: none;
  border: 0;
  border-radius: 0;
  font: inherit;
  color: inherit;
  width: 100%;
  text-align: left;
  cursor: pointer;
  transition: background 0.12s;
}
.pac-simu-wrap .sheet button.row + button.row,
.pac-simu-wrap .sheet button.row + .row {
  border-top: 1px dashed var(--line);
}
.pac-simu-wrap .sheet button.row:hover {
  background: var(--eco-l);
}
.pac-simu-wrap .sheet button.row:focus-visible {
  outline: 2px solid var(--canard);
  outline-offset: -2px;
}
.pac-simu-wrap .sheet button.row .v {
  display: flex;
  align-items: center;
  gap: 6px;
}
.pac-simu-wrap .sheet button.row .pen {
  opacity: 0;
  flex: none;
  color: var(--eco-d);
  transition: opacity 0.12s;
}
.pac-simu-wrap .sheet button.row:hover .pen,
.pac-simu-wrap .sheet button.row:focus-visible .pen {
  opacity: 1;
}
.pac-simu-wrap .sheet .row .tick {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  margin-top: 6px;
  border: 1.5px solid var(--line);
  background: var(--paper);
  margin-left: -17px;
  transition: all 0.25s ease;
}
.pac-simu-wrap .sheet .row.filled .tick {
  background: var(--eco);
  border-color: var(--eco);
}
.pac-simu-wrap .sheet .k {
  font-size: 10px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.pac-simu-wrap .sheet .v {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink);
  margin-top: 1px;
}
.pac-simu-wrap .sheet .row:not(.filled) .v {
  color: var(--ink-3);
  font-weight: 400;
}

.pac-simu-wrap .reassure {
  margin-top: 26px;
  display: grid;
  gap: 9px;
}
.pac-simu-wrap .reassure div {
  font-size: 12px;
  color: var(--ink-2);
  display: flex;
  gap: 8px;
  align-items: flex-start;
}
.pac-simu-wrap .reassure svg {
  flex: none;
  margin-top: 2px;
}

/* ---------- Panneau principal ---------- */
.pac-simu-wrap .stage {
  padding: 30px 34px 34px;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
@media (max-width: 600px) {
  .pac-simu-wrap .stage {
    padding: 22px 18px 26px;
  }
}

.pac-simu-wrap .eyebrow {
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--eco-d);
  display: flex;
  align-items: center;
  gap: 10px;
}
.pac-simu-wrap .eyebrow .bar {
  flex: 1;
  height: 2px;
  background: var(--mist);
  border-radius: 2px;
  overflow: hidden;
  max-width: 190px;
}
.pac-simu-wrap .eyebrow .bar span {
  display: block;
  height: 100%;
  background: var(--eco);
  transition: width 0.4s cubic-bezier(0.2, 0.7, 0.3, 1);
}

.pac-simu-wrap h1 {
  font-size: 33px;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.1;
  margin-top: 14px;
  max-width: 21ch;
}
@media (max-width: 600px) {
  .pac-simu-wrap h1 {
    font-size: 25px;
  }
}
/* Vert éco assombri : le vert pur de la charte ne fait que 2,4:1 sur blanc,
   insuffisant même pour un grand titre (seuil 3:1). Celui-ci atteint 4,6:1. */
.pac-simu-wrap h1.accent {
  color: var(--eco-d);
}
.pac-simu-wrap h1.canard {
  color: var(--canard);
}
.pac-simu-wrap .lede {
  color: var(--ink-2);
  font-size: 15.5px;
  line-height: 1.5;
  margin-top: 11px;
  max-width: 52ch;
}

.pac-simu-wrap .fields {
  margin-top: 24px;
  display: grid;
  gap: 20px;
}
.pac-simu-wrap .fieldset > legend,
.pac-simu-wrap .lbl {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink);
  display: block;
  margin-bottom: 11px;
  padding-left: 11px;
  border-left: 3px solid var(--eco);
  line-height: 1.35;
}
.pac-simu-wrap .hint {
  font-size: 12.5px;
  color: var(--ink-3);
  margin-top: 7px;
}

/* Choix en cartes */
.pac-simu-wrap .opts {
  display: grid;
  gap: 9px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.pac-simu-wrap .opts.cols-2 {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.pac-simu-wrap .opts.cols-1 {
  grid-template-columns: 1fr;
}
.pac-simu-wrap .opt {
  text-align: left;
  background: var(--paper);
  border: 1.5px solid var(--line);
  border-radius: var(--radius-s);
  padding: 13px 14px;
  cursor: pointer;
  transition:
    border-color 0.15s,
    background 0.15s,
    transform 0.12s;
  display: flex;
  gap: 11px;
  align-items: flex-start;
}
.pac-simu-wrap .opt:hover {
  border-color: var(--ink-3);
}
.pac-simu-wrap .opt:active {
  transform: scale(0.99);
}
.pac-simu-wrap .opt .box {
  width: 17px;
  height: 17px;
  flex: none;
  border: 1.5px solid var(--line);
  border-radius: 5px;
  margin-top: 1px;
  display: grid;
  place-items: center;
  transition: all 0.15s;
}
.pac-simu-wrap .opt.radio .box {
  border-radius: 50%;
}
.pac-simu-wrap .opt .box svg {
  opacity: 0;
  transition: opacity 0.15s;
}
.pac-simu-wrap .opt > span:not(.box) {
  display: block;
  min-width: 0;
}
.pac-simu-wrap .opt .t {
  display: block;
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: -0.005em;
  line-height: 1.3;
}
.pac-simu-wrap .opt .s {
  display: block;
  font-size: 12.5px;
  color: var(--ink-3);
  font-weight: 400;
  line-height: 1.35;
  margin-top: 4px;
}
.pac-simu-wrap .opt.on {
  border-color: var(--eco-d);
  background: var(--eco-l);
}
.pac-simu-wrap .opt.on .box {
  background: var(--eco-d);
  border-color: var(--eco-d);
}
.pac-simu-wrap .opt.on .box svg {
  opacity: 1;
}
.pac-simu-wrap .opt:focus-visible {
  outline: 2px solid var(--canard);
  outline-offset: 2px;
}

/* Champs */
.pac-simu-wrap .inp {
  width: 100%;
  background: var(--paper);
  border: 1.5px solid var(--line);
  border-radius: var(--radius-s);
  padding: 11px 13px;
  font-size: 15px;
  font-weight: 500;
  transition: border-color 0.15s;
}
.pac-simu-wrap .inp:focus {
  outline: none;
  border-color: var(--canard);
}
.pac-simu-wrap .inp::placeholder {
  color: var(--ink-3);
  font-weight: 400;
}
.pac-simu-wrap select.inp {
  appearance: none;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237B8CA0' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 13px center;
  padding-right: 34px;
}
.pac-simu-wrap .grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 520px) {
  .pac-simu-wrap .grid-2 {
    grid-template-columns: 1fr;
  }
}

/* Slider */
.pac-simu-wrap .slider-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.pac-simu-wrap .slider-val {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}
.pac-simu-wrap .slider-val small {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink-2);
}
/* Même encadré que le code postal : on doit voir du premier coup d'œil que la
   valeur se saisit au clavier, le curseur n'étant qu'un second moyen de réglage. */
.pac-simu-wrap .slider-val input.inp {
  width: 104px;
  text-align: center;
  padding: 10px 8px;
  font-size: 21px;
  font-weight: 800;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.pac-simu-wrap input[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 4px;
  background: var(--mist);
  border-radius: 4px;
  margin-top: 14px;
  border: none;
}
.pac-simu-wrap input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--eco-d);
  border: 3px solid #fff;
  box-shadow: 0 1px 5px rgba(11, 27, 43, 0.3);
  cursor: pointer;
}
.pac-simu-wrap input[type="range"]::-moz-range-thumb {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--eco-d);
  border: 3px solid #fff;
  box-shadow: 0 1px 5px rgba(11, 27, 43, 0.3);
  cursor: pointer;
}

/* Navigation */
.pac-simu-wrap .nav {
  margin-top: auto;
  padding-top: 26px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.pac-simu-wrap .btn {
  border: 0;
  border-radius: var(--radius-s);
  font-size: 14px !important;
  font-weight: 600;
  cursor: pointer;
  transition:
    background 0.15s,
    opacity 0.15s;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  height: auto !important;
  line-height: 26px !important;
  padding: 10px 20px !important;

  span.text {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    line-height: 26px !important;
  }
}
.pac-simu-wrap .btn-go {
  background: var(--canard);
  color: #fff;
}
.pac-simu-wrap .btn-go:hover {
  background: var(--canard-d);
}
.pac-simu-wrap .btn-go[disabled] {
  opacity: 0.38;
  cursor: not-allowed;
}
.pac-simu-wrap .btn-back {
  background: transparent;
  color: var(--ink-2);
  padding-left: 4px;
  padding-right: 10px;
  font-weight: 500;
}
.pac-simu-wrap .btn-back:hover {
  color: var(--ink);
}
.pac-simu-wrap .btn-ghost {
  background: var(--mist);
  color: var(--ink);
}
.pac-simu-wrap .btn:focus-visible {
  outline: 2px solid var(--canard);
  outline-offset: 2px;
}
.pac-simu-wrap .navnote {
  font-size: 12px;
  color: var(--ink-3);
  margin-left: auto;
  text-align: right;
}
/* Signature en clôture du résultat, à la place du rappel téléphonique :
   le numéro figure déjà en grand dans le bloc d'appel juste au-dessus. */
.pac-simu-wrap .navlogo {
  height: 30px;
  width: auto;
  margin-left: auto;
  display: block;
  opacity: 0.9;
}

/* ---------- Résultats ---------- */
.pac-simu-wrap .verdict {
  display: grid;
  gap: 22px;
  margin-top: 20px;

  > * {
    min-width: 0;
  }
}
/* Le chiffre clé : c'est l'élément que la page doit servir. Taille fluide pour
   qu'il reste imposant sur grand écran sans déborder sur un téléphone. */
.pac-simu-wrap .headline {
  background: var(--canard);
  color: #fff;
  border-radius: var(--radius);
  padding: 32px 34px 34px;
  display: grid;
  gap: 7px;
  text-align: center;
  justify-items: center;
}
.pac-simu-wrap .headline .k {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82);
}
.pac-simu-wrap .headline .n {
  color: #fff;
  font-variant-numeric: tabular-nums;
  font-size: clamp(42px, 8.2vw, 66px);
  font-weight: 800;
  letter-spacing: -0.038em;
  line-height: 0.98;
}
.pac-simu-wrap .headline .n small {
  color: #fff;
  font-size: clamp(17px, 2.8vw, 24px);
  font-weight: 500;
  letter-spacing: -0.015em;
  opacity: 0.78;
  margin-left: 6px;
}
.pac-simu-wrap .headline .s {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.88);
  margin-top: 8px;
  max-width: 48ch;
}
@media (max-width: 600px) {
  .pac-simu-wrap .headline {
    padding: 24px 20px 26px;
  }
}

.pac-simu-wrap .kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px;
}
.pac-simu-wrap .kpi {
  border: 1px solid var(--line);
  border-radius: var(--radius-s);
  padding: 14px;
  background: var(--paper);
}
.pac-simu-wrap .kpi .k {
  font-size: 9.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.pac-simu-wrap .kpi .n {
  font-variant-numeric: tabular-nums;
  font-size: 21px;
  font-weight: 800;
  letter-spacing: -0.025em;
  margin-top: 5px;
}
.pac-simu-wrap .kpi .n small {
  font-size: 12px;
  font-weight: 500;
  color: var(--ink-3);
  margin-left: 3px;
  letter-spacing: 0;
}
.pac-simu-wrap .kpi .s {
  font-size: 11.5px;
  color: var(--ink-3);
  margin-top: 3px;
}

.pac-simu-wrap .block {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}
.pac-simu-wrap .block > header {
  padding: 16px 18px;
  background: var(--mist-2);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.pac-simu-wrap .block > header h3 {
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.pac-simu-wrap .block > header .tag {
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.pac-simu-wrap .block .in {
  padding: 18px;
}

/* SIGNATURE : la cascade des aides */
.pac-simu-wrap .cascade {
  display: grid;
  gap: 3px;
}
.pac-simu-wrap .casc {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
}
.pac-simu-wrap .casc + .casc {
  border-top: 1px solid var(--mist);
}
.pac-simu-wrap .casc .lab {
  font-size: 13.5px;
  font-weight: 500;
}
.pac-simu-wrap .casc .lab em {
  font-style: normal;
  color: var(--ink-3);
  font-size: 12px;
  display: block;
}
.pac-simu-wrap .casc .amt {
  font-variant-numeric: tabular-nums;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.015em;
  white-space: nowrap;
}
.pac-simu-wrap .casc .track {
  grid-column: 1 / -1;
  height: 8px;
  border-radius: 4px;
  background: var(--mist);
  overflow: hidden;
}
.pac-simu-wrap .casc .track b {
  display: block;
  height: 100%;
  width: 0;
  border-radius: 4px;
  transition: width 0.8s cubic-bezier(0.2, 0.75, 0.25, 1);
}
.pac-simu-wrap .casc.cost .track b {
  background: var(--ink-2);
}
.pac-simu-wrap .casc.aid .amt {
  color: var(--eco-d);
}
.pac-simu-wrap .casc.aid .track b {
  background: var(--eco);
}
.pac-simu-wrap .casc.rest {
  border-top: 2px solid var(--ink);
  margin-top: 5px;
  padding-top: 12px;
}
.pac-simu-wrap .casc.rest .lab {
  font-weight: 700;
  font-size: 15px;
}
.pac-simu-wrap .casc.rest .amt {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.03em;
}
.pac-simu-wrap .casc.rest .track b {
  background: var(--canard);
}

/* Graphe production mensuelle */
.pac-simu-wrap .chart {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  height: 96px;
}
.pac-simu-wrap .chart div {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 100%;
}
.pac-simu-wrap .chart div b {
  display: block;
  background: var(--eco);
  border-radius: 3px 3px 0 0;
  height: 0;
  transition: height 0.7s cubic-bezier(0.2, 0.75, 0.25, 1);
}
.pac-simu-wrap .chart-x {
  display: flex;
  gap: 4px;
  margin-top: 6px;
}
.pac-simu-wrap .chart-x span {
  flex: 1;
  text-align: center;
  font-size: 9px;
  color: var(--ink-3);
}

.pac-simu-wrap .note {
  font-size: 11.5px;
  color: var(--ink-3);
  line-height: 1.55;
}
.pac-simu-wrap .note strong {
  color: var(--ink-2);
  font-weight: 600;
}

/* Formulaire de contact */
.pac-simu-wrap .teaser {
  position: relative;
}
.pac-simu-wrap .locked {
  filter: blur(7px);
  opacity: 0.5;
  pointer-events: none;
  user-select: none;
}
.pac-simu-wrap .padlock {
  border: 1.5px dashed var(--eco-d);
  background: var(--eco-l);
  border-radius: var(--radius);
  padding: 18px 20px;
  display: flex;
  gap: 13px;
  align-items: flex-start;
}
.pac-simu-wrap .padlock .t {
  font-weight: 700;
  font-size: 15px;
}
.pac-simu-wrap .padlock .s {
  font-size: 13px;
  color: var(--ink-2);
  margin-top: 3px;
}
.pac-simu-wrap .consent {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 12px;
  color: var(--ink-2);
  line-height: 1.5;
}
.pac-simu-wrap .consent input {
  margin-top: 2px;
  width: 16px;
  height: 16px;
  accent-color: var(--eco-d);
  flex: none;
}
.pac-simu-wrap .err {
  color: #c0341a;
  font-size: 12.5px;
  font-weight: 500;
}
.pac-simu-wrap .succ {
  background: var(--eco-l);
  border: 1px solid rgba(110, 135, 25, 0.32);
  color: #4c5f12;
  border-radius: var(--radius-s);
  padding: 13px 15px;
  font-size: 13.5px;
  font-weight: 500;
}

.pac-simu-wrap .fade {
  animation: hdrfade 0.34s cubic-bezier(0.2, 0.7, 0.3, 1);
}
@keyframes hdrfade {
  from {
    opacity: 0;
    transform: translateY(7px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pac-simu-wrap * {
    animation: none !important;
    transition: none !important;
  }
}

/* --- SIGNATURE : la comparaison facture avant / après --- */
.pac-simu-wrap .versus {
  display: grid;
  gap: 14px;
}
.pac-simu-wrap .vs-row {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 14px;
  align-items: center;
}
@media (max-width: 560px) {
  .pac-simu-wrap .vs-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}
.pac-simu-wrap .vs-row .who {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink-2);
  line-height: 1.3;
}
.pac-simu-wrap .vs-row .who em {
  font-style: normal;
  display: block;
  font-weight: 400;
  color: var(--ink-3);
  font-size: 11.5px;
}
.pac-simu-wrap .vs-bar {
  position: relative;
  height: 40px;
  border-radius: 6px;
  background: var(--mist);
  overflow: hidden;
}
.pac-simu-wrap .vs-bar b {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  border-radius: 6px;
  transition: width 0.9s cubic-bezier(0.2, 0.75, 0.25, 1);
}
.pac-simu-wrap .vs-row.before .vs-bar b {
  background: var(--ink-2);
}
.pac-simu-wrap .vs-row.after .vs-bar b {
  background: var(--eco);
}
.pac-simu-wrap .vs-bar span small {
  font-size: 11.5px;
  font-weight: 600;
  opacity: 0.85;
  margin-left: 2px;
  letter-spacing: 0;
}
.pac-simu-wrap .vs-bar span {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 13px;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #fff;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
}
.pac-simu-wrap .vs-delta {
  margin-top: 4px;
  background: var(--eco-l);
  border-radius: var(--radius-s);
  padding: 12px 15px;
  font-size: 14px;
  font-weight: 600;
  color: #46560f;
}
.pac-simu-wrap .vs-delta strong {
  font-size: 19px;
  font-weight: 800;
  letter-spacing: -0.02em;
}

/* --- Bandeau d'alerte technique (émetteurs haute température, copropriété…) --- */
.pac-simu-wrap .flag {
  border-left: 3px solid var(--canard);
  background: var(--mist-2);
  padding: 13px 16px;
  border-radius: 0 var(--radius-s) var(--radius-s) 0;
}
.pac-simu-wrap .flag .t {
  font-weight: 700;
  font-size: 13.5px;
}
.pac-simu-wrap .flag .s {
  font-size: 12.5px;
  color: var(--ink-2);
  margin-top: 3px;
}

/* --- Tampon « Coup de pouce » : cocarde d'aide d'État, légèrement de travers --- */
.pac-simu-wrap .stamp {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 6px;
  background: var(--paper);
  border: 1.5px solid var(--eco-d);
  color: var(--eco-d);
  border-radius: 4px;
  padding: 3px 7px 3px 5px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1;
  white-space: nowrap;
  transform: rotate(-2.5deg);
  transform-origin: left center;
  box-shadow:
    inset 0 0 0 1px var(--paper),
    inset 0 0 0 2.5px rgba(110, 135, 25, 0.22);
}
.pac-simu-wrap .stamp svg {
  flex: none;
}
/* Même tampon, repris dans l'encart d'explication : on l'aligne sur le titre */
.pac-simu-wrap .flag .t .stamp {
  margin-top: 0;
  margin-left: 6px;
  vertical-align: -2px;
}

/* --- Retour sur investissement --- */
.pac-simu-wrap .roi {
  display: grid;
  gap: 18px;
}
.pac-simu-wrap .roi-chart {
  position: relative;
}
.pac-simu-wrap .roi-chart svg {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
}
.pac-simu-wrap .roi-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 12px;
}
.pac-simu-wrap .roi-legend span {
  font-size: 11.5px;
  color: var(--ink-2);
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.pac-simu-wrap .roi-legend i {
  width: 14px;
  height: 3px;
  border-radius: 2px;
  display: block;
  font-style: normal;
}
.pac-simu-wrap .roi-hero {
  background: var(--eco-l);
  border-radius: var(--radius-s);
  padding: 15px 18px;
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
.pac-simu-wrap .roi-hero b {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -0.025em;
  color: #46560f;
  font-variant-numeric: tabular-nums;
}
.pac-simu-wrap .roi-hero span {
  font-size: 13.5px;
  color: var(--ink-2);
  font-weight: 500;
}

/* --- Appel direct. Seul bloc plein de la page de résultat après le bandeau
       d'en-tête : au milieu de cartes blanches, il doit se lire comme une
       action et non comme un résultat de plus. --- */
.pac-simu-wrap .call {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
  background: var(--canard);
  border-radius: var(--radius);
  padding: 26px 28px;
  margin: 10px 0;
  text-decoration: none;
  color: #fff;
  box-shadow: 0 14px 30px -16px rgba(0, 82, 96, 0.6);
  transition:
    transform 0.15s,
    box-shadow 0.15s;
}
.pac-simu-wrap .call:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 34px -16px rgba(0, 82, 96, 0.7);
}
.pac-simu-wrap .call:focus-visible {
  outline: 3px solid var(--eco);
  outline-offset: 3px;
}
.pac-simu-wrap .call .txt {
  min-width: 0;
  flex: 1 1 240px;
}
.pac-simu-wrap .call .t {
  display: block;
  font-weight: 800;
  font-size: 19px;
  letter-spacing: -0.02em;
  color: #fff;
}
.pac-simu-wrap .call .s {
  display: block;
  font-size: 13.5px;
  color: rgba(255, 255, 255, 0.75);
  margin-top: 5px;
  line-height: 1.45;
}
.pac-simu-wrap .call .num {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 11px;
  background: var(--eco);
  color: var(--ink);
  padding: 14px 22px;
  border-radius: var(--radius-s);
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  transition:
    background 0.15s,
    color 0.15s;
}
/* Au repos : encre foncée sur vert éco. Au survol : le numéro passe en blanc et
   la pastille s'assombrit d'autant. Sans cet assombrissement, du blanc sur le
   vert de la charte tomberait à 2,4:1 — illisible ; sur ce vert profond il
   remonte à 6,7:1. Les états sont tous déclarés pour qu'une règle « a:hover »
   du thème WordPress ne puisse pas s'y substituer. */
.pac-simu-wrap .call .num,
.pac-simu-wrap .call:visited .num {
  color: var(--ink);
}
.pac-simu-wrap .call:hover .num,
.pac-simu-wrap .call:focus .num,
.pac-simu-wrap .call:focus-visible .num,
.pac-simu-wrap .call:active .num {
  background: #4e660f;
  color: #fff;
}
.pac-simu-wrap .call .num svg {
  color: inherit;
  fill: currentColor;
}
.pac-simu-wrap .call:hover .t,
.pac-simu-wrap .call:focus .t,
.pac-simu-wrap .call:active .t {
  color: #fff;
}
.pac-simu-wrap .call:hover .s,
.pac-simu-wrap .call:focus .s,
.pac-simu-wrap .call:active .s {
  color: rgba(255, 255, 255, 0.75);
}
@media (max-width: 620px) {
  .pac-simu-wrap .call {
    padding: 22px 18px;
    gap: 16px;
  }
  .pac-simu-wrap .call .t {
    font-size: 17px;
  }
  .pac-simu-wrap .call .num {
    width: 100%;
    justify-content: center;
    font-size: 24px;
    padding: 15px 0;
  }
}

/* --- Envoi de l'estimation par e-mail, en clôture du résultat --- */
.pac-simu-wrap .sendbox {
  text-align: center;
  border-top: 1px solid var(--line);
  padding-top: 26px;
  margin-top: 4px;
}
.pac-simu-wrap .sendbox .note {
  margin-top: 11px;
}
.pac-simu-wrap .sendbox .err {
  margin-top: 11px;
}
.pac-simu-wrap .sendbox b {
  color: var(--ink);
  font-weight: 700;
}
.pac-simu-wrap .sendbox .succ b {
  color: inherit;
}

/* --- Repli du panneau d'affinage --- */
.pac-simu-wrap .fold-close {
  background: none;
  border: 0;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-2);
  padding: 4px 0;
  margin-top: 4px;
}
.pac-simu-wrap .fold-close:hover {
  color: var(--ink);
}

/* --- Mention légale compacte sous le formulaire --- */
.pac-simu-wrap .legal {
  font-size: 11.5px;
  color: var(--ink-3);
  line-height: 1.5;
}
.pac-simu-wrap .legal a {
  color: var(--ink-2);
}
