/* ================= 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:50%;
  background:var(--accent-soft);color:var(--accent-deep);border:1px solid var(--border);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-lg);transition:transform .2s,background .2s,color .2s;
}
.chat-toggle:hover{background:var(--accent-deep);color:#fff;transform:translateY(-2px);}
.chat-toggle .icon-chat,.chat-toggle .icon-close{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-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;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.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-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;margin-top:-.4rem;
}
.chat-cta:hover{background:var(--accent-deep);}
.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 (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;
}
.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;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%;}

@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;}
}
