:root { --blue:#0D52F5; --coral:#FF5E4B; --ink:#12284A; --muted:#4A5A75; --line:#ECEEF3; --paper:#FAFAF8; --comelan-bleu:#2856E8; --comelan-corail:#F26757; --comelan-marine:#142743; --comelan-fond:#F0F4FF; --comelan-blanc:#FFFFFF; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); font-family: Manrope, sans-serif; color: var(--ink); -webkit-font-smoothing: antialiased; }
a { color: var(--blue); text-decoration: none; }
a:hover { color: var(--coral); }
button, input, select, textarea { font-family: inherit; }
img { max-width: 100%; }
.dsk-only { display: flex; }
.dsk-inline { display: inline-block; }
.mob-only { display: none; }
.sticky-cta { display: none; }
@media (max-width: 759px) {
  .dsk-only, .dsk-inline { display: none !important; }
  .mob-only { display: flex !important; }
  body:not(.no-sticky) .sticky-cta { display: flex; }
  .legal-grid { grid-template-columns: 1fr !important; }
  .legal-nav { position: static !important; flex-direction: row !important; flex-wrap: wrap; }
  .app-shell { grid-template-columns: minmax(0, 1fr) !important; }
  .app-aside { display: none !important; }
  .app-main { padding: 18px 14px 112px !important; }
  .admin-shell { grid-template-columns: minmax(0, 1fr) !important; }
}
@media (min-width: 760px) {
  .app-tabbar, .app-sheet { display: none !important; }
}
@media (max-width: 1099px) {
  .wide-only { display: none !important; }
}
#site-menu { display: none; }
#site-menu.is-open { display: flex; }
.hv { transition: transform .2s, box-shadow .2s, background .2s, border-color .2s, gap .2s; }
@keyframes cmDot { 0%,80%,100% { transform: translateY(0); opacity: .35 } 40% { transform: translateY(-6px); opacity: 1 } }
@keyframes cmBlink { 0%,50% { opacity: 1 } 51%,100% { opacity: 0 } }
@keyframes cmPop { 0% { transform: scale(0) rotate(-20deg); opacity: 0 } 100% { transform: scale(1) rotate(0); opacity: 1 } }
@keyframes cmSpin { to { transform: rotate(360deg) } }
@keyframes cmFloat { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-14px) } }
@keyframes cmConf { 0% { transform: translateY(0) rotate(0); opacity: 1 } 100% { transform: translateY(260px) rotate(540deg); opacity: 0 } }
@keyframes cmIn { 0% { opacity: 0; transform: translateY(16px) scale(.98) } 100% { opacity: 1; transform: none } }
@keyframes cmPulse { 0% { box-shadow: 0 0 0 0 rgba(45,190,126,.6) } 100% { box-shadow: 0 0 0 10px rgba(45,190,126,0) } }
.spin { animation: cmSpin 1s linear infinite; }
.cookie-banner { opacity: 0; transform: translateY(30px); pointer-events: none; }
.cookie-banner.is-in { opacity: 1; transform: none; pointer-events: auto; }
.app-toast, .site-toast { position: fixed; left: 50%; bottom: 28px; z-index: 100; transform: translateX(-50%) translateY(20px); opacity: 0; transition: opacity .3s, transform .4s cubic-bezier(.2,1.3,.4,1); background: #12284A; color: #fff; border-radius: 14px; padding: 12px 18px; display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 14px; box-shadow: 0 16px 40px rgba(0,0,0,.25); pointer-events: none; }
.app-toast.is-in, .site-toast.is-in { opacity: 1; transform: translateX(-50%) translateY(0); }
@media (max-width: 759px) {
  .app-toast { bottom: 92px; }
  body:not(.no-sticky) .cookie-banner { bottom: 88px !important; }
}
