/*!
 * qualified-fallback.css (v2 — alinhado à marca Quorum)
 * Tokens extraídos da homepage:
 *   primário  #6B52D1 (btn-primary, pill 50px, Inter 600)
 *   índigo    #221F54 (títulos niveau-grotesk 700)
 *   texto     #1F1F1F (Inter)
 * Escopo defensivo (prefixo .qfb-, z-index alto, !important pontual).
 */

:root {
  --qfb-purple:        #6B52D1;
  --qfb-purple-hover:  #5942B0;
  --qfb-ink:           #221F54;
  --qfb-text:          #1F1F1F;
  --qfb-lavender:      #CBBEF5;
  --qfb-font-body:     Inter, sans-serif;
  --qfb-font-head:     niveau-grotesk, system-ui, BlinkMacSystemFont, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
}

/* trava o scroll do body quando o modal está aberto */
html.qfb-no-scroll, html.qfb-no-scroll body { overflow: hidden !important; }

/* ------------------------- MODAL ------------------------- */
.qfb-overlay {
  position: fixed; inset: 0; z-index: 2147483000;
  display: flex; align-items: center; justify-content: center;
  background: rgba(34, 31, 84, .55);           /* backdrop índigo da marca */
  padding: 1rem;
}
.qfb-dialog {
  position: relative;
  width: 100%; max-width: 520px; max-height: 90vh; overflow: auto;
  background: #fff; color: var(--qfb-text);
  border-radius: 12px;
  padding: 2rem 2rem 2.25rem;
  box-shadow: 0 12px 40px rgba(34, 31, 84, .28);
  font: 400 1rem/1.55 var(--qfb-font-body);
}
.qfb-title {
  margin: 0 0 1rem;
  font-family: var(--qfb-font-head);
  font-weight: 700; font-size: 1.75rem; line-height: 1.2;
  color: var(--qfb-ink);
}
.qfb-body { min-height: 60px; }
.qfb-fallback-copy { margin: 0 0 1.15rem; font-size: 1.05rem; color: var(--qfb-text); }
.qfb-link { color: var(--qfb-purple); text-decoration: underline; }

/* botão primário no padrão da marca (pill roxo) */
.qfb-btn {
  display: inline-block; margin: .25rem 0 .5rem;
  padding: 12px 28px; border-radius: 50px;
  background: var(--qfb-purple); color: #fff !important;
  text-decoration: none;
  font: 600 16px/1 var(--qfb-font-body);
  border: 1.6px solid var(--qfb-purple);
  transition: background-color .15s ease, border-color .15s ease;
}
.qfb-btn:hover { background: var(--qfb-purple-hover); border-color: var(--qfb-purple-hover); }

.qfb-close {
  position: absolute; top: .75rem; right: .9rem;
  background: transparent; border: 0; cursor: pointer;
  font-size: 1.6rem; line-height: 1; color: var(--qfb-ink); padding: .25rem .4rem;
}
.qfb-close:focus, .qfb-link:focus, .qfb-btn:focus, .qfb-banner-close:focus {
  outline: 2px solid var(--qfb-purple); outline-offset: 2px;
}

/* ------------------------- BANNER ------------------------ */
#qfb-banner {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 2147482000;
  display: flex; align-items: center; justify-content: center; gap: 1rem;
  padding: .85rem 1rem;
  background: var(--qfb-ink); color: #fff;
  font: 400 .95rem/1.45 var(--qfb-font-body);
  box-shadow: 0 -2px 10px rgba(34, 31, 84, .25);
}
#qfb-banner .qfb-banner-msg { margin: 0; }
#qfb-banner .qfb-link { color: var(--qfb-lavender); }
#qfb-banner .qfb-banner-close {
  background: transparent; border: 0; color: #fff;
  font-size: 1.5rem; line-height: 1; cursor: pointer; padding: 0 .25rem;
}

/* responsivo */
@media (max-width: 600px) {
  #qfb-banner { flex-direction: column; text-align: center; gap: .5rem; }
  .qfb-dialog { padding: 1.5rem 1.25rem; }
  .qfb-title { font-size: 1.5rem; }
}

/* respeita prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .qfb-btn, .qfb-overlay, #qfb-banner { transition: none !important; animation: none !important; }
}
