/* ═══════════════════════════════════════════════════════════════════════
   Welcome RDV — tunnel de pré-inscription pro (chantier 11)

   Jetons repris TELS QUELS de welcome-rdv-child/assets/pros-v2.css
   (relevé ligne à ligne sur la 2.10.80) : c'est la même maison.
   La carte de l'écran 3 reprend .res-carte de assets/resultats.css, pour
   que la pro reconnaisse la page qu'elle aura sur /zone/.

   Page à thème UNIQUE, volontairement : le tunnel est une page « papier »
   claire en production. Tout est peint explicitement, rien n'hérite.
   ═══════════════════════════════════════════════════════════════════════ */

:root{
  --wp-noir:#131009; --wp-champagne:#C9A876; --wp-champ-clair:#E8D5B5;
  --wp-papier:#FAF8F4; --wp-creux:#F1EEE7; --wp-encre:#17150F; --wp-encre2:#4E4A3F;
  --wp-gris:#8A8578; --wp-filet:#E0DCD1; --wp-filet2:#C6C0B1; --wp-brun:#8A6A45;
  --wp-lin:#F6F2E9; --wp-ambre:#B0782A; --wp-ambre-fond:#F6E8D2; --wp-vert:#4C7A4C;
  --wp-rouge:#9B3B2E; --wp-rouge-fond:#F7E4E0;
  /* Une seule courbe pour tout ce qui bouge : c'est elle qui fait que les
     éléments semblent d'une même main. */
  --wp-mvt:cubic-bezier(.22,1,.36,1);
}

html.wp-tunnel,body.wp-tunnel{margin:0;padding:0}
body.wp-tunnel{
  background:var(--wp-papier); color:var(--wp-encre);
  font:300 16px/1.6 "Archivo",system-ui,-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased;
  display:block; min-height:100vh; min-height:100dvh;
}
/* Le titre de l'écran 2 est un h2 de 27 px : sans cette marge, les bulles
   du rappel remontent dans ses jambages. Vécu à la première capture. */
body.wp-tunnel *{box-sizing:border-box}
/* ⚠️ Ne PAS remettre font-weight ici : `.wp-tunnel h2` (0,1,1) bat
   `.wp-titre` (0,1,0) et écrase silencieusement la graisse du titre. C'est
   le même piège de spécificité que le bouton noir sur noir du 11/09. Les
   seuls titres du tunnel portent une classe qui fixe leur graisse :
   `.wp-titre` (700) et `.wp-carte-nom` (500). */
.wp-tunnel h1,.wp-tunnel h2,.wp-tunnel h3{margin:0;text-wrap:balance}
.wp-tunnel button{font-family:inherit;cursor:pointer}
.wp-tunnel input,.wp-tunnel select{font-family:inherit}
/* `color:inherit` ne doit PAS atteindre les boutons : `.wp-tunnel a` a une
   spécificité de (0,1,1) et bat `.wp-btn-noir` (0,1,0). Tout bouton qui est
   un <a> héritait donc de --wp-encre sur un fond --wp-noir : contraste
   1,03:1, texte invisible. Deux boutons touchés, et les deux qui comptent —
   « Téléchargez l'application » de l'écran 3, et « App Store » sur /app.
   Les <button> du tunnel n'étaient pas concernés, d'où l'invisibilité du
   défaut sur les captures des écrans 1 et 2. Vu en recette le 11/09. */
.wp-tunnel a:not([class]){color:inherit}

/* ── La vitre : la surface unique de la page ─────────────────────────── */
.wp-vitre,.wp-simple{
  width:100%; max-width:460px; margin:0 auto; padding:0 0 32px;
  display:flex; flex-direction:column;
}
.wp-simple{padding:0 20px 40px; gap:14px}
@media(min-width:760px){
  .wp-vitre{max-width:720px}
  .wp-simple{max-width:560px}
}

/* capsule : logo SEUL. Pas de navigation, pas de bouton « télécharger »,
   pas de pied de page — dans un tunnel, chaque lien est une fuite. */
.wp-capsule{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 22px 0}
/* Le lettrage de marque en image : la police du logo n'est pas sur le site,
   et « Welcome RDV » composé en Archivo n'en était qu'une approximation. */
.wp-logo{height:15px;width:auto;display:block}
.wp-pas{font:500 12.5px/1 "Archivo",system-ui,sans-serif;color:var(--wp-gris)}
.wp-jauge{height:2px;background:var(--wp-filet);margin:16px 22px 0;border-radius:2px;overflow:hidden}
.wp-jauge i{display:block;height:100%;width:33.33%;background:var(--wp-noir);
  transition:width .45s var(--wp-mvt)}

.wp-ecran{padding:26px 22px 40px;display:flex;flex-direction:column}
@media(min-width:760px){.wp-ecran{padding:34px 48px 42px}}
.wp-ecran[hidden]{display:none}

/* Un seul traitement de titre pour les trois écrans. La graisse 300 était
   l'autre moitié du registre qui « sentait l'IA » : elle ne tenait que par
   le contraste avec le fond, jamais par le dessin de la lettre. */
.wp-titre{font-size:28px;line-height:1.1;font-weight:700;letter-spacing:-.025em;
  margin-bottom:10px}
@media(min-width:760px){.wp-titre{font-size:33px}}
.wp-sous{color:var(--wp-encre2);font-size:14.5px;line-height:1.55;margin:0 0 22px;max-width:46ch}
/* Variante `ads` seulement : trois preuves du produit entre la sous-ligne et
   les champs, pour une visiteuse qui n'a vu qu'une annonce. Même coche que les
   tuiles, en brun ; fond lin et filet, comme les encarts du reste du tunnel. */
.wp-preuves{list-style:none;margin:-6px 0 24px;padding:14px 16px;background:var(--wp-lin);
  border:1px solid var(--wp-filet);border-radius:12px;display:flex;flex-direction:column;gap:9px}
.wp-preuves li{display:flex;gap:10px;align-items:flex-start;
  font:400 14px/1.45 "Archivo",system-ui,sans-serif;color:var(--wp-encre2)}
.wp-preuves b{font-weight:600;color:var(--wp-encre)}
.wp-preuves svg{flex:none;margin-top:3px}

/* ── Les champs ──────────────────────────────────────────────────────── */
.wp-champs{display:flex;flex-direction:column;gap:18px}
/* Les intitulés de champ passent en Archivo, en casse normale. Une petite
   capitale monospace trackée posée au-dessus d'un champ, c'est le tic qui
   faisait « écrit par une IA » — et un intitulé de formulaire n'a jamais eu
   besoin d'être gravé pour se lire. */
.wp-et{display:block;font:600 13px/1.3 "Archivo",system-ui,sans-serif;
  color:var(--wp-encre);margin-bottom:8px}
.wp-et i{font-style:normal;font-weight:400;color:var(--wp-gris)}
.wp-ligne-et{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:8px}
.wp-ligne-et .wp-et{margin-bottom:0}
.wp-saisie{width:100%;background:#fff;border:1px solid var(--wp-filet2);border-radius:12px;
  padding:14px;font:300 16px/1.3 "Archivo";color:var(--wp-encre);outline:0;
  transition:border-color .18s,box-shadow .18s}
/* 16px et pas moins : en dessous, iOS zoome tout seul à la mise au point
   et la page se retrouve décadrée. */
.wp-saisie::placeholder{color:#AFA99A}
.wp-saisie:focus{border-color:var(--wp-noir);box-shadow:0 0 0 3px rgba(19,16,9,.09)}
.wp-saisie[aria-invalid="true"]{border-color:var(--wp-rouge);background:var(--wp-rouge-fond)}

.wp-pays{display:inline-flex;background:var(--wp-creux);border-radius:999px;padding:2px;
  border:1px solid var(--wp-filet)}
.wp-pays button{border:0;background:transparent;color:var(--wp-encre2);border-radius:999px;
  padding:6px 12px;font:500 12px/1 "Archivo";transition:background .18s,color .18s}
.wp-pays button[aria-pressed="true"]{background:var(--wp-noir);color:#fff}

/* tuiles métier — choix MULTIPLE */
.wp-tuiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(min-width:760px){.wp-tuiles{grid-template-columns:repeat(3,1fr)}}
.wp-tuile{display:flex;align-items:center;gap:9px;text-align:left;background:#fff;
  border:1px solid var(--wp-filet2);border-radius:12px;padding:12px;
  font:400 13.5px/1.25 "Archivo";color:var(--wp-encre2);
  transition:border-color .18s,background .18s,color .18s}
.wp-coche{flex:0 0 16px;width:16px;height:16px;border-radius:5px;
  border:1.5px solid var(--wp-filet2);display:grid;place-items:center;
  transition:background .18s,border-color .18s}
.wp-coche svg{width:9px;height:9px;opacity:0;transition:opacity .16s}
.wp-tuile[aria-pressed="true"]{border-color:var(--wp-noir);background:var(--wp-lin);
  color:var(--wp-encre);font-weight:500}
.wp-tuile[aria-pressed="true"] .wp-coche{background:var(--wp-noir);border-color:var(--wp-noir)}
.wp-tuile[aria-pressed="true"] .wp-coche svg{opacity:1}

/* sélecteur de commune */
.wp-picker{position:relative}
.wp-sugg{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:8;background:#fff;
  border:1px solid var(--wp-filet2);border-radius:12px;overflow:hidden;
  box-shadow:0 16px 40px rgba(19,16,9,.16);max-height:260px;overflow-y:auto}
.wp-sugg[hidden]{display:none}
.wp-sugg button{display:flex;justify-content:space-between;gap:10px;width:100%;text-align:left;
  border:0;background:transparent;padding:12px 14px;font:300 15px/1.35 "Archivo";
  color:var(--wp-encre);border-bottom:1px solid var(--wp-creux)}
.wp-sugg button:last-child{border-bottom:0}
.wp-sugg button:hover,.wp-sugg button:focus-visible,.wp-sugg button[aria-selected="true"]{
  background:var(--wp-lin);outline:0}
.wp-sugg .wp-cp{flex:none;font:400 12px/1.4 "DM Mono",ui-monospace,monospace;color:var(--wp-gris)}
.wp-sugg .wp-vide{padding:12px 14px;font-size:14px;color:var(--wp-gris)}
.wp-retenue{display:flex;align-items:flex-start;gap:9px;background:var(--wp-lin);
  border:1px solid var(--wp-filet);border-radius:12px;padding:12px 13px;font-size:14.5px;line-height:1.4}
.wp-retenue[hidden]{display:none}
.wp-retenue svg{margin-top:2px;flex:none}
.wp-retenue button{margin-left:auto;flex:none;border:0;background:transparent;color:var(--wp-brun);
  font:600 12.5px/1 "Archivo",system-ui,sans-serif;
  text-decoration:underline;text-underline-offset:3px;padding:2px}

/* téléphone */
.wp-tel{display:flex;gap:9px}
.wp-indicatif{background:#fff;border:1px solid var(--wp-filet2);border-radius:12px;
  padding:14px 11px;font:400 16px/1.3 "Archivo";color:var(--wp-encre);outline:0}
.wp-indicatif:focus{border-color:var(--wp-noir)}
.wp-erreur{display:flex;gap:8px;align-items:flex-start;color:var(--wp-rouge);
  font-size:13.5px;line-height:1.45;margin-top:8px}
.wp-erreur[hidden]{display:none}
.wp-erreur svg{margin-top:2px;flex:none}

/* le rappel de l'écran 2 : on montre qu'on a entendu avant de redemander */
.wp-rappel{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 18px}
.wp-rappel span{font:500 12.5px/1 "Archivo";color:var(--wp-encre2);
  background:var(--wp-creux);border-radius:999px;padding:8px 12px}
.wp-rassure{display:flex;flex-direction:column;gap:7px;margin:0;padding:0;list-style:none}
.wp-rassure li{display:flex;gap:9px;align-items:flex-start;font-size:14px;
  line-height:1.45;color:var(--wp-encre2)}
.wp-rassure li::before{content:"";flex:none;width:6px;height:6px;border-radius:999px;
  background:var(--wp-vert);margin-top:7px}
.wp-rgpd{font-size:12.5px;line-height:1.5;color:var(--wp-gris);margin:0}
.wp-rgpd a{color:var(--wp-encre2);text-decoration:underline;text-underline-offset:2px}

/* ── Boutons ─────────────────────────────────────────────────────────── */
.wp-pied{margin-top:clamp(28px,7vh,56px);display:flex;flex-direction:column;gap:12px}
.wp-btn-noir{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  background:var(--wp-noir);color:#fff;border-radius:999px;
  font:600 15.5px/1 "Archivo",system-ui,sans-serif;
  padding:17px 24px;border:0;width:100%;text-decoration:none;text-align:center;
  transition:background .2s,transform .25s ease,opacity .2s}
.wp-btn-noir:hover:not(:disabled){background:#211D17;transform:translateY(-2px);color:#fff}

.wp-btn-noir:disabled,.wp-btn-noir[aria-disabled="true"]{opacity:.32;cursor:not-allowed;transform:none}
.wp-btn-ligne{border:1px solid var(--wp-filet2);background:#fff;border-radius:999px;
  padding:14px 20px;font:500 14px/1 "Archivo";color:var(--wp-encre);width:100%;
  text-decoration:none;text-align:center;transition:border-color .18s}
.wp-btn-ligne:hover:not(:disabled){border-color:var(--wp-encre2)}
.wp-btn-ligne:disabled{color:var(--wp-vert);border-color:var(--wp-filet);cursor:default}
.wp-retour{background:transparent;border:0;color:var(--wp-gris);font:400 13.5px/1 "Archivo";
  text-decoration:underline;text-underline-offset:3px;padding:6px;align-self:center}
.wp-stores{display:flex;flex-direction:column;gap:10px;margin-top:6px}
/* Ceinture ET bretelles : la couleur du texte des deux boutons est
   réaffirmée ici, sélecteur plus fort, au cas où une règle de lien
   remonterait un jour. */
.wp-tunnel a.wp-btn-noir,.wp-tunnel a.wp-btn-noir:hover{color:#fff}
.wp-tunnel a.wp-btn-ligne{color:var(--wp-encre)}

/* ── Écran 3 ─────────────────────────────────────────────────────────
   Une seule colonne, une seule largeur. La carte, le bloc du numéro et le
   bouton partageaient trois largeurs différentes (360, 460, 460) : empilés,
   ça se lisait comme un désalignement sans qu'on sache lequel. */
#wp-e3{align-items:center}
.wp-colonne{width:100%;max-width:340px;display:flex;flex-direction:column;gap:22px}
@media(min-width:560px){.wp-colonne{max-width:440px}}

.wp-tete3{display:flex;flex-direction:column;gap:11px}
.wp-sceau{width:34px;height:34px;border-radius:999px;background:var(--wp-vert);
  display:grid;place-items:center}
#wp-e3 .wp-titre{margin-bottom:0}
#wp-e3 .wp-sous{margin:0}
.wp-groupe{display:flex;flex-direction:column;gap:8px}
.wp-groupe .wp-et{margin-bottom:0}

/* la carte — reprise de .res-carte (assets/resultats.css) : couverture,
   avatar à cheval, nom, métier, ligne ville + pastilles. Même dessin que
   sur /zone/, pour qu'elle reconnaisse la page qu'elle aura.
   Couverture en 24:9 au lieu de 16:8 et corps resserré : la carte perd
   près d'un quart de sa hauteur sans rien perdre de son contenu. */
.wp-carte{margin:0;border:1px solid var(--wp-filet);border-radius:14px;background:#fff;
  overflow:hidden;box-shadow:0 10px 26px rgba(52,40,24,.11)}
.wp-carte-cover{position:relative;aspect-ratio:24/9;min-height:0;max-width:100%;
  background:radial-gradient(130% 155% at 50% 30%,#241F17 0%,var(--wp-noir) 68%);
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px}
/* le lettrage de marque, en image : la police du logo n'est pas sur le site,
   et un <span> stylé ne lui ressemblait que de loin. */
.wp-carte-logo{width:44%;max-width:180px;height:auto;display:block}
.wp-carte-photo{font:400 11px/1 "Archivo",system-ui,sans-serif;color:rgba(255,255,255,.62);
  border:1px dashed rgba(255,255,255,.34);border-radius:999px;padding:5px 11px}
.wp-carte-avatar{position:absolute;right:13px;bottom:-23px;width:56px;height:56px;
  border-radius:999px;overflow:hidden;background:var(--wp-papier);border:3px solid #fff;
  box-shadow:0 3px 10px rgba(52,40,24,.18);display:grid;place-items:center}
.wp-carte-avatar span{font:400 23px/1 "Archivo",system-ui,sans-serif;color:var(--wp-filet2)}
/* sous 380 px, la pastille « Votre photo » venait toucher l'avatar */
@media(max-width:379px){
  .wp-carte-photo{font-size:10px;padding:4px 9px}
  .wp-carte-avatar{width:50px;height:50px;bottom:-20px}
  .wp-carte-avatar span{font-size:21px}
}
.wp-carte-corps{display:flex;flex-direction:column;padding:11px 14px 13px}
.wp-carte-nom{margin:0;padding-right:62px;font:500 17px/1.25 "Archivo",system-ui,sans-serif;
  letter-spacing:-.015em;color:var(--wp-encre)}
.wp-carte-metier{margin:2px 0 0;padding-right:62px;font-size:13.5px;line-height:1.35;
  color:var(--wp-encre2)}
/* Sous 560 px, « Issoire » + les deux pastilles ne tiennent pas sur une
   ligne : les pastilles passaient à la ligne en restant calées à droite,
   en escalier. On empile franchement, à gauche. */
.wp-carte-bas{margin:10px 0 0;display:flex;flex-direction:column;align-items:flex-start;
  gap:8px}
.wp-carte-ville{font-size:13px;color:var(--wp-gris)}
.wp-carte-puces{display:flex;flex-wrap:wrap;gap:5px}
@media(min-width:560px){
  .wp-carte-bas{flex-direction:row;flex-wrap:wrap;align-items:center;
    justify-content:space-between;gap:7px 10px}
  .wp-carte-puces{justify-content:flex-end}
}
.wp-puce{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;
  background:var(--wp-creux);font-size:12px;line-height:1.2;color:var(--wp-encre2);
  white-space:nowrap}
.wp-puce--lieu{background:rgba(138,106,69,.10);color:var(--wp-brun);font-weight:500}
.wp-puce--lieu svg{flex:none}
.wp-puce--resa{background:#EFF8F2;color:#1E7A4B;font-weight:600}
.wp-carte-etat{border-top:1px solid var(--wp-filet);background:var(--wp-ambre-fond);
  color:#7A5B22;font:500 12px/1.3 "Archivo",system-ui,sans-serif;padding:9px 14px;
  text-align:center}

/* ── La frise de configuration de l'écran 3 ──────────────────────────
   Un filet clair, pas un trait noir : la page comptait déjà quatre aplats
   sombres (la jauge, la couverture de la carte, le bloc de l'offre, le
   bouton). Il n'en reste que trois, et ils sont tous structurels. */
.wp-etapes{position:relative;padding:16px 0 0;border-top:1px solid var(--wp-filet)}
.wp-etapes::before{content:"";position:absolute;left:10px;top:29px;height:60px;width:2px;
  background:var(--wp-filet)}
.wp-etapes-l{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:16px;
  position:relative}
.wp-etape{display:flex;gap:13px;align-items:flex-start}
.wp-etape-p{flex:none;width:22px;height:22px;border-radius:999px;display:flex;
  align-items:center;justify-content:center}
.wp-etape--fait .wp-etape-p{background:var(--wp-brun)}
.wp-etape--a-faire .wp-etape-p{background:var(--wp-papier);border:2px solid var(--wp-noir)}
.wp-etape-t{font:400 14px/1.35 "Archivo",system-ui,sans-serif;color:var(--wp-gris);padding-top:2px}
.wp-etape--a-faire .wp-etape-t{color:var(--wp-encre);padding-top:1px}
.wp-etape-t b{display:block;font:600 14.5px/1.35 "Archivo",system-ui,sans-serif}
.wp-etape-t span{display:block;font-size:13px;line-height:1.45;color:var(--wp-gris);margin-top:2px}
/* le numéro : lisible, pas monumental. Il sert d'instruction, pas d'affiche. */
.wp-etape-num{color:var(--wp-encre2) !important;margin-top:5px !important}
.wp-etape-num b{display:inline;font:500 15.5px/1.3 "DM Mono",ui-monospace,monospace;
  color:var(--wp-encre);font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* la récompense : beige chaud, pas un quatrième aplat noir */
.wp-prime{margin:16px 0 0 35px;background:#EFE4D1;border:1px solid rgba(138,106,69,.16);
  border-radius:11px;padding:13px 15px}
.wp-prime-t{margin:0;font:600 15.5px/1.3 "Archivo",system-ui,sans-serif;
  letter-spacing:-.012em;color:var(--wp-encre)}
.wp-prime-t span{font-weight:700;color:var(--wp-brun)}
.wp-prime-s{margin:4px 0 0;font-size:12.5px;line-height:1.45;color:#6B5637}
.wp-etapes + .wp-rangee{margin-top:18px}
#wp-e3 .wp-titre{margin-bottom:0}

.wp-rangee{display:grid;gap:12px}
.wp-rangee[hidden]{display:none}
@media(min-width:560px){.wp-rangee.wp-qr{grid-template-columns:112px 1fr;align-items:center}}
.wp-qrbox{width:112px;height:112px;background:#fff;border:1px solid var(--wp-filet);
  border-radius:12px;display:grid;place-items:center;padding:7px}
.wp-qrbox svg{width:100%;height:100%;display:block}
.wp-qr .wp-sous{margin:0}
.wp-qr .wp-sous b{font-weight:500;color:var(--wp-encre)}
.wp-note{margin:2px 0 0;font-size:12.5px;color:var(--wp-gris);text-align:center}

/* le message d'erreur global de l'écran 2 : la fonction refuse, on le dit */
.wp-alerte{display:flex;gap:9px;align-items:flex-start;background:var(--wp-rouge-fond);
  border-radius:12px;padding:13px 14px;font-size:14px;line-height:1.45;color:#7A2E24;margin:0}
.wp-alerte[hidden]{display:none}

/* le bandeau du mode démonstration — impossible à confondre avec la prod */
.wp-demo{position:sticky;top:0;z-index:20;background:var(--wp-ambre-fond);color:#7A5B22;
  font:500 12.5px/1.4 "Archivo";padding:10px 16px;text-align:center;
  border-bottom:1px solid rgba(176,120,42,.3)}

/* ── Accessibilité et mouvement ──────────────────────────────────────── */
.wp-tunnel :focus-visible{outline:2px solid var(--wp-brun);outline-offset:2px;border-radius:4px}
.wp-hors-vue{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Le Chrome de Nicolas est en « mouvement réduit » : ce repli n'est pas
   décoratif, c'est ce qu'il voit. Tout doit rester lisible sans transition. */
@media(prefers-reduced-motion:reduce){
  .wp-tunnel *,.wp-tunnel *::before,.wp-tunnel *::after{
    transition-duration:.001ms !important;animation-duration:.001ms !important}
}
