/* Poppins já vem via wp_enqueue_style em inc/assets.php — sem @import aqui
   pra não duplicar o download da fonte nas páginas de calculadora. */

/* ==========================================================
   BARBIERI BASE
   Estilos compartilhados entre as calculadoras
   ========================================================== */

/* ===========================
   Variáveis
   =========================== */

:root{
    --red:#CF2020;
    --petrol:#212020;
    --ink:#1E1E1E;
    --white:#FFF;
    --cream:#FAF9F5;
    --gray-light:#F4F4F4;
    --gray-mid:#BABABA;
    --muted:#6B6B6B;

    --serif:Georgia,"Times New Roman",Times,serif;
    --sans:'Poppins',sans-serif;
}

/* ===========================
   Classe Base
   =========================== */

.bca-base{
    font-family:var(--sans);
    font-size:18px;
    line-height:28px;
    color:var(--ink);
    background:var(--white);
}

.bca-base h1,
.bca-base h2,
.bca-base h3{
    font-family:var(--serif);
    font-weight:400;
    margin:0 0 .5em;
    color:var(--red);
}

.bca-base h2{
    font-size:30px;
    line-height:35px;
}

.bca-base h3{
    font-size:25px;
    line-height:30px;
}

.bca-base h4{
    font-family:var(--sans);
    font-weight:700;
    font-size:20px;
    line-height:1.25;
    color:var(--ink);
    margin-bottom:10px;
}

.bca-base p{
    margin-bottom:20px;
}

.bca-base a{
    color:var(--petrol);
}

.bca-base img,
.bca-base svg{
    display:block;
    max-width:100%;
}

.bca-base blockquote{
    margin:0 0 20px;
    padding:18px 22px;
    border-left:4px solid var(--red);
    background:var(--gray-light);
    color:var(--ink);
    font-size:16px;
    line-height:1.5;
}

.bca-base blockquote p{
    margin:0;
}

.bca-base blockquote strong{
    color:var(--red);
}

/* ===========================
   Container
   =========================== */

.bca-container{
    max-width:970px;
    margin:0 auto;
    padding:0 20px;
}

/* ===========================
   Cards
   =========================== */

.bca-card{
    background:linear-gradient(135deg, #322727 0%, #212020 45%, #161414 100%);
    border:1px solid #212020;
    border-radius:10px;
    box-shadow:0 4px 24px rgba(0,0,0,.06);
    padding:32px;
}

@media(min-width:640px){
    .bca-card{
        padding:44px;
    }
}

/* ===========================
   Grid de Campos
   =========================== */

.bca-field-grid{
    display:grid;
    grid-template-columns:1fr;
    align-items:start;
    gap:20px;
}

@media(min-width:640px){
    .bca-field-grid{
        grid-template-columns:1fr 1fr;
    }
}

.bca-field{
    display:flex;
    flex-direction:column;
    gap:6px;
}

.bca-field label{
    margin:0 !important;
    display:block;
    font-size:13px;
    line-height:1.3;
    font-weight:600;
    color:var(--ink);
}

.bca-field small{
    margin:0 !important;
    display:block;
    font-size:12px;
    color:var(--muted);
    line-height:1.4;
}

/* ===========================
   Inputs
   =========================== */

.bca-field input,
.bca-field select{
    width:100%;
    height:48px;
    margin:0 !important;
    padding:11px 12px;
    border:1px solid var(--gray-mid);
    background:var(--white);
    color:var(--ink);
    font-family:var(--sans);
    font-size:16px;
    line-height:1.5;
    border-radius:6px;
    box-sizing:border-box;
    appearance:none;
    transition:border-color .15s ease, box-shadow .15s ease;
}

.bca-field input:focus,
.bca-field select:focus{
    outline:none;
    border-color:var(--red);
    box-shadow:0 0 0 2px var(--red), 0 0 0 6px rgba(207,32,32,.12);
}

/* ---------- Neutraliza o fundo azul/amarelo que o navegador aplica em campos
   preenchidos automaticamente (autofill), mantendo o design (fundo branco,
   texto ink) em vez do estilo forçado pelo Chrome/Safari. Vale para todos os
   inputs das 5 calculadoras. O anel de foco usa só box-shadow (nunca outline)
   porque outline não acompanha o border-radius em vários navegadores — sobra
   um corte visível nos cantos arredondados, ficando sólido só nos lados retos. ---------- */
.bca-field input:-webkit-autofill,
.bca-field input:-webkit-autofill:hover,
.wiz-periodo-row input:-webkit-autofill,
.wiz-periodo-row input:-webkit-autofill:hover,
#bca-hp .hp-field input:-webkit-autofill,
#bca-hp .hp-field input:-webkit-autofill:hover,
#bca-rt .rt-field input:-webkit-autofill, #bca-ref .ref-field input:-webkit-autofill, #bca-cred .cred-field input:-webkit-autofill,
#bca-rt .rt-field input:-webkit-autofill:hover, #bca-ref .ref-field input:-webkit-autofill:hover, #bca-cred .cred-field input:-webkit-autofill:hover{
    -webkit-text-fill-color:var(--ink) !important;
    -webkit-box-shadow:0 0 0 1000px var(--white) inset !important;
    box-shadow:0 0 0 1000px var(--white) inset !important;
    caret-color:var(--ink);
    transition:background-color 9999s ease-in-out 0s;
}
.bca-field input:-webkit-autofill:focus,
.wiz-periodo-row input:-webkit-autofill:focus,
#bca-hp .hp-field input:-webkit-autofill:focus,
#bca-rt .rt-field input:-webkit-autofill:focus, #bca-ref .ref-field input:-webkit-autofill:focus, #bca-cred .cred-field input:-webkit-autofill:focus{
    -webkit-text-fill-color:var(--ink) !important;
    -webkit-box-shadow:0 0 0 1000px var(--white) inset, 0 0 0 2px var(--red) !important;
    box-shadow:0 0 0 1000px var(--white) inset, 0 0 0 2px var(--red) !important;
    caret-color:var(--ink);
    transition:background-color 9999s ease-in-out 0s;
}

/* ===========================
   Wizard
   =========================== */

.bca-progress{
    margin-bottom:28px;
}

.bca-progress-label{
    font-size:12px;
    color:var(--muted);
    text-transform:uppercase;
    letter-spacing:.05em;
    margin-bottom:8px;
}

.bca-progress-bar{
    width:100%;
    height:4px;
    background:var(--gray-light);
}

.bca-progress-fill{
    height:100%;
    background:var(--red);
    transition:width .25s ease;
}

.bca-nav{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-top:30px;
}

.bca-error-msg{
    color:var(--red);
    font-size:13px;
    margin-top:14px;
    display:none;
}

/* ===========================
   Legibilidade dentro do card escuro (#212020)
   =========================== */
.bca-card label, #bca-hp .hp-calc-card label, #bca-rt .rt-calc-card label, #bca-ref .ref-calc-card label, #bca-cred .cred-calc-card label{
    color:var(--white) !important;
}
.bca-card small, #bca-hp .hp-calc-card small, #bca-rt .rt-calc-card small, #bca-ref .ref-calc-card small, #bca-cred .cred-calc-card small{
    color:rgba(255,255,255,.65) !important;
}
.bca-card .bca-progress-label, #bca-hp .hp-calc-card .hp-wizard-progress-label, #bca-rt .rt-calc-card .rt-wizard-progress-label, #bca-ref .ref-calc-card .ref-wizard-progress-label, #bca-cred .cred-calc-card .cred-wizard-progress-label{
    color:rgba(255,255,255,.65) !important;
}
.bca-card .bca-progress-bar, #bca-hp .hp-calc-card .hp-wizard-progress-bar, #bca-rt .rt-calc-card .rt-wizard-progress-bar, #bca-ref .ref-calc-card .ref-wizard-progress-bar, #bca-cred .cred-calc-card .cred-wizard-progress-bar{
    background:rgba(255,255,255,.15) !important;
}
.bca-card .wiz-step-title, #bca-hp .hp-calc-card .hp-step-title, #bca-rt .rt-calc-card .rt-step-title, #bca-ref .ref-calc-card .ref-step-title, #bca-cred .cred-calc-card .cred-step-title{
    color:var(--white) !important;
}
.bca-card .bca-error-msg{
    color:#ff8a8a !important;
}
.bca-card .wiz-privacy-note, #bca-hp .hp-calc-card .wiz-privacy-note, #bca-rt .rt-calc-card .wiz-privacy-note, #bca-ref .ref-calc-card .wiz-privacy-note, #bca-cred .cred-calc-card .wiz-privacy-note{
    color:rgba(255,255,255,.65) !important;
}
.bca-card .wiz-privacy-note a{ color:var(--white) !important; }

/* ==========================================================
   COMPONENTES COMPARTILHADOS DO WIZARD
   Usado por TODAS as calculadoras (Aposentadoria #bca-apo,
   Holding #bca-hp, Regime Tributário #bca-rt, Reforma
   Tributária #bca-ref, Recuperação de Créditos #bca-cred).

   Cada regra abaixo aceita DOIS jeitos de escrever a classe:
   a nova, compartilhada ("wiz-hero", "wiz-btn"...) E a antiga,
   própria de cada ferramenta ("hp-hero", "rt-hero", "ref-hero",
   "cred-hero"...). Isso é de propósito: se uma página ainda
   estiver no ar com o HTML antigo (ex.: Holding com "hp-btn"),
   ela continua funcionando mesmo depois de colar este CSS —
   você não precisa trocar o CSS e o HTML de todas as páginas
   ao mesmo tempo. Ao publicar/recolar o HTML de uma ferramenta
   no padrão novo (classes "wiz-"), ela passa a usar as mesmas
   regras, só que citadas pelo nome novo.
   ========================================================== */

/* ---------- Hero (claro, sem faixa colorida) ---------- */
.wiz-hero, #bca-hp .hp-hero, #bca-rt .rt-hero, #bca-ref .ref-hero, #bca-cred .cred-hero{ position:relative; background:transparent; color:var(--ink); padding:24px 0 8px; }
.wiz-hero-inner, #bca-hp .hp-hero-inner, #bca-rt .rt-hero-inner, #bca-ref .ref-hero-inner, #bca-cred .cred-hero-inner{ max-width:900px; }
.wiz-hero h1, #bca-hp .hp-hero h1, #bca-rt .rt-hero h1, #bca-ref .ref-hero h1, #bca-cred .cred-hero h1{ font-family:var(--serif); font-weight:400; font-size:clamp(30px,4vw,44px); line-height:1.15; color:var(--ink); }
.wiz-lede, #bca-hp .hp-lede, #bca-rt .rt-lede, #bca-ref .ref-lede, #bca-cred .cred-lede{ font-size:22px; line-height:30px; color:var(--muted); max-width:760px; }
.wiz-trust-badges, #bca-hp .hp-trust-badges{ display:flex; gap:22px; flex-wrap:wrap; margin-top:28px; }
.wiz-trust-badges span, #bca-hp .hp-trust-badges span{ font-size:13px; color:var(--muted); display:flex; align-items:center; gap:8px; }
.wiz-trust-badges span::before, #bca-hp .hp-trust-badges span::before{ content:""; width:6px; height:6px; background:var(--red); display:inline-block; flex-shrink:0; }

/* ---------- Artigo ---------- */
.wiz-article, #bca-hp .hp-article{ background:var(--white); padding:56px 0; }
.wiz-article-inner, #bca-hp .hp-article-inner{ max-width:900px; margin:0 auto; }
.wiz-article-intro, #bca-hp .hp-article-intro{ font-size:19px; line-height:29px; color:var(--ink); }

/* ---------- Steps ---------- */
.wiz-steps, #bca-hp .hp-steps, #bca-rt .rt-steps, #bca-ref .ref-steps, #bca-cred .cred-steps{ background:var(--white); padding:48px 0; }
.wiz-steps-grid, #bca-hp .hp-steps-grid, #bca-rt .rt-steps-grid, #bca-ref .ref-steps-grid, #bca-cred .cred-steps-grid{ display:grid; grid-template-columns:1fr; gap:24px; }
@media(min-width:760px){ .wiz-steps-grid, #bca-hp .hp-steps-grid, #bca-rt .rt-steps-grid, #bca-ref .ref-steps-grid, #bca-cred .cred-steps-grid{ grid-template-columns:repeat(3,1fr); } }
.wiz-step, #bca-hp .hp-step, #bca-rt .rt-step, #bca-ref .ref-step, #bca-cred .cred-step{ background:var(--white); border:1px solid var(--gray-light); border-radius:10px; padding:24px; transition:background .2s ease, transform .2s ease, box-shadow .2s ease; }
.wiz-step:hover, #bca-hp .hp-step:hover, #bca-rt .rt-step:hover, #bca-ref .ref-step:hover, #bca-cred .cred-step:hover{ background:#212020; border-color:#212020; transform:translateY(-3px); box-shadow:0 10px 24px rgba(0,0,0,.14); }
.wiz-step-num, #bca-hp .hp-step-num, #bca-rt .rt-step-num, #bca-ref .ref-step-num, #bca-cred .cred-step-num{ font-family:var(--serif); font-weight:400; color:var(--red); font-size:28px; margin-bottom:6px; transition:color .2s ease; }
.wiz-step h4, #bca-hp .hp-step h4, #bca-rt .rt-step h4, #bca-ref .ref-step h4, #bca-cred .cred-step h4{ font-size:19px; margin-bottom:8px; transition:color .2s ease; }
.wiz-step p, #bca-hp .hp-step p, #bca-rt .rt-step p, #bca-ref .ref-step p, #bca-cred .cred-step p{ font-size:15px; line-height:22px; color:var(--muted); margin:0; transition:color .2s ease; }
.wiz-step:hover h4, #bca-hp .hp-step:hover h4, #bca-rt .rt-step:hover h4, #bca-ref .ref-step:hover h4, #bca-cred .cred-step:hover h4,
.wiz-step:hover p, #bca-hp .hp-step:hover p, #bca-rt .rt-step:hover p, #bca-ref .ref-step:hover p, #bca-cred .cred-step:hover p{ color:var(--white); }

/* ---------- Seção / título de cada passo ---------- */
.wiz-calc-section, #bca-hp .hp-calc-section, #bca-rt .rt-calc-section, #bca-ref .ref-calc-section, #bca-cred .cred-calc-section{ background:var(--white); padding:48px 0 64px; }
.wiz-step-title, #bca-hp .hp-step-title, #bca-rt .rt-step-title, #bca-ref .ref-step-title, #bca-cred .cred-step-title{
  display:block; width:auto; max-width:100%; padding:0; border:0;
  font-family:var(--serif); font-weight:400; font-size:25px; line-height:30px; color:var(--red); margin:0 0 24px;
}
/* ---------- Reset de <fieldset>/<legend> quando usados no lugar de div/h3 (acessibilidade — Aposentadoria) ---------- */
fieldset.wiz-wizard-step, #bca-hp fieldset.hp-wizard-step, #bca-rt fieldset.rt-wizard-step, #bca-ref fieldset.ref-wizard-step, #bca-cred fieldset.cred-wizard-step{
  border:0; margin:0; padding:0; min-width:0;
}
.wiz-rule, #bca-hp .hp-rule, #bca-rt .rt-rule, #bca-ref .ref-rule, #bca-cred .cred-rule{ display:block; width:60px; height:3px; background:var(--red); margin:0 0 32px; }

/* ---------- Toggle (Sexo, objetivo, atividade, regime...) ---------- */
.wiz-toggle-group, #bca-hp .hp-toggle-group, #bca-rt .rt-toggle-group, #bca-ref .ref-toggle-group, #bca-cred .cred-toggle-group{ display:flex; gap:12px; flex-wrap:wrap; }
.wiz-toggle-btn, #bca-hp .hp-toggle-btn, #bca-rt .rt-toggle-btn, #bca-ref .ref-toggle-btn, #bca-cred .cred-toggle-btn{
  appearance:none; -webkit-appearance:none;
  background:var(--white); border:1px solid #212020; color:var(--red);
  font-family:var(--sans); font-size:15px; font-weight:600; padding:11px 24px;
  border-radius:6px;
  cursor:pointer; transition:border-color .2s ease, background .2s ease, color .2s ease, transform .15s ease, box-shadow .15s ease;
}
.wiz-toggle-btn:hover, #bca-hp .hp-toggle-btn:hover, #bca-rt .rt-toggle-btn:hover, #bca-ref .ref-toggle-btn:hover, #bca-cred .cred-toggle-btn:hover{ transform:translateY(-1px); box-shadow:0 4px 10px rgba(0,0,0,.08); }
.wiz-toggle-btn:hover, #bca-hp .hp-toggle-btn:hover, #bca-rt .rt-toggle-btn:hover, #bca-ref .ref-toggle-btn:hover, #bca-cred .cred-toggle-btn:hover{ background:var(--red); border-color:var(--red); color:var(--white); }
.wiz-toggle-btn.active, .wiz-toggle-btn.is-active, .wiz-toggle-btn.selected, .wiz-toggle-btn[aria-pressed="true"],
#bca-hp .hp-toggle-btn.active, #bca-hp .hp-toggle-btn.is-active, #bca-hp .hp-toggle-btn.selected, #bca-hp .hp-toggle-btn[aria-pressed="true"],
#bca-rt .rt-toggle-btn.active, #bca-rt .rt-toggle-btn.is-active, #bca-rt .rt-toggle-btn.selected, #bca-rt .rt-toggle-btn[aria-pressed="true"],
#bca-ref .ref-toggle-btn.active, #bca-ref .ref-toggle-btn.is-active, #bca-ref .ref-toggle-btn.selected, #bca-ref .ref-toggle-btn[aria-pressed="true"],
#bca-cred .cred-toggle-btn.active, #bca-cred .cred-toggle-btn.is-active, #bca-cred .cred-toggle-btn.selected, #bca-cred .cred-toggle-btn[aria-pressed="true"]
{ background:var(--red); border-color:var(--red); color:var(--white); }

/* ---------- Grid de situações especiais (Passo 2) ---------- */
.wiz-situacao-grid, #bca-hp .hp-situacao-grid, #bca-rt .rt-situacao-grid, #bca-ref .ref-situacao-grid, #bca-cred .cred-situacao-grid{ display:grid; grid-template-columns:1fr; gap:12px; }
@media(min-width:680px){ .wiz-situacao-grid, #bca-hp .hp-situacao-grid, #bca-rt .rt-situacao-grid, #bca-ref .ref-situacao-grid, #bca-cred .cred-situacao-grid{ grid-template-columns:1fr 1fr; } }
.wiz-situacao-btn, #bca-hp .hp-situacao-btn, #bca-rt .rt-situacao-btn, #bca-ref .ref-situacao-btn, #bca-cred .cred-situacao-btn{
  appearance:none; -webkit-appearance:none;
  background:var(--white); border:1px solid #212020; color:var(--red);
  font-family:var(--sans); font-size:15px; font-weight:600; text-align:left;
  border-radius:6px;
  padding:16px 18px; cursor:pointer; transition:border-color .2s ease, background .2s ease, color .2s ease, transform .15s ease, box-shadow .15s ease;
}
.wiz-situacao-btn:hover, #bca-hp .hp-situacao-btn:hover, #bca-rt .rt-situacao-btn:hover, #bca-ref .ref-situacao-btn:hover, #bca-cred .cred-situacao-btn:hover{ background:var(--red); border-color:var(--red); color:var(--white); transform:translateY(-1px); box-shadow:0 4px 10px rgba(0,0,0,.08); }
.wiz-situacao-btn.active, .wiz-situacao-btn.is-active, .wiz-situacao-btn.selected, .wiz-situacao-btn[aria-pressed="true"],
#bca-hp .hp-situacao-btn.active, #bca-hp .hp-situacao-btn.is-active, #bca-hp .hp-situacao-btn.selected, #bca-hp .hp-situacao-btn[aria-pressed="true"],
#bca-rt .rt-situacao-btn.active, #bca-rt .rt-situacao-btn.is-active, #bca-rt .rt-situacao-btn.selected, #bca-rt .rt-situacao-btn[aria-pressed="true"],
#bca-ref .ref-situacao-btn.active, #bca-ref .ref-situacao-btn.is-active, #bca-ref .ref-situacao-btn.selected, #bca-ref .ref-situacao-btn[aria-pressed="true"],
#bca-cred .cred-situacao-btn.active, #bca-cred .cred-situacao-btn.is-active, #bca-cred .cred-situacao-btn.selected, #bca-cred .cred-situacao-btn[aria-pressed="true"]
{ background:var(--red); border-color:var(--red); color:var(--white); }
.wiz-situacao-btn-none, #bca-hp .hp-situacao-btn-none, #bca-rt .rt-situacao-btn-none, #bca-ref .ref-situacao-btn-none, #bca-cred .cred-situacao-btn-none{ grid-column:1 / -1; text-align:center; color:var(--muted); }

/* ---------- Botão "Voltar" ---------- */
.wiz-btn-back, #bca-hp .hp-btn-back, #bca-rt .rt-btn-back, #bca-ref .ref-btn-back, #bca-cred .cred-btn-back{
  background:none; border:0; padding:0; color:var(--muted);
  font-family:var(--sans); font-size:14px; font-weight:600; text-decoration:underline; cursor:pointer;
}
.wiz-btn-back:hover, #bca-hp .hp-btn-back:hover, #bca-rt .rt-btn-back:hover, #bca-ref .ref-btn-back:hover, #bca-cred .cred-btn-back:hover{ color:var(--red); }

/* ---------- Aviso de privacidade ----------
   O tamanho/cor/link já vêm do .wiz-privacy-note em theme-modern.css (mesma
   classe do checkbox de consentimento da newsletter). Mas lá a regra é
   `display:flex` — pensada pro par checkbox+texto do formulário de newsletter.
   Nas calculadoras esse aviso é um <p> comum (texto + link, sem checkbox);
   flex sem itens pra alinhar quebra a linha de forma errada (o "." do fim da
   frase e o link saem separados do texto, cada um como uma "coluna"). Forçando
   de volta pra block aqui, só dentro das calculadoras, o texto volta a quebrar
   normalmente — sem tocar no formulário de newsletter, que precisa do flex. */
#bca-apo .wiz-privacy-note, #bca-hp .wiz-privacy-note, #bca-rt .wiz-privacy-note, #bca-ref .wiz-privacy-note, #bca-cred .wiz-privacy-note,
#bca-hp .hp-privacy-note, #bca-rt .rt-privacy-note, #bca-ref .ref-privacy-note, #bca-cred .cred-privacy-note{
  display:block; margin-top:20px;
}

/* ---------- Tela de resultado ---------- */
.wiz-resultado{ display:none; margin-top:36px; border-top:2px solid var(--petrol); padding-top:32px; }
#bca-hp #bca-hp-resultado, #bca-rt #bca-rt-resultado, #bca-ref #bca-ref-resultado, #bca-cred #bca-cred-resultado{ display:none; margin-top:36px; border-top:2px solid var(--petrol); padding-top:32px; }
.wiz-result-headline, #bca-hp .hp-result-headline, #bca-rt .rt-result-headline, #bca-ref .ref-result-headline, #bca-cred .cred-result-headline{ background:var(--red); color:var(--white); border-radius:10px; padding:28px; margin-bottom:28px; }
.wiz-result-headline .wiz-label, #bca-hp .hp-result-headline .hp-label, #bca-rt .rt-result-headline .rt-label, #bca-ref .ref-result-headline .ref-label, #bca-cred .cred-result-headline .cred-label{ font-size:13px; color:rgba(255,255,255,.7); text-transform:uppercase; letter-spacing:.06em; }
.wiz-result-headline .wiz-value, #bca-hp .hp-result-headline .hp-value, #bca-rt .rt-result-headline .rt-value, #bca-ref .ref-result-headline .ref-value, #bca-cred .cred-result-headline .cred-value{ font-family:var(--serif); font-weight:400; font-size:clamp(22px,4vw,34px); margin:6px 0; color:var(--white); }
.wiz-result-headline .wiz-rule-name, #bca-hp .hp-result-headline .hp-rule-name, #bca-rt .rt-result-headline .rt-rule-name, #bca-ref .ref-result-headline .ref-rule-name, #bca-cred .cred-result-headline .cred-rule-name{ font-size:14px; color:rgba(255,255,255,.75); }

.wiz-compare-grid, #bca-hp .hp-compare-grid, #bca-rt .rt-compare-grid, #bca-ref .ref-compare-grid{ display:grid; grid-template-columns:1fr; gap:20px; margin-bottom:28px; }
@media(min-width:640px){ .wiz-compare-grid, #bca-hp .hp-compare-grid, #bca-rt .rt-compare-grid, #bca-ref .ref-compare-grid{ grid-template-columns:repeat(2,1fr); } }
.wiz-compare-grid.wiz-compare-3col{ grid-template-columns:1fr; }
@media(min-width:760px){ .wiz-compare-grid.wiz-compare-3col{ grid-template-columns:repeat(3,1fr); } }
.wiz-compare-card, #bca-hp .hp-compare-card, #bca-rt .rt-compare-card, #bca-ref .ref-compare-card{ padding:22px 24px; border:1px solid var(--gray-light); border-radius:10px; background:var(--white); transition:transform .2s ease, box-shadow .2s ease; }
.wiz-compare-card:hover, #bca-hp .hp-compare-card:hover, #bca-rt .rt-compare-card:hover, #bca-ref .ref-compare-card:hover{ transform:translateY(-3px); box-shadow:0 10px 24px rgba(0,0,0,.1); }
.wiz-compare-card h4, #bca-hp .hp-compare-card h4, #bca-rt .rt-compare-card h4, #bca-ref .ref-compare-card h4{ font-size:16.5px; margin-bottom:12px; }
.wiz-compare-card ul, #bca-hp .hp-compare-card ul, #bca-rt .rt-compare-card ul, #bca-ref .ref-compare-card ul{ margin:0; padding-left:18px; }
.wiz-compare-card li, #bca-hp .hp-compare-card li, #bca-rt .rt-compare-card li, #bca-ref .ref-compare-card li{ margin-bottom:8px; font-size:14.5px; line-height:21px; color:var(--muted); }
.wiz-compare-before, #bca-hp .hp-compare-before, #bca-ref .ref-compare-before{ background:var(--gray-light); }
.wiz-compare-after, #bca-hp .hp-compare-after, #bca-ref .ref-compare-after{ border-color:var(--red); border-width:2px; }
.wiz-compare-after h4, #bca-hp .hp-compare-after h4, #bca-ref .ref-compare-after h4{ color:var(--red); }
.wiz-compare-winner, #bca-rt .rt-compare-winner{ border-color:var(--red); border-width:2px; }
.wiz-compare-winner h4, #bca-rt .rt-compare-winner h4{ color:var(--red); }

/* ---------- Timeline de resultados (lista ordenada com detalhe expansível) ---------- */
.wiz-timeline, #bca-apo .timeline{ position:relative; padding-left:60px; margin:0 0 24px 0; }
.wiz-timeline::before, #bca-apo .timeline::before{ content:""; position:absolute; left:23px; top:4px; bottom:4px; width:2px; background:var(--gray-light); }
.wiz-timeline-item, #bca-apo .timeline-item{ position:relative; margin-bottom:14px; }
.wiz-timeline-item:last-child, #bca-apo .timeline-item:last-child{ margin-bottom:0; }
.wiz-timeline-year, #bca-apo .timeline-year{ position:absolute; left:-60px; top:2px; width:48px; height:48px; border-radius:50%; background:var(--white); color:var(--ink); display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-weight:400; font-size:13px; border:2px solid var(--gray-mid); }
.wiz-timeline-item:first-child .wiz-timeline-year, #bca-apo .timeline-item:first-child .timeline-year{ background:var(--red); color:var(--white); border-color:var(--red); }
.wiz-timeline-detail, #bca-apo .timeline-detail{ background:var(--gray-light); border:1px solid var(--gray-light); border-radius:8px; overflow:hidden; }
.wiz-timeline-detail summary, #bca-apo .timeline-detail summary{ cursor:pointer; list-style:none; padding:14px 40px 14px 16px; position:relative; display:flex; flex-direction:column; gap:2px; }
.wiz-timeline-detail summary::-webkit-details-marker, #bca-apo .timeline-detail summary::-webkit-details-marker{ display:none; }
.wiz-timeline-detail summary::after, #bca-apo .timeline-detail summary::after{ content:"⌄"; position:absolute; right:16px; top:14px; color:var(--muted); transition:transform .15s ease; }
.wiz-timeline-detail[open] summary::after, #bca-apo .timeline-detail[open] summary::after{ transform:rotate(180deg); }
.wiz-timeline-rule-name, #bca-apo .timeline-rule-name{ font-family:var(--sans); font-weight:600; font-size:15px; color:var(--ink); }
.wiz-timeline-rule-date, #bca-apo .timeline-rule-date{ font-size:13px; color:var(--muted); }
.wiz-timeline-detail p, #bca-apo .timeline-detail p{ padding:0 16px 16px 16px; margin:0; font-size:13.5px; line-height:20px; color:var(--muted); }
.wiz-timeline-detail p a, #bca-apo .timeline-detail p a{ color:var(--petrol); text-decoration:underline; }

/* ---------- Lista de detalhes por situação especial (usada pela Aposentadoria) ---------- */
.wiz-situacao-detalhes{ display:flex; flex-direction:column; gap:14px; margin-top:20px; margin-bottom:28px; }

/* ---------- Períodos individualizados de contribuição (usado pela Aposentadoria) ---------- */
.wiz-periodo-row{ display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.wiz-periodo-row input[type="date"]{
  flex:1; min-width:0; height:48px; margin:0 !important; padding:11px 12px;
  border:1px solid var(--gray-mid); background:var(--white); color:var(--ink);
  font-family:var(--sans); font-size:15px; line-height:1.5; border-radius:6px;
  box-sizing:border-box; appearance:none;
}
.wiz-periodo-row input[type="date"]:focus{ outline:none; border-color:var(--red); box-shadow:0 0 0 2px var(--red), 0 0 0 6px rgba(207,32,32,.12); }
.wiz-periodo-row span{ font-size:13px; color:rgba(255,255,255,.65); flex-shrink:0; }
.wiz-periodo-remover{ background:none; border:0; padding:6px; color:rgba(255,255,255,.5); cursor:pointer; flex-shrink:0; font-size:15px; line-height:1; }
.wiz-periodo-remover:hover{ color:var(--red); }
.wiz-add-periodo{
  display:block; background:none; border:1px dashed rgba(255,255,255,.3); color:var(--white);
  font-family:var(--sans); font-size:14px; font-weight:600; padding:10px 16px; border-radius:6px;
  cursor:pointer; width:100%; margin-bottom:10px;
}
.wiz-add-periodo:hover{ border-color:var(--red); color:var(--red); }
.wiz-periodo-total{ background:var(--gray-light); border-radius:6px; padding:10px 12px; margin-top:10px; display:flex; justify-content:space-between; align-items:baseline; font-size:13px; color:var(--muted); }
.wiz-periodo-total strong{ color:var(--ink); font-size:15px; font-weight:600; }

/* ---------- Tabela ano-a-ano (usada pela Reforma Tributária) ---------- */
.wiz-timeline-table, #bca-ref .ref-timeline-table{ width:100%; border-collapse:collapse; margin-bottom:28px; font-size:14px; }
.wiz-timeline-table th, .wiz-timeline-table td,
#bca-ref .ref-timeline-table th, #bca-ref .ref-timeline-table td{ text-align:left; padding:10px 12px; border-bottom:1px solid var(--gray-light); }
.wiz-timeline-table th, #bca-ref .ref-timeline-table th{ color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.04em; font-weight:600; }

/* ---------- Bloco de detalhamento (usado pela Recuperação de Créditos) ---------- */
.wiz-breakdown, #bca-cred .cred-breakdown{ background:var(--gray-light); border:1px solid var(--gray-light); border-radius:10px; padding:22px 24px; margin-bottom:28px; }
.wiz-breakdown ul, #bca-cred .cred-breakdown ul{ margin:0; padding-left:18px; }
.wiz-breakdown li, #bca-cred .cred-breakdown li{ margin-bottom:8px; font-size:14.5px; line-height:21px; color:var(--muted); }

/* ---------- Mensagem de caso especial ---------- */
.wiz-special-msg, #bca-hp .hp-special-msg, #bca-rt .rt-special-msg, #bca-ref .ref-special-msg, #bca-cred .cred-special-msg{ background:var(--gray-light); border-left:4px solid var(--red); border-radius:0 8px 8px 0; padding:20px 22px; font-size:15px; }

/* ---------- Aviso de sensibilidade (usado pela Reforma Tributária, acima do formulário) ---------- */
.wiz-sensitive-notice, #bca-ref .ref-sensitive-notice{ background:#FDF3E7; border:1px solid #F0D9B5; border-radius:8px; color:#7A5A1E; padding:16px 18px; font-size:13.5px; line-height:20px; margin-bottom:28px; }
.wiz-sensitive-notice strong, #bca-ref .ref-sensitive-notice strong{ color:#5C4315; }

/* ---------- Aviso legal ---------- */
.wiz-disclaimer, #bca-hp .hp-disclaimer, #bca-rt .rt-disclaimer, #bca-ref .ref-disclaimer, #bca-cred .cred-disclaimer{ background:var(--gray-light); border:1px solid var(--gray-light); border-radius:8px; padding:18px 20px; font-size:12.5px; line-height:19px; color:var(--muted); margin:24px 0; }
.wiz-disclaimer strong, #bca-hp .hp-disclaimer strong, #bca-rt .rt-disclaimer strong, #bca-ref .ref-disclaimer strong, #bca-cred .cred-disclaimer strong{ color:var(--ink); }

/* ---------- CTA final ---------- */
.wiz-cta-final, #bca-hp .hp-cta-final, #bca-rt .rt-cta-final, #bca-ref .ref-cta-final, #bca-cred .cred-cta-final{ text-align:center; padding:20px 0 4px 0; }

/* ---------- Botão de avançar/enviar ----------
   Removido daqui de propósito: usa o MESMO .wiz-hexbtn (placa vermelha +
   selo hexagonal) já definido em theme-modern.css para o botão da newsletter.
   Repetir a regra aqui, com !important, era o que fazia o botão "PRÓXIMO" das
   calculadoras sair da fonte Georgia + ícone em PNG, diferente do resto do
   site — vencia por cima do design novo em vez de usar ele. Os nomes antigos
   (hp-btn/rt-btn/ref-btn/cred-btn) foram para theme-modern.css como aliases
   do .wiz-hexbtn, então continuam funcionando sem precisar trocar o HTML de
   nenhuma calculadora. */

/* ---------- Transição suave ao trocar de passo e ao revelar o resultado ---------- */
.wiz-wizard-step, .wiz-resultado{ opacity:1; transform:translateY(0); transition:opacity .25s ease, transform .25s ease; }
.wiz-fade-out{ opacity:0 !important; transform:translateY(8px); }
.wiz-fade-in{ opacity:0 !important; transform:translateY(8px); }
@media (prefers-reduced-motion: reduce){
  .wiz-wizard-step, .wiz-resultado{ transition:none !important; }
}

/* ---------- Seção "Por que a Barbieri" (opcional, reutilizável por qualquer ferramenta) ---------- */
.wiz-why-section, #bca-hp .hp-why-section{ background:var(--gray-light); color:var(--ink); padding:56px 0; }
.wiz-why-grid, #bca-hp .hp-why-grid{ display:grid; grid-template-columns:1fr; gap:20px; margin-top:24px; }
@media(min-width:760px){ .wiz-why-grid, #bca-hp .hp-why-grid{ grid-template-columns:repeat(4,1fr); } }
.wiz-why-item, #bca-hp .hp-why-item{ background:var(--white); border-top:3px solid var(--red); padding:20px 20px 22px 20px; }
.wiz-why-item h4, #bca-hp .hp-why-item h4{ font-size:18px; margin-bottom:6px; }
.wiz-why-item p, #bca-hp .hp-why-item p{ font-size:14.5px; line-height:21px; color:var(--muted); margin:0; }

/* ---------- Compatibilidade com o HTML antigo da calculadora de Holding (campos, card, progresso) ---------- */
#bca-hp .hp-container{ max-width:970px; margin:0 auto; padding:0 20px; }
#bca-hp .hp-calc-card{
  background:linear-gradient(135deg, #322727 0%, #212020 45%, #161414 100%);
  border:1px solid #212020; border-radius:10px; box-shadow:0 4px 24px rgba(0,0,0,.06); padding:32px;
}
@media(min-width:640px){ #bca-hp .hp-calc-card{ padding:44px; } }
#bca-hp .hp-field-grid{ display:grid; grid-template-columns:1fr; align-items:start; gap:20px; }
@media(min-width:640px){ #bca-hp .hp-field-grid{ grid-template-columns:1fr 1fr; } }
#bca-hp .hp-field{ display:flex; flex-direction:column; gap:6px; }
#bca-hp .hp-field label{ margin:0 !important; display:block; font-size:13px; line-height:1.3; font-weight:600; color:var(--ink); }
#bca-hp .hp-field small{ margin:0 !important; display:block; font-size:12px; color:var(--muted); line-height:1.4; }
#bca-hp .hp-field input{
  width:100%; height:48px; margin:0 !important; padding:11px 12px;
  border:1px solid var(--gray-mid); background:var(--white); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.5; border-radius:6px;
  box-sizing:border-box; appearance:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}
#bca-hp .hp-field input:focus{ outline:none; border-color:var(--red); box-shadow:0 0 0 2px var(--red), 0 0 0 6px rgba(207,32,32,.12); }
#bca-hp .hp-wizard-progress{ margin-bottom:28px; }
#bca-hp .hp-wizard-progress-label{ font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; margin-bottom:8px; }
#bca-hp .hp-wizard-progress-bar{ width:100%; height:4px; background:var(--gray-light); }
#bca-hp .hp-wizard-progress-fill{ height:100%; background:var(--red); transition:width .25s ease; }
#bca-hp .hp-wizard-nav{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:30px; }
#bca-hp .hp-error-msg{ color:var(--red); font-size:13px; margin-top:14px; display:none; }

/* ---------- Compatibilidade com o HTML antigo do Regime Tributario, Reforma Tributaria e Recuperacao de Creditos (campos, card, progresso) ---------- */
#bca-rt .rt-container, #bca-ref .ref-container, #bca-cred .cred-container{ max-width:970px; margin:0 auto; padding:0 20px; }
#bca-rt .rt-calc-card, #bca-ref .ref-calc-card, #bca-cred .cred-calc-card{
  background:linear-gradient(135deg, #322727 0%, #212020 45%, #161414 100%);
  border:1px solid #212020; border-radius:10px; box-shadow:0 4px 24px rgba(0,0,0,.06); padding:32px;
}
@media(min-width:640px){ #bca-rt .rt-calc-card, #bca-ref .ref-calc-card, #bca-cred .cred-calc-card{ padding:44px; } }
#bca-rt .rt-field-grid, #bca-ref .ref-field-grid, #bca-cred .cred-field-grid{ display:grid; grid-template-columns:1fr; align-items:start; gap:20px; }
@media(min-width:640px){ #bca-rt .rt-field-grid, #bca-ref .ref-field-grid, #bca-cred .cred-field-grid{ grid-template-columns:1fr 1fr; } }
#bca-rt .rt-field, #bca-ref .ref-field, #bca-cred .cred-field{ display:flex; flex-direction:column; gap:6px; }
#bca-rt .rt-field label, #bca-ref .ref-field label, #bca-cred .cred-field label{ margin:0 !important; display:block; font-size:13px; line-height:1.3; font-weight:600; color:var(--ink); }
#bca-rt .rt-field small, #bca-ref .ref-field small, #bca-cred .cred-field small{ margin:0 !important; display:block; font-size:12px; color:var(--muted); line-height:1.4; }
#bca-rt .rt-field input, #bca-ref .ref-field input, #bca-cred .cred-field input,
#bca-rt .rt-field select, #bca-ref .ref-field select, #bca-cred .cred-field select{
  width:100%; height:48px; margin:0 !important; padding:11px 12px;
  border:1px solid var(--gray-mid); background:var(--white); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.5; border-radius:6px;
  box-sizing:border-box; appearance:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}
#bca-rt .rt-field input:focus, #bca-ref .ref-field input:focus, #bca-cred .cred-field input:focus,
#bca-rt .rt-field select:focus, #bca-ref .ref-field select:focus, #bca-cred .cred-field select:focus{ outline:none; border-color:var(--red); box-shadow:0 0 0 2px var(--red), 0 0 0 6px rgba(207,32,32,.12); }
#bca-rt .rt-wizard-progress, #bca-ref .ref-wizard-progress, #bca-cred .cred-wizard-progress{ margin-bottom:28px; }
#bca-rt .rt-wizard-progress-label, #bca-ref .ref-wizard-progress-label, #bca-cred .cred-wizard-progress-label{ font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; margin-bottom:8px; }
#bca-rt .rt-wizard-progress-bar, #bca-ref .ref-wizard-progress-bar, #bca-cred .cred-wizard-progress-bar{ width:100%; height:4px; background:var(--gray-light); }
#bca-rt .rt-wizard-progress-fill, #bca-ref .ref-wizard-progress-fill, #bca-cred .cred-wizard-progress-fill{ height:100%; background:var(--red); transition:width .25s ease; }
#bca-rt .rt-wizard-nav, #bca-ref .ref-wizard-nav, #bca-cred .cred-wizard-nav{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:30px; }
#bca-rt .rt-error-msg, #bca-ref .ref-error-msg, #bca-cred .cred-error-msg{ color:var(--red); font-size:13px; margin-top:14px; display:none; }

/* ==========================================================
   LAYOUT DAS PAGINAS DE CALCULADORA
   Remove o "Table of Contents" (plugin Easy Table of Contents)
   e o hexagono decorativo (pseudo-elemento ::after de
   ".conteudo.grafismoTopo", confirmado via DevTools) SO nas
   paginas que contem um dos nossos widgets (#bca-apo, #bca-hp,
   #bca-rt, #bca-ref, #bca-cred). Usa :has() pra nao afetar os
   outros posts/artigos do blog.
   ========================================================== */

body:has(#bca-apo) #ez-toc-container,
body:has(#bca-hp) #ez-toc-container,
body:has(#bca-rt) #ez-toc-container,
body:has(#bca-ref) #ez-toc-container,
body:has(#bca-cred) #ez-toc-container{
  display:none !important;
}

body:has(#bca-apo) .conteudo.grafismoTopo::after,
body:has(#bca-hp) .conteudo.grafismoTopo::after,
body:has(#bca-rt) .conteudo.grafismoTopo::after,
body:has(#bca-ref) .conteudo.grafismoTopo::after,
body:has(#bca-cred) .conteudo.grafismoTopo::after{
  display:none !important;
  content:none !important;
}
