/* ============================================================
   FUNARPEN-RJ · "A linha da vida civil" — Default2 (home pública)
   Relocado do protótipo trab/2026-06/017 v03 (regra: NUNCA CSS inline).
   Tema editorial cívico: navy + papel marfim, ouro institucional,
   verde-jade (nasc./óbito), azul (certidões), ciano (demais atos).
   Estatísticas reais servidas pelo back-end (WEB_PUBLICO_GET_Dados_Consolidados).
   ============================================================ */
:root{
  --navy:#0A2E6E; --navy-deep:#071E49; --ink:#0B1E3A;
  --blue:#0A3FA8; --blue-soft:#5B8DEF; --cyan:#00C2FF;
  --green:#23A98A; --green-deep:#0E7F6A;
  --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 */
  --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);
}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);overflow-x:hidden;-webkit-font-smoothing:antialiased}
h1,h2,h3,.serif{font-family:var(--serif);font-weight:500;letter-spacing:-.015em;line-height:1.05}
::selection{background:var(--gold);color:var(--navy-deep)}
a{text-decoration:none}
.font-mono{font-family:var(--mono)}
.text-gold{color:var(--gold)!important}
.em{color:var(--blue);font-style:italic;font-weight:400}
.kicker{font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);
  font-weight:500;display:inline-flex;align-items:center;gap:.6em}
.kicker::before{content:"";width:26px;height:1px;background:var(--gold);display:inline-block}
.section-pad{padding-top:clamp(70px,9vw,116px);padding-bottom:clamp(70px,9vw,116px)}

/* ===== barra oficial ===== */
.gov-bar{background:var(--navy-deep);color:#cfe0ff;font-family:var(--mono);font-size:.72rem;letter-spacing:.04em}
.gov-bar a{color:#cfe0ff;opacity:.8}.gov-bar a:hover{opacity:1;color:#fff}
.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}
.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}
.gov-bar .a11y-btn:hover{border-color:var(--cyan);color:#fff}

/* ===== navbar ===== */
.navbar{background:rgba(246,241,231,.85)!important;backdrop-filter:blur(14px) saturate(1.2);border-bottom:1px solid var(--line)}
.navbar.scrolled{box-shadow:0 8px 30px -22px rgba(7,30,73,.5);background:rgba(246,241,231,.96)!important}
.navbar-brand img{height:34px;width:auto;
  filter:brightness(0) saturate(100%) invert(13%) sepia(76%) saturate(1746%) hue-rotate(212deg) brightness(92%) contrast(101%)}
.brand-sub{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;color:var(--navy);text-transform:uppercase;line-height:1.3;opacity:.75;max-width:120px}
.navbar .nav-link{font-size:.85rem;font-weight:600;color:var(--ink);border-radius:9px;position:relative}
.navbar .nav-link::after{content:"";position:absolute;left:14px;right:14px;bottom:5px;height:2px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;transition:transform .25s;border-radius:2px}
.navbar .nav-link:hover{color:var(--navy)}.navbar .nav-link:hover::after{transform:scaleX(1)}
.btn-brand{background:var(--navy);color:#fff;font-weight:700;border-radius:10px;box-shadow:var(--shadow-sm)}
.btn-brand:hover{background:var(--navy-deep);color:#fff;transform:translateY(-1px)}
.btn-gold{background:var(--gold);color:var(--navy-deep);font-weight:600;border-radius:11px}
.btn-gold:hover{background:var(--gold-soft);color:var(--navy-deep);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:#eaf1ff;border:1px solid rgba(255,255,255,.28);font-weight:600;border-radius:11px}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.06);color:#fff}

/* ============================================================ HERO */
.hero{position:relative;background:var(--navy-deep);color:#eaf1ff;overflow:hidden}
.hero .field{position:absolute;inset:0;pointer-events:none}
.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:drift 26s ease-in-out infinite alternate}
@keyframes drift{from{transform:translate3d(-2%,-1%,0) scale(1.02)}to{transform:translate3d(3%,2%,0) scale(1.08)}}
.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%)}
.hero .wrap-z{position:relative;z-index:2}
.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)}
.blink{width:7px;height:7px;border-radius:50%;background:var(--cyan);display:inline-block;animation:blink 2s ease-in-out infinite}
@keyframes 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)}}
.hero h1{font-size:clamp(1.9rem,4.2vw,3.3rem);color:#fff;letter-spacing:-.02em;max-width:20ch}
.hero h1 .emg{color:var(--gold);font-style:italic;font-weight:400}
.hero .lede{font-size:clamp(.98rem,1.2vw,1.08rem);color:#c3d3ef;max-width:62ch;line-height:1.65}

/* painel de dado vivo */
.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)}
.live-card .t{font-family:var(--mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:#9fb6e0}
.live-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.62rem;color:var(--cyan);letter-spacing:.08em}
.live-pill .d{width:6px;height:6px;border-radius:50%;background:var(--cyan);animation:blink 1.6s infinite}
.live-pill.off{color:#e6b86b}.live-pill.off .d{background:#e6b86b;animation:none}
.live-sub{color:#9fb6e0;font-size:.8rem}
.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}
.mini-row .nm{display:flex;align-items:center;gap:8px;font-size:.82rem;color:#cdddf6}
.mini-row .nm i{width:9px;height:9px;border-radius:3px;flex:none}
.mini-row .vv{font-family:var(--mono);font-size:.86rem;color:#fff;font-weight:500}
.mini-row .track{height:6px;background:rgba(255,255,255,.1);border-radius:5px;overflow:hidden;margin-top:6px}
.mini-row .fill{height:100%;border-radius:5px;transform-origin:left;transform:scaleX(0);transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.live-foot{border-top:1px solid rgba(255,255,255,.12)}
.src{font-family:var(--mono);font-size:.64rem;color:#86a4d6}.src b{color:#bcd0f1;font-weight:500}
.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}
.btn-refresh:hover{background:rgba(0,194,255,.16);color:var(--cyan)}
.btn-refresh i{transition:transform .6s;display:inline-block}.btn-refresh.spin i{transform:rotate(360deg)}

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

/* ============================================================ ARCO */
.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}
.node svg{width:40px;height:40px;color:var(--navy);transition:.3s}
.node::after{content:"";position:absolute;inset:-1px;border-radius:22px;border:1.5px solid var(--gold);opacity:0;transition:.3s}
.stop:hover .node{transform:translateY(-6px);border-color:transparent}
.stop:hover .node::after{opacity:1}.stop:hover .node svg{color:var(--blue);transform:scale(1.06)}
.stop .step{font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;color:var(--gold);text-transform:uppercase}
.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}
.stop-h{font-size:1.32rem}
.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 */
.stats{background:var(--navy);color:#eaf1ff;position:relative;overflow:hidden}
.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%)}
.stats .wrap-z{position:relative;z-index:2}
.statusbar{font-family:var(--mono);font-size:.72rem;color:#9fb6e0}
.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}
.statusbar .chip .dot{width:7px;height:7px;border-radius:50%;background:var(--cyan);animation:blink 1.6s infinite}
.statusbar .chip.off .dot{background:#e6b86b;animation:none}
.statusbar .chip b,.statusbar b{color:#e7eefb;font-weight:500}
.panel{background:rgba(255,255,255,.05)!important;border:1px solid rgba(255,255,255,.13)!important;border-radius:18px;backdrop-filter:blur(6px)}
.panel .lab{font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:#9fb6e0}
.panel .lab .chip{color:var(--cyan)}

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

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

/* marcadores de cor (categorias) — substituem inline style nas legendas/linhas */
.c-no{background:var(--green)}.c-c{background:var(--blue-soft)}.c-m{background:var(--gold)}.c-d{background:var(--cyan)}

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

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

/* ============================================================ PUBLICAÇÕES */
.pubs{background:var(--navy-deep);color:#eaf1ff}
.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%}
.pub-card:hover{transform:translateY(-4px);border-color:rgba(199,162,75,.5);background:rgba(255,255,255,.08)}
.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}
.pub-card .ph--foto{position:relative;padding:0;overflow:hidden;height:200px}
.pub-card .ph--foto .pub-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.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%)}
.pub-card .ph--foto .tag{position:absolute;left:18px;bottom:18px;z-index:2}
@media (max-width:575.98px){.pub-card .ph--foto{height:180px}}

/* ---- Notícia em destaque: conteúdo integral (foto + texto) ---- */
.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%}
.pub-feat:hover{border-color:rgba(199,162,75,.45)}
.pub-feat__media{position:relative;flex:1 1 340px;min-height:320px}
.pub-feat__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.pub-feat__media .tag{position:absolute;left:18px;top:18px;z-index:2}
.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))}
.pub-feat__body{flex:1 1 440px;padding:30px 32px;display:flex;flex-direction:column;gap:14px}
.pub-feat__deck{font-size:1.04rem;color:#d6e4ff;font-weight:500;margin:0}
.pub-feat__body p{margin:0;color:#bcd0f1;font-size:.94rem;line-height:1.65}
.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}
.pub-why b{color:var(--gold);font-weight:700}
.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){.pub-feat__body{padding:24px 22px}.pub-feat__media{min-height:230px;flex-basis:100%}}
.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}
.dt{font-family:var(--mono);font-size:.72rem;color:#9fb6e0}
.pub-card .more,.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}
.pub-feat .more{margin-top:6px}
.pub-card .more:hover,.pub-feat .more:hover{color:var(--gold)}
.pub-card:hover .more i,.pub-feat:hover .more i{transform:translateX(4px)}
.pub-card .more i,.pub-feat .more i{transition:transform .2s;display:inline-block}
.pub-title{font-size:1.5rem}.pub-title-sm{font-size:1.1rem}
.txt-on-navy-sm{font-size:.92rem;color:#bcd0f1}

/* ============================================================ CONTATO/FOOTER */
.contact-box{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.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%)}
.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}
.form-control{background:var(--paper);border:1px solid var(--line);border-radius:11px}
.form-control:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(10,63,168,.1);background:#fff}
.form-label{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#7c879b}
footer{background:var(--navy-deep);color:#a7bce2}
footer .wm{font-family:var(--serif);font-size:1.7rem;color:#fff}.footer .wm b,footer .wm b{color:var(--gold);font-weight:500}
footer h4{font-family:var(--mono);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold)}
footer a{color:#bcd0f1}footer a:hover{color:#fff}
footer .foot-about{font-size:.85rem;color:#86a4d6;max-width:34ch;line-height:1.6}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);font-family:var(--mono);font-size:.74rem;color:#6f8bbd}

/* ============================================================ CARTÓRIOS (mapa) */
.cartorios{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.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)}
.map-shell iframe{display:block;width:100%;height:100%;border:0;background:#dfeaf2}
.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}
.map-shell.ready .map-load{opacity:0}
.map-load .ring{width:42px;height:42px;border-radius:50%;border:3px solid rgba(255,255,255,.18);
  border-top-color:var(--cyan);animation:mapspin 1s linear infinite}
@keyframes mapspin{to{transform:rotate(360deg)}}
.map-load span{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;color:#9fb6e0}
.map-fs{position:absolute;top:14px;left:406px;right: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}
.map-fs:hover{background:var(--navy);border-color:var(--cyan);color:#fff}
@media(max-width:879.98px){.map-fs{left:auto;right:14px}}
.map-fs .lbl-exit{display:none}
.map-shell.is-full{position:fixed;inset:0;z-index:3000;height:100%;border:0;border-radius:0}
.map-shell.is-full .map-fs .lbl-open{display:none}
.map-shell.is-full .map-fs .lbl-exit{display:inline}
body.map-locked{overflow:hidden}
.map-hint{font-family:var(--mono);font-size:.74rem;color:#7c879b}
.map-hint i{color:var(--blue)}

/* ============================================================ TÍTULOS / TIPOGRAFIA DE SEÇÃO
   (relocação dos clamp() inline para classes reutilizáveis) */
.h2-xl{font-size:clamp(2rem,4.4vw,3.2rem)}
.h2-lg{font-size:clamp(2rem,4.2vw,3rem)}
.h2-md{font-size:clamp(1.9rem,4vw,2.8rem)}
.emg-cyan{color:var(--cyan);font-style:italic;font-weight:400}
.emg-gold{color:var(--gold);font-style:italic;font-weight:400}

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

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

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

/* barra oficial — altura fixa */
.gov-bar-row{height:34px}

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

/* ===== barra DSV Info (debug) ===== */
.top-debugbar{padding:6px 0;font-family:var(--mono)}
.top-debugbar .debug-nav ul{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-items:center}
.top-debugbar input[type=submit]{font-family:var(--mono);font-size:.7rem;border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.06);color:#eaf1ff;border-radius:6px;padding:3px 9px}
.top-debugbar input[type=submit]:hover{background:rgba(0,194,255,.16);border-color:var(--cyan)}
