/* ============================================================================================
   SISTEMA VISUAL do Código Financeiro (gerado; não editar à mão: ver padroes/sistema-visual.md).
   Uma só escala de tipografia, formas e espaços para TODAS as páginas. Carregado em último lugar.
   ============================================================================================ */
:root{
  --ff-text:'Lora',Georgia,serif;
  --ff-ui:'Montserrat',system-ui,sans-serif;
  --fs-display:clamp(1.875rem,.7rem + 3.2vw,2.75rem);
  --fs-h1:clamp(1.5rem,.9rem + 1.6vw,2rem);
  --fs-h2:clamp(1.3125rem,.95rem + 1vw,1.625rem);
  --fs-h3:clamp(1.125rem,.95rem + .35vw,1.25rem);
  --fs-h4:clamp(1rem,.95rem + .15vw,1.0625rem);
  --fs-brand:clamp(.9375rem,.88rem + .2vw,1.0625rem);
  --fs-lead:clamp(1.0625rem,.98rem + .2vw,1.125rem);
  --fs-body:clamp(1rem,.92rem + .2vw,1.0625rem);
  --fs-ui:.9375rem;
  --fs-field:max(.9375rem,16px);
  --fs-small:.84375rem;
  --fs-micro:.75rem;
  --fs-num-xl:clamp(1.9rem,2.6vw,2.6rem);
  --fs-num-l:clamp(1.5rem,1.1rem + .9vw,1.625rem);
  --fs-num-m:1.25rem;
  --lh-display:1.1;
  --lh-h1:1.15;
  --lh-h2:1.25;
  --lh-h3:1.3;
  --lh-h4:1.35;
  --lh-lead:1.55;
  --lh-body:1.6;
  --lh-ui:1.5;
  --lh-small:1.5;
  --lh-micro:1.4;
  --ls-display:-.03em;
  --ls-h1:-.025em;
  --ls-h2:-.015em;
  --ls-h3:-.01em;
  --ls-over:.06em;
  --r-ctl:10px;
  --r-card:14px;
  --r-lg:20px;
  --r-pill:999px;
  --btn-h:48px;
  --btn-h-sm:40px;
  --chip-h:40px;
  --chip-h-sm:32px;
  --ctl-h:48px;
  --ctl-h-sm:44px;
  --on-dark:#fff;
  --on-dark-2:#cbd3e1;
  --on-dark-3:#aab4c6;
  --on-dark-mint:#34d399;
  --on-dark-mint-2:#9fe3c6;
  --on-dark-amber:#fbbf24;
  --on-dark-red:#f87171;
  --on-dark-red-2:#fecaca;
  --sp-section:clamp(2.5rem,1.7rem + 2vw,3.5rem);
  --sp-head-top:1rem;
  --sp-head-bottom:.875rem;
  --pad-card:1.25rem;
  --pad-panel:clamp(1.375rem,1rem + 1.4vw,2rem);
  --pad-panel-sim:clamp(1rem,.6rem + 1.2vw,1.5rem);
}
/* ecrãs de toque (telemóvel, tablet): botões pequenos e chips com pelo menos 44 px de altura */
@media (pointer:coarse){
  :root{--btn-h-sm:44px;--chip-h:44px;--chip-h-sm:36px}
}
/* tablet e telemóvel: cabeçalho de página ainda mais baixo */
@media (max-width:1099px){
  :root{--sp-head-top:.75rem;--sp-head-bottom:.625rem}
}

/* ---------- formas dos controlos: a mesma altura em todos os botões, chips e campos do mesmo papel ---------- */
.btn,
.cf-btn,
.cf-painel .pdf-form button,
.cmp-open-btn,
.cta-btn,
.exit-card button[type=submit],
.form-card button,
.mnav-cta,
.news-band button,
.news-strip .pdf-form button,
.pdf-form button,
.pdf-offer .pdf-form button,
.pdf-offer-static .pdf-form button,
.rel-btn,
.rr-caixa.rr-recolhida>.rr-cta{min-height:var(--btn-h);height:auto;padding-top:0;padding-bottom:0}
.cmp-block .cmp-more,
.cmp-block .go,
.cookie-btn,
.di-btn,
.dv-btn,
.go,
.hero-rel,
.nav-cta,
.p-btn,
.pdf-abrir,
.pdf-top,
.res-fixa button{min-height:var(--btn-h-sm);height:auto;padding-top:0;padding-bottom:0}
#simuladores .sim-ver-mais .ver-mais-btn,
.ctab,
.ctab.active,
.filt,
.filt.active,
.gl-chip,
.sfilt,
.sfilt.active,
.tab,
.term-nav a,
.ver-mais-btn,
header.art-head nav.toc a{min-height:var(--chip-h);height:auto;padding-top:0;padding-bottom:0}
.cf-painel .pdf-form input,
.exit-card input[type=email],
.exit-card input[type=text],
.form-card input[type=email],
.form-card input[type=text],
.gl-tools input[type=search],
.news-band input,
.news-strip .pdf-form input,
.pdf-form input[type=email],
.pdf-form input[type=text],
.pdf-offer .pdf-form input,
.pdf-offer-static .pdf-form input,
.rr-form input[type=number]{height:var(--ctl-h);padding-top:0;padding-bottom:0}
.di-card-head input[type=text],
.dv-card-head input[type=text],
.in-row input[type=number],
.sit-select{height:var(--ctl-h-sm);padding-top:0;padding-bottom:0}

/* ---------- papéis tipográficos ---------- */
.hero h1{font-family:var(--ff-ui);font-size:var(--fs-display);font-weight:800;line-height:var(--lh-display);letter-spacing:var(--ls-display);text-transform:none;text-wrap:balance}
.art-head h1{font-family:var(--ff-ui);font-size:var(--fs-h1);font-weight:800;line-height:var(--lh-h1);letter-spacing:var(--ls-h1);text-transform:none;text-wrap:balance}
.about h2,
.art-body h2,
.magnet h2,
.news-band h2,
.sec-head h2{font-family:var(--ff-ui);font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-h2);letter-spacing:var(--ls-h2);text-transform:none;text-wrap:balance}
.art-body h3,
.exit-card h3,
.panel h3,
.panel-solo h2,
.pr-titulo,
.prod h3,
.qa button:after,
.related h3,
.rr-cta-seta,
.term-head h2{font-family:var(--ff-ui);font-size:var(--fs-h3);font-weight:700;line-height:var(--lh-h3);letter-spacing:var(--ls-h3);text-transform:none;text-wrap:balance}
#t15 .di-extra h4,
.box-card h3,
.cmp-block td.face .f-n.f-num,
.cta-box h3,
.di-rm,
.dv-extra h4,
.dv-rm,
.exit-close,
.form-card h3,
.guide h3,
.hero-sim h2,
.m-item h3,
.news-strip h3,
.pdf-offer .card-title,
.pdf-offer-static h3,
.rel-card h4{font-family:var(--ff-ui);font-size:var(--fs-h4);font-weight:700;line-height:var(--lh-h4);letter-spacing:0;text-transform:none;text-wrap:balance}
.qa button{font-family:var(--ff-ui);font-size:var(--fs-h4);font-weight:700;line-height:var(--lh-h4);letter-spacing:0;text-transform:none;text-wrap:balance;min-height:var(--ctl-h-sm)}
.f-grid h3,
.mnav-head,
.mnav-solo{font-family:var(--ff-ui);font-size:var(--fs-ui);font-weight:700;line-height:1.3;letter-spacing:0;text-transform:none}
#t15 .tbl-caption,
.art-cat,
.box-card .box-n,
.callout .k,
.cf-chart-tip .cf-tip-x,
.cmp-block tr.cmp-det .det-t,
.dd-col-title,
.di-hoje h3,
.di-hoje h4,
.di-prox-l .di-prox-m,
.dv-col h3,
.dv-col h5,
.dv-ex-tag,
.exit-kicker,
.g-cat,
.magnet .kicker,
.mito-box .k,
.panel .callout .k,
.panel .warn .k,
.prod.unavailable:before,
.rel-cat,
.result .di-chart-cap,
.result .dv-chart-cap,
.result .rlabel,
.rr-caixa .rr-kicker,
.sec-head .kicker,
.soon-badge,
.tbl-caption,
.term-head .cat,
.toc-d>summary,
.warn .k,
header.art-head nav.toc .toc-rot{font-family:var(--ff-ui);font-size:var(--fs-micro);font-weight:700;line-height:var(--lh-micro);letter-spacing:var(--ls-over);text-transform:uppercase}
.hero .lead,
.magnet p.sub,
.sec-head p,
.sim-intro .sim-lede{font-family:var(--ff-text);font-size:var(--fs-lead);font-weight:400;line-height:var(--lh-lead);letter-spacing:0;text-transform:none}
.about p,
.art-body .sim-intro,
.art-body li,
.art-body p,
.callout p,
.guide p,
.prod p,
.qa .ans,
.qa .ans p,
.sim-intro,
.term p,
.warn p,
body{font-family:var(--ff-text);font-size:var(--fs-body);font-weight:400;line-height:var(--lh-body);letter-spacing:0;text-transform:none}
#t15 table.tbl,
.art-body .di-resumo,
.art-body .panel-solo .desc,
.art-body .result .rnote,
.art-body .rnote,
.bias,
.box-card p,
.calc-row,
.campo-l,
.cf-painel .pdf-form label,
.cf-painel>p:first-child,
.chart-legend-item,
.cmp-block > p.cmp-note:first-child,
.cmp-block tbody td,
.cmp-block td.face .f-n.f-nd,
.cmp-block ul.cmp-quick-list,
.cta-box p,
.dd-col a,
.di-card-corpo .in-row label,
.di-lbl,
.di-prox-l,
.di-prox-vazio,
.di-resumo,
.dv-campos .in-row label,
.dv-esforco,
.dv-linha .dv-nome,
.exit-card p.exit-sub,
.exit-ok,
.field label,
.form-card > p,
.hero-start,
.idx-item,
.in-row label,
.m-item p,
.mito-box p,
.mnav-links a,
.news-band .ok-msg,
.news-band label,
.news-band p,
.news-strip .pdf-form label,
.news-strip>p:not(.form-privacy),
.ok-msg,
.panel .callout p,
.panel .desc,
.panel .warn p,
.panel-solo .desc,
.pdf-form .campo label,
.pdf-offer .pdf-form label,
.pdf-offer .pdf-offer-body>p:not(.card-title):not(.form-privacy),
.pdf-offer p,
.pdf-offer-static .pdf-form label,
.pdf-offer-static .pdf-offer-body>p:not(.card-title):not(.form-privacy),
.pdf-offer-static p,
.pdf-ok,
.related p,
.result .rnote,
.rr-caixa .rr-lista,
.rr-caixa .rr-lista li,
.rr-chk label,
.t-ui,
.term .why,
details.ver-mais>.vm-corpo,
table.tbl,
tbody td{font-family:var(--ff-text);font-size:var(--fs-ui);font-weight:400;line-height:var(--lh-ui);letter-spacing:0;text-transform:none}
.calc-row .val,
.chart-legend-item .val,
.cmp-block table.cmp-faces tbody td.name,
.cmp-block table.cmp-faces td.name,
.cmp-block td .num,
.cmp-block td.face .f-n,
.cmp-block td.face .f-n.f-txt,
.cmp-block td.name,
.cmp-quick-item b,
.cmpbar-val,
.dd-footer a,
.di-prox-l b,
.di-tabela td.di-num,
.field label b,
.hero-sim .sim-more,
.p-price-old,
.sim-split b,
details.ver-mais>summary,
td .num,
td.name{font-family:var(--ff-ui);font-size:var(--fs-ui);font-weight:700;line-height:1.35;letter-spacing:0;text-transform:none}
.art-body .chart-line-cap,
.art-body .corr-note,
.art-body .di-hoje-sub,
.art-body .disclaim,
.art-body .employer-note,
.art-body .metodologia,
.art-body .sl-aviso-iii,
.art-body .toc li,
.art-main table.tbl:has(tr>:nth-child(6)) :is(th,td),
.art-meta,
.cf-chart-tip,
.cf-limite,
.chart-line-cap,
.cite,
.cmp-block .cmp-cenario,
.cmp-block .cmp-note,
.cmp-block .cmp-so-compacto,
.cmp-block td.face .f-e,
.cmp-block tr.cmp-det .det-d,
.cmp-note,
.cmp-quick-label,
.cmpbar-label,
.cookie-text,
.copy,
.corr-note,
.di-hoje p.di-hoje-sub,
.disclaim,
.disclaim-box,
.dv-col .dv-col-sub,
.employer-note,
.f-about p,
.f-grid a,
.fontes li,
.fontes-nota,
.g-meta,
.gl-status,
.hero-sim .sub,
.idx-item .idx-taxa,
.idx-limite-aviso,
.info-i::after,
.limited-note,
.metodologia,
.p-price small,
.pdf-close,
.pdf-continue,
.prod li,
.prod.unavailable .unavail-note,
.result .teto-note,
.rgrid .destaque .di-alt,
.rgrid b .di-mini,
.rgrid div span,
.rr-caixa .rr-consent-curto,
.rr-caixa .rr-erro,
.rr-caixa .rr-motivo,
.rr-exemplo .tbl,
.rr-form .rr-alerta,
.sim-out .cap,
.sl-aviso-iii,
.socials a,
.t-small,
.tabela-anos,
.term .see,
.teto-note,
.toc a,
.topbar,
footer,
footer.f{font-family:var(--ff-text);font-size:var(--fs-small);font-weight:400;line-height:var(--lh-small);letter-spacing:0;text-transform:none}
.nav-back{font-family:var(--ff-text);font-size:var(--fs-small);font-weight:400;line-height:var(--lh-small);letter-spacing:0;text-transform:none;white-space:normal;text-align:right;min-width:0;text-wrap:balance}
.bias em,
.dv-linha .dv-quando,
.rgrid .destaque span,
.rr-exemplo>summary,
.rr-mais>summary{font-family:var(--ff-ui);font-size:var(--fs-small);font-weight:700;line-height:1.35;letter-spacing:0;text-transform:none}
.nota-mais{font-family:var(--ff-ui);font-size:var(--fs-small);font-weight:700;line-height:1.35;letter-spacing:0;text-transform:none;max-width:100%;white-space:normal;text-align:left;text-wrap:balance}
#t15 table.tbl th,
.art-main.art-main table.tbl:has(tr>:nth-child(6)) th,
.cmp-block .srt-b,
.cmp-block table.cmp-faces thead th,
.cmp-block table.cmp-faces thead th:first-child,
.cmp-block thead th,
.tabela-anos thead th,
table.tbl th,
thead th{font-family:var(--ff-ui);font-size:var(--fs-small);font-weight:700;line-height:1.3;letter-spacing:0;text-transform:none}
.art-body .di-exemplo-nota,
.art-body .dv-exemplo-nota,
.cf-painel .form-privacy,
.cmp-block .cmp-scroll-hint,
.cmp-block .srt-sub,
.cmp-block td.face .f-q,
.cmp-block td.face .f-t,
.cmp-block td.name .nm-sub,
.cmp-scroll-hint,
.di-exemplo-nota,
.di-legenda,
.di-split,
.di-tabela .di-nome-desp,
.dv-exemplo-nota,
.dv-linha .dv-tag,
.exit-fine,
.fine,
.form-privacy,
.legal,
.news-band .fine,
.news-strip .form-privacy,
.pdf-fine,
.pdf-offer .form-privacy,
.pdf-offer-static .form-privacy,
.result .chart-line-cap,
.rr-caixa .rr-consent li,
.rr-caixa .rr-consent p,
.rr-caixa .rr-nota,
.rr-consent,
.rr-exemplo .rr-marca,
.rr-form .rr-nota,
.sim-split div,
.trust-l{font-family:var(--ff-text);font-size:var(--fs-micro);font-weight:400;line-height:var(--lh-micro);letter-spacing:0;text-transform:none}
.di-mes,
.news-pill,
.passos li:before,
.prod.feat:before,
.prod.limited:before,
.selo-rel{font-family:var(--ff-ui);font-size:var(--fs-micro);font-weight:700;line-height:1.3;letter-spacing:0;text-transform:none}
.res-fixa .l{font-family:var(--ff-ui);font-size:var(--fs-micro);font-weight:700;line-height:1.3;letter-spacing:0;text-transform:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.info-i{font-family:var(--ff-ui);font-size:var(--fs-micro);font-weight:700;line-height:1.3;letter-spacing:0;text-transform:none;font-family:Georgia,serif}
.rbig,
.result .rbig{font-family:var(--ff-ui);font-size:var(--fs-num-xl);font-weight:800;line-height:1;letter-spacing:-.03em;text-transform:none}
.big,
.di-rbig-metade,
.dv-rbig-metade,
.p-price,
.rgrid .destaque b,
.sim-out .big{font-family:var(--ff-ui);font-size:var(--fs-num-l);font-weight:700;line-height:1.15;letter-spacing:-.02em;text-transform:none}
.res-fixa .v,
.rgrid div b,
.stat-num,
.trust-n{font-family:var(--ff-ui);font-size:var(--fs-num-m);font-weight:700;line-height:1.2;letter-spacing:-.01em;text-transform:none}
.btn,
.cf-btn,
.cf-painel .pdf-form button,
.cta-btn,
.exit-card button[type=submit],
.form-card button,
.mnav-cta,
.news-band button,
.news-strip .pdf-form button,
.pdf-form button,
.pdf-offer .pdf-form button,
.pdf-offer-static .pdf-form button{font-family:var(--ff-ui);font-size:var(--fs-ui);font-weight:700;line-height:1;letter-spacing:0;text-transform:none}
.cmp-open-btn{font-family:var(--ff-ui);font-size:var(--fs-ui);font-weight:700;line-height:1;letter-spacing:0;text-transform:none;display:inline-flex;align-items:center;justify-content:center}
.rel-btn{font-family:var(--ff-ui);font-size:var(--fs-ui);font-weight:700;line-height:1;letter-spacing:0;text-transform:none;text-wrap:balance}
.rr-caixa.rr-recolhida>.rr-cta{font-family:var(--ff-ui);font-size:var(--fs-ui);font-weight:700;line-height:1;letter-spacing:0;text-transform:none;padding-top:18px;padding-bottom:18px;text-wrap:balance}
.cookie-btn,
.di-btn,
.dv-btn,
.nav-cta,
.p-btn,
.pdf-abrir,
.pdf-top,
.res-fixa button{font-family:var(--ff-ui);font-size:var(--fs-small);font-weight:700;line-height:1;letter-spacing:0;text-transform:none}
.hero-rel{font-family:var(--ff-ui);font-size:var(--fs-small);font-weight:700;line-height:1;letter-spacing:0;text-transform:none;white-space:normal;line-height:1.15;text-wrap:balance}
.cmp-block .cmp-more{font-family:var(--ff-ui);font-size:var(--fs-small);font-weight:700;line-height:1;letter-spacing:0;text-transform:none;min-height:var(--chip-h-sm)}
.cmp-block .go{font-family:var(--ff-ui);font-size:var(--fs-small);font-weight:700;line-height:1;letter-spacing:0;text-transform:none;display:inline-flex;align-items:center;justify-content:center}
.go{font-family:var(--ff-ui);font-size:var(--fs-small);font-weight:700;line-height:1;letter-spacing:0;text-transform:none;display:inline-flex;align-items:center;justify-content:center}
#simuladores .sim-ver-mais .ver-mais-btn,
.ctab,
.ctab.active,
.filt,
.filt.active,
.gl-chip,
.sfilt,
.sfilt.active,
.tab,
.ver-mais-btn{font-family:var(--ff-ui);font-size:var(--fs-small);font-weight:600;line-height:1.2;letter-spacing:0;text-transform:none}
header.art-head nav.toc a{font-family:var(--ff-ui);font-size:var(--fs-small);font-weight:600;line-height:1.2;letter-spacing:0;text-transform:none;min-height:var(--chip-h-sm);display:inline-flex;align-items:center;white-space:nowrap}
.term-nav a{font-family:var(--ff-ui);font-size:var(--fs-small);font-weight:600;line-height:1.2;letter-spacing:0;text-transform:none;display:inline-flex;align-items:center;min-height:var(--chip-h-sm)}
.cf-painel .pdf-form input,
.exit-card input[type=email],
.exit-card input[type=text],
.form-card input[type=email],
.form-card input[type=text],
.gl-tools input[type=search],
.news-band input,
.news-strip .pdf-form input,
.pdf-form input[type=email],
.pdf-form input[type=text],
.pdf-offer .pdf-form input,
.pdf-offer-static .pdf-form input,
.rr-form input[type=number]{font-family:var(--ff-text);font-size:var(--fs-field);font-weight:400;line-height:1.3;letter-spacing:0;text-transform:none}
.di-card-head input[type=text],
.dv-card-head input[type=text],
.in-row input[type=number],
.sit-select{font-family:var(--ff-ui);font-size:var(--fs-field);font-weight:700;line-height:1.3;letter-spacing:0;text-transform:none}
.menu-btn{font-family:var(--ff-text);font-size:var(--fs-ui);font-weight:600;line-height:1.3;letter-spacing:0;text-transform:none}
.brand,
.f-grid .brand{font-family:var(--ff-ui);font-size:var(--fs-brand);font-weight:800;line-height:1.2;letter-spacing:-.02em;text-transform:none}

/* ---------- seletores cujo tamanho já era forçado (!important) no CSS antigo: continuam a ganhar a regras mais específicas ---------- */
.art-head h1{font-family:var(--ff-ui)!important;font-size:var(--fs-h1)!important;font-weight:800!important;line-height:var(--lh-h1)!important;letter-spacing:var(--ls-h1)!important;text-transform:none!important;text-wrap:balance!important}
.news-strip h3,
.pdf-offer .card-title,
.pdf-offer-static h3{font-family:var(--ff-ui)!important;font-size:var(--fs-h4)!important;font-weight:700!important;line-height:var(--lh-h4)!important;letter-spacing:0!important;text-transform:none!important;text-wrap:balance!important}
.cmp-block td.face .f-n.f-nd,
.news-strip>p:not(.form-privacy),
.pdf-offer .pdf-offer-body>p:not(.card-title):not(.form-privacy),
.pdf-offer-static .pdf-offer-body>p:not(.card-title):not(.form-privacy){font-family:var(--ff-text)!important;font-size:var(--fs-ui)!important;font-weight:400!important;line-height:var(--lh-ui)!important;letter-spacing:0!important;text-transform:none!important}
.cmp-block .srt-b,
.cmp-block table.cmp-faces thead th{font-family:var(--ff-ui)!important;font-size:var(--fs-small)!important;font-weight:700!important;line-height:1.3!important;letter-spacing:0!important;text-transform:none!important}
.cmp-block .srt-sub,
.cmp-block td.face .f-q,
.cmp-block td.name .nm-sub,
.di-exemplo-nota,
.di-legenda,
.dv-exemplo-nota,
.news-strip .form-privacy,
.pdf-offer .form-privacy,
.pdf-offer-static .form-privacy{font-family:var(--ff-text)!important;font-size:var(--fs-micro)!important;font-weight:400!important;line-height:var(--lh-micro)!important;letter-spacing:0!important;text-transform:none!important}
.di-rbig-metade,
.dv-rbig-metade{font-family:var(--ff-ui)!important;font-size:var(--fs-num-l)!important;font-weight:700!important;line-height:1.15!important;letter-spacing:-.02em!important;text-transform:none!important}
.cf-btn,
.cf-painel .pdf-form button,
.news-strip .pdf-form button,
.pdf-offer .pdf-form button,
.pdf-offer-static .pdf-form button{font-family:var(--ff-ui)!important;font-size:var(--fs-ui)!important;font-weight:700!important;line-height:1!important;letter-spacing:0!important;text-transform:none!important}
