/* ============================================================
   Biux 2026 - Overlay "Demander un devis" (parcours premium).

   PORTAGE de biux-devis-flow/assets/flow.css, TOUT SCOPE sous
   .biux-devis-overlay pour ne PAS entrer en collision avec les
   tokens globaux du theme (style.css :root definit --bg / --ink /
   --font-body ...). On ne restyle JAMAIS html/body ; les variables
   sont rehomeees sur le conteneur overlay. Le @import Google Fonts
   du prototype est SUPPRIME : le theme self-host "Outfit" +
   "Plus Jakarta Sans" (memes noms de famille) via @font-face.
   ============================================================ */

/* The homepage no longer loads the legacy theme stylesheet. Keep the original
   quote font faces here too, so the overlay never falls back to the page skin. */
@font-face { font-family: "Plus Jakarta Sans"; src: url("../fonts/PlusJakartaSans-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Plus Jakarta Sans"; src: url("../fonts/PlusJakartaSans-SemiBold.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Outfit"; src: url("../fonts/Outfit-Medium.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }

/* ---- Demande Kevin : AUCUN encadre de focus (outline) sur TOUT le site ----
   (devis-flow.css est charge sur chaque page). Compromis a11y assume. ---- */
:focus, :focus-visible { outline: none !important; }

/* ---- Anti-flash de l'ancienne page /devis/ : quand JS est actif, on masque le
   contenu statique instantanement (l'overlay s'ouvre par-dessus). Sans JS, la
   page statique reste visible = fallback SEO / no-JS.
   IMPORTANT : cible `.devis-overlay-flash` (UNIQUEMENT le body de /devis/), pas
   `.devis-light-page` — cette derniere sert aussi au STYLE clair de la page
   /recrutement/, qui n'a PAS d'overlay et ne doit donc jamais etre masquee. ---- */
html.biux-js body.devis-overlay-flash > *:not(.biux-devis-overlay):not(script):not(style) { visibility: hidden !important; }

/* ---- Fix menu mobile du theme (independant du devis) : le header .nav a un
   backdrop-filter qui devient le "containing block" du position:fixed de
   .nav-mobile -> son inset:0 se calait sur le header (~133px) au lieu du
   viewport, d'ou le menu coupe en petite bande. Quand le menu est ouvert, on
   retire le backdrop-filter du header -> le panneau reprend tout l'ecran.
   (Le menu, opaque et au-dessus, couvre le header de toute facon.) ---- */
body.nav-mobile-open .nav {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* ---- Conteneur overlay : cree son propre contexte + rehome les tokens ---- */
.biux-devis-overlay {
  --bg: #ffffff;
  --bg-2: #f2f2f2;
  --ink: #00030f;
  --ink-70: rgba(0, 3, 15, .70);
  --ink-55: rgba(0, 3, 15, .55);
  --ink-45: rgba(0, 3, 15, .45);
  --ink-40: rgba(0, 3, 15, .40);
  --line: rgba(0, 3, 15, .12);
  --line-strong: rgba(0, 3, 15, .22);
  --accent: #1c66f5;
  --font-display: "Outfit", system-ui, sans-serif;
  --font-body: "Plus Jakarta Sans", system-ui, sans-serif;

  position: fixed;
  inset: 0;
  z-index: 100000;
  background: var(--bg);
  color: var(--ink);
  /* Original body defaults, isolated from each redesigned page's inheritance. */
  font: 400 16px/1.6 var(--font-body);
  letter-spacing: normal;
  word-spacing: normal;
  text-align: left;
  overflow-wrap: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden; /* le calendrier pleine largeur (100vw) ne cree pas de scroll horizontal */
  overflow-y: auto;
}
/* Preserve the legacy theme's default corners even on the standalone home.
   Component rules below keep their original, more specific 4/10px values. */
.biux-devis-overlay :is(button, img) { border-radius: 4px; }
.biux-devis-overlay[hidden] { display: none; }
/* [2026-08-18 Kevin] Ouverture : l'overlay EMERGE du coin bas-droite (la ou se
   trouve le bouton flottant "Parler de votre projet") -> effet "sort du bouton".
   fill-mode BACKWARDS (et pas forwards/both) : le transform ne PERSISTE pas apres
   l'anim -> pas de transform residuel qui creerait un containing-block cassant
   les enfants position:fixed (piege connu de cet overlay, cf. backdrop-filter). */
.biux-devis-overlay.is-open {
  display: block;
  transform-origin: 100% 100%;
  animation: biux-devis-emerge .42s cubic-bezier(.16, .84, .44, 1) backwards;
}
@keyframes biux-devis-emerge {
  from { opacity: 0; transform: scale(.04); }
  to   { opacity: 1; transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .biux-devis-overlay.is-open { animation-name: biux-devis-fade; }
}
@keyframes biux-devis-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.biux-devis-overlay *,
.biux-devis-overlay *::before,
.biux-devis-overlay *::after { box-sizing: border-box; }

.biux-devis-overlay button { font-family: inherit; }

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

/* ============================================================
   Intro animee (logo biux) - lettres revelees facon ElevenLabs
   ============================================================ */
.biux-devis-overlay .intro {
  position: fixed; inset: 0; z-index: 200;
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  padding: 0; margin: 0; /* annule le padding asymetrique herite du .intro du theme (logo pile centre) */
}
.biux-devis-overlay .intro.is-done { opacity: 0; visibility: hidden; transition: opacity .5s ease, visibility 0s .5s; }

.biux-devis-overlay .intro__logo {
  position: relative; height: clamp(40px, 6vw, 64px); width: auto;
  overflow: visible; /* laisse le "i" arriver de loin a droite sans etre coupe */
}

.biux-devis-overlay .intro-b,
.biux-devis-overlay .intro-i,
.biux-devis-overlay .intro-right,
.biux-devis-overlay .intro-dot { transform-box: fill-box; }

.biux-devis-overlay .intro-b {
  transform-origin: 50% 50%;
  animation: biux-devis-intro-b-part 1.5s cubic-bezier(.5,1.4,.5,1) .15s both;
}
@keyframes biux-devis-intro-b-part {
  0%   { opacity: 0; transform: translateX(82px); }
  8%   { opacity: 1; transform: translateX(82px); }
  66%  { transform: translateX(82px); }
  76%  { transform: translateX(-16px); }
  88%  { transform: translateX(5px); }
  100% { transform: translateX(0); }
}

.biux-devis-overlay .intro-right {
  transform-origin: 50% 50%;
  animation: biux-devis-intro-right-part 1.5s cubic-bezier(.5,1.4,.5,1) .15s both;
}
@keyframes biux-devis-intro-right-part {
  0%   { opacity: 0; transform: translateX(-82px); }
  8%   { opacity: 1; transform: translateX(-82px); }
  66%  { transform: translateX(-82px); }
  76%  { transform: translateX(16px); }
  88%  { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}

.biux-devis-overlay .intro-i {
  transform-origin: 50% 100%;
  animation: biux-devis-intro-i-jump 1.5s linear .15s both;
}
@keyframes biux-devis-intro-i-jump {
  0%   { opacity: 0; transform: translate(1240px,-300px) rotate(8deg) scale(.72,1.2);
         animation-timing-function: cubic-bezier(.42,0,.9,.42); }
  6%   { opacity: 1; }
  13%  { transform: translate(980px,0) rotate(0deg) scale(1.22,.73);
         animation-timing-function: cubic-bezier(.2,.7,.35,1); }
  18%  { transform: translate(940px,-8px) rotate(-4deg) scale(.83,1.2);
         animation-timing-function: cubic-bezier(.06,.5,.35,1); }
  29%  { transform: translate(815px,-158px) rotate(-7deg) scale(.95,1.08);
         animation-timing-function: cubic-bezier(.42,0,.9,.42); }
  40%  { transform: translate(675px,0) rotate(0deg) scale(1.24,.71);
         animation-timing-function: cubic-bezier(.2,.7,.35,1); }
  45%  { transform: translate(628px,-12px) rotate(-6deg) scale(.81,1.22);
         animation-timing-function: cubic-bezier(.05,.5,.35,1); }
  59%  { transform: translate(340px,-398px) rotate(-9deg) scale(.9,1.13);
         animation-timing-function: cubic-bezier(.45,0,.92,.38); }
  74%  { transform: translate(0,0) rotate(0deg) scale(1.27,.69);
         animation-timing-function: cubic-bezier(.2,.7,.3,1); }
  80%  { transform: translate(0,-40px) rotate(4deg) scale(.9,1.13);
         animation-timing-function: cubic-bezier(.42,0,.9,.45); }
  85%  { transform: translate(0,0) rotate(0deg) scale(1.13,.88);
         animation-timing-function: cubic-bezier(.2,.7,.3,1); }
  90%  { transform: translate(0,-13px) rotate(-2deg) scale(.97,1.05);
         animation-timing-function: cubic-bezier(.42,0,.9,.45); }
  94%  { transform: translate(0,0) rotate(0deg) scale(1.05,.96);
         animation-timing-function: cubic-bezier(.2,.7,.3,1); }
  97%  { transform: translate(0,-4px) scale(.99,1.02); }
  100% { transform: translate(0,0) rotate(0) scale(1,1); }
}

.biux-devis-overlay .intro-i-head {
  transform-box: fill-box; transform-origin: 50% 100%;
  animation: biux-devis-intro-head-lag 1.5s ease-in-out .15s both;
}
@keyframes biux-devis-intro-head-lag {
  0%   { transform: translate(0,0); }
  13%  { transform: translate(4px, 12px); }
  20%  { transform: translate(-4px,-9px); }
  40%  { transform: translate(5px, 13px); }
  47%  { transform: translate(-6px,-12px); }
  59%  { transform: translate(-7px,-6px); }
  74%  { transform: translate(5px, 17px); }
  82%  { transform: translate(-4px,-10px); }
  90%  { transform: translate(2px, 6px); }
  100% { transform: translate(0,0); }
}

.biux-devis-overlay .intro-dot {
  transform-origin: 50% 50%;
  animation: biux-devis-intro-dot-pop 1.5s cubic-bezier(.34,1.56,.64,1) .15s both;
}
@keyframes biux-devis-intro-dot-pop {
  0%   { opacity: 0; transform: scale(0); }
  80%  { opacity: 0; transform: scale(0); }
  88%  { opacity: 1; transform: scale(1.35); }
  95%  { transform: scale(.9); }
  100% { opacity: 1; transform: scale(1); }
}

/* ---- Barre de progression ---- */
.biux-devis-overlay .flow-progress { position: fixed; top: 0; left: 0; right: 0; height: 2px; background: rgba(0,3,15,.06); z-index: 10; }
.biux-devis-overlay .flow-progress__bar { height: 100%; background: var(--ink); width: 0; transition: width .5s cubic-bezier(.22,.61,.36,1); }

/* ---- Barre haute ---- */
.biux-devis-overlay .flow-top {
  position: fixed; top: 0; left: 0; right: 0; height: 64px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 clamp(20px, 4vw, 48px); z-index: 9;
}
.biux-devis-overlay .flow-logo {
  display: inline-flex; align-items: center; color: var(--ink);
  background: none; border: 0; padding: 0; cursor: pointer; text-decoration: none;
}
.biux-devis-overlay .flow-logo svg { height: 19px; width: auto; display: block; }
.biux-devis-overlay .flow-close { color: var(--ink-40); background: none; border: 0; cursor: pointer; text-decoration: none; font-size: 26px; line-height: 1; padding: 8px; }
.biux-devis-overlay .flow-close:hover { color: var(--ink); }

/* ---- Etapes : une seule visible a la fois ---- */
.biux-devis-overlay .flow-step { display: none; }
.biux-devis-overlay .flow-step.is-active {
  min-height: 100vh; min-height: 100dvh;
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  padding: clamp(74px, 10vh, 96px) clamp(20px, 5vw, 48px) clamp(24px, 8vh, 96px);
}
.biux-devis-overlay .flow-step.is-active:has(.flow-calendar:not([hidden])) { min-height: 100dvh; justify-content: flex-start; }
.biux-devis-overlay .flow-wrap { width: 100%; max-width: 820px; margin-inline: auto; text-align: center; }
.biux-devis-overlay .flow-wrap--narrow { max-width: 820px; }
.biux-devis-overlay .flow-wrap--project { max-width: 382px; text-align: left; }
.biux-devis-overlay .flow-wrap--project .flow-question { margin: 0 0 20px; text-align: left; }
.biux-devis-overlay .flow-wrap--contact { max-width: 540px; text-align: left; }
.biux-devis-overlay .flow-wrap--contact .flow-question { margin: 0 0 20px; text-align: left; }
/* Contact-last recap: approved layout addition, other steps keep their design. */
.biux-devis-overlay .flow-wrap--contact:has(.flow-project-summary) {
  max-width: 980px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  grid-template-areas: "summary contact";
  align-items: stretch;
  gap: clamp(28px, 5vw, 64px);
}
.biux-devis-overlay .flow-contact-fields { grid-area: contact; min-width: 0; display: flex; flex-direction: column; }
.biux-devis-overlay .flow-wrap--contact > .flow-project-summary { grid-area: summary; }
.biux-devis-overlay .flow-contact-fields .flow-form { flex: 1; display: flex; flex-direction: column; }
.biux-devis-overlay .flow-contact-fields .flow-actions { margin-top: auto; padding-top: 24px; }
.biux-devis-overlay .flow-contact-trust { min-width: 0; margin-top: 24px; }
.biux-devis-overlay .flow-contact-trust__title {
  margin: 0 0 18px;
  color: var(--ink-70); font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase;
}
.biux-devis-overlay .flow-contact-trust__logos {
  overflow: hidden;
  -webkit-mask: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  mask: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.biux-devis-overlay .flow-contact-trust__track {
  display: flex; align-items: center; gap: 28px; width: max-content;
  animation: biux-flow-client-logos 44s linear infinite;
}
.biux-devis-overlay .flow-contact-trust__track img {
  flex: 0 0 auto; height: 22px; width: auto; object-fit: contain; filter: brightness(0); opacity: .55;
}
.biux-devis-overlay .flow-contact-trust:hover .flow-contact-trust__track { animation-play-state: paused; }
@keyframes biux-flow-client-logos {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(calc(-50% - 14px), 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .biux-devis-overlay .flow-contact-trust__logos { overflow-x: auto; }
  .biux-devis-overlay .flow-contact-trust__track { animation: none; }
  .biux-devis-overlay .flow-contact-trust__track img:nth-child(n + 13) { display: none; }
}
.biux-devis-overlay .flow-project-summary {
  min-width: 0;
  padding: clamp(24px, 3vw, 32px);
  border-radius: 16px;
  border: 1px solid rgba(0, 3, 15, .06);
  background: linear-gradient(135deg, rgba(238, 240, 242, .8), rgba(248, 249, 250, .6));
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  backdrop-filter: blur(18px) saturate(140%);
  box-shadow: 0 12px 36px rgba(0, 3, 15, .05), inset 0 1px 0 rgba(255, 255, 255, .9);
  color: var(--ink);
  text-align: left;
}
.biux-devis-overlay .flow-project-summary .flow-google-rating { margin: 0 0 20px; }
.biux-devis-overlay .flow-project-summary__title {
  margin: 0 0 24px;
  color: var(--ink-70);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.biux-devis-overlay .flow-project-summary__details { margin: 0; }
.biux-devis-overlay .flow-project-summary__details > div {
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.biux-devis-overlay .flow-project-summary__details > div:first-child { padding-top: 0; }
.biux-devis-overlay .flow-project-summary__details > div:last-child { padding-bottom: 0; border-bottom: 0; }
.biux-devis-overlay .flow-project-summary__details dt { color: var(--ink-70); font-size: 11px; }
.biux-devis-overlay .flow-project-summary__details dd {
  margin: 5px 0 0;
  font-size: 13px;
  line-height: 1.6;
  /* HTML indentation around the upload control must not create empty lines. */
  white-space: normal;
  overflow-wrap: anywhere;
}
.biux-devis-overlay .flow-project-summary :is(select, textarea) {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 8px 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font: 400 13px/1.6 var(--font-body);
  text-align: left;
  color-scheme: light;
}
.biux-devis-overlay .flow-project-summary select {
  appearance: auto;
  cursor: pointer;
  background: #fff;
  height: 40px;
  padding: 0 12px;
}
.biux-devis-overlay .flow-project-summary option { background: #fff; color: var(--ink); }
.biux-devis-overlay .flow-project-summary select[hidden] { display: none; }
.biux-devis-overlay .flow-summary-dropdown { position: relative; }
.biux-devis-overlay .flow-summary-readout { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 32px; }
.biux-devis-overlay .flow-summary-readout [data-summary-value] { min-width: 0; }
.biux-devis-overlay .flow-summary-message [data-summary-message-value] { min-width: 0; white-space: pre-wrap; }
.biux-devis-overlay .flow-summary-message [data-summary-message-editor][hidden] { display: none; }
.biux-devis-overlay .flow-summary-message [data-summary-message-done] { display: block; margin-left: auto; }
.biux-devis-overlay .flow-summary-edit {
  flex: 0 0 auto;
  min-height: 32px;
  padding: 4px 0;
  border: 0;
  background: transparent;
  color: var(--ink-70);
  font: 400 12px/1.5 var(--font-body);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.biux-devis-overlay .flow-summary-edit:hover { color: var(--ink); }
.biux-devis-overlay .flow-summary-edit:focus-visible { outline: 2px solid var(--ink-55) !important; outline-offset: 3px; }
.biux-devis-overlay .flow-summary-readout[hidden],
.biux-devis-overlay .flow-summary-toggle[hidden] { display: none; }
.biux-devis-overlay .flow-summary-toggle {
  display: block;
  position: relative;
  width: 100%;
  height: 40px;
  min-height: 40px;
  padding: 0 36px 0 12px;
  border: 1px solid #e5e5e5;
  border-radius: 10px !important;
  background: #fff;
  color: #202020;
  font: 400 13px/1.5 var(--font-body);
  text-align: left;
  cursor: pointer;
}
.biux-devis-overlay .flow-summary-toggle::after {
  content: '';
  position: absolute;
  right: 15px;
  top: calc(50% - 5px);
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
}
.biux-devis-overlay .flow-summary-options {
  position: absolute;
  z-index: 5;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  max-height: 240px;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 6px;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  background: #fff;
  color: #202020;
  box-shadow: 0 12px 28px rgba(0, 0, 0, .16);
  white-space: normal;
}
.biux-devis-overlay .flow-summary-options[hidden] { display: none; }
.biux-devis-overlay .flow-summary-options button {
  display: block;
  position: relative;
  width: 100%;
  padding: 10px 32px 10px 10px;
  border: 0;
  border-radius: 6px !important;
  background: #fff;
  color: #202020;
  font: 400 13px/1.5 var(--font-body);
  text-align: left;
  cursor: pointer;
}
.biux-devis-overlay .flow-summary-options button:is(:hover, :focus, [aria-selected="true"]) { background: #f2f2f2; }
.biux-devis-overlay .flow-summary-options [aria-selected="true"]::after { content: '✓'; position: absolute; right: 10px; }
.biux-devis-overlay .flow-summary-toggle:focus-visible { outline: 2px solid var(--ink-55) !important; outline-offset: 3px; }
.biux-devis-overlay .flow-project-summary textarea { min-height: 90px; resize: vertical; }
.biux-devis-overlay .flow-project-summary textarea::placeholder { color: var(--ink-70); opacity: 1; }
.biux-devis-overlay .flow-project-summary :is(select, textarea, input):focus-visible { outline: 2px solid var(--ink-55) !important; outline-offset: 3px; }
.biux-devis-overlay .flow-project-summary .flow-file-drop { background: rgba(255, 255, 255, .65); border-color: var(--line-strong); color: var(--ink); }
.biux-devis-overlay .flow-project-summary .flow-file-drop__copy small,
.biux-devis-overlay .flow-project-summary .flow-optional { color: var(--ink-70); }
.biux-devis-overlay .flow-project-summary .flow-file-drop__copy strong { color: var(--ink); font-size: 13px; }
.biux-devis-overlay .flow-project-summary .flow-file-drop:focus-within { outline: 2px solid var(--ink-55); outline-offset: 3px; }
.biux-devis-overlay .flow-project-summary .flow-file-error { color: #b42318; margin-top: 8px; }
@media (max-width: 760px) {
  .biux-devis-overlay .flow-wrap--contact:has(.flow-project-summary) { max-width: 540px; grid-template-columns: minmax(0, 1fr); grid-template-areas: "contact" "summary"; gap: 28px; }
}
/* End contact-last recap. */
.biux-devis-overlay .flow-wrap--message { max-width: 540px; text-align: left; }
.biux-devis-overlay .flow-wrap--message .flow-question { margin: 0 0 20px; text-align: left; }
.biux-devis-overlay .flow-wrap--narrow .flow-fields,
.biux-devis-overlay .flow-wrap--narrow .flow-list { max-width: 540px; margin-inline: auto; width: 100%; }

/* ---- Eyebrow / Question / Sous-titre ---- */
.biux-devis-overlay .flow-eyebrow {
  font-family: var(--font-display); font-weight: 500; font-size: 11px;
  letter-spacing: .14em; text-transform: uppercase; color: var(--ink-70); margin: 0 0 16px;
}
/* Step prompts are paragraphs; their size is independent of page headings. */
.biux-devis-overlay .flow-question {
  font-family: var(--font-body); font-weight: 400;
  font-size: 25px; line-height: 1.2; letter-spacing: -.005em;
  margin: 0 0 clamp(8px, 1.4vh, 14px); color: var(--ink);
  white-space: nowrap; text-align: inherit;
}
@media (max-width: 840px) { .biux-devis-overlay .flow-question { white-space: normal; } }
.biux-devis-overlay .flow-sub { font-size: 15px; line-height: 1.65; color: var(--ink-70); margin: 0 auto clamp(16px, 3.4vh, 40px); font-weight: 400; white-space: nowrap; }
.biux-devis-overlay [data-final-sub] { text-align: center; }
@media (max-width: 840px) { .biux-devis-overlay .flow-sub { white-space: normal; max-width: 520px; } }

/* ---- Choix d'entree : formulaire ou reservation ---- */
.biux-devis-overlay .flow-wrap--route { max-width: 720px; }
.biux-devis-overlay .flow-wrap--route .flow-question { margin-bottom: 12px; }
.biux-devis-overlay .flow-google-rating {
  display: flex; align-items: center; justify-content: center; gap: 7px; margin: 0 0 clamp(20px, 3vh, 32px);
  color: var(--ink); font-family: var(--font-body); font-size: 15px; line-height: 1; white-space: nowrap;
}
.biux-devis-overlay a.flow-google-rating { width: fit-content; margin-inline: auto; text-decoration: none; }
.biux-devis-overlay a.flow-google-rating:focus-visible { outline: 2px solid var(--ink) !important; outline-offset: 4px; }
.biux-devis-overlay .flow-google-rating__stars { color: #f4a900; font-size: 18px; letter-spacing: 2px; line-height: 1; }
.biux-devis-overlay .flow-google-rating__score { font-weight: 700; }
.biux-devis-overlay .flow-google-rating__separator { color: var(--ink-70); font-weight: 600; }
.biux-devis-overlay .flow-google-rating__label { color: var(--ink-70); }
.biux-devis-overlay .flow-route-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.biux-devis-overlay .flow-route-card {
  display: flex; flex-direction: column; min-height: 196px; padding: 20px; background: #fff; border: 1px solid var(--line-strong);
  border-radius: 10px !important; color: var(--ink); text-align: left; font-family: var(--font-body);
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.biux-devis-overlay .flow-route-card:hover { border-color: var(--ink); }
.biux-devis-overlay .flow-route-card.is-selected { border-color: var(--ink); background: rgba(0,3,15,.02); box-shadow: 0 0 0 1px var(--ink) inset; }
.biux-devis-overlay .flow-route-card__head { display: flex; align-items: center; gap: 12px; }
.biux-devis-overlay .flow-route-card__head > span:last-child { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.biux-devis-overlay .flow-route-card__head strong { font-size: 16px; line-height: 1.3; font-weight: 500; }
.biux-devis-overlay .flow-route-card__head small { font-size: 13px; line-height: 1.45; font-weight: 400; font-style: italic; color: var(--ink-55); }
/* One geometry owner for both 40px icons; the status badge is positioned separately. */
.biux-devis-overlay .flow-route-card__glow,
.biux-devis-overlay .flow-route-card__avatar {
  display: block; flex: 0 0 40px; box-sizing: border-box;
  width: 40px; height: 40px; min-width: 40px; min-height: 40px; max-width: 40px; max-height: 40px;
  border-radius: 10px;
}
.biux-devis-overlay .flow-route-card__glow {
  overflow: hidden;
  background:
    radial-gradient(circle at 20% 82%, rgba(255,173,56,.98) 0 12%, transparent 48%),
    radial-gradient(circle at 82% 18%, rgba(119,91,255,.96) 0 13%, transparent 48%),
    radial-gradient(circle at 68% 76%, rgba(255,74,104,.94) 0 14%, transparent 52%),
    linear-gradient(140deg, #271c58 0%, #7444d2 48%, #ff9f35 100%);
  box-shadow: inset 0 0 12px rgba(255,255,255,.28);
}
.biux-devis-overlay .flow-route-card[data-route-choice="form"] .flow-route-card__glow {
  background:
    radial-gradient(circle at 24% 20%, rgba(111,216,121,.98) 0 12%, transparent 48%),
    radial-gradient(circle at 76% 24%, rgba(108,182,255,.96) 0 13%, transparent 50%),
    radial-gradient(circle at 62% 82%, rgba(0,180,221,.96) 0 15%, transparent 52%),
    linear-gradient(140deg, #1d4d5c 0%, #4f8da2 45%, #0068a6 100%);
  box-shadow: inset 0 0 12px rgba(255,255,255,.25);
}
/* Crop only the photo so the status badge can straddle its top-right corner. */
.biux-devis-overlay .flow-route-card__avatar {
  position: relative; overflow: visible;
}
.biux-devis-overlay .flow-route-card__portrait {
  display: block; width: 100%; height: 100%; overflow: hidden; border-radius: inherit;
}
.biux-devis-overlay .flow-route-card__avatar img {
  display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0 !important;
  transform: scale(1.55); transform-origin: 50% 0%;
}
.biux-devis-overlay .flow-route-card__status {
  position: absolute; right: 0; top: 0; width: 13px; height: 13px; border-radius: 50%;
  transform: translate(50%, -50%);
  background: #22c55e; border: 2.5px solid #fff; box-shadow: 0 0 8px rgba(34,197,94,.35);
}
.biux-devis-overlay .flow-route-card.is-selected .flow-route-card__glow,
.biux-devis-overlay .flow-route-card.is-selected .flow-route-card__avatar { outline: 2px solid var(--ink); outline-offset: 2px; }
.biux-devis-overlay .flow-route-card__rule { display: block; height: 1px; margin: 18px 0 14px; background: var(--line); }
.biux-devis-overlay .flow-route-card__features { display: grid; gap: 7px; color: #000000A4; font-size: 13px; line-height: 1.35; }
.biux-devis-overlay .flow-route-card__features > span { display: flex; align-items: center; gap: 8px; }
.biux-devis-overlay .flow-route-card__feature-icon { display: grid; place-items: center; flex: 0 0 18px; width: 18px; height: 18px; color: inherit; }
.biux-devis-overlay .flow-route-card__feature-icon svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.biux-devis-overlay .flow-route-card__feature-icon--certificate,
.biux-devis-overlay .flow-route-card__feature-icon--upload,
.biux-devis-overlay .flow-route-card__feature-icon--calendar,
.biux-devis-overlay .flow-route-card__feature-icon--sparkles,
.biux-devis-overlay .flow-route-card__feature-icon--call,
.biux-devis-overlay .flow-route-card__feature-icon--target,
.biux-devis-overlay .flow-route-card__feature-icon--recommendations,
.biux-devis-overlay .flow-route-card__feature-icon--sent { background-color: currentColor; }
.biux-devis-overlay .flow-route-card__feature-icon--certificate { -webkit-mask: url("../img/devis-certificate.svg") center / contain no-repeat; mask: url("../img/devis-certificate.svg") center / contain no-repeat; }
.biux-devis-overlay .flow-route-card__feature-icon--upload { -webkit-mask: url("../img/devis-upload.svg") center / contain no-repeat; mask: url("../img/devis-upload.svg") center / contain no-repeat; }
.biux-devis-overlay .flow-route-card__feature-icon--calendar { -webkit-mask: url("../img/devis-calendar.svg") center / contain no-repeat; mask: url("../img/devis-calendar.svg") center / contain no-repeat; }
.biux-devis-overlay .flow-route-card__feature-icon--sparkles { -webkit-mask: url("../img/devis-sparkles.svg") center / contain no-repeat; mask: url("../img/devis-sparkles.svg") center / contain no-repeat; }
.biux-devis-overlay .flow-route-card__feature-icon--call { -webkit-mask: url("../img/devis-call.svg") center / contain no-repeat; mask: url("../img/devis-call.svg") center / contain no-repeat; }
.biux-devis-overlay .flow-route-card__feature-icon--target { -webkit-mask: url("../img/devis-target.svg") center / contain no-repeat; mask: url("../img/devis-target.svg") center / contain no-repeat; }
.biux-devis-overlay .flow-route-card__feature-icon--recommendations { -webkit-mask: url("../img/devis-recommendations.svg") center / contain no-repeat; mask: url("../img/devis-recommendations.svg") center / contain no-repeat; }
.biux-devis-overlay .flow-route-card__feature-icon--sent { -webkit-mask: url("../img/devis-sent.svg") center / contain no-repeat; mask: url("../img/devis-sent.svg") center / contain no-repeat; }
.biux-devis-overlay .flow-route-continue { height: 36px !important; margin-top: 24px; padding-inline: 12px !important; border-radius: 10px !important; letter-spacing: 0; text-transform: none; }
@media (min-width: 700px) {
  .biux-devis-overlay .flow-route-card__head { min-height: 62px; align-items: flex-start; }
}
@media (max-width: 699px) {
  .biux-devis-overlay .flow-route-grid { grid-template-columns: 1fr; max-width: 360px; margin-inline: auto; }
  .biux-devis-overlay .flow-route-card { min-height: 170px; padding: 16px; }
}

/* ---- Cartes de choix ---- */
.biux-devis-overlay .flow-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
@media (min-width: 720px) { .biux-devis-overlay .flow-grid--3 { grid-template-columns: repeat(3, 1fr); } }
.biux-devis-overlay .flow-card {
  display: flex; align-items: center; justify-content: center; text-align: center;
  width: 236px; max-width: 100%; height: 47px; min-height: 47px; margin-inline: auto;
  padding: 0 12px; line-height: 1.2; background: #fff; border: 1px solid var(--line); border-radius: 4px;
  cursor: pointer; font-family: var(--font-body); font-size: 15px; font-weight: 500; color: var(--ink);
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.biux-devis-overlay .flow-card:hover { border-color: var(--line-strong); }
.biux-devis-overlay .flow-card.is-selected { border-color: var(--ink); background: rgba(0,3,15,.02); box-shadow: 0 0 0 1px var(--ink) inset; }
.biux-devis-overlay .flow-list.flow-project-list {
  width: 100%; max-width: none; margin-inline: auto;
  display: grid; grid-template-columns: repeat(2, 186px); justify-content: center; gap: 10px;
}
.biux-devis-overlay .flow-card.flow-card--project {
  width: 186px; height: 90px; min-height: 90px; margin-inline: 0; padding: 12px;
  flex-direction: row; align-items: flex-start; justify-content: flex-start; gap: 12px; text-align: left;
  border-radius: 10px !important;
}
.biux-devis-overlay .flow-card__icon { width: 18px; height: 18px; flex: 0 0 18px; color: var(--ink); }
.biux-devis-overlay .flow-card__icon svg { display: block; width: 100%; height: 100%; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.biux-devis-overlay .flow-card__icon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.biux-devis-overlay .flow-card__copy { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; }
.biux-devis-overlay .flow-card__title { display: block; font-size: 14px; font-weight: 500; line-height: 1.25; color: var(--ink); }
.biux-devis-overlay .flow-card__desc { display: none; font-size: 12px; font-weight: 400; line-height: 1.35; color: var(--ink-55); }
.biux-devis-overlay .flow-project-actions { display: flex; align-items: center; justify-content: flex-start; gap: 2px; width: 382px; max-width: 100%; margin: 24px auto 0; text-align: left; }
.biux-devis-overlay .flow-project-back { height: 36px; border: 0; color: var(--ink); background: transparent; padding: 0 10px; border-radius: 10px !important; font: 500 13px/1 var(--font-body); cursor: pointer; }
.biux-devis-overlay .flow-project-back:hover { background: rgba(0,3,15,.075); border-radius: 10px !important; background-clip: padding-box; }
@media (min-width: 720px) { .biux-devis-overlay .flow-grid--3 .flow-card--center { grid-column: 2; } }
@media (max-width: 719px) { .biux-devis-overlay .flow-card--center { grid-column: 1 / -1; } }

/* ---- Options pleine largeur ---- */
.biux-devis-overlay .flow-list { display: flex; flex-direction: column; gap: 8px; }
.biux-devis-overlay .flow-opt {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  width: 236px; max-width: 100%; height: 47px; margin-inline: auto;
  padding: 0 12px; line-height: 1.2; background: #fff; border: 1px solid var(--line); border-radius: 4px;
  cursor: pointer; font-family: var(--font-body); font-size: 15px; font-weight: 500; color: var(--ink);
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.biux-devis-overlay .flow-opt:hover { border-color: var(--line-strong); }
.biux-devis-overlay .flow-opt.is-selected { border-color: var(--ink); background: rgba(0,3,15,.02); box-shadow: 0 0 0 1px var(--ink) inset; }
.biux-devis-overlay .flow-opt__arrow { opacity: 0; transition: opacity .18s ease; font-size: 15px; color: var(--ink-40); }
.biux-devis-overlay .flow-opt:hover .flow-opt__arrow, .biux-devis-overlay .flow-opt.is-selected .flow-opt__arrow { opacity: 1; }

/* ---- Champs ---- */
.biux-devis-overlay .flow-fields { display: flex; flex-direction: column; gap: clamp(10px, 1.8vh, 18px); text-align: left; }
.biux-devis-overlay .flow-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 560px) { .biux-devis-overlay .flow-row { grid-template-columns: 1fr; } }
.biux-devis-overlay .flow-field { display: flex; flex-direction: column; gap: 7px; }
.biux-devis-overlay .flow-field label { font-family: var(--font-body); font-weight: 400; font-size: 13px; color: var(--ink); text-align: left; }
.biux-devis-overlay .flow-optional { opacity: .5; }
.biux-devis-overlay .flow-field .req { color: var(--accent); }
.biux-devis-overlay .flow-field input,
.biux-devis-overlay .flow-field textarea {
  width: 100%; padding: 13px 15px; background: #fff; border: 1px solid var(--line-strong); border-radius: 4px;
  font-family: var(--font-body); font-weight: 300; font-size: 15px; line-height: 1.4; color: var(--ink);
  text-align: left; transition: border-color .18s ease;
}
.biux-devis-overlay .flow-field input { height: 47px; }
.biux-devis-overlay .flow-field input::placeholder,
.biux-devis-overlay .flow-field textarea::placeholder { color: var(--ink-40); }
.biux-devis-overlay .flow-field input:focus,
.biux-devis-overlay .flow-field textarea:focus { outline: none; border-color: var(--ink); }
.biux-devis-overlay .flow-field textarea { resize: vertical; height: 47px; min-height: 47px; line-height: 1.4; text-align: left; }

/* ---- Budget + delai sur un ecran commun ---- */
.biux-devis-overlay .flow-wrap--planning { width: max-content; max-width: 100%; text-align: left; }
.biux-devis-overlay .flow-wrap--planning .flow-question { margin: 0 0 20px; text-align: left; }
.biux-devis-overlay .flow-planning-form { width: max-content; max-width: 100%; margin-inline: 0; }
.biux-devis-overlay .flow-planning-fields { width: max-content !important; max-width: 100% !important; gap: 16px; }
.biux-devis-overlay .flow-planning-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.biux-devis-overlay .flow-planning-grid--deadline,
.biux-devis-overlay .flow-planning-grid--budget { display: flex; flex-wrap: nowrap; }
.biux-devis-overlay .flow-planning-grid--deadline .flow-planning-card,
.biux-devis-overlay .flow-planning-grid--budget .flow-planning-card { flex: 0 0 auto; }
.biux-devis-overlay .flow-planning-card {
  display: flex; align-items: center; justify-content: center; height: 40px; min-height: 40px; padding: 0 12px;
  border: 1px solid var(--line-strong); border-radius: 10px !important; background: #fff; color: var(--ink);
  font: 400 clamp(11px, 1.25vw, 14px)/1.25 var(--font-body); text-align: center; white-space: nowrap; cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.biux-devis-overlay .flow-planning-card:hover { border-color: var(--ink); }
.biux-devis-overlay .flow-planning-card:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.biux-devis-overlay .flow-planning-card.is-selected {
  border-color: var(--ink); background: rgba(0,3,15,.02); box-shadow: 0 0 0 1px var(--ink) inset;
}
.biux-devis-overlay .flow-planning-form .flow-actions { width: 100%; max-width: none; margin: 24px 0 0; }
/* Both Continue buttons share one rule; the base .flow-btn owns their colors and type. */
.biux-devis-overlay .flow-planning-form .flow-btn,
.biux-devis-overlay .flow-project-form .flow-btn { height: 36px !important; padding-inline: 12px !important; border-radius: 10px !important; letter-spacing: 0; text-transform: none; }
@media (max-width: 899px) {
  .biux-devis-overlay .flow-planning-form,
  .biux-devis-overlay .flow-planning-fields { width: 100% !important; max-width: 540px !important; }
  .biux-devis-overlay .flow-planning-grid--deadline,
  .biux-devis-overlay .flow-planning-grid--budget { flex-wrap: wrap; }
  .biux-devis-overlay .flow-planning-grid--deadline .flow-planning-card,
  .biux-devis-overlay .flow-planning-grid--budget .flow-planning-card { flex: 1 1 calc(50% - 4px); }
}

/* ---- Dernier mot + depot de brief ---- */
.biux-devis-overlay .flow-project-form textarea {
  height: 120px !important; min-height: 120px !important; padding: 14px 15px; border-radius: 10px !important;
  font-size: 15px; line-height: 1.5;
}
.biux-devis-overlay .flow-file-drop {
  display: flex; align-items: center; gap: 12px; width: 100%; min-height: 64px;
  padding: 12px 14px; border: 1px dashed var(--line-strong); border-radius: 10px !important;
  background: #fff; cursor: pointer; transition: border-color .18s ease, background .18s ease;
}
.biux-devis-overlay .flow-file-drop:hover { border-color: var(--ink); background: rgba(0,3,15,.02); }
.biux-devis-overlay .flow-file-drop.is-drag-over { border-color: var(--ink); background: rgba(0,3,15,.04); }
.biux-devis-overlay .flow-file-drop input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.biux-devis-overlay .flow-file-drop__icon { width: 18px; height: 18px; flex: 0 0 18px; color: var(--ink-55); }
.biux-devis-overlay .flow-file-drop__copy { min-width: 0; display: flex; flex-direction: column; gap: 3px; text-align: left; }
.biux-devis-overlay .flow-file-drop__copy strong { overflow: hidden; color: var(--ink); font-size: 14px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.biux-devis-overlay .flow-file-drop__copy small { color: var(--ink-55); font-size: 11px; font-weight: 400; }
.biux-devis-overlay .flow-file-error,
.biux-devis-overlay .flow-submit-error { margin: 0; color: #b42318; font-size: 12px; line-height: 1.4; text-align: left; }
.biux-devis-overlay .flow-file-error[hidden],
.biux-devis-overlay .flow-submit-error[hidden] { display: none; }
.biux-devis-overlay .flow-project-form .flow-actions { margin-top: 24px; }

/* Honeypot : hors ecran, jamais visible ni focusable au clavier */
.biux-devis-overlay .flow-hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* ---- Boutons ---- */
.biux-devis-overlay .flow-actions { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-top: clamp(18px, 3.4vh, 38px); max-width: 540px; width: 100%; margin-inline: auto; }
.biux-devis-overlay [data-final] .flow-actions { max-width: none; justify-content: flex-start; }
.biux-devis-overlay .flow-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 47px; padding: 0 30px; border: 0; border-radius: 4px; background: var(--accent); color: #fff; cursor: pointer;
  font-family: var(--font-body); font-weight: 500; font-size: 12px; letter-spacing: .18em; text-transform: uppercase;
  transition: opacity .18s ease;
}
.biux-devis-overlay .flow-btn:hover { opacity: .85; }
.biux-devis-overlay .flow-btn[disabled] { opacity: .3; cursor: not-allowed; }
.biux-devis-overlay .flow-btn--ghost { background: transparent; color: var(--ink); padding: 16px 0; text-decoration: underline; text-underline-offset: 4px; letter-spacing: .18em; }
.biux-devis-overlay .flow-btn--ghost:hover { opacity: .7; }
.biux-devis-overlay [data-devis-form="coordonnees"] .flow-field input { height: 40px; border-radius: 10px; }
.biux-devis-overlay [data-devis-form="coordonnees"] .flow-btn { height: 48px; padding-inline: 22px !important; border-radius: 10px !important; font-size: 14px; letter-spacing: 0; text-transform: none; }
.biux-devis-overlay .flow-back { font-family: var(--font-body); color: var(--ink-40); background: none; border: 0; cursor: pointer; text-decoration: none; font-size: 13px; padding: 0; }
.biux-devis-overlay .flow-back:hover { color: var(--ink); }
.biux-devis-overlay .flow-reassure { font-size: 13px; color: var(--ink-40); margin: 16px auto 0; font-weight: 400; text-align: center; }

/* ---- Etape finale : bouton d'envoi + calendrier iClosed ---- */
.biux-devis-overlay .flow-send { display: flex; flex-direction: column; align-items: center; gap: 4px; margin-bottom: 8px; }
.biux-devis-overlay .flow-btn--send { padding: 0 40px; }
.biux-devis-overlay .flow-send.is-sent .flow-btn--send { background: var(--bg-2); color: var(--ink-45); cursor: default; pointer-events: none; }
.biux-devis-overlay .flow-calendar {
  width: 100vw; max-width: 100vw;
  margin-left: 50%; transform: translateX(-50%);
  padding-inline: clamp(20px, 4vw, 48px);
  margin-top: 12px; min-height: 620px;
}
.biux-devis-overlay .flow-calendar[hidden] { display: none; }
.biux-devis-overlay .flow-calendar .iclosed-widget { width: 100%; }

/* ---- Adaptation a la hauteur d'ecran : chaque etape tient sans scroll ---- */
@media (max-height: 760px) {
  .biux-devis-overlay .flow-card { height: 47px; min-height: 47px; padding: 0 12px; }
  .biux-devis-overlay .flow-card.flow-card--project { height: 90px; min-height: 90px; padding: 12px; }
  .biux-devis-overlay .flow-opt { height: 47px; padding: 0 12px; }
  .biux-devis-overlay .flow-field { gap: 5px; }
  .biux-devis-overlay .flow-field input { height: 47px; }
  .biux-devis-overlay .flow-field textarea { height: 47px; min-height: 47px; }
  .biux-devis-overlay .flow-list { gap: 7px; }
}
@media (max-height: 620px) {
  .biux-devis-overlay .flow-question { font-size: 25px; }
  .biux-devis-overlay .flow-sub { font-size: 14px; line-height: 1.5; }
  .biux-devis-overlay .flow-card { height: 47px; min-height: 47px; padding: 0 12px; font-size: 14px; }
  .biux-devis-overlay .flow-card.flow-card--project { height: 90px; min-height: 90px; padding: 12px; }
  .biux-devis-overlay .flow-card__title { font-size: 14px; }
  .biux-devis-overlay .flow-card__desc { font-size: 11px; }
  .biux-devis-overlay .flow-opt { height: 47px; padding: 0 12px; font-size: 14px; }
  .biux-devis-overlay .flow-field input { height: 47px; padding: 9px 13px; }
  .biux-devis-overlay .flow-field textarea { height: 47px; min-height: 47px; }
  .biux-devis-overlay .flow-field label { font-size: 12px; }
}

/* ---- Telephone : les choix en mosaique, deux par ligne ----
   Kevin, 29 octobre 2026, sur son iPhone : « met en petit à côté en mode mosaïque ». Les cartes de projet se
   partagent la largeur de l'ecran (382 px au plus, comme sur ordinateur) et ne gardent que la hauteur de deux lignes,
   icone et titre centres ; avant, une seule colonne de cartes de 186 x 90 px sous 430 px. Le delai et le budget
   gardent leurs deux colonnes de tablette, et leurs libelles passent a la ligne plutot que de deborder.
   Apres l'adaptation a la hauteur d'ecran, qui redonnerait 90 px aux cartes. La candidature (recrutement-flow.css)
   en profite aussi. */
@media (max-width: 560px) {
  .biux-devis-overlay .flow-list.flow-project-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .biux-devis-overlay .flow-card.flow-card--project { width: auto; height: auto; min-height: 58px; padding: 10px; gap: 8px; align-items: center; }
  .biux-devis-overlay .flow-planning-card { white-space: normal; }
}

/* ---- Animation d'entree de chaque etape ---- */
.biux-devis-overlay .flow-step.is-active .flow-wrap { animation: biux-devis-flow-in .45s cubic-bezier(.22,.61,.36,1) both; }
@keyframes biux-devis-flow-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
  .biux-devis-overlay *, .biux-devis-overlay *::before, .biux-devis-overlay *::after { animation: none !important; transition: none !important; }
}
