:root{
  --vo-blue:#315cff;
  --vo-blue-dark:#2446c8;
  --vo-ink:#17202a;
  --vo-muted:#66727e;
  --vo-line:#e4e8ec;
  --vo-bg:#f7f8fa;
}
html{scroll-behavior:smooth}
body{color:var(--vo-ink);background:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:var(--vo-blue)}
.py-lg-6{padding-top:5.5rem!important;padding-bottom:5.5rem!important}
.brand{display:flex;align-items:baseline;gap:.55rem;color:var(--vo-ink)}
.brand strong{font-size:.9rem;letter-spacing:.16em}.brand small{color:var(--vo-muted);font-size:.72rem}
.btn-primary{--bs-btn-bg:var(--vo-blue);--bs-btn-border-color:var(--vo-blue);--bs-btn-hover-bg:var(--vo-blue-dark);--bs-btn-hover-border-color:var(--vo-blue-dark)}
.btn-outline-primary{--bs-btn-color:var(--vo-blue);--bs-btn-border-color:#b8c5ff;--bs-btn-hover-bg:var(--vo-blue);--bs-btn-hover-border-color:var(--vo-blue)}
.eyebrow{margin:0 0 .75rem;color:var(--vo-blue);font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;font-weight:800}
.hero-section h1{letter-spacing:-.055em}.hero-section .lead{font-size:1.2rem;line-height:1.65}
.video-card,.step-card,.request-panel,.preview-card,.price-card{border:1px solid var(--vo-line);background:#fff;border-radius:1rem}
.video-card{overflow:hidden}.video-card video{background:#111;max-height:700px;object-fit:contain}
.step-card{padding:1.6rem}.step-card>span{color:var(--vo-blue);font-size:.75rem;font-weight:800}.step-card h2{font-size:1.3rem;margin:1rem 0 .55rem}.step-card p{margin:0;color:var(--vo-muted)}
.section h2{letter-spacing:-.035em}.request-intro{background:#f8faff}.border-start-lg{border-left:1px solid var(--vo-line)}
.form-label{font-weight:650}.form-control,.form-select{padding:.75rem .9rem;border-color:#ccd4dc}.form-control:focus,.form-select:focus{border-color:#8da5ff;box-shadow:0 0 0 .25rem rgba(49,92,255,.12)}
.form-check-input:checked{background-color:var(--vo-blue);border-color:var(--vo-blue)}
.selected-file-list .list-group-item{border-color:var(--vo-line)}.hp{position:absolute;left:-9999px}
.site-footer a{text-decoration:none}.site-footer a:hover{text-decoration:underline}
.proposal{padding:4rem 0 6rem}.proposal-head{max-width:900px}.proposal-head h1{font-size:clamp(2.7rem,5vw,5.25rem);line-height:1;letter-spacing:-.05em}.preview-card{margin:2.5rem 0;overflow:hidden}.preview-card video{display:block;width:100%;background:#111;max-height:700px}.offer-grid{display:grid;grid-template-columns:1fr 380px;gap:3rem;align-items:start}.price-card{position:sticky;top:95px;padding:1.5rem}.price{font-size:3rem;font-weight:850;letter-spacing:-.05em}.tax-note{font-size:.82rem}.promo-consent{padding:.9rem;border:1px solid var(--vo-line);border-radius:.75rem;background:#f8faff}
.admin-body{background:#f5f6f8}.admin-top{height:68px}.admin-title h1{letter-spacing:-.04em}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1.25rem}.photo-grid a{aspect-ratio:1;background:#f5f7f9;border:1px solid var(--vo-line);border-radius:.6rem;display:flex;align-items:center;justify-content:center;text-decoration:none;text-align:center;overflow:hidden;font-size:.75rem}.photo-grid img{width:100%;height:100%;object-fit:cover}.admin-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:1.25rem}.admin-card{border:1px solid var(--vo-line);background:#fff;border-radius:1rem;padding:1.35rem}.price-lines{display:grid;grid-template-columns:1fr 1.4fr;gap:.5rem .75rem;align-items:center}.price-lines small{color:var(--vo-muted)}.calc-box{display:grid;grid-template-columns:1fr auto;gap:.4rem .9rem;margin:1.2rem 0;padding:1rem;background:#f5f7fa;border:1px solid var(--vo-line);border-radius:.75rem}.proposal-actions{display:flex;gap:.6rem;margin-top:1rem}.proposal-actions form{margin:0}
.login-card{width:min(calc(100% - 36px),420px);margin:13vh auto;padding:1.75rem;border:1px solid var(--vo-line);border-radius:1rem;background:#fff;box-shadow:0 .75rem 2.5rem rgba(20,30,40,.08)}
@media(max-width:991.98px){.py-lg-6{padding-top:3.5rem!important;padding-bottom:3.5rem!important}.border-start-lg{border-left:0;border-top:1px solid var(--vo-line)}.offer-grid,.admin-grid{grid-template-columns:1fr}.price-card{position:static}.price-lines{grid-template-columns:1fr}}
@media(max-width:575.98px){.hero-section h1{font-size:2.9rem}.proposal-actions{flex-direction:column}.photo-grid{grid-template-columns:repeat(2,1fr)}}
/* Compatibilité des écrans admin/proposition conservés du MVP précédent. */
.button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.65rem 1rem;border:1px solid var(--vo-blue);border-radius:.75rem;background:var(--vo-blue);color:#fff;text-decoration:none;font-weight:700;cursor:pointer}.button:hover{background:var(--vo-blue-dark);border-color:var(--vo-blue-dark);color:#fff}.button.secondary{background:#fff;border-color:#ced4da;color:var(--vo-ink)}.button.secondary:hover{background:#f8f9fa;color:var(--vo-ink)}
.check{display:flex;align-items:flex-start;gap:.6rem;margin:.75rem 0}.check input{width:auto;margin-top:.3rem}.hint{color:var(--vo-muted);font-size:.85rem}.error{color:#b4232f}.back{display:inline-block;margin-bottom:1rem;color:var(--vo-muted)}.status{display:inline-flex;padding:.25rem .6rem;border:1px solid #ced4da;border-radius:999px;font-size:.75rem;color:var(--vo-muted);background:#fff}.admin-wrap{width:min(calc(100% - 36px),1250px);margin:auto;padding:2.3rem 0 5rem}.admin-title{display:flex;justify-content:space-between;align-items:flex-start;gap:1.25rem;margin-bottom:1.7rem}.admin-title h1{font-size:3rem;margin:0}.admin-card label{display:block;margin-bottom:1rem;font-weight:650}.admin-card input:not([type=checkbox]):not([type=radio]),.admin-card select,.admin-card textarea,.login-card input{display:block;width:100%;margin-top:.4rem;padding:.65rem .75rem;border:1px solid #ccd4dc;border-radius:.55rem;background:#fff;color:var(--vo-ink)}.admin-card input:focus,.admin-card select:focus,.login-card input:focus{outline:0;border-color:#8da5ff;box-shadow:0 0 0 .2rem rgba(49,92,255,.12)}
.checkout-form .button,.price-card>.button{width:100%;margin-top:1rem}.promo-consent small{display:block;color:var(--vo-muted);margin-top:.2rem}
@media(max-width:991.98px){.admin-title{flex-direction:column}.admin-title h1{font-size:2.4rem}}


/* 0.006 — lisibilité et validation formulaire */
.request-panel .form-control,.request-panel .form-select{min-height:48px}
.request-panel textarea.form-control{min-height:120px}
.request-panel .form-check{padding-top:.15rem;padding-bottom:.15rem}
.request-panel fieldset{background:#fbfcff}
.request-panel .alert-danger{border-color:#f1b7bd;background:#fff7f8;color:#842029}
#request-submit:disabled{cursor:not-allowed;opacity:.55}
@media(min-width:992px){.section .row.fs-5>div:first-child{padding-right:2.5rem}.section .row.fs-5>div:last-child{padding-left:2.5rem;border-left:1px solid var(--vo-line)}}

/* Navigation du back-office */
.admin-navbar{min-height:68px}.admin-navbar .navbar-brand{font-size:1rem;letter-spacing:.02em}.admin-navbar .navbar-brand small{font-size:.78rem;font-weight:500}.admin-navbar .nav-link{color:#5d6670}.admin-navbar .nav-link:hover,.admin-navbar .nav-link.active{color:var(--vo-ink)}.admin-todo-button{min-width:54px;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}
@media(max-width:767.98px){.admin-navbar .navbar-nav{align-items:stretch!important}.admin-navbar .nav-item .btn{width:100%;margin-top:.35rem}.admin-todo-button{width:100%}}

/* 0.008 — commande, facturation et double mode Indy / facture manuelle */
.checkout-commitment{display:flex;flex-direction:column;gap:.25rem;margin:1rem 0;padding:1rem;border:1px solid #b8c5ff;border-radius:.75rem;background:#f7f9ff;font-size:.92rem}.checkout-commitment strong{color:var(--vo-ink)}.checkout-commitment span{color:var(--vo-muted)}
.billing-fields{margin:1rem 0;padding:1rem;border:1px solid var(--vo-line);border-radius:.75rem;background:#fff}.billing-fields legend{float:none;width:auto;padding:0 .35rem;margin:0 0 .65rem;font-size:.85rem;font-weight:800}.billing-fields label{display:block;margin-bottom:.75rem;font-size:.82rem;font-weight:700}.billing-row{display:grid;grid-template-columns:120px 1fr;gap:.75rem}.order-admin-box{margin:1rem 0;padding:1rem;border:1px solid #b8c5ff;border-radius:.75rem;background:#f7f9ff}.order-admin-box h3{font-size:1rem;margin:0 0 .75rem}.order-admin-box p{margin:.4rem 0;font-size:.9rem}
@media(max-width:575.98px){.billing-row{grid-template-columns:1fr}}


.demo-source-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.demo-source-photo{margin:0;background:#fff;border:1px solid var(--bs-border-color);border-radius:1rem;overflow:hidden;box-shadow:0 .25rem 1rem rgba(0,0,0,.06)}.demo-source-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.demo-source-photo figcaption{padding:.65rem .85rem;font-size:.85rem;color:var(--bs-secondary-color)}.demo-empty{min-height:320px;display:grid;place-items:center;background:#f8f9fa}.legal h2{margin-top:2rem;font-size:1.35rem}.legal p{max-width:80ch}.price-card video{background:#111}@media(max-width:767.98px){.demo-source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 0.010 — démos dynamiques, production et proposition courte */
.demo-source-photo-excluded{opacity:.58}.demo-source-photo-excluded img{filter:grayscale(.65)}
.admin-photo-item{min-width:0}.admin-photo-item>a{aspect-ratio:1;background:#f5f7f9;border:1px solid var(--vo-line);border-radius:.6rem;display:flex;align-items:center;justify-content:center;text-decoration:none;text-align:center;overflow:hidden;font-size:.75rem}.admin-photo-item>a img{width:100%;height:100%;object-fit:cover}.photo-grid-selectable{align-items:start}
.fcp-export-card{margin:1.25rem 0;padding:1rem 1.1rem;border:1px solid #c9d5ff;border-radius:.85rem;background:#f8faff}.fcp-export-card ol{margin:.75rem 0;padding-left:1.25rem}.fcp-export-card li{margin:.2rem 0}.promo-admin-block{padding:1rem;border:1px solid var(--vo-line);border-radius:.8rem;background:#fffaf0}
.proposal-deadline{display:block;margin:1rem 0;padding:.85rem 1rem;border:1px solid #f0d18c;border-radius:.75rem;background:#fffaf0;color:#6d5017;font-size:.9rem}.proposal-deadline strong{color:#4d3810}


/* 0.015 — métadonnées de démo */
.demo-meta-line{line-height:1.35}.demo-mention{line-height:1.18}
#landing-demo-video{display:block;width:100%;aspect-ratio:4/3;background:#111;object-fit:contain}
.hero-media .video-card{width:100%;margin-inline:auto}

/* 0.015 — ratio du hero calculé côté serveur lorsque la résolution vidéo est renseignée ; fallback JS sinon. */

/* 0.016 — gestion des démonstrations publiques */
.demo-admin-list{display:grid;gap:1.25rem}.demo-admin-card-disabled{opacity:.68}.demo-admin-card video{max-height:420px;object-fit:contain}.demo-admin-photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem}.demo-admin-photo{margin:0;border:1px solid var(--vo-line);border-radius:.65rem;overflow:hidden;background:#fff}.demo-admin-photo img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.demo-admin-photo figcaption{padding:.4rem .5rem;font-size:.72rem;color:var(--vo-muted)}.demo-admin-photo-unused{opacity:.5}.demo-admin-photo-unused img{filter:grayscale(.7)}
@media(max-width:767.98px){.demo-admin-photos{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* 0.017 — modale multi-démos et conseils photo */
.demo-gallery-modal .modal-dialog{max-width:min(1180px,calc(100vw - 2rem))}.demo-gallery-modal .modal-content{background:#fff}.demo-gallery-slide{min-height:520px}.demo-gallery-video-wrap{width:100%;aspect-ratio:4/3;margin-inline:auto;background:#111;border-radius:1rem;overflow:hidden}.demo-gallery-video{display:block;width:100%;height:100%;object-fit:contain;background:#111}.demo-gallery-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.demo-gallery-photo{margin:0;border:1px solid var(--vo-line);border-radius:.75rem;overflow:hidden;background:#fff}.demo-gallery-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.demo-gallery-photo figcaption{padding:.4rem .55rem;font-size:.75rem;color:var(--vo-muted)}.demo-gallery-photo-unused{opacity:.55}.demo-gallery-photo-unused img{filter:grayscale(.65)}.demo-gallery-control{width:52px;opacity:.9}.demo-gallery-control .carousel-control-prev-icon,.demo-gallery-control .carousel-control-next-icon{background-color:rgba(20,27,35,.78);border-radius:50%;background-size:55%;width:38px;height:38px}.demo-gallery-counter{line-height:1}.request-panel .form-text strong{color:var(--vo-ink)}
@media(max-width:991.98px){.demo-gallery-slide{min-height:0}.demo-gallery-control{top:20%;bottom:auto}.demo-gallery-photos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:575.98px){.demo-gallery-modal .modal-dialog{max-width:calc(100vw - .75rem);margin:.375rem}.demo-gallery-slide{padding:.75rem!important}.demo-gallery-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.demo-gallery-control{width:42px}}


/* 0.018 — proposition commerciale, CGV et informations images */
.admin-photo-resolution{font-size:.72rem;color:var(--vo-muted);text-align:center;margin-top:.35rem;font-variant-numeric:tabular-nums}
.proposal-page{background:linear-gradient(180deg,#fbfcff 0,#fff 520px)}
.proposal-column{max-width:860px}
.proposal-intro h1{letter-spacing:-.035em}
.proposal-video-frame{overflow:hidden;border:1px solid var(--vo-line);border-radius:1.25rem;background:#111}
.proposal-video-frame video{width:auto!important;max-width:100%;height:auto;max-height:min(600px,72vh);object-fit:contain;background:#111;margin-inline:auto}
.proposal-story{padding:2rem 0;border-top:1px solid var(--vo-line);border-bottom:1px solid var(--vo-line)}
.proposal-story p{line-height:1.75}
.proposal-spec{padding:1.15rem 1.2rem;border:1px solid var(--vo-line);border-radius:1rem;background:#fff}
.proposal-spec span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--vo-muted);font-weight:700;margin-bottom:.35rem}.proposal-spec strong{font-size:1rem}
.proposal-checkout-card{padding:2rem;border:1px solid var(--vo-line);border-radius:1.25rem;background:#fff;box-shadow:0 .75rem 2.5rem rgba(19,33,68,.07)}
.proposal-price{font-size:clamp(2.5rem,7vw,4rem);line-height:1;font-weight:800;letter-spacing:-.055em;color:var(--vo-ink);margin-bottom:.65rem}.proposal-price small{font-size:.28em;letter-spacing:0;color:var(--vo-muted);font-weight:700}
.checkout-form{display:grid;gap:1rem}.billing-fields{display:grid;gap:.85rem;padding:1.25rem;border:1px solid var(--vo-line);border-radius:1rem}.billing-fields legend{float:none;width:auto;padding:0 .35rem;font-size:1rem;font-weight:700}.billing-fields label{display:grid;gap:.35rem;font-size:.9rem;font-weight:600}.billing-row{display:grid;grid-template-columns:1fr 2fr;gap:.85rem}
.checkout-form .check{display:flex;align-items:flex-start;gap:.7rem;padding:1rem;border:1px solid var(--vo-line);border-radius:.9rem;background:#fff}.checkout-form .check input{margin-top:.22rem;flex:0 0 auto}.checkout-form .check span{line-height:1.45}.checkout-form .check small{display:block;color:var(--vo-muted);margin-top:.25rem}.checkout-form .cgv-consent{background:#f8faff;border-color:#cbd5ff}
#confirm-order:disabled{cursor:not-allowed;opacity:.5}
.legal-page{background:#fafbfc}.legal-column{max-width:900px}.legal-back{display:inline-flex;align-items:center;color:var(--vo-muted);text-decoration:none;font-size:.9rem}.legal-back:hover{color:var(--vo-blue)}
.legal-document{background:#fff;border:1px solid var(--vo-line);border-radius:1.25rem;padding:clamp(1.5rem,4vw,3.5rem);box-shadow:0 .5rem 2rem rgba(20,31,50,.05)}.legal-document>h1{font-size:clamp(2rem,5vw,3.25rem);letter-spacing:-.04em;margin-bottom:.75rem}.legal-document>h1+p{padding-bottom:1.5rem;margin-bottom:2rem;border-bottom:1px solid var(--vo-line)}.legal-document h2{font-size:1.28rem;margin-top:2.25rem;margin-bottom:.7rem;letter-spacing:-.015em}.legal-document p{max-width:none;line-height:1.75;color:#46515c}.legal-document h2+p{margin-top:0}
@media(max-width:767.98px){.proposal-checkout-card{padding:1.25rem}.billing-row{grid-template-columns:1fr}.legal-document{border-radius:1rem}.proposal-story{padding:1.5rem 0}}

/* 0.019 — formulaire, états d’erreur et page de remerciement */
.success-page,.error-page{min-height:calc(100vh - 150px);display:flex;align-items:center;background:linear-gradient(180deg,#f8faff 0,#fff 70%)}
.success-card,.error-card{max-width:760px;padding:clamp(2rem,5vw,4rem);background:#fff;border:1px solid var(--vo-line);border-radius:1.5rem;box-shadow:0 1rem 3rem rgba(20,31,50,.07)}
.success-icon,.admin-state-icon{width:64px;height:64px;margin:0 auto 1.25rem;border-radius:50%;display:grid;place-items:center;background:#edf2ff;color:var(--vo-blue);font-size:1.75rem}
.success-next{display:grid;gap:.3rem;margin:2rem 0;padding:1.1rem 1.25rem;border:1px solid var(--vo-line);border-radius:1rem;background:#fafbfc;text-align:left}
.success-next span{color:var(--vo-muted);line-height:1.55}
.error-code{font-size:.78rem;font-weight:800;letter-spacing:.18em;color:#9aa4ae;margin-bottom:.5rem}
.admin-state-card{max-width:650px;margin-top:6vh;padding:clamp(2rem,5vw,3.5rem);background:#fff;border:1px solid var(--vo-line);border-radius:1.25rem;box-shadow:0 .75rem 2.5rem rgba(20,30,40,.06)}


/* 0.020 — suivi admin et détection vidéo */
.admin-list-process{line-height:1.35}
.proposal-story strong{font-weight:700}

#video-upload-summary{margin-top:.65rem}

/* 0.022 — gestion des vidéos et aperçu client */
.uploaded-videos{display:grid;gap:.65rem}.uploaded-video-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border:1px solid var(--vo-line);border-radius:.8rem;background:#fafbfc}.uploaded-video-item>div{min-width:0;display:grid;gap:.15rem}.uploaded-video-item small{color:var(--vo-muted);overflow-wrap:anywhere}.proposal-video-frame video{background:#111;object-fit:contain;max-height:min(600px,72vh)}


/* 0.023 — page de vente et refus contextuel */
.proposal-copy-block{padding-bottom:1rem}
.proposal-confidence-box{display:grid;grid-template-columns:auto 1fr;gap:1.25rem;padding:clamp(1.4rem,3vw,2rem);border:1px solid #dfe5ff;border-radius:1.25rem;background:linear-gradient(135deg,#f8faff,#fff);box-shadow:0 .75rem 2rem rgba(33,65,135,.05)}
.proposal-confidence-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#315efb;color:white;font-size:1.35rem}
.admin-reject-card{border-color:#f1d5d7;background:#fffafa}
.reject-preview{line-height:1.55}
@media (max-width:767.98px){.proposal-confidence-box{grid-template-columns:1fr}.proposal-confidence-icon{width:46px;height:46px}}

/* 0.024 — CTA répétés sur la page de proposition */
.proposal-inline-cta{text-align:center;margin:-1.5rem auto 4.5rem}.proposal-inline-cta .btn{min-width:230px;box-shadow:0 .55rem 1.4rem rgba(47,92,255,.13)}#commande{scroll-margin-top:2rem}

/* 0.025 — finitions proposition */
.proposal-confidence-box + .proposal-inline-cta{margin-top:1.75rem}


/* 0.027 — finitions de la page proposition */
.proposal-story{
  border-top:0 !important;
  border-bottom:0 !important;
}
.proposal-copy-block{
  margin-bottom:0 !important;
}
.proposal-inline-cta{
  margin:2.25rem auto 4.25rem !important;
  text-align:center;
}
.proposal-confidence-box + .proposal-inline-cta{
  margin-top:2.25rem !important;
}

/* 0.028 — actions médias */
.admin-wrap > .d-flex .back{margin-bottom:0}

/* 0.029 — logos clients et retours */
.admin-title-with-logo{align-items:center}.admin-company-logo{width:82px;height:82px;border-radius:14px;border:1px solid var(--vo-line);background:#fff;display:grid;place-items:center;overflow:hidden;flex:0 0 auto}.admin-company-logo img{width:100%;height:100%;object-fit:contain;padding:7px}.admin-company-logo.is-placeholder img{padding:0}.request-list-logo{width:52px;height:52px;flex:0 0 52px;border-radius:10px;border:1px solid var(--vo-line);background:#fff;overflow:hidden;display:grid;place-items:center}.request-list-logo img{width:100%;height:100%;object-fit:contain;padding:4px}.client-feedback-item{padding:1rem;border:1px solid var(--vo-line);border-radius:.85rem;background:#fff}.client-feedback-item.is-open{border-color:#f0c36a;background:#fffaf0}.client-feedback-item.is-resolved{opacity:.72}@media(max-width:575.98px){.admin-company-logo{width:64px;height:64px}.request-list-logo{width:44px;height:44px;flex-basis:44px}}

/* 0.031 — identité de marque stable */
.brand-logo{display:block;width:clamp(150px,18vw,205px);height:auto}
.admin-brand-logo{display:block;width:150px;height:auto}
.footer-brand-logo{display:block;width:110px;height:auto}
@media(max-width:575.98px){
  .brand-logo{width:145px}
  .admin-brand-logo{width:125px}
  .footer-brand-logo{width:95px}
}

/* 0.032 — sticky footer sur le front */
body:not(.admin-body){
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
body:not(.admin-body) > main{
  flex:1 0 auto;
}
body:not(.admin-body) > footer{
  margin-top:auto;
  flex-shrink:0;
}

/* 0.035 — fiche pilotée par le workflow */
.admin-next-step{background:linear-gradient(135deg,#fff 0%,#f8faff 100%)}
.admin-next-step .card-body{padding:1.25rem 1.35rem}
.admin-next-step h2{font-weight:700}

/* 0.038 — retours et erreurs client */
.admin-grid .admin-card-full{grid-column:1 / -1}
.admin-issues-card .client-feedback-item.is-open{border-color:#e59a9a;background:#fff7f7}

/* 0.039 — disposition précise des retours client */
@media (min-width: 992px){
  .admin-grid{
    display:grid;
    grid-template-columns:minmax(0, .78fr) minmax(0, 1.22fr);
    align-items:start;
  }

  .admin-grid > .admin-card:first-child{
    grid-column:1;
    grid-row:1 / span 3;
  }

  .admin-grid > .admin-feedback-card{
    grid-column:2;
  }

  .admin-grid > .admin-issues-card{
    grid-column:2;
  }

  .admin-grid > .admin-production-card.admin-production-under-feedback{
    grid-column:2;
  }
}

/* 0.040 — décisions sur les demandes de retouche */
.client-feedback-item .d-flex.flex-wrap.gap-2{
  row-gap:.5rem !important;
}

/* 0.048 — corrections ciblées de recette */
body:not(.admin-body) > main.error-page,
body:not(.admin-body) > main.success-page{min-height:0}
.quote-hide-label{display:none}
button[aria-expanded="true"] .quote-show-label{display:none}
button[aria-expanded="true"] .quote-hide-label{display:inline}
.production-guidance{margin-top:.35rem}

/* 0.048 — livraison finale et relance */
.proposal-final-video{display:block}
.proposal-contact-optin{border:1px solid var(--vo-line);background:#fff;border-radius:1rem;padding:1.5rem}

/* 0.048 — archives, pagination et dossiers terminés */
.completed-request-summary{background:#fff}
.summary-list{display:grid;gap:.55rem}
.summary-list>div{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1.2fr);gap:1rem;padding-bottom:.45rem;border-bottom:1px solid var(--vo-line)}
.summary-list>div:last-child{border-bottom:0}
.summary-list dt{font-weight:600;color:#6b7280}
.summary-list dd{margin:0;font-weight:600}
@media(max-width:575.98px){.summary-list>div{grid-template-columns:1fr;gap:.15rem}}

/* ================================================================
   ZENBAT 0.001 — identité claire / sobre, basée sur Bootstrap 5.3
   ================================================================ */
:root{
  --zenbat-bg:#F7F6F2;
  --zenbat-surface:#FFFFFF;
  --zenbat-ink:#1C1D1B;
  --zenbat-muted:#676A65;
  --zenbat-green:#24483F;
  --zenbat-green-dark:#183A33;
  --zenbat-copper:#C87941;
  --zenbat-border:#E8E6DF;
  --zenbat-soft:#F0EFE9;
  --bs-primary:#24483F;
  --bs-primary-rgb:36,72,63;
  --bs-link-color:#24483F;
  --bs-link-hover-color:#183A33;
}
html{scroll-behavior:smooth}
body{background:var(--zenbat-bg);color:var(--zenbat-ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:-.01em}
a{color:var(--zenbat-green)}
.btn{border-radius:.7rem;font-weight:650;letter-spacing:-.01em}
.btn-primary{--bs-btn-bg:var(--zenbat-green);--bs-btn-border-color:var(--zenbat-green);--bs-btn-hover-bg:var(--zenbat-green-dark);--bs-btn-hover-border-color:var(--zenbat-green-dark);--bs-btn-active-bg:var(--zenbat-green-dark);--bs-btn-active-border-color:var(--zenbat-green-dark)}
.btn-outline-primary{--bs-btn-color:var(--zenbat-green);--bs-btn-border-color:var(--zenbat-green);--bs-btn-hover-bg:var(--zenbat-green);--bs-btn-hover-border-color:var(--zenbat-green)}
.site-header{background:rgba(247,246,242,.94);border-bottom:1px solid rgba(28,29,27,.08);backdrop-filter:blur(12px);z-index:1030}
.brand-logo{width:185px;height:auto;display:block}.footer-logo{width:170px;height:auto}.footer-copy{max-width:520px}
.site-header .nav-link{color:var(--zenbat-ink);font-size:.94rem;font-weight:520}.site-header .nav-link:hover{color:var(--zenbat-green)}
.site-header .dropdown-menu{background:#fff;border:1px solid var(--zenbat-border)!important}.site-header .dropdown-item:active{background:var(--zenbat-green)}
.eyebrow{color:var(--zenbat-green);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.py-lg-6{padding-top:5rem!important;padding-bottom:5rem!important}.section-pad{padding:6rem 0}.section-soft{background:var(--zenbat-soft)}
.home-hero{overflow:hidden;background:radial-gradient(circle at 80% 30%,rgba(200,121,65,.08),transparent 32%),var(--zenbat-bg)}
.hero-row{min-height:690px}.home-hero h1{max-width:680px}.home-hero .lead{max-width:610px}
.hero-visual{border-radius:1.25rem;min-height:470px;position:relative;overflow:hidden;background:#e8e6df;border:1px solid rgba(28,29,27,.08);box-shadow:0 24px 65px rgba(32,42,39,.12)}
.hero-before-after{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;background:#d8d4cc}
.hero-image{position:relative;background-size:cover;background-position:center}.hero-image-before{background:linear-gradient(135deg,#b8b0a3,#6e695f)}.hero-image-after{background:linear-gradient(135deg,#d7c4ad,#8a8c78)}
.hero-image:before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.35),transparent 45%)}.hero-image span{position:absolute;left:1.1rem;bottom:1rem;color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.14em}
.hero-divider{position:absolute;left:50%;top:0;bottom:0;width:2px;background:#fff;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;color:var(--zenbat-green)}
.hero-divider:before{content:"";position:absolute;width:44px;height:44px;border-radius:50%;background:white;box-shadow:0 5px 16px rgba(0,0,0,.18)}.hero-divider i{position:relative;z-index:1;font-size:.75rem}
.hero-service-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;gap:.75rem;align-items:center;justify-content:center;text-align:center;color:var(--zenbat-green)}.hero-service-placeholder i{font-size:5rem}.hero-service-placeholder strong{font-size:2rem}.hero-service-placeholder span{color:var(--zenbat-muted)}
.zenbat-carousel-control{width:48px;height:48px;border-radius:50%;background:var(--zenbat-green);top:50%;bottom:auto;transform:translateY(-50%);opacity:.95}.zenbat-carousel-control.carousel-control-prev{left:.25rem}.zenbat-carousel-control.carousel-control-next{right:.25rem}.zenbat-carousel-control .carousel-control-prev-icon,.zenbat-carousel-control .carousel-control-next-icon{width:1rem;height:1rem}
.zenbat-indicators [data-bs-target]{width:8px;height:8px;border:0;border-radius:50%;background:var(--zenbat-green);opacity:.25}.zenbat-indicators .active{opacity:1}
.section-heading{max-width:780px}.principle-card{padding:2rem;border-top:1px solid var(--zenbat-border);background:rgba(255,255,255,.42)}.principle-number{display:block;color:var(--zenbat-copper);font-size:.8rem;font-weight:800;margin-bottom:2.6rem}.principle-card h3{font-size:1.5rem;font-weight:750}.principle-card p{color:var(--zenbat-muted);margin:0}
.service-card{display:flex;flex-direction:column;gap:1rem;padding:1.6rem;border:1px solid var(--zenbat-border);border-radius:1rem;background:rgba(255,255,255,.78);color:var(--zenbat-ink);transition:.2s ease}.service-card:hover{transform:translateY(-3px);border-color:#c9c6bc;box-shadow:0 16px 40px rgba(36,72,63,.08);color:var(--zenbat-ink)}.service-card-featured{flex-direction:row;align-items:flex-start;padding:2.4rem}.service-icon{display:grid;place-items:center;flex:0 0 auto;width:46px;height:46px;border-radius:50%;background:#ECEBE5;color:var(--zenbat-green);font-size:1.25rem}.service-card h3{font-size:1.25rem;font-weight:750;margin:0}.service-card p{color:var(--zenbat-muted);margin:0}.service-link{margin-top:auto;font-size:.9rem;font-weight:700;color:var(--zenbat-green)}
.process-step{padding-top:1.2rem;border-top:1px dashed #bdbab2}.process-step>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#E6E5DA;color:var(--zenbat-green);font-weight:800;margin-bottom:2.5rem}.process-step h3{font-size:1.08rem;font-weight:750}.process-step p{color:var(--zenbat-muted);margin:0}
.cta-panel{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:3rem;border:1px solid var(--zenbat-border);border-radius:1.1rem;background:#fff}
.site-footer{background:#fff;border-top:1px solid var(--zenbat-border)}.site-footer a{color:var(--zenbat-muted);text-decoration:none}.site-footer a:hover{color:var(--zenbat-green)}
.dev-service-panel{display:flex;gap:1.5rem;align-items:center;padding:2rem;border:1px dashed var(--zenbat-copper);border-radius:1rem;background:#fff}.dev-service-panel>i{font-size:2.5rem;color:var(--zenbat-green)}
.request-upsell{padding:1.25rem;border:1px solid var(--zenbat-border);border-radius:1rem;background:#F4F3ED}.upsell-choice{display:flex;gap:.8rem;align-items:flex-start;padding:1rem;border:1px solid var(--zenbat-border);border-radius:.8rem;background:#fff;cursor:pointer}.upsell-choice input{margin-top:.25rem}.upsell-choice span{display:flex;flex-direction:column;gap:.25rem}.upsell-choice small{color:var(--zenbat-muted);line-height:1.35}
.admin-brand-logo{width:135px;height:auto}.admin-body{background:#f5f4f0}
@media(max-width:991.98px){.hero-row{min-height:auto}.hero-visual{min-height:360px}.section-pad{padding:4rem 0}.cta-panel{align-items:flex-start;flex-direction:column}.site-header .navbar-collapse{padding-top:1rem}.service-card-featured{padding:1.5rem}}
@media(max-width:575.98px){.brand-logo{width:150px}.home-hero h1{font-size:2.55rem}.hero-visual{min-height:285px}.section-pad{padding:3.25rem 0}.cta-panel{padding:1.6rem}.service-card-featured{flex-direction:column}.py-lg-6{padding-top:3rem!important;padding-bottom:3rem!important}}

/* 0.002 — Hero multi-services : hauteur stable et navigation hors contenu */
#servicesHero .carousel-inner,#servicesHero .carousel-item,#servicesHero .hero-row{min-height:600px}
.zenbat-carousel-nav{display:flex;align-items:center;justify-content:center;gap:1rem;padding:0 0 1.5rem}
.zenbat-carousel-arrow{width:42px;height:42px;border:1px solid #d8d8d2;border-radius:50%;background:#fff;color:var(--zenbat-green);display:inline-flex;align-items:center;justify-content:center;transition:.2s ease}
.zenbat-carousel-arrow:hover{background:var(--zenbat-green);color:#fff;border-color:var(--zenbat-green)}
.zenbat-carousel-control{display:none!important}
@media (max-width:991.98px){#servicesHero .carousel-inner,#servicesHero .carousel-item,#servicesHero .hero-row{min-height:0}}

/* 0.003 — hauteur du carrousel calculée en JS sur le slide le plus haut */
#servicesHero .carousel-inner{transition:height .2s ease}
.hero-image{position:relative;min-width:0;overflow:hidden}
.hero-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.hero-image-before img{object-position:54% center}
.hero-image-after img{object-position:48% center}
.hero-image>span{position:absolute;left:1rem;bottom:1rem;z-index:2;background:rgba(247,246,242,.88);backdrop-filter:blur(8px);padding:.45rem .7rem;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.08em;color:#1C1D1B}

/* 0.004 — Hero : gabarit commun, compact et entièrement visible sur desktop */
@media (min-width:992px){
  #servicesHero{--hero-h:clamp(430px,calc(100svh - 190px),540px)}
  #servicesHero .carousel-inner,#servicesHero .carousel-item,#servicesHero .hero-row{height:var(--hero-h)!important;min-height:0!important}
  #servicesHero .hero-row{overflow:hidden}
  #servicesHero .hero-row>.col-lg-5,#servicesHero .hero-row>.col-lg-7{height:100%;padding-top:1.5rem!important;padding-bottom:1.5rem!important;display:flex;flex-direction:column;justify-content:center}
  #servicesHero .hero-visual,#servicesHero .hero-service-placeholder{height:min(100%,430px);min-height:0}
  #servicesHero h1{font-size:clamp(2.25rem,4vw,4rem);margin-bottom:.8rem!important}
  #servicesHero .lead{font-size:1.03rem;line-height:1.5;margin-bottom:1rem!important}
  #servicesHero .eyebrow{margin-bottom:.5rem!important}
  .zenbat-carousel-nav{height:52px;padding:0}
}
#request-submit:disabled{opacity:1;cursor:not-allowed;background:#dce5e1;border-color:#dce5e1;color:#65736d;box-shadow:none}
#request-submit:disabled:hover,#request-submit:disabled:focus{background:#dce5e1;border-color:#dce5e1;color:#65736d;box-shadow:none}
/* 0.005 — hero compact sans CTA tronqué */
@media (min-width:992px){
 #servicesHero{--hero-h:clamp(470px,calc(100svh - 150px),560px)}
 #servicesHero .hero-row{overflow:visible}
 #servicesHero .hero-row>.col-lg-5,#servicesHero .hero-row>.col-lg-7{padding-top:1rem!important;padding-bottom:1rem!important}
 #servicesHero h1{font-size:clamp(2rem,3.25vw,3.35rem);line-height:1.04!important}
 #servicesHero .lead{font-size:1rem;line-height:1.42}
 #servicesHero .badge{margin-bottom:.5rem!important}
}
.hero-divider{position:absolute;z-index:3;left:50%;top:0;bottom:0;width:2px;transform:translateX(-50%);background:rgba(247,246,242,.9);pointer-events:none}
.hero-divider::before,.hero-divider::after{display:none!important;content:none!important}
.landing-service-mark{min-height:330px;border-radius:1.25rem;background:var(--zenbat-green);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;gap:1rem}.landing-service-mark i{font-size:4rem;color:#e9c2a5}.landing-service-mark strong{font-size:1.35rem;max-width:280px}.landing-checklist{list-style:none;padding:0;margin:0;display:grid;gap:1rem}.landing-checklist li{position:relative;padding-left:1.75rem;color:var(--zenbat-muted)}.landing-checklist li::before{content:'✓';position:absolute;left:0;color:var(--zenbat-green);font-weight:800}


/* 0.006 — mobile : visuel avant le texte, avec un espacement plus compact */
@media (max-width:991.98px){
  #servicesHero .hero-media{padding-bottom:.35rem!important}
  #servicesHero .hero-copy{padding-top:.35rem!important}
  #servicesHero .hero-visual{min-height:clamp(270px,48vw,390px)}
  #servicesHero .hero-row{--bs-gutter-y:.75rem}
}

/* 0.006 — illustrations dédiées aux landings de services */
.landing-service-mark{position:relative;overflow:hidden}
.landing-service-mark::after{content:"";position:absolute;width:220px;height:220px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-80px;bottom:-100px}
.landing-service-mark>strong{position:relative;z-index:3}
.service-visual{position:relative;z-index:2;width:230px;height:180px;display:grid;place-items:center}
.video-realisation-visual .visual-frame{position:absolute;width:150px;aspect-ratio:4/3;border-radius:14px;border:1px solid rgba(255,255,255,.7);background:rgba(247,246,242,.13);box-shadow:0 18px 35px rgba(0,0,0,.15)}
.video-realisation-visual .visual-frame-back{transform:translate(-25px,-14px) rotate(-7deg);opacity:.55}
.video-realisation-visual .visual-frame-front{transform:translate(14px,8px);display:grid;place-items:center;background:linear-gradient(145deg,rgba(247,246,242,.25),rgba(247,246,242,.08))}
.video-realisation-visual .visual-frame-front i{font-size:3rem;color:#fff}
.video-realisation-visual .visual-spark{position:absolute;right:10px;top:5px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--zenbat-copper);color:#fff;font-size:1.35rem}
.social-visual .social-phone{position:absolute;width:112px;height:172px;border:2px solid rgba(255,255,255,.8);border-radius:21px;background:rgba(247,246,242,.12);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.social-visual .social-phone>i{font-size:3.1rem;color:#fff}
.social-lines{width:62px;height:24px;border-top:4px solid rgba(255,255,255,.75);border-bottom:4px solid rgba(255,255,255,.45)}
.social-card{position:absolute;width:58px;height:58px;border-radius:16px;background:#fff;color:var(--zenbat-green);display:grid;place-items:center;font-size:1.45rem;box-shadow:0 16px 30px rgba(0,0,0,.16)}
.social-card-one{left:20px;top:18px;transform:rotate(-8deg)}
.social-card-two{right:18px;bottom:20px;transform:rotate(8deg);background:var(--zenbat-copper);color:#fff}
.proposal-visual .proposal-sheet{position:absolute;width:138px;height:170px;border-radius:10px;background:#fff;color:var(--zenbat-green);padding:20px;box-shadow:0 18px 38px rgba(0,0,0,.17);display:flex;flex-direction:column;gap:11px}
.proposal-visual .proposal-sheet>i{font-size:2.2rem;margin-bottom:4px}
.proposal-visual .proposal-sheet>span{display:block;height:5px;border-radius:4px;background:#d9dedb}.proposal-visual .proposal-sheet>span:nth-of-type(2){width:80%}.proposal-visual .proposal-sheet>span:nth-of-type(3){width:55%}
.proposal-badge{position:absolute;right:18px;top:20px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--zenbat-copper);color:#fff;font-size:1.35rem;box-shadow:0 12px 24px rgba(0,0,0,.16)}
.site-google-visual .browser-window{position:absolute;width:180px;height:130px;border-radius:12px;border:2px solid rgba(255,255,255,.8);background:rgba(247,246,242,.12);display:grid;place-items:center;color:#fff;font-size:3.2rem;overflow:hidden}
.site-google-visual .browser-bar{position:absolute;left:0;top:0;width:100%;height:24px;background:rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.32)}
.site-google-visual .map-pin{position:absolute;right:4px;bottom:8px;width:62px;height:62px;border-radius:50%;background:var(--zenbat-copper);color:#fff;display:grid;place-items:center;font-size:1.75rem;box-shadow:0 14px 28px rgba(0,0,0,.18)}
.generic-service-visual>i{font-size:5rem;color:#e9c2a5}
