/* ============================================================================
   Black Friday Agiliza · TotalPass (novembro de 2026)
   Componentes da landing page, por cima do sistema do site (vidro.css, cópia de
   Site Vidro 2026/src/css/site.css). 9 cenas escuras e 2 claras.
   ========================================================================== */

/* ícones do sprite (<svg class="ic"><use href="#i-..."/></svg>) */
.ic { width: 1.2em; height: 1.2em; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* sticky precisa de overflow: clip (hidden cria um contêiner de rolagem) */
.bf-duvidas { overflow: clip; }

/* véu mais forte para fotos que só fazem clima */
.escura .cena__veu.bf-veu-forte {
  background:
    radial-gradient(60% 45% at 0% 100%, rgba(167, 23, 235, .42), transparent 72%),
    radial-gradient(45% 40% at 100% 0%, rgba(167, 23, 235, .14), transparent 70%),
    linear-gradient(180deg, rgba(18, 6, 28, .94) 0%, rgba(18, 6, 28, .80) 35%, rgba(18, 6, 28, .84) 70%, rgba(18, 6, 28, .96) 100%);
}

/* Logo TotalPass sem fundo (TOTAL verde #45BB7F): totalpass-verde-branco.svg no fundo escuro, totalpass-verde-preto.svg
   no claro (só o cabeçalho troca, como o logo da Agiliza). Nunca mudar cor, opacidade ou proporção; cada lugar define
   só a altura (--tp-h), que é a altura das letras. */
.bf-tp { display: block; flex: none; width: auto; max-width: 100%; height: var(--tp-h, 28px); }

/* ---------- Cabeçalho ---------- */
.bf-marcas { display: flex; align-items: center; gap: .9rem; min-width: 0; }
.bf-parceira { display: inline-flex; align-items: center; gap: .6rem; padding-left: .9rem; border-left: 1px solid rgba(255, 255, 255, .28); font-size: .66rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.bf-parceira > span { opacity: .9; }
.topo[data-sobre="clara"] .bf-parceira { border-left-color: rgba(88, 1, 123, .25); }
.bf-parceira .bf-tp { --tp-h: 16px; }
.bf-parceira .tp-cor, .topo[data-sobre="clara"] .bf-parceira .tp-neg { display: none; }
.topo[data-sobre="clara"] .bf-parceira .tp-cor { display: block; }
@media (max-width: 420px) { .bf-parceira > span { display: none; } .bf-parceira .bf-tp { --tp-h: 13px; } .topo__logo { height: 30px; } }
/* entre 1081 e 1360 px os dois logos, o menu e os botões não cabem lado a lado: some a palavra "parceira" e o menu aperta */
@media (min-width: 1081px) and (max-width: 1360px) { .bf-parceira > span { display: none; } .topo .nav a { padding-inline: .6rem; } }
@media (min-width: 1081px) and (max-width: 1240px) { .topo__acoes .botao--vidro { display: none; } }

/* ---------- Herói ---------- */
.bf-heroi__conteudo { max-width: 760px; }
.bf-heroi__marcas { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.2rem; }
.bf-heroi__marcas .bf-tp { --tp-h: clamp(24px, 1.1rem + 1.2vw, 36px); }
.bf-heroi .titulo { font-size: clamp(2.7rem, 1.2rem + 5.2vw, 6rem); }
.bf-heroi .lead b { font-weight: 700; color: #fff; }
.bf-precos-mini { display: flex; flex-wrap: wrap; gap: .6rem; }
.bf-precos-mini li { display: grid; gap: .05rem; min-width: 8.6rem; padding: .7rem 1.05rem; border-radius: var(--raio-p); background: rgba(18, 6, 28, .55); border: 1px solid rgba(255, 255, 255, .2); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.bf-precos-mini span { font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--lilas); }
.bf-precos-mini s { font-size: .82rem; opacity: .65; }
.bf-precos-mini b { font-size: 1.6rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; white-space: nowrap; }
.bf-nota-mini { font-size: .85rem; opacity: .8; max-width: 54ch; margin-top: -.5rem; }
.bf-nota-mini a, .bf-final__publico a { color: var(--lilas); font-weight: 600; text-decoration: underline; }
@media (max-width: 480px) { .bf-precos-mini { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; width: 100%; } .bf-precos-mini li { min-width: 0; padding: .6rem .65rem; } .bf-precos-mini span { letter-spacing: .06em; font-size: .66rem; } .bf-precos-mini b { font-size: 1.15rem; } }

/* contagem regressiva */
.bf-contagem { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; padding: .6rem .7rem .6rem 1.2rem; border-radius: 999px; }
.bf-contagem__rotulo { font-size: .74rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--lilas); }
.bf-contagem__numeros { display: flex; gap: .4rem; }
.bf-contagem__numeros > span { display: grid; justify-items: center; min-width: 3.1rem; padding: .3rem .45rem; border-radius: 14px; background: rgba(255, 255, 255, .09); }
.bf-contagem__numeros b { font-size: 1.3rem; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
.bf-contagem__numeros small { font-size: .6rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; opacity: .7; }
.no-js .bf-contagem__numeros, .bf-contagem[data-estado="depois"] .bf-contagem__numeros { display: none; }
.bf-contagem--centro { justify-content: center; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .16); }
@media (max-width: 480px) { .bf-contagem { border-radius: var(--raio-m); padding: .7rem .8rem; justify-content: center; width: 100%; } }

/* ---------- Para quem é ---------- */
.bf-pequena__grade { margin-top: clamp(1.6rem, 3vw, 2.4rem); }
.bf-mais20-cartao .botao { margin-top: auto; align-self: flex-start; }

/* ---------- Preços ---------- */
.bf-alterna { display: flex; gap: .3rem; width: max-content; max-width: 100%; margin: 0 auto clamp(1.5rem, 3vw, 2.2rem); padding: .35rem; border-radius: 999px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .18); }
.bf-alterna label { position: relative; }
.bf-alterna input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.bf-alterna span { display: inline-flex; align-items: center; gap: .5rem; padding: .65rem 1.3rem; border-radius: 999px; font-weight: 600; transition: background .25s, color .25s, box-shadow .25s; }
.bf-alterna small { font-size: .7rem; font-weight: 700; padding: .15rem .55rem; border-radius: 999px; background: rgba(210, 138, 244, .2); color: var(--lilas); }
.bf-alterna input:checked + span { background: var(--violeta); color: #fff; box-shadow: var(--sombra-cta); }
.bf-alterna input:checked + span small { background: rgba(255, 255, 255, .22); color: #fff; }
.bf-alterna input:focus-visible + span { outline: 3px solid var(--lilas); outline-offset: 2px; }
.bf-precos[data-vitrine="mensal"] [data-so="anual"], .bf-precos[data-vitrine="anual"] [data-so="mensal"] { display: none; }

.bf-faixa { display: flex; flex-direction: column; gap: .55rem; padding: clamp(1.4rem, 2.6vw, 2rem); }
.bf-faixa .selo { align-self: flex-start; margin-bottom: .4rem; }
.bf-faixa__topo { display: flex; flex-direction: column; align-items: flex-start; gap: .85rem; margin-bottom: .4rem; }
.bf-faixa__topo .selo { margin-bottom: 0; }
.bf-faixa__topo .bf-tp { --tp-h: 18px; }
.bf-faixa__de { font-size: .95rem; opacity: .75; }
.bf-faixa__por { font-size: clamp(3rem, 2rem + 3vw, 4.4rem); font-weight: 800; letter-spacing: -.045em; line-height: 1; }
.bf-faixa__por small { font-size: .36em; font-weight: 600; letter-spacing: 0; margin-right: .25em; vertical-align: .95em; color: var(--lilas); }
.bf-faixa__un { font-size: .92rem; opacity: .85; }
.bf-faixa__info { display: grid; gap: .45rem; margin: .7rem 0 1.1rem; padding-top: .9rem; border-top: 1px solid rgba(255, 255, 255, .16); font-size: .93rem; }
.bf-faixa__info li:last-child { color: var(--lilas); font-weight: 600; }
.bf-faixa .botao { margin-top: auto; }
.bf-faixa.is-escolhida { border-color: var(--lilas); box-shadow: 0 0 0 3px rgba(210, 138, 244, .35), var(--sombra-vidro); }

.bf-inclusos { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem 1.8rem; max-width: 1040px; margin: clamp(1.8rem, 3vw, 2.6rem) auto 0; }
.bf-inclusos li { display: flex; align-items: center; gap: .6rem; font-weight: 500; font-size: .98rem; }
@media (max-width: 640px) { .bf-inclusos { display: grid; gap: .75rem; } .bf-inclusos li { align-items: flex-start; } }
.bf-resposta-centro { margin: clamp(1.4rem, 3vw, 2rem) auto 0; }
.bf-mais20 { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 1.6rem; max-width: 1040px; margin: clamp(1.2rem, 2.4vw, 1.8rem) auto 0; padding: 1.1rem 1.1rem 1.1rem 1.5rem; border-radius: var(--raio-m); }
.bf-mais20 p { max-width: 64ch; }
.bf-mais20 b { font-weight: 800; }

/* ---------- Calendário (clara) ---------- */
.bf-linha { display: grid; gap: .7rem; }
.bf-linha li { display: grid; grid-template-columns: 2.6rem 1fr; gap: .9rem; align-items: start; padding: .95rem 1.15rem; }
.bf-linha .etapa__n { width: 2.6rem; height: 2.6rem; font-size: 1rem; }
.bf-linha .etapa__titulo { font-size: 1.05rem; }
.bf-linha .etapa__texto { margin-top: .15rem; font-size: .95rem; }
.bf-linha__fim .etapa__n { background: var(--violeta); color: #fff; }
.bf-quadro { aspect-ratio: 4 / 5; }
.bf-quadro img { object-position: 66% 50%; }
@media (max-width: 900px) { .bf-quadro { aspect-ratio: 4 / 3; } }

/* ---------- O que inclui ---------- */
.bf-marca-linha { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1.1rem; }
.bf-marca-linha .bf-tp { --tp-h: 20px; }
.bf-cartao-foto .cartao__midia { aspect-ratio: 4 / 5; }
@media (max-width: 900px) { .bf-cartao-foto .cartao__midia { aspect-ratio: 4 / 3; } .bf-cartao-foto .cartao__midia img { object-position: var(--foco, 50% 30%); } }
.bf-cartao-foto .cartao__ic { position: relative; z-index: 1; margin-top: -2.9rem; margin-left: .2rem; }
.bf-copay { margin-top: clamp(1.6rem, 3vw, 2.4rem); padding: clamp(1.4rem, 3vw, 2.4rem); display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.4fr); gap: clamp(1.2rem, 3vw, 2.6rem); align-items: start; }
.bf-copay__titulo { font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.25rem); margin-top: .8rem; }
.bf-copay__passos { display: grid; gap: .9rem; }
.bf-copay__passos li { display: grid; grid-template-columns: 2.4rem 1fr; gap: .9rem; align-items: start; }
.bf-copay__passos .etapa__n { width: 2.4rem; height: 2.4rem; font-size: .95rem; }
.bf-copay__passos p { padding-top: .3rem; }
.bf-copay__nota { grid-column: 1 / -1; display: flex; align-items: center; gap: .6rem; padding-top: 1rem; border-top: 1px solid rgba(255, 255, 255, .2); font-size: .95rem; }
.bf-copay__nota .ic { color: var(--lilas); }
@media (max-width: 900px) { .bf-copay { grid-template-columns: 1fr; } }

/* ---------- Família ---------- */
.bf-familia { min-height: min(100svh, 980px); display: flex; align-items: flex-end; }
.bf-familia__conteudo { max-width: 640px; }
.bf-familia__contas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: .5rem; border-radius: var(--raio-m); }
.bf-familia__contas li { display: grid; align-content: start; gap: .1rem; padding: .8rem 1rem; }
.bf-familia__contas li + li { border-left: 1px solid rgba(255, 255, 255, .16); }
.bf-familia__contas > li > b { font-size: 2.1rem; font-weight: 800; line-height: 1; letter-spacing: -.03em; }
.bf-familia__contas span { font-size: .8rem; opacity: .75; }
.bf-familia__contas i { font-style: normal; font-size: .95rem; margin-top: .45rem; }
.bf-familia__contas i b { font-weight: 800; color: var(--lilas); }
@media (max-width: 520px) { .bf-familia__contas { grid-template-columns: 1fr; } .bf-familia__contas li { grid-template-columns: auto 1fr; align-items: baseline; column-gap: .6rem; } .bf-familia__contas i { grid-column: 1 / -1; margin-top: 0; } .bf-familia__contas li + li { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .16); } }

/* ---------- Sem fidelidade ---------- */
.bf-condicoes .duas { grid-template-columns: minmax(0, 640px); gap: clamp(1.5rem, 3vw, 2.2rem); }

/* ---------- Avisos de pré-venda e de condição encerrada (na seção de preços) ---------- */
.bf-pre-venda { display: none; align-items: center; gap: .6rem; margin-top: .3rem; padding: .7rem 1rem; border-radius: var(--raio-p); background: rgba(210, 138, 244, .14); border: 1px solid rgba(210, 138, 244, .35); font-size: .95rem; }
.bf-pre-venda .ic { color: var(--lilas); }
html[data-campanha="antes"] .bf-pre-venda { display: flex; }
.bf-encerrada { display: none; max-width: 760px; }
html[data-campanha="depois"] .bf-encerrada { display: block; }
html[data-campanha="depois"] .bf-faixas .botao { display: none; }
.bf-precos .bf-pre-venda { justify-content: center; }
.bf-precos .bf-encerrada { margin: 0 auto clamp(1.2rem, 3vw, 2rem); text-align: center; }

/* ---------- Atendimento ---------- */
.bf-numeros { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bf-numeros .numero__valor { font-size: clamp(2.2rem, 1.4rem + 2vw, 3.2rem); }
@media (max-width: 420px) { .bf-numeros { grid-template-columns: 1fr; } }
.bf-conversa { margin: 0; display: grid; gap: .7rem; justify-items: center; }
.bf-conversa .conversa { width: 100%; max-width: 520px; }
.bf-conversa__legenda { font-size: .8rem; opacity: .6; }

/* ---------- Dúvidas (clara) ---------- */
.bf-duvidas__lado { position: sticky; top: calc(var(--topo-h) + 1.5rem); }
.bf-quadro-faq { aspect-ratio: 16 / 10; }

/* ---------- Chamada final ---------- */
.bf-final { min-height: min(92svh, 900px); display: flex; align-items: center; }
.bf-final__caixa { display: grid; gap: 1.3rem; justify-items: center; max-width: 780px; margin-inline: auto; text-align: center; }
.bf-final__acoes { justify-content: center; }
.bf-final__caixa > .bf-tp { --tp-h: clamp(26px, 1.2rem + 1.3vw, 38px); }
.bf-final__publico { font-size: 1.02rem; opacity: .92; }

/* ---------- Rodapé ---------- */
.bf-rodape { position: relative; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.4fr); gap: 2.5rem; }
.bf-rodape__marca { display: grid; gap: 1rem; justify-items: start; align-content: start; }
.bf-rodape__marca p { max-width: 36ch; }
.bf-rodape__parceria { display: flex; align-items: center; gap: .8rem; font-size: .68rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.bf-rodape__parceria span { opacity: .8; white-space: nowrap; }
.bf-rodape__parceria .bf-tp { --tp-h: 18px; }
.bf-rodape__legal { display: grid; gap: .8rem; align-content: start; max-width: 76ch; font-size: .86rem; opacity: .85; }
.bf-rodape__legal p:first-child { font-weight: 600; opacity: 1; }
.rodape__contato .ic { width: 1.1rem; height: 1.1rem; color: var(--lilas); }
@media (max-width: 860px) { .bf-rodape { grid-template-columns: 1fr; } }
