/**
 * Funnel — utilitaires : conteneur SWS partagé, alignements des blocs, sélecteur de langue.
 */
.sws-container {
  max-width: var(--fnl-maxw);
  margin: 0 auto;
  padding: 0 var(--fnl-pad);
}

/* Alignement piloté par le payload des blocs (`align`: start | center | end). */
.is-align-start  { text-align: start; }
.is-align-center { text-align: center; }
.is-align-end    { text-align: end; }
.is-align-center .eyebrow { margin-inline: auto; }
.is-align-end    .eyebrow { margin-inline-start: auto; }

.fnl-hidden { display: none !important; }
.fnl-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Sélecteur de langue flottant. */
.lang-sw {
  position: fixed;
  top: 14px;
  inset-inline-end: 16px;
  z-index: 80;
  display: flex;
  gap: 2px;
  background: rgba(28, 35, 41, .62);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 999px;
  padding: 3px;
}
.lang-sw a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 26px;
  padding: 0 9px;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .04em;
  color: #cfd3d9;
  border-radius: 999px;
  line-height: 1;
}
.lang-sw a.on { background: var(--fnl-orange); color: var(--fnl-on-accent); }
.lang-sw a:hover:not(.on) { color: #fff; }

/* Messages de formulaire. */
.fnl-msg { margin: 12px 0 0; font-size: 13.5px; font-weight: 600; }
.fnl-msg--err { color: var(--fnl-danger); }
.fnl-msg--ok  { color: var(--fnl-blue-2); }
