/* =====================================================
   BIEN DANS MES PATTES · Parcours transactionnels
   =====================================================
   Feuille partagée par les pages de tunnel :
   inscription, adhésion, paiement et confirmation.

   Tout est construit sur css/tokens.css. Aucune valeur
   de couleur, de rayon ou d'ombre n'est écrite en dur.
   ===================================================== */

/* -----------------------------------------------------
   1. Enveloppe de tunnel
   ----------------------------------------------------- */

.flow {
  padding: calc(var(--bdmp-header-h) + 56px) var(--bdmp-section-x) var(--bdmp-section-y);
  background:
    radial-gradient(1100px 460px at 50% -160px, var(--bdmp-cream-alt), transparent 70%),
    var(--bdmp-cream);
  min-height: 70vh;
}

.flow__inner  { max-width: 980px;  margin: 0 auto; }
.flow__inner--narrow { max-width: 620px; }
.flow__inner--wide   { max-width: 1180px; }

.flow__head { text-align: center; margin-bottom: 34px; }

.flow__head h1 {
  font-family: var(--bdmp-font-display);
  font-size: clamp(2rem, 4vw, 2.9rem);
  font-weight: 800;
  letter-spacing: var(--bdmp-tracking-display);
  line-height: 1.08;
  margin: 18px 0 0;
  color: var(--bdmp-ink);
}

.flow__head p {
  margin: 14px auto 0;
  max-width: 620px;
  color: var(--bdmp-ink-soft);
  font-size: 1.02rem;
  line-height: var(--bdmp-leading);
}

/* Fil d'ariane discret vers l'étape précédente */

/* -----------------------------------------------------
   2. Panneau principal
   ----------------------------------------------------- */

.flow-panel {
  background: #fff;
  border: 1px solid var(--bdmp-border);
  border-radius: var(--bdmp-r-card-lg);
  box-shadow: var(--bdmp-shadow-card);
  overflow: hidden;
}

.flow-panel__body { padding: clamp(24px, 4vw, 40px); }

/* Bloc de section à l'intérieur d'un panneau */
.flow-block { margin-bottom: 34px; }
.flow-block:last-child { margin-bottom: 0; }

.flow-block__title {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0 0 18px;
  font-family: var(--bdmp-font-display);
  font-size: 1.18rem;
  font-weight: 700;
  letter-spacing: var(--bdmp-tracking-display);
  color: var(--bdmp-ink);
}

.flow-block__title i {
  width: 30px; height: 30px;
  display: grid; place-items: center;
  flex: 0 0 auto;
  border-radius: var(--bdmp-r-pill);
  background: var(--bdmp-badge-bg);
  border: 1px solid var(--bdmp-badge-border);
  color: var(--bdmp-badge-text);
  font-size: .82rem;
  font-style: normal;
  font-weight: 800;
}

.flow-block__hint {
  margin: -8px 0 16px;
  font-size: .88rem;
  color: var(--bdmp-ink-muted);
  line-height: 1.55;
}

/* Grille de champs */
.flow-grid { display: grid; gap: 0 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.flow-grid > .flow-span { grid-column: 1 / -1; }

/* -----------------------------------------------------
   3. Récapitulatif latéral
   ----------------------------------------------------- */

.flow-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 26px;
  align-items: start;
}

.flow-summary {
  position: sticky;
  top: calc(var(--bdmp-header-h) + 20px);
  background: #fff;
  border: 1px solid var(--bdmp-border);
  border-radius: var(--bdmp-r-card);
  box-shadow: var(--bdmp-shadow-card-soft);
  padding: 26px;
}

.flow-summary h2 {
  margin: 0 0 18px;
  font-family: var(--bdmp-font-display);
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: var(--bdmp-tracking-display);
  color: var(--bdmp-ink);
}

/* Lignes clé / valeur, réutilisées partout dans le tunnel */
.flow-lines { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }

.flow-lines li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--bdmp-border-row);
  font-size: .93rem;
}
.flow-lines li:last-child { border-bottom: 0; }

.flow-lines li > span:first-child {
  color: var(--bdmp-ink-muted);
  flex: 0 0 auto;
}
.flow-lines li > span:last-child {
  color: var(--bdmp-ink);
  font-weight: 600;
  text-align: right;
}

.flow-lines li.is-total {
  margin-top: 6px;
  padding-top: 16px;
  border-top: 1.5px solid var(--bdmp-border);
  border-bottom: 0;
  font-size: 1.05rem;
}
.flow-lines li.is-total > span:first-child {
  color: var(--bdmp-ink);
  font-weight: 700;
}
.flow-lines li.is-total > span:last-child {
  font-family: var(--bdmp-font-display);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--bdmp-orange-dark);
  letter-spacing: var(--bdmp-tracking-display);
}

/* -----------------------------------------------------
   4. Cartes de sélection (parcours, formule, chien)
   ----------------------------------------------------- */

.flow-choice__item {
  position: relative;
  display: block;
  padding: 18px 18px 18px 46px;
  background: #fff;
  border: 1.5px solid var(--bdmp-border-input);
  border-radius: var(--bdmp-r-input);
  cursor: pointer;
  transition: border-color var(--bdmp-t-fast) ease,
              background var(--bdmp-t-fast) ease,
              box-shadow var(--bdmp-t-fast) ease,
              transform var(--bdmp-t-fast) ease;
}
.flow-choice__item:hover {
  border-color: var(--bdmp-orange);
  background: var(--bdmp-cream-alt);
  transform: translateY(var(--bdmp-lift-btn));
}

.flow-choice__item input {
  position: absolute;
  top: 20px; left: 18px;
  accent-color: var(--bdmp-orange);
}

.flow-choice__item input:checked ~ .flow-choice__name { color: var(--bdmp-orange-dark); }

.flow-choice__item:has(input:checked) {
  border-color: var(--bdmp-orange);
  background: var(--bdmp-cream-alt);
  box-shadow: var(--bdmp-shadow-btn-sm);
}

.flow-choice__name {
  display: block;
  font-weight: 700;
  font-size: .98rem;
  color: var(--bdmp-ink);
}

.flow-choice__meta {
  display: block;
  margin-top: 5px;
  font-size: .84rem;
  color: var(--bdmp-ink-muted);
  line-height: 1.5;
}

.flow-choice__price {
  display: inline-block;
  margin-top: 9px;
  font-family: var(--bdmp-font-display);
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--bdmp-orange-dark);
  letter-spacing: var(--bdmp-tracking-display);
}

.flow-choice__item.is-disabled {
  opacity: .55;
  cursor: not-allowed;
  background: var(--bdmp-cream);
}
.flow-choice__item.is-disabled:hover {
  border-color: var(--bdmp-border-input);
  background: var(--bdmp-cream);
  transform: none;
}

/* -----------------------------------------------------
   5. Cartes participant (inscription multiple)
   ----------------------------------------------------- */

.flow-person__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 18px;
}

.flow-person__head h3 {
  margin: 0;
  font-family: var(--bdmp-font-display);
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--bdmp-ink);
}

/* -----------------------------------------------------
   6. Écrans de résultat (confirmation, annulation)
   ----------------------------------------------------- */

.flow-result {
  max-width: 700px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid var(--bdmp-border);
  border-radius: var(--bdmp-r-card-lg);
  box-shadow: var(--bdmp-shadow-card);
  padding: clamp(30px, 5vw, 50px);
  text-align: center;
}

.flow-result__icon {
  width: 84px; height: 84px;
  margin: 0 auto 24px;
  display: grid; place-items: center;
  border-radius: var(--bdmp-r-pill);
}
.flow-result__icon svg { width: 42px; height: 42px; }

.flow-result__icon--success {
  background: var(--bdmp-success-bg);
  color: var(--bdmp-success-text);
}
.flow-result__icon--pending {
  background: var(--bdmp-pending-bg);
  color: var(--bdmp-pending-text);
}
.flow-result__icon--error {
  background: var(--bdmp-error-bg);
  color: var(--bdmp-error-text);
}

.flow-result h1 {
  font-family: var(--bdmp-font-display);
  font-size: clamp(1.8rem, 3.6vw, 2.6rem);
  font-weight: 800;
  letter-spacing: var(--bdmp-tracking-display);
  line-height: 1.1;
  margin: 0 0 14px;
  color: var(--bdmp-ink);
}

.flow-result__lead {
  margin: 0 auto 30px;
  max-width: 520px;
  color: var(--bdmp-ink-soft);
  font-size: 1.02rem;
  line-height: var(--bdmp-leading);
}

.flow-result__box {
  text-align: left;
  background: var(--bdmp-cream);
  border: 1px solid var(--bdmp-border);
  border-radius: var(--bdmp-r-card-sm);
  padding: 22px 24px;
  margin-bottom: 22px;
}

.flow-result__box h3 {
  margin: 0 0 6px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: var(--bdmp-tracking-label);
  text-transform: uppercase;
  color: var(--bdmp-ink-muted);
}

.flow-result__box ul.flow-check {
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.flow-result__box ul.flow-check li {
  position: relative;
  padding-left: 26px;
  font-size: .93rem;
  color: var(--bdmp-ink-soft);
  line-height: 1.55;
}
.flow-result__box ul.flow-check li::before {
  content: "";
  position: absolute;
  left: 0; top: .45em;
  width: 14px; height: 8px;
  border-left: 2px solid var(--bdmp-orange);
  border-bottom: 2px solid var(--bdmp-orange);
  transform: rotate(-45deg);
}

.flow-result__note {
  text-align: left;
  background: var(--bdmp-pending-bg);
  border: 1px solid var(--bdmp-pending-border);
  border-left: 3px solid var(--bdmp-pending-text);
  border-radius: var(--bdmp-r-input-sm);
  padding: 16px 18px;
  margin-bottom: 24px;
  font-size: .92rem;
  color: var(--bdmp-pending-text);
  line-height: 1.6;
}
.flow-result__note--error {
  background: var(--bdmp-error-bg);
  border-color: var(--bdmp-error-border);
  border-left-color: var(--bdmp-error-text);
  color: var(--bdmp-error-text);
}
.flow-result__note a { color: inherit; font-weight: 700; }

.flow-result__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}

/* Dossard mis en avant */
.flow-dossard {
  display: grid;
  gap: 6px;
  justify-items: center;
  padding: 28px 24px;
  margin-bottom: 26px;
  border-radius: var(--bdmp-r-card-sm);
  background: linear-gradient(140deg, var(--bdmp-orange-light), var(--bdmp-orange-dark));
  color: #fff;
  box-shadow: var(--bdmp-shadow-btn-lg);
}

.flow-dossard__label {
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: var(--bdmp-tracking-label);
  text-transform: uppercase;
  opacity: .9;
}

.flow-dossard__value {
  font-family: var(--bdmp-font-display);
  font-size: clamp(2.6rem, 6vw, 3.8rem);
  font-weight: 800;
  letter-spacing: var(--bdmp-tracking-display);
  line-height: 1;
}

/* Liste de participants confirmés */
.flow-people { display: grid; gap: 10px; margin-top: 12px; }

.flow-people__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid var(--bdmp-border);
  border-radius: var(--bdmp-r-input-sm);
  text-align: left;
}

.flow-people__name  { font-weight: 700; font-size: .95rem; color: var(--bdmp-ink); }
.flow-people__meta  { margin-top: 3px; font-size: .84rem; color: var(--bdmp-ink-muted); }

/* -----------------------------------------------------
   7. Redirection vers le prestataire de paiement
   ----------------------------------------------------- */

.flow-spinner {
  width: 46px; height: 46px;
  border: 3px solid var(--bdmp-border);
  border-top-color: var(--bdmp-orange);
  border-radius: var(--bdmp-r-pill);
  animation: flow-spin 900ms linear infinite;
}

@keyframes flow-spin { to { transform: rotate(360deg); } }

/* `.flow-secure` est défini dans css/styles.css : la modale
   d'inscription l'utilise sur toutes les pages publiques, pas
   seulement dans le tunnel. Ne pas le redéfinir ici. */

/* -----------------------------------------------------
   8. Impression d'un récapitulatif
   ----------------------------------------------------- */

/* -----------------------------------------------------
   9. Cartes d'avantages (adhésion)
   ----------------------------------------------------- */

.avantage-icon {
  width: 46px; height: 46px;
  display: grid; place-items: center;
  margin-bottom: 15px;
  border-radius: var(--bdmp-r-input);
  background: var(--bdmp-badge-bg);
  border: 1px solid var(--bdmp-badge-border);
  color: var(--bdmp-badge-text);
}
.avantage-icon svg { width: 23px; height: 23px; }

.avantage-title {
  margin: 0 0 7px;
  font-family: var(--bdmp-font-display);
  font-size: 1.02rem;
  font-weight: 700;
  letter-spacing: var(--bdmp-tracking-display);
  color: var(--bdmp-ink);
}

.avantage-text {
  margin: 0;
  font-size: .9rem;
  color: var(--bdmp-ink-soft);
  line-height: 1.6;
}

/* -----------------------------------------------------
   10. Résumés légaux en modale
   ----------------------------------------------------- */

.legal-summary { max-height: 62vh; overflow-y: auto; }

.legal-summary h4 {
  margin: 26px 0 10px;
  font-family: var(--bdmp-font-display);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: var(--bdmp-tracking-display);
  color: var(--bdmp-orange-dark);
}
.legal-summary h4:first-child { margin-top: 0; }

.legal-summary p,
.legal-summary li {
  font-size: .93rem;
  color: var(--bdmp-ink-soft);
  line-height: var(--bdmp-leading);
}
.legal-summary p  { margin: 0 0 12px; }
.legal-summary ul { margin: 0 0 12px; padding-left: 20px; }
.legal-summary li { margin-bottom: 5px; }

.legal-summary__more {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--bdmp-border-sep);
  text-align: center;
  font-size: .86rem;
  color: var(--bdmp-ink-muted);
}

/* Le .btn-link du design system hérite de la couleur du contexte :
   dans le pied de page sombre c'est ce qu'on veut, mais au fil d'une
   phrase sur fond crème il doit se lire comme un lien. */
.checkbox .btn-link,
.flow-panel .btn-link {
  color: var(--bdmp-orange-dark);
  font-weight: 700;
  text-decoration: underline;
}
.checkbox .btn-link:hover,
.flow-panel .btn-link:hover { color: var(--bdmp-orange); }

/* -----------------------------------------------------
   11. Champ carte Stripe (parcours legacy)
   ----------------------------------------------------- */

.card-element {
  padding: 14px;
  margin-bottom: 12px;
  background: var(--bdmp-cream);
  border: 1.5px solid var(--bdmp-border-input);
  border-radius: var(--bdmp-r-input);
  transition: border-color var(--bdmp-t-fast) ease, background var(--bdmp-t-fast) ease;
}
.card-element.StripeElement--focus {
  background: #fff;
  border-color: var(--bdmp-orange);
}
.card-element.StripeElement--invalid { border-color: var(--bdmp-error-text); }

.card-errors {
  min-height: 20px;
  margin-bottom: 12px;
  font-size: .86rem;
  color: var(--bdmp-error-text);
}

/* Le script Stripe bascule le libellé du bouton et son
   indicateur d'attente avec cette classe. */
.hidden { display: none !important; }

/* =====================================================
   Responsive
   =====================================================
   Regroupées en fin de feuille : une surcharge posée
   avant la règle qu'elle vise n'a aucun effet.
   ===================================================== */

@media (max-width: 720px) {
  .flow-grid,
  .flow-grid--3 { grid-template-columns: 1fr; }
}

@media (max-width: 980px) {
  .flow-split { grid-template-columns: 1fr; }
  .flow-summary { position: static !important; }
}

@media (prefers-reduced-motion: reduce) {
  .flow-spinner { animation-duration: 3s; }
}

@media print {
  .site-header,
  .mobile-nav,
  .site-footer,
  .cookie-banner,
  .toast-host,
  .flow-result__actions { display: none !important; }

  .flow { padding: 0; background: #fff; }
  .flow-result {
    box-shadow: none;
    border: 0;
    padding: 0;
  }
}
