/* ============================================================================
   BW – Création d'Entreprise · parcours de demande.

   L'extension ne dépend d'aucun thème. Elle emprunte les jetons du thème BW
   quand ils existent (var(--bw-…)) et retombe sinon sur les valeurs de la
   charte : noir, blanc, vermillon, Bricolage Grotesque et Instrument Sans.
   Une seule règle de fond : rien n'est décoratif. Le vermillon ne marque que
   le choix retenu, le bouton d'action et le total.
   ========================================================================= */

.bwce{
  --c-bg:var(--bw-bg,#FFFFFF);
  --c-surface:var(--bw-surface,#F5F6F7);
  --c-surface-2:var(--bw-surface-2,#ECEEF0);
  --c-ink:var(--bw-ink,#0E1013);
  --c-ink-2:var(--bw-ink-2,#3A4048);
  --c-muted:var(--bw-muted,#646C76);
  --c-line:var(--bw-line,#DFE3E7);
  --c-line-2:var(--bw-line-2,#C6CCD3);
  --c-primary:var(--bw-primary,#CE3A17);
  --c-primary-d:var(--bw-primary-d,#A82D0F);
  --c-primary-soft:var(--bw-primary-soft,#FCEBE6);
  --c-on-primary:var(--bw-on-primary,#FFFFFF);
  --c-success:var(--bw-success,#12734F);
  --c-success-soft:var(--bw-success-soft,#E4F2EB);

  --c-sans:var(--bw-sans,"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif);
  --c-disp:var(--bw-disp,"Bricolage Grotesque","Instrument Sans",system-ui,sans-serif);
  --c-r:var(--bw-r,2px);

  --c-base:1.03125rem;
  --c-sm:.9375rem;
  --c-xs:.8125rem;

  /* Hauteur de ce qui colle déjà en haut de la fenêtre : en-tête du thème,
     barre d'administration. Mesurée par le script, nulle sans lui. */
  --bwce-top:0px;

  font-family:var(--c-sans);
  font-size:var(--c-base);
  line-height:1.6;
  color:var(--c-ink);
}

/* En l'absence du thème BW, les jetons de secours doivent basculer eux aussi.
   Avec le thème, var(--bw-…) gagne et c'est le thème qui décide. */
@media (prefers-color-scheme:dark){
  .bwce{
    --c-bg:var(--bw-bg,#0B0C0E);
    --c-surface:var(--bw-surface,#131519);
    --c-surface-2:var(--bw-surface-2,#1B1E23);
    --c-ink:var(--bw-ink,#EDEFF1);
    --c-ink-2:var(--bw-ink-2,#B9C0C8);
    --c-muted:var(--bw-muted,#8A929C);
    --c-line:var(--bw-line,#252A30);
    --c-line-2:var(--bw-line-2,#39404A);
    --c-primary:var(--bw-primary,#FF7A55);
    --c-primary-d:var(--bw-primary-d,#FF9376);
    --c-primary-soft:var(--bw-primary-soft,#2A1610);
    --c-on-primary:var(--bw-on-primary,#1A0A05);
    --c-success:var(--bw-success,#5FBF92);
    --c-success-soft:var(--bw-success-soft,#12261D);
  }
}

.bwce *,.bwce *::before,.bwce *::after{box-sizing:border-box}
.bwce :focus-visible{outline:2px solid var(--c-primary);outline-offset:3px;border-radius:2px}
/* L'étape reçoit le focus par programme, pour que le changement soit annoncé.
   Elle n'est pas atteignable au clavier : un anneau autour de toute la section
   n'indiquerait rien d'utile et brouillerait la lecture. */
.bwce-step:focus,.bwce-step:focus-visible{outline:none}

.bwce-sr{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
/* Pot de miel : hors de la vue, sans display:none que certains robots repèrent. */
.bwce-hp{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* ---------- 1. Barre de prix -------------------------------------------- */

/* Sans JavaScript la barre n'aurait aucun total à afficher : elle ne paraît pas.
   Les prix restent lisibles, ils sont écrits à côté de chaque durée. */
.bwce-bar{display:none}
.bwce--js .bwce-bar{
  display:block;
  position:sticky;
  top:var(--bwce-top,0px);
  z-index:30;              /* sous l'en-tête du thème, qui monte à 60 */
  margin:0 0 clamp(16px,2.6vw,32px);
  background:var(--c-bg);
  border-top:1px solid var(--c-line);
  border-bottom:1.5px solid var(--c-ink);
}
.bwce-bar__in{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:12px 0;
}
.bwce-bar__sum{margin:0;display:flex;flex-direction:column;min-width:0;flex:1 1 auto}
.bwce-bar__k{
  font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--c-muted);
}
.bwce-bar__v{
  font-family:var(--c-disp);font-weight:600;letter-spacing:-.03em;line-height:1.1;
  font-size:clamp(1.5rem,1.1rem + 1.4vw,2.1rem);
  color:var(--c-primary);
  font-variant-numeric:tabular-nums;
}
.bwce-bar__d{
  margin:0;font-size:var(--c-xs);line-height:1.4;color:var(--c-ink-2);
  flex:1 1 230px;min-width:0;
}
.bwce-bar__d b{font-weight:600;color:var(--c-ink)}
.bwce-bar__btn{
  flex:0 0 auto;
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--c-sans);font-size:var(--c-xs);font-weight:600;
  color:var(--c-ink);background:transparent;
  border:1.5px solid var(--c-line-2);border-radius:var(--c-r);
  padding:11px 15px;min-height:44px;cursor:pointer;
  transition:border-color .15s ease,color .15s ease;
}
.bwce-bar__btn:hover{border-color:var(--c-ink);color:var(--c-ink)}
.bwce-bar__btn svg{transition:transform .15s ease}
.bwce-bar__btn[aria-expanded="true"] svg{transform:rotate(180deg)}

/* Sur petit écran, le total et le bouton tiennent sur la même ligne et le
   résumé des durées passe dessous : une rangée de moins prise sur la lecture. */
@media (max-width:559px){
  .bwce-bar__in{gap:4px 12px;padding:8px 0}
  /* Le groupe se dissout : son intitulé prend la ligne, le montant et le
     bouton se partagent la suivante, les durées ferment la barre. */
  .bwce-bar__sum{display:contents}
  .bwce-bar__k{flex:1 1 100%}
  .bwce-bar__v{flex:1 1 auto;font-size:1.45rem}
  .bwce-bar__btn{order:2;padding:11px 13px}
  .bwce-bar__d{order:3;flex:1 1 100%}
}

.bwce-bar__panel{border-top:1px solid var(--c-line);background:var(--c-surface)}
.bwce-bar__panel-in{padding:16px 0 18px}
.bwce-bar__none{margin:0;font-size:var(--c-sm);color:var(--c-muted)}
.bwce-bar__note{
  margin:12px 0 0;padding-top:12px;border-top:1px solid var(--c-line);
  font-size:var(--c-xs);line-height:1.55;color:var(--c-muted);
}

.bwce-lines{list-style:none;margin:0;padding:0;display:grid;gap:0}
.bwce-lines li{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding:9px 0;border-bottom:1px solid var(--c-line);
  font-size:var(--c-sm);
}
.bwce-lines li:last-child{border-bottom:0}
.bwce-lines__l{color:var(--c-ink)}
.bwce-lines__d{color:var(--c-muted);font-size:var(--c-xs)}
.bwce-lines__a{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}

/* ---------- 2. Fil des étapes ------------------------------------------- */

/* Sept libellés côte à côte se replient mal. Un ruban de segments tient la
   même promesse — où j'en suis, combien il reste — sans jamais passer à la
   ligne, et se lit pareil de 320 à 1440 px. */
.bwce-prog{display:none}
.bwce--js .bwce-prog{display:block;margin:0 0 clamp(14px,2.2vw,26px)}

.bwce-prog__track{
  list-style:none;margin:0;padding:0;
  display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:5px;
}
.bwce-prog__seg{min-width:0}
.bwce-prog__btn{
  display:flex;align-items:center;
  width:100%;min-height:44px;padding:0;
  background:transparent;border:0;cursor:pointer;border-radius:2px;
}

.bwce-prog__bar{
  display:block;width:100%;height:4px;border-radius:2px;
  background:var(--c-line);
  transition:background-color .2s ease;
}
.bwce-prog__btn:hover .bwce-prog__bar{background:var(--c-line-2)}
.bwce-prog__seg--done .bwce-prog__bar{background:var(--c-ink-2)}
.bwce-prog__seg--now .bwce-prog__bar{background:var(--c-primary)}
.bwce-prog__btn:focus-visible{outline:2px solid var(--c-primary);outline-offset:4px}

.bwce-prog__now{
  display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
  margin:0;
}
.bwce-prog__count{
  font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--c-muted);white-space:nowrap;
}
.bwce-prog__count b{color:var(--c-primary);font-weight:600}
.bwce-prog__sep{
  width:3px;height:3px;border-radius:50%;background:var(--c-line-2);
  align-self:center;flex:0 0 auto;
}
.bwce-prog__sep[hidden]{display:none}
.bwce-prog__label{
  font-family:var(--c-disp);font-weight:600;letter-spacing:-.015em;
  font-size:var(--c-sm);color:var(--c-ink);min-width:0;
}
/* Pendant un survol ou un focus, le libellé nomme l'étape visée, pas celle
   où l'on est : le vermillon dit que c'est une destination. */
.bwce-prog__label--cible{color:var(--c-primary)}

/* ---------- 3. Étapes ---------------------------------------------------- */
.bwce-step{
  padding:0 0 clamp(30px,4vw,44px);
  margin:0 0 clamp(30px,4vw,44px);
  border-bottom:1px solid var(--c-line);
}
.bwce-step:last-of-type{border-bottom:0;margin-bottom:0}
.bwce--js .bwce-step{border-bottom:0;margin-bottom:0;padding-bottom:0}
.bwce--js .bwce-step[hidden]{display:none}

.bwce-step__n{
  margin:0 0 10px;font-size:11px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--c-primary);
}
.bwce--js .bwce-step__n{display:none}

/* Le titre d'étape vit sous le H1 de la page : il doit se lire comme une
   question posée, pas rivaliser avec le titre. */
.bwce-step__t{
  font-family:var(--c-disp);font-weight:600;letter-spacing:-.02em;line-height:1.15;
  font-size:clamp(1.3125rem,1.1rem + .8vw,1.75rem);
  margin:0 0 .3em;color:var(--c-ink);text-wrap:balance;
}
.bwce-step__l{
  margin:0 0 clamp(16px,2.4vw,28px);max-width:60ch;
  color:var(--c-ink-2);font-size:var(--c-sm);line-height:1.55;
}

/* Bandeau d'erreurs de l'étape : vide, il ne prend aucune place. */
.bwce-step__alert{
  margin:0 0 24px;padding:14px 16px;border-radius:var(--c-r);
  border:1.5px solid var(--c-primary-d);background:var(--c-primary-soft);
}
.bwce-step__alert[hidden]{display:none}
.bwce-step__alert p{
  margin:0 0 6px;font-size:var(--c-sm);font-weight:600;color:var(--c-primary-d);
}
.bwce-step__alert ul{margin:0;padding-left:19px}
.bwce-step__alert li{margin:2px 0;font-size:var(--c-sm)}
.bwce-step__alert a{color:var(--c-primary-d);font-weight:600}

/* ---------- 4. Champs ---------------------------------------------------- */
.bwce-field{margin:0 0 24px;display:flex;flex-direction:column;max-width:62ch}
.bwce-field label{
  font-size:var(--c-sm);font-weight:600;color:var(--c-ink);margin-bottom:5px;
}
.bwce-req{color:var(--c-primary);font-weight:700}
.bwce-opt{color:var(--c-muted);font-weight:400;font-size:var(--c-xs)}
.bwce-hint{font-size:var(--c-xs);line-height:1.5;color:var(--c-muted);margin-bottom:9px}
.bwce-field input,
.bwce-field textarea{
  font-family:var(--c-sans);font-size:var(--c-base);line-height:1.45;
  color:var(--c-ink);background:var(--c-bg);
  border:1.5px solid var(--c-line-2);border-radius:var(--c-r);
  padding:13px 14px;width:100%;min-height:52px;
  transition:border-color .15s ease;
}
.bwce-field textarea{min-height:110px;resize:vertical}
.bwce-field input:hover,.bwce-field textarea:hover{border-color:var(--c-ink-2)}
.bwce-field input:focus-visible,.bwce-field textarea:focus-visible{
  outline:2px solid var(--c-ink);outline-offset:1px;border-color:var(--c-ink);
}
.bwce-field--err input,.bwce-field--err textarea{border-color:var(--c-primary-d)}

.bwce-err{
  display:flex;align-items:flex-start;gap:7px;
  font-size:var(--c-xs);line-height:1.5;font-weight:600;
  color:var(--c-primary-d);margin:7px 0 0;
}
.bwce-err::before{
  content:"";flex:0 0 auto;width:14px;height:14px;margin-top:2px;
  background:var(--c-primary-d);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1Zm0 3.4a.9.9 0 0 1 .9.9v3.4a.9.9 0 0 1-1.8 0V5.3a.9.9 0 0 1 .9-.9Zm0 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1Zm0 3.4a.9.9 0 0 1 .9.9v3.4a.9.9 0 0 1-1.8 0V5.3a.9.9 0 0 1 .9-.9Zm0 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z'/%3E%3C/svg%3E") center/contain no-repeat;
}

.bwce-note-inline{
  display:block;margin-top:8px;padding-left:12px;
  border-left:2px solid var(--c-line-2);
  font-size:var(--c-xs);line-height:1.5;color:var(--c-ink-2);
}
.bwce-note-inline[hidden]{display:none}

.bwce-row{display:grid;gap:0 20px;grid-template-columns:1fr;max-width:62ch}
@media (min-width:640px){.bwce-row{grid-template-columns:1fr 1fr}}
.bwce-row .bwce-field{max-width:none}
/* Deux champs côte à côte dont une seule aide passe à la ligne : sans cette
   règle, les deux saisies ne seraient pas au même niveau. */
@media (min-width:640px){.bwce-row{align-items:end}}

/* ---------- 5. Choix ----------------------------------------------------- */
.bwce-group{border:0;margin:0 0 clamp(22px,3vw,32px);padding:0;min-width:0}
.bwce-group legend{
  padding:0;margin:0 0 6px;font-family:var(--c-disp);font-weight:600;
  font-size:1.0625rem;letter-spacing:-.02em;line-height:1.3;color:var(--c-ink);
}
.bwce-group .bwce-hint{margin:0 0 12px;max-width:62ch}

.bwce-opts{display:grid;gap:10px;grid-template-columns:1fr}
@media (min-width:560px){
  .bwce-opts--2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bwce-opts--3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .bwce-opts--4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:640px){
  .bwce-opts--4{grid-template-columns:repeat(4,minmax(0,1fr))}
}

.bwce-opt-card{
  position:relative;display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:start;gap:2px 12px;
  padding:15px 16px;min-height:56px;
  border:1.5px solid var(--c-line-2);border-radius:var(--c-r);
  background:var(--c-bg);cursor:pointer;
  transition:border-color .15s ease,background-color .15s ease;
}
.bwce-opt-card:hover{border-color:var(--c-ink-2)}
.bwce-opt-card input{
  position:absolute;opacity:0;width:1px;height:1px;margin:0;
}
.bwce-opt-card__b{
  grid-row:1 / span 3;
  width:20px;height:20px;flex:0 0 auto;margin-top:1px;
  border:1.5px solid var(--c-line-2);border-radius:50%;
  background:var(--c-bg);
  transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}
.bwce-opt-card__t{font-size:var(--c-sm);font-weight:600;color:var(--c-ink);line-height:1.35}
.bwce-opt-card__p{
  grid-column:2;font-family:var(--c-disp);font-weight:600;letter-spacing:-.025em;
  font-size:1.3125rem;line-height:1.15;margin-top:3px;
  color:var(--c-ink);font-variant-numeric:tabular-nums;
}
.bwce-opt-card__n{grid-column:2;font-size:var(--c-xs);color:var(--c-muted);line-height:1.45}

.bwce-opt-card:has(input:checked){
  border-color:var(--c-primary);background:var(--c-primary-soft);
  box-shadow:inset 0 0 0 1px var(--c-primary);
}
.bwce-opt-card:has(input:checked) .bwce-opt-card__b{
  border-color:var(--c-primary);background:var(--c-primary);
  box-shadow:inset 0 0 0 3.5px var(--c-bg);
}
.bwce-opt-card:has(input:checked) .bwce-opt-card__p{color:var(--c-primary-d)}
.bwce-opt-card:has(input:focus-visible){outline:2px solid var(--c-ink);outline-offset:2px}

/* Repli pour les navigateurs sans :has() — la classe est posée par le script. */
.bwce-opt-card.is-on{
  border-color:var(--c-primary);background:var(--c-primary-soft);
  box-shadow:inset 0 0 0 1px var(--c-primary);
}
.bwce-opt-card.is-on .bwce-opt-card__b{
  border-color:var(--c-primary);background:var(--c-primary);
  box-shadow:inset 0 0 0 3.5px var(--c-bg);
}
.bwce-opt-card.is-on .bwce-opt-card__p{color:var(--c-primary-d)}
.bwce-opt-card.is-focus{outline:2px solid var(--c-ink);outline-offset:2px}

.bwce-group--err .bwce-opt-card{border-color:var(--c-primary-d)}

.bwce-sub{margin:0}
.bwce-sub[hidden]{display:none}

/* Services complémentaires : mêmes primitives, case carrée. */
.bwce-cards{display:grid;gap:12px;grid-template-columns:1fr;margin:0 0 22px}
@media (min-width:720px){.bwce-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
.bwce-card{
  position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);
  align-items:start;gap:4px 12px;
  padding:18px;border:1.5px solid var(--c-line-2);border-radius:var(--c-r);
  background:var(--c-bg);cursor:pointer;
  transition:border-color .15s ease,background-color .15s ease;
}
.bwce-card:hover{border-color:var(--c-ink-2)}
.bwce-card input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.bwce-card__b{
  grid-row:1 / span 3;width:20px;height:20px;margin-top:2px;
  border:1.5px solid var(--c-line-2);border-radius:2px;background:var(--c-bg);
  transition:border-color .15s ease,background-color .15s ease;
}
.bwce-card__t{font-size:var(--c-sm);font-weight:600;color:var(--c-ink);line-height:1.35}
.bwce-card__p{
  grid-column:2;font-family:var(--c-disp);font-weight:600;letter-spacing:-.02em;
  font-size:1.25rem;color:var(--c-ink);font-variant-numeric:tabular-nums;
}
.bwce-card__n{grid-column:2;font-size:var(--c-xs);color:var(--c-muted);line-height:1.45;margin-top:4px}
.bwce-card__once{
  font-family:var(--c-sans);font-size:var(--c-xs);font-weight:400;
  letter-spacing:0;color:var(--c-muted);white-space:nowrap;
}
.bwce-card:has(input:checked),.bwce-card.is-on{
  border-color:var(--c-primary);background:var(--c-primary-soft);
  box-shadow:inset 0 0 0 1px var(--c-primary);
}
.bwce-card:has(input:checked) .bwce-card__p,.bwce-card.is-on .bwce-card__p{color:var(--c-primary-d)}
.bwce-card:has(input:checked) .bwce-card__b,.bwce-card.is-on .bwce-card__b{
  border-color:var(--c-primary);background:var(--c-primary);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3.2L13 5' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size:contain;background-repeat:no-repeat;background-position:center;
}
.bwce-card:has(input:focus-visible),.bwce-card.is-focus{outline:2px solid var(--c-ink);outline-offset:2px}

/* ---------- 6. Boutons --------------------------------------------------- */
.bwce-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--c-sans);font-size:var(--c-sm);font-weight:600;line-height:1.2;
  padding:16px 24px;min-height:52px;
  border:1.5px solid transparent;border-radius:var(--c-r);
  cursor:pointer;text-decoration:none;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease;
}
.bwce-btn--primary{background:var(--c-primary);color:var(--c-on-primary);border-color:var(--c-primary)}
.bwce-btn--primary:hover{background:var(--c-primary-d);border-color:var(--c-primary-d)}
.bwce-btn--ghost{background:transparent;color:var(--c-ink);border-color:var(--c-line-2)}
.bwce-btn--ghost:hover{border-color:var(--c-ink)}
.bwce-btn--lg{min-height:58px;font-size:var(--c-base);padding:18px 28px}
.bwce-btn[disabled]{opacity:.55;cursor:progress}

.bwce-nav{display:none}
.bwce--js .bwce-nav{
  display:flex;gap:12px;flex-wrap:wrap;
  margin-top:clamp(26px,3.5vw,36px);padding-top:22px;
  border-top:1px solid var(--c-line);
}
.bwce--js .bwce-nav [data-bwce-next]{margin-left:auto}
@media (max-width:479px){
  .bwce--js .bwce-nav{flex-direction:column-reverse}
  .bwce--js .bwce-nav .bwce-btn{width:100%}
  .bwce--js .bwce-nav [data-bwce-next]{margin-left:0}
}

.bwce-submit{margin:26px 0 14px}
.bwce-submit .bwce-btn{width:100%}
@media (min-width:640px){.bwce-submit .bwce-btn{width:auto;min-width:300px}}

/* ---------- 7. Récapitulatif --------------------------------------------- */
.bwce-recap{margin:0 0 30px}
.bwce-recap__wait{color:var(--c-muted);font-size:var(--c-sm);margin:0}
.bwce--js .bwce-recap__wait{display:none}
.bwce-recap__g{margin:0 0 26px}
.bwce-recap__h{
  display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  margin:0 0 6px;padding-bottom:8px;border-bottom:1.5px solid var(--c-ink);
}
.bwce-recap__h h3{
  font-family:var(--c-disp);font-weight:600;font-size:1.0625rem;letter-spacing:-.02em;
  margin:0;color:var(--c-ink);
}
.bwce-recap__edit{
  background:transparent;border:0;padding:4px 2px;cursor:pointer;
  font-family:var(--c-sans);font-size:var(--c-xs);font-weight:600;
  color:var(--c-primary);text-decoration:underline;text-underline-offset:2px;
}
.bwce-recap__edit:hover{color:var(--c-primary-d)}
.bwce-recap dl{margin:0;display:grid;grid-template-columns:1fr;gap:0}
.bwce-recap dl>div{
  display:grid;grid-template-columns:1fr;gap:2px;
  padding:10px 0;border-bottom:1px solid var(--c-line);
}
@media (min-width:640px){
  .bwce-recap dl>div{grid-template-columns:minmax(150px,.4fr) minmax(0,1fr);gap:0 20px;align-items:baseline}
}
.bwce-recap dt{font-size:var(--c-xs);color:var(--c-muted);margin:0}
.bwce-recap dd{margin:0;font-size:var(--c-sm);color:var(--c-ink);white-space:pre-line}

.bwce-quote{
  margin:0 0 22px;padding:20px;border:1.5px solid var(--c-ink);border-radius:var(--c-r);
  background:var(--c-surface);
}
.bwce-quote[hidden]{display:none}
.bwce-quote__t{
  font-family:var(--c-disp);font-weight:600;font-size:1.0625rem;letter-spacing:-.02em;
  margin:0 0 10px;color:var(--c-ink);
}
.bwce-lines--big li{font-size:var(--c-base);padding:11px 0}
.bwce-quote__total{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  margin:14px 0 0;padding-top:14px;border-top:1.5px solid var(--c-ink);
}
.bwce-quote__total span{font-size:var(--c-sm);font-weight:600;color:var(--c-ink)}
.bwce-quote__total b{
  font-family:var(--c-disp);font-weight:600;letter-spacing:-.03em;
  font-size:clamp(1.5rem,1.2rem + 1.1vw,2rem);color:var(--c-primary);
  font-variant-numeric:tabular-nums;white-space:nowrap;
}

.bwce-note{
  margin:0 0 14px;max-width:68ch;
  font-size:var(--c-xs);line-height:1.6;color:var(--c-muted);
}
.bwce-note--strong{
  color:var(--c-ink-2);font-size:var(--c-sm);
  padding-left:14px;border-left:2px solid var(--c-primary);
}
.bwce-note--small{font-size:var(--c-xs)}

/* ---------- 8. Alertes --------------------------------------------------- */
.bwce-alert{
  margin:0 0 28px;padding:20px 22px;border-radius:var(--c-r);
  border:1.5px solid var(--c-line-2);background:var(--c-surface);
}
.bwce-alert__t{
  font-family:var(--c-disp);font-weight:600;font-size:1.1875rem;letter-spacing:-.02em;
  margin:0 0 8px;color:var(--c-ink);
}
.bwce-alert p{margin:0 0 10px}
.bwce-alert p:last-child{margin-bottom:0}
.bwce-alert--err{border-color:var(--c-primary-d);background:var(--c-primary-soft)}
.bwce-alert--err ul{margin:0;padding-left:20px}
.bwce-alert--err li{margin:0 0 5px;font-size:var(--c-sm)}
.bwce-alert--err a{color:var(--c-primary-d);font-weight:600}
.bwce-alert--ok{border-color:var(--c-success);background:var(--c-success-soft)}
.bwce-alert__n{font-size:var(--c-xs);color:var(--c-ink-2);margin-top:12px!important}
.bwce-ref{font-size:var(--c-sm)}
.bwce-ref b{font-family:var(--c-disp);letter-spacing:.02em}
.bwce-ref span{font-size:var(--c-xs);color:var(--c-ink-2)}

/* ---------- 9. Tableaux tarifaires réutilisables ------------------------- */
.bwce-table{margin:22px 0;overflow-x:auto}
.bwce-table table{border-collapse:collapse;width:100%;min-width:280px}
.bwce-table th,.bwce-table td{
  text-align:left;padding:11px 14px;border-bottom:1px solid var(--bw-line,#DFE3E7);
  font-size:.9375rem;
}
.bwce-table thead th{
  font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--bw-muted,#646C76);border-bottom:1.5px solid var(--bw-ink,#0E1013);
}
.bwce-table td{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.bwce-table__cap{
  caption-side:bottom;text-align:left;padding-top:10px;
  font-size:.8125rem;line-height:1.5;color:var(--bw-muted,#646C76);
}

/* ---------- 10. Mouvement ------------------------------------------------ */
@media (prefers-reduced-motion:reduce){
  .bwce *,.bwce *::before,.bwce *::after{
    transition-duration:.01ms!important;animation-duration:.01ms!important;
  }
}

/* -------------------------------------------------------------------------
   Illustrations

   Un seul trait, une seule épaisseur, un seul accent. Les dessins héritent la
   couleur du texte : ils suivent donc le mode clair comme le mode sombre sans
   qu'aucune règle ne soit dupliquée.
   ---------------------------------------------------------------------- */
.bwce .bwce-illu{
  display:block;grid-row:1 / span 4;grid-column:3;
  align-self:center;justify-self:end;pointer-events:none;
}
.bwce .bwce-illu svg{
  display:block;width:58px;height:40px;
  stroke:var(--c-ink-2);stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;fill:none;
  opacity:.85;transition:stroke .15s ease,opacity .15s ease;
}
.bwce .bwce-illu__a{stroke:var(--c-primary)}
.bwce .bwce-illu__n{
  fill:var(--c-primary);stroke:none;
  font-family:var(--c-disp);font-weight:700;font-size:13px;
  font-variant-numeric:tabular-nums;
}

/* Une carte illustrée garde ses deux premières colonnes : la puce et le
   texte ne bougent pas d'un pixel, l'image s'ajoute à droite. */
.bwce-opt-card--illu,
.bwce-card{grid-template-columns:auto minmax(0,1fr) auto}

.bwce-opt-card:has(input:checked) .bwce-illu svg,
.bwce-opt-card.is-on .bwce-illu svg,
.bwce-card:has(input:checked) .bwce-illu svg,
.bwce-card.is-on .bwce-illu svg{stroke:var(--c-ink);opacity:1}

/* L'illustration vivante du nombre d'associés. */
.bwce-compte{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  align-items:end;gap:0 18px;
}
.bwce-compte .bwce-field{margin-bottom:0}
.bwce-illu-live{display:block;padding-bottom:10px}
.bwce-illu-live .bwce-illu{grid-row:auto;grid-column:auto;justify-self:start}
.bwce-illu-live .bwce-illu svg{width:76px;height:52px}

/* La mention de transmission, juste au-dessus du bouton qui la déclenche. */
.bwce-consent{
  margin:clamp(18px,2.6vw,26px) 0 0;
  padding:14px 16px;
  border-left:3px solid var(--c-primary);
  background:var(--c-surface);
  border-radius:0 var(--c-r) var(--c-r) 0;
  font-size:var(--c-xs);line-height:1.55;color:var(--c-ink-2);
  max-width:64ch;
}
.bwce-consent__lien{color:var(--c-ink);text-underline-offset:3px}
.bwce-consent__lien:hover{color:var(--c-primary-d)}

/* Les deux dernières questions, sur le récapitulatif. */
.bwce-final{margin-top:clamp(22px,3vw,32px)}

@media (max-width:560px){
  .bwce .bwce-illu svg{width:48px;height:33px}
  .bwce-compte{grid-template-columns:minmax(0,1fr);gap:6px}
  .bwce-illu-live{padding-bottom:0}
  .bwce-illu-live .bwce-illu svg{width:64px;height:44px}
}

/* Un visiteur qui refuse les animations ne subit pas la transition de trait. */
@media (prefers-reduced-motion:reduce){
  .bwce .bwce-illu svg{transition:none}
}
