


.connexion-cta-sec {
  display: block;
  width: 100%;
  padding: var(--space-3) var(--space-6);
  background: transparent;
  color: var(--text-primary);
  border: var(--border-width-strong) solid var(--border-color-strong);
  border-radius: var(--radius-interactive);
  box-shadow: 6px 6px 0 var(--border-color-strong);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: var(--type-body-size);
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  appearance: none;
  transition: transform var(--motion-duree-2) var(--motion-courbe-sortie),
              box-shadow var(--motion-duree-2) var(--motion-courbe-sortie);
}
.connexion-cta-sec:hover {
  transform: translate(-3px, -3px) rotate(-3.5deg);
  box-shadow: 9px 9px 0 var(--border-color-strong);
}
.connexion-cta-sec:focus-visible {
  outline: var(--border-width-strong) solid var(--focus-ring);
  outline-offset: 4px;
}


.connexion-repli { width: 100%; }
.connexion-repli > summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  column-gap: 0.3em;
  min-height: 44px;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-interactive);
  list-style: none;
  cursor: pointer;
  font-size: var(--type-small-size);
  line-height: var(--type-small-leading);
  color: var(--text-secondary);
  text-align: center;
  -webkit-tap-highlight-color: transparent;
}
.connexion-repli > summary::-webkit-details-marker { display: none; }

.connexion-repli-geste {
  white-space: nowrap;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.connexion-repli-geste::after {
  content: "";
  display: inline-block;
  width: 0.45em;
  height: 0.45em;
  margin-left: 0.55em;
  border-right: var(--border-width-strong) solid currentColor;
  border-bottom: var(--border-width-strong) solid currentColor;
  vertical-align: 0.2em;
  transform: rotate(45deg);
  transition: transform var(--motion-duree-2) var(--motion-courbe-sortie);
}
.connexion-repli[open] .connexion-repli-geste::after { transform: translateY(0.2em) rotate(-135deg); }
.connexion-repli > summary:hover,
.connexion-repli[open] > summary { color: var(--text-primary); }
.connexion-repli > summary:focus-visible {
  outline: var(--border-width-strong) solid var(--focus-ring);
  outline-offset: 2px;
}

.connexion-repli:not([open]) > :not(summary) { display: none; }

.connexion-actions .connexion-repli > form { margin-top: var(--space-2); }
@media (prefers-reduced-motion: reduce) {
  .connexion-repli-geste::after { transition: none; }
}


.connexion-actions { display: flex; flex-direction: column; gap: var(--space-4); width: 100%; }
.connexion-actions form { margin: 0; width: 100%; }
.connexion-carte turbo-frame { display: block; width: 100%; }


.connexion-champ--code {
  font-family: var(--font-mono);
  font-size: var(--type-h3-size);
  letter-spacing: 0.3em;
  text-align: center;
}

.connexion-aide a:hover { color: var(--accent-hover); }
