/* ----------------------------------------------------------------
    Layout premium (feature/layout-premium)
    Usa os tokens de escritorios.css (navy escuro, creme do logo).
    Organização: 1) global  2) home
-----------------------------------------------------------------*/

/* =================================================================
    1. GLOBAL
================================================================= */
body {
    color: var(--bf-texto);
    -webkit-font-smoothing: antialiased;
}

::selection {
    background: var(--bf-creme);
    color: var(--bf-ink);
}

/* ---------- Header ---------- */
.is-expanded-menu .sticky-header #header-wrap {
    background-color: rgba(14, 34, 50, .92) !important;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    box-shadow: 0 1px 0 rgba(250, 248, 190, .08);
}

.is-expanded-menu .menu-container > .menu-item > .menu-link div {
    position: relative;
    letter-spacing: .01em;
}

.is-expanded-menu .menu-container > .menu-item > .menu-link div::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -6px;
    height: 1px;
    background: var(--bf-creme);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .35s var(--bf-ease);
}

.is-expanded-menu .menu-container > .menu-item:hover > .menu-link div::after,
.is-expanded-menu .menu-container > .menu-item.current > .menu-link div::after {
    transform: scaleX(1);
}

.is-expanded-menu .sub-menu-container {
    border: 0;
    border-top: 2px solid var(--bf-creme);
    background: var(--bf-ink);
    box-shadow: 0 20px 40px -20px rgba(0, 0, 0, .6);
}

.is-expanded-menu .sub-menu-container .menu-item > .menu-link {
    color: rgba(255, 255, 255, .8);
}

.is-expanded-menu .sub-menu-container .menu-item:hover > .menu-link {
    background: rgba(250, 248, 190, .06);
    color: var(--bf-creme);
}

/* ---------- Slider: legibilidade e tipografia ---------- */
#slider .swiper-slide-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(14, 34, 50, .55) 0%, rgba(14, 34, 50, .15) 40%, rgba(14, 34, 50, .7) 100%);
}

#slider .slider-caption h2 {
    font-family: var(--bf-sans);
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.05;
    color: #fff;
}

#slider .slider-caption p {
    font-weight: 500;
    color: rgba(255, 255, 255, .82);
}

#slider .button.button-border {
    border-radius: 0 !important;
    border-width: 1px;
    border-color: rgba(255, 255, 255, .5);
    font-weight: 700;
    letter-spacing: .02em;
    transition: background .35s var(--bf-ease), color .35s var(--bf-ease), border-color .35s var(--bf-ease);
}

#slider .button.button-border:hover {
    background: var(--bf-creme) !important;
    border-color: var(--bf-creme);
    color: var(--bf-ink) !important;
}

#slider .slider-arrow-left,
#slider .slider-arrow-right {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .25);
    transition: border-color .3s, background .3s;
}

#slider .slider-arrow-left:hover,
#slider .slider-arrow-right:hover {
    background: rgba(250, 248, 190, .1);
    border-color: var(--bf-creme);
}

/* ---------- Botão padrão do site ---------- */
.btn-default {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    padding: 1rem 1.6rem;
    background: var(--bf-navy);
    color: #fff;
    font-family: var(--bf-sans);
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1;
    transition: background .35s var(--bf-ease), color .35s var(--bf-ease);
}

.btn-default::after {
    content: "\2192";
    font-size: 1.05rem;
    transition: transform .35s var(--bf-ease);
}

.btn-default:hover {
    background: var(--bf-ink);
    color: var(--bf-creme);
}

.btn-default:hover::after {
    transform: translateX(4px);
}

.btn-default.dark {
    background: var(--bf-creme);
    color: var(--bf-navy);
}

.btn-default.dark:hover {
    background: #fff;
    color: var(--bf-navy);
}

.bf-centro {
    margin-top: clamp(2.5rem, 5vw, 4rem);
    text-align: center;
}

/* ---------- Cabeçalho de seção ---------- */
.bf-cab {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: clamp(2rem, 4vw, 3.2rem);
}

.bf-cab-rotulo {
    margin: 0 0 .7rem;
    color: var(--bf-navy);
}

.bf-cab-rotulo::before {
    content: "";
    display: inline-block;
    width: 28px;
    height: 1px;
    margin-right: .7rem;
    background: currentColor;
    vertical-align: middle;
}

.bf-cab-titulo,
h2.bf-cab-titulo {
    margin: 0;
    padding: 0;
    font-family: var(--bf-sans);
    font-size: clamp(2.1rem, 4vw, 3.1rem);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -.025em;
    color: var(--bf-ink);
}

.bf-cab .bf-link-seta {
    flex-shrink: 0;
    margin-bottom: .4rem;
}

/* variante para fundos escuros */
.bf-cab-escuro .bf-cab-rotulo,
.bf-home-escritorio .bf-cab-rotulo {
    color: var(--bf-creme);
}

.bf-cab-escuro .bf-cab-titulo,
.bf-home-escritorio .bf-cab-titulo {
    color: #fff !important;
}

/* atraso escalonado nas revelações */
.bf-reveal {
    transition-delay: var(--d, 0s);
}

/* ---------- Setas dos carrosséis (owl) ---------- */
.owl-carousel .owl-nav button.owl-prev,
.owl-carousel .owl-nav button.owl-next {
    display: grid !important;
    place-items: center;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(14, 34, 50, .18) !important;
    background: #fff !important;
    border-radius: 0 !important;
    transition: background .3s, border-color .3s;
}

.owl-carousel .owl-nav button img {
    display: none;
}

.owl-carousel .owl-nav button.owl-prev::before,
.owl-carousel .owl-nav button.owl-next::before {
    font-size: 1.1rem;
    line-height: 1;
    color: var(--bf-ink);
}

.owl-carousel .owl-nav button.owl-prev::before {
    content: "\2190";
}

.owl-carousel .owl-nav button.owl-next::before {
    content: "\2192";
}

.owl-carousel .owl-nav button.owl-prev:hover,
.owl-carousel .owl-nav button.owl-next:hover {
    background: var(--bf-ink) !important;
    border-color: var(--bf-ink) !important;
}

.owl-carousel .owl-nav button:hover::before {
    color: var(--bf-creme);
}

.owl-carousel .owl-dots .owl-dot {
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 6px 0 !important;
    background: none !important;
    border-radius: 0 !important;
    opacity: 1 !important;
}

.owl-carousel .owl-dots .owl-dot span {
    display: block !important;
    width: 18px;
    height: 2px;
    margin: 0 3px;
    border-radius: 0;
    background: rgba(14, 34, 50, .2);
    transition: width .35s var(--bf-ease), background .35s;
}

.owl-carousel .owl-dots .owl-dot.active span {
    width: 36px;
    background: var(--bf-navy);
}

/* ---------- Rodapé ---------- */
#footer {
    background: var(--bf-ink);
    color: rgba(255, 255, 255, .7);
}

#newsletter {
    padding: clamp(2.5rem, 5vw, 3.5rem) 0;
    background:
        radial-gradient(60% 120% at 100% 0%, rgba(61, 109, 145, .3), transparent 70%),
        var(--bf-ink);
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}

#newsletter .container {
    justify-content: flex-start;
}

#formNewsletter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.2rem 2rem;
    width: 100%;
}

#formNewsletter > br {
    display: none;
}

#formNewsletter > span {
    max-width: 22ch;
    font-size: clamp(1.4rem, 2.4vw, 1.9rem);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.01em;
    color: #fff;
}

#inputNewsletter {
    flex: 0 1 520px;
    height: 56px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .18);
    transition: border-color .3s;
}

#inputNewsletter:focus-within {
    border-color: var(--bf-creme);
}

#inputNewsletter .img-send {
    width: 54px;
    height: 100%;
    margin: 0;
    background: transparent;
}

#inputNewsletter .img-send img {
    filter: brightness(0) invert(1);
    opacity: .6;
}

#inputNewsletter .input-send {
    flex: 1;
    width: auto;
}

#inputNewsletter input {
    width: 100%;
    background: transparent;
    color: #fff;
    font-size: 1rem;
    outline: 0;
}

#inputNewsletter input::placeholder {
    color: rgba(255, 255, 255, .45);
}

#inputNewsletter .btn-send {
    height: 100%;
    padding: 0 1.6rem;
    background: var(--bf-creme);
    transition: background .3s;
}

#inputNewsletter .btn-send:hover {
    background: #fff;
}

#inputNewsletter .btn-send span {
    color: var(--bf-ink);
    font-size: .95rem;
}

#footerlinks {
    padding: 2.2rem 0 6rem;
    background: transparent;
}

#sitelinks {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem 1.6rem;
    font-size: 0; /* esconde os separadores "|" do markup */
    font-weight: 600;
}

#sitelinks a,
#sitelinks a:first-child {
    margin: 0;
    font-size: .95rem;
    color: rgba(255, 255, 255, .78);
    transition: color .3s;
}

#sitelinks a:hover {
    color: var(--bf-creme);
}

#copyright {
    margin-top: 1rem;
    font-size: .85rem;
    color: rgba(255, 255, 255, .45);
}

#socialLinks {
    gap: .6rem;
}

#socialLinks a {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, .15);
    transition: border-color .3s, background .3s;
}

#socialLinks a:hover {
    border-color: var(--bf-creme);
    background: rgba(250, 248, 190, .06);
}

#socialLinks img {
    width: 22px;
    filter: brightness(0) invert(1);
    opacity: .85;
}

/* =================================================================
    2. HOME
================================================================= */

/* ---------- Área de atuação (cards) ---------- */
.bf-home-atuacao {
    background: #eceef0;
}

.bf-home-atuacao .content-wrap {
    padding: clamp(4.5rem, 8vw, 7rem) 0;
}

.bf-home-atuacao #homeAtuacao {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: clamp(1rem, 2vw, 1.5rem);
}

.bf-home-atuacao #homeAtuacao .area-item {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    text-align: left;
    gap: 1.4rem;
    width: auto;
    min-height: 0;
    margin: 0;
    padding: clamp(1.8rem, 3vw, 2.4rem);
    background: #fff;
    border-radius: 6px;
    border: 1px solid rgba(14, 34, 50, .06);
    box-shadow: 0 2px 4px rgba(14, 34, 50, .06), 0 18px 40px -20px rgba(14, 34, 50, .38);
    color: inherit;
    overflow: hidden;
    isolation: isolate;
    transition: transform .5s var(--bf-ease), box-shadow .5s var(--bf-ease), opacity 1s var(--bf-ease);
}

/* camada escura que sobe no hover */
.bf-home-atuacao #homeAtuacao .area-item::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(90% 70% at 100% 0%, rgba(61, 109, 145, .45), transparent 70%),
        var(--bf-ink);
    clip-path: circle(0% at 100% 0%);
    transition: clip-path .7s var(--bf-ease);
}

.bf-home-atuacao #homeAtuacao .area-item:hover,
.bf-home-atuacao #homeAtuacao .area-item:focus-visible {
    transform: translateY(-6px);
    box-shadow: 0 30px 60px -25px rgba(14, 34, 50, .55);
}

.bf-home-atuacao #homeAtuacao .area-item:hover::before,
.bf-home-atuacao #homeAtuacao .area-item:focus-visible::before {
    clip-path: circle(150% at 100% 0%);
}

.bf-area-num {
    position: absolute;
    top: 1.6rem;
    right: 1.8rem;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .12em;
    color: var(--bf-texto-suave);
    transition: color .4s;
}

.bf-home-atuacao .icon-rounded {
    background-image: none;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #eceef0;
    transition: background .4s, transform .6s var(--bf-ease);
}

.bf-home-atuacao .icon-rounded img {
    width: 58%;
    transition: filter .4s;
}

.bf-home-atuacao #homeAtuacao .area-item .area-desc {
    flex: 1;
    padding: 0;
    text-align: left;
}

.bf-home-atuacao .area-title {
    margin: 0 0 .7rem;
    font-family: var(--bf-sans);
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--bf-ink);
    transition: color .4s;
}

.bf-home-atuacao #homeAtuacao .area-item .area-desc p {
    margin: 0;
    font-size: .95rem;
    font-weight: 500;
    line-height: 1.65;
    color: var(--bf-texto-suave);
    transition: color .4s;
}

.bf-area-seta {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .9rem;
    font-weight: 700;
    color: var(--bf-navy);
    transition: color .4s, gap .4s var(--bf-ease);
}

.bf-home-atuacao #homeAtuacao .area-item:hover .bf-area-num,
.bf-home-atuacao #homeAtuacao .area-item:hover .area-title,
.bf-home-atuacao #homeAtuacao .area-item:hover .bf-area-seta {
    color: var(--bf-creme);
}

.bf-home-atuacao #homeAtuacao .area-item:hover .bf-area-seta {
    gap: .8rem;
}

.bf-home-atuacao #homeAtuacao .area-item:hover .area-desc p {
    color: rgba(255, 255, 255, .75);
}

.bf-home-atuacao #homeAtuacao .area-item:hover .icon-rounded {
    background: rgba(250, 248, 190, .12);
    transform: rotate(-8deg) scale(1.05);
}

.bf-home-atuacao #homeAtuacao .area-item:hover .icon-rounded img {
    filter: brightness(0) invert(1);
}

/* ---------- O Escritório (parallax) ---------- */
.bf-home-escritorio {
    padding: clamp(5rem, 10vw, 8rem) 0 !important;
}

/* cor mais escura, porém mais transparente: a foto aparece mais */
.bf-home-escritorio::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(100deg, rgba(3, 10, 16, .82) 0%, rgba(3, 10, 16, .66) 50%, rgba(3, 10, 16, .5) 100%);
}

.bf-home-escritorio .container {
    position: relative;
    z-index: 2;
}

.bf-escritorio-grid {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: start;
}

.bf-escritorio-grid .bf-cab-titulo {
    margin-bottom: 2rem;
}

.bf-escritorio-texto {
    margin: 0;
    font-size: 1.1rem;
    line-height: 1.85;
    text-align: left;
    color: rgba(255, 255, 255, .86);
    text-shadow: 0 1px 12px rgba(0, 0, 0, .35);
}

/* ---------- Destaques: abas + carrossel escuro ---------- */
.bf-home-destaques {
    position: relative;
    padding: clamp(4rem, 7vw, 6rem) 0 clamp(4rem, 7vw, 6rem);
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(45% 60% at 15% 30%, rgba(61, 109, 145, .35), transparent 70%),
        radial-gradient(40% 60% at 95% 90%, rgba(250, 248, 190, .07), transparent 70%),
        var(--bf-ink);
    isolation: isolate;
}

.bf-home-destaques::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image: var(--bf-ruido);
    opacity: .06;
    mix-blend-mode: overlay;
}

/* abas */
.bf-tabs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0 1.5rem;
    margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.bf-tab {
    position: relative;
    display: flex;
    align-items: baseline;
    gap: .7rem;
    padding: 0 0 1.1rem;
    border: 0;
    background: none;
    color: rgba(255, 255, 255, .45);
    text-align: left;
    cursor: pointer;
    transition: color .4s;
}

.bf-tab-num {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.bf-tab-nome {
    font-size: clamp(.95rem, 1.4vw, 1.15rem);
    font-weight: 700;
}

.bf-tab:hover,
.bf-tab.is-ativa {
    color: #fff;
}

.bf-tab.is-ativa .bf-tab-num {
    color: var(--bf-creme);
}

.bf-tab:focus-visible {
    outline: 2px solid var(--bf-creme);
    outline-offset: 4px;
}

.bf-tab-barra {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: rgba(255, 255, 255, .12);
}

.bf-tab-barra i {
    display: block;
    height: 100%;
    background: var(--bf-creme);
    transform: scaleX(0);
    transform-origin: left;
}

.bf-tab.is-ativa .bf-tab-barra i {
    transform: scaleX(1);
}

.bf-tab-barra.is-rodando i {
    transform: scaleX(0);
    animation: bf-progresso 9s linear forwards;
}

.bf-tab-barra.is-pausado i {
    animation-play-state: paused;
}

/* slides */
.bf-slide {
    display: grid;
    gap: clamp(2rem, 5vw, 5rem);
    align-items: center;
    min-height: 460px;
}

.bf-slide-presenca {
    grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
    align-items: start;
}

.bf-slide-tema {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
}

.bf-slide-titulo,
h2.bf-slide-titulo {
    margin: 0 0 1.6rem;
    padding: 0;
    font-family: var(--bf-sans);
    font-size: clamp(2rem, 3.6vw, 2.9rem);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -.025em;
    color: #fff !important;
}

/* entrada escalonada a cada troca de slide */
.owl-item.active .bf-anima {
    animation: bf-entra .9s var(--bf-ease) both;
    animation-delay: calc(var(--a, 0) * 110ms + 150ms);
}

@keyframes bf-entra {
    from { opacity: 0; transform: translateY(26px); }
    to { opacity: 1; transform: none; }
}

/* mapa */
.bf-mapa-brasil {
    position: relative;
    max-width: 460px;
}

.bf-home-destaques #svg-map {
    width: 100%;
    height: auto;
    overflow: visible;
}

.bf-home-destaques #svg-map path {
    fill: rgba(255, 255, 255, .07);
    stroke: rgba(255, 255, 255, .22) !important;
    stroke-width: .8;
    transition: fill .5s var(--bf-ease);
}

.bf-home-destaques #svg-map path:hover {
    fill: rgba(255, 255, 255, .16);
}

.bf-home-destaques #svg-map text {
    fill: rgba(255, 255, 255, .45);
    font: 700 10px var(--bf-sans);
    pointer-events: none;
}

.bf-home-destaques #svg-map .bf-ativo {
    fill: rgba(250, 248, 190, .07);
    transition: fill .7s var(--bf-ease);
    transition-delay: calc(var(--i, 0) * 120ms + 300ms);
}

.bf-home-destaques #svg-map text.bf-ativo {
    fill: rgba(255, 255, 255, .45);
}

.bf-mapa-brasil.is-animado #svg-map path.bf-ativo,
.is-animado #svg-map path.bf-ativo {
    fill: var(--bf-creme);
    stroke: rgba(14, 34, 50, .6) !important;
    filter: drop-shadow(0 0 10px rgba(250, 248, 190, .35));
}

.is-animado #svg-map text.bf-ativo {
    fill: var(--bf-ink);
}

.is-animado #svg-map path.bf-ativo:hover {
    fill: #fff;
}

/* pinos */
.bf-pino {
    cursor: pointer;
}

.bf-pino-centro {
    fill: var(--bf-ink);
    stroke: var(--bf-creme);
    stroke-width: 2.5;
    transform: scale(0);
    transform-box: fill-box;
    transform-origin: center;
}

.bf-pino-onda {
    fill: none;
    stroke: var(--bf-creme);
    stroke-width: 1.5;
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
}

.is-animado .bf-pino-centro {
    animation: bf-pino-cai .7s cubic-bezier(.3, 1.6, .5, 1) both;
    animation-delay: calc(var(--i, 0) * 250ms + 1.6s);
}

.is-animado .bf-pino-onda {
    animation: bf-onda 2.6s var(--bf-ease) infinite;
    animation-delay: calc(var(--i, 0) * 250ms + 2s);
}

.is-animado .bf-pino-onda-2 {
    animation-delay: calc(var(--i, 0) * 250ms + 3.3s);
}

@keyframes bf-pino-cai {
    from { transform: scale(0); }
    to { transform: scale(1); }
}

@keyframes bf-onda {
    0% { opacity: .9; transform: scale(.6); }
    100% { opacity: 0; transform: scale(3.4); }
}

.bf-mapa-tooltip {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 3;
    padding: .55rem .8rem;
    background: #fff;
    color: var(--bf-ink);
    font-size: .85rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    box-shadow: 0 15px 30px -12px rgba(0, 0, 0, .6);
    pointer-events: none;
    opacity: 0;
    transition: opacity .2s;
}

.bf-mapa-tooltip small {
    display: block;
    margin-top: .15rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bf-navy);
}

.bf-mapa-tooltip.is-visivel {
    opacity: 1;
}

.bf-mapa-legenda {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1.6rem;
    margin: 1.2rem 0 0;
    padding: 0;
    list-style: none;
    font-size: .85rem;
    color: rgba(255, 255, 255, .6);
}

.bf-mapa-legenda li {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.bf-leg-estado {
    width: 14px;
    height: 10px;
    background: var(--bf-creme);
}

.bf-leg-pino {
    width: 11px;
    height: 11px;
    border: 2.5px solid var(--bf-creme);
    border-radius: 50%;
    background: var(--bf-ink);
}

/* números */
.bf-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .1);
}

.bf-stat {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: clamp(1.4rem, 2.5vw, 2rem);
    background: var(--bf-ink);
    transition: background .4s;
}

.bf-stat:hover {
    background: var(--bf-ink-2);
}

.bf-stat-rotulo {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .5);
}

.bf-stat-num {
    margin: .4rem 0 .2rem;
    font-size: clamp(2.6rem, 4.6vw, 3.8rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.04em;
    font-variant-numeric: tabular-nums;
    color: var(--bf-creme);
}

.bf-stat-desc {
    font-size: .95rem;
    font-weight: 600;
    color: rgba(255, 255, 255, .85);
}

.bf-stat-linha {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 2px;
    background: var(--bf-creme);
    transform: scaleX(0);
    transform-origin: left;
}

.owl-item.active .bf-stat-linha {
    animation: bf-linha 1.4s var(--bf-ease) both;
    animation-delay: calc(var(--a, 0) * 110ms + 500ms);
}

@keyframes bf-linha {
    0% { transform: scaleX(0); opacity: 1; }
    70% { transform: scaleX(1); opacity: 1; }
    100% { transform: scaleX(1); opacity: .25; }
}

/* temas: IA, ambiental, ISO */
.bf-tema-visual {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 1;
    max-width: 420px;
}

.bf-tema-icone {
    position: relative;
    display: grid;
    place-items: center;
    width: 72%;
    max-width: 320px;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 25%, rgba(255, 255, 255, .14), rgba(255, 255, 255, .03) 70%);
    border: 1px solid rgba(250, 248, 190, .25);
    box-shadow: 0 0 0 14px rgba(250, 248, 190, .04), 0 0 80px rgba(61, 109, 145, .5);
}

.bf-tema-icone::after {
    content: "";
    position: absolute;
    inset: -14px;
    border-radius: 50%;
    border: 1px dashed rgba(250, 248, 190, .3);
    animation: bf-gira 30s linear infinite;
}

@keyframes bf-gira {
    to { transform: rotate(360deg); }
}

.bf-tema-icone img {
    width: 50% !important;
    filter: brightness(0) invert(1);
    opacity: .92;
}

.bf-tema-texto p {
    max-width: 58ch;
    margin: 0;
    font-size: 1.08rem;
    line-height: 1.85;
    color: rgba(255, 255, 255, .78);
}

/* ---------- Equipe ---------- */
.bf-home-equipe {
    padding: clamp(4.5rem, 8vw, 7rem) 0;
    background: #fff;
}

.bf-home-equipe #homeEquipe {
    text-align: left;
}

.bf-membro {
    margin: 0;
}

.bf-membro-foto {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: var(--bf-papel);
}

.bf-membro-foto::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 3px;
    background: var(--bf-creme);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .5s var(--bf-ease);
}

.bf-home-equipe #homeEquipe .img-team {
    width: 100% !important;
    height: 100%;
    margin: 0;
    object-fit: cover;
    object-position: top center;
    border-radius: 0;
    filter: grayscale(.35);
    transition: transform 1s var(--bf-ease), filter .6s var(--bf-ease);
}

.bf-membro:hover .img-team {
    transform: scale(1.05);
    filter: grayscale(0);
}

.bf-membro:hover .bf-membro-foto::after {
    transform: scaleX(1);
}

.bf-membro figcaption {
    padding: 1.1rem 0 0;
}

.bf-home-equipe #homeEquipe h4 {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--bf-ink);
}

.bf-home-equipe #homeEquipe span {
    display: block;
    margin-top: .25rem;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bf-texto-suave);
}

.bf-home-equipe #homeEquipe .owl-nav,
.bf-home-noticias #homeNoticias .owl-nav,
.bf-home-imprensa #homeImprensaCarousel .owl-nav,
.bf-home-publicacoes #homeLivrosCarrousel .owl-nav {
    position: static;
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    margin-top: 2rem;
}

.bf-home-equipe #homeEquipe .owl-nav button,
.bf-home-noticias #homeNoticias .owl-nav button,
.bf-home-imprensa #homeImprensaCarousel .owl-nav button,
.bf-home-publicacoes #homeLivrosCarrousel .owl-nav button {
    position: static !important;
    margin: 0 !important;
    transform: none !important;
}

/* ---------- Artigos e livros ---------- */
.bf-home-publicacoes {
    overflow-x: clip;
    padding: clamp(4.5rem, 8vw, 7rem) 0;
    background:
        radial-gradient(50% 70% at 100% 0%, rgba(61, 109, 145, .3), transparent 70%),
        var(--bf-ink) !important;
}

.bf-home-publicacoes #artigos-list {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: artigo;
}

.bf-home-publicacoes #artigos-list li.artigo-item {
    display: grid;
    grid-template-columns: 3rem 1fr;
    align-items: start;
    padding: 1.4rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    counter-increment: artigo;
}

.bf-home-publicacoes #artigos-list li.artigo-item:first-child {
    border-top: 1px solid rgba(255, 255, 255, .1);
}

.bf-home-publicacoes #artigos-list li.artigo-item:last-child {
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.bf-home-publicacoes #artigos-list li.artigo-item::before {
    content: counter(artigo, decimal-leading-zero);
    padding-top: .15rem;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .1em;
    color: var(--bf-creme);
}

.bf-home-publicacoes #artigos-list li.artigo-item .artigo-desc {
    padding: 0;
}

.bf-home-publicacoes .artigo-desc p {
    margin-bottom: .55rem;
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.4;
}

.bf-home-publicacoes .artigo-desc p a {
    color: #fff;
    transition: color .3s;
}

.bf-home-publicacoes .artigo-desc p a:hover {
    color: var(--bf-creme);
}

.bf-home-publicacoes .artigo-icon-list {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: .3rem 1.2rem;
    margin: 0;
}

.bf-home-publicacoes .artigo-icon-list li {
    gap: .35rem;
    font-size: .82rem;
    color: rgba(255, 255, 255, .5);
}

.bf-home-publicacoes .artigo-icon-list li i {
    color: var(--bf-creme);
    opacity: .7;
}

.bf-livro-capa {
    display: block;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--bf-ink-2);
    box-shadow: 0 30px 50px -25px rgba(0, 0, 0, .8);
}

.bf-livro-capa img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s var(--bf-ease);
}

.home-livro-item:hover .bf-livro-capa img {
    transform: scale(1.04);
}

.bf-home-publicacoes .home-livro-item h4.dark {
    margin: 1.1rem 0 0;
    padding: 0;
    font-size: .92rem;
    font-weight: 600;
    line-height: 1.45;
    text-align: left;
}

.bf-home-publicacoes .home-livro-item h4.dark a {
    color: rgba(255, 255, 255, .8);
}

.bf-home-publicacoes .home-livro-item h4.dark a:hover {
    color: var(--bf-creme);
}

.bf-home-publicacoes .owl-nav button.owl-prev,
.bf-home-publicacoes .owl-nav button.owl-next {
    border-color: rgba(255, 255, 255, .2) !important;
    background: transparent !important;
}

.bf-home-publicacoes .owl-nav button::before {
    color: #fff !important;
}

.bf-home-publicacoes .owl-nav button:hover {
    background: var(--bf-creme) !important;
    border-color: var(--bf-creme) !important;
}

.bf-home-publicacoes .owl-nav button:hover::before {
    color: var(--bf-ink) !important;
}

/* ---------- Notícias ---------- */
.bf-home-noticias {
    padding: clamp(4.5rem, 8vw, 7rem) 0;
    background: #fff;
}

.bf-home-noticias #homeNoticias .noticia-item {
    display: flex;
    flex-direction: column;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 1px solid var(--bf-cinza);
    background: #fff;
    transition: border-color .4s, box-shadow .4s var(--bf-ease), transform .4s var(--bf-ease);
}

.bf-home-noticias #homeNoticias .noticia-item:hover {
    border-color: transparent;
    box-shadow: 0 30px 60px -30px rgba(14, 34, 50, .35);
    transform: translateY(-4px);
}

.bf-home-noticias #homeNoticias .noticia-capa {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--bf-papel);
}

.bf-home-noticias #homeNoticias .noticia-capa::before,
.bf-home-noticias #homeNoticias .noticia-capa::after {
    display: none;
}

.bf-home-noticias #homeNoticias .noticia-capa img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1s var(--bf-ease);
}

.bf-home-noticias #homeNoticias .noticia-item:hover .noticia-capa img {
    transform: scale(1.05);
}

.noticia-corpo {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.6rem;
}

.noticia-meta {
    margin: 0 0 .7rem;
    color: var(--bf-navy);
}

.noticia-titulo {
    margin: 0 0 .8rem;
    font-family: var(--bf-sans);
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -.01em;
}

.noticia-titulo a {
    color: var(--bf-ink);
    transition: color .3s;
}

.noticia-titulo a:hover {
    color: var(--bf-navy);
}

.noticia-resumo {
    display: -webkit-box;
    margin: 0 0 1.2rem;
    overflow: hidden;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    font-size: .95rem;
    line-height: 1.65;
    color: var(--bf-texto-suave);
}

.noticia-autor {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid var(--bf-cinza);
    font-size: .85rem;
    font-weight: 600;
    color: var(--bf-texto);
}

.bf-home-noticias #homeNoticias .owl-stage {
    display: flex;
}

.bf-home-noticias #homeNoticias .owl-item {
    display: flex;
    padding: 0 0 2rem;
}

.bf-home-noticias #homeNoticias .owl-item > article {
    width: 100%;
}

/* ---------- Imprensa ---------- */
.bf-home-imprensa {
    padding: clamp(4.5rem, 8vw, 7rem) 0 clamp(3.5rem, 6vw, 5rem);
}

.bf-video .video-img a {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--bf-ink);
}

.bf-video .video-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1s var(--bf-ease), opacity .4s;
}

.bf-video-play {
    position: absolute;
    left: 1rem;
    bottom: 1rem;
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--bf-creme);
    color: var(--bf-ink);
    font-size: 1.5rem;
    box-shadow: 0 10px 25px -8px rgba(0, 0, 0, .5);
    transition: transform .4s var(--bf-ease);
}

.bf-video:hover .video-img img {
    transform: scale(1.05);
    opacity: .85;
}

.bf-video:hover .bf-video-play {
    transform: scale(1.1);
}

.bf-home-imprensa .video-desc h4 {
    padding: 1rem 0 0;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.45;
    text-align: left;
}

.bf-home-imprensa .video-desc a {
    color: var(--bf-ink);
}

.bf-home-imprensa .video-desc a:hover {
    color: var(--bf-navy);
}

/* ---------- Responsivo ---------- */
@media (max-width: 991.98px) {
    .bf-home-atuacao #homeAtuacao {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .bf-escritorio-grid,
    .bf-slide-presenca,
    .bf-slide-tema {
        grid-template-columns: 1fr;
    }

    .bf-slide {
        min-height: 0;
    }

    .bf-tema-visual {
        max-width: 260px;
        margin: 0 auto;
    }
}

@media (max-width: 767.98px) {
    .bf-home-atuacao #homeAtuacao {
        grid-template-columns: 1fr;
    }

    .bf-cab {
        flex-direction: column;
        align-items: flex-start;
    }

    #formNewsletter > span {
        max-width: none;
    }

    #inputNewsletter {
        flex-basis: 100%;
    }

    #socialLinks {
        justify-content: flex-start;
        margin-top: 1.5rem;
    }

    .bf-tabs {
        display: flex;
        gap: 1.4rem;
        margin-left: -16px;
        margin-right: -16px;
        padding: 0 16px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .bf-tabs::-webkit-scrollbar {
        display: none;
    }

    .bf-tab {
        flex: 0 0 auto;
    }
}

/* =================================================================
    3. COMPONENTES REUTILIZÁVEIS
================================================================= */

/* ---------- Preenchimento escuro dos cards (suave, via transform) ----------
   Um círculo centrado no canto superior direito cresce com scale() — animado
   pela GPU, sem recalcular recorte a cada quadro. Diâmetro de 340% da largura
   garante cobertura total mesmo em cards mais altos que largos. */
.bf-card,
.bf-home-atuacao #homeAtuacao .area-item {
    --bf-fill-dur: .75s;
    --bf-fill-ease: cubic-bezier(.65, 0, .35, 1);
}

.bf-card::before,
.bf-home-atuacao #homeAtuacao .area-item::before {
    content: "";
    position: absolute;
    inset: 0 0 auto auto; /* só topo e direita: anula o inset: 0 da versão anterior */
    z-index: -1;
    width: 340%;
    height: auto;
    aspect-ratio: 1;
    border-radius: 50%;
    background:
        radial-gradient(closest-side at 50% 50%, rgba(61, 109, 145, .55), rgba(61, 109, 145, 0) 35%),
        var(--bf-ink);
    clip-path: none;
    transform: translate(50%, -50%) scale(0);
    transition: transform var(--bf-fill-dur) var(--bf-fill-ease);
    will-change: transform;
    pointer-events: none;
}

.bf-card:hover::before,
.bf-card:focus-visible::before,
.bf-home-atuacao #homeAtuacao .area-item:hover::before,
.bf-home-atuacao #homeAtuacao .area-item:focus-visible::before {
    clip-path: none;
    transform: translate(50%, -50%) scale(1);
}

/* textos acompanham a chegada do fundo: ao entrar com pequeno atraso,
   ao sair voltam imediatamente */
.bf-card .bf-card-num,
.bf-card .bf-card-titulo,
.bf-card .bf-card-texto,
.bf-card .bf-card-icone,
.bf-card .bf-card-icone img,
.bf-home-atuacao #homeAtuacao .area-item .bf-area-num,
.bf-home-atuacao #homeAtuacao .area-item .area-title,
.bf-home-atuacao #homeAtuacao .area-item .area-desc p,
.bf-home-atuacao #homeAtuacao .area-item .bf-area-seta,
.bf-home-atuacao #homeAtuacao .area-item .icon-rounded,
.bf-home-atuacao #homeAtuacao .area-item .icon-rounded img {
    transition:
        color .35s ease,
        background-color .35s ease,
        filter .35s ease,
        gap .5s var(--bf-ease),
        transform .7s var(--bf-ease);
}

.bf-card:hover .bf-card-num,
.bf-card:hover .bf-card-titulo,
.bf-card:hover .bf-card-texto,
.bf-card:hover .bf-card-icone,
.bf-card:hover .bf-card-icone img,
.bf-home-atuacao #homeAtuacao .area-item:hover .bf-area-num,
.bf-home-atuacao #homeAtuacao .area-item:hover .area-title,
.bf-home-atuacao #homeAtuacao .area-item:hover .area-desc p,
.bf-home-atuacao #homeAtuacao .area-item:hover .bf-area-seta,
.bf-home-atuacao #homeAtuacao .area-item:hover .icon-rounded,
.bf-home-atuacao #homeAtuacao .area-item:hover .icon-rounded img {
    transition-delay: .18s, .18s, .18s, 0s, 0s;
}

/* ---------- Grade de cards ---------- */
.bf-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 2vw, 1.5rem);
}

.bf-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.2rem;
    padding: clamp(1.8rem, 3vw, 2.4rem);
    background: #fff;
    border: 1px solid rgba(14, 34, 50, .06);
    border-radius: 6px;
    box-shadow: 0 2px 4px rgba(14, 34, 50, .06), 0 18px 40px -20px rgba(14, 34, 50, .38);
    overflow: hidden;
    isolation: isolate;
    transition: transform .6s var(--bf-ease), box-shadow .6s var(--bf-ease), opacity 1s var(--bf-ease);
}

.bf-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 30px 60px -25px rgba(14, 34, 50, .55);
}

.bf-card-num {
    position: absolute;
    top: 1.6rem;
    right: 1.8rem;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .12em;
    color: var(--bf-texto-suave);
}

.bf-card-icone {
    display: grid;
    place-items: center;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background-color: var(--bf-navy);
}

/* os PNGs do tema vêm em cores diferentes: padroniza em branco */
.bf-card-icone img {
    width: 56%;
    filter: brightness(0) invert(1);
}

.bf-card-titulo {
    margin: 0;
    font-family: var(--bf-sans);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -.01em;
    color: var(--bf-ink);
}

.bf-card-texto {
    margin: 0;
    font-size: .95rem;
    font-weight: 500;
    line-height: 1.65;
    color: var(--bf-texto-suave);
}

.bf-card:hover .bf-card-num,
.bf-card:hover .bf-card-titulo {
    color: var(--bf-creme);
}

.bf-card:hover .bf-card-texto {
    color: rgba(255, 255, 255, .75);
}

.bf-card:hover .bf-card-icone {
    background-color: rgba(250, 248, 190, .12);
    transform: rotate(-8deg) scale(1.05);
}

.bf-card:hover .bf-card-icone img {
    filter: brightness(0) invert(96%) sepia(12%) saturate(900%) hue-rotate(10deg);
}

/* =================================================================
    4. O ESCRITÓRIO
================================================================= */
.bf-topo-sobreposto {
    padding-bottom: clamp(6rem, 10vw, 8rem);
}

.bf-sobre,
#content.bf-sobre {
    padding: 0 0 clamp(4.5rem, 8vw, 7rem);
    background: #fff;
    overflow: visible; /* deixa o card ISO subir sobre o cabeçalho */
    display: flow-root; /* impede a margem negativa do card de colapsar na seção */
}

.bf-iso-card {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: clamp(1.5rem, 4vw, 3.5rem);
    margin-top: calc(clamp(6rem, 10vw, 8rem) * -1 + 2rem);
    padding: clamp(1.6rem, 3vw, 2.6rem) clamp(1.6rem, 4vw, 3.2rem);
    background: #fff;
    border-radius: 6px;
    border-top: 3px solid var(--bf-creme);
    box-shadow: 0 30px 70px -30px rgba(14, 34, 50, .45);
}

.bf-iso-selo img {
    width: clamp(140px, 16vw, 200px);
}

.bf-iso-card p {
    margin: 0;
    font-size: 1.02rem;
    line-height: 1.75;
    color: var(--bf-texto);
}

.bf-sobre-intro {
    display: grid;
    grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
    gap: clamp(2.5rem, 6vw, 5.5rem);
    align-items: center;
    margin-top: clamp(4.5rem, 8vw, 7rem);
}

.bf-sobre-texto .bf-cab-titulo {
    margin-bottom: 1.8rem;
}

.bf-sobre-texto p:not(.bf-rotulo) {
    margin: 0;
    font-size: 1.08rem;
    line-height: 1.85;
    color: var(--bf-texto);
}

.bf-sobre-foto {
    position: relative;
    margin: 0;
}

.bf-sobre-foto img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: 6px;
    box-shadow: 0 40px 80px -40px rgba(14, 34, 50, .6);
}

.bf-sobre-selo {
    position: absolute;
    left: -2rem;
    bottom: 2.5rem;
    display: grid;
    gap: .1rem;
    padding: 1.4rem 1.6rem;
    background: var(--bf-ink);
    border-radius: 6px;
    color: #fff;
    box-shadow: 0 25px 50px -20px rgba(0, 0, 0, .6);
}

.bf-sobre-selo .bf-rotulo {
    color: var(--bf-creme);
}

.bf-sobre-selo strong {
    font-size: 2.8rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.03em;
}

.bf-sobre-selo span:last-child {
    font-size: .88rem;
    color: rgba(255, 255, 255, .7);
}

/* Política, missão e visão */
.bf-sobre-valores {
    padding: clamp(4.5rem, 8vw, 7rem) 0;
    background: #eceef0;
}

.bf-politica {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    grid-template-rows: auto 1fr;
    column-gap: clamp(2rem, 6vw, 5rem);
}

.bf-politica .bf-cab-rotulo,
.bf-politica .bf-cab-titulo {
    grid-column: 1;
    align-self: start;
}

.bf-politica blockquote {
    grid-column: 2;
    grid-row: 1 / span 2;
    margin: 0;
    padding: 0 0 0 clamp(1.5rem, 3vw, 2.5rem);
    border-left: 3px solid var(--bf-navy);
    font-size: clamp(1.1rem, 1.8vw, 1.35rem);
    font-weight: 500;
    line-height: 1.7;
    color: var(--bf-ink);
}

.bf-mv {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(1rem, 2vw, 1.5rem);
    margin-top: clamp(3rem, 6vw, 4.5rem);
}

.bf-mv-card {
    position: relative;
    padding: clamp(2rem, 4vw, 3rem);
    border-radius: 6px;
    color: #fff;
    overflow: hidden;
    background:
        radial-gradient(70% 90% at 100% 0%, rgba(61, 109, 145, .45), transparent 70%),
        var(--bf-ink);
}

.bf-mv-icone {
    position: absolute;
    right: -1.5rem;
    bottom: -2.5rem;
    font-size: 10rem;
    line-height: 1;
    color: rgba(250, 248, 190, .06);
    transition: transform 1.2s var(--bf-ease), color .8s ease;
}

.bf-mv-card:hover .bf-mv-icone {
    transform: rotate(-12deg) scale(1.05);
    color: rgba(250, 248, 190, .1);
}

.bf-mv-num {
    color: var(--bf-creme);
}

.bf-mv-card h3 {
    margin: .8rem 0 1rem;
    font-family: var(--bf-sans);
    font-size: clamp(1.6rem, 2.6vw, 2.1rem);
    font-weight: 700;
    letter-spacing: -.02em;
    color: #fff;
}

.bf-mv-card p {
    position: relative;
    max-width: 46ch;
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.75;
    color: rgba(255, 255, 255, .78);
}

/* Diferenciais */
.bf-sobre-pilares {
    padding: clamp(4.5rem, 8vw, 7rem) 0;
    background: #fff;
}

/* Galeria */
.bf-sobre-galeria {
    padding: 0 0 clamp(4.5rem, 8vw, 7rem);
    background: #fff;
}

.bf-galeria-dica {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .4rem;
    font-size: .9rem;
    font-weight: 600;
    color: var(--bf-texto-suave);
}

.bf-galeria {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: clamp(160px, 18vw, 240px);
    gap: clamp(.6rem, 1.2vw, 1rem);
}

.bf-galeria-item {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 6px;
    background: var(--bf-papel);
}

.bf-galeria-item:first-child {
    grid-column: span 2;
    grid-row: span 2;
}

.bf-galeria-item:nth-child(4),
.bf-galeria-item:nth-child(5),
.bf-galeria-item:nth-child(6) {
    grid-column: span 2;
}

.bf-galeria-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--bf-ease);
}

.bf-galeria-item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 50%, rgba(14, 34, 50, .75));
    opacity: 0;
    transition: opacity .5s ease;
}

.bf-galeria-legenda {
    position: absolute;
    left: 1.1rem;
    bottom: .9rem;
    z-index: 1;
    font-size: .9rem;
    font-weight: 700;
    color: #fff;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .5s ease, transform .5s var(--bf-ease);
}

.bf-galeria-item:hover img {
    transform: scale(1.06);
}

.bf-galeria-item:hover::after,
.bf-galeria-item:hover .bf-galeria-legenda {
    opacity: 1;
    transform: none;
}

@media (max-width: 991.98px) {
    .bf-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .bf-sobre-intro,
    .bf-politica {
        grid-template-columns: 1fr;
    }

    .bf-politica blockquote {
        grid-column: 1;
        grid-row: auto;
        margin-top: 1.8rem;
    }

    .bf-sobre-foto {
        max-width: 520px;
    }

    .bf-sobre-selo {
        left: 1rem;
    }
}

@media (max-width: 767.98px) {
    .bf-card-grid,
    .bf-mv,
    .bf-iso-card {
        grid-template-columns: 1fr;
    }

    .bf-galeria {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: 150px;
    }

    .bf-galeria-item:nth-child(n+2) {
        grid-column: span 1;
    }

    .bf-galeria-item:last-child {
        grid-column: span 2;
    }

    .bf-galeria-legenda,
    .bf-galeria-item::after {
        opacity: 1;
        transform: none;
    }
}

/* =================================================================
    5. ÁREA DE ATUAÇÃO
================================================================= */
.bf-atuacao,
#content.bf-atuacao {
    display: flow-root;
    overflow: visible;
    padding: 0 0 clamp(4.5rem, 8vw, 7rem);
    background: #eceef0;
}

.bf-atuacao-grid {
    position: relative;
    z-index: 2;
    margin-top: calc(clamp(6rem, 10vw, 8rem) * -1 + 2rem);
}

.bf-atuacao-intro {
    grid-column: span 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding: clamp(2rem, 4vw, 3.2rem);
    border-radius: 6px;
    color: #fff;
    background:
        radial-gradient(70% 90% at 100% 0%, rgba(61, 109, 145, .5), transparent 70%),
        var(--bf-ink);
    box-shadow: 0 30px 60px -30px rgba(14, 34, 50, .6);
}

.bf-atuacao-intro .bf-cab-rotulo {
    color: var(--bf-creme);
}

.bf-atuacao-intro .bf-cab-titulo {
    max-width: 16ch;
    margin-bottom: 1.2rem;
    color: #fff !important;
}

.bf-atuacao-intro > p:not(.bf-rotulo) {
    max-width: 48ch;
    margin: 0 0 1.8rem;
    font-size: 1.05rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, .75);
}

/* card de destino ao chegar por âncora (ex.: vindo da home) */
.bf-card {
    scroll-margin-top: 120px;
}

.bf-card:target {
    box-shadow: 0 0 0 2px var(--bf-navy), 0 30px 60px -25px rgba(14, 34, 50, .55);
    animation: bf-alvo 1.6s var(--bf-ease) .3s 2;
}

@keyframes bf-alvo {
    0%, 100% { transform: none; }
    40% { transform: translateY(-6px); }
}

/* =================================================================
    6. EQUIPE
================================================================= */
.bf-equipe,
#content.bf-equipe {
    display: flow-root;
    overflow: visible;
    padding: 0 0 clamp(4.5rem, 8vw, 7rem);
    background: #fff;
}

.bf-fundador {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    margin-top: calc(clamp(6rem, 10vw, 8rem) * -1 + 2rem);
    margin-bottom: clamp(4.5rem, 8vw, 7rem);
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 40px 80px -40px rgba(14, 34, 50, .55);
}

.bf-fundador-foto {
    position: relative;
    min-height: 420px;
    background: var(--bf-papel);
}

.bf-fundador-foto img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}

.bf-fundador-texto {
    padding: clamp(2rem, 4vw, 3.5rem);
}

.bf-fundador-texto .bf-cab-titulo {
    font-size: clamp(1.9rem, 3.2vw, 2.6rem);
}

.bf-fundador-cargo {
    display: inline-block;
    margin: .8rem 0 1.4rem;
    padding: .35rem .7rem;
    background: var(--bf-ink);
    border-radius: 3px;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bf-creme);
}

.bf-fundador-texto > p:not(.bf-rotulo) {
    margin: 0;
    font-size: 1rem;
    line-height: 1.8;
    color: var(--bf-texto);
}

.bf-equipe-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1.2rem, 2.5vw, 2rem) clamp(1rem, 2vw, 1.5rem);
}

.bf-perfil-botao {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    text-align: left;
    cursor: pointer;
}

.bf-perfil-foto {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border-radius: 6px;
    background: var(--bf-papel);
}

.bf-perfil-foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    filter: grayscale(.35);
    transition: transform 1s var(--bf-ease), filter .6s ease;
}

.bf-perfil-foto::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 45%, rgba(14, 34, 50, .8));
    opacity: 0;
    transition: opacity .5s ease;
}

.bf-perfil-ver {
    position: absolute;
    left: 1rem;
    bottom: 1rem;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .5rem .8rem;
    border-radius: 3px;
    background: var(--bf-creme);
    color: var(--bf-ink);
    font-size: .82rem;
    font-weight: 700;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .45s ease, transform .45s var(--bf-ease);
}

.bf-perfil-botao:hover .bf-perfil-foto img,
.bf-perfil-botao:focus-visible .bf-perfil-foto img {
    transform: scale(1.05);
    filter: grayscale(0);
}

.bf-perfil-botao:hover .bf-perfil-foto::after,
.bf-perfil-botao:focus-visible .bf-perfil-foto::after,
.bf-perfil-botao:hover .bf-perfil-ver,
.bf-perfil-botao:focus-visible .bf-perfil-ver {
    opacity: 1;
    transform: none;
}

.bf-perfil-botao:focus-visible {
    outline: none;
}

.bf-perfil-botao:focus-visible .bf-perfil-foto {
    box-shadow: 0 0 0 3px var(--bf-navy);
}

.bf-perfil-nome {
    margin-top: 1rem;
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--bf-ink);
}

.bf-perfil-cargo {
    margin-top: .25rem;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bf-texto-suave);
}

/* Diálogo de perfil (fundo navy, textos claros) */
.bf-dialogo {
    width: min(980px, calc(100% - 2rem));
    max-height: min(720px, calc(100vh - 2rem));
    padding: 0;
    border: 1px solid rgba(250, 248, 190, .12);
    border-radius: 10px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(70% 90% at 100% 0%, rgba(61, 109, 145, .45), transparent 70%),
        radial-gradient(50% 60% at 0% 100%, rgba(35, 78, 111, .5), transparent 70%),
        var(--bf-ink);
    box-shadow: 0 50px 100px -30px rgba(0, 0, 0, .75);
}

.bf-dialogo[open] {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    align-items: stretch;
    animation: bf-dialogo-entra .45s var(--bf-ease);
}

.bf-dialogo::backdrop {
    background: rgba(4, 12, 18, .78);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
}

@keyframes bf-dialogo-entra {
    from { opacity: 0; transform: translateY(24px) scale(.98); }
    to { opacity: 1; transform: none; }
}

/* foto emoldurada com respiro: cantos próprios, sem tocar na borda do modal */
.bf-dialogo-foto {
    position: relative;
    padding: 1rem;
}

.bf-dialogo-foto img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: top center;
    border-radius: 6px;
    background: var(--bf-ink-2);
    box-shadow: 0 25px 50px -25px rgba(0, 0, 0, .8);
}

.bf-dialogo-corpo {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(2rem, 4vw, 3.2rem) clamp(1.8rem, 4vw, 3.2rem) clamp(2rem, 4vw, 3.2rem) clamp(1rem, 2vw, 1.6rem);
    overflow-y: auto;
}

.bf-dialogo-fechar {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 50%;
    background: transparent;
    color: #fff;
    font-size: 1.3rem;
    cursor: pointer;
    transition: background .3s, color .3s, border-color .3s;
}

.bf-dialogo-fechar:hover,
.bf-dialogo-fechar:focus-visible {
    background: var(--bf-creme);
    border-color: var(--bf-creme);
    color: var(--bf-ink);
    outline: none;
}

.bf-dialogo-cargo {
    align-self: flex-start;
    margin: 0 0 .9rem;
    padding: .35rem .7rem;
    border: 1px solid rgba(250, 248, 190, .35);
    border-radius: 3px;
    color: var(--bf-creme);
}

.bf-dialogo-nome {
    margin: 0 0 1.4rem;
    padding: 0;
    font-family: var(--bf-sans);
    font-size: clamp(1.7rem, 3vw, 2.4rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: #fff !important;
}

.bf-dialogo-nome::after {
    content: "";
    display: block;
    width: 40px;
    height: 2px;
    margin-top: 1.1rem;
    background: var(--bf-creme);
}

.bf-dialogo-bio {
    margin: 0;
    font-size: 1rem;
    line-height: 1.85;
    color: rgba(255, 255, 255, .8);
}

.bf-dialogo-corpo::-webkit-scrollbar {
    width: 6px;
}

.bf-dialogo-corpo::-webkit-scrollbar-thumb {
    border-radius: 3px;
    background: rgba(255, 255, 255, .2);
}

@media (max-width: 991.98px) {
    .bf-equipe-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .bf-fundador {
        grid-template-columns: 1fr;
    }

    .bf-fundador-foto {
        min-height: 0;
        aspect-ratio: 4 / 3;
    }
}

@media (max-width: 767.98px) {
    .bf-atuacao-intro {
        grid-column: auto;
    }

    .bf-equipe-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .bf-dialogo[open] {
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr;
        max-height: calc(100vh - 1rem);
        overflow-y: auto;
    }

    .bf-dialogo-foto {
        padding: .8rem .8rem 0;
    }

    .bf-dialogo-foto img {
        aspect-ratio: 4 / 3;
    }

    .bf-dialogo-corpo {
        padding: 1.6rem 1.4rem 2rem;
        overflow: visible;
    }

    .bf-dialogo-fechar {
        top: 1.4rem;
        right: 1.4rem;
        z-index: 2;
        background: rgba(14, 34, 50, .7);
    }

    .bf-perfil-ver {
        opacity: 1;
        transform: none;
        font-size: .75rem;
    }
}

/* =================================================================
    7. PUBLICAÇÕES (notícias, artigos, livros, vídeos)
================================================================= */
.bf-publicacoes,
#content.bf-publicacoes {
    background: #fff;
    overflow: clip; /* hidden do tema impede a lateral fixa (sticky) */
}

.bf-publicacoes .content-wrap {
    padding: clamp(3.5rem, 7vw, 5.5rem) 0 clamp(4.5rem, 8vw, 7rem);
}

/* títulos de seção antigos (.heading-container) no padrão novo */
.bf-publicacoes .heading-container,
.bf-publicacoes .heading-container h2,
.bf-publicacoes h2.heading-bg-white {
    text-align: left !important;
}

.bf-publicacoes .heading-container h2,
.bf-publicacoes h2.heading-bg-white {
    margin-bottom: 1.8rem;
    font-family: var(--bf-sans);
    font-size: clamp(1.9rem, 3.4vw, 2.6rem);
    font-weight: 700;
    letter-spacing: -.025em;
    color: var(--bf-ink);
}

.bf-publicacoes h2.heading-bg-white::before {
    content: "";
    display: block;
    width: 28px;
    height: 1px;
    margin-bottom: .9rem;
    background: var(--bf-navy);
    position: static;
    border: 0;
    transform: none;
}

/* ---------- Barra lateral de categorias ---------- */
.bf-publicacoes .coluna-categorias {
    align-self: flex-start;
}

@media (min-width: 992px) {
    .bf-publicacoes .coluna-categorias {
        padding-left: clamp(1.5rem, 3vw, 2.75rem) !important;
    }
}

.bf-publicacoes .categoria-head {
    padding: 0 0 .9rem;
    background: none;
    border-bottom: 1px solid var(--bf-cinza);
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-align: left;
    color: var(--bf-navy);
}

.bf-publicacoes .categorias-content {
    padding: 0;
    background: none;
}

.bf-publicacoes .categorias-content ul {
    margin: 0;
    padding: 0;
}

.bf-publicacoes .categorias-content a {
    display: block;
    color: inherit;
}

.bf-publicacoes .categorias-content ul li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    padding: .8rem .2rem;
    border-bottom: 1px solid var(--bf-cinza);
    background: none;
    font-size: .95rem;
    font-weight: 600;
    color: var(--bf-texto);
    transition: color .3s ease, padding .4s var(--bf-ease);
}

.bf-publicacoes .categorias-content ul li::before {
    display: none;
}

.bf-publicacoes .categorias-content ul li::after {
    content: "\2192";
    color: var(--bf-navy);
    opacity: 0;
    transform: translateX(-6px);
    transition: opacity .3s ease, transform .4s var(--bf-ease);
}

.bf-publicacoes .categorias-content a:hover li,
.bf-publicacoes .categorias-content ul li.active {
    padding-left: .6rem;
    background: none;
    color: var(--bf-ink);
}

.bf-publicacoes .categorias-content a:hover li::after,
.bf-publicacoes .categorias-content ul li.active::after {
    opacity: 1;
    transform: none;
}

.bf-publicacoes .categorias-content ul li.active {
    font-weight: 700;
    box-shadow: inset 2px 0 0 var(--bf-navy);
}

/* ---------- Meta (data, categoria, autor) ---------- */
.bf-publicacoes .noticia-icon-list,
.bf-publicacoes .artigo-icon-list,
.bf-publicacoes .artigos-icon-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: .3rem 1.2rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bf-publicacoes #pageNoticias .noticia-desc > p,
.bf-publicacoes #pageImprensa .imprensa-desc p {
    text-align: left;
}

.bf-publicacoes .noticia-icon-list li,
.bf-publicacoes .artigo-icon-list li,
.bf-publicacoes .artigos-icon-list li {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .82rem;
    font-weight: 600;
    color: var(--bf-texto-suave);
}

.bf-publicacoes .noticia-icon-list i,
.bf-publicacoes .artigo-icon-list i,
.bf-publicacoes .artigos-icon-list i {
    color: var(--bf-navy);
}

.bf-publicacoes .artigo-icon-list a,
.bf-publicacoes .artigos-icon-list a {
    color: inherit;
}

/* ---------- Lista de notícias ---------- */
.bf-publicacoes #pageNoticias {
    display: grid;
    gap: 1.5rem;
}

.bf-publicacoes #pageNoticias .noticia-item {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    align-items: stretch; /* a regra antiga centralizava e a imagem não ocupava a altura toda */
    gap: 0;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(14, 34, 50, .07);
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 4px rgba(14, 34, 50, .05), 0 18px 40px -24px rgba(14, 34, 50, .35);
    transition: transform .6s var(--bf-ease), box-shadow .6s var(--bf-ease);
}

.bf-publicacoes #pageNoticias .noticia-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 30px 60px -28px rgba(14, 34, 50, .5);
}

.bf-publicacoes #pageNoticias .noticia-img {
    position: relative;
    width: auto !important;
    height: auto;
    min-height: 240px;
    overflow: hidden;
    background: var(--bf-papel);
}

.bf-publicacoes #pageNoticias .noticia-img img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--bf-ease);
}

.bf-publicacoes #pageNoticias .noticia-item:hover .noticia-img img {
    transform: scale(1.05);
}

.bf-publicacoes #pageNoticias .noticia-desc {
    display: flex;
    flex-direction: column;
    padding: clamp(1.4rem, 2.5vw, 2rem);
}

.bf-publicacoes #pageNoticias .noticia-title {
    order: 2;
}

.bf-publicacoes #pageNoticias .noticia-icons {
    order: 1;
    margin-bottom: .8rem;
}

.bf-publicacoes #pageNoticias .noticia-desc > p {
    order: 3;
}

.bf-publicacoes #pageNoticias .noticia-desc > .mt-2 {
    order: 4;
    margin-top: auto !important;
}

.bf-publicacoes #pageNoticias .noticia-desc .noticia-title h3 {
    margin: 0 0 .8rem;
    font-family: var(--bf-sans);
    font-size: clamp(1.15rem, 1.8vw, 1.4rem);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -.01em;
    text-align: left;
}

.bf-publicacoes #pageNoticias .noticia-title a {
    color: var(--bf-ink);
    transition: color .3s;
}

.bf-publicacoes #pageNoticias .noticia-title a:hover {
    color: var(--bf-navy);
}

.bf-publicacoes #pageNoticias .noticia-desc > p {
    display: -webkit-box;
    margin: 0 0 1.2rem;
    overflow: hidden;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    font-size: .95rem;
    line-height: 1.65;
}

.bf-publicacoes #pageNoticias .noticia-desc > p a {
    color: var(--bf-texto-suave);
}

/* "Ler mais" / "Assistir vídeo" como link com seta */
.bf-publicacoes .noticia-desc > .mt-2,
.bf-publicacoes .imprensa-desc > .mt-2 {
    text-align: left !important;
}

.bf-publicacoes .btn-default.btn-ler-mais {
    display: inline-flex !important;
    width: auto !important;
    margin: 0 !important;
    text-align: left !important;
    padding: 0 0 .2rem;
    background: none;
    border-bottom: 1px solid currentColor;
    font-size: .9rem;
    color: var(--bf-navy);
}

.bf-publicacoes .btn-default.btn-ler-mais:hover {
    background: none;
    color: var(--bf-ink);
}

/* ---------- Lista de artigos ---------- */
.bf-publicacoes #pagArtigos #artigos-list {
    margin: 0;
    padding: 0;
    counter-reset: artigo;
    border-top: 1px solid var(--bf-cinza);
}

.bf-publicacoes #pagArtigos #artigos-list li.artigo-item {
    display: grid;
    grid-template-columns: 3.2rem 1fr;
    align-items: start;
    padding: 1.4rem .4rem;
    border-bottom: 1px solid var(--bf-cinza);
    counter-increment: artigo;
    transition: background .4s ease, padding .5s var(--bf-ease);
}

.bf-publicacoes #pagArtigos #artigos-list li.artigo-item::before {
    content: counter(artigo, decimal-leading-zero);
    padding-top: .2rem;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .1em;
    color: var(--bf-navy);
}

.bf-publicacoes #pagArtigos #artigos-list li.artigo-item:hover {
    padding-left: 1rem;
    background: var(--bf-papel);
}

.bf-publicacoes #pagArtigos .artigo-icon {
    display: none;
}

.bf-publicacoes #pagArtigos #artigos-list li.artigo-item .artigo-desc {
    padding: 0;
}

.bf-publicacoes #pagArtigos .artigo-desc p {
    margin: 0 0 .5rem;
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.4;
}

.bf-publicacoes #pagArtigos .artigo-desc p a {
    color: var(--bf-ink);
}

.bf-publicacoes #pagArtigos .artigo-desc p a:hover {
    color: var(--bf-navy);
}

/* ---------- Livros (grade) ---------- */
.bf-publicacoes #homeLivros {
    row-gap: 2.5rem;
}

.bf-publicacoes .home-livro-item > div {
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border-radius: 4px;
    background: var(--bf-papel);
    box-shadow: 0 25px 45px -25px rgba(14, 34, 50, .55);
    transition: transform .6s var(--bf-ease), box-shadow .6s var(--bf-ease);
}

.bf-publicacoes .home-livro-item > div a {
    display: block;
    height: 100%;
}

.bf-publicacoes .home-livro-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.bf-publicacoes .home-livro-item:hover > div {
    transform: translateY(-6px) rotate(-1deg);
    box-shadow: 0 35px 55px -25px rgba(14, 34, 50, .65);
}

.bf-publicacoes .home-livro-item h4.dark {
    margin: 1.1rem 0 0 !important;
    padding: 0;
    font-size: .95rem;
    font-weight: 600;
    line-height: 1.45;
    text-align: left;
}

.bf-publicacoes .home-livro-item h4.dark a {
    color: var(--bf-ink);
}

.bf-publicacoes .home-livro-item h4.dark a:hover {
    color: var(--bf-navy);
}

/* ---------- Artigos em carrossel (página Artigos & Livros) ---------- */
.bf-publicacoes .artigos-item {
    display: flex;
    flex-direction: column;
    gap: .9rem;
    height: 100%;
    margin: 0;
    padding: 1.6rem;
    border: 1px solid rgba(14, 34, 50, .07);
    border-radius: 6px;
    background: #fff;
    text-align: left;
    align-items: flex-start;
    justify-content: flex-start;
    box-shadow: 0 2px 4px rgba(14, 34, 50, .05), 0 18px 40px -24px rgba(14, 34, 50, .35);
}

.bf-publicacoes .artigos-item > a img {
    width: 44px;
    max-width: none;
    height: auto;
    margin: 0;
}

.bf-publicacoes .artigos-item .artigos-title {
    flex: 1;
    min-height: 0;
    align-items: flex-start;
    padding: 0;
    background: none;
}

.bf-publicacoes .artigos-item .artigos-title h4 {
    margin: .5rem 0 0;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.4;
    text-align: left;
    color: var(--bf-ink);
}

.bf-publicacoes .artigos-item .artigos-title h4 a {
    color: inherit;
}

.bf-publicacoes #artigosCarrossel .owl-stage {
    display: flex;
}

.bf-publicacoes #artigosCarrossel .owl-item {
    display: flex;
    padding: .5rem 0 2rem;
}

/* ---------- Lista de vídeos ---------- */
.bf-publicacoes #pageImprensa {
    display: grid;
    gap: 1.5rem;
}

.bf-publicacoes #pageImprensa .imprensa-item {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    align-items: stretch;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(14, 34, 50, .07);
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 4px rgba(14, 34, 50, .05), 0 18px 40px -24px rgba(14, 34, 50, .35);
}

.bf-publicacoes #pageImprensa .imprensa-img a {
    position: relative;
    display: block;
    height: 100%;
    min-height: 220px;
    background: var(--bf-ink);
}

.bf-publicacoes #pageImprensa .imprensa-img img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--bf-ease), opacity .4s;
}

.bf-publicacoes #pageImprensa .imprensa-item:hover .imprensa-img img {
    transform: scale(1.05);
    opacity: .85;
}

.bf-publicacoes #pageImprensa .imprensa-item:hover .bf-video-play {
    transform: scale(1.1);
}

.bf-publicacoes #pageImprensa .imprensa-desc {
    display: flex;
    flex-direction: column;
    padding: clamp(1.4rem, 2.5vw, 2rem);
}

.bf-publicacoes #pageImprensa .imprensa-title h3 {
    margin: 0 0 .8rem;
    font-size: clamp(1.1rem, 1.7vw, 1.3rem);
    font-weight: 700;
    line-height: 1.35;
    text-align: left;
    color: var(--bf-ink);
}

.bf-publicacoes #pageImprensa .imprensa-desc p {
    display: -webkit-box;
    margin: 0 0 1.2rem;
    overflow: hidden;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    font-size: .95rem;
    line-height: 1.65;
    color: var(--bf-texto-suave);
}

.bf-publicacoes #pageImprensa .imprensa-desc > .mt-2 {
    margin-top: auto !important;
}

/* ---------- Leitura da notícia ---------- */
.bf-publicacoes #LerNoticia {
    padding-right: clamp(0rem, 3vw, 2.5rem);
}

.bf-publicacoes #LerNoticia .noticia-icons {
    margin-bottom: 1.6rem;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid var(--bf-cinza);
}

.bf-publicacoes #LerNoticia > img {
    width: 100%;
    margin-bottom: 2.2rem;
    border-radius: 6px;
    box-shadow: 0 30px 60px -35px rgba(14, 34, 50, .55);
}

.bf-publicacoes #news-content {
    max-width: 72ch;
    font-size: 1.08rem;
    line-height: 1.85;
    color: var(--bf-texto);
}

.bf-publicacoes #news-content h2,
.bf-publicacoes #news-content h3,
.bf-publicacoes #news-content h4 {
    margin: 2.2rem 0 .9rem;
    font-family: var(--bf-sans);
    font-weight: 700;
    letter-spacing: -.015em;
    color: var(--bf-ink);
}

.bf-publicacoes #news-content h2 {
    font-size: 1.7rem;
}

.bf-publicacoes #news-content h3 {
    font-size: 1.35rem;
}

.bf-publicacoes #news-content a {
    color: var(--bf-navy);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.bf-publicacoes #news-content blockquote {
    margin: 2rem 0;
    padding: .2rem 0 .2rem 1.5rem;
    border-left: 3px solid var(--bf-navy);
    font-size: 1.15rem;
    color: var(--bf-ink);
}

.bf-publicacoes #news-content img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
}

.bf-publicacoes .tagcloud {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 2.5rem;
}

.bf-publicacoes .tagcloud a {
    margin: 0 !important;
    padding: .45rem .9rem !important;
    border: 1px solid var(--bf-cinza) !important;
    border-radius: 999px;
    background: #fff !important;
    font-size: .82rem !important;
    font-weight: 600;
    color: var(--bf-texto) !important;
    transition: background .3s, color .3s, border-color .3s;
}

.bf-publicacoes .tagcloud a:hover {
    border-color: var(--bf-ink) !important;
    background: var(--bf-ink) !important;
    color: var(--bf-creme) !important;
}

.bf-publicacoes #LerNoticia .card {
    border: 0;
    border-radius: 6px;
    background: var(--bf-papel);
}

/* botão Voltar na lateral */
.bf-publicacoes .coluna-categorias .btn-default {
    font-size: .9rem;
}

.bf-publicacoes .coluna-categorias .btn-default::after {
    display: none;
}

/* ---------- Paginação ---------- */
.bf-publicacoes .pagination {
    gap: .4rem;
    margin-top: 1.5rem !important;
}

.bf-publicacoes .pagination .page-link {
    display: grid;
    place-items: center;
    min-width: 44px;
    height: 44px;
    padding: 0 .8rem;
    border: 1px solid var(--bf-cinza);
    border-radius: 4px !important;
    background: #fff;
    font-weight: 700;
    color: var(--bf-ink);
    box-shadow: none;
    transition: background .3s, color .3s, border-color .3s;
}

.bf-publicacoes .pagination .page-link:hover {
    border-color: var(--bf-ink);
    background: var(--bf-ink);
    color: var(--bf-creme);
}

.bf-publicacoes .pagination .page-item.active .page-link {
    border-color: var(--bf-ink);
    background: var(--bf-ink);
    color: var(--bf-creme);
}

.bf-publicacoes .pagination .page-item.disabled .page-link {
    opacity: .4;
}

/* ---------- Modais de artigo e livro (ajax) ---------- */
.mfp-content .ajax-modal-title {
    padding: 1.6rem 2rem;
    background:
        radial-gradient(60% 120% at 100% 0%, rgba(61, 109, 145, .45), transparent 70%),
        var(--bf-ink);
}

.mfp-content .ajax-modal-title h2 {
    margin: 0;
    font-family: var(--bf-sans);
    font-size: clamp(1.3rem, 2.4vw, 1.8rem);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -.015em;
    color: #fff;
}

.mfp-content .modal-p {
    font-size: 1.02rem;
    line-height: 1.8;
    text-align: left;
    color: var(--bf-texto);
}

.mfp-content .button {
    border-radius: 4px;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: none;
}

.mfp-content .button.btn-danger,
.mfp-content .button.btn-info,
.mfp-content .add-to-cart.button {
    background: var(--bf-ink) !important;
    color: var(--bf-creme) !important;
}

.mfp-content .button.btn-danger:hover,
.mfp-content .button.btn-info:hover,
.mfp-content .add-to-cart.button:hover {
    background: var(--bf-navy) !important;
}

@media (max-width: 991.98px) {
    .bf-publicacoes .coluna-categorias {
        margin-top: 3rem;
    }
}

@media (max-width: 767.98px) {
    .bf-publicacoes #pageNoticias .noticia-item,
    .bf-publicacoes #pageImprensa .imprensa-item {
        grid-template-columns: 1fr;
    }

    .bf-publicacoes #pageNoticias .noticia-img,
    .bf-publicacoes #pageImprensa .imprensa-img a {
        min-height: 0;
        aspect-ratio: 16 / 10;
    }
}

/* =================================================================
    8. MODAL DO LIVRO (ajax / magnific popup)
    Altura fixa: só o conteúdo da aba rola, nunca a página.
================================================================= */
.bf-livro {
    position: relative;
    display: grid;
    grid-template-columns: minmax(280px, 390px) minmax(0, 1fr);
    width: min(1160px, calc(100vw - 2rem));
    height: min(880px, calc(100vh - 2rem));
    margin: 0 auto;
    border-radius: 10px;
    overflow: hidden;
    /* fundo escuro no container: nada branco atrás da lateral azul,
       evitando o fio claro na suavização dos cantos arredondados */
    background: var(--bf-ink);
    box-shadow: 0 50px 100px -30px rgba(0, 0, 0, .7);
    text-align: left;
    isolation: isolate;
}

/* lateral escura com capa, preço e ações */
.bf-livro-lateral {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    padding: clamp(1.4rem, 2.5vw, 2rem);
    overflow: hidden;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, .2) transparent;
    color: #fff;
    background:
        radial-gradient(90% 60% at 0% 0%, rgba(61, 109, 145, .45), transparent 70%),
        var(--bf-ink);
}

.bf-livro-lateral::-webkit-scrollbar {
    width: 6px;
}

.bf-livro-lateral::-webkit-scrollbar-thumb {
    border-radius: 3px;
    background: rgba(255, 255, 255, .2);
}

/* capa inteira, na proporção original: ocupa o espaço que sobra na coluna */
.bf-livro-capa-grande {
    display: flex;
    flex: 1 1 0;
    align-items: center;
    justify-content: center;
    min-height: 0;
}

.bf-livro-capa-grande img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: 4px;
    box-shadow: 0 30px 50px -25px rgba(0, 0, 0, .8);
    transition: opacity .3s ease;
}

.bf-livro-miniaturas {
    display: flex;
    gap: .5rem;
}

.bf-livro-miniaturas button {
    width: 48px;
    aspect-ratio: 3 / 4;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 3px;
    overflow: hidden;
    background: none;
    opacity: .6;
    cursor: pointer;
    transition: opacity .3s, border-color .3s;
}

.bf-livro-miniaturas button.is-ativa,
.bf-livro-miniaturas button:hover {
    border-color: var(--bf-creme);
    opacity: 1;
}

.bf-livro-miniaturas img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.bf-livro-preco,
.bf-livro-acoes,
.bf-livro-miniaturas {
    flex-shrink: 0;
}

.bf-livro-preco {
    margin: 0;
    font-size: 1.8rem;
    font-weight: 800;
    letter-spacing: -.02em;
    color: var(--bf-creme);
}

.bf-livro-acoes {
    display: grid;
    gap: .6rem;
}

.bf-livro-acoes .bf-btn {
    justify-content: center;
    border-radius: 4px;
}

.bf-livro-ficha {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    flex-shrink: 0;
    margin: 0;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 4px;
    overflow: hidden;
    background: rgba(255, 255, 255, .1);
}

.bf-livro-ficha > div {
    padding: .6rem .75rem;
    background: var(--bf-ink);
}

.bf-livro-ficha dt {
    margin-bottom: .1rem;
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .5);
}

.bf-livro-ficha dd {
    margin: 0;
    font-size: .85rem;
    font-weight: 600;
    overflow-wrap: anywhere;
    color: #fff;
}

/* coluna principal: cabeçalho fixo + conteúdo rolável */
.bf-livro-principal {
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: #fff;
    border-radius: 0 10px 10px 0;
}

.bf-livro-cabecalho {
    flex-shrink: 0;
    padding: clamp(1.6rem, 3vw, 2.4rem) clamp(1.6rem, 3.5vw, 2.8rem) 0;
    border-bottom: 1px solid var(--bf-cinza);
}

.bf-livro-rotulo {
    margin: 0 4rem .6rem 0;
    color: var(--bf-navy);
}

.bf-livro-titulo {
    margin: 0 4rem 1.4rem 0;
    padding: 0;
    font-family: var(--bf-sans);
    font-size: clamp(1.5rem, 2.6vw, 2.1rem);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.02em;
    color: var(--bf-ink) !important;
}

.bf-livro-abas {
    display: flex;
    gap: 1.6rem;
    margin-bottom: -1px;
    overflow-x: auto;
    scrollbar-width: none;
}

.bf-livro-abas::-webkit-scrollbar {
    display: none;
}

.bf-livro-abas button {
    position: relative;
    flex-shrink: 0;
    padding: 0 0 .9rem;
    border: 0;
    background: none;
    font-size: .95rem;
    font-weight: 700;
    color: var(--bf-texto-suave);
    cursor: pointer;
    transition: color .3s;
}

.bf-livro-abas button::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: var(--bf-navy);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .4s var(--bf-ease);
}

.bf-livro-abas button:hover,
.bf-livro-abas button.is-ativa {
    color: var(--bf-ink);
}

.bf-livro-abas button.is-ativa::after {
    transform: scaleX(1);
}

.bf-livro-conteudo {
    flex: 1;
    min-height: 0;
    padding: clamp(1.4rem, 3vw, 2.2rem) clamp(1.6rem, 3.5vw, 2.8rem) clamp(2rem, 4vw, 3rem);
    overflow-y: auto;
    overscroll-behavior: contain;
}

.bf-livro-conteudo::-webkit-scrollbar {
    width: 8px;
}

.bf-livro-conteudo::-webkit-scrollbar-thumb {
    border: 2px solid #fff;
    border-radius: 4px;
    background: var(--bf-cinza);
}

.bf-livro-painel.is-ativo {
    animation: bf-entra .5s var(--bf-ease) both;
}

.bf-livro-texto {
    max-width: 68ch;
    font-size: 1rem;
    line-height: 1.8;
    color: var(--bf-texto);
}

.bf-livro-texto p {
    margin: 0 0 1rem;
    text-align: left !important;
}

.bf-livro-texto h1,
.bf-livro-texto h2,
.bf-livro-texto h3,
.bf-livro-texto h4 {
    margin: 1.6rem 0 .6rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--bf-ink);
}

.bf-livro-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 1.8rem 0 0;
    padding: 0;
    list-style: none;
}

.bf-livro-tags li {
    padding: .35rem .8rem;
    border: 1px solid var(--bf-cinza);
    border-radius: 999px;
    font-size: .8rem;
    font-weight: 600;
    color: var(--bf-texto);
}

.bf-livro-detalhes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 2rem;
    margin: 0;
}

.bf-livro-detalhes > div {
    padding: 1rem 0;
    border-bottom: 1px solid var(--bf-cinza);
}

.bf-livro-detalhes dt {
    margin-bottom: .25rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--bf-texto-suave);
}

.bf-livro-detalhes dd {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--bf-ink);
}

.bf-livro-autores {
    display: grid;
    gap: 1.6rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bf-livro-autores li {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 1.1rem;
    align-items: start;
}

.bf-livro-autores img {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--bf-papel);
}

.bf-livro-autores strong {
    display: block;
    margin-bottom: .3rem;
    font-size: 1.05rem;
    color: var(--bf-ink);
}

/* botão de fechar do magnific sobre o modal */
.mfp-ajax-holder .mfp-content .bf-livro ~ .mfp-close,
.mfp-wrap .mfp-close {
    color: #fff;
}

.mfp-wrap:has(.bf-livro) .mfp-container {
    padding: 0;
}

.mfp-wrap:has(.bf-livro) .mfp-close {
    position: fixed;
    top: max(1rem, calc((100vh - min(880px, calc(100vh - 2rem))) / 2 + .8rem));
    right: max(1rem, calc((100vw - min(1160px, calc(100vw - 2rem))) / 2 + .8rem));
    width: 42px;
    height: 42px;
    border: 1px solid var(--bf-cinza);
    border-radius: 50%;
    background: #fff;
    color: var(--bf-ink) !important;
    font-size: 1.6rem;
    line-height: 40px;
    opacity: 1;
    text-align: center;
}

.mfp-wrap:has(.bf-livro) .mfp-close:hover {
    background: var(--bf-ink);
    border-color: var(--bf-ink);
    color: var(--bf-creme) !important;
}

@media (max-width: 767.98px) {
    .bf-livro {
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr;
        height: calc(100vh - 1rem);
        width: calc(100vw - 1rem);
    }

    .bf-livro-principal {
        border-radius: 0 0 10px 10px;
    }

    .bf-livro-lateral {
        display: grid;
        grid-template-columns: 96px 1fr;
        grid-template-areas:
            "capa preco"
            "capa acoes";
        gap: .6rem 1rem;
        padding: 1rem;
        overflow: visible;
    }

    .bf-livro-capa-grande {
        grid-area: capa;
        align-items: flex-start;
    }

    .bf-livro-preco {
        grid-area: preco;
        align-self: end;
        font-size: 1.4rem;
    }

    .bf-livro-acoes {
        grid-area: acoes;
        align-self: start;
    }

    .bf-livro-acoes .bf-btn {
        padding: .7rem 1rem;
    }

    .bf-livro-miniaturas,
    .bf-livro-ficha {
        display: none;
    }

    .bf-livro-cabecalho {
        padding: 1.2rem 1.2rem 0;
    }

    .bf-livro-conteudo {
        padding: 1.2rem 1.2rem 2rem;
    }

    .bf-livro-detalhes {
        grid-template-columns: 1fr;
    }

    .mfp-wrap:has(.bf-livro) .mfp-close {
        top: 1rem;
        right: 1rem;
    }
}

/* =================================================================
    9. NOTÍCIAS: artes 4:5 (Instagram) sem corte
================================================================= */

/* Capa sem corte: a imagem aparece inteira (contain) e uma cópia
   desfocada dela preenche o fundo — funciona para 4:5 e para fotos
   antigas em outros formatos, sem faixas vazias. */
.bf-capa {
    position: relative;
    overflow: hidden;
    background: var(--bf-ink);
    isolation: isolate;
}

.bf-capa::before {
    content: "";
    position: absolute;
    inset: -24px;
    z-index: -1;
    background: var(--capa) center / cover no-repeat;
    filter: blur(22px) saturate(1.1) brightness(.75);
    transform: scale(1.08);
}

.bf-capa img {
    object-fit: contain !important;
}

/* lista: coluna da imagem no formato das artes */
.bf-publicacoes #pageNoticias .noticia-item {
    grid-template-columns: clamp(190px, 30%, 250px) minmax(0, 1fr);
}

.bf-publicacoes #pageNoticias .noticia-img {
    min-height: 0;
    aspect-ratio: 4 / 5;
}

.bf-publicacoes #pageNoticias .noticia-item:hover .noticia-img img {
    transform: scale(1.03);
}

/* home: cards com a arte inteira */
.bf-home-noticias #homeNoticias .noticia-capa {
    aspect-ratio: 4 / 5;
    background: var(--bf-ink);
}

/* reativa o fundo desfocado (o ::before dos triângulos antigos estava oculto) */
.bf-home-noticias #homeNoticias .noticia-capa.bf-capa::before {
    content: "";
    display: block;
    border: 0;
    left: auto;
    top: auto;
    inset: -24px;
}

.bf-home-noticias #homeNoticias .noticia-item:hover .noticia-capa img {
    transform: scale(1.03);
}

/* ---------- Leitura: imagem menor, texto contornando ---------- */
.bf-noticia-capa {
    float: right;
    width: min(340px, 42%);
    margin: .3rem 0 1.6rem 2.2rem;
}

.bf-noticia-capa a {
    display: block;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 30px 60px -30px rgba(14, 34, 50, .55);
}

.bf-noticia-capa img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform .8s var(--bf-ease);
}

.bf-noticia-capa a:hover img {
    transform: scale(1.03);
}

.bf-publicacoes #news-content {
    max-width: none;
}

.bf-publicacoes #news-tags,
.bf-publicacoes #LerNoticia > .row,
.bf-publicacoes #LerNoticia > .card {
    clear: both;
}

/* ---------- Cabeçalho com título longo ---------- */
.bf-topo-titulo-longo {
    max-width: 52ch;
    font-size: clamp(1.45rem, 2.4vw, 2.05rem);
    line-height: 1.2;
    letter-spacing: -.015em;
}

/* ---------- Lateral de categorias: card moderno ---------- */
@media (min-width: 992px) {
    .bf-publicacoes .coluna-categorias {
        padding-left: clamp(.75rem, 1.5vw, 1.25rem) !important;
    }
}

.bf-publicacoes .coluna-categorias > .categoria-head,
.bf-publicacoes .coluna-categorias > .categorias-content {
    background: #fff;
}

.bf-publicacoes .categoria-head {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: 1.1rem 1.2rem;
    border: 1px solid rgba(14, 34, 50, .08);
    border-bottom: 0;
    border-radius: 8px 8px 0 0;
    font-size: .72rem;
    color: var(--bf-ink);
}

.bf-publicacoes .categoria-head::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 2px;
    background: var(--bf-navy);
}

.bf-publicacoes .categorias-content {
    padding: .4rem;
    border: 1px solid rgba(14, 34, 50, .08);
    border-top: 1px solid var(--bf-cinza);
    border-radius: 0 0 8px 8px;
    box-shadow: 0 18px 40px -26px rgba(14, 34, 50, .35);
}

.bf-publicacoes .categorias-content ul {
    display: grid;
    gap: 2px;
}

.bf-publicacoes .categorias-content ul li {
    padding: .62rem .8rem;
    border: 0;
    border-radius: 6px;
    font-size: .92rem;
    font-weight: 600;
    transition: background .3s ease, color .3s ease;
}

.bf-publicacoes .categorias-content a:hover li {
    padding-left: .8rem;
    background: #eef1f4;
    color: var(--bf-ink);
}

.bf-publicacoes .categorias-content ul li.active {
    padding-left: .8rem;
    background: var(--bf-ink);
    color: #fff;
    box-shadow: none;
}

.bf-publicacoes .categorias-content ul li.active::after {
    color: var(--bf-creme);
}

/* botão Voltar alinhado à lateral */
.bf-publicacoes .coluna-categorias > .mt-3 {
    margin-top: 0 !important;
    text-align: left !important;
}

.bf-publicacoes .coluna-categorias .btn-default {
    width: 100%;
    justify-content: center;
    border-radius: 8px;
}

@media (max-width: 767.98px) {
    .bf-publicacoes #pageNoticias .noticia-item {
        grid-template-columns: 1fr;
    }

    .bf-publicacoes #pageNoticias .noticia-img {
        aspect-ratio: 4 / 5;
        max-height: 70vh;
    }

    .bf-noticia-capa {
        float: none;
        width: min(100%, 360px);
        margin: 0 auto 1.8rem;
    }
}

/* =================================================================
    10. VÍDEOS: lista sem "vazamento" no hover + player com playlist
================================================================= */

/* a imagem tem o próprio recorte com cantos: no zoom ela não escapa
   do card (bug do Chrome com overflow + border-radius + transform) */
.bf-publicacoes #pageImprensa .imprensa-item {
    transition: transform .6s var(--bf-ease), box-shadow .6s var(--bf-ease);
}

.bf-publicacoes #pageImprensa .imprensa-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 30px 60px -28px rgba(14, 34, 50, .5);
}

.bf-publicacoes #pageImprensa .imprensa-img {
    height: 100%;
}

.bf-publicacoes #pageImprensa .imprensa-img a {
    height: 100%;
    overflow: hidden;
    border-radius: 6px 0 0 6px;
    clip-path: inset(0 round 6px 0 0 6px);
    isolation: isolate;
}

.bf-publicacoes #pageImprensa .imprensa-item:hover .imprensa-img img {
    transform: scale(1.04);
    opacity: .9;
}

.bf-publicacoes #pageNoticias .noticia-img {
    clip-path: inset(0 round 6px 0 0 6px);
}

/* ---------- Player ---------- */
.bf-player {
    width: min(1280px, calc(100vw - 2rem));
    height: min(760px, calc(100vh - 2rem));
    max-width: none;
    max-height: none;
    padding: 0;
    border: 1px solid rgba(250, 248, 190, .12);
    border-radius: 12px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(60% 80% at 0% 0%, rgba(61, 109, 145, .55), transparent 70%),
        radial-gradient(50% 70% at 100% 100%, rgba(35, 78, 111, .6), transparent 70%),
        var(--bf-ink);
    box-shadow: 0 60px 120px -30px rgba(0, 0, 0, .8);
}

.bf-player[open] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    animation: bf-dialogo-entra .45s var(--bf-ease);
}

.bf-player::backdrop {
    background: rgba(3, 9, 14, .85);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

.bf-player-principal {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 0;
    padding: clamp(1rem, 2vw, 1.6rem);
    overflow: hidden;
}

.bf-player-tela {
    position: relative;
    flex-shrink: 0;
    width: 100%;
    aspect-ratio: 16 / 9;
    max-height: calc(100% - 13.5rem);
    margin: 0 auto;
    border-radius: 8px;
    overflow: hidden;
    background: #000;
    box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .9);
}

.bf-player-tela iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.bf-player-info {
    padding: 1.2rem .2rem 0;
}

.bf-player-contador {
    margin: 0 0 .4rem;
    color: var(--bf-creme);
}

.bf-player-titulo {
    margin: 0 0 .5rem;
    padding: 0;
    font-family: var(--bf-sans);
    font-size: clamp(1.15rem, 1.8vw, 1.45rem);
    font-weight: 700;
    line-height: 1.3;
    color: #fff !important;
}

.bf-player-desc {
    display: -webkit-box;
    max-width: 80ch;
    margin: 0 0 1rem;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    font-size: .92rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, .65);
}

.bf-player-acoes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .6rem;
}

.bf-player-nav {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    height: 44px;
    min-width: 44px;
    justify-content: center;
    padding: 0 1rem;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 6px;
    background: transparent;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    transition: background .3s, color .3s, border-color .3s;
}

.bf-player-nav[data-bf-player="proximo"] {
    border-color: var(--bf-creme);
    background: var(--bf-creme);
    color: var(--bf-ink);
}

.bf-player-nav:hover {
    border-color: #fff;
    background: #fff;
    color: var(--bf-ink);
}

.bf-player-yt {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-left: auto;
    font-size: .88rem;
    font-weight: 600;
    color: rgba(255, 255, 255, .7) !important;
    transition: color .3s;
}

.bf-player-yt:hover {
    color: #fff !important;
}

/* playlist */
.bf-player-lista {
    display: flex;
    flex-direction: column;
    min-height: 0;
    border-left: 1px solid rgba(255, 255, 255, .08);
    background: rgba(0, 0, 0, .18);
}

.bf-player-lista-cab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    padding: 1rem 1rem 1rem 1.2rem;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.bf-player-lista-cab .bf-rotulo {
    color: rgba(255, 255, 255, .6);
}

.bf-player-fechar {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 50%;
    background: transparent;
    color: #fff;
    font-size: 1.25rem;
    cursor: pointer;
    transition: background .3s, color .3s, border-color .3s;
}

.bf-player-fechar:hover,
.bf-player-fechar:focus-visible {
    border-color: var(--bf-creme);
    background: var(--bf-creme);
    color: var(--bf-ink);
    outline: none;
}

.bf-player-itens {
    flex: 1;
    min-height: 0;
    margin: 0;
    padding: .5rem;
    list-style: none;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, .2) transparent;
}

.bf-player-itens button {
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    gap: .8rem;
    align-items: center;
    width: 100%;
    padding: .5rem;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: background .3s;
}

.bf-player-itens button:hover {
    background: rgba(255, 255, 255, .06);
}

.bf-player-itens li.is-atual button {
    background: rgba(250, 248, 190, .1);
    box-shadow: inset 2px 0 0 var(--bf-creme);
}

.bf-player-mini {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9;
    border-radius: 5px;
    overflow: hidden;
    background: #000;
}

.bf-player-mini img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity .3s;
}

.bf-player-itens li.is-atual .bf-player-mini img {
    opacity: .45;
}

/* equalizador "reproduzindo" no item atual */
.bf-player-eq {
    position: absolute;
    inset: 0;
    display: none;
    align-items: flex-end;
    justify-content: center;
    gap: 3px;
    padding-bottom: 28%;
}

.bf-player-itens li.is-atual .bf-player-eq {
    display: flex;
}

.bf-player-eq i {
    width: 3px;
    height: 14px;
    border-radius: 2px;
    background: var(--bf-creme);
    transform-origin: bottom;
    animation: bf-eq 1s ease-in-out infinite;
}

.bf-player-eq i:nth-child(2) {
    animation-delay: -.35s;
}

.bf-player-eq i:nth-child(3) {
    animation-delay: -.7s;
}

@keyframes bf-eq {
    0%, 100% { transform: scaleY(.3); }
    50% { transform: scaleY(1); }
}

.bf-player-mini-texto small {
    display: block;
    margin-bottom: .15rem;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .1em;
    color: rgba(255, 255, 255, .45);
}

.bf-player-itens li.is-atual small {
    color: var(--bf-creme);
}

.bf-player-mini-texto strong {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    font-size: .85rem;
    font-weight: 600;
    line-height: 1.35;
    color: rgba(255, 255, 255, .88);
}

@media (max-width: 991.98px) {
    .bf-player {
        width: calc(100vw - 1rem);
        height: calc(100vh - 1rem);
    }

    .bf-player[open] {
        grid-template-columns: 1fr;
        grid-template-rows: auto minmax(0, 1fr);
    }

    .bf-player-principal {
        overflow: visible;
        padding: .8rem;
    }

    .bf-player-tela {
        max-height: none;
    }

    .bf-player-lista {
        border-left: 0;
        border-top: 1px solid rgba(255, 255, 255, .08);
    }

    .bf-player-yt {
        margin-left: 0;
    }

    /* no celular o fechar fica sobre o vídeo, sempre visível */
    .bf-player-fechar {
        position: fixed;
        top: 1.1rem;
        right: 1.1rem;
        z-index: 3;
        background: rgba(14, 34, 50, .8);
    }
}

@media (prefers-reduced-motion: reduce) {
    .bf-player-eq i {
        animation: none;
        transform: scaleY(.7);
    }
}

/* =================================================================
    11. CARD DO AUTOR (fim da notícia)
================================================================= */
.bf-autor {
    position: relative;
    clear: both;
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    margin: clamp(3rem, 6vw, 4.5rem) 0 1rem;
    border: 1px solid rgba(250, 248, 190, .12);
    border-radius: 10px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(70% 90% at 100% 0%, rgba(61, 109, 145, .45), transparent 70%),
        radial-gradient(50% 60% at 0% 100%, rgba(35, 78, 111, .5), transparent 70%),
        var(--bf-ink);
    box-shadow: 0 40px 80px -40px rgba(14, 34, 50, .7);
}

.bf-autor-sem-foto {
    grid-template-columns: 1fr;
}

/* foto em retrato, emoldurada como no perfil da equipe */
.bf-autor-foto {
    padding: 1rem;
}

.bf-autor-foto img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 240px;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: top center;
    border-radius: 6px;
    background: var(--bf-ink-2);
    box-shadow: 0 25px 50px -25px rgba(0, 0, 0, .8);
}

.bf-autor-corpo {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.6rem, 3vw, 2.4rem) clamp(1.6rem, 3vw, 2.4rem) clamp(1.6rem, 3vw, 2.4rem) clamp(.6rem, 1.5vw, 1.2rem);
}

.bf-autor-sem-foto .bf-autor-corpo {
    padding-left: clamp(1.6rem, 3vw, 2.4rem);
}

.bf-autor-rotulo {
    margin: 0 0 .6rem;
    color: var(--bf-creme);
}

.bf-autor-nome {
    margin: 0 0 .9rem;
    font-family: var(--bf-sans);
    font-size: clamp(1.4rem, 2.2vw, 1.8rem);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.02em;
    color: #fff !important;
}

.bf-autor-nome::after {
    content: "";
    display: block;
    width: 36px;
    height: 2px;
    margin-top: .9rem;
    background: var(--bf-creme);
}

.bf-autor-bio {
    display: -webkit-box;
    margin-bottom: 1.4rem;
    overflow: hidden;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    font-size: .95rem;
    line-height: 1.75;
    color: rgba(255, 255, 255, .78);
}

.bf-autor-bio p {
    margin: 0;
}

/* o tema força cor escura em parágrafos; garante contraste no fundo azul */
.bf-autor-bio,
.bf-autor-bio * {
    color: rgba(255, 255, 255, .8) !important;
    font-family: var(--bf-sans) !important;
    font-size: .95rem !important;
    background: none !important;
}

.bf-autor-acoes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .6rem;
}

.bf-autor-acoes .bf-btn {
    padding: .8rem 1.2rem;
    border-radius: 6px;
    font-size: .88rem;
}

.bf-autor-rede {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 50%;
    color: #fff !important;
    font-size: 1.05rem;
    transition: background .3s, color .3s, border-color .3s;
}

.bf-autor-rede:hover {
    border-color: var(--bf-creme);
    background: var(--bf-creme);
    color: var(--bf-ink) !important;
}

@media (max-width: 767.98px) {
    .bf-autor {
        grid-template-columns: 1fr;
    }

    .bf-autor-foto {
        padding: .8rem .8rem 0;
    }

    .bf-autor-foto img {
        min-height: 0;
        aspect-ratio: 4 / 3;
    }

    .bf-autor-corpo {
        padding: 1.4rem;
    }
}

/* =================================================================
    12. MENU MOBILE (abaixo de 992px o tema não usa .is-expanded-menu)
================================================================= */
.bf-menu-extra {
    display: none;
}

body:not(.is-expanded-menu) {
    --bf-header-h: 68px;
}

/* barra do cabeçalho */
body:not(.is-expanded-menu) #header-wrap,
body:not(.is-expanded-menu) #header.transparent-header #header-wrap {
    background:
        radial-gradient(60% 140% at 100% 0%, rgba(61, 109, 145, .35), transparent 70%),
        var(--bf-ink) !important;
    /* sem backdrop-filter aqui: ele faria o painel fixo do menu
       ficar preso dentro da barra em vez de ocupar a tela */
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    box-shadow: 0 1px 0 rgba(250, 248, 190, .08);
}

/* menu fechado: a lista não ocupa espaço na barra */
body:not(.is-expanded-menu):not(.primary-menu-open) #header .primary-menu {
    display: none;
}

body:not(.is-expanded-menu) #header .header-row {
    min-height: var(--bf-header-h);
    height: var(--bf-header-h);
    flex-wrap: nowrap;
}

body:not(.is-expanded-menu) #logo {
    margin: 0 !important;
}

body:not(.is-expanded-menu) #logo img {
    height: 44px !important;
    max-height: 44px;
    width: auto;
}

/* botão do menu */
body:not(.is-expanded-menu) .primary-menu-trigger {
    width: 46px;
    height: 46px;
    margin-left: auto;
    border: 1px solid rgba(250, 248, 190, .3);
    border-radius: 8px;
    transition: border-color .3s, background .3s;
}

body:not(.is-expanded-menu) .primary-menu-trigger-active {
    border-color: var(--bf-creme);
    background: rgba(250, 248, 190, .08);
}

body:not(.is-expanded-menu) .cnvs-hamburger {
    --cnvs-hamburger-size: 20px;
    --cnvs-hamburger-width: 2px;
    --cnvs-hamburger-color: var(--bf-creme);
}

body:not(.is-expanded-menu) .cnvs-hamburger-inner,
body:not(.is-expanded-menu) .cnvs-hamburger-inner::before,
body:not(.is-expanded-menu) .cnvs-hamburger-inner::after {
    background-color: var(--bf-creme) !important;
}

/* painel do menu aberto: tela cheia abaixo da barra */
body:not(.is-expanded-menu).primary-menu-open .primary-menu {
    position: fixed;
    top: var(--bf-header-h);
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 299;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 1.2rem 1.4rem calc(1.4rem + env(safe-area-inset-bottom));
    overflow-y: auto;
    background:
        radial-gradient(70% 50% at 100% 0%, rgba(61, 109, 145, .45), transparent 70%),
        radial-gradient(60% 50% at 0% 100%, rgba(35, 78, 111, .55), transparent 70%),
        var(--bf-ink);
    animation: bf-menu-abre .4s var(--bf-ease) both;
}

@keyframes bf-menu-abre {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: none; }
}

body:not(.is-expanded-menu).primary-menu-open {
    overflow: hidden;
}

body:not(.is-expanded-menu).primary-menu-open #whatsAppCall,
body:not(.is-expanded-menu).primary-menu-open #gotoTop {
    display: none !important;
}

body:not(.is-expanded-menu) .primary-menu .menu-container {
    margin: 0;
    padding: 0;
    border: 0;
    counter-reset: bf-menu;
}

body:not(.is-expanded-menu) .primary-menu .menu-container > .menu-item {
    border-top: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    counter-increment: bf-menu;
}

body:not(.is-expanded-menu).primary-menu-open .menu-container > .menu-item {
    animation: bf-entra .5s var(--bf-ease) both;
}

body:not(.is-expanded-menu).primary-menu-open .menu-container > .menu-item:nth-child(2) { animation-delay: .04s; }
body:not(.is-expanded-menu).primary-menu-open .menu-container > .menu-item:nth-child(3) { animation-delay: .08s; }
body:not(.is-expanded-menu).primary-menu-open .menu-container > .menu-item:nth-child(4) { animation-delay: .12s; }
body:not(.is-expanded-menu).primary-menu-open .menu-container > .menu-item:nth-child(5) { animation-delay: .16s; }
body:not(.is-expanded-menu).primary-menu-open .menu-container > .menu-item:nth-child(6) { animation-delay: .2s; }
body:not(.is-expanded-menu).primary-menu-open .menu-container > .menu-item:nth-child(7) { animation-delay: .24s; }

body:not(.is-expanded-menu) .primary-menu .menu-container > .menu-item > .menu-link {
    display: flex;
    align-items: center;
    gap: .9rem;
    padding: 1rem .2rem;
    color: #fff !important;
}

body:not(.is-expanded-menu) .primary-menu .menu-container > .menu-item > .menu-link::before {
    content: counter(bf-menu, decimal-leading-zero);
    min-width: 1.6rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    color: var(--bf-creme);
}

body:not(.is-expanded-menu) .primary-menu .menu-container > .menu-item > .menu-link div {
    flex: 1;
    font-family: var(--bf-sans);
    font-size: 1.35rem;
    font-weight: 600;
    letter-spacing: -.01em;
    text-transform: none;
}

body:not(.is-expanded-menu) .primary-menu .menu-container > .menu-item:not(.sub-menu) > .menu-link::after {
    content: "\2192";
    font-size: 1.1rem;
    color: rgba(255, 255, 255, .35);
    transition: transform .3s var(--bf-ease), color .3s;
}

body:not(.is-expanded-menu) .primary-menu .menu-container > .menu-item > .menu-link:active::after,
body:not(.is-expanded-menu) .primary-menu .menu-container > .menu-item > .menu-link:hover::after {
    color: var(--bf-creme);
    transform: translateX(4px);
}

/* ícones/setas do tema dentro do item com submenu */
body:not(.is-expanded-menu) .primary-menu .menu-link i,
body:not(.is-expanded-menu) .primary-menu .sub-menu-trigger {
    display: none !important;
}

/* submenu (Publicações) sempre visível, recuado */
body:not(.is-expanded-menu) .primary-menu .sub-menu-container {
    display: block !important;
    margin: -.4rem 0 .8rem 2.5rem;
    padding: 0;
    border: 0;
    background: none;
}

body:not(.is-expanded-menu) .primary-menu .sub-menu-container .menu-item {
    border: 0;
}

body:not(.is-expanded-menu) .primary-menu .sub-menu-container .menu-link {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .55rem 0;
    font-size: 1.05rem;
    font-weight: 500;
    color: rgba(255, 255, 255, .75) !important;
}

body:not(.is-expanded-menu) .primary-menu .sub-menu-container .menu-link::before {
    content: "";
    width: 14px;
    height: 1px;
    background: rgba(250, 248, 190, .5);
}

/* contato no rodapé do menu */
body:not(.is-expanded-menu).primary-menu-open .bf-menu-extra {
    display: grid;
    gap: 1rem;
    margin-top: auto;
    padding-top: 1.6rem;
    animation: bf-entra .5s var(--bf-ease) .28s both;
}

.bf-menu-whats {
    display: flex;
    align-items: center;
    gap: .9rem;
    padding: .9rem 1rem;
    border-radius: 10px;
    background: var(--bf-creme);
    color: var(--bf-ink) !important;
    font-weight: 700;
}

.bf-menu-whats > i {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #198754;
    color: #fff;
    font-size: 1.4rem;
}

.bf-menu-whats small {
    display: block;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(14, 34, 50, .6);
}

.bf-menu-linha {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
}

.bf-menu-linha > a {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 600;
    color: rgba(255, 255, 255, .85) !important;
}

.bf-menu-redes {
    display: flex;
    gap: .5rem;
}

.bf-menu-redes a {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 50%;
    color: #fff !important;
}

@media (prefers-reduced-motion: reduce) {
    body:not(.is-expanded-menu).primary-menu-open .primary-menu,
    body:not(.is-expanded-menu).primary-menu-open .menu-container > .menu-item,
    body:not(.is-expanded-menu).primary-menu-open .bf-menu-extra {
        animation: none;
    }
}

/* =================================================================
    13. FILTRO DE CATEGORIAS NO MOBILE (no topo, recolhível)
================================================================= */
.bf-filtro-botao {
    display: none;
}

@media (max-width: 991.98px) {
    /* a lateral sobe para antes da lista (a regra antiga zerava o recuo lateral) */
    .bf-publicacoes .coluna-categorias {
        order: -1;
        margin: 0 0 1.6rem !important;
        padding-left: calc(var(--bs-gutter-x, 1.5rem) * .5) !important;
        padding-right: calc(var(--bs-gutter-x, 1.5rem) * .5) !important;
    }

    .bf-filtro-botao {
        display: flex;
        align-items: center;
        gap: .8rem;
        width: 100%;
        padding: .9rem 1rem;
        border: 1px solid rgba(14, 34, 50, .1);
        border-radius: 10px;
        background: #fff;
        color: var(--bf-ink);
        text-align: left;
        box-shadow: 0 12px 30px -20px rgba(14, 34, 50, .45);
        cursor: pointer;
        transition: border-color .3s, box-shadow .3s;
    }

    .bf-filtro-botao > .uil-filter {
        display: grid;
        place-items: center;
        width: 38px;
        height: 38px;
        border-radius: 8px;
        background: var(--bf-ink);
        color: var(--bf-creme);
        font-size: 1.1rem;
    }

    .bf-filtro-texto {
        flex: 1;
        min-width: 0;
    }

    .bf-filtro-texto small {
        display: block;
        font-size: .68rem;
        font-weight: 700;
        letter-spacing: .1em;
        text-transform: uppercase;
        color: var(--bf-texto-suave);
    }

    .bf-filtro-texto strong {
        display: block;
        overflow: hidden;
        font-size: 1rem;
        white-space: nowrap;
        text-overflow: ellipsis;
    }

    .bf-filtro-seta {
        font-size: 1.4rem;
        transition: transform .4s var(--bf-ease);
    }

    .is-aberta > .bf-filtro-botao {
        border-color: var(--bf-ink);
    }

    .is-aberta > .bf-filtro-botao .bf-filtro-seta {
        transform: rotate(180deg);
    }

    /* o título "Categorias" vira o botão; a lista fica recolhida */
    .bf-publicacoes .coluna-categorias .categoria-head {
        display: none;
    }

    .bf-publicacoes .coluna-categorias .categorias-content {
        display: none;
        margin-top: .5rem;
        border-top: 1px solid rgba(14, 34, 50, .08);
        border-radius: 10px;
    }

    .bf-publicacoes .coluna-categorias.is-aberta .categorias-content {
        display: block;
        animation: bf-entra .35s var(--bf-ease) both;
    }

    /* muitas categorias: duas colunas compactas */
    .bf-publicacoes .categorias-content ul {
        grid-template-columns: 1fr 1fr;
    }

    .bf-publicacoes .categorias-content ul li {
        padding: .6rem .7rem;
        font-size: .88rem;
    }

    .bf-publicacoes .categorias-content ul li::after {
        display: none;
    }

    /* na notícia, o "Voltar" fica ao lado do filtro */
    .bf-publicacoes .coluna-categorias > .mt-3 {
        margin-bottom: .6rem !important;
    }
}

/* =================================================================
    14. REVISÃO MOBILE
================================================================= */

/* ---------- Paginação: quebra em linhas em vez de estourar ---------- */
@media (max-width: 767.98px) {
    .bf-publicacoes .pagination {
        flex-wrap: wrap;
        justify-content: center;
        gap: .35rem;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding: 0;
    }

    .bf-publicacoes .pagination .page-link {
        min-width: 40px;
        height: 40px;
        padding: 0 .6rem;
        font-size: .9rem;
    }

    .bf-publicacoes .row.mt-4 {
        margin-left: 0;
        margin-right: 0;
    }
}

/* ---------- Home: grade da seção de publicações não vaza ---------- */
@media (max-width: 991.98px) {
    .bf-home-publicacoes .row.g-5 {
        --bs-gutter-x: 1.5rem;
    }
}

/* ---------- Toque e leitura ---------- */
@media (max-width: 767.98px) {
    .bf-link-seta {
        padding: .55rem 0 .35rem;
    }

    .bf-rotulo {
        font-size: .75rem;
    }

    .bf-filtro-texto small {
        font-size: .72rem;
    }

    /* legenda do slider legível */
    #slider .slider-caption p {
        font-size: .95rem !important;
        line-height: 1.5;
    }

    #slider .slider-caption h2 {
        font-size: clamp(1.7rem, 7vw, 2.2rem) !important;
    }
}

/* ---------- Listas no celular: linhas compactas, fáceis de percorrer ---------- */
@media (max-width: 575.98px) {
    .bf-publicacoes #pageNoticias,
    .bf-publicacoes #pageImprensa {
        gap: .8rem;
    }

    .bf-publicacoes #pageNoticias .noticia-item {
        grid-template-columns: 104px minmax(0, 1fr);
        border-radius: 10px;
    }

    .bf-publicacoes #pageNoticias .noticia-img {
        aspect-ratio: 4 / 5;
        max-height: none;
        align-self: stretch;
        clip-path: none;
    }

    .bf-publicacoes #pageImprensa .imprensa-item {
        grid-template-columns: 132px minmax(0, 1fr);
        border-radius: 10px;
    }

    .bf-publicacoes #pageImprensa .imprensa-img a {
        min-height: 0;
        aspect-ratio: auto;
        border-radius: 10px 0 0 10px;
        clip-path: none;
    }

    .bf-publicacoes #pageImprensa .bf-video-play {
        left: 50%;
        top: 50%;
        bottom: auto;
        width: 38px;
        height: 38px;
        font-size: 1.1rem;
        transform: translate(-50%, -50%);
    }

    .bf-publicacoes #pageNoticias .noticia-desc,
    .bf-publicacoes #pageImprensa .imprensa-desc {
        justify-content: center;
        padding: .85rem .9rem;
    }

    .bf-publicacoes #pageNoticias .noticia-icons {
        margin-bottom: .35rem;
    }

    /* na linha compacta só data + categoria; o autor aparece na notícia */
    .bf-publicacoes #pageNoticias .noticia-icon-list li:nth-child(3) {
        display: none;
    }

    .bf-publicacoes #pageNoticias .noticia-desc .noticia-title h3,
    .bf-publicacoes #pageImprensa .imprensa-title h3 {
        display: -webkit-box;
        margin: 0;
        overflow: hidden;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        font-size: 1rem;
        line-height: 1.3;
    }

    .bf-publicacoes #pageNoticias .noticia-desc > p,
    .bf-publicacoes #pageNoticias .noticia-desc > .mt-2,
    .bf-publicacoes #pageImprensa .imprensa-desc p,
    .bf-publicacoes #pageImprensa .imprensa-desc > .mt-2 {
        display: none;
    }

    /* a linha inteira é clicável (o título já é link) */
    .bf-publicacoes #pageNoticias .noticia-item,
    .bf-publicacoes #pageImprensa .imprensa-item {
        position: relative;
    }

    .bf-publicacoes #pageNoticias .noticia-title a::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 1;
    }
}

/* ---------- Notícia aberta: "Voltar" compacto ao lado do filtro ---------- */
@media (max-width: 991.98px) {
    .bf-publicacoes .coluna-categorias:has(> .mt-3) {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        gap: .6rem;
        align-items: stretch;
    }

    .bf-publicacoes .coluna-categorias > .mt-3 {
        margin: 0 !important;
    }

    .bf-publicacoes .coluna-categorias > .mt-3 .btn-default {
        height: 100%;
        width: auto;
        padding: 0 1.1rem;
        border-radius: 10px;
        font-size: .9rem;
    }

    .bf-publicacoes .coluna-categorias > .categorias-content {
        grid-column: 1 / -1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .owl-item.active .bf-anima,
    .owl-item.active .bf-stat-linha,
    .is-animado .bf-pino-centro,
    .is-animado .bf-pino-onda,
    .bf-tema-icone::after {
        animation: none !important;
    }

    .bf-card::before,
    .bf-home-atuacao #homeAtuacao .area-item::before {
        transition-duration: .01s;
    }

    .bf-pino-centro {
        transform: none;
    }
}
