/* ================= CSP UTILITIES (avoid inline style attributes) ================= */
.gotcha{display:none;}
.cross-links{text-align:center;margin-top:2rem;}
.cross-links.tight{margin-top:.8rem;}
.cross-links.wide{margin-top:2.4rem;}
.cross-links.pulled{margin-top:-1.6rem;margin-bottom:2.4rem;}
.footer-icon-link{display:inline-flex;align-items:center;}

/* ================= CERT BADGES (shared: hero + footer) ================= */
.cert-badges{display:flex;gap:1.4rem;list-style:none;margin:0;padding:0;flex-wrap:wrap;}
.cert-badges a{display:flex;align-items:center;gap:.6rem;text-decoration:none;}
.cert-badges img{width:56px;height:56px;border-radius:50%;flex-shrink:0;}
.cert-badges img.square{border-radius:8px;border:1px solid var(--border);object-fit:contain;width:auto;}
.cert-badges span{display:flex;flex-direction:column;font-size:.82rem;font-weight:600;color:var(--ink);line-height:1.35;}
.cert-badges span em{font-style:normal;font-size:.74rem;font-weight:500;color:var(--ink-dim);}
.cert-badges a:hover span{color:var(--accent-deep);}
.hero-badges{margin-top:1.6rem;}
.footer-badges{flex-direction:column;gap:.7rem;margin-top:.2rem;}
.footer-badges img{width:36px;height:36px;}
.footer-badges img.square{width:auto;}
.footer-badges span{font-size:.8rem;color:var(--ink-dim);}
.footer-badges span em{font-size:.72rem;}
.footer-badges a:hover span{color:var(--accent-deep);}

/* ================= NAV DROPDOWN (shared header, partials/nav.html.php) ================= */
.nav-dropdown{position:relative;}
.nav-dropdown-details{position:relative;}
.nav-dropdown-details summary{cursor:pointer;list-style:none;font-size:.9rem;color:var(--ink-muted);font-weight:500;transition:color .2s;display:flex;align-items:center;gap:.35rem;}
.nav-dropdown-details summary::-webkit-details-marker{display:none;}
.nav-dropdown-details summary:hover{color:var(--ink);}
.nav-dropdown-details summary::after{content:'▾';font-size:.65rem;color:var(--ink-dim);}
.nav-dropdown-details[open] summary::after{content:'▴';}
.nav-dropdown-menu{
  list-style:none;margin:.8rem 0 0;padding:.5rem;position:absolute;top:100%;left:50%;
  transform:translateX(-50%);background:var(--surface);border:1px solid var(--border);
  border-radius:12px;box-shadow:var(--shadow-lg);min-width:220px;z-index:50;
}
.nav-dropdown-menu li{padding:0;}
.nav-dropdown-menu a{display:block;padding:.6rem .8rem;border-radius:8px;font-size:.88rem;color:var(--ink-muted);}
.nav-dropdown-menu a:hover{background:var(--surface-alt);color:var(--ink);}
@media (max-width:860px){
  .nav-dropdown-menu{
    position:static;transform:none;box-shadow:none;border:none;background:none;
    padding:.4rem 0 0 .6rem;min-width:0;
  }
}

.calendly-toast{
  position:fixed;left:50%;bottom:1.6rem;transform:translateX(-50%) translateY(20px);
  display:flex;align-items:center;gap:.7rem;background:var(--ink);color:#fff;
  padding:1rem 1.4rem;border-radius:12px;box-shadow:var(--shadow-lg);
  font-size:.92rem;font-weight:600;z-index:1000;opacity:0;pointer-events:none;
  transition:opacity .3s, transform .3s;
}
.calendly-toast[hidden]{display:none;}
.calendly-toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto;}
.calendly-toast svg{color:var(--accent);flex-shrink:0;}

/* ================= CHAT WIDGET ================= */
.chat-toggle{
  position:fixed;bottom:1.6rem;right:1.6rem;z-index:998;
  width:58px;height:58px;border-radius:29px;padding:0;
  background:var(--accent-soft);color:var(--accent-deep);border:1px solid var(--border);cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:.55rem;
  box-shadow:var(--shadow-lg);overflow:hidden;white-space:nowrap;
  transition:width .32s ease,padding .32s ease,transform .2s,background .2s,color .2s,opacity .2s;
}
.chat-toggle:hover{background:var(--accent-deep);color:#fff;transform:translateY(-2px);}
.chat-toggle .icon-chat,.chat-toggle .icon-close{flex-shrink:0;transition:opacity .15s,transform .15s;}
.chat-toggle .icon-close{position:absolute;opacity:0;transform:scale(.6);}
.chat-toggle.open .icon-chat{opacity:0;transform:scale(.6);}
.chat-toggle.open .icon-close{opacity:1;transform:scale(1);}
.chat-toggle-label{
  max-width:0;opacity:0;font-size:.85rem;font-weight:600;
  transition:max-width .32s ease,opacity .2s ease;
}
.chat-toggle:hover:not(.open){width:auto;padding:0 1rem 0 1.2rem;}
.chat-toggle:hover:not(.open) .chat-toggle-label{max-width:140px;opacity:1;}
@media (prefers-reduced-motion: reduce){.chat-toggle,.chat-toggle-label,.chat-toggle .icon-chat,.chat-toggle .icon-close{transition:none;}}

.chat-panel{
  position:fixed;bottom:5.6rem;right:1.6rem;z-index:999;
  width:380px;max-width:calc(100vw - 2.4rem);height:540px;max-height:calc(100vh - 8rem);
  background:var(--surface);border:1px solid var(--border);border-radius:16px;
  box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;
  opacity:0;transform:translateY(12px) scale(.98);pointer-events:none;
  transition:opacity .2s,transform .2s;
}
.chat-panel.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}
.chat-head{
  display:flex;align-items:center;gap:.7rem;padding:1.1rem 1.3rem;
  border-bottom:1px solid var(--border);background:var(--surface-alt);flex-shrink:0;
}
.chat-head .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0;box-shadow:0 0 0 3px var(--accent-soft);}
.chat-head strong{font-size:.92rem;color:var(--ink);}
.chat-head span{display:block;font-size:.76rem;color:var(--ink-dim);}
.chat-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:1.2rem;display:flex;flex-direction:column;gap:.9rem;}
.chat-msg{max-width:82%;padding:.7rem 1rem;border-radius:12px;font-size:.88rem;line-height:1.55;white-space:pre-wrap;}
.chat-msg.bot{align-self:flex-start;background:var(--surface-alt);color:var(--ink-muted);border-bottom-left-radius:3px;}
.chat-msg.user{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:3px;}
.chat-msg.user.grouped{margin-top:-.55rem;border-top-right-radius:4px;}
.chat-msg.typing{display:flex;gap:.3rem;align-items:center;padding:.9rem 1rem;}
.chat-msg.typing span{width:6px;height:6px;border-radius:50%;background:var(--ink-dim);animation:chatTyping 1.2s infinite ease-in-out;}
.chat-msg.typing span:nth-child(2){animation-delay:.15s;}
.chat-msg.typing span:nth-child(3){animation-delay:.3s;}
@keyframes chatTyping{0%,60%,100%{opacity:.3;transform:translateY(0);}30%{opacity:1;transform:translateY(-3px);}}
.chat-msg-wrap{align-self:flex-start;max-width:82%;display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;}
.chat-msg-wrap .chat-msg{max-width:100%;}
.chat-msg-wrap.grouped{margin-top:-.55rem;}
.chat-msg-wrap.grouped .chat-msg.bot{border-top-left-radius:4px;}
.chat-cta{
  align-self:flex-start;display:inline-flex;align-items:center;gap:.5rem;
  background:var(--ink);color:#fff;font-size:.84rem;font-weight:600;
  padding:.6rem 1.1rem;border-radius:8px;cursor:pointer;transition:background .2s;
  text-decoration:none;
}
.chat-cta:hover{background:var(--accent-deep);}
.chat-actions{display:flex;opacity:0;transition:opacity .15s;}
.chat-msg-wrap:hover .chat-actions,.chat-actions:focus-within{opacity:1;}
.chat-copy{
  display:flex;align-items:center;gap:.35rem;padding:.25rem .5rem;margin-left:-.5rem;border-radius:6px;
  border:0;background:transparent;color:var(--ink-dim);font-size:.74rem;cursor:pointer;
  transition:background .15s,color .15s;
}
.chat-copy:hover{background:var(--surface-alt);color:var(--ink);}
.chat-copy .icon-check{display:none;color:var(--accent-deep);}
.chat-copy.copied .icon-copy{display:none;}
.chat-copy.copied .icon-check{display:block;}
.chat-copy-label{display:none;}
.chat-copy.copied .chat-copy-label{display:inline;}
.chat-form{display:flex;gap:.6rem;padding:1rem;border-top:1px solid var(--border);flex-shrink:0;}
.chat-input{
  flex:1;font:inherit;font-size:.88rem;padding:.7rem .9rem;border-radius:8px;
  border:1px solid var(--border);background:var(--bg);color:var(--ink);resize:none;max-height:120px;
}
.chat-input:focus-visible{outline:2px solid var(--accent-deep);outline-offset:1px;}
.chat-send{
  width:40px;height:40px;border-radius:8px;background:var(--ink);color:#fff;border:0;
  cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:background .2s;
}
.chat-send:hover{background:var(--accent-deep);}
.chat-send:disabled{opacity:.5;cursor:not-allowed;}

@media (max-width:480px){
  .chat-panel{right:.8rem;left:.8rem;width:auto;bottom:5.2rem;height:calc(100vh - 7.2rem);}
  .chat-toggle{right:1rem;bottom:1rem;}
}
@media (max-width:900px){
  .chat-toggle.widget-hidden:not(.open),.quiz-toggle.widget-hidden:not(.open),.demo-toggle.widget-hidden:not(.open){
    opacity:0;pointer-events:none;transform:translateY(8px);
  }
}
@media (prefers-reduced-motion: reduce){.chat-msg.typing span{animation:none;}}

/* ================= QUIZ WIDGET ================= */
.quiz-toggle{
  position:fixed;bottom:1.6rem;left:1.6rem;z-index:998;
  width:58px;height:58px;border-radius:29px;padding:0;
  background:var(--accent-soft);color:var(--accent-deep);border:1px solid var(--border);cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:.55rem;
  box-shadow:var(--shadow-lg);overflow:hidden;white-space:nowrap;
  transition:width .32s ease,padding .32s ease,transform .2s,background .2s,color .2s,opacity .2s;
}
.quiz-toggle:hover{background:var(--accent-deep);color:#fff;transform:translateY(-2px);}
.quiz-toggle .icon-quiz,.quiz-toggle .icon-close{flex-shrink:0;transition:opacity .15s,transform .15s;}
.quiz-toggle .icon-close{position:absolute;opacity:0;transform:scale(.6);}
.quiz-toggle.open .icon-quiz{opacity:0;transform:scale(.6);}
.quiz-toggle.open .icon-close{opacity:1;transform:scale(1);}
.quiz-toggle-label{
  max-width:0;opacity:0;font-size:.85rem;font-weight:600;
  transition:max-width .32s ease,opacity .2s ease;
}
.quiz-toggle:hover:not(.open),.quiz-toggle.expanded{width:auto;padding:0 1.2rem 0 1rem;}
.quiz-toggle:hover:not(.open) .quiz-toggle-label,.quiz-toggle.expanded .quiz-toggle-label{max-width:140px;opacity:1;}
@media (prefers-reduced-motion: reduce){.quiz-toggle,.quiz-toggle-label{transition:none;}}

.quiz-panel{
  position:fixed;bottom:5.6rem;left:1.6rem;z-index:999;
  width:380px;max-width:calc(100vw - 2.4rem);height:540px;max-height:calc(100vh - 8rem);
  background:var(--surface);border:1px solid var(--border);border-radius:16px;
  box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;
  opacity:0;transform:translateY(12px) scale(.98);pointer-events:none;
  transition:opacity .2s,transform .2s;
}
.quiz-panel.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}
.quiz-head{
  padding:1.1rem 1.3rem;border-bottom:1px solid var(--border);
  background:var(--surface-alt);flex-shrink:0;
}
.quiz-head strong{display:block;font-size:.92rem;color:var(--ink);}
.quiz-head span{display:block;font-size:.76rem;color:var(--ink-dim);margin-top:.1rem;}
.quiz-progress{height:3px;background:var(--border);flex-shrink:0;}
.quiz-progress-bar{height:100%;width:0%;background:var(--accent);transition:width .3s;}
.quiz-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:1.3rem;display:flex;flex-direction:column;gap:.9rem;}
.quiz-step{font-family:'IBM Plex Mono',monospace;font-size:.74rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-deep);}
.quiz-question{font-size:1rem;line-height:1.4;color:var(--ink);margin:0;}
.quiz-options{display:flex;flex-direction:column;gap:.6rem;margin-top:.2rem;}
.quiz-option{
  text-align:left;font:inherit;font-size:.88rem;color:var(--ink);
  background:var(--surface-alt);border:1px solid var(--border);border-radius:10px;
  padding:.75rem .95rem;cursor:pointer;transition:border-color .15s,background .15s;
}
.quiz-option:hover{border-color:var(--accent);background:var(--accent-soft);}
.quiz-option:focus-visible{outline:2px solid var(--accent-deep);outline-offset:1px;}
.quiz-result{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;}
.quiz-result .quiz-score{font-family:'IBM Plex Mono',monospace;font-size:2rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;}
.quiz-result .quiz-score .u{font-size:1rem;font-weight:500;color:var(--ink-dim);}
.quiz-result h3{font-size:1.02rem;color:var(--ink);margin:.1rem 0 0;}
.quiz-result p{font-size:.88rem;line-height:1.6;color:var(--ink-muted);margin:0;}
.quiz-cta{
  align-self:flex-start;display:inline-flex;align-items:center;gap:.5rem;
  background:var(--ink);color:#fff;font-size:.84rem;font-weight:600;
  padding:.7rem 1.2rem;border-radius:8px;cursor:pointer;transition:background .2s;
  text-decoration:none;margin-top:.3rem;
}
.quiz-cta:hover{background:var(--accent-deep);}
.quiz-restart{
  align-self:flex-start;background:none;border:0;font:inherit;font-size:.82rem;
  color:var(--ink-dim);cursor:pointer;text-decoration:underline;padding:0;
}
.quiz-restart:hover{color:var(--accent-deep);}
.quiz-lead{margin-top:.2rem;padding-top:1rem;border-top:1px solid var(--border);width:100%;}
.quiz-lead-label{font-size:.82rem;color:var(--ink-dim);margin:0 0 .5rem;line-height:1.5;}
.quiz-lead-form{display:flex;flex-direction:column;gap:.6rem;}
.quiz-lead-row{display:flex;gap:.5rem;}
.quiz-lead-consent{display:flex;align-items:flex-start;gap:.5rem;font-size:.74rem;color:var(--ink-dim);line-height:1.4;cursor:pointer;}
.quiz-lead-consent input{margin-top:.15rem;flex-shrink:0;accent-color:var(--accent-deep);}
.quiz-lead-consent a{color:var(--accent-deep);text-decoration:underline;}
.quiz-lead-input{
  flex:1;min-width:0;font:inherit;font-size:.85rem;padding:.55rem .7rem;border-radius:7px;
  border:1px solid var(--border);background:var(--bg);color:var(--ink);
}
.quiz-lead-input:focus-visible{outline:2px solid var(--accent-deep);outline-offset:1px;}
.quiz-lead-btn{
  flex-shrink:0;font-size:.82rem;font-weight:600;padding:.55rem .9rem;border-radius:7px;
  background:var(--ink);color:#fff;border:0;cursor:pointer;transition:background .2s;
}
.quiz-lead-btn:hover{background:var(--accent-deep);}
.quiz-lead-btn:disabled{opacity:.5;cursor:not-allowed;}
.quiz-lead-done{font-size:.85rem;color:var(--accent-deep);margin:.2rem 0 0;padding-top:1rem;border-top:1px solid var(--border);width:100%;}

/* ================= DEMO WIDGET (démo restreinte, extraction de documents — flottant, empilé sur le quiz) ================= */
.demo-toggle{
  position:fixed;bottom:6rem;left:1.6rem;z-index:998;
  width:58px;height:58px;border-radius:29px;padding:0;
  background:var(--accent-soft);color:var(--accent-deep);border:1px solid var(--border);cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:.55rem;
  box-shadow:var(--shadow-lg);overflow:hidden;white-space:nowrap;
  transition:width .32s ease,padding .32s ease,transform .2s,background .2s,color .2s,opacity .2s;
}
.demo-toggle:hover{background:var(--accent-deep);color:#fff;transform:translateY(-2px);}
.demo-toggle .icon-demo,.demo-toggle .icon-close{flex-shrink:0;transition:opacity .15s,transform .15s;}
.demo-toggle .icon-close{position:absolute;opacity:0;transform:scale(.6);}
.demo-toggle.open .icon-demo{opacity:0;transform:scale(.6);}
.demo-toggle.open .icon-close{opacity:1;transform:scale(1);}
.demo-toggle-label{
  max-width:0;opacity:0;font-size:.85rem;font-weight:600;
  transition:max-width .32s ease,opacity .2s ease;
}
.demo-toggle:hover:not(.open){width:auto;padding:0 1.2rem 0 1rem;}
.demo-toggle:hover:not(.open) .demo-toggle-label{max-width:140px;opacity:1;}
@media (prefers-reduced-motion: reduce){.demo-toggle,.demo-toggle-label,.demo-toggle .icon-demo,.demo-toggle .icon-close{transition:none;}}

.demo-panel{
  position:fixed;bottom:10.4rem;left:1.6rem;z-index:999;
  width:420px;max-width:calc(100vw - 2.4rem);max-height:calc(100vh - 8rem);
  background:var(--surface);border:1px solid var(--border);border-radius:16px;
  box-shadow:var(--shadow-lg);padding:1.5rem;display:flex;flex-direction:column;gap:1rem;
  overflow-y:auto;overscroll-behavior:contain;
  opacity:0;transform:translateY(12px) scale(.98);pointer-events:none;
  transition:opacity .2s,transform .2s;
}
.demo-panel.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}
.demo-panel-head strong{display:block;font-size:.92rem;color:var(--ink);}
.demo-panel-head span{display:block;font-size:.78rem;color:var(--ink-dim);margin-top:.15rem;}
.demo-picker{display:flex;flex-direction:column;gap:1rem;}
.demo-picker.hidden{display:none;}
.demo-samples{display:flex;flex-direction:column;gap:.6rem;}
.demo-sample{
  text-align:left;font:inherit;font-size:.88rem;color:var(--ink);
  background:var(--surface-alt);border:1px solid var(--border);border-radius:10px;
  padding:.75rem .95rem;cursor:pointer;transition:border-color .15s,background .15s;
  display:flex;align-items:center;gap:.6rem;
}
.demo-sample:hover{border-color:var(--accent);background:var(--accent-soft);}
.demo-sample.selected{border-color:var(--accent-deep);background:var(--accent-soft);}
.demo-sample svg{color:var(--accent-deep);flex-shrink:0;}
.demo-run{width:100%;justify-content:center;}

.demo-run-area{display:none;grid-template-columns:110px 1fr;gap:1.1rem;align-items:start;}
.demo-run-area.active{display:grid;}
.demo-doc-thumb{
  display:block;flex-shrink:0;border-radius:8px;overflow:hidden;
  border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:box-shadow .2s,transform .2s;
}
.demo-doc-thumb:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);}
.demo-doc-thumb img{display:block;width:100%;aspect-ratio:424/600;object-fit:cover;background:var(--surface-alt);}
.demo-output{display:flex;flex-direction:column;gap:.7rem;min-width:0;}

.demo-status{display:none;flex-direction:column;gap:.75rem;font-size:.85rem;color:var(--ink-dim);}
.demo-status.active{display:flex;}
.demo-status-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;}
.demo-status .demo-timer{font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;color:var(--ink);font-weight:700;}
.demo-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem;}
.demo-steps li{
  position:relative;padding-left:1.35rem;font-size:.84rem;color:var(--ink-dim);opacity:.5;
  transition:opacity .25s,color .25s;
}
.demo-steps li::before{
  content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:8px;height:8px;border-radius:50%;background:var(--border);transition:background .25s;
}
.demo-steps li.done{opacity:1;color:var(--ink);}
.demo-steps li.done::before{background:var(--accent-deep);}
.demo-steps li.active{opacity:1;color:var(--ink);font-weight:600;}
.demo-steps li.active::before{background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);animation:step-pulse 1.1s ease-in-out infinite;}
@keyframes step-pulse{0%,100%{transform:translateY(-50%) scale(1);}50%{transform:translateY(-50%) scale(1.35);}}
@media (prefers-reduced-motion: reduce){.demo-steps li.active::before{animation:none;}}
.demo-result{display:none;flex-direction:column;gap:.7rem;}
.demo-result.active{display:flex;}
.demo-fields{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;}
.demo-fields li{
  display:flex;justify-content:space-between;gap:1rem;font-size:.86rem;padding:.5rem 0;
  border-bottom:1px solid var(--border);opacity:0;animation:demo-field-in .4s ease forwards;
}
.demo-fields li:last-child{border-bottom:none;}
@keyframes demo-field-in{from{opacity:0;transform:translateY(5px);}to{opacity:1;transform:translateY(0);}}
@media (prefers-reduced-motion: reduce){.demo-fields li{animation:none;opacity:1;}}
.demo-fields .lbl{color:var(--ink-dim);}
.demo-fields .val{color:var(--ink);font-weight:600;text-align:right;}
.demo-match{align-self:flex-start;font-size:.78rem;font-weight:600;color:var(--accent-deep);background:var(--accent-soft);padding:.4rem .8rem;border-radius:8px;}
.demo-error-wrap{display:none;flex-direction:column;gap:.6rem;align-items:flex-start;}
.demo-error-wrap.active{display:flex;}
.demo-error{font-size:.85rem;color:#c0392b;margin:0;}
.demo-reset{align-self:flex-start;background:none;border:0;font:inherit;font-size:.82rem;color:var(--ink-dim);cursor:pointer;text-decoration:underline;padding:0;}
.demo-reset:hover{color:var(--accent-deep);}

@media (max-width:480px){
  .quiz-panel{left:.8rem;right:.8rem;width:auto;bottom:5.2rem;height:calc(100vh - 7.2rem);}
  .quiz-toggle{left:1rem;bottom:1rem;}
  .demo-panel{left:.8rem;right:.8rem;width:auto;bottom:9.4rem;max-height:calc(100vh - 11rem);}
  .demo-toggle{left:1rem;bottom:5.2rem;}
  .demo-run-area.active{grid-template-columns:1fr;}
  .demo-doc-thumb{width:150px;margin:0 auto;}
}
