/* ==========================================================================
   Bloom Capital — Formulário flutuante de qualificação
   Usa os tokens de style.css (navy, coral, Cormorant, DM Sans).
   Nenhuma cor nova: tudo herda do design system do site.
   ========================================================================== */

/* ---------- Overlay ---------- */
.bf-overlay{
  position:fixed; inset:0; z-index:9999;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(12px,3vw,32px);
  background:rgba(3,15,27,.72);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  opacity:0; visibility:hidden;
  transition:opacity .34s var(--ease), visibility .34s var(--ease);
  overflow-y:auto;
}
.bf-overlay.is-open{opacity:1; visibility:visible}
body.bf-locked{overflow:hidden}

/* ---------- Cartão ---------- */
.bf-card{
  position:relative;
  width:100%; max-width:660px;
  background:var(--paper);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-dark);
  overflow:hidden;
  transform:translateY(18px) scale(.985);
  opacity:0;
  transition:transform .38s var(--ease), opacity .38s var(--ease);
  margin:auto;
}
.bf-overlay.is-open .bf-card{transform:none; opacity:1}

/* ---------- Cabeçalho ---------- */
.bf-head{
  position:relative;
  background:var(--navy-900);
  color:var(--on-dark);
  padding:1.5rem clamp(1.3rem,4vw,2.2rem) 1.2rem;
  overflow:hidden;
}
.bf-head::after{ /* sunburst da marca, discreto */
  content:""; position:absolute; right:-64px; top:-64px;
  width:210px; height:210px; border-radius:50%;
  background:radial-gradient(circle,var(--coral) 0%,transparent 68%);
  opacity:.16; pointer-events:none;
}
.bf-head-top{display:flex; align-items:center; justify-content:space-between; gap:1rem}
.bf-eyebrow{
  font-family:var(--sans); font-size:.7rem; font-weight:700;
  letter-spacing:.13em; text-transform:uppercase;
  color:var(--coral-300); margin:0;
}
.bf-title{
  font-family:var(--serif); font-weight:600;
  font-size:clamp(1.28rem,3.4vw,1.68rem); line-height:1.24;
  margin:.5rem 0 0; color:#fff;
}
.bf-sub{
  font-family:var(--sans); font-size:.9rem; line-height:1.55;
  color:var(--on-dark-70); margin:.55rem 0 0; max-width:52ch;
}

/* Fechar */
.bf-close{
  flex:0 0 auto;
  width:36px; height:36px; display:grid; place-items:center;
  background:rgba(255,255,255,.09); border:0; border-radius:50%;
  color:#fff; cursor:pointer;
  transition:background .2s var(--ease), transform .2s var(--ease);
}
.bf-close:hover{background:rgba(255,255,255,.18); transform:rotate(90deg)}
.bf-close svg{width:17px; height:17px; stroke:currentColor; stroke-width:2; fill:none}

/* ---------- Barra de progresso ---------- */
.bf-progress{height:3px; background:rgba(255,255,255,.13); position:relative; margin-top:1.15rem}
.bf-progress-bar{
  position:absolute; inset:0 auto 0 0; width:0;
  background:linear-gradient(90deg,var(--coral),var(--coral-300));
  transition:width .42s var(--ease);
}
.bf-steps{
  display:flex; justify-content:space-between;
  font-family:var(--sans); font-size:.7rem; letter-spacing:.06em;
  color:var(--on-dark-55); margin-top:.5rem;
}

/* ---------- Corpo ---------- */
.bf-body{padding:clamp(1.3rem,4vw,2rem) clamp(1.3rem,4vw,2.2rem) clamp(1.4rem,4vw,2rem)}

.bf-step{display:none; animation:bfIn .34s var(--ease)}
.bf-step.is-active{display:block}
@keyframes bfIn{from{opacity:0; transform:translateY(10px)} to{opacity:1; transform:none}}

.bf-q{
  font-family:var(--serif); font-weight:600;
  font-size:clamp(1.14rem,2.9vw,1.4rem); line-height:1.3;
  color:var(--ink); margin:0 0 .45rem;
}
.bf-help{
  font-family:var(--sans); font-size:.85rem; line-height:1.55;
  color:var(--ink-55); margin:0 0 1.15rem;
}

/* ---------- Opções ---------- */
.bf-opts{display:grid; gap:.55rem; margin:0; padding:0; list-style:none}

.bf-opt{
  display:flex; align-items:flex-start; gap:.85rem;
  width:100%; text-align:left;
  padding:.95rem 1.05rem;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius);
  font-family:var(--sans); font-size:.95rem; color:var(--ink);
  cursor:pointer;
  transition:border-color .2s var(--ease), background .2s var(--ease),
             box-shadow .2s var(--ease), transform .12s var(--ease);
}
.bf-opt:hover{border-color:var(--coral); background:#FFF9F8; box-shadow:var(--shadow-sm)}
.bf-opt:active{transform:translateY(1px)}
.bf-opt.is-sel{border-color:var(--coral); background:#FFF4F3; box-shadow:0 0 0 1px var(--coral) inset}

.bf-opt-ico{
  flex:0 0 auto; width:34px; height:34px;
  display:grid; place-items:center; border-radius:50%;
  background:var(--mist); color:var(--navy-700);
  transition:background .2s var(--ease), color .2s var(--ease);
}
.bf-opt:hover .bf-opt-ico,
.bf-opt.is-sel .bf-opt-ico{background:var(--coral); color:#fff}
.bf-opt-ico svg{width:17px; height:17px; stroke:currentColor; stroke-width:1.7; fill:none;
  stroke-linecap:round; stroke-linejoin:round}

.bf-opt-txt{flex:1; min-width:0}
.bf-opt-r{display:block; font-weight:500; line-height:1.4}
.bf-opt-n{display:block; font-size:.8rem; color:var(--ink-55); margin-top:.16rem; line-height:1.4}

/* Marcador de múltipla escolha */
.bf-opt-check{
  flex:0 0 auto; width:20px; height:20px; margin-top:.16rem;
  border:1.5px solid var(--line); border-radius:3px;
  display:grid; place-items:center;
  transition:border-color .2s var(--ease), background .2s var(--ease);
}
.bf-opt.is-sel .bf-opt-check{background:var(--coral); border-color:var(--coral)}
.bf-opt-check svg{width:12px; height:12px; stroke:#fff; stroke-width:2.6; fill:none; opacity:0;
  stroke-linecap:round; stroke-linejoin:round}
.bf-opt.is-sel .bf-opt-check svg{opacity:1}

/* ---------- Alerta contextual ---------- */
.bf-alert{
  display:flex; gap:.7rem; align-items:flex-start;
  margin-top:1rem; padding:.85rem 1rem;
  background:var(--mist); border-left:3px solid var(--coral);
  border-radius:0 var(--radius) var(--radius) 0;
  font-family:var(--sans); font-size:.85rem; line-height:1.55; color:var(--ink-70);
  animation:bfIn .3s var(--ease);
}
.bf-alert svg{flex:0 0 auto; width:17px; height:17px; margin-top:.1rem;
  stroke:var(--coral); stroke-width:1.9; fill:none}

/* ---------- Campos de contato ---------- */
.bf-fields{display:grid; gap:.9rem; margin-top:.2rem}
.bf-field label{
  display:block; font-family:var(--sans); font-size:.78rem; font-weight:600;
  letter-spacing:.05em; text-transform:uppercase;
  color:var(--ink-70); margin-bottom:.34rem;
}
.bf-field input{
  width:100%; padding:.82rem .95rem;
  font-family:var(--sans); font-size:.95rem; color:var(--ink);
  background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius);
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.bf-field input::placeholder{color:#9AAABA}
.bf-field input:focus{
  outline:none; border-color:var(--coral);
  box-shadow:0 0 0 3px rgba(236,68,57,.13);
}
.bf-field input[aria-invalid="true"]{border-color:var(--coral)}
.bf-err{
  display:none; font-family:var(--sans); font-size:.78rem;
  color:var(--coral-600); margin-top:.28rem;
}
.bf-err.is-on{display:block}

/* Honeypot */
.bf-hp{position:absolute!important; left:-9999px!important; opacity:0!important;
  height:0!important; width:0!important; pointer-events:none}

/* ---------- Rodapé / ações ---------- */
.bf-foot{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  margin-top:1.35rem; padding-top:1.15rem; border-top:1px solid var(--line);
}
.bf-back{
  display:inline-flex; align-items:center; gap:.4rem;
  background:none; border:0; padding:.4rem 0;
  font-family:var(--sans); font-size:.87rem; color:var(--ink-55);
  cursor:pointer; transition:color .2s var(--ease);
}
.bf-back:hover{color:var(--coral)}
.bf-back svg{width:15px; height:15px; stroke:currentColor; stroke-width:2; fill:none}
.bf-back[hidden]{visibility:hidden; display:inline-flex}

.bf-next{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.82rem 1.6rem;
  background:var(--coral); color:#fff; border:0;
  border-radius:var(--radius);
  font-family:var(--sans); font-size:.93rem; font-weight:700;
  letter-spacing:.02em; cursor:pointer;
  transition:background .2s var(--ease), transform .12s var(--ease), box-shadow .2s var(--ease);
}
.bf-next:hover:not(:disabled){background:var(--coral-600); box-shadow:0 6px 18px rgba(236,68,57,.28)}
.bf-next:active:not(:disabled){transform:translateY(1px)}
.bf-next:disabled{opacity:.45; cursor:not-allowed}
.bf-next svg{width:16px; height:16px; stroke:currentColor; stroke-width:2.2; fill:none}

.bf-priv{
  font-family:var(--sans); font-size:.76rem; line-height:1.5;
  color:var(--ink-55); margin:.9rem 0 0; text-align:center;
}

/* ---------- Estado de envio ---------- */
.bf-sending{display:none; padding:2.6rem 1rem; text-align:center}
.bf-sending.is-on{display:block}
.bf-spin{
  width:38px; height:38px; margin:0 auto 1.1rem;
  border:2.5px solid var(--mist-2); border-top-color:var(--coral);
  border-radius:50%; animation:bfSpin .8s linear infinite;
}
@keyframes bfSpin{to{transform:rotate(360deg)}}

/* ---------- Sucesso ---------- */
.bf-done{display:none; padding:2.2rem 1rem 1.4rem; text-align:center}
.bf-done.is-on{display:block; animation:bfIn .4s var(--ease)}
.bf-done-ico{
  width:64px; height:64px; margin:0 auto 1.15rem;
  display:grid; place-items:center; border-radius:50%;
  background:rgba(14,122,75,.1); color:#0E7A4B;
}
.bf-done-ico svg{width:30px; height:30px; stroke:currentColor; stroke-width:2.4; fill:none;
  stroke-linecap:round; stroke-linejoin:round}
.bf-done h3{
  font-family:var(--serif); font-weight:600;
  font-size:clamp(1.2rem,3vw,1.5rem); color:var(--ink); margin:0 0 .55rem;
}
.bf-done p{font-family:var(--sans); font-size:.93rem; line-height:1.6;
  color:var(--ink-70); margin:0 auto; max-width:42ch}
.bf-done-wa{
  display:inline-flex; align-items:center; gap:.55rem;
  margin-top:1.4rem; padding:.85rem 1.7rem;
  background:#25D366; color:#fff; text-decoration:none;
  border-radius:var(--radius);
  font-family:var(--sans); font-size:.95rem; font-weight:700;
  transition:filter .2s var(--ease), transform .12s var(--ease);
}
.bf-done-wa:hover{filter:brightness(.94)}
.bf-done-wa:active{transform:translateY(1px)}
.bf-done-wa svg{width:19px; height:19px; fill:currentColor}
.bf-count{font-family:var(--sans); font-size:.8rem; color:var(--ink-55); margin-top:.85rem}

/* ---------- Mobile ---------- */
@media (max-width:560px){
  .bf-overlay{padding:0; align-items:flex-end}
  .bf-card{max-width:none; border-radius:var(--radius-lg) var(--radius-lg) 0 0;
    max-height:96vh; display:flex; flex-direction:column}
  .bf-body{overflow-y:auto; -webkit-overflow-scrolling:touch}
  .bf-opt{padding:.85rem .9rem}
  .bf-foot{flex-direction:row}
  .bf-next{flex:1; justify-content:center}
}

/* ---------- Acessibilidade ---------- */
@media (prefers-reduced-motion:reduce){
  .bf-overlay,.bf-card,.bf-step,.bf-progress-bar,.bf-opt,.bf-next{
    transition:none!important; animation:none!important}
}
.bf-opt:focus-visible,.bf-next:focus-visible,.bf-back:focus-visible,.bf-close:focus-visible{
  outline:2px solid var(--coral); outline-offset:2px}

/* ==========================================================================
   Aviso de cookies (LGPD) — mesmos tokens do site
   ========================================================================== */
.bc-cookie{
  position:fixed; left:0; right:0; bottom:0; z-index:9998;
  padding:clamp(12px,2.5vw,20px);
  transform:translateY(120%); opacity:0;
  transition:transform .38s var(--ease), opacity .38s var(--ease);
  pointer-events:none;
}
.bc-cookie.is-on{transform:none; opacity:1; pointer-events:auto}

.bc-cookie-inner{
  max-width:var(--wrap); margin:0 auto;
  display:flex; align-items:center; gap:clamp(1rem,3vw,2rem);
  flex-wrap:wrap;
  background:var(--navy-900); color:var(--on-dark);
  border-radius:var(--radius-lg);
  padding:clamp(1rem,2.6vw,1.4rem) clamp(1.1rem,3vw,1.8rem);
  box-shadow:var(--shadow-dark);
}
.bc-cookie-txt{flex:1 1 320px; min-width:0}
.bc-cookie-title{
  font-family:var(--serif); font-weight:600; font-size:1.06rem;
  margin:0 0 .3rem; color:#fff;
}
.bc-cookie-txt p{
  font-family:var(--sans); font-size:.87rem; line-height:1.55;
  color:var(--on-dark-70); margin:0;
}
.bc-cookie-txt a{color:var(--coral-300); text-decoration:underline; text-underline-offset:2px}
.bc-cookie-txt a:hover{color:#fff}

.bc-cookie-acoes{display:flex; gap:.6rem; flex:0 0 auto}
.bc-cookie-btn{
  padding:.72rem 1.35rem; border-radius:var(--radius);
  font-family:var(--sans); font-size:.88rem; font-weight:700;
  cursor:pointer; border:1px solid transparent;
  transition:background .2s var(--ease), border-color .2s var(--ease), transform .12s var(--ease);
}
.bc-cookie-btn:active{transform:translateY(1px)}
.bc-cookie-btn--ok{background:var(--coral); color:#fff}
.bc-cookie-btn--ok:hover{background:var(--coral-600)}
.bc-cookie-btn--ghost{background:transparent; color:var(--on-dark-70); border-color:var(--line-dark)}
.bc-cookie-btn--ghost:hover{color:#fff; border-color:rgba(255,255,255,.4)}
.bc-cookie-btn:focus-visible{outline:2px solid var(--coral-300); outline-offset:2px}

@media (max-width:640px){
  .bc-cookie-inner{flex-direction:column; align-items:stretch; text-align:left}
  .bc-cookie-acoes{width:100%}
  .bc-cookie-btn{flex:1}
}
@media (prefers-reduced-motion:reduce){
  .bc-cookie{transition:none}
}

/* ---------- Páginas legais ---------- */
.legal-direitos{margin:1rem 0 1.6rem; padding-left:1.15rem}
.legal-direitos li{margin-bottom:.6rem; line-height:1.6}
.legal-updated{
  margin-top:2.2rem; padding-top:1.1rem; border-top:1px solid var(--line);
  font-size:.84rem; color:var(--ink-55);
}
