/* BPB — Portal. Identidade da Biblioteca Pública de Brasília sobre o Tainacan Interface.
   Cores tiradas do logo: azul #1656ae, amarelo #ffce00. Tudo que é da página inicial e das
   páginas institucionais usa classes bpb-*; telas do acervo e do TainacanBiblio só herdam
   tipografia e cor de link. */

:root {
	--bpb-blue: #1656ae;
	--bpb-blue-600: #0f4791;
	--bpb-night: #0b2550;
	--bpb-ink: #142033;
	--bpb-muted: #5b6678;
	--bpb-yellow: #ffce00;
	--bpb-paper: #faf7f0;
	--bpb-sky: #eaf1fb;
	--bpb-line: #e3e8f0;
	--bpb-radius: 18px;
	--bpb-shadow: 0 10px 30px rgba(11, 37, 80, .08);
	--bpb-serif: "Fraunces", Georgia, "Times New Roman", serif;
	--bpb-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

body.bpb-site { font-family: var(--bpb-sans); color: var(--bpb-ink); overflow-x: hidden; -webkit-font-smoothing: antialiased; }
body.bpb-site a { color: var(--bpb-blue); }
body.bpb-site h1, body.bpb-site h2, body.bpb-site h3,
body.bpb-site .entry-title, body.bpb-site .page-title { font-family: var(--bpb-serif); letter-spacing: -.01em; color: var(--bpb-night); }

/* ── Cabeçalho ──────────────────────────────────────────────── */
body.bpb-site nav.navbar.menu-shadow {
	position: sticky; top: 0; z-index: 1000;
	background: rgba(255, 255, 255, .86) !important;
	backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px);
	box-shadow: 0 1px 0 var(--bpb-line);
	border-bottom: 0 !important;
}
body.admin-bar.bpb-site nav.navbar.menu-shadow { top: 32px; }
body.bpb-site #topNavbar { align-items: center; }
body.bpb-site #topNavbar .custom-logo, body.bpb-site #topNavbar img { max-height: 74px !important; height: 74px !important; width: auto !important; max-width: none !important; }
body.bpb-site #menubelowHeader .nav-link {
	font-weight: 600; font-size: .95rem; color: var(--bpb-ink) !important;
	padding: .55rem .95rem !important; border-radius: 999px; transition: background .2s, color .2s;
}
body.bpb-site #menubelowHeader .nav-link:hover,
body.bpb-site #menubelowHeader .current-menu-item > .nav-link { background: var(--bpb-sky); color: var(--bpb-blue) !important; }
body.bpb-site #menubelowHeader .bpb-menu-cta > .nav-link {
	background: var(--bpb-blue); color: #fff !important; margin-left: .4rem; box-shadow: 0 6px 16px rgba(22, 86, 174, .25);
}
body.bpb-site #menubelowHeader .bpb-menu-cta > .nav-link:hover { background: var(--bpb-blue-600); }

/* A página inicial não leva a trilha de navegação nem o respiro do tema acima do herói. */
body.bpb-home .tainacan-breadcrumb, body.bpb-home nav[aria-label="breadcrumb"] { display: none; }
body.bpb-home #content { padding-top: 0; }
body.bpb-home .margin-one-column { margin-left: auto !important; margin-right: auto !important; }

/* ── Larguras ───────────────────────────────────────────────── */
.bpb-full { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; }
.bpb-wrap { max-width: 1180px; margin-left: auto !important; margin-right: auto !important; padding-left: 24px; padding-right: 24px; }
.bpb-section { padding-top: clamp(56px, 8vw, 104px) !important; padding-bottom: clamp(56px, 8vw, 104px) !important; }
.bpb-paper { background: var(--bpb-paper); }
.bpb-sky { background: var(--bpb-sky); }

/* ── Herói ──────────────────────────────────────────────────── */
.bpb-hero.wp-block-cover { min-height: min(86vh, 760px) !important; padding: 0 !important; align-items: flex-end; }
.bpb-hero .wp-block-cover__background {
	background: linear-gradient(180deg, rgba(11, 37, 80, .15) 0%, rgba(11, 37, 80, .55) 45%, rgba(11, 37, 80, .92) 100%) !important;
	opacity: 1 !important;
}
.bpb-hero.wp-block-cover .wp-block-cover__inner-container {
	width: 100% !important; max-width: 1180px !important; margin: 0 auto !important; padding: 0 24px clamp(40px, 7vw, 88px) !important; color: #fff;
}
.bpb-hero .bpb-eyebrow { color: var(--bpb-yellow); }
.bpb-hero .wp-block-cover__inner-container h1.wp-block-heading {
	font-family: var(--bpb-serif) !important; color: #fff !important; font-weight: 700 !important;
	font-size: clamp(2.6rem, 6.2vw, 5.2rem) !important; line-height: 1 !important; margin: .15em 0 .3em !important; max-width: 14ch;
}
.bpb-hero h1 em { font-style: italic; color: var(--bpb-yellow); }
.bpb-hero .bpb-lead { font-size: clamp(1.05rem, 1.6vw, 1.3rem); max-width: 46ch; color: rgba(255, 255, 255, .9); margin-bottom: 1.6rem; }

.bpb-eyebrow { font-family: var(--bpb-sans) !important; text-transform: uppercase; letter-spacing: .14em; font-size: .78rem !important; font-weight: 700; color: var(--bpb-blue); margin-bottom: .6rem; }

/* Caixa de busca (bloco Tainacan) em forma de cápsula */
.bpb-search.wp-block-tainacan-search-bar { margin: 0 0 1.1rem !important; max-width: 760px; }
.bpb-search .tainacan-search-container { padding: 0 !important; background: none !important; }
.bpb-search #tainacan-search-bar-block {
	display: flex !important; align-items: center; max-width: 100% !important; margin: 0 !important; height: auto !important;
	background: #fff !important; border-radius: 999px !important; padding: 7px 7px 7px 26px !important; box-shadow: 0 20px 50px rgba(0, 0, 0, .28);
}
.bpb-search #tainacan-search-bar-block #tainacan-search-bar-block_input {
	flex: 1; height: 58px !important; border: 0 !important; outline: none; font-size: 1.12rem !important; padding: 0 6px !important;
	background: transparent !important; color: var(--bpb-ink); box-shadow: none !important; min-width: 0; border-radius: 0 !important;
}
.bpb-search #tainacan-search-bar-block #tainacan-search-bar-block_input::placeholder { color: #7a8597; }
.bpb-search #tainacan-search-bar-block .button {
	position: static !important; border: 0 !important; border-radius: 999px !important; background: var(--bpb-yellow) !important;
	width: 58px !important; height: 58px !important; flex: 0 0 58px; padding: 0 !important;
	display: flex !important; align-items: center; justify-content: center; cursor: pointer; transition: transform .15s;
}
.bpb-search #tainacan-search-bar-block .button:hover { transform: scale(1.05); }
.bpb-search #tainacan-search-bar-block .button svg { fill: var(--bpb-night); width: 24px; height: 24px; }

.bpb-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.6rem; padding: 0; list-style: none; }
.bpb-chips a {
	display: inline-block; padding: .42rem .95rem; border-radius: 999px; font-size: .9rem; font-weight: 500; text-decoration: none !important;
	color: #fff !important; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .28); backdrop-filter: blur(6px);
	transition: background .2s;
}
.bpb-chips a:hover { background: rgba(255, 255, 255, .28); }
.bpb-chips__label { color: rgba(255, 255, 255, .75); font-size: .9rem; align-self: center; margin-right: .2rem; }

/* Botões */
.bpb-btns .wp-block-button__link, .wp-block-button.bpb-btn .wp-block-button__link {
	border-radius: 999px !important; font-weight: 600; padding: .85rem 1.5rem !important; font-size: 1rem;
}
.bpb-btn--primary .wp-block-button__link { background: var(--bpb-yellow) !important; color: var(--bpb-night) !important; }
.bpb-btn--ghost .wp-block-button__link { background: transparent !important; color: #fff !important; border: 1.5px solid rgba(255, 255, 255, .6) !important; }
.bpb-btn--blue .wp-block-button__link { background: var(--bpb-blue) !important; color: #fff !important; }
.bpb-btn--line .wp-block-button__link { background: transparent !important; color: var(--bpb-blue) !important; border: 1.5px solid var(--bpb-blue) !important; }

/* ── Números ────────────────────────────────────────────────── */
.bpb-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.bpb-stat { padding: 28px 22px; border-left: 1px solid rgba(255, 255, 255, .16); }
.bpb-stat:first-child { border-left: 0; }
.bpb-stat__num { display: block; font-family: var(--bpb-serif); font-weight: 700; font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1; color: var(--bpb-yellow); }
.bpb-stat__label { display: block; margin-top: .5rem; color: rgba(255, 255, 255, .82); font-size: .95rem; }
.bpb-band { background: var(--bpb-night); color: #fff; }
@media (max-width: 782px) {
	.bpb-stats { grid-template-columns: repeat(2, 1fr); }
	.bpb-stat:nth-child(3) { border-left: 0; }
	.bpb-stat { border-top: 1px solid rgba(255, 255, 255, .12); }
}

/* ── Títulos de seção ───────────────────────────────────────── */
.bpb-h2 { font-size: clamp(2rem, 4vw, 3.1rem) !important; line-height: 1.05; margin: 0 0 .6em !important; max-width: 20ch; }
.bpb-intro { color: var(--bpb-muted); font-size: 1.12rem; max-width: 60ch; }

/* ── Cartões ────────────────────────────────────────────────── */
.bpb-cards { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 20px !important; margin-top: 2.2rem; }
.bpb-cards > .wp-block-group, .bpb-card {
	background: #fff; border: 1px solid var(--bpb-line); border-radius: var(--bpb-radius); padding: 28px 26px !important;
	box-shadow: var(--bpb-shadow); transition: transform .2s, box-shadow .2s; margin: 0 !important;
}
.bpb-cards > .wp-block-group:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(11, 37, 80, .14); }
.bpb-card h3, .bpb-cards h3 { font-size: 1.32rem !important; margin: .9rem 0 .4rem !important; }
.bpb-card p, .bpb-cards p { color: var(--bpb-muted); margin: 0; font-size: .98rem; }
.bpb-icon { width: 52px; height: 52px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: var(--bpb-sky); color: var(--bpb-blue); }
.bpb-icon svg { width: 26px; height: 26px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.bpb-cards > .wp-block-group:nth-child(3n+2) .bpb-icon { background: #fff6cc; color: #8a6d00; }
.bpb-cards > .wp-block-group:nth-child(3n+3) .bpb-icon { background: #e7f6ef; color: #1d7a52; }
@media (max-width: 960px) { .bpb-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .bpb-cards { grid-template-columns: 1fr; } }

/* ── Seções do acervo ───────────────────────────────────────── */
.bpb-sections { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.bpb-sections li {
	display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
	background: #fff; border: 1px solid var(--bpb-line); border-radius: 14px; padding: 16px 18px;
}
.bpb-sections__name { font-weight: 600; }
.bpb-sections__count { font-family: var(--bpb-serif); color: var(--bpb-blue); font-weight: 700; font-size: 1.15rem; }

/* ── Bloco imagem + texto ───────────────────────────────────── */
.bpb-split { gap: clamp(28px, 5vw, 72px) !important; align-items: center !important; }
.bpb-split .wp-block-image img, .bpb-photo img { border-radius: 24px; box-shadow: 0 24px 60px rgba(11, 37, 80, .18); width: 100%; height: auto; object-fit: cover; aspect-ratio: 4 / 3; }
.bpb-quote { border-left: 4px solid var(--bpb-yellow) !important; padding: .3rem 0 .3rem 1.2rem !important; margin: 1.6rem 0 !important; }
.bpb-quote p { font-family: var(--bpb-serif); font-size: 1.35rem; font-style: italic; color: var(--bpb-night); }
.bpb-quote cite { display: block; text-align: left !important; color: var(--bpb-muted); font-style: normal !important; font-size: .9rem; margin-top: .4rem; }
.bpb-quote p { font-size: 1.35rem !important; line-height: 1.35; margin: 0; }

/* ── Passos ─────────────────────────────────────────────────── */
.bpb-steps { counter-reset: bpbstep; display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 20px !important; margin-top: 2.2rem; }
.bpb-steps > .wp-block-group { position: relative; padding: 30px 26px 26px !important; border-radius: var(--bpb-radius); background: #fff; border: 1px solid var(--bpb-line); margin: 0 !important; }
.bpb-steps > .wp-block-group::before {
	counter-increment: bpbstep; content: counter(bpbstep);
	display: inline-flex; width: 42px; height: 42px; border-radius: 50%; align-items: center; justify-content: center;
	background: var(--bpb-blue); color: #fff; font-family: var(--bpb-serif); font-weight: 700; font-size: 1.2rem; margin-bottom: .6rem;
}
.bpb-steps h3 { font-size: 1.25rem !important; margin: .3rem 0 .4rem !important; }
.bpb-steps p { color: var(--bpb-muted); margin: 0; }
@media (max-width: 782px) { .bpb-steps { grid-template-columns: 1fr; } }

/* ── Visite ─────────────────────────────────────────────────── */
.bpb-visit { display: grid !important; grid-template-columns: 1.1fr 1fr 1fr; gap: 20px !important; margin-top: 2rem; }
.bpb-visit > .wp-block-group { background: #fff; border-radius: var(--bpb-radius); padding: 28px !important; border: 1px solid var(--bpb-line); margin: 0 !important; }
.bpb-visit h3 { font-size: 1.2rem !important; margin: 0 0 .7rem !important; }
.bpb-visit p { margin: 0 0 .35rem; }
.bpb-hours { width: 100%; border-collapse: collapse; }
.bpb-hours td { padding: .45rem 0; border-bottom: 1px solid var(--bpb-line); }
.bpb-hours td:last-child { text-align: right; font-weight: 600; }
@media (max-width: 960px) { .bpb-visit { grid-template-columns: 1fr; } }

/* ── Chamada final ──────────────────────────────────────────── */
.bpb-cta.wp-block-cover { border-radius: 28px; overflow: hidden; min-height: 360px !important; }
.bpb-cta .wp-block-cover__background { background: linear-gradient(90deg, rgba(11, 37, 80, .95), rgba(22, 86, 174, .7)) !important; opacity: 1 !important; }
.bpb-cta h2 { color: #fff !important; font-size: clamp(1.9rem, 3.6vw, 2.8rem) !important; max-width: 18ch; }
.bpb-cta p { color: rgba(255, 255, 255, .88); max-width: 52ch; }

/* ── Páginas institucionais ─────────────────────────────────── */
.bpb-page-hero { background: linear-gradient(135deg, var(--bpb-night), var(--bpb-blue)); color: #fff; border-radius: 0 0 32px 32px; }
.bpb-page-hero h1 { color: #fff !important; font-size: clamp(2.2rem, 5vw, 3.8rem) !important; margin: .2em 0 .3em !important; }
.bpb-page-hero p { color: rgba(255, 255, 255, .88); font-size: 1.15rem; max-width: 60ch; }
.bpb-page-hero .bpb-eyebrow { color: var(--bpb-yellow); }
body.bpb-site.page .entry-title, body.bpb-site.page .page-header { display: none; }
.bpb-prose { font-size: 1.08rem; line-height: 1.75; max-width: 760px; }
.bpb-prose h2 { font-size: 1.9rem; margin-top: 2.2rem; }
.bpb-timeline { list-style: none; margin: 1.5rem 0; padding: 0; border-left: 2px solid var(--bpb-line); }
.bpb-timeline li { position: relative; padding: 0 0 1.4rem 1.6rem; }
.bpb-timeline li::before { content: ""; position: absolute; left: -7px; top: .45rem; width: 12px; height: 12px; border-radius: 50%; background: var(--bpb-yellow); box-shadow: 0 0 0 3px #fff; }
.bpb-timeline strong { display: block; font-family: var(--bpb-serif); color: var(--bpb-blue); font-size: 1.1rem; }
.bpb-note { background: var(--bpb-sky); border-radius: 14px; padding: 18px 20px !important; }

/* ── Rodapé ─────────────────────────────────────────────────── */
body.bpb-site footer.tainacan-footer { background: var(--bpb-night) !important; color: rgba(255, 255, 255, .82); margin-top: 0 !important; padding-top: 64px !important; }
body.bpb-site footer.tainacan-footer a { color: #fff !important; }
body.bpb-site .tainacan-footer-widgets-area .widget { margin-bottom: 1.6rem; }
body.bpb-site .tainacan-footer h2, body.bpb-site .tainacan-footer h3, body.bpb-site .tainacan-footer .widget-title {
	font-family: var(--bpb-sans) !important; color: var(--bpb-yellow) !important; text-transform: uppercase; letter-spacing: .12em; font-size: .8rem !important;
}
body.bpb-site .tainacan-footer p { color: rgba(255, 255, 255, .82); }
body.bpb-site .tainacan-footer-info--logo { max-height: 76px; background: #fff; border-radius: 14px; padding: 6px; }
body.bpb-site .tainacan-footer-area-separator { border-color: rgba(255, 255, 255, .12); }
.bpb-footer-brand p { max-width: 34ch; }

/* Acessibilidade */
body.bpb-site a:focus-visible, body.bpb-site button:focus-visible, body.bpb-site input:focus-visible { outline: 3px solid var(--bpb-yellow); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { body.bpb-site * { transition: none !important; } }

/* Ajustes finos sobre o tema (seletores do próprio Tainacan Interface) */
body.bpb-site nav.menu-shadow .max-large .tainacan-logo .logo { max-height: 76px !important; height: 76px !important; width: auto !important; max-width: none !important; }
body.bpb-site nav.menu-shadow .max-large .tainacan-logo { padding: 6px 0 !important; }
.bpb-search .tainacan-search-container #tainacan-search-bar-block button.button { border-radius: 50% !important; }
/* Caixa de largura com espaçamento interno: sem isso, 100% + padding transbordava no celular. */
.bpb-wrap, .bpb-full, .bpb-hero .wp-block-cover__inner-container, .bpb-cards > *, .bpb-steps > *, .bpb-visit > *, .bpb-stat { box-sizing: border-box !important; }
.bpb-wrap { width: 100% !important; }
.bpb-cta.wp-block-cover .wp-block-cover__inner-container { padding: clamp(28px, 5vw, 64px) !important; box-sizing: border-box; }
@media (max-width: 600px) {
	.bpb-hero .wp-block-cover__inner-container { padding-left: 18px !important; padding-right: 18px !important; }
	.bpb-wrap { padding-left: 18px; padding-right: 18px; }
	.bpb-btns { flex-wrap: wrap; }
	body.bpb-site nav.menu-shadow .max-large .tainacan-logo .logo { height: 58px !important; max-height: 58px !important; }
}
