/* DCEng Pro — chamadas para a versão paga (CTA estático + botão flutuante)
   Carregado só nas páginas do Pro. Usa as variáveis do pro.css. */

/* ---------- seção de CTA ---------- */
.cta-pro{padding:56px 0 26px}
.cta-pro-box{
  background:linear-gradient(140deg,var(--navy) 0%,var(--navy-2, #001836) 62%,#062a4d 100%);
  color:var(--on-navy,#eaf3ff);
  border-radius:var(--radius,18px);
  padding:36px 32px 36px;
  box-shadow:var(--shadow,0 18px 40px rgba(0,20,40,.18));
  position:relative;overflow:hidden;
}
.cta-pro-box::after{
  content:"";position:absolute;right:-90px;top:-90px;width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle,rgba(2,135,251,.35),transparent 70%);pointer-events:none;
}
.cta-pro-kicker{
  margin:0 0 10px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:#8fc6ff;font-weight:700;
}
.cta-pro-box h2{
  margin:0 0 12px;font-size:clamp(22px,3.4vw,31px);line-height:1.22;color:#fff;letter-spacing:-.01em;
}
.cta-pro-box h2 span{color:#6fbcff}
.cta-pro-sub{margin:0 0 18px;max-width:60ch;color:#c7dcf2;font-size:16px;line-height:1.6}
.cta-pro-list{
  list-style:none;margin:0 0 22px;padding:0;display:grid;gap:9px;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
.cta-pro-list li{
  position:relative;padding-left:26px;font-size:15px;line-height:1.45;color:#dbe9f8;
}
.cta-pro-list li::before{
  content:"";position:absolute;left:0;top:.42em;width:14px;height:14px;border-radius:4px;
  background:var(--blue,#0287fb);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='%23fff' d='M6.2 11.4 2.6 7.8l1.3-1.3 2.3 2.3 5.9-5.9 1.3 1.3z'/></svg>") center/contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='%23fff' d='M6.2 11.4 2.6 7.8l1.3-1.3 2.3 2.3 5.9-5.9 1.3 1.3z'/></svg>") center/contain no-repeat;
}
.cta-pro-ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.cta-pro-ctas .btn{background:var(--blue,#0287fb);color:#fff;border-color:transparent}
.cta-pro-ctas .btn:hover{background:var(--blue-d,#0270d4)}
.cta-pro-ctas .btn.ghost{background:transparent;color:#dcebff;border-color:rgba(255,255,255,.34)}
.cta-pro-ctas .btn.ghost:hover{background:rgba(255,255,255,.1)}
.cta-pro-fine{margin:16px 0 0;font-size:13px;color:#9db8d4;line-height:1.5}

/* ---------- botão flutuante ---------- */
.cta-pro-float{position:fixed;right:18px;bottom:18px;z-index:60;pointer-events:none}
.cta-pro-float[hidden]{display:none}
.cta-pro-fab{
  pointer-events:auto;display:inline-flex;align-items:center;gap:9px;
  background:var(--blue,#0287fb);color:#fff;border:0;border-radius:999px;
  padding:14px 20px;font:inherit;font-weight:700;font-size:15px;cursor:pointer;
  box-shadow:0 12px 26px rgba(2,80,150,.34),0 2px 6px rgba(0,0,0,.18);
  transform:translateY(0);transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.cta-pro-fab:hover{background:var(--blue-d,#0270d4);transform:translateY(-2px);box-shadow:0 16px 30px rgba(2,80,150,.4)}
.cta-pro-fab:focus-visible{outline:3px solid #99d0ff;outline-offset:3px}
.cta-pro-fab-dot{
  width:8px;height:8px;border-radius:50%;background:#8ef0b4;box-shadow:0 0 0 0 rgba(142,240,180,.7);
  animation:ctaPulse 2.4s infinite;
}
@keyframes ctaPulse{
  0%{box-shadow:0 0 0 0 rgba(142,240,180,.65)}
  70%{box-shadow:0 0 0 9px rgba(142,240,180,0)}
  100%{box-shadow:0 0 0 0 rgba(142,240,180,0)}
}

/* ---------- modal ---------- */
.cta-pro-modal{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:18px}
.cta-pro-modal[hidden]{display:none}
.cta-pro-backdrop{position:absolute;inset:0;background:rgba(3,18,33,.62);backdrop-filter:blur(2px)}
.cta-pro-dialog{
  position:relative;background:var(--paper,#fff);color:var(--ink,#0b1b2b);
  width:min(560px,100%);max-height:92vh;overflow:auto;border-radius:16px;
  padding:28px 26px 24px;box-shadow:0 30px 70px rgba(0,15,30,.4);
  animation:ctaIn .18s ease-out;
}
@keyframes ctaIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.cta-pro-dialog h2{margin:0 0 8px;font-size:23px;line-height:1.25;color:var(--navy,#00223d)}
.cta-pro-dialog .cta-pro-dsub{margin:0 0 18px;font-size:15px;line-height:1.55;color:var(--muted,#44556a)}
.cta-pro-dialog .cta-pro-dlist{margin:0 0 20px;padding:0;list-style:none;display:grid;gap:8px;font-size:14.5px;color:var(--ink-2,#1d3045)}
.cta-pro-dialog .cta-pro-dlist li{padding-left:24px;position:relative;line-height:1.45}
.cta-pro-dialog .cta-pro-dlist li::before{content:"✓";position:absolute;left:0;color:var(--good,#1f8f52);font-weight:700}
.cta-pro-x{
  position:absolute;right:10px;top:8px;width:38px;height:38px;border:0;background:transparent;
  font-size:26px;line-height:1;cursor:pointer;color:var(--muted,#44556a);border-radius:10px;
}
.cta-pro-x:hover{background:var(--bg-2,#eef3f8);color:var(--ink,#0b1b2b)}
.cta-form{display:grid;gap:10px}
.cta-form label.cta-lbl{font-size:13px;font-weight:600;color:var(--muted,#44556a)}
.cta-form input[type=text],.cta-form input[type=email],.cta-form select{
  width:100%;padding:12px 13px;font:inherit;font-size:15px;color:var(--ink,#0b1b2b);
  background:var(--bg,#f4f6f8);border:1px solid var(--line,#dde5ee);border-radius:10px;
}
.cta-form input:focus,.cta-form select:focus{outline:none;border-color:var(--blue,#0287fb);background:#fff;box-shadow:0 0 0 3px rgba(2,135,251,.16)}
.cta-consent{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;line-height:1.45;color:var(--muted,#44556a)}
.cta-consent input{margin-top:2px;width:17px;height:17px;flex:0 0 auto}
.cta-form .btn{width:100%;justify-content:center;margin-top:4px}
.cta-hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.cta-msg{margin:2px 0 0;font-size:13.5px;min-height:18px;color:var(--muted,#44556a)}
.cta-msg.err{color:var(--bad,#b3261e)}
.cta-ok{
  display:flex;gap:12px;align-items:flex-start;background:var(--good-soft,#e8f7ee);
  color:#145c36;border:1px solid #bfe7cd;border-radius:12px;padding:14px 15px;font-size:15px;line-height:1.5;
}

/* ---------- mobile: barra inferior ---------- */
@media (max-width:640px){
  .cta-pro{padding:40px 0 20px}
  .cta-pro-box{padding:26px 20px 24px;border-radius:14px}
  .cta-pro-list{grid-template-columns:1fr}
  .cta-pro-ctas{flex-direction:column;align-items:stretch}
  .cta-pro-ctas .btn{width:100%;justify-content:center}
  .cta-pro-float{left:0;right:0;bottom:0}
  .cta-pro-fab{
    width:100%;border-radius:0;justify-content:center;padding:15px 16px;
    font-size:15.5px;box-shadow:0 -8px 24px rgba(0,20,40,.18);
    padding-bottom:calc(15px + env(safe-area-inset-bottom,0px));
  }
  .cta-pro-fab:hover{transform:none}
  body.cta-pro-tem-fab{padding-bottom:66px}
  .cta-pro-dialog{padding:24px 18px 20px;border-radius:14px}
  body.cta-pro-modal-aberto{overflow:hidden}
}
@media (prefers-reduced-motion:reduce){
  .cta-pro-fab-dot{animation:none}
  .cta-pro-dialog{animation:none}
}
@media print{.cta-pro-float,.cta-pro-modal{display:none!important}}

/* ---------- grade de planos dentro do CTA (v3) ---------- */
.plgrade{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0 18px}
@media (max-width:860px){.plgrade{grid-template-columns:1fr}}
.plc{position:relative;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:18px 16px 16px;display:flex;flex-direction:column;gap:6px}
.plc.dest{background:rgba(255,255,255,.12);border-color:#6fbcff;box-shadow:0 0 0 1px #6fbcff inset}
.plselo{position:absolute;top:-11px;left:16px;margin:0;background:#6fbcff;color:#00223d;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:999px}
.plnome{margin:0;font-weight:800;letter-spacing:.02em;color:#9dc9ff;font-size:13px;text-transform:uppercase}
.plpreco{margin:0;display:flex;align-items:baseline;gap:6px;color:#fff}
.plpreco b{font-size:29px;line-height:1.1;font-weight:800}
.plpreco span{font-size:13px;color:rgba(234,243,255,.72)}
.planchor{margin:0;font-size:13.5px;line-height:1.4;color:#9dc9ff;font-weight:600}
.plc ul{margin:8px 0 14px;padding-left:18px;color:rgba(234,243,255,.9);font-size:14px;line-height:1.55}
.plc ul li{margin:2px 0}
.plc .btn{margin-top:auto;justify-content:center;width:100%}
.plconta{margin:6px 0 18px;font-size:15px;line-height:1.5;color:#fff;background:rgba(111,188,255,.12);border-left:3px solid #6fbcff;padding:10px 14px;border-radius:8px}
.plconta b{color:#fff}
