/* ============================================================
   fn-home.css — Home pública do portal Blazor (porta fiel de
   apps\3-Portal-WEB-VB-DSV\src\FUNARPEN_PORTAL\assets\css\default2.css +
   ...\AnaliseDados\Evolucao\ad_evolucao_gratuidade.css)

   ESCOPADO sob o wrapper ".fn-home" (raiz de Inicio.razor) — os tokens
   --navy/--gold/--paper/etc. vivem AQUI, não em :root, para não vazar nos
   tokens --fn-* do resto do app (fn-base.css/fn-site-shell.css). O restante
   do portal (Gestão/Serviço) não referencia nenhum token deste arquivo.

   Tema editorial cívico: navy + papel marfim, ouro institucional,
   verde-jade (nasc./óbito), azul (certidões), ciano (demais atos).
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400&family=Hanken+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap');

/* ============================================================ TOKENS (escopados) */
.fn-home{
  --navy:#0A2E6E; --navy-deep:#071E49; --ink:#0B1E3A;
  --blue:#0A3FA8; --blue-soft:#5B8DEF; --cyan:#00C2FF;
  --green:#23A98A; --green-deep:#0A5A4D;
  --gold:#C7A24B; --gold-soft:#E7D6A8;
  --paper:#F6F1E7; --paper-2:#EFE7D6; --line:#DDD2BD;
  --serif:"Fraunces",Georgia,serif;
  --sans:"Hanken Grotesk",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;
  --shadow:0 24px 60px -28px rgba(7,30,73,.45);
  --shadow-sm:0 10px 28px -16px rgba(7,30,73,.40);

  /* Override de tokens Bootstrap p/ a marca, só dentro do wrapper */
  --bs-primary:#0A2E6E; --bs-primary-rgb:10,46,110;
  --bs-body-font-family:var(--sans);
  --bs-body-color:#0B1E3A; --bs-body-bg:var(--paper);
  --bs-border-color:var(--line);

  font-family:var(--sans);background:var(--paper);color:var(--ink);
  -webkit-font-smoothing:antialiased;

  /* ===== full-bleed do WRAPPER INTEIRO (uma única vez aqui, não em cada
     .bleed) — escapa do max-width:1200px + padding da .fn-leitura (o
     container de leitura do LayoutPublico) para ocupar a largura real do
     viewport. width:auto + margin-inline simétrico (em vez de width:100vw
     fixo) chega no mesmo resultado (Cw - 2*(Cw/2 - 50vw) = 100vw) mas via
     a técnica recomendada; aplicar isso 1x no wrapper — e não repetir a
     conta em cada seção .bleed — evita empilhar o resíduo de arredondamento
     (scrollbar) e evita a antiga falha: o .fn-home ficava PRESO na largura
     de leitura (~1200px, x≈180..1330 num viewport de 1512px) e o
     overflow-x:hidden CORTAVA cada .bleed exatamente nessa borda estreita —
     por isso as bandas "começavam" em x≈200 em vez de x=0.
     overflow-x:clip (não hidden) absorve o resíduo sub-pixel de 100vw
     (que inclui a faixa da scrollbar vertical, ~15-17px maior que a
     largura visível real, document.clientWidth) sem gerar scrollbar
     horizontal. Diferença crítica vs. overflow-x:hidden: por regra do spec
     CSS Overflow (§3.3), definir só overflow-x != visible OBRIGA o
     overflow-y computado a virar auto — ou seja, o .fn-home hidden virava
     sem querer um SCROLL CONTAINER vertical próprio (ainda por cima com
     conteúdo interno realmente mais largo que si mesmo, por causa dos
     .bleed antigos em 100vw), competindo com o scroll da página pelo
     wheel no meio do hero. Com o .fn-home já genuinamente 100vw de largura,
     não sobra conteúdo interno mais largo que ele mesmo (nada pra
     rolar/disputar) — o swap para auto fica inerte. */
  width:auto;margin-inline:calc(50% - 50vw);overflow-x:clip;
}
.fn-home h1,.fn-home h2,.fn-home h3,.fn-home .serif{font-family:var(--serif);font-weight:500;letter-spacing:-.015em;line-height:1.05}
.fn-home ::selection{background:var(--gold);color:var(--navy-deep)}
.fn-home a{text-decoration:none}
.fn-home .font-mono{font-family:var(--mono)}
.fn-home .text-gold{color:var(--gold)!important}
.fn-home .em{color:var(--blue);font-style:italic;font-weight:400}
.fn-home .kicker{font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--green-deep);
  font-weight:500;display:inline-flex;align-items:center;gap:.6em}
.fn-home .kicker::before{content:"";width:26px;height:1px;background:var(--gold);display:inline-block}
.fn-home .section-pad{padding-top:clamp(70px,9vw,116px);padding-bottom:clamp(70px,9vw,116px)}

/* ===== full bleed das SEÇÕES — o .fn-home (acima, no bloco de tokens) já
   escapou do max-width:1200px da .fn-leitura e hoje É a largura real do
   viewport; cada .bleed só precisa ocupar 100% dele. Nada de width:100vw
   por seção aqui — isso repetiria a conta (e o resíduo de scrollbar) em
   cada uma das ~9 bandas da página, além de ser redundante: um <div>
   comum já ocupa 100% do pai por padrão. ===== */
.fn-home .bleed{width:100%}

/* ===== barra oficial ===== */
.fn-home .gov-bar{background:var(--navy-deep);color:#cfe0ff;font-family:var(--mono);font-size:.72rem;letter-spacing:.04em}
.fn-home .gov-bar a{color:#cfe0ff;opacity:.8}.fn-home .gov-bar a:hover{opacity:1;color:#fff}
.fn-home .gov-bar .dot{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 3px rgba(0,194,255,.18);display:inline-block}
.fn-home .gov-bar .a11y-btn{background:transparent;border:1px solid rgba(255,255,255,.22);color:#cfe0ff;width:24px;height:22px;
  border-radius:5px;font-family:var(--serif);font-size:.72rem;line-height:1;padding:0}
.fn-home .gov-bar .a11y-btn:hover{border-color:var(--cyan);color:#fff}
.fn-home .gov-bar-row{height:34px}

/* ===== barra de âncoras (substitui a navbar própria da home — o header
   do LayoutPublico já cobre logo/Entrar) ===== */
.fn-home .anchor-bar{background:rgba(246,241,231,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.fn-home .anchor-bar__row{display:flex;flex-wrap:wrap;gap:.2rem;padding:.5rem 0}
.fn-home .anchor-bar a{font-size:.82rem;font-weight:600;color:var(--ink);padding:.4rem .7rem;border-radius:8px}
.fn-home .anchor-bar a:hover{color:var(--navy);background:var(--paper-2)}
.fn-home .btn-brand{background:var(--navy);color:#fff;font-weight:700;border-radius:10px;box-shadow:var(--shadow-sm)}
.fn-home .btn-brand:hover{background:var(--navy-deep);color:#fff;transform:translateY(-1px)}
/* texto do botão dourado escurecido p/ #04122c (em vez de --navy-deep) + peso 700:
   eleva o contraste de 6,73:1 p/ ~7,1:1 (AAA) sem alterar a cor de fundo --gold */
.fn-home .btn-gold{background:var(--gold);color:#04122c;font-weight:700;border-radius:11px}
.fn-home .btn-gold:hover{background:var(--gold-soft);color:#04122c;transform:translateY(-2px)}
.fn-home .btn-ghost{background:transparent;color:#eaf1ff;border:1px solid rgba(255,255,255,.28);font-weight:600;border-radius:11px}
.fn-home .btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.06);color:#fff}

/* ============================================================ HERO */
.fn-home .hero{position:relative;background:var(--navy-deep);color:#eaf1ff;overflow:hidden}
.fn-home .hero .field{position:absolute;inset:0;pointer-events:none}
.fn-home .hero .mesh{position:absolute;inset:-20%;
  background:radial-gradient(48vw 48vw at 80% 8%,rgba(0,194,255,.22),transparent 60%),
            radial-gradient(44vw 44vw at 12% 88%,rgba(199,162,75,.20),transparent 60%),
            radial-gradient(60vw 50vw at 50% 40%,rgba(10,63,168,.40),transparent 70%);
  filter:blur(8px);animation:fnhome-drift 26s ease-in-out infinite alternate}
@keyframes fnhome-drift{from{transform:translate3d(-2%,-1%,0) scale(1.02)}to{transform:translate3d(3%,2%,0) scale(1.08)}}
.fn-home .hero .gridlines{position:absolute;inset:0;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:64px 64px;mask-image:radial-gradient(120% 90% at 50% 30%,#000 35%,transparent 78%)}
.fn-home .hero .wrap-z{position:relative;z-index:2}
.fn-home .hero .pill{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-soft);border:1px solid rgba(231,214,168,.32);border-radius:100px;
  padding:7px 15px;background:rgba(199,162,75,.08)}
.fn-home .blink{width:7px;height:7px;border-radius:50%;background:var(--cyan);display:inline-block;animation:fnhome-blink 2s ease-in-out infinite}
@keyframes fnhome-blink{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(0,194,255,.5)}50%{opacity:.5;box-shadow:0 0 0 6px rgba(0,194,255,0)}}
.fn-home .hero h1{font-size:clamp(1.9rem,4.2vw,3.3rem);color:#fff;letter-spacing:-.02em;max-width:20ch}
.fn-home .hero h1 .emg{color:var(--gold);font-style:italic;font-weight:400}
.fn-home .hero .lede{font-size:clamp(.98rem,1.2vw,1.08rem);color:#c3d3ef;max-width:62ch;line-height:1.65}

/* painel de dado vivo */
.fn-home .live-card{background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.14);border-radius:18px;backdrop-filter:blur(8px);box-shadow:var(--shadow)}
.fn-home .live-card .t{font-family:var(--mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:#9fb6e0}
.fn-home .live-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.62rem;color:var(--cyan);letter-spacing:.08em}
.fn-home .live-pill .d{width:6px;height:6px;border-radius:50%;background:var(--cyan);animation:fnhome-blink 1.6s infinite}
.fn-home .live-pill.off{color:#e6b86b}.fn-home .live-pill.off .d{background:#e6b86b;animation:none}
.fn-home .live-sub{color:#9fb6e0;font-size:.8rem}
.fn-home .big-num{font-family:var(--mono);font-weight:700;font-size:clamp(2.2rem,4.4vw,3rem);color:#fff;letter-spacing:-.02em;line-height:1}
.fn-home .mini-row .nm{display:flex;align-items:center;gap:8px;font-size:.82rem;color:#cdddf6}
.fn-home .mini-row .nm i{width:9px;height:9px;border-radius:3px;flex:none}
.fn-home .mini-row .vv{font-family:var(--mono);font-size:.86rem;color:#fff;font-weight:500}
.fn-home .mini-row .track{height:6px;background:rgba(255,255,255,.1);border-radius:5px;overflow:hidden;margin-top:6px}
.fn-home .mini-row .fill{height:100%;border-radius:5px;transform-origin:left;transform:scaleX(0);transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.fn-home .live-foot{border-top:1px solid rgba(255,255,255,.12)}
.fn-home .src{font-family:var(--mono);font-size:.64rem;color:#86a4d6}.fn-home .src b{color:#bcd0f1;font-weight:500}
.fn-home .btn-refresh{font-family:var(--mono);font-size:.66rem;color:var(--cyan);background:rgba(0,194,255,.08);
  border:1px solid rgba(0,194,255,.25);border-radius:8px;padding:6px 11px}
.fn-home .btn-refresh:hover{background:rgba(0,194,255,.16);color:var(--cyan)}
.fn-home .btn-refresh i{transition:transform .6s;display:inline-block}.fn-home .btn-refresh.spin i{transform:rotate(360deg)}

/* faixa de métricas */
.fn-home .metrics{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12);border-radius:16px;overflow:hidden}
.fn-home .metric{background:var(--navy-deep);padding:22px 24px;height:100%}
.fn-home .metric .v{font-family:var(--mono);font-weight:700;font-size:clamp(1.4rem,2.6vw,1.95rem);color:#fff;letter-spacing:-.01em}
.fn-home .metric .l{font-size:.78rem;color:#a7bce2}
.fn-home .metric.total .v{color:var(--gold)}
.fn-home .g-px{--bs-gutter-x:1px;--bs-gutter-y:1px}

/* ============================================================ ARCO */
.fn-home .node{width:92px;height:92px;border-radius:22px;background:#fff;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;position:relative;box-shadow:var(--shadow-sm);transition:.3s}
.fn-home .node svg{width:40px;height:40px;color:var(--navy);transition:.3s}
.fn-home .node::after{content:"";position:absolute;inset:-1px;border-radius:22px;border:1.5px solid var(--gold);opacity:0;transition:.3s}
.fn-home .stop:hover .node{transform:translateY(-6px);border-color:transparent}
.fn-home .stop:hover .node::after{opacity:1}.fn-home .stop:hover .node svg{color:var(--blue);transform:scale(1.06)}
.fn-home .stop .step{font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;color:var(--green-deep);text-transform:uppercase}
.fn-home .stop .tag{font-family:var(--mono);font-size:.7rem;letter-spacing:.04em;color:var(--navy);background:var(--paper-2);
  border:1px solid var(--line);border-radius:7px;padding:4px 10px;display:inline-block}
.fn-home .stop-h{font-size:1.32rem}
.fn-home .rail{position:absolute;top:46px;left:8%;right:8%;height:2px;
  background:linear-gradient(90deg,transparent,var(--gold) 12%,var(--gold) 88%,transparent);opacity:.55;z-index:0}

/* ============================================================ ESTATÍSTICAS */
.fn-home .stats{background:var(--navy);color:#eaf1ff;position:relative;overflow:hidden}
.fn-home .stats::before{content:"";position:absolute;inset:0;opacity:.55;
  background:radial-gradient(50vw 40vw at 85% 6%,rgba(0,194,255,.16),transparent 60%),
            radial-gradient(40vw 40vw at 5% 96%,rgba(199,162,75,.14),transparent 60%)}
.fn-home .stats .wrap-z{position:relative;z-index:2}
.fn-home .statusbar{font-family:var(--mono);font-size:.72rem;color:#9fb6e0}
.fn-home .statusbar .chip{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.13);border-radius:8px;padding:6px 12px;letter-spacing:.03em}
.fn-home .statusbar .chip .dot{width:7px;height:7px;border-radius:50%;background:var(--cyan);animation:fnhome-blink 1.6s infinite}
.fn-home .statusbar .chip.off .dot{background:#e6b86b;animation:none}
.fn-home .statusbar .chip b,.fn-home .statusbar b{color:#e7eefb;font-weight:500}
.fn-home .panel{background:rgba(255,255,255,.05)!important;border:1px solid rgba(255,255,255,.13)!important;border-radius:18px;backdrop-filter:blur(6px)}
.fn-home .panel .lab{font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:#9fb6e0}
.fn-home .panel .lab .chip{color:var(--cyan)}

.fn-home .donut{position:relative;width:230px;height:230px;flex:none}
.fn-home .donut svg{transform:rotate(-90deg);width:100%;height:100%}
.fn-home .donut .seg{fill:none;stroke-width:26;stroke-linecap:round;stroke-dasharray:0 999;transition:stroke-dasharray 1.2s cubic-bezier(.2,.8,.2,1)}
.fn-home .donut .donut-bg{stroke:rgba(255,255,255,.08)}
.fn-home #segNO{stroke:var(--green)}.fn-home #segC{stroke:var(--blue-soft)}.fn-home #segM{stroke:var(--gold)}.fn-home #segD{stroke:var(--cyan)}
.fn-home .donut .ctr{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.fn-home .donut .ctr .n{font-family:var(--mono);font-weight:700;font-size:1.9rem;color:#fff;letter-spacing:-.02em;line-height:1}
.fn-home .donut .ctr .l{font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:#9fb6e0;margin-top:6px}
.fn-home .legend{min-width:170px}
.fn-home .legend .it{display:grid;grid-template-columns:auto 1fr auto;gap:4px 11px;align-items:center}
.fn-home .legend .it i{width:11px;height:11px;border-radius:4px;grid-row:span 2}
.fn-home .legend .it .nm{font-size:.9rem;color:#e2ebfb;font-weight:500}
.fn-home .legend .it .pc{font-family:var(--mono);font-size:.86rem;color:#fff}
.fn-home .legend .it .vv{grid-column:2/-1;font-family:var(--mono);font-size:.74rem;color:#9fb6e0}

.fn-home .statrow .ic{width:46px;height:46px;border-radius:13px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;color:#fff;flex:none}
.fn-home .statrow .ic svg{width:23px;height:23px}
.fn-home .statrow .l{font-size:.82rem;color:#9fb6e0}
.fn-home .statrow .l b{color:#fff;font-family:var(--mono);font-weight:700;font-size:1.15rem}
.fn-home .statrow .track{height:9px;background:rgba(255,255,255,.1);border-radius:6px;overflow:hidden;margin-top:8px}
.fn-home .statrow .fill{height:100%;border-radius:6px;transform-origin:left;transform:scaleX(0);transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.fn-home .fill-no{background:linear-gradient(90deg,var(--green),var(--green-deep))}
.fn-home .fill-c{background:linear-gradient(90deg,var(--blue-soft),var(--blue))}
.fn-home .fill-m{background:linear-gradient(90deg,var(--gold),#a9842f)}
.fn-home .fill-d{background:linear-gradient(90deg,var(--cyan),#0a8fd6)}
.fn-home .kpi{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:18px;height:100%}
.fn-home .kpi .n{font-family:var(--mono);font-weight:700;font-size:1.5rem;color:#fff}.fn-home .kpi .n .u{color:var(--gold);font-size:.6em}
.fn-home .kpi .l{font-size:.76rem;color:#9fb6e0;margin-top:3px}
.fn-home .note-mono{font-family:var(--mono);font-size:.74rem;color:#86a4d6}.fn-home .note-mono a{color:var(--cyan);border-bottom:1px solid rgba(0,194,255,.4)}

/* marcadores de cor (categorias) */
.fn-home .c-no{background:var(--green)}.fn-home .c-c{background:var(--blue-soft)}.fn-home .c-m{background:var(--gold)}.fn-home .c-d{background:var(--cyan)}

/* ============================================================ CARDS GERAIS */
.fn-home .card-paper{background:#fff;border:1px solid var(--line);border-radius:16px;transition:.25s}
.fn-home .card-paper:hover{border-color:var(--gold);box-shadow:var(--shadow-sm)}
.fn-home .mvv .ic{width:46px;height:46px;border-radius:12px;background:var(--paper-2);display:flex;align-items:center;justify-content:center;color:var(--navy);flex:none}
.fn-home .mvv .ic svg{width:22px;height:22px}
.fn-home .mvv-item:hover{transform:translateX(5px)}
.fn-home .mvv-h{font-size:1.18rem}
.fn-home .law{position:relative;overflow:hidden}
.fn-home .law::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--line)}
.fn-home .law.now::before{background:var(--gold)}
.fn-home .law .yr{font-family:var(--serif);font-style:italic;font-size:2.4rem;color:var(--navy);line-height:1}
.fn-home .law.now .yr{color:var(--green-deep)}
.fn-home .law .nm{font-family:var(--mono);font-size:.78rem;letter-spacing:.05em;color:var(--blue);font-weight:500}
.fn-home .law .badge-gold{font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--navy-deep);
  background:var(--gold);border-radius:6px;padding:3px 8px;font-weight:700}
.fn-home .badge-corner{top:18px;right:18px}
.fn-home .org-card .n{font-family:var(--mono);font-size:.72rem;color:var(--green-deep);letter-spacing:.14em;text-transform:uppercase}
.fn-home .org-card li{font-size:.9rem;color:#54627a;display:flex;gap:10px;align-items:baseline}
.fn-home .org-card li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--blue);flex:none;transform:translateY(-2px)}
.fn-home .org-h{font-size:1.3rem}

/* faixa em papel-2 (legislação / cartórios / gratuidade) */
.fn-home .band-paper2{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* ============================================================ PUBLICAÇÕES */
.fn-home .pubs{background:var(--navy-deep);color:#eaf1ff}
.fn-home .pub-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.13);border-radius:16px;overflow:hidden;transition:.25s;height:100%}
.fn-home .pub-card:hover{transform:translateY(-4px);border-color:rgba(199,162,75,.5);background:rgba(255,255,255,.08)}
.fn-home .pub-card .ph{height:200px;background:linear-gradient(135deg,rgba(0,194,255,.25),rgba(10,63,168,.5)),
  radial-gradient(circle at 30% 30%,rgba(199,162,75,.4),transparent 50%);display:flex;align-items:flex-end;padding:18px}
.fn-home .pub-card .ph--foto{position:relative;padding:0;overflow:hidden;height:200px}
.fn-home .pub-card .ph--foto .pub-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.fn-home .pub-card .ph--foto::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(4,12,30,.78),rgba(4,12,30,.05) 55%)}
.fn-home .pub-card .ph--foto .tag{position:absolute;left:18px;bottom:18px;z-index:2}
@media (max-width:575.98px){.fn-home .pub-card .ph--foto{height:180px}}

.fn-home .pub-feat{display:flex;flex-wrap:wrap;background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.13);border-radius:18px;overflow:hidden;height:100%}
.fn-home .pub-feat:hover{border-color:rgba(199,162,75,.45)}
.fn-home .pub-feat__media{position:relative;flex:1 1 340px;min-height:320px}
.fn-home .pub-feat__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.fn-home .pub-feat__media .tag{position:absolute;left:18px;top:18px;z-index:2}
.fn-home .pub-feat__media figcaption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:16px;
  font-family:var(--mono);font-size:.7rem;line-height:1.45;color:#dfe9ff;
  background:linear-gradient(to top,rgba(4,12,30,.92),rgba(4,12,30,.05))}
.fn-home .pub-feat__body{flex:1 1 440px;padding:30px 32px;display:flex;flex-direction:column;gap:14px}
.fn-home .pub-feat__deck{font-size:1.04rem;color:#d6e4ff;font-weight:500;margin:0}
.fn-home .pub-feat__body p{margin:0;color:#bcd0f1;font-size:.94rem;line-height:1.65}
.fn-home .pub-why{border-left:3px solid var(--gold);background:rgba(199,162,75,.09);
  border-radius:0 10px 10px 0;padding:12px 16px;color:#e7d8ad;font-size:.9rem;line-height:1.55}
.fn-home .pub-why b{color:var(--gold);font-weight:700}
.fn-home .pub-src{font-family:var(--mono);font-size:.72rem;color:#8fa6cf;letter-spacing:.04em;margin-top:auto;padding-top:4px}
@media (max-width:575.98px){.fn-home .pub-feat__body{padding:24px 22px}.fn-home .pub-feat__media{min-height:230px;flex-basis:100%}}
.fn-home .tag{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--navy-deep);
  background:var(--gold);border-radius:6px;padding:4px 9px;font-weight:700;display:inline-block}
.fn-home .dt{font-family:var(--mono);font-size:.72rem;color:#9fb6e0}
.fn-home .pub-card .more,.fn-home .pub-feat .more{font-family:var(--mono);font-size:.74rem;color:var(--cyan);
  text-decoration:none;display:inline-flex;align-items:center;gap:6px;width:max-content}
.fn-home .pub-feat .more{margin-top:6px}
.fn-home .pub-card .more:hover,.fn-home .pub-feat .more:hover{color:var(--gold)}
.fn-home .pub-card:hover .more i,.fn-home .pub-feat:hover .more i{transform:translateX(4px)}
.fn-home .pub-card .more i,.fn-home .pub-feat .more i{transition:transform .2s;display:inline-block}
.fn-home .pub-title{font-size:1.5rem}.fn-home .pub-title-sm{font-size:1.1rem}
.fn-home .txt-on-navy-sm{font-size:.92rem;color:#bcd0f1}

/* ============================================================ CONTATO/FOOTER da página */
.fn-home .contact-box{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.fn-home .contact-box::before{content:"";position:absolute;right:-80px;top:-80px;width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle,rgba(199,162,75,.16),transparent 70%)}
.fn-home .way .ic{width:42px;height:42px;border-radius:11px;background:var(--paper-2);display:flex;align-items:center;justify-content:center;color:var(--navy);flex:none}
.fn-home .form-control{background:var(--paper);border:1px solid var(--line);border-radius:11px}
.fn-home .form-control:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(10,63,168,.1);background:#fff}
.fn-home .form-label{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#485164}
.fn-home .page-footer{background:var(--navy-deep);color:#a7bce2}
.fn-home .page-footer .wm{font-family:var(--serif);font-size:1.7rem;color:#fff}.fn-home .page-footer .wm b{color:var(--gold);font-weight:500}
.fn-home .page-footer h4{font-family:var(--mono);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold)}
.fn-home .page-footer a{color:#bcd0f1}.fn-home .page-footer a:hover{color:#fff}
.fn-home .page-footer .foot-about{font-size:.85rem;color:#86a4d6;max-width:34ch;line-height:1.6}
.fn-home .foot-bottom{border-top:1px solid rgba(255,255,255,.1);font-family:var(--mono);font-size:.74rem;color:#6f8bbd}

/* ============================================================ CARTÓRIOS (mapa) */
.fn-home .cartorios{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fn-home .map-shell{position:relative;border:1px solid var(--line);border-radius:18px;overflow:hidden;
  background:var(--navy-deep);box-shadow:var(--shadow);height:clamp(520px,76vh,820px)}
.fn-home .map-shell iframe{display:block;width:100%;height:100%;border:0;background:#dfeaf2}
.fn-home .map-shell .map-load{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;color:#cdddf6;background:var(--navy-deep);pointer-events:none;transition:opacity .5s;z-index:2}
.fn-home .map-shell.ready .map-load{opacity:0}
.fn-home .map-load .ring{width:42px;height:42px;border-radius:50%;border:3px solid rgba(255,255,255,.18);
  border-top-color:var(--cyan);animation:fnhome-mapspin 1s linear infinite}
@keyframes fnhome-mapspin{to{transform:rotate(360deg)}}
.fn-home .map-load span{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;color:#9fb6e0}
.fn-home .map-fs{position:absolute;top:14px;right:14px;left:auto;z-index:3;display:inline-flex;align-items:center;gap:7px;
  font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.04em;
  background:rgba(7,30,73,.78);color:#eaf1ff;border:1px solid rgba(255,255,255,.2);
  border-radius:10px;padding:8px 12px;cursor:pointer;backdrop-filter:blur(6px);transition:background .15s,border-color .15s}
.fn-home .map-fs:hover{background:var(--navy);border-color:var(--cyan);color:#fff}
.fn-home .map-fs .lbl-exit{display:none}
.fn-home .map-shell.is-full{position:fixed;inset:0;z-index:3000;height:100%;border:0;border-radius:0}
.fn-home .map-shell.is-full .map-fs .lbl-open{display:none}
.fn-home .map-shell.is-full .map-fs .lbl-exit{display:inline}
body.map-locked{overflow:hidden}
.fn-home .map-hint{font-family:var(--mono);font-size:.74rem;color:#7c879b}
.fn-home .map-hint i{color:var(--blue)}

/* ============================================================ TÍTULOS / TIPOGRAFIA DE SEÇÃO */
.fn-home .h2-xl{font-size:clamp(2rem,4.4vw,3.2rem)}
.fn-home .h2-lg{font-size:clamp(2rem,4.2vw,3rem)}
.fn-home .h2-md{font-size:clamp(1.9rem,4vw,2.8rem)}
.fn-home .emg-cyan{color:var(--cyan);font-style:italic;font-weight:400}
.fn-home .emg-gold{color:var(--gold);font-style:italic;font-weight:400}

/* medidas de linha (measure) */
.fn-home .mw-head{max-width:20ch}.fn-home .mw-prose-sm{max-width:54ch}.fn-home .mw-prose{max-width:62ch}.fn-home .mw-tight{max-width:34ch}

/* tons de texto sobre papel */
.fn-home .lead-prose{color:#48566c;font-size:1.05rem}
.fn-home .lead-about{color:#3a475c;font-size:1.12rem;line-height:1.7}
.fn-home .txt-slate{color:#48566c}
.fn-home .txt-muted{color:#54627a}
.fn-home .txt-sm-muted{font-size:.92rem;color:#54627a}
.fn-home .txt-sm-muted2{font-size:.9rem;color:#54627a}
.fn-home .txt-95-muted{color:#54627a;font-size:.95rem}
.fn-home .txt-intro{color:#54627a;font-size:1.05rem}

/* tons de texto sobre navy */
.fn-home .txt-on-navy{color:#bcd0f1}

/* reveal */
.fn-home .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1)}
.fn-home .reveal.in{opacity:1;transform:none}
.fn-home .reveal.d1{transition-delay:.08s}.fn-home .reveal.d2{transition-delay:.16s}.fn-home .reveal.d3{transition-delay:.24s}.fn-home .reveal.d4{transition-delay:.32s}
@media(prefers-reduced-motion:reduce){.fn-home *{animation:none!important;transition:none!important}.fn-home .reveal{opacity:1;transform:none}}


/* ════════════════════════════════════════════════════════════════════════
   EVOLUÇÃO DA GRATUIDADE (porte de ad_evolucao_gratuidade.css)
   Já era autocontido sob .adevg-* no original; mantido aqui prefixado com
   .fn-home por consistência de escopo.
   ════════════════════════════════════════════════════════════════════════ */
.fn-home .adevg{
    --adevg-navy:    #0b2f4a;
    --adevg-ink:     #102a43;
    --adevg-teal:    #2f8f88;
    --adevg-accent:  #5c99ee;
    --adevg-slate:   #475569;
    --adevg-muted:   #64748b;
    --adevg-border:  #e4ecf4;
    --adevg-surface: #ffffff;

    max-width: 1240px;
    margin: 0 auto;
    padding: 6px 4px 40px;
    color: var(--adevg-ink);
}
.fn-home .adevg-section-title{text-align:center;margin:10px 2px 28px}
.fn-home .adevg-section-title h3{
    font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
    font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--adevg-navy);margin:0 0 6px;
}
.fn-home .adevg-section-title p{font-size:14px;color:var(--adevg-slate);margin:0}
.fn-home .adevg-periodo{font-weight:600;color:var(--adevg-teal)}
.fn-home .adevg-periodo em{font-style:normal;font-weight:500;color:var(--adevg-muted)}

.fn-home .adevg-features-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:30px}
@media (max-width:768px){.fn-home .adevg-features-grid{grid-template-columns:1fr}}
@media (min-width:1400px){.fn-home .adevg-features-grid{grid-template-columns:repeat(4,1fr)}}

.fn-home .adevg-features-card{
    position:relative;background-color:var(--adevg-surface);border:1px solid var(--adevg-border);
    border-radius:15px;box-shadow:0 5px 25px rgba(0,0,0,.05);padding:30px;
    transition:transform .3s,box-shadow .3s;overflow:hidden;height:100%;display:flex;flex-direction:column;
}
.fn-home .adevg-features-card:hover{transform:translateY(-10px);box-shadow:0 10px 30px rgba(0,0,0,.1)}
.fn-home .adevg-features-card h3{font-size:22px;font-weight:700;margin-bottom:15px;color:var(--adevg-navy)}
.fn-home .adevg-features-card .adevg-counter-wrap{font-variant-numeric:tabular-nums;color:var(--adevg-teal);margin-bottom:10px}
.fn-home .adevg-features-card p{font-size:15px;margin-bottom:20px;color:var(--adevg-slate)}

.fn-home .adevg-features-list{margin-top:auto;margin-bottom:25px}
.fn-home .adevg-feature-item{display:flex;align-items:flex-start;margin-bottom:12px}
.fn-home .adevg-feature-item:last-child{margin-bottom:0}

.fn-home .adevg-btn-feature-link{
    display:flex;align-items:center;gap:8px;background:transparent;border:1px solid #d1d5db;border-radius:6px;
    padding:10px 16px;color:#495057;font-size:14px;font-weight:400;cursor:pointer;transition:all .3s ease;
    width:100%;text-align:left;
}
.fn-home .adevg-btn-feature-link:hover{background-color:#f8f9fa;border-color:var(--adevg-accent);color:var(--adevg-accent)}
.fn-home .adevg-btn-feature-link i{font-size:16px;color:var(--adevg-accent)}

.fn-home .adevg-image-container{text-align:center}
.fn-home .adevg-image-container img{max-height:180px;object-fit:contain;transition:transform .4s ease}
.fn-home .adevg-features-card:hover .adevg-image-container img{transform:scale(1.05)}

.fn-home .adevg-modal-chart{height:500px;min-width:900px}
@media (max-width:991.98px){.fn-home .adevg-modal-chart{min-width:0}}
