/*
 * Diferenças visuais exclusivas da Black Friday (templates/pg-vendas-bf-original.php)
 * sobre o HTML compartilhado de template-parts/semana-consumidor/.
 *
 * Os valores reproduzem o que o navegador CALCULAVA na versão Elementor, não o que o
 * post-58356.css declara: parte das regras dele perde para outras (o botão, por
 * exemplo, é verde por um CSS customizado com !important, e o padding-bottom do hero
 * é zerado por um <style> inline mais abaixo na página).
 */

/* ---------- Hero ---------- */

.pgv-bf-original .bf-hero {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    background-color: #000128;
}

/* Grid de uma coluna, e não flex coluna: as faixas do parcelamento têm margin-top maior
   que a própria altura, e no original (flex row-wrap) a linha delas travava em 0. Linha de
   grid também não fica negativa; em flex coluna a altura negativa se acumularia e puxaria
   o CTA para cima. */
.pgv-bf-original .bf-hero > .container {
    display: grid;
    grid-template-columns: 100%;
    justify-items: center;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 425px 0 0;
    text-align: center;
    /* O fundo mora aqui, e não na <section>: a seção também contém as faixas de cursos
       (hero__scrollers), e com a caixa pintada mais alta o Chrome reamostra a imagem de
       outro jeito (a borda dos desenhos muda alguns pixels). O container tem a caixa
       exata que o hero do Elementor tinha. */
    background-color: #000128;
    background-image: url("https://www.hashtagtreinamentos.com/wp-content/uploads/2025/10/Plano-de-Fundo-1.png");
    background-position: top center;
    background-repeat: no-repeat;
    /* a mesma do .e-con do Elementor */
    transition: background 0.3s, border 0.3s, box-shadow 0.3s, transform 0.4s;
}

/* Largura + padding lateral espelham o widget do Elementor (e não um calc()), para o
   texto cair nas mesmas frações de pixel. */
.pgv-bf-original .bf-hero .hero__titulo,
.pgv-bf-original .bf-hero .hero__descricao {
    box-sizing: border-box;
    width: 75%;
    max-width: 75%;
    padding: 0;
}

/* O título da BF é um espaço: a linha some e só a margem padrão (.67em) ocupa lugar. */
.pgv-bf-original .bf-hero .hero__titulo {
    margin: 0.67em 0 0;
    color: #fff;
    font-family: "TacticSansBld", sans-serif;
    font-size: 60px;
    font-weight: 600;
    line-height: 1.1em;
    text-transform: uppercase;
}

.pgv-bf-original .bf-hero .hero__descricao {
    margin: 0 0 30px;
    color: #cdddff;
    font-family: "Montserrat", sans-serif;
    font-size: 22px;
    font-weight: 400;
    line-height: 1.3em;
}

/* ---------- Cronômetro ---------- */

.pgv-bf-original .bf-hero .html-cronometro {
    max-width: 100%;
    margin: 50px 0 25px;
}

.pgv-bf-original .bf-hero .html-cronometro.oculto {
    display: none;
}

.pgv-bf-original .bf-hero .container-cronometro {
    display: flex;
    flex-flow: column;
    gap: 20px;
    color: #fff;
    font-family: "TacticSansBld", sans-serif;
}

.pgv-bf-original .bf-hero .container-cronometro h3 {
    font-family: inherit;
    text-align: center;
}

.pgv-bf-original .bf-hero .cronometro {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    font-size: 82.6px;
    line-height: 1;
}

.pgv-bf-original .bf-hero .cronometro *,
.pgv-bf-original .bf-hero .cronometro *::after,
.pgv-bf-original .bf-hero .cronometro *::before {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.pgv-bf-original .bf-hero .cronometro > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 125px;
    min-width: 125px;
}

.pgv-bf-original .bf-hero .cronometro > p {
    font-size: 27.6px;
}

.pgv-bf-original .bf-hero .cronometro .numero {
    font-weight: 600;
}

.pgv-bf-original .bf-hero .cronometro .texto {
    font-size: 16px;
}

/* ---------- CTA ---------- */

.pgv-bf-original .bf-hero .botao-hero {
    display: inline-block;
    position: relative;
    box-sizing: border-box;
    width: auto;
    max-width: 100%;
    margin: 60px 0 0;
    padding: 25px;
    border: solid 1px #00fab0;
    border-radius: 40px;
    background: linear-gradient(90deg, #00fdb3 0%, #00a645 100%);
    box-shadow: 0 0 30px 10px rgba(0, 220, 137, 0.6);
    color: #000;
    fill: #fff;
    font-family: "TacticSansBld", sans-serif;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 0.3s;
}

.pgv-bf-original .bf-hero .botao-hero::before {
    content: "";
    position: absolute;
    top: 49%;
    left: 50%;
    z-index: 0;
    width: calc(100% + 20px);
    height: calc(100% + 20px);
    border: 1px solid #00fab0;
    border-radius: 60px;
    background: transparent;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

/* ---------- Parcelamento (cards + faixas, ocultos por padrão) ----------
   Entram entre o cronômetro e o CTA, como filhos do container do hero no original.
   Todo elemento do Elementor aqui era um item flex posicionado (widget) — por isso o
   position: relative nos filhos do card: sem ele o halo do brilho pinta por cima do texto. */

.pgv-bf-original .bf-oculto-sempre {
    display: none !important;
}

.pgv-bf-original .bf-hero .pagamento__cards {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 20px;
    justify-self: stretch;
    position: relative;
    box-sizing: border-box;
    padding: 10px max(10px, calc((100% - 1140px) / 2));
}

.pgv-bf-original .bf-hero .pagamento__card {
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    gap: 20px;
    position: relative;
    z-index: 9;
    box-sizing: border-box;
    flex: 0 1 auto;
    width: 45%;
    margin: 50px 0 0;
    padding: 0 30px;
    border-radius: 30px;
    background-color: #070947;
    text-align: start;
    transition: background 0.3s, border 0.3s, box-shadow 0.3s, transform 0.4s;
}

.pgv-bf-original .bf-hero .pagamento__card > * {
    position: relative;
}

.pgv-bf-original .bf-hero .pagamento__icone-wrap {
    display: block;
    position: static;
    width: 100%;
    margin: -50px 0 0;
    padding: 0 0 20px;
}

.pgv-bf-original .bf-hero .pagamento__icone {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}

.pgv-bf-original .bf-hero .pagamento__icone--principal {
    position: relative;
    width: 105px;
    animation: bf-pisca 0.01s infinite;
}

.pgv-bf-original .bf-hero .pagamento__brilho {
    display: block;
    position: absolute;
    top: -50px;
    left: 0;
    width: 100%;
    opacity: 0.5;
    animation: bf-piscada 1.5s infinite;
}

.pgv-bf-original .bf-hero .pagamento__brilho::before {
    content: "";
    position: absolute;
    top: 40px;
    left: 50%;
    z-index: 1;
    width: 120px;
    height: 120px;
    border-radius: 100%;
    background: #e40c83;
    filter: blur(50px);
    opacity: 1;
    mix-blend-mode: plus-lighter;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.pgv-bf-original .bf-hero .pagamento__icone--glow {
    width: 105px;
}

.pgv-bf-original .bf-hero .pagamento__titulo {
    margin: 0;
    color: #cdddff;
    font-family: "Montserrat", sans-serif;
    font-size: 23px;
    font-weight: 400;
    line-height: 1;
    text-align: center;
}

/* as duas primeiras linhas eram um <h3> com <br>; o prazo, o <p> abaixo dele */
.pgv-bf-original .bf-hero .pagamento__preco p {
    margin: 0;
    color: #cdddff;
    font-family: "Montserrat", sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: normal;
    text-align: center;
}

.pgv-bf-original .bf-hero .pagamento__preco p:first-child {
    margin-top: 1em;
}

.pgv-bf-original .bf-hero .pagamento__preco p:nth-child(2) {
    margin-bottom: 15px;
}

.pgv-bf-original .bf-hero .pagamento__preco .pagamento__prazo {
    font-size: 23px;
}

.pgv-bf-original .bf-hero .pagamento__botao {
    display: inline-block;
    align-self: flex-start;
    z-index: 999;
    box-sizing: border-box;
    margin: 0 0 -30px;
    padding: 25px;
    border-radius: 40px;
    background-color: transparent;
    background-image: linear-gradient(90deg, #e40c83 0%, #890bec 100%);
    color: #fff;
    fill: #fff;
    cursor: pointer;
    font-family: "TacticSansBld", sans-serif;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 0.3s;
    animation: bf-luzes 1.5s linear infinite;
}

.pgv-bf-original .bf-hero .pagamento__faixa {
    display: flex;
    flex-direction: row;
    gap: 20px;
    justify-self: stretch;
    align-self: start; /* sem isto o grid estica a faixa até a altura (0 - margem) da linha */
    position: relative;
    box-sizing: border-box;
    padding: 1em 0;
    transition: background 0.3s, border 0.3s, box-shadow 0.3s, transform 0.4s;
}

.pgv-bf-original .bf-hero .pagamento__faixa span {
    display: block;
    margin: 0 0 0 -160px;
    font-family: "Poppins", sans-serif;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
}

.pgv-bf-original .bf-hero .pagamento__faixa--promocao {
    z-index: 1;
    margin-top: -140px;
    background-color: #4e0d3a;
    transform: rotate(5deg) scale(1.01);
}

.pgv-bf-original .bf-hero .pagamento__faixa--promocao span {
    color: #ffffff57;
    font-size: 1.2em;
    font-weight: 400;
}

.pgv-bf-original .bf-hero .pagamento__faixa--oportunidade {
    z-index: 2;
    margin-top: -180px;
    padding: 1.4em 0;
    background-color: #e40c83;
    transform: rotate(-5deg) scale(1.01);
}

.pgv-bf-original .bf-hero .pagamento__faixa--oportunidade span {
    color: #fff;
    font-size: 1.5em;
    font-weight: 600;
}

@keyframes bf-pisca {
    0% { opacity: 1; }
    50% { opacity: 0; }
    100% { opacity: 1; }
}

@keyframes bf-piscada {
    0% { opacity: 0.6; }
    50% { opacity: 0.3; }
    100% { opacity: 0.6; }
}

@keyframes bf-luzes {
    0% { box-shadow: 0 0 5px -20px #e40c83; }
    80% { box-shadow: 0 0 0 30px transparent; }
    100% { box-shadow: 0 0 0 0 transparent; }
}

@media (min-width: 768px) and (max-width: 1366px) {
    .pgv-bf-original .bf-hero .pagamento__card {
        width: 60%;
    }
}

/* ---------- Breakpoints do Elementor (1366 / 1024 / 767) ---------- */

@media (max-width: 1366px) {
    .pgv-bf-original .bf-hero > .container {
        padding-top: 300px;
        background-size: 1400px auto;
    }

    .pgv-bf-original .bf-hero .hero__titulo,
    .pgv-bf-original .bf-hero .hero__descricao {
        width: 80%;
        max-width: 80%;
        padding: 0 30px;
    }

    .pgv-bf-original .bf-hero .hero__titulo {
        font-size: 55px;
    }

    .pgv-bf-original .bf-hero .hero__descricao {
        margin-bottom: 20px;
        font-size: 20px;
    }
}

@media (max-width: 1024px) {
    .pgv-bf-original .bf-hero .pagamento__cards {
        flex-direction: column;
        align-items: center;
        gap: 75px;
    }

    .pgv-bf-original .bf-hero .pagamento__card {
        margin: 50px 90px 0;
    }

    /* os 40px de topo, que eram da seção, entram no container, onde o fundo é pintado */
    .pgv-bf-original .bf-hero > .container {
        padding-top: calc(40px + 25vw);
        background-size: 140vw auto;
    }

    .pgv-bf-original .bf-hero .hero__titulo,
    .pgv-bf-original .bf-hero .hero__descricao {
        width: 100%;
        max-width: 100%;
        padding: 0 3vw;
    }

    .pgv-bf-original .bf-hero .hero__descricao {
        margin-bottom: 2vw;
    }
}

@media (max-width: 767px) {
    .pgv-bf-original .bf-hero .pagamento__cards {
        padding: 20px;
    }

    .pgv-bf-original .bf-hero .pagamento__card {
        width: 100%;
        margin: 0;
        padding: 30px 30px 0;
    }

    .pgv-bf-original .bf-hero .pagamento__icone--principal {
        width: 35%;
    }

    .pgv-bf-original .bf-hero .pagamento__icone--glow {
        width: 29%;
        margin-top: 29px;
    }

    .pgv-bf-original .bf-hero .pagamento__titulo {
        font-size: 20px;
        line-height: 1.2em;
    }

    .pgv-bf-original .bf-hero .pagamento__preco p {
        font-size: 17px;
        line-height: 1.4em;
    }

    .pgv-bf-original .bf-hero .pagamento__preco .pagamento__prazo {
        font-size: 20px;
        line-height: normal;
    }

    .pgv-bf-original .bf-hero .pagamento__botao {
        margin: 0 10px -30px;
        padding: 25px 18px;
        font-size: 15px;
    }

    .pgv-bf-original .bf-hero .pagamento__faixa--promocao {
        gap: 0;
        margin-top: -175px;
    }

    .pgv-bf-original .bf-hero .pagamento__faixa--oportunidade {
        gap: 0;
        margin-top: -200px;
        padding: 1em 0;
    }

    .pgv-bf-original .bf-hero .pagamento__faixa span {
        font-size: 1.1em;
    }

    .pgv-bf-original .bf-hero > .container {
        padding-top: calc(40px + 32vw);
        background-size: 190vw auto;
    }

    .pgv-bf-original .bf-hero .hero__titulo,
    .pgv-bf-original .bf-hero .hero__descricao {
        width: calc(100% - 60px);
        max-width: calc(100% - 60px);
        padding: 0 1vw;
    }

    .pgv-bf-original .bf-hero .hero__titulo {
        font-size: 45px;
        line-height: 0.9em;
    }

    .pgv-bf-original .bf-hero .hero__descricao {
        font-size: 17px;
    }

    .pgv-bf-original .bf-hero .botao-hero {
        max-width: calc(100% - 60px);
        margin-top: 50px;
        padding: 25px 18px;
        font-size: 15px;
    }
}

@media (max-width: 29.9375em) {
    .pgv-bf-original .bf-hero .cronometro {
        font-size: 33.2px;
    }

    .pgv-bf-original .bf-hero .cronometro > div {
        width: 65px;
        min-width: 65px;
    }

    .pgv-bf-original .bf-hero .cronometro .texto {
        font-size: 11.1px;
    }
}

/* =====================================================================
   Faixas de cursos (hero__scrollers) e "Como vai funcionar"
   Componentes compartilhados (CSS em pg-vendas-bf-compartilhado.css, gerado);
   aqui só o que aproxima da aparência que a BF tinha: espaçamentos, o fundo do
   laptop e a tipografia do título e da lista.
   ===================================================================== */

.pgv-bf-original .bf-hero .hero__scrollers {
    padding: 120px 0 121px;
}

.pgv-bf-original .bf-como.secao {
    padding: 130px 0 70px;
    background-color: transparent;
    background-image: url("https://www.hashtagtreinamentos.com/wp-content/uploads/2024/06/IMGS-mockup01-VIT.png.webp");
    background-position: top center;
    background-repeat: no-repeat;
    background-size: 1600px auto;
}

.pgv-bf-original .bf-como .container {
    max-width: 1200px;
    gap: 60px;
}

.pgv-bf-original .bf-como .como__textos {
    align-self: flex-start;
    gap: 27.2px;
}

/* a BF só declara TacticSansBld; a TacticSans do componente cairia na genérica */
.pgv-bf-original .bf-como .titulo {
    margin-bottom: 12.8px;
    font-family: "TacticSansBld", sans-serif;
    font-size: 30px;
    line-height: normal;
    text-wrap: balance;
}

.pgv-bf-original .bf-como .como__textos .paragrafo {
    font-size: 16px;
    line-height: 1.7;
    text-wrap: wrap;
}

.pgv-bf-original .bf-como .como__lista {
    flex: 1 1 0;
    gap: 12px;
}

.pgv-bf-original .bf-como .como__lista .paragrafo {
    font-size: 18px;
}

@media (max-width: 1366px) {
    .pgv-bf-original .bf-como.secao {
        padding: 80px 30px 70px;
    }
}

/* no Elementor as listas empilham já em 1024px (no componente, só abaixo de 992px) */
@media (max-width: 1024px) {
    .pgv-bf-original .bf-hero .hero__scrollers {
        padding: 120px 0 151px;
    }

    .pgv-bf-original .bf-como.secao {
        padding: 70px 30px;
        background-image: url("https://www.hashtagtreinamentos.com/wp-content/uploads/2024/06/bg-mockupMob.png.webp");
        background-size: contain;
    }

    .pgv-bf-original .bf-como .container {
        gap: 30px;
    }

    .pgv-bf-original .bf-como .como__textos {
        max-width: 100%;
        padding-top: 430px;
    }

    .pgv-bf-original .bf-como .como__listas {
        flex-flow: column;
        gap: 0;
        max-width: none;
    }

    .pgv-bf-original .bf-como .como__lista:first-child {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
        padding-bottom: 0;
    }

    .pgv-bf-original .bf-como .como__lista:nth-child(2) {
        border-radius: 0;
        padding-block: 12px;
    }

    .pgv-bf-original .bf-como .como__lista:nth-child(3) {
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        padding-top: 0;
    }
}

@media (max-width: 767px) {
    .pgv-bf-original .bf-hero .hero__scrollers {
        padding: 100px 0 131px;
    }

    /* as pílulas do componente encolhem abaixo de 624px; as da BF não encolhiam */
    .pgv-bf-original .bf-hero .curso__item-texto {
        height: 39px;
        padding-right: 20px;
        font-size: 16px;
    }

    .pgv-bf-original .bf-hero .curso__item-texto img {
        width: 28px;
        height: 28px;
    }

    .pgv-bf-original .bf-como.secao {
        padding: 70px 20px 0;
    }

    .pgv-bf-original .bf-como .como__textos {
        padding-top: 225px;
    }

    .pgv-bf-original .bf-como .titulo {
        margin-bottom: 2.8px;
        font-size: 25px;
    }

    .pgv-bf-original .bf-como .como__lista .paragrafo {
        font-size: 17px;
    }
}

/* =====================================================================
   "E uma grande novidade" (novidade) e Hash GPT (hashgpt)
   No Elementor eram um container só (044ee9d): o card, o bloco do Hash GPT e, depois
   dele, os dois CTAs, com gap de 20px entre eles. Aqui são duas seções; o gap vira o
   padding-bottom da primeira, e o padding do pai (80/100/70px) o fim da segunda.
   O card é o componente como ele é (o CSS dele foi copiado deste widget); a tabela não
   tem regra no bundle, e vem dos <style> inline que o widget HTML trazia.
   ===================================================================== */

.pgv-bf-original .bf-novidade.secao {
    overflow: visible; /* a sombra rosa do card passa da seção */
    padding: 0 0 20px;
}

.pgv-bf-original .bf-novidade .container {
    flex-flow: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    box-sizing: border-box;
    width: calc(min(1200px, 100%) * 0.85);
    max-width: none;
    padding: 40px;
}

.pgv-bf-original .bf-novidade .novidade__img {
    width: 35%;
    min-width: 0;
    max-width: 35%;
    height: auto;
}

.pgv-bf-original .bf-novidade .novidade__textos {
    align-self: center;
    width: 60%;
    gap: 0;
}

/* o h3 do Elementor guardava a margem de cima do navegador (1em) */
.pgv-bf-original .bf-novidade .titulo {
    margin: 1em 0 30px;
    font-family: "TacticSansBld", sans-serif;
    font-size: 25px;
    font-weight: 600;
    line-height: normal;
}

.pgv-bf-original .bf-novidade .paragrafo {
    color: #cdddff;
    font-size: 16px;
    line-height: 1.7;
    text-wrap: wrap;
}

.pgv-bf-original .bf-hashgpt.secao {
    overflow: visible;
    padding: 70px 0 80px;
}

.pgv-bf-original .bf-hashgpt .container {
    align-items: stretch;
    gap: 0;
    max-width: 1200px;
    text-align: center;
}

.pgv-bf-original .bf-hashgpt .titulo {
    margin: 32px 0 20px;
    font-family: "TacticSansBld", sans-serif;
    font-size: 32px;
    font-weight: 700;
    line-height: normal;
    text-wrap: balance;
}

.pgv-bf-original .bf-hashgpt .paragrafo {
    color: #b5b5b5;
    line-height: normal;
    text-wrap: balance;
}

.pgv-bf-original .bf-hashgpt .hashgpt__descricao {
    font-size: 16px;
}

.pgv-bf-original .bf-hashgpt .hashgpt__descricao b {
    font-weight: bolder;
}

.pgv-bf-original .bf-hashgpt .hashgpt__comparacao {
    margin-top: 50px;
    font-size: 27px;
}

/* o CTA fica fora do bloco do Hash GPT no original: padding de baixo do bloco + gap
   de 20px + padding de 30px do widget */
.pgv-bf-original .bf-hashgpt .botao:link,
.pgv-bf-original .bf-hashgpt .botao:visited {
    align-self: center;
    margin-top: 70px;
    padding: 25px; /* o bundle reduz abaixo de 856px; a BF só em 767px */
    font-family: "TacticSansBld", sans-serif;
    font-size: 17px;
    transition: all 0.3s;
}

.pgv-bf-original .bf-hashgpt .botao:hover,
.pgv-bf-original .bf-hashgpt .botao:active {
    transform: none;
}

/* ---------- Tabela ChatGPT x HashGPT ---------- */

.pgv-bf-original .bf-hashgpt .tabela-desktop {
    box-sizing: border-box;
    width: 100%;
    margin-top: 50px;
    border-collapse: collapse;
    border-radius: 10px;
    overflow: hidden;
    background-color: #15102b;
    color: #fff;
    font-family: "Poppins", sans-serif;
    line-height: normal;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop svg {
    width: 100%;
    max-width: 32px;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop th,
.pgv-bf-original .bf-hashgpt .tabela-desktop td {
    border: 1px solid #2e2442;
    padding: 20px;
    font-size: 15px;
    text-align: center;
    vertical-align: middle;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop th {
    background-color: #1c1536;
    font-family: "TacticSansBld", sans-serif;
    font-size: 23px;
    font-weight: 600;
    text-transform: uppercase;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop th:first-child {
    background-color: transparent;
    text-align: left;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop td {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.pgv-bf-original .bf-hashgpt .tabela-desktop td:first-child {
    font-weight: 500;
    text-align: left;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop tr:last-child td {
    border-bottom: none;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop .tabela-titulo {
    color: #f5ebfa;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop .tabela-titulo b {
    font-weight: bolder;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop .tabela-chatgpt {
    color: #9394aa;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop .tabela-hashgpt {
    color: #c489ff;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop .tabela-hashgpt small {
    font-size: smaller;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop .tabela-hashgpt svg {
    transform: translateY(-3px);
}

.pgv-bf-original .bf-hashgpt .tabela-desktop th:last-child {
    border-top-right-radius: 10px;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop td:last-child {
    background-color: rgba(138, 63, 252, 0.1);
    font-weight: 600;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop tr:first-child {
    background-color: #221933;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop tr:first-child th:nth-child(2) {
    background-color: #221933;
}

.pgv-bf-original .bf-hashgpt .tabela-desktop tr:first-child th:last-child {
    background-color: #9449df;
}

@media (max-width: 1366px) {
    .pgv-bf-original .bf-novidade .container {
        width: calc(min(1200px, 100%) * 0.9);
    }

    .pgv-bf-original .bf-hashgpt.secao {
        padding: 100px 30px 80px;
    }

    .pgv-bf-original .bf-hashgpt .container {
        max-width: 1140px;
    }

    .pgv-bf-original .bf-hashgpt .botao:link,
    .pgv-bf-original .bf-hashgpt .botao:visited {
        margin-top: 150px;
    }
}

@media (max-width: 1024px) {
    .pgv-bf-original .bf-novidade.secao {
        padding: 0 30px 20px;
    }

    /* o texto passa a 100% e o flex encolhe os dois, na proporção da base */
    .pgv-bf-original .bf-novidade .novidade__textos {
        width: 100%;
    }

    .pgv-bf-original .bf-hashgpt.secao {
        padding: 0 60px 100px;
    }

    .pgv-bf-original .bf-hashgpt .titulo {
        margin-top: 40px;
    }

    .pgv-bf-original .bf-hashgpt .botao:link,
    .pgv-bf-original .bf-hashgpt .botao:visited {
        margin-top: 120px;
    }
}

@media (max-width: 767px) {
    .pgv-bf-original .bf-novidade.secao {
        padding: 50px 20px 20px;
    }

    .pgv-bf-original .bf-novidade .container {
        flex-flow: column;
        width: 100%;
        padding: 40px 25px 50px;
    }

    .pgv-bf-original .bf-novidade .novidade__img {
        align-self: center;
        width: 60%;
        max-width: 60%;
    }

    .pgv-bf-original .bf-novidade .novidade__textos {
        width: 100%;
    }

    .pgv-bf-original .bf-novidade .titulo {
        margin-bottom: 5px;
        font-size: 22px;
    }

    .pgv-bf-original .bf-hashgpt.secao {
        padding: 60px 20px 70px;
    }

    .pgv-bf-original .bf-hashgpt .titulo {
        margin-top: 1em;
        font-size: 20px;
    }

    .pgv-bf-original .bf-hashgpt .hashgpt__comparacao {
        margin-top: 40px;
        font-size: 20px;
    }

    .pgv-bf-original .bf-hashgpt .tabela-desktop {
        margin-top: 40px;
    }

    .pgv-bf-original .bf-hashgpt .botao:link,
    .pgv-bf-original .bf-hashgpt .botao:visited {
        margin-top: 90px;
        padding: 25px 18px;
        font-size: 15px;
    }
}

@media (max-width: 565px) {
    .pgv-bf-original .bf-hashgpt .tabela-desktop th {
        font-size: 12px;
    }

    .pgv-bf-original .bf-hashgpt .tabela-desktop td {
        padding: 10px;
        font-size: 11px;
    }

    .pgv-bf-original .bf-hashgpt .tabela-desktop svg {
        max-width: 20.8px;
    }
}

/* =====================================================================
   Oferta, primeira metade (bf-oferta-intro): textos, bloco branco e os dois logos
   flutuando. É o oferta.php sem o card, que fica na seção seguinte (#secao-oferta).
   No Elementor (f948f96) o texto era um h3 com <br><br> entre as frases: o gap entre
   os <p> é essa linha vazia. Os logos eram widgets absolute medidos contra a seção
   inteira (top/right em % dela), acima do fundo e abaixo dos textos.
   ===================================================================== */

.pgv-bf-original .bf-oferta-intro.secao {
    overflow: visible;
    padding: 0 0 60px;
    background-position: center center;
}

.pgv-bf-original .bf-oferta-intro .container {
    gap: 0;
    max-width: 1200px;
}

.pgv-bf-original .bf-oferta-intro .oferta__textos {
    position: relative;
    z-index: 3;
    gap: 28px;
    margin: 24px 0 44px;
}

.pgv-bf-original .bf-oferta-intro .oferta__textos .paragrafo {
    color: #cdddff;
    font-size: 24px;
    line-height: 28px;
    text-align: center;
    text-wrap: wrap;
}

.pgv-bf-original .bf-oferta-intro .oferta__bg-branco {
    position: relative;
    z-index: 3;
    box-sizing: border-box;
    width: 100%;
    padding: 50px;
    background-color: #ffffffe0;
    text-align: center;
}

.pgv-bf-original .bf-oferta-intro .oferta__bg-branco .paragrafo {
    font-size: 22px;
    line-height: 1.2;
    text-wrap: wrap;
}

/* no original o preço é um <span> inline depois de <br><br>: a linha vazia vira a margem,
   e o fit-content deixa o gradiente do .destaque do tamanho do texto */
.pgv-bf-original .bf-oferta-intro .oferta__preco {
    width: fit-content;
    margin: 26.4px auto 0;
    font-size: 60px;
    font-weight: 700;
    line-height: 40px;
}

.pgv-bf-original .bf-oferta-intro .oferta__bg-hashtag {
    z-index: 2;
    display: block;
    width: 40%;
    max-width: 40%;
    text-align: center;
}

.pgv-bf-original .bf-oferta-intro .oferta__bg-hashtag img {
    width: 90%;
    max-width: 90%;
    height: auto;
}

.pgv-bf-original .bf-oferta-intro .oferta__bg-hashtag--1 {
    top: -25%;
    right: -15%;
}

.pgv-bf-original .bf-oferta-intro .oferta__bg-hashtag--2 {
    top: 15%;
    left: -20%;
}

@media (max-width: 1366px) {
    .pgv-bf-original .bf-oferta-intro .oferta__textos {
        margin-bottom: 114px;
    }

    .pgv-bf-original .bf-oferta-intro .oferta__bg-branco {
        width: 80%;
    }
}

/* o custom CSS dos logos tem cortes próprios (767–1025 e 766), fora da grade do Elementor */
@media (min-width: 767px) and (max-width: 1025px) {
    .pgv-bf-original .bf-oferta-intro .oferta__bg-hashtag--1 {
        right: -30%;
    }
}

@media (max-width: 1024px) {
    .pgv-bf-original .bf-oferta-intro.secao {
        padding: 0 30px 20px;
    }

    .pgv-bf-original .bf-oferta-intro .oferta__textos {
        margin-bottom: 39px;
    }

    .pgv-bf-original .bf-oferta-intro .oferta__bg-branco {
        width: 100%;
    }
}

@media (max-width: 767px) {
    .pgv-bf-original .bf-oferta-intro.secao {
        padding-top: 40px;
    }

    .pgv-bf-original .bf-oferta-intro .oferta__textos {
        gap: 31.2px;
    }

    .pgv-bf-original .bf-oferta-intro .oferta__textos .paragrafo {
        line-height: 1.3;
    }

    .pgv-bf-original .bf-oferta-intro .oferta__bg-branco {
        padding: 30px 20px;
    }

    .pgv-bf-original .bf-oferta-intro .oferta__bg-branco .paragrafo {
        font-size: 20px;
    }

    .pgv-bf-original .bf-oferta-intro .oferta__preco {
        margin-top: 24px;
        font-size: 45px;
        line-height: 33px;
    }

    .pgv-bf-original .bf-oferta-intro .oferta__bg-hashtag--1 {
        width: 100%;
        max-width: 100%;
    }

    .pgv-bf-original .bf-oferta-intro .oferta__bg-hashtag--1 img {
        width: 60%;
        max-width: 60%;
    }

    .pgv-bf-original .bf-oferta-intro .oferta__bg-hashtag--2 {
        top: -20%;
        filter: blur(6px);
    }
}

@media (max-width: 766px) {
    .pgv-bf-original .bf-oferta-intro .oferta__bg-hashtag--1 {
        top: 0;
        right: -46%;
        animation-duration: 10s;
    }
}

@media (max-width: 565px) {
    .pgv-bf-original .bf-oferta-intro.secao {
        padding-inline: 30px !important;
    }
}

/* =====================================================================
   Oferta, o card (bf-oferta, #secao-oferta). No Elementor (725e952) o card era um
   container e o CTA um irmão dele, subindo 75px por cima da borda de baixo: aqui o CTA
   continua dentro do card do componente, e a margem negativa de baixo faz o mesmo efeito.
   O preço "riscado" nunca foi riscado na BF: o traço era desenhado pelo JS do headline
   animado do Elementor, que a página não carrega. Por isso o risco do componente sai.
   ===================================================================== */

.pgv-bf-original .bf-oferta.secao {
    overflow: visible;
    padding: 0 0 100px;
    background-image: none;
}

.pgv-bf-original .bf-oferta .container {
    gap: 0;
    max-width: none;
}

/* O cronômetro da oferta (oculto até os 2 dias finais do lote). O widget do Elementor
   ocupava a linha toda, com 50px acima do título; o h3 guardava o tamanho e a margem do
   navegador (18,72px e 1em), sem caixa alta. O padding de baixo soma o gap de 20px que
   havia entre o widget e o card. */
.pgv-bf-original .bf-oferta .html-cronometro {
    box-sizing: border-box;
    width: 100%;
    padding: 50px 0 44.6px;
}

.pgv-bf-original .bf-oferta .container-cronometro .titulo {
    margin: 18.72px 0;
    color: #fff;
    font-family: "TacticSansBld", sans-serif;
    font-size: 18.72px;
    font-weight: 700;
    line-height: normal;
    text-align: center;
    text-transform: none;
}

.pgv-bf-original .bf-oferta .oferta__card {
    display: flex;
    flex-flow: column;
    gap: 10px;
    box-sizing: border-box;
    width: 60%;
    max-width: none;
    margin: 50px 0 0;
    padding: 0 60px;
    border-radius: 30px;
    background-color: #070947;
    text-align: center;
}

.pgv-bf-original .bf-oferta .oferta__wrapper-padding {
    display: flex;
    flex-flow: column;
    gap: 10px;
    padding: 0;
}

.pgv-bf-original .bf-oferta .oferta__card-titulo {
    align-self: center;
    margin: 40px 0 25px;
    font-size: 42px;
    font-weight: 700;
    line-height: 1.3;
}

.pgv-bf-original .bf-oferta .oferta__lista {
    gap: 0;
    padding: 40px;
    border-radius: 30px;
    background-color: #15186a78;
}

/* o item ocupa a linha toda, como o do Elementor: o texto longo quebra no espaço que o
   ícone deixa, em vez de o item encolher até o conteúdo */
.pgv-bf-original .bf-oferta .oferta__lista-item {
    box-sizing: border-box;
    width: 100%;
    justify-content: center;
    gap: 7.5px;
    padding-block: 15px;
}

.pgv-bf-original .bf-oferta .oferta__lista-item:first-child {
    padding-top: 0;
}

.pgv-bf-original .bf-oferta .oferta__lista-item:last-child {
    padding-bottom: 0;
}

.pgv-bf-original .bf-oferta .oferta__icone {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
}

/* o texto do icon-list do Elementor tem 5px de padding à esquerda, e é ele que decide
   onde o item longo quebra */
.pgv-bf-original .bf-oferta .oferta__lista-item .paragrafo {
    padding-inline-start: 5px;
    color: #fff;
    font-size: 18px;
    line-height: normal;
    text-align: center;
    text-wrap: wrap;
}

.pgv-bf-original .bf-oferta .oferta__lista-separador {
    align-self: center;
    width: 70%;
    height: 1px;
    margin: 0;
    background-color: #616d82;
}

.pgv-bf-original .bf-oferta .oferta__wrapper-preco-original {
    flex-flow: row wrap;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.pgv-bf-original .bf-oferta .oferta__wrapper-preco-original:first-of-type {
    margin-top: 20px;
}

.pgv-bf-original .bf-oferta .oferta__wrapper-preco-original .paragrafo {
    font-size: 20px;
    line-height: 1.3;
}

/* a linha herdada (36,8px) faria um strut mais alto que o valor */
.pgv-bf-original .bf-oferta .oferta__wrapper-riscado {
    margin: 24px 0;
    font-size: 24px;
    line-height: 1.2;
}

.pgv-bf-original .bf-oferta .oferta__preco-original {
    color: #b5b5b5;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.pgv-bf-original .bf-oferta .oferta__svg-risco {
    display: none;
}

.pgv-bf-original .bf-oferta .oferta__wrapper-preco-externo,
.pgv-bf-original .bf-oferta .oferta__wrapper-preco {
    display: flex;
    flex-flow: column;
    align-items: center;
    gap: 10px;
    width: 100%;
}

.pgv-bf-original .bf-oferta .oferta__wrapper-preco {
    gap: 0;
}

.pgv-bf-original .bf-oferta .oferta__lote,
.pgv-bf-original .bf-oferta .oferta__desconto {
    font-size: 23px;
    line-height: 1.3;
    text-align: center;
}

.pgv-bf-original .bf-oferta .oferta__lote {
    margin-top: 20px;
}

.pgv-bf-original .bf-oferta .oferta__preco {
    margin-top: 10px;
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    line-height: 2;
}

.pgv-bf-original .bf-oferta .oferta__preco--grande {
    font-size: 60px;
    line-height: 40px;
}

.pgv-bf-original .bf-oferta .oferta__wrapper-preco-externo > .paragrafo {
    font-size: 25px;
    line-height: normal;
}

.pgv-bf-original .bf-oferta .botao:link,
.pgv-bf-original .bf-oferta .botao:visited {
    align-self: center;
    margin: 45px 0 -44px;
    padding: 25px;
    font-family: "TacticSansBld", sans-serif;
    font-size: 17px;
    transition: all 0.3s;
}

.pgv-bf-original .bf-oferta .botao:hover,
.pgv-bf-original .bf-oferta .botao:active {
    transform: none;
}

/* o padding de baixo é a margem do último <p> do Elementor */
.pgv-bf-original .bf-oferta .oferta__textos-fim {
    gap: 16px;
    margin-top: 140px;
    padding-bottom: 16px;
}

.pgv-bf-original .bf-oferta .oferta__textos-fim .paragrafo {
    color: #cdddff;
    font-size: 16px;
    line-height: 1.7;
    text-wrap: wrap;
}

@media (max-width: 1366px) {
    .pgv-bf-original .bf-oferta.secao {
        padding-bottom: 50px;
    }

    .pgv-bf-original .bf-oferta .oferta__card {
        width: calc(min(1173.6px, 100%) * 0.7);
    }
}

@media (max-width: 1024px) {
    .pgv-bf-original .bf-oferta .oferta__card {
        padding: 40px 40px 0;
    }

    /* o card passa a 70px de padding embaixo: o CTA fica 10px mais perto do texto */
    .pgv-bf-original .bf-oferta .botao:link,
    .pgv-bf-original .bf-oferta .botao:visited {
        margin-top: 35px;
    }

    .pgv-bf-original .bf-oferta .oferta__textos-fim {
        margin-top: 120px;
        padding: 0 30px 16px;
    }
}

@media (max-width: 767px) {
    .pgv-bf-original .bf-oferta .oferta__card {
        width: calc(100% - 20px);
        margin-top: 30px;
        padding: 30px 20px 0;
    }

    .pgv-bf-original .bf-oferta .oferta__card-titulo {
        margin-top: 0;
        font-size: 33px;
        line-height: 1;
    }

    .pgv-bf-original .bf-oferta .oferta__lista {
        padding: 20px;
    }

    /* o filete do Elementor no mobile: 200px a 16%, sem o teto de 40% do componente */
    .pgv-bf-original .bf-oferta .oferta__lista::before {
        left: 16%;
        width: 200px;
        max-width: none;
    }

    .pgv-bf-original .bf-oferta .oferta__lista-item {
        justify-content: flex-start;
    }

    .pgv-bf-original .bf-oferta .oferta__lista-item .paragrafo {
        text-align: start;
    }

    .pgv-bf-original .bf-oferta .oferta__wrapper-preco-original .paragrafo {
        font-size: 18px;
    }

    .pgv-bf-original .bf-oferta .oferta__preco--grande {
        font-size: 45px;
    }

    .pgv-bf-original .bf-oferta .botao:link,
    .pgv-bf-original .bf-oferta .botao:visited {
        margin: 40px 0 -47px;
        padding: 25px 18px;
        font-size: 15px;
    }

    .pgv-bf-original .bf-oferta .oferta__textos-fim {
        align-items: stretch;
        margin-top: 123px;
        text-align: start;
    }

    .pgv-bf-original .bf-oferta .oferta__textos-fim .paragrafo {
        text-align: start;
    }
}

@media (max-width: 565px) {
    .pgv-bf-original .bf-oferta.secao {
        padding-inline: 0 !important;
    }
}

/* =====================================================================
   "Além de outros cursos" (bf-cursos-extra). No Elementor (d8c00dd) era um container de
   1200px, em coluna com gap de 50px, com o carrossel de imagens (setas por fora) e os dois
   CTAs. Aqui fica o layout do carrossel do componente (carrossel-2.js), e só o que afasta
   da BF muda: padding, título, largura e o CTA.
   ===================================================================== */

.pgv-bf-original .bf-cursos-extra.secao {
    overflow: visible;
    padding: 60px 0 100px;
    background-image: none;
}

.pgv-bf-original .bf-cursos-extra .container {
    display: flex;
    flex-flow: column;
    align-items: center;
    gap: 50px;
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
    padding: 0;
}

/* a BF só declara TacticSansBld; a TacticSans do componente cairia na genérica */
.pgv-bf-original .bf-cursos-extra .titulo {
    width: 100%;
    margin: 0;
    padding-bottom: 20px;
    font-family: "TacticSansBld", sans-serif;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
}

/* as setas do Elementor ocupavam 30px de cada lado (o carrossel era o container menos
   60px); as do componente, 57. O ícone de 40px transborda a caixa, como lá. */
.pgv-bf-original .bf-cursos-extra .arrow {
    display: flex;
    justify-content: center;
    flex: 0 0 30px;
    width: 30px;
    padding: 0;
}

/* Os slides do Elementor eram 1/4 do carrossel, sem espaço entre eles, com a imagem no
   tamanho natural (236x299) no meio. Aqui a célula é o próprio card: 25%, sem gap, e o
   padding centraliza a imagem enquanto ela cabe. Até 1024px a célula é menor que a imagem, o
   padding zera e os 4 encostam (4 x 226px = os 904px do carrossel). Nada de gap em
   porcentagem: o carrossel-2.js lê o gap com parseFloat, e "calc(33% - 78px)" vira 33.
   Abaixo de 768px vale o componente (2 cards, e 1 abaixo de 624px). */
@media (min-width: 768px) {
    .pgv-bf-original .bf-cursos-extra .carousel-track {
        gap: 0;
    }

    .pgv-bf-original .bf-cursos-extra .carousel-track > img,
    .pgv-bf-original .bf-cursos-extra .carousel-track picture {
        box-sizing: border-box;
        flex-basis: 25%;
        padding-inline: max(0px, calc(12.5% - 118px));
    }
}

@media (max-width: 767px) {
    .pgv-bf-original .bf-cursos-extra .carousel-track {
        gap: 24px;
    }

    .pgv-bf-original .bf-cursos-extra .carousel-track > img,
    .pgv-bf-original .bf-cursos-extra .carousel-track picture {
        flex-basis: calc((100% - 24px) / 2);
    }
}

@media (max-width: 623px) {
    .pgv-bf-original .bf-cursos-extra .carousel-track {
        gap: 16px;
    }

    .pgv-bf-original .bf-cursos-extra .carousel-track > img,
    .pgv-bf-original .bf-cursos-extra .carousel-track picture {
        flex-basis: clamp(220px, 75%, 320px);
    }
}

/* os pontos ficam logo abaixo dos cards, como a paginação do Elementor (os 30px de baixo do
   widget), e não a um gap de distância */
.pgv-bf-original .bf-cursos-extra .dots {
    margin-top: -53px;
}

/* o mesmo CTA do Hash GPT: verde, anel, TacticSansBld, sem o scale do hover */
.pgv-bf-original .bf-cursos-extra .botao:link,
.pgv-bf-original .bf-cursos-extra .botao:visited {
    align-self: center;
    margin-top: 30px; /* o padding de cima do widget */
    padding: 25px;
    font-family: "TacticSansBld", sans-serif;
    font-size: 17px;
    transition: all 0.3s;
}

.pgv-bf-original .bf-cursos-extra .botao:hover,
.pgv-bf-original .bf-cursos-extra .botao:active {
    transform: none;
}

@media (max-width: 1366px) {
    .pgv-bf-original .bf-cursos-extra.secao {
        padding: 0 0 150px;
    }
}

@media (max-width: 1024px) {
    .pgv-bf-original .bf-cursos-extra.secao {
        padding: 60px 30px 70px;
    }

    .pgv-bf-original .bf-cursos-extra .titulo {
        padding-bottom: 30px;
        font-size: 25px;
    }
}

@media (max-width: 767px) {
    .pgv-bf-original .bf-cursos-extra.secao {
        padding: 60px 20px 100px;
    }

    .pgv-bf-original .bf-cursos-extra .container {
        gap: 35px;
    }

    .pgv-bf-original .bf-cursos-extra .titulo {
        padding: 20px 0 0;
    }

    .pgv-bf-original .bf-cursos-extra .botao:link,
    .pgv-bf-original .bf-cursos-extra .botao:visited {
        padding: 25px 18px;
        font-size: 15px;
    }
}

/* =====================================================================
   Cronômetro dos lotes (.container-cronometro), o do hero e o da oferta.
   Veio sem mudança do <style> inline do widget do Elementor que ficava na oferta
   (ebe47d2): sem escopo, porque era global na página e o hero sempre dependeu dele.
   ===================================================================== */

.container-cronometro {
  font-family: "TacticSansBld", sans-serif;
  color: white;
  display: flex;
  flex-flow: column;
  gap: 20px;
}

.container-cronometro h3 {
  font-family: inherit;
  text-align: center;
}

.container-cronometro .cronometro {
  font-size: 82.6px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

.container-cronometro .cronometro *,
.container-cronometro .cronometro *::after,
.container-cronometro .cronometro *::before {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.container-cronometro .cronometro > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 125px;
  width: 125px;
}

.container-cronometro .cronometro > p {
  font-size: 27.6px;
}

.container-cronometro .cronometro .numero {
  font-weight: 600;
}

.container-cronometro .cronometro .texto {
  font-size: 16px;
}

.container-cronometro .cronometro .oculto {
  display: none;
}

@media (max-width: 29.9375em) {
  .container-cronometro .cronometro {
    font-size: 33.2px;
  }

  .container-cronometro .cronometro > div {
    min-width: 65px;
    width: 65px;
  }

  .container-cronometro .cronometro .texto {
    font-size: 11.1px;
  }
}
