/* ============================================================
   LP Condições Black Friday Verot (mostrada durante o webinar de 28/10) — complementa o bf.css
   (base visual da campanha) e o dg.css (formulário em etapas). Escopo: body.cbf-page.
   Comportamento em assets/js/cbf.js.
   ============================================================ */

.cbf-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.cbf-page .cbf-nav-whats { color: var(--bf-ink); }
.cbf-page .bf-lead strong { color: var(--bf-ink); font-weight: 700; }
.cbf-page .bf-sec--sand .bf-lead strong { color: var(--bf-bg); }

/* etiqueta de área (Tributário / Previdenciário): ponto luminoso + rótulo */
.cbf-area {
  display: inline-flex; align-items: center; gap: 8px; white-space: nowrap;
  font-family: var(--bf-mono); font-weight: 700; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #A9B6EE;
}
.cbf-area::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: #6A82DA; box-shadow: 0 0 8px 1px rgba(106,130,218,.6); }
.cbf-area--prev { color: #CDB2EE; }
.cbf-area--prev::before { background: #9E6DC4; box-shadow: 0 0 8px 1px rgba(158,109,196,.6); }
.bf-sec--sand .cbf-area { color: #24387E; }
.bf-sec--sand .cbf-area--prev { color: #56276F; }
.bf-sec--sand .cbf-area::before { box-shadow: none; }

/* ============================================================
   HERO — "BLACK FRIDAY" centralizado, descontos e fita com as condições
   ============================================================ */
.cbf-hero { padding: 46px 0 0; overflow: hidden; }
.cbf-hero-in { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; }

/* termos fiscais gigantes ao fundo (parallax no cbf.js) */
.cbf-termos {
  position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden;
  -webkit-mask-image: radial-gradient(75% 70% at 50% 42%, #000 35%, transparent 100%); mask-image: radial-gradient(75% 70% at 50% 42%, #000 35%, transparent 100%);
}
.cbf-termo {
  position: absolute; font-family: var(--bf-display); font-weight: 900; line-height: 1; letter-spacing: -.04em; white-space: nowrap;
  font-size: clamp(4.2rem, 10vw, 9.5rem); color: rgba(150,160,235,.05); filter: blur(1.2px);
}
.cbf-termo--1 { top: 3%;  left: -2%;  transform: rotate(-7deg); }
.cbf-termo--2 { top: 1%;  right: 4%;  transform: rotate(5deg); font-size: clamp(3.4rem, 7vw, 6.8rem); }
.cbf-termo--3 { top: 30%; left: 6%;   transform: rotate(4deg); font-size: clamp(3rem, 6vw, 5.6rem); }
.cbf-termo--4 { top: 26%; right: -3%; transform: rotate(-5deg); }
.cbf-termo--5 { top: 55%; left: -4%;  transform: rotate(-3deg); font-size: clamp(3.4rem, 7.5vw, 7rem); }
.cbf-termo--6 { top: 58%; right: 8%;  transform: rotate(6deg); font-size: clamp(3rem, 6vw, 5.8rem); }
.cbf-termo--7 { top: 80%; left: 22%;  transform: rotate(2deg); font-size: clamp(3rem, 6.4vw, 6rem); }
.cbf-termo--8 { top: 84%; right: 22%; transform: rotate(-4deg); font-size: clamp(2.8rem, 5.4vw, 5rem); }

.cbf-wordmark {
  margin: 0; display: flex; flex-direction: column; align-items: center;
  font-family: var(--bf-display); font-weight: 900; text-transform: uppercase;
  font-size: clamp(3.6rem, 9.2vw, 7.5rem); line-height: .84; letter-spacing: -.045em;
}
.cbf-wm-linha { display: block; overflow: hidden; padding: .03em .08em .07em; margin: -.03em 0; } /* máscara da subida das linhas (cbf.js) */
.cbf-wm-linha > span { display: block; width: max-content; } /* o degradê do texto só pinta dentro da caixa */
.cbf-wm-1 {
  color: #E9EBEF;
  background: linear-gradient(180deg, #FFFFFF 0%, #DADDE3 40%, #9A9FAA 56%, #CDD1D8 74%, #F1F2F4 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
/* 2ª linha no degradê da marca com um brilho que atravessa devagar (contorno em fonte variável mostra os traços internos) */
.cbf-wm-2 {
  color: #8378CD;
  background: linear-gradient(100deg, #6A82DA 0%, #8378CD 32%, #C8BDF3 50%, #9E6DC4 68%, #6A82DA 100%);
  background-size: 240% 100%; background-position: 0% 0;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  animation: cbfBrilho 8s ease-in-out infinite;
}
@keyframes cbfBrilho { 0%, 100% { background-position: 0% 0; } 50% { background-position: 100% 0; } }

.cbf-selo {
  display: inline-flex; align-items: center; gap: 10px; margin-top: 4px; padding: 10px 18px 10px 15px; border-radius: 999px;
  font-weight: 700; font-size: 14.5px; line-height: 1.3; color: #FFFFFF;
  background: var(--bf-grad); border: 1px solid rgba(140,134,216,.4);
  box-shadow: 0 0 0 6px rgba(131,120,205,.08), 0 18px 40px -20px rgba(67,28,88,.9);
}
.cbf-selo i { flex: none; width: 8px; height: 8px; border-radius: 50%; background: #B8B0F2; animation: cbfPulso 2s infinite; }
@keyframes cbfPulso { 0% { box-shadow: 0 0 0 0 rgba(184,176,242,.6); } 70% { box-shadow: 0 0 0 9px rgba(184,176,242,0); } 100% { box-shadow: 0 0 0 0 rgba(184,176,242,0); } }
.cbf-sub {
  max-width: 40ch; font-family: var(--bf-display); font-weight: 700; font-size: clamp(1.25rem, 2.1vw, 1.7rem);
  line-height: 1.3; letter-spacing: -.012em; color: var(--bf-ink); text-wrap: balance;
}

/* 4 blocos de desconto */
.cbf-descontos {
  list-style: none; margin: 12px 0 0; padding: 0; width: 100%; max-width: 1000px;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; perspective: 1200px;
}
.cbf-desc {
  position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; overflow: hidden; text-align: left;
  padding: 24px 22px 22px; border-radius: 18px; border: 1px solid rgba(140,134,216,.22);
  background: linear-gradient(160deg, rgba(22,40,95,.42), rgba(67,28,88,.3) 75%), rgba(13,14,11,.6);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 30px 60px -36px rgba(30,20,90,.9);
  transition: transform .35s var(--bf-ease), border-color .35s var(--bf-ease);
}
.cbf-desc::before { /* brilho no canto */
  content: ""; position: absolute; width: 170px; height: 170px; right: -64px; top: -78px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(closest-side, rgba(131,120,205,.3), transparent 70%);
}
.cbf-desc:hover { transform: translateY(-4px); border-color: rgba(140,134,216,.45); }
.cbf-desc-n {
  font-family: var(--bf-display); font-weight: 900; font-size: clamp(2.6rem, 4.3vw, 3.6rem); line-height: .95; letter-spacing: -.04em;
  font-variant-numeric: tabular-nums; color: #FFFFFF;
  background: linear-gradient(180deg, #FFFFFF 0%, #E6E3F8 55%, #ABA4E8 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.cbf-desc-leg { font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--bf-mut); }
.cbf-desc--destaque {
  border-color: rgba(140,134,216,.55);
  background: radial-gradient(90% 90% at 100% 0%, rgba(140,120,230,.28), transparent 60%), linear-gradient(160deg, rgba(38,52,140,.6), rgba(90,40,130,.5) 80%), rgba(13,14,11,.5);
  box-shadow: 0 0 0 1px rgba(140,134,216,.14), 0 30px 70px -30px rgba(67,28,88,1);
}
.cbf-desc--destaque .cbf-desc-leg { color: #E6E3F8; }

.cbf-info {
  list-style: none; margin: 4px 0 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 0;
  padding: 13px 22px; border-radius: 14px; border: 1px solid rgba(140,134,216,.22);
  background: linear-gradient(150deg, rgba(22,40,95,.34), rgba(67,28,88,.28) 70%), rgba(13,14,11,.55);
  font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--bf-ink);
}
.cbf-info li { display: inline-flex; align-items: center; }
.cbf-info li + li::before {
  content: ""; width: 6px; height: 6px; margin: 0 14px; border-radius: 50%; flex: none;
  background: #8C86D8; box-shadow: 0 0 9px 2px rgba(120,110,210,.55);
}
.cbf-hero-cta { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: 8px; }
.cbf-hero-nota { font-size: 13px; color: var(--bf-mut-2); }

/* fita com as condições cruzando o fim do hero (loop do bf.js) */
.cbf-fita-hero.bf-tarja { height: clamp(100px, 9vw, 136px); margin-top: 36px; background: none; z-index: 3; }
.cbf-fita-hero.bf-tarja::after { display: none; }
.cbf-fita-hero .bf-tape {
  top: 50%; margin-top: calc(clamp(32px, 3.5vw, 52px) / -2); transform: rotate(-2.4deg);
  border-top: 1px solid rgba(106,130,218,.55); border-bottom: 1px solid rgba(158,109,196,.55);
  box-shadow: 0 16px 34px rgba(0,0,0,.6), 0 0 44px -8px rgba(110,90,210,.5);
}

/* ============================================================
   AS 4 FRENTES
   ============================================================ */
.cbf-frente-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
/* subgrid: título, texto, "Modelo de receita" e imagem na mesma altura em todos os cards da linha */
@supports (grid-template-rows: subgrid) {
  .cbf-frentes .bf-frente { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 14px; }
}

/* ============================================================
   BÔNUS POR PLANO (tabela: linhas viram cartões; no celular, cartão por plano)
   ============================================================ */
.cbf-bonus-tab { width: 100%; border-collapse: separate; border-spacing: 0 12px; margin: -12px 0; table-layout: fixed; }
.cbf-bonus-tab thead th {
  padding: 0 22px 2px; text-align: left; vertical-align: bottom;
  font-family: var(--bf-mono); font-weight: 700; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: #6E6D64;
}
.cbf-bonus-tab thead th:first-child { width: 23%; }
.cbf-bonus-tab tbody th, .cbf-bonus-tab td {
  padding: 22px; vertical-align: middle; text-align: left; font-weight: 400;
  background: #FFFFFF; border-top: 1px solid #E2E0D6; border-bottom: 1px solid #E2E0D6;
}
.cbf-bonus-tab tbody th { border-left: 1px solid #E2E0D6; border-radius: 16px 0 0 16px; }
.cbf-bonus-tab td:last-child { border-right: 1px solid #E2E0D6; border-radius: 0 16px 16px 0; }
.cbf-bonus-tab td + td { box-shadow: inset 1px 0 0 #ECEAE1; } /* divisória entre as áreas */
.cbf-plano-nome { display: block; font-family: var(--bf-display); font-weight: 800; font-size: 1.28rem; line-height: 1.15; letter-spacing: -.015em; color: var(--bf-bg); }
.cbf-plano-usuarios { display: block; margin-top: 3px; font-size: 13px; font-weight: 600; color: #3B3896; }
.cbf-nivel { display: flex; gap: 4px; margin-top: 12px; }
.cbf-nivel i { width: 18px; height: 4px; border-radius: 99px; background: #E2E0D6; }
.cbf-nivel i.is-on { background: linear-gradient(90deg, #16285F, #3B3896 60%, #5E2A78); }
.cbf-bonus-cel { display: flex; align-items: center; gap: 14px; font-size: 14.5px; line-height: 1.55; color: #3A3A35; }
.cbf-bonus-cel strong { color: var(--bf-bg); font-weight: 700; }
.cbf-capa { flex: none; width: 44px; }
.cbf-capa picture { display: block; }
.cbf-capa-img { display: block; width: 44px; height: auto; border-radius: 2px 4px 4px 2px; transform: rotate(-3deg); box-shadow: 0 10px 18px -9px rgba(13,14,11,.55); }
/* topo da escada: Master com 3 usuários ou mais */
.cbf-bonus-tab .cbf-plano--topo th, .cbf-bonus-tab .cbf-plano--topo td { background: var(--bf-bg); border-color: var(--bf-bg); }
.cbf-plano--topo .cbf-plano-nome { color: var(--bf-ink); }
.cbf-plano--topo .cbf-plano-usuarios { color: #B4AEEC; }
.cbf-plano--topo .cbf-nivel i.is-on { background: var(--bf-grad-txt); }
.cbf-plano--topo .cbf-bonus-cel { color: var(--bf-mut); }
.cbf-plano--topo .cbf-bonus-cel strong { color: var(--bf-ink); }
.cbf-plano--topo td + td { box-shadow: inset 1px 0 0 rgba(255,255,255,.08); }
.cbf-bonus-tab .cbf-plano--topo th { background: linear-gradient(120deg, #16285F 0%, #26245F 60%, #2E1D45 100%); }

/* ============================================================
   CURSO FENT RCT
   ============================================================ */
.cbf-curso-head { display: flex; flex-direction: column; max-width: 760px; margin-bottom: 44px; }
.cbf-curso-head .bf-lead { margin-top: 18px; }
.cbf-logos { display: flex; align-items: center; gap: 16px; margin-bottom: 26px; }
.cbf-logos picture { display: block; }
.cbf-logo-fent { display: block; height: 28px; width: auto; }
.cbf-logo-verot { display: block; height: 30px; width: auto; }
.cbf-logos-mais { font-weight: 300; font-size: 24px; line-height: 1; color: var(--bf-mut-2); }
.cbf-curso-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: stretch; }
.cbf-curso-midia {
  position: relative; margin: 0; min-height: 380px; padding: 26px 28px; border-radius: 22px; overflow: hidden; isolation: isolate;
  display: flex; flex-direction: column; justify-content: flex-end;
  background: radial-gradient(80% 70% at 30% 18%, rgba(90,130,240,.5), transparent 70%), linear-gradient(150deg, #1D3DA6 0%, #2B2585 50%, #5A2B95 100%);
  box-shadow: 0 50px 90px -50px rgba(60,40,130,.8), inset 0 1px 0 rgba(255,255,255,.12);
}
.cbf-curso-img { position: absolute; inset: 26px 26px 78px; display: flex; align-items: center; justify-content: center; z-index: -1; }
.cbf-curso-img picture { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.cbf-curso-foto { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; filter: drop-shadow(0 30px 34px rgba(10,10,40,.5)); }
.cbf-curso-legenda { display: flex; align-items: center; gap: 12px; font-weight: 700; font-size: 15px; color: #FFFFFF; }
.cbf-logo-fent--sm { height: 17px; }
.cbf-curso-legenda span { padding-left: 12px; border-left: 1px solid rgba(255,255,255,.45); line-height: 1.2; }
.cbf-modulos { display: grid; grid-template-rows: 1fr 1fr; gap: 20px; }
.cbf-modulo {
  position: relative; display: flex; flex-direction: column; justify-content: center; gap: 10px; overflow: hidden;
  padding: 28px 28px 26px; border-radius: 20px; background: linear-gradient(180deg, var(--bf-bg-2), #10110D); border: 1px solid var(--bf-line);
}
.cbf-modulo::before { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 2px; background: linear-gradient(90deg, #3A55B8, #5E2A78 55%, transparent); }
.cbf-modulo-n {
  align-self: flex-start; font-family: var(--bf-mono); font-weight: 700; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase;
  color: #8378CD; background: var(--bf-grad-txt); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.cbf-modulo p { font-size: 15px; line-height: 1.65; color: var(--bf-mut); }
.cbf-pack {
  margin-top: 20px; padding: 28px 30px 24px; border-radius: 20px; border: 1px solid rgba(140,134,216,.24);
  background: linear-gradient(150deg, rgba(22,40,95,.34), rgba(67,28,88,.26) 70%), var(--bf-bg-2);
}
.cbf-pack-lista { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 28px; }
.cbf-pack-lista li { display: flex; align-items: flex-start; gap: 10px; font-size: 15px; font-weight: 600; line-height: 1.45; color: var(--bf-ink); }
.cbf-check {
  flex: none; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; margin-top: 1px;
  color: #FFFFFF; background: var(--bf-grad); border: 1px solid rgba(140,134,216,.4);
}
.cbf-pack-nota { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--bf-line); font-size: 13.5px; line-height: 1.6; color: var(--bf-mut-2); }
.cbf-pack-nota a { color: var(--bf-ink); text-underline-offset: 3px; }

/* ============================================================
   MENTORIAS COLETIVAS (fundo areia)
   ============================================================ */
.cbf-mentores { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.cbf-mentor { padding: 26px 28px 8px; border-radius: 22px; background: #FFFFFF; border: 1px solid #E2E0D6; box-shadow: 0 40px 70px -52px rgba(38,36,95,.5); }
.cbf-mentor-topo { display: flex; align-items: center; gap: 16px; padding-bottom: 20px; border-bottom: 1px solid #ECEAE1; }
.cbf-mentor-foto {
  flex: none; width: 74px; height: 74px; border-radius: 50%; overflow: hidden;
  background: radial-gradient(circle at 50% 30%, #2C55C9, #3B1F7A); box-shadow: 0 0 0 3px #FFFFFF, 0 0 0 4px rgba(59,56,150,.28);
}
.cbf-mentor-foto picture { display: block; width: 100%; height: 100%; }
.cbf-mentor-img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 10%; }
.cbf-mentor-nome { margin-top: 5px; font-family: var(--bf-display); font-weight: 800; font-size: 1.45rem; line-height: 1.15; letter-spacing: -.015em; color: var(--bf-bg); }
.cbf-encontros { list-style: none; margin: 0; padding: 0; }
.cbf-encontro { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 18px; padding: 22px 0; }
.cbf-encontro + .cbf-encontro { border-top: 1px dashed #DDDACE; }
.cbf-data {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; width: 64px; height: 74px; border-radius: 14px;
  color: #FFFFFF; background: var(--bf-grad); box-shadow: 0 14px 28px -14px rgba(38,36,95,.8), inset 0 1px 0 rgba(255,255,255,.14);
}
.cbf-data b { font-family: var(--bf-display); font-weight: 800; font-size: 1.65rem; line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.cbf-data span { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.cbf-data i { font-style: normal; font-size: 9.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; opacity: .72; }
.cbf-encontro-rot { display: block; font-family: var(--bf-mono); font-weight: 700; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #24387E; }
.cbf-mentor--prev .cbf-encontro-rot { color: #56276F; }
.cbf-encontro-tit { margin: 6px 0 0; font-family: var(--bf-display); font-weight: 700; font-size: 1.08rem; line-height: 1.35; letter-spacing: -.01em; color: var(--bf-bg); }
.cbf-topicos { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.cbf-topicos li { position: relative; padding-left: 18px; font-size: 14.5px; line-height: 1.55; color: #3A3A35; }
.cbf-topicos li::before { content: ""; position: absolute; left: 1px; top: .6em; width: 7px; height: 7px; border-radius: 50%; border: 1.5px solid #3B3896; }
.cbf-mentor--prev .cbf-topicos li::before { border-color: #6B3591; }

/* ============================================================
   MENTORIA PARTICULAR
   ============================================================ */
.cbf-passos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.cbf-passo {
  position: relative; display: flex; flex-direction: column; gap: 10px; padding: 30px 28px 28px; border-radius: 20px;
  background: linear-gradient(180deg, var(--bf-bg-2), #10110D); border: 1px solid var(--bf-line);
}
.cbf-passo:first-child::after { /* seta entre os encontros */
  content: ""; position: absolute; top: 50%; right: -17px; width: 11px; height: 11px; margin-top: -6px; z-index: 2;
  border-top: 2px solid #8C86D8; border-right: 2px solid #8C86D8; transform: rotate(45deg);
}
.cbf-passo-n {
  align-self: flex-start; font-family: var(--bf-mono); font-weight: 800; font-size: 40px; line-height: 1; letter-spacing: -.02em;
  color: #8378CD; background: var(--bf-grad-txt); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.cbf-passo-rot { font-family: var(--bf-mono); font-weight: 700; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--bf-mut-2); }
.cbf-passo p { font-size: 15px; line-height: 1.65; color: var(--bf-mut); }
.cbf-conduzida {
  margin-top: 22px; display: flex; align-items: center; gap: 20px; padding: 18px 26px 18px 20px; border-radius: 16px;
  border: 1px solid rgba(140,134,216,.26); border-left: 3px solid #8C86D8;
  background: linear-gradient(90deg, rgba(67,28,88,.36), rgba(22,40,95,.18) 60%, rgba(22,40,95,.06));
}
.cbf-conduzida .bf-host-img { border-color: #1B1726; }
.cbf-conduzida p { font-size: 1.02rem; font-weight: 600; line-height: 1.55; color: var(--bf-ink); }

/* ============================================================
   FORMULÁRIO (#condicoes): texto à esquerda + quiz animado (dg.css) à direita
   ============================================================ */
.cbf-form-sec { border-top: 1px solid var(--bf-line); overflow: clip; isolation: isolate; }
.cbf-form-sec::before, .cbf-form-sec::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; }
.cbf-form-sec::before { width: 1100px; height: 1100px; right: -420px; top: -320px; background: radial-gradient(closest-side, rgba(30,50,140,.3), rgba(30,50,140,0) 72%); }
.cbf-form-sec::after { width: 900px; height: 900px; left: -440px; bottom: -480px; background: radial-gradient(closest-side, rgba(80,30,110,.3), rgba(80,30,110,0) 70%); }
.cbf-form-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 470px); gap: 64px; align-items: start; }
.cbf-form-txt { position: sticky; top: calc(var(--header-h) + 40px); display: flex; flex-direction: column; }
.cbf-form-prosa { display: flex; flex-direction: column; gap: 14px; margin-top: 22px; font-size: 1.02rem; line-height: 1.7; color: var(--bf-mut); max-width: 56ch; }
.cbf-form-prosa strong { color: var(--bf-ink); font-weight: 700; }
.cbf-mini-desc { list-style: none; margin: 30px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; max-width: 520px; }
.cbf-mini-desc li { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 14px; border: 1px solid var(--bf-line); background: rgba(255,255,255,.02); }
.cbf-mini-desc b {
  flex: none; min-width: 2.6em; font-family: var(--bf-display); font-weight: 900; font-size: 1.55rem; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums;
  color: #8378CD; background: var(--bf-grad-txt); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.cbf-mini-desc span { font-size: 13px; font-weight: 600; line-height: 1.3; color: var(--bf-mut); }
.cbf-destaque {
  margin-top: 16px; max-width: 520px; display: flex; align-items: center; gap: 14px; padding: 14px 18px 14px 14px; border-radius: 14px;
  border: 1px solid rgba(140,134,216,.26); border-left: 3px solid #8C86D8;
  background: linear-gradient(90deg, rgba(67,28,88,.34), rgba(22,40,95,.12));
  font-weight: 600; font-size: 15px; line-height: 1.5; color: var(--bf-ink);
}
.cbf-destaque-ico {
  flex: none; width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center;
  color: #FFFFFF; background: var(--bf-grad); border: 1px solid rgba(140,134,216,.45);
}

/* card do quiz: frase de abertura + checkbox (pergunta de várias respostas) */
.cbf-quiz-intro {
  display: flex; align-items: center; gap: 10px; padding-bottom: 14px; border-bottom: 1px solid #E2E0D6;
  font-family: var(--bf-display); font-weight: 800; font-size: 1rem; line-height: 1.35; letter-spacing: -.005em; color: var(--bf-bg);
}
.cbf-quiz-intro::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--bf-grad); box-shadow: 0 0 0 4px rgba(59,56,150,.14); }
.cbf-op--multi .dg-op-marca { border-radius: 6px; }
.cbf-op--multi:has(input:checked) .dg-op-marca {
  border-color: #3B3896; box-shadow: 0 0 0 4px rgba(59,56,150,.14);
  background: #3B3896 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 13px no-repeat;
}
.cbf-quiz .dg-pergunta { font-size: 1.24rem; }
.cbf-conhecido {
  padding: 11px 14px; border-radius: 12px; background: #FFFFFF; border: 1px solid #D9D5F2;
  font-size: 13.5px; font-weight: 600; line-height: 1.5; color: #2B2A6E;
}
.cbf-conhecido[hidden] { display: none; }
.cbf-legenda { margin-top: -8px; font-size: 12px; color: #6E6D64; }
.cbf-form-ok .bf-btn { margin-top: 4px; }
.cbf-form-ok .bf-btn svg { flex: none; }

/* ============================================================
   CHAMADA FINAL + RODAPÉ
   ============================================================ */
.cbf-cta-whats { font-size: 14px; font-weight: 600; color: rgba(243,242,236,.86); text-decoration: underline; text-underline-offset: 3px; }
.cbf-cta-whats:hover { color: #FFFFFF; }
.cbf-copy { font-size: 13px; color: var(--bf-mut-2); }

/* ============================================================
   RESPONSIVO
   ============================================================ */
@media (max-width: 1100px) {
  .cbf-descontos { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 640px; }
}
@media (max-width: 980px) {
  .cbf-curso-grid, .cbf-mentores { grid-template-columns: minmax(0, 1fr); }
  .cbf-modulos { grid-template-rows: none; }
  .cbf-form-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .cbf-form-txt { position: static; }
  .cbf-mini-desc { display: none; } /* os descontos já estão no topo da página */
}
@media (max-width: 760px) {
  .cbf-passos { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .cbf-passo:first-child::after { top: auto; bottom: -19px; right: 50%; margin: 0 -6px 0 0; transform: rotate(135deg); }
  /* tabela de bônus: um cartão por plano, com o rótulo da área antes de cada bônus */
  .cbf-bonus-tab, .cbf-bonus-tab tbody, .cbf-bonus-tab tr, .cbf-bonus-tab th, .cbf-bonus-tab td { display: block; width: auto; }
  .cbf-bonus-tab { margin: 0; border-spacing: 0; }
  .cbf-bonus-tab thead { display: none; }
  .cbf-bonus-tab tr { margin-bottom: 12px; border-radius: 16px; overflow: hidden; border: 1px solid #E2E0D6; background: #FFFFFF; }
  .cbf-bonus-tab tbody th, .cbf-bonus-tab td { border: 0 !important; border-radius: 0 !important; padding: 16px 18px; box-shadow: none !important; }
  .cbf-bonus-tab tbody th { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; padding-bottom: 10px; }
  .cbf-nivel { margin: 0 0 0 auto; align-self: center; }
  .cbf-bonus-tab td { padding-top: 12px; border-top: 1px solid #ECEAE1 !important; }
  .cbf-bonus-tab td::before {
    content: attr(data-rotulo); display: block; margin-bottom: 6px;
    font-family: var(--bf-mono); font-weight: 700; font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: #3B3896;
  }
  .cbf-plano--topo { background: var(--bf-bg) !important; border-color: var(--bf-bg) !important; }
  .cbf-plano--topo td { border-top-color: rgba(255,255,255,.08) !important; }
  .cbf-plano--topo td::before { color: #B4AEEC; }
}
@media (max-width: 640px) {
  .cbf-hero { padding-top: 40px; }
  .cbf-hero-in { gap: 18px; }
  .cbf-wordmark { font-size: calc((100vw - 40px) / 4.6); }
  .cbf-selo { font-size: 13px; padding: 9px 14px 9px 12px; text-align: left; }
  .cbf-sub { font-size: 1.16rem; }
  .cbf-descontos { gap: 10px; }
  .cbf-desc { padding: 18px 16px 16px; gap: 6px; }
  .cbf-desc-n { font-size: 2.35rem; }
  .cbf-desc-leg { font-size: 12.5px; }
  .cbf-info { flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px 18px; text-align: left; }
  .cbf-info li::before, .cbf-info li + li::before { content: ""; width: 6px; height: 6px; margin: 0 12px 0 0; border-radius: 50%; flex: none; background: #8C86D8; box-shadow: 0 0 9px 2px rgba(120,110,210,.55); }
  .cbf-hero-cta { width: 100%; }
  .cbf-hero-cta .bf-btn { width: 100%; }
  .cbf-fita-hero.bf-tarja { margin-top: 24px; }
  .cbf-termo { font-size: 4.2rem !important; }
  .cbf-bonus-cel { font-size: 14px; }
  .cbf-curso-midia { min-height: 300px; padding: 20px 22px; }
  .cbf-curso-img { inset: 20px 18px 66px; }
  .cbf-pack { padding: 24px 20px 20px; }
  .cbf-pack-lista { grid-template-columns: minmax(0, 1fr); }
  .cbf-mentor { padding: 22px 18px 4px; }
  .cbf-mentor-foto { width: 62px; height: 62px; }
  .cbf-mentor-nome { font-size: 1.3rem; }
  .cbf-encontro { grid-template-columns: 54px minmax(0, 1fr); gap: 14px; }
  .cbf-data { width: 54px; height: 64px; }
  .cbf-data b { font-size: 1.4rem; }
  .cbf-passo { padding: 24px 20px 22px; }
  .cbf-conduzida { flex-direction: column; align-items: flex-start; gap: 12px; padding: 16px 18px; }
  .cbf-destaque { font-size: 14px; }
  .cbf-quiz .dg-pergunta { font-size: 1.12rem; }
}

@media (prefers-reduced-motion: reduce) {
  .cbf-wm-2, .cbf-selo i { animation: none; }
  .cbf-desc { transition: none; }
}
