/* ======================================================================
   EXPERIENCE GLOBALE — Boost Academy GN
   Couche commune de mouvement, profondeur, états interactifs et feedback.
   ====================================================================== */
:root {
  --ba-motion-fast: 180ms;
  --ba-motion-base: 320ms;
  --ba-motion-slow: 520ms;
  --ba-ease-standard: cubic-bezier(.2, .75, .25, 1);
  --ba-ease-emphasized: cubic-bezier(.16, 1, .3, 1);
  --ba-focus-ring: 0 0 0 4px rgba(23, 104, 229, .18);
  --ba-interactive-shadow: 0 18px 42px rgba(6, 40, 95, .13);
}
html { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
a, button, input, select, textarea, summary, [role="button"] { -webkit-tap-highlight-color: transparent; }
:where(a, button, input, select, textarea, summary, [role="button"]):focus-visible { outline: 2px solid transparent; box-shadow: var(--ba-focus-ring); }
:where(.btn,.premium-button,.parent-button,.teacher-button,.partner-button,.admin-nav-link,.admin-tab,.parent-filter-button,.teacher-filter-button,.partner-icon-link,.teacher-icon-link,.parent-icon-link) {
  transition: transform var(--ba-motion-base) var(--ba-ease-standard), box-shadow var(--ba-motion-base) var(--ba-ease-standard), border-color var(--ba-motion-fast) ease, background-color var(--ba-motion-fast) ease, color var(--ba-motion-fast) ease, opacity var(--ba-motion-fast) ease;
}
:where(.btn,.premium-button,.parent-button,.teacher-button,.partner-button):not(:disabled):active { transform: translateY(1px) scale(.985); }
:where(.btn,.premium-button,.parent-button,.teacher-button,.partner-button)[aria-busy="true"],
:where(.btn,.premium-button,.parent-button,.teacher-button,.partner-button).is-loading { position: relative; cursor: wait; opacity: .86; pointer-events: none; }
:where(.btn,.premium-button,.parent-button,.teacher-button,.partner-button).is-loading::after { width: 1rem; height: 1rem; flex: 0 0 1rem; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; content: ""; animation: ba-spin .72s linear infinite; }
@keyframes ba-spin { to { transform: rotate(360deg); } }
.js .experience-page-root {
  opacity: 0;
  transform: translateY(10px);
  animation: ba-page-visibility-failsafe 0s linear 1800ms forwards;
}
.js body.experience-ready .experience-page-root {
  opacity: 1;
  transform: none;
  animation: none;
  transition: opacity var(--ba-motion-slow) var(--ba-ease-standard), transform var(--ba-motion-slow) var(--ba-ease-standard);
}
@keyframes ba-page-visibility-failsafe { to { opacity: 1; transform: none; } }
.js .experience-reveal { opacity: 0; transform: translate3d(0,18px,0) scale(.995); transition: opacity var(--ba-motion-slow) var(--ba-ease-standard), transform var(--ba-motion-slow) var(--ba-ease-emphasized); transition-delay: var(--experience-delay,0ms); will-change: opacity,transform; }
.js .experience-reveal.is-experience-visible { opacity: 1; transform: translate3d(0,0,0) scale(1); will-change: auto; }
:where(.solution-card,.process-card,.trust-item,.news-card,.testimonial-card,.service-index-card,.service-method-step,.teacher-profile-card,.parent-panel,.parent-card,.parent-request-card,.parent-metric,.parent-info-card,.parent-form-card,.parent-detail-card,.parent-session-card,.parent-quick-action,.teacher-panel,.teacher-detail-card,.teacher-request-card,.teacher-metric,.teacher-form-card,.teacher-session-card,.teacher-note-card,.teacher-upload-card,.teacher-submit-card,.partner-panel,.partner-card,.partner-detail-card,.partner-agreement-card,.partner-activity-card,.partner-profile-preview-card,.partner-select-card,.partner-quick-action,.admin-card,.admin-stat-card,.admin-mobile-card,.admin-session-card,.admin-pricing-card,.admin-news-row) {
  transition: transform var(--ba-motion-base) var(--ba-ease-standard), box-shadow var(--ba-motion-base) var(--ba-ease-standard), border-color var(--ba-motion-base) ease, background-color var(--ba-motion-base) ease, opacity var(--ba-motion-base) ease;
}
@media (hover:hover) and (pointer:fine) {
  :where(.solution-card,.service-index-card,.teacher-profile-card,.parent-request-card,.parent-quick-action,.teacher-request-card,.teacher-upload-card,.partner-agreement-card,.partner-select-card,.partner-quick-action,a.admin-stat-card,a.admin-card,a.admin-mobile-card):hover { transform: translateY(-4px); box-shadow: var(--ba-interactive-shadow); }
}
:where(.parent-empty-state,.teacher-empty-state,.partner-empty-state,.admin-empty-state,.public-empty-state) { transition: border-color var(--ba-motion-base) ease, background-color var(--ba-motion-base) ease, transform var(--ba-motion-base) var(--ba-ease-standard); }
:where(.form-control,.form-select,input:not([type="checkbox"]):not([type="radio"]),textarea,select) { transition: border-color var(--ba-motion-fast) ease, box-shadow var(--ba-motion-fast) ease, background-color var(--ba-motion-fast) ease, transform var(--ba-motion-fast) ease; }
:where(.form-control,.form-select,input:not([type="checkbox"]):not([type="radio"]),textarea,select):focus { border-color: rgba(23,104,229,.6); box-shadow: var(--ba-focus-ring); }
:where(.form-control,.form-select,input:not([type="checkbox"]):not([type="radio"]),textarea,select):not(:focus):hover { border-color: rgba(23,104,229,.28); }
.invalid-feedback,.form-error,.errorlist,.alert { animation: ba-feedback-in .36s var(--ba-ease-standard) both; }
@keyframes ba-feedback-in { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }
.experience-filter-card { transform-origin: top center; transition: opacity 240ms ease, transform 280ms var(--ba-ease-standard), max-height 320ms var(--ba-ease-standard), margin 280ms ease, padding 280ms ease; }
.experience-filter-card.is-filter-hiding { opacity: 0; transform: translateY(-8px) scale(.985); pointer-events: none; }
.experience-filter-card.is-filter-showing { animation: ba-filter-show .4s var(--ba-ease-emphasized) both; }
@keyframes ba-filter-show { from { opacity:0; transform:translateY(10px) scale(.988); } to { opacity:1; transform:none; } }
:where(.admin-tabs,.parent-filter-bar,.teacher-filter-bar,.nav-tabs) { scroll-behavior: smooth; }
.accordion-item,details { transition: border-color var(--ba-motion-base) ease, box-shadow var(--ba-motion-base) ease, background-color var(--ba-motion-base) ease; }
.accordion-item.is-open,details[open] { box-shadow: 0 14px 34px rgba(6,40,95,.09); }
.accordion-button { transition: background-color var(--ba-motion-base) ease,color var(--ba-motion-base) ease,box-shadow var(--ba-motion-base) ease; }
.accordion-button::after { transition: transform var(--ba-motion-base) var(--ba-ease-standard); }
.collapsing { transition: height .38s var(--ba-ease-standard) !important; }
.dropdown-menu { opacity: 0; transform: translateY(-7px) scale(.985); transform-origin: top center; transition: opacity var(--ba-motion-fast) ease, transform var(--ba-motion-base) var(--ba-ease-standard); }
.dropdown-menu.show { opacity: 1; transform: none; animation: ba-dropdown-in var(--ba-motion-base) var(--ba-ease-emphasized) both; }
@keyframes ba-dropdown-in { from { opacity:0; transform:translateY(-7px) scale(.985); } to { opacity:1; transform:none; } }
.modal.fade .modal-dialog { transform: translateY(18px) scale(.975); transition: transform .34s var(--ba-ease-emphasized); }
.modal.show .modal-dialog { transform: none; }
.modal-backdrop.fade { transition: opacity .3s ease; }
:where(dialog.admin-confirm-dialog,dialog.admin-image-dialog) { opacity:0; transform:translateY(14px) scale(.975); transition:opacity .28s ease,transform .34s var(--ba-ease-emphasized),display .34s allow-discrete,overlay .34s allow-discrete; }
:where(dialog.admin-confirm-dialog,dialog.admin-image-dialog)[open] { opacity:1; transform:none; }
@starting-style { :where(dialog.admin-confirm-dialog,dialog.admin-image-dialog)[open] { opacity:0; transform:translateY(14px) scale(.975); } }
:where(.parent-space__sidebar,.teacher-space__sidebar,.partner-space__sidebar) { transition: box-shadow var(--ba-motion-base) ease,border-color var(--ba-motion-base) ease,transform var(--ba-motion-base) var(--ba-ease-standard); }
:where(.parent-space__nav-link,.teacher-space__nav-link,.partner-space__nav-link) { transition: background-color var(--ba-motion-base) ease,color var(--ba-motion-base) ease,box-shadow var(--ba-motion-base) ease,transform var(--ba-motion-base) var(--ba-ease-standard); }
:where(.parent-space__main,.teacher-space__main,.partner-space__main) { min-width:0; }
:where(.parent-panel,.teacher-panel,.partner-panel,.parent-info-card,.parent-form-card,.parent-detail-card,.teacher-detail-card,.teacher-form-card,.partner-detail-card,.partner-activity-card,.admin-card,.admin-filter-panel) { border-radius:1.35rem; }
:where(.parent-request-card,.parent-session-card,.parent-quick-action,.teacher-request-card,.teacher-session-card,.teacher-profile-card,.teacher-note-card,.teacher-upload-card,.partner-agreement-card,.partner-select-card,.partner-meeting-item,.admin-mobile-card,.admin-session-card) { border-radius:1.1rem; }
.public-flow-page .form-step,.public-flow-page .flow-panel,.public-flow-page .card,.public-flow-page #partner-form { transition: opacity .42s var(--ba-ease-standard),transform .44s var(--ba-ease-emphasized),box-shadow var(--ba-motion-base) ease,border-color var(--ba-motion-base) ease; }
.public-flow-page .form-check { transition:border-color var(--ba-motion-base) ease,background-color var(--ba-motion-base) ease,transform var(--ba-motion-base) var(--ba-ease-standard),box-shadow var(--ba-motion-base) ease; }
.public-flow-page .form-check:has(.form-check-input:checked) { box-shadow:0 10px 24px rgba(20,86,200,.08); }
.public-inner-page .public-section-light,.home-news,.home-testimonials { background-image:radial-gradient(circle at 92% 8%,rgba(23,104,229,.055),transparent 24rem),linear-gradient(180deg,rgba(255,255,255,.96),rgba(246,249,255,.96)); }
.public-inner-page .public-section-warm { background-image:radial-gradient(circle at 8% 12%,rgba(246,168,0,.08),transparent 22rem),linear-gradient(180deg,#fffaf0,#fff5df); }
@media (max-width:767.98px) { :root { --ba-motion-base:260ms; --ba-motion-slow:420ms; } .js .experience-reveal { transform:translate3d(0,12px,0); } }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto;} *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important;} .js .experience-page-root,.js .experience-reveal,.experience-filter-card{opacity:1!important;transform:none!important;} }
