/* Parcours de souscription en ligne – direction « Banque de confiance » (concept-confiance.md § d.7).
   Colonne de 640 px sans « carte dans la carte », récapitulatif discret à droite, un seul bouton plein par écran.
   Uniquement des tokens de site.css. */
.sub-page { padding: var(--sp-10) 0 var(--sp-20); }
.sub-page [hidden] { display: none !important; }
.sub-layout { display: grid; grid-template-columns: minmax(0, 640px) minmax(0, 320px); column-gap: 96px; justify-content: center; align-items: start; }
.sub-main { min-width: 0; }
.sub-aside { position: sticky; top: calc(var(--tunnel-h) + var(--sp-6)); min-width: 0; }
.sub-resume { max-width: 1056px; margin: 0 auto var(--sp-6); }
.resume-notice { justify-content: space-between; align-items: center; flex-wrap: wrap; font-size: 1rem; }
.sub-alert { margin-bottom: var(--sp-4); }
.sub-loading { display: flex; align-items: center; gap: var(--sp-3); color: var(--ink-3); padding: var(--sp-8) 0; }

/* Titres et textes */
.sub-title { font-size: 2rem; line-height: 1.2; max-width: none; margin: 0 0 var(--sp-6); }
.sub-title:focus { outline: none; box-shadow: none; }
.sub-intro { color: var(--ink-2); margin: calc(-1 * var(--sp-2)) 0 var(--sp-6); }
.sub-subtitle { font-size: 1.25rem; margin: var(--sp-10) 0 var(--sp-4); }
.h4 { font-size: var(--fs-h4); font-weight: 600; margin: 0 0 var(--sp-2); }
.label-opt { font-family: var(--font-body); font-weight: 400; color: var(--ink-3); }
.text-danger { color: var(--danger); }
.text-success { color: var(--success); font-weight: 600; }
.text-warning { color: var(--brand-deep); font-weight: 600; }
.sub-legal { margin-top: var(--sp-3); }
.sub-legal-left { margin: var(--sp-6) 0 0; font-size: var(--fs-small); line-height: var(--lh-small); color: var(--muted); }

/* Bouton-lien (actions tertiaires dans le texte) */
.link-btn { appearance: none; background: none; border: 0; padding: 0; margin: 0; font-family: var(--font-body); font-weight: 600; font-size: inherit; line-height: inherit; color: var(--brand); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-align: left; }
.link-btn:hover { color: var(--brand-hover); }
label.link-btn { display: inline; }

/* Stepper : précédentes étapes cliquables, focus visible même avec « all: unset » */
.stepper .stepper-link { color: inherit; border-radius: var(--radius-xs); }
.stepper .stepper-link:hover { color: var(--brand-hover); text-decoration: underline; }
.stepper li button.stepper-link:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; box-shadow: 0 0 0 2px var(--focus-reverse); }
.stepper li.is-done { color: var(--ink-3); }

/* Étape 1 : projet */
.sub-main .sub-group { margin: var(--sp-8) 0 0; }
fieldset.sub-group { border: 0; padding: 0; min-width: 0; }
.asset-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--sp-3); }
.asset-choice span { min-height: 80px; padding: var(--sp-3); font: 600 .9375rem/1.3 var(--font-body); justify-content: center; }
.choice input:checked + span { padding: calc(var(--sp-3) - 1px); }
.sub-aside-link { margin: var(--sp-4) 0 0; font-size: var(--fs-small); color: var(--ink-3); }
.sub-aside-link a { color: var(--ink-3); font-weight: 600; }
.sub-aside-link a:hover { color: var(--ink); }
#ai-quote-slot:not(:empty) { margin-top: var(--sp-6); }
.amount-input { max-width: 320px; }
.amount-input .input { font-size: 1.125rem; font-weight: 600; }
.amount-shortcuts { margin-top: var(--sp-1); }
.ins-cost.is-hint { font-weight: 400; color: var(--ink-3); }
.asset-choice span { hyphens: manual; text-wrap: balance; text-align: center; }
.months-grid { display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); gap: var(--sp-2); }
.months-grid .chip span { width: 100%; padding: 0 6px; }
.months-grid .chip input:checked + span { padding: 0 5px; }
.product-line { padding: var(--sp-4) var(--sp-5); background: var(--bg-alt); border-radius: var(--radius); }
.product-text { margin: 0 0 var(--sp-1); }
.product-kicker { color: var(--ink-3); }
.product-line .help { margin: 0; }
.product-options { margin-top: var(--sp-3); }
.sub-first { margin: var(--sp-4) 0 0; font-size: var(--fs-small); line-height: var(--lh-small); color: var(--ink-2); }
.sub-check { font-size: 1rem; line-height: 1.5; color: var(--ink); margin-top: var(--sp-6); }
.sub-check input { width: 24px; height: 24px; margin: 0; }
.stack-sm .sub-check { margin-top: 0; }
.ins-cost { font-weight: 600; white-space: nowrap; }

/* Actions de bas d'étape : un seul bouton plein */
.sub-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--sp-3) var(--sp-4); margin-top: var(--sp-10); }
.sub-actions .sub-back { margin-right: auto; padding-left: 0; }
.sub-back::before { content: "←"; font-family: var(--font-body); }
body[data-sub-step="1"] .sub-actions .btn-primary { width: 100%; }

/* Récapitulatif discret */
.recap { border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--sp-6); background: #fff; }
.recap-head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); margin-bottom: var(--sp-2); }
.recap-label { margin: 0; font: 600 var(--fs-label)/1.4 var(--font-heading); color: var(--ink-3); }
.recap-rent { margin: 0; display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--sp-2); }
.recap-amount { font: 700 2rem/1.15 var(--font-heading); color: var(--ink); letter-spacing: -.01em; }
.recap-unit { font-weight: 600; color: var(--ink-3); }
.recap-note { margin: var(--sp-1) 0 0; font-size: var(--fs-small); line-height: var(--lh-small); color: var(--ink-3); }
.recap-legal { margin: var(--sp-1) 0 0; font-size: var(--fs-small); color: var(--muted); }
.recap-list { margin: var(--sp-4) 0 0; display: grid; }
.recap-list div { display: flex; justify-content: space-between; gap: var(--sp-4); padding: var(--sp-2) 0; border-top: 1px solid var(--line); font-size: var(--fs-small); }
.recap-list dt { color: var(--ink-3); }
.recap-list dd { margin: 0; font-weight: 600; text-align: right; overflow-wrap: anywhere; }
.recap-save { margin: var(--sp-4) 0 0; font-size: var(--fs-small); line-height: var(--lh-small); color: var(--success); font-weight: 600; }
.recap-reassure { margin-top: var(--sp-5); padding-top: var(--sp-5); border-top: 1px solid var(--line); gap: var(--sp-2); }
.recap-reassure li { font-size: var(--fs-small); line-height: var(--lh-small); font-weight: 400; color: var(--ink-2); padding-left: 30px; }
.recap-reassure li::before { width: 20px; height: 20px; background-size: 20px; }
.recap-help { margin: var(--sp-5) 0 0; font-size: var(--fs-small); color: var(--ink-3); }
.recap .badge { font-size: .875rem; }

/* Barre collante (mobile, étape 1) : masquée quand le bouton du formulaire est visible */
.sticky-bar > div { min-width: 0; }
@media (max-width: 767px) { body.has-sticky-bar.sub-sticky-off .sticky-bar { display: none; } }

/* Étape 2 : entreprise */
.siren-row { display: flex; gap: var(--sp-3); align-items: flex-end; flex-wrap: wrap; }
.siren-field { flex: 0 1 280px; margin: 0; }
.siren-field .input { font-size: 1.125rem; letter-spacing: .06em; font-weight: 600; }
.siren-help { margin: var(--sp-2) 0 0; }
.siren-status { min-height: 1.5em; margin: var(--sp-2) 0 0; display: flex; gap: var(--sp-2); align-items: center; font-size: var(--fs-small); }
.demo-links { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-6); margin: var(--sp-3) 0 0; font-size: var(--fs-small); color: var(--ink-3); }
.company-card { display: flex; gap: var(--sp-4); align-items: flex-start; justify-content: space-between; margin-top: var(--sp-4); padding: var(--sp-4) var(--sp-5); border-radius: var(--radius); background: var(--bg-brand); }
.company-main { min-width: 0; }
.company-name { margin: 0 0 var(--sp-1); font-weight: 600; font-size: 1.0625rem; }
.company-meta { margin: 0; font-size: var(--fs-small); line-height: var(--lh-small); color: var(--ink-3); }
.company-edit { flex: none; font-size: var(--fs-small); }

/* Étape 3 : pièces */
.docs-expected { border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--sp-5) var(--sp-6); }
.docs-expected-head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--sp-3); flex-wrap: wrap; margin-bottom: var(--sp-2); }
.docs-expected-head .h4 { margin: 0; }
.docs-progress { margin: 0; font-size: var(--fs-small); color: var(--ink-3); font-weight: 600; }
.doc-checklist { list-style: none; margin: 0; padding: 0; }
.doc-checklist li { display: flex; gap: var(--sp-3); align-items: flex-start; padding: var(--sp-3) 0; border-top: 1px solid var(--line); max-width: none; }
.doc-checklist li:first-child { border-top: 0; }
.doc-check-mark { flex: none; width: 20px; height: 20px; margin-top: 2px; border-radius: 50%; border: 2px solid var(--line-input); background: #fff; }
.doc-checklist li.is-ok .doc-check-mark { border-color: var(--success); background: var(--success) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 12.5l3.2 3.2L17 9'/%3E%3C/svg%3E") center / 18px no-repeat; }
.doc-check-text { flex: 1; min-width: 0; }
.doc-check-text strong { display: block; font-weight: 600; }
.doc-check-text small { display: block; font-size: var(--fs-small); color: var(--ink-3); }
.doc-check-state { flex: none; font-size: var(--fs-small); color: var(--ink-3); white-space: nowrap; }
.doc-checklist li.is-ok .doc-check-state { color: var(--success); font-weight: 600; }
.docs-drop { display: flex; flex-direction: column; align-items: center; gap: var(--sp-2); margin-top: var(--sp-6); padding: var(--sp-8) var(--sp-6); }
.dz-title { font: 600 1rem/1.3 var(--font-heading); color: var(--ink); }
.dz-btn { pointer-events: none; }
.dz-hint { font-size: var(--fs-small); color: var(--ink-3); }
.upload-alt { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-6); margin: var(--sp-3) 0 0; font-size: var(--fs-small); color: var(--ink-3); }
.photo-btn { cursor: pointer; }
.doc-list { display: grid; gap: var(--sp-4); margin-top: var(--sp-6); }
.doc-list:empty { display: none; }
.doc-list > * { min-width: 0; }
.doc-card { animation: pop .2s ease-out; }
.doc-card .doc-head { padding-bottom: var(--sp-3); }
.doc-name-row { margin-bottom: var(--sp-2); color: var(--brand); }
.doc-name-row svg { width: 24px; height: 24px; }
.doc-name-row .doc-name { color: var(--ink); }
.doc-size { font-size: var(--fs-small); color: var(--ink-3); flex: none; }
.doc-status { margin: 0; }
.doc-unknown { color: var(--brand-deep); font-weight: 600; }
.doc-file { margin: 0; font-size: var(--fs-small); color: var(--muted); overflow-wrap: anywhere; }
.doc-summary { margin: var(--sp-3) 0 0; font-size: var(--fs-small); line-height: var(--lh-small); color: var(--ink-2); }
.doc-card .doc-fields dd { overflow-wrap: anywhere; }
.doc-more { border-bottom: 1px solid var(--line); }
.doc-more summary { cursor: pointer; padding: var(--sp-3) 0; font-size: var(--fs-small); font-weight: 600; color: var(--brand); }
.doc-more summary:hover { color: var(--brand-hover); text-decoration: underline; }
.doc-card .doc-fields-more { padding-top: 0; border-bottom: 0; }
.doc-card .doc-more + .doc-checks, .doc-card .doc-fields + .doc-checks { padding-top: var(--sp-4); }
.doc-card .doc-checks { list-style: none; margin: 0; padding: var(--sp-4) 0 0; display: grid; gap: var(--sp-2); font-size: var(--fs-small); line-height: var(--lh-small); }
.doc-checks li { display: flex; gap: var(--sp-2); align-items: flex-start; max-width: none; }
.doc-check-sign { flex: none; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; font: 700 .8125rem/1 var(--font-heading); }
.doc-checks li.ok .doc-check-sign { background: var(--success-bg); color: var(--success); }
.doc-checks li.ko .doc-check-sign { background: var(--brand-pale); color: var(--brand-deep); box-shadow: inset 0 0 0 1.5px var(--brand-deep); }
.doc-checks li.ko { color: var(--brand-deep); font-weight: 600; }
.doc-checks li.ko .doc-check-detail { font-weight: 400; }
.doc-check-detail { color: var(--ink-3); }
.doc-suggest { margin-top: var(--sp-4); align-items: center; justify-content: space-between; flex-wrap: wrap; }
.doc-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3); margin-top: var(--sp-4); padding-top: var(--sp-4); border-top: 1px solid var(--line); font-size: var(--fs-small); }
.doc-retype { display: flex; align-items: center; gap: var(--sp-2); color: var(--ink-3); flex-wrap: wrap; }
.doc-buttons { display: inline-flex; flex-wrap: wrap; gap: var(--sp-5); }
.doc-buttons .link-btn, .upload-alt .link-btn, .upload-alt a, .demo-links .link-btn { min-height: 32px; display: inline-flex; align-items: center; }
.select-sm { min-height: var(--btn-h-sm); padding: 0 40px 0 var(--sp-3); font-size: var(--fs-small); width: auto; max-width: 100%; min-width: 0; background-position: right 10px center; }
.doc-card.is-pending { background: var(--bg-alt); border-color: transparent; }
.doc-card.is-pending .doc-head, .doc-card.is-error .doc-head { border-bottom: 0; padding-bottom: 0; }
.doc-card.is-error { background: var(--danger-bg); border-color: transparent; }
.doc-stage { margin: 0 0 var(--sp-2); font-size: var(--fs-small); color: var(--ink-3); }
.doc-error { margin: 0; font-size: var(--fs-small); font-weight: 600; }
.doc-card .doc-foot { margin: var(--sp-2) 0 0; }
.progress { height: 6px; border-radius: 3px; background: var(--line); overflow: hidden; }
.progress span { display: block; height: 100%; background: var(--brand); border-radius: 3px; transition: width .3s; }
.progress span.is-indeterminate { width: 40% !important; animation: sub-indeterminate 1.2s ease-in-out infinite; }
@keyframes sub-indeterminate { from { transform: translateX(-100%); } to { transform: translateX(250%); } }
#ai-consistency-slot:not(:empty) { margin-top: var(--sp-6); }
#docs-notice:not(:empty) { margin-top: var(--sp-6); }
.resume-link { display: flex; gap: var(--sp-2); }
.resume-link .input { font-size: var(--fs-small); }

/* Étape 3 : informations à la place d'une pièce manquante, Kbis récupéré auprès du registre, expert-comptable */
.docs-missing { margin-top: var(--sp-8); }
.docs-missing .h4 { margin: 0 0 var(--sp-1); }
.docs-missing .h4:focus, .missing-title:focus { outline: none; box-shadow: none; }
.docs-missing-intro { margin: 0 0 var(--sp-4); color: var(--ink-2); }
.missing-list { border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 0 var(--sp-6); }
.missing-item { padding: var(--sp-5) 0; border-top: 1px solid var(--line); }
.missing-item:first-child { border-top: 0; }
.missing-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--sp-2) var(--sp-4); }
.missing-text { flex: 1 1 260px; min-width: 0; }
.missing-title { margin: 0; font: 600 1rem/1.4 var(--font-body); color: var(--ink); }
.missing-hint, .missing-alt-text { margin: var(--sp-1) 0 0; font-size: var(--fs-small); line-height: var(--lh-small); color: var(--ink-3); }
.missing-done { margin: var(--sp-1) 0 0; font-size: var(--fs-small); line-height: var(--lh-small); color: var(--brand-deep); font-weight: 600; }
.missing-asked { margin-top: var(--sp-3); }
.docs-missing .btn-sm { min-height: 44px; }
.missing-toggle, .missing-actions .link-btn { min-height: 44px; display: inline-flex; align-items: center; flex: none; }
.missing-action { flex: none; }
.missing-summary { margin: var(--sp-3) 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--sp-2) var(--sp-5); font-size: var(--fs-small); line-height: var(--lh-small); }
.missing-summary dt { color: var(--muted); }
.missing-summary dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.missing-checks { margin: var(--sp-3) 0 0; padding: 0; list-style: none; display: grid; gap: var(--sp-2); font-size: var(--fs-small); line-height: var(--lh-small); }
.missing-item .doc-suggest { margin-top: var(--sp-3); }
.missing-item.is-editing .missing-summary, .missing-item.is-editing .missing-checks, .missing-item.is-editing .doc-suggest { display: none; }
.missing-form { margin-top: var(--sp-4); padding: var(--sp-5); border-radius: var(--radius); background: var(--bg-alt); }
.missing-form .sub-check { margin-top: 0; font-size: var(--fs-small); }
.missing-form .field + .field { margin-top: var(--sp-4); }
.missing-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-5); margin-top: var(--sp-4); }
.missing-alt { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--sp-3); margin-top: var(--sp-4); padding-top: var(--sp-3); border-top: 1px dashed var(--line); }
.missing-alt .missing-alt-text { margin: 0; }
.missing-alt .missing-form { flex: 1 1 100%; }
.missing-error { margin-top: var(--sp-2); }
.doc-checklist li.is-declared .doc-check-mark { border-color: var(--brand); background: var(--brand-pale); }
.doc-checklist li.is-declared .doc-check-state { color: var(--brand-deep); font-weight: 600; }
/* Enveloppe pré-accordée (étape 1) */
.env-slot:not(:empty) { margin: calc(-1 * var(--sp-2)) 0 var(--sp-6); }
.env-note { font-size: .9375rem; }

/* Étape 4 : offre */
.verdict { padding: var(--sp-5) var(--sp-6); border-radius: var(--radius); border-left: 3px solid var(--info-strong); background: var(--info-bg); }
.verdict.is-ok { background: var(--success-bg); border-left-color: var(--success-strong); }
.verdict-title { margin: 0 0 var(--sp-1); font: 700 1.125rem/1.3 var(--font-heading); color: var(--ink); }
.verdict-text { margin: 0; color: var(--ink-2); }
.verdict-reasons { margin: var(--sp-3) 0 0; padding-left: var(--sp-5); font-size: var(--fs-small); color: var(--ink-2); }
#ai-decision-slot:not(:empty) { margin-top: var(--sp-4); }
.offer { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--sp-6); margin-top: var(--sp-8); align-items: start; }
.offer-main { background: var(--bg-brand); border-radius: var(--radius); padding: var(--sp-6); }
.offer-label { margin: 0; font-size: var(--fs-small); color: var(--ink-3); font-weight: 600; }
.offer-figure { margin: var(--sp-1) 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--sp-2); }
.offer-figure .tabular { font: 700 2.25rem/1.1 var(--font-heading); color: var(--ink); letter-spacing: -.01em; }
.offer-unit { font-weight: 600; color: var(--ink-3); }
.offer-meta { margin: 0; font-size: var(--fs-small); line-height: var(--lh-small); color: var(--ink-3); }
.offer-list, .contract-list { margin: 0; display: grid; }
.offer-list div, .contract-list div { display: flex; justify-content: space-between; gap: var(--sp-4); padding: var(--sp-2) 0; border-bottom: 1px solid var(--line); font-size: .9375rem; }
.offer-list div:first-child { padding-top: 0; }
.offer-list div:last-child, .contract-list div:last-child { border-bottom: 0; }
.offer-list dt, .contract-list dt { color: var(--ink-3); }
.offer-list dd, .contract-list dd { margin: 0; font-weight: 600; text-align: right; overflow-wrap: anywhere; }
.offer-note { grid-column: 1 / -1; margin: 0; font-size: var(--fs-small); line-height: var(--lh-small); color: var(--muted); }
.offer-help { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3) var(--sp-5); margin-top: var(--sp-6); padding: var(--sp-4) var(--sp-5); border-radius: var(--radius); background: var(--bg-alt); }
.offer-help p { margin: 0; font-size: var(--fs-small); color: var(--ink-2); }
.end-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.end-grid .choice span { min-height: 64px; }

/* Étape 5 : signature */
.contract { border-radius: var(--radius-lg); padding: var(--sp-5) var(--sp-6); background: var(--bg-alt); }
.contract-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--sp-2); align-items: center; margin-bottom: var(--sp-2); }
.contract-head .h4 { margin: 0; }
.sub-commit { margin: var(--sp-6) 0 0; padding: var(--sp-1) 0 var(--sp-1) var(--sp-4); border-left: 3px solid var(--brand); max-width: none; }
.sub-commit strong { font-weight: 600; }
.otp-box { margin-top: var(--sp-6); padding: var(--sp-5) var(--sp-6); border-radius: var(--radius-lg); background: var(--bg-brand); display: grid; gap: var(--sp-4); }
.otp-text { margin: 0; font-size: var(--fs-small); }
.otp-demo { align-items: center; justify-content: space-between; flex-wrap: wrap; margin: var(--sp-2) 0; }
.otp-code { letter-spacing: .12em; }
.otp-field { max-width: 280px; margin: 0; }
.sub-read { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-6); margin: 0; font-size: var(--fs-small); }
.contract-terms { margin: var(--sp-3) 0 0; padding-left: var(--sp-5); display: grid; gap: var(--sp-2); font-size: var(--fs-small); line-height: var(--lh-small); color: var(--ink-2); }
.otp-input { font-size: 1.5rem; letter-spacing: .4em; font-weight: 700; text-align: center; padding-left: calc(var(--input-px) + .2em); }

/* Écrans de fin */
.done { text-align: center; }
.done .sub-title { margin-bottom: var(--sp-3); }
.done-mark { width: 56px; height: 56px; margin: 0 auto var(--sp-5); border-radius: 50%; display: grid; place-items: center; font: 700 1.5rem/1 var(--font-heading); color: #fff; background: var(--brand); }
.done-mark.is-study { background: var(--brand); }
.done .lead, .done > p { margin-left: auto; margin-right: auto; }
.next-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); text-align: left; margin: var(--sp-8) auto; gap: var(--sp-6) var(--sp-8); }
.next-steps .h4 { margin-bottom: var(--sp-1); }
.done-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--sp-4) var(--sp-8); margin-top: var(--sp-8); }
.done .notice { text-align: left; max-width: 620px; margin: var(--sp-4) auto 0; }

/* Tablette et mobile */
@media (max-width: 1100px) { .sub-layout { column-gap: var(--sp-10); grid-template-columns: minmax(0, 640px) minmax(0, 300px); } }
@media (max-width: 960px) {
  .sub-layout { grid-template-columns: minmax(0, 1fr); row-gap: var(--sp-10); max-width: 640px; margin: 0 auto; }
  .sub-aside { position: static; }
  body[data-sub-step="5"] .sub-aside, body[data-sub-step="done"] .sub-aside { display: none; }
}
@media (max-width: 767px) {
  .sub-page { padding: var(--sp-6) 0 var(--sp-12); }
  .sub-title { font-size: 1.75rem; }
  body[data-sub-step="1"] .sub-aside { display: none; }
  .asset-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2); }
  .asset-choice span { min-height: 64px; }
  .amount-input { max-width: none; }
  .amount-shortcuts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-2); }
  .amount-shortcuts .chip-btn { padding: 0 2px; font-size: .875rem; }
  .docs-expected { padding: var(--sp-4) var(--sp-5); }
  .doc-check-state { display: none; }
  .doc-retype { width: 100%; }
  .doc-retype .select-sm { width: 100%; }
  .doc-checklist li.is-ok .doc-check-text strong::after { content: " · reçue"; color: var(--success); font-weight: 600; }
  .sub-actions { flex-direction: column-reverse; align-items: stretch; }
  .sub-actions .btn { width: 100%; }
  .sub-actions .sub-back { margin-right: 0; padding-left: var(--btn-px); }
  .siren-row { flex-direction: column; align-items: stretch; }
  .siren-field { flex: 1 1 auto; }
  .offer { grid-template-columns: 1fr; }
  .offer-figure .tabular { font-size: 2rem; }
  .next-steps { grid-template-columns: 1fr; }
  .resume-link { flex-direction: column; }
  .otp-box, .contract { padding: var(--sp-4) var(--sp-5); }
  .done-actions { flex-direction: column; align-items: stretch; gap: var(--sp-4); }
  .done-actions .btn { width: 100%; }
  .done-actions .link-arrow { align-self: center; }
  /* La réserve de la barre collante est déjà portée par le pied : pas de bande blanche sous le pied */
  body.has-sticky-bar { padding-bottom: 0; }
  .doc-actions { align-items: flex-start; }
  .missing-list { padding: 0 var(--sp-4); }
  .missing-form { padding: var(--sp-4); }
  .missing-action, .missing-actions .btn { width: 100%; }
}
