@import url('https://fonts.googleapis.com/css2?family=Geist:wght@100..900&display=swap');



:root {

	/* Cores do IBADPP (bandeira da Bahia) mapeadas nas variáveis do Bootstrap */
	--bs-primary: #03327a !important;          /* azul — hero, cabeçalhos */
	--bs-primary-rgb: 3, 50, 122 !important;
	--bs-danger: #d62f35 !important;           /* vermelho — botões e links */
	--bs-danger-rgb: 214, 47, 53 !important;
	--bs-dark: #022460 !important;             /* azul escuro — footer */
	--bs-dark-rgb: 2, 36, 96 !important;
	--bs-info: #01173f !important;             /* azul mais escuro — faixa "Faça parte" */
	--bs-info-rgb: 1, 23, 63 !important;
	--bs-secondary: #e7e8e3 !important;        /* cinza-papel — fundos de apoio */
	--bs-secondary-rgb: 231, 232, 227 !important;
	--bs-white: #fff !important;
	--bs-white-rgb: 255, 255, 255 !important;

	--bs-body-color: #0a1b47 !important;       /* tinta dos textos */
	--bs-body-color-rgb: 10, 27, 71 !important;
	--bs-emphasis-color: #0a1b47 !important;
	--bs-secondary-color: #5b6478 !important;  /* text-body-secondary */
	--bs-border-color: rgba(10, 27, 71, .14) !important;
	--bs-link-color: #d62f35 !important;
	--bs-link-color-rgb: 214, 47, 53 !important;
	--bs-link-hover-color: #b5242a !important;
	--bs-link-hover-color-rgb: 181, 36, 42 !important;

	--danger-hover: #b5242a;

	--bs-body-font-family: "Geist", system-ui, sans-serif;
	--bs-body-font-size: .95rem;

	/* Escala tipográfica */
	--fs-base: .95rem;
	--fs-xxs:  clamp(1.05rem, 1.4vw, 1.25rem);   /* lead / linha de apoio */
	--fs-xs:   clamp(1.15rem, 1.6vw, 1.45rem);   /* títulos de card, texto do hero */
	--fs-sm:   clamp(1.5rem, 2.6vw, 2.15rem);    /* texto de destaque */
	--fs-sml:  clamp(1.7rem, 2.6vw, 2.3rem);     /* h2 do conteúdo */
	--fs-md:   clamp(1.8rem, 4vw, 3.2rem);       /* chamadas */
	--fs-mdl:  clamp(2.4rem, 4.4vw, 4rem);       /* faixa "Faça parte" */
	--fs-lg:   clamp(2.6rem, 6vw, 5rem);         /* títulos de seção (internas) */
	--fs-lgl:  clamp(3rem, 7vw, 6rem);           /* títulos de seção (notícia) */
	--fs-xl:   clamp(3rem, 8vw, 7rem);           /* título das páginas internas */
	--fs-xxl:  clamp(3.4rem, 10vw, 9rem);        /* títulos de seção (home) */
}


.fs-xxl 	{ 	font-size: var(--fs-xxl);	}
.fs-xl 		{ 	font-size: var(--fs-xl);	}
.fs-lgl 	{ 	font-size: var(--fs-lgl);	}
.fs-lg 		{ 	font-size: var(--fs-lg);	}
.fs-mdl		{ 	font-size: var(--fs-mdl);	}
.fs-md		{ 	font-size: var(--fs-md);	}
.fs-sml 	{ 	font-size: var(--fs-sml);	}
.fs-sm 		{ 	font-size: var(--fs-sm);	}
.fs-xs 		{ 	font-size: var(--fs-xs);	}
.fs-xxs 	{ 	font-size: var(--fs-xxs);	}
.fs-p 		{ 	font-size: var(--fs-base); 	}




/* == FONT FACE LOT FONT NBZ == */
@font-face {
  font-family:'Lot';
  src:url("LOT.woff") format("woff");
  font-weight:normal;
  font-style:normal;
  font-display: swap;
}
.lot-font {
  font-family: 'Lot', monospace !important;
  letter-spacing: 0.5px !important;
}
/* ========================== */



.footer-font {
	font-size: 11px !important;
	line-height: 1.35em !important;
}




body {
  font-family: var(--bs-body-font-family);
  font-size: var(--fs-base);
  color: var(--bs-body-color);
  background-color: var(--bs-white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

/* Geist não tem itálico no Google Fonts: o destaque nos títulos é feito por peso (300 x 500) */
h1 em, h2 em, h3 em {
  font-style: normal;
  font-weight: 500;
}




/* Type
============================================ */
.fw-300       { font-weight: 300 !important; }
.fw-400       { font-weight: 400 !important; }
.fw-500       { font-weight: 500 !important; }
.fw-600       { font-weight: 600 !important; }

.fs-24        { font-size: 24px !important; }
.fs-legenda   { font-size: .82rem; }
.fs-nota      { font-size: .8rem; }

.ls-0   { letter-spacing: 0 !important; }
.ls-01  { letter-spacing: -0.01em !important; }
.ls-015 { letter-spacing: -0.015em !important; }
.ls-025 { letter-spacing: -0.025em !important; }
.ls-03  { letter-spacing: -0.03em !important; }
.ls-035 { letter-spacing: -0.035em !important; }
.ls-04  { letter-spacing: -0.04em !important; }
.ls-045 { letter-spacing: -0.045em !important; }
.ls-06  { letter-spacing: -0.06em !important; }
.ls-up  { letter-spacing: .08em !important; }

.lh-09  { line-height: .9 !important; }
.lh-092 { line-height: .92 !important; }
.lh-125 { line-height: 1.25 !important; }
.lh-155 { line-height: 1.55 !important; }

.text-white-85 { color: rgba(255,255,255,.85) !important; }
.text-white-80 { color: rgba(255,255,255,.8) !important; }
.text-white-75 { color: rgba(255,255,255,.75) !important; }
.text-white-70 { color: rgba(255,255,255,.7) !important; }

/* ----------------------------------------- */




/* Margins & Paddings
============================================ */
.pt-section { padding-top: clamp(4.5rem, 9vw, 8rem); }
.pb-section { padding-bottom: clamp(4.5rem, 9vw, 8rem); }

.pt-bloco { padding-top: clamp(3.5rem, 6vw, 5rem); }
.pb-bloco { padding-bottom: clamp(3.5rem, 6vw, 5rem); }

/* espaço do menu (que fica por cima do topo de cada página) */
.pt-nav { padding-top: 6.5rem; }

.mt-lead { margin-top: 1.75rem; }

.mw-22 { max-width: 22rem; }
.mw-28 { max-width: 28rem; }
.mw-40 { max-width: 40rem; }
.mw-46 { max-width: 46rem; }

/* ----------------------------------------- */




/* FOOTER
============================================ */
footer a:hover {
  color: #fff;
  text-decoration: underline;
  text-decoration-color: var(--bs-danger);
  text-underline-offset: 4px;
}
footer .footer-title {
  font-weight: 500;
  font-size: 1.2rem;
  letter-spacing: .02em;
  color: #fff;
  margin-bottom: 1rem;
}
footer .footer-wm {
  font-weight: 500;
  font-size: clamp(5rem, 23vw, 21rem);
  line-height: .75;
  letter-spacing: -.045em;
  color: rgba(255,255,255,.07);
  margin: 3rem 0 -.08em -.04em;
  user-select: none;
}

/* ----------------------------------------- */




/* === ALTERA BOOTSTRAP  === */

.btn {
	--bs-btn-font-weight: 500;
	--bs-btn-font-size: 1rem;
	--bs-btn-border-radius: 999px;
	--bs-btn-padding-x: 1.5rem;
	--bs-btn-padding-y: 0.7rem;
	transition: background .25s, border-color .25s, color .25s;
}
.btn-lg {
	--bs-btn-font-size: 1.15rem;
	--bs-btn-padding-x: 2.1rem;
	--bs-btn-padding-y: 0.95rem;
	--bs-btn-border-radius: 999px;
}
/* vermelho: botão principal */
.btn-danger {
	--bs-btn-color: #fff;
	--bs-btn-bg: #d62f35;
	--bs-btn-border-color: #d62f35;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #b5242a;
	--bs-btn-hover-border-color: #b5242a;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #b5242a;
	--bs-btn-active-border-color: #b5242a;
}
/* branco com texto vermelho: sobre fundos coloridos */
.btn-light {
	--bs-btn-color: #d62f35;
	--bs-btn-bg: #fff;
	--bs-btn-border-color: #fff;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #022460;
	--bs-btn-hover-border-color: #022460;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #022460;
	--bs-btn-active-border-color: #022460;
}

/* contorno branco: sobre fundos coloridos */
.btn-outline-light {
	--bs-btn-color: #fff;
	--bs-btn-border-color: rgba(255,255,255,.55);
	--bs-btn-hover-color: #0a1b47;
	--bs-btn-hover-bg: #fff;
	--bs-btn-hover-border-color: #fff;
	--bs-btn-active-color: #0a1b47;
	--bs-btn-active-bg: #fff;
	--bs-btn-active-border-color: #fff;
}

/* menu: links claros sobre o topo colorido; no mobile vira offcanvas */
.navbar-custom {
	--bs-navbar-padding-y: 1.75rem;
	--bs-navbar-nav-link-padding-x: .8rem;
	--bs-navbar-color: rgba(255,255,255,.85);
	--bs-navbar-hover-color: #fff;
	--bs-navbar-active-color: #fff;
}
.navbar-custom { transition: background-color .3s, padding .3s, box-shadow .3s; }
.navbar-custom .navbar-brand { padding: 0; margin: 0; }
.navbar-custom .navbar-brand img { height: 48px; width: auto; transition: height .3s; }
/* ao rolar: fundo azul e menu mais baixo */
.navbar-custom.scrolled {
	--bs-navbar-padding-y: .85rem;
	background-color: var(--bs-primary);   /* sem backdrop-filter: ele quebraria o offcanvas (position: fixed) no mobile */
	box-shadow: 0 8px 30px rgba(1, 23, 63, .25);
}
.navbar-custom.scrolled .navbar-brand img { height: 38px; }
/* barra do WordPress (usuário logado) */
body.admin-bar .navbar-custom.fixed-top { top: 32px; }
@media (max-width: 782px) {
	body.admin-bar .navbar-custom.fixed-top { top: 46px; }
}
.navbar-custom .nav-link { font-size: .82rem; }
.navbar-custom .navbar-toggler { color: #fff; font-size: .85rem; }
.navbar-custom .navbar-toggler:focus { box-shadow: none; }
@media (min-width: 992px) {
	.navbar-custom .offcanvas, .navbar-custom .offcanvas-body { flex-grow: 1; }
}
@media (max-width: 991.98px) {
	.navbar-custom .offcanvas { background-color: var(--bs-primary); color: #fff; }
	.navbar-custom .offcanvas .navbar-nav .nav-link { font-size: 1.8rem; font-weight: 300; letter-spacing: -.02em; padding: .5rem 0; color: #fff; }
	.navbar-custom .offcanvas .navbar-nav .nav-link-acc { font-size: 1rem; font-weight: 400; letter-spacing: 0; margin-top: 1.5rem; }
}

/* ----------------------------------------- */




/* IBADPP
============================================ */

/* grão sutil sobre os fundos coloridos */
.grain {
	position: relative;
	isolation: isolate;
}
.grain::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: .22;
	mix-blend-mode: overlay;
	pointer-events: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* ponto vermelho — detalhe recorrente */
.dot-before::before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--bs-danger);
	margin-right: .6rem;
	vertical-align: .15em;
}

/* link para páginas internas */
.link-arrow {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	color: var(--bs-danger);
	font-weight: 500;
	font-size: 1rem;
	text-decoration: none;
	white-space: nowrap;
}
.link-arrow i {
	display: inline-block;
	transition: transform .25s;
}
.link-arrow:hover, .link-arrow:focus {
	color: var(--danger-hover);
	text-decoration: underline;
	text-underline-offset: 5px;
	text-decoration-thickness: 1px;
}
.link-arrow:hover i, a:hover .link-arrow i { transform: translateX(4px); }
a:hover .link-arrow { color: var(--danger-hover); }

/* proporções de imagem (Bootstrap .ratio) */
.ratio-4x5 { --bs-aspect-ratio: 125%; }           /* feed do Instagram */
.ratio-capa { --bs-aspect-ratio: 141.43%; }       /* capa A4 do boletim */
.img-zoom img { transition: transform .7s cubic-bezier(.2,.7,.2,1); }
a:hover .img-zoom img { transform: scale(1.04); }

/* caminho de navegação (topo das internas) */
.crumbs { margin: clamp(3rem, 8vw, 6rem) 0 1.5rem; }
.crumbs a { color: #fff; }
.crumbs a:hover { text-decoration: underline; text-decoration-color: var(--bs-danger); text-underline-offset: 4px; }
.crumbs .sep { margin: 0 .5rem; opacity: .5; }

/* card de notícia: imagem 4:5 estreita + título */
.n-card {
	display: grid;
	grid-template-columns: 120px 1fr;
	align-items: start;
	gap: 1.5rem;
	padding-top: 1.5rem;
}
.n-card h3 { transition: color .25s; }
.n-card:hover h3 { color: var(--bs-danger); }
@media (max-width: 575.98px) {
	.n-card { grid-template-columns: 100px 1fr; gap: 1rem; }
	.n-card h3 { font-size: 1.05rem; }
}

/* título TRINCHEIRA / democrática */
.titulo-trincheira strong { display: block; font-weight: 600; letter-spacing: -.04em; }
.titulo-trincheira span { display: block; font-weight: 300; }

/* boletim: fundo na cor extraída da capa (script no footer). --bol é o fallback */
.bg-boletim {
	--bol: #9f662d;
	background-color: var(--bol);
	color: #fff;
}
.bg-boletim .capa { box-shadow: 0 18px 40px -22px rgba(0,0,0,.5); }

/* lista do conteúdo do boletim (texto livre do editor clássico) */
.lista-boletim ul { list-style: none; padding: 0; margin: 0; }
.lista-boletim li { position: relative; padding: .55rem 0 .55rem 1.1rem; border-top: 1px solid rgba(255,255,255,.2); font-size: .98rem; line-height: 1.5; }
.lista-boletim li::before { content: ""; position: absolute; left: 0; top: 1.15rem; width: 6px; height: 6px; border-radius: 50%; background: #fff; }
.lista-boletim p { margin: 0 0 1rem; }

/* conteúdo vindo do editor (the_content) */
.prose { font-size: 1.06rem; line-height: 1.7; color: #24304f; max-width: 46rem; }
.prose > *:first-child { margin-top: 0; }
.prose h2 { font-weight: 500; font-size: var(--fs-sml); letter-spacing: -.025em; line-height: 1.15; color: var(--bs-body-color); margin: 3.5rem 0 1.25rem; padding-top: 1.5rem; border-top: 1px solid rgba(10,27,71,.12); scroll-margin-top: 6rem; }
.prose h3 { font-weight: 500; font-size: 1.3rem; letter-spacing: -.015em; color: var(--bs-body-color); margin: 2.25rem 0 .75rem; }
.prose p { margin: 0 0 1.25rem; }
.prose a { color: var(--bs-danger); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.prose a:hover { color: var(--danger-hover); }
.prose ul, .prose ol { margin: 0 0 1.5rem; padding-left: 0; list-style: none; }
.prose ul li { position: relative; padding: .35rem 0 .35rem 1.2rem; }
.prose ul li::before { content: ""; position: absolute; left: 0; top: 1.05rem; width: 6px; height: 6px; border-radius: 50%; background: var(--bs-danger); }
.prose ol { counter-reset: n; }
.prose ol li { position: relative; padding: .35rem 0 .35rem 2rem; counter-increment: n; }
.prose ol li::before { content: counter(n, decimal-leading-zero); position: absolute; left: 0; top: .35rem; font-weight: 500; color: var(--bs-danger); font-size: .95rem; }
.prose blockquote { margin: 2.5rem 0; padding: 0 0 0 1.5rem; border-left: 3px solid var(--bs-danger); font-weight: 300; font-size: clamp(1.35rem, 2vw, 1.7rem); line-height: 1.35; letter-spacing: -.015em; color: var(--bs-body-color); }
.prose figure { margin: 2.5rem 0; }
.prose figure img { width: 100%; height: auto; display: block; }
.prose figcaption { font-size: .82rem; color: var(--bs-secondary-color); margin-top: .6rem; }
.prose .box { background: var(--bs-secondary); padding: 1.75rem 2rem; margin: 2rem 0; }
.prose .box p:last-child { margin: 0; }

/* PDF no editor clássico: link sozinho no parágrafo vira cartão (classe aplicada via script) */
.prose p.doc-card { position: relative; display: flex; align-items: center; gap: 1rem; padding: 1.25rem 1.4rem 1.25rem calc(1.4rem + 44px + 1.1rem); min-height: 92px; border: 1px solid rgba(10,27,71,.14); margin: 2rem 0; transition: border-color .2s, background .2s; }
.prose p.doc-card:hover { border-color: var(--bs-danger); background: #fff7f7; }
.prose p.doc-card::before { content: "PDF"; position: absolute; left: 1.4rem; top: 50%; transform: translateY(-50%); width: 44px; height: 52px; background: var(--bs-danger); color: #fff; font: 600 .7rem/1 var(--bs-body-font-family); display: flex; align-items: flex-end; justify-content: center; padding-bottom: .55rem; clip-path: polygon(0 0, 72% 0, 100% 22%, 100% 100%, 0 100%); }
.prose p.doc-card a { font-weight: 500; font-size: 1.05rem; color: var(--bs-body-color); text-decoration: none; }
.prose p.doc-card a::after { content: ""; position: absolute; inset: 0; }
.prose p.doc-card .go { margin-left: auto; color: var(--bs-danger); font-weight: 500; font-size: .9rem; white-space: nowrap; }
.prose a.pdf-inline::after { content: "PDF"; display: inline-block; margin-left: .4rem; padding: .1rem .35rem; font: 600 .62rem/1.2 var(--bs-body-font-family); color: #fff; background: var(--bs-danger); vertical-align: .15em; }

/* topo das páginas internas */
.page-hero { padding-bottom: clamp(3rem, 6vw, 5rem); }


/* legenda sob as capas do boletim */
.legenda-capa { display: block; font-size: .8rem; line-height: 1.35; margin-top: .7rem; }

/* sumário lateral (gerado a partir dos h2 do conteúdo) */
.toc { position: sticky; top: 6rem; } /* abaixo do menu fixo */
.toc a { display: block; padding: .55rem 0; border-top: 1px solid rgba(10,27,71,.12); font-size: .95rem; color: var(--bs-body-color); transition: color .2s; }
.toc a:hover, .toc a.active { color: var(--bs-danger); }

/* paginação (paginate_links) */
.paginacao .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; height: 2.5rem; padding: 0 .75rem; border: 1px solid var(--bs-border-color); border-radius: 999px; font-weight: 500; color: var(--bs-body-color); }
.paginacao .page-numbers:hover { border-color: var(--bs-danger); color: var(--bs-danger); }
.paginacao .page-numbers.current { background: var(--bs-danger); border-color: var(--bs-danger); color: #fff; }
.paginacao .page-numbers.dots { border: 0; }

/* ----------------------------------------- */
