/* ==========================================================================
   TEMA ESCURO do site inteiro (carregado por ultimo: inverte as variaveis e os
   fundos claros herdados). Identidade: preto-esverdeado + lima #C4FF00.
   ========================================================================== */
:root {
  color-scheme: dark;
  --ink: #f1f5ec;
  --ink-2: #ccd6c6;
  --muted: #6f7a6b;
  --muted-2: #98a493;
  --line: rgba(255, 255, 255, .08);
  --line-2: rgba(255, 255, 255, .13);
  --bg: #0a0d09;
  --card: #11150e;
  --card-soft: #151a12;
  --purple: #C4FF00;
  --purple-2: #C4FF00;
  --grad-soft: linear-gradient(100deg, rgba(196, 255, 0, .18), rgba(196, 255, 0, .08));
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 14px rgba(0, 0, 0, .35);
  --shadow: 0 10px 30px rgba(0, 0, 0, .5), 0 2px 8px rgba(0, 0, 0, .35);
  --shadow-lg: 0 30px 70px rgba(0, 0, 0, .6), 0 8px 24px rgba(0, 0, 0, .4);
}
html { background: #0a0d09; }
body { background: #0a0d09; color: var(--ink); }
/* pontinhos claros e brilhos lima bem sutis */
body::after { background-image: radial-gradient(circle, rgba(255, 255, 255, .075) 1.1px, transparent 1.4px); }
body::before {
  background:
    radial-gradient(760px 620px at 4% 3%, rgba(196, 255, 0, .13), transparent 66%),
    radial-gradient(720px 640px at 96% 2%, rgba(120, 190, 0, .12), transparent 66%),
    radial-gradient(640px 580px at 50% 12%, rgba(196, 255, 0, .06), transparent 68%),
    radial-gradient(680px 620px at 97% 36%, rgba(196, 255, 0, .07), transparent 66%),
    radial-gradient(620px 580px at 2% 46%, rgba(120, 190, 0, .08), transparent 66%),
    radial-gradient(680px 620px at 94% 62%, rgba(196, 255, 0, .07), transparent 66%),
    radial-gradient(620px 580px at 6% 72%, rgba(120, 190, 0, .07), transparent 66%),
    radial-gradient(700px 620px at 96% 96%, rgba(196, 255, 0, .09), transparent 66%);
}
.eyebrow { color: #101300; }

/* menu */
.nav { background: rgba(14, 18, 12, .78); border-color: var(--line-2); box-shadow: 0 10px 34px rgba(0, 0, 0, .55); }
.nav-toggle span { background: var(--ink); }
.nav-links a { color: var(--ink-2); }
.nav-links a:hover { color: #fff; }
@media (max-width: 900px) {
  .nav.open .nav-links { background: #11150e; border-color: var(--line-2); box-shadow: 0 20px 44px rgba(0, 0, 0, .6); }
}

/* botoes */
.btn-ghost, .btn-soft { background: #151a12; color: var(--ink); border-color: var(--line-2); box-shadow: none; }
.btn-ghost:hover, .btn-soft:hover { background: #1b2117; border-color: rgba(196, 255, 0, .45); }
.btn-grad { box-shadow: 0 8px 28px rgba(196, 255, 0, .22); }
.btn-grad:hover { box-shadow: 0 14px 38px rgba(196, 255, 0, .32); }

/* cartoes e paineis */
.feat-card { background: var(--card); border-color: var(--line-2); box-shadow: none; }
.feat-card:hover .feat-ic-photo { box-shadow: 0 34px 60px rgba(0, 0, 0, .7); }
.feat-panel { background: var(--card-soft); border: 1px solid var(--line); }
.feat-panel h4 { color: #C4FF00; }
.feat-chip, .float-chip, .hero-app .hchip { background: #151a12; color: var(--ink); box-shadow: 0 10px 30px rgba(0, 0, 0, .55), inset 0 0 0 1px var(--line-2); }
.feat-chip .fc-ic, .float-chip svg, .hero-app .hchip .ic { color: #C4FF00; }
.feat-chip .fc-chev { color: var(--muted-2); }
.feat-chip.active, .float-chip.grad, .hero-app .hchip.grad { background: var(--grad); color: #101300; box-shadow: 0 10px 30px rgba(196, 255, 0, .25); }
.feat-chip.active .fc-ic, .feat-chip.active .fc-chev, .float-chip.grad svg, .hero-app .hchip.grad .ic { color: #101300; }
.plat-tab { background: #151a12; color: var(--ink-2); border-color: var(--line-2); box-shadow: none; }
.plat-tab .ic { color: #C4FF00; }
.plat-tab.on { background: var(--grad); color: #101300; border-color: transparent; box-shadow: 0 8px 26px rgba(196, 255, 0, .25); }
.plat-tab.on .ic { color: #101300; }
.plat-cap strong { color: #fff; }

/* mockups em cima do fundo escuro: contorno e brilho lima */
.appwin { box-shadow: 0 40px 100px rgba(0, 0, 0, .7), 0 0 90px rgba(196, 255, 0, .07), 0 0 0 1px rgba(255, 255, 255, .12); }
.cphone { filter: drop-shadow(0 30px 50px rgba(0, 0, 0, .65)) drop-shadow(0 0 34px rgba(196, 255, 0, .10)); }
.mockup-img { height: auto; filter: drop-shadow(0 30px 50px rgba(0, 0, 0, .65)) drop-shadow(0 0 34px rgba(196, 255, 0, .10)); }

/* planos */
.trial-banner { background: rgba(196, 255, 0, .09); border-color: rgba(196, 255, 0, .32); color: var(--ink-2); }
.trial-banner strong { color: #C4FF00; }
.plans4 .plan:not(.highlight):not(.popular) { background: var(--card); border-color: var(--line-2); box-shadow: none; }
.plans4 .plan.popular { background-image: linear-gradient(#182110, #182110), var(--grad); box-shadow: 0 24px 60px rgba(196, 255, 0, .16); }
.plans4 .btn-soft { background: #1a2016; }
.pf-ic { background: rgba(196, 255, 0, .12); color: #C4FF00; }
.cs-n { background: rgba(196, 255, 0, .14); color: #C4FF00; }
.plan-badge { box-shadow: 0 6px 20px rgba(196, 255, 0, .3); }

/* faq e rodape */
.faq { background: var(--card); border-color: var(--line-2); box-shadow: none; }
.faq-a a { color: #C4FF00; }
.footer { border-top-color: var(--line); }
.footer-bottom { border-top-color: var(--line); }

/* placeholders de imagem (SVG) mais discretos no escuro */
.feat-ic-photo img, .feat-mascot-img, .faq-mascot-img, .download-phone img { filter: none; }
.faq-mascot-img { filter: drop-shadow(0 20px 34px rgba(0, 0, 0, .6)); }
.feat-mascot-img { filter: drop-shadow(0 24px 40px rgba(0, 0, 0, .6)); }
.hero-badge img { filter: drop-shadow(0 20px 50px rgba(196, 255, 0, .18)); }

/* secoes escuras dedicadas: como agora todo o site e escuro, elas so ganham a grade para dar textura */
#plantao, #calculadora { background: #070906; }

.feat-mascot-img { height: auto; filter: drop-shadow(0 24px 50px rgba(196, 255, 0, .10)); }

/* Baloes da secao Recursos: soltos e levemente inclinados, encaixados nos vaos da silhueta do robo
   (cantos superiores e bordas), sem cobrir cara, logos, mao nem notebook */
@keyframes chip-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
.feat-chip { animation: chip-bob 4.6s ease-in-out infinite; }
.feat-chip:hover { transform: none; }
@media (min-width: 561px) {
  .feat-mascot-img { width: min(560px, 92%); }
  .fc1 { top: 6%;  left: -4%;  right: auto; bottom: auto; rotate: -3deg; }
  .fc2 { top: 13%; right: -1%; left: auto;  bottom: auto; rotate: 2deg; }
  .fc3 { top: 27%; left: -14%; right: auto; bottom: auto; rotate: 2.5deg; }
  .fc4 { top: 25%; right: -9%; left: auto;  bottom: auto; rotate: -2.5deg; }
  .fc5 { bottom: 1%; left: 2%; top: auto; right: auto; rotate: 2deg; }
  .fc6 { bottom: -1%; right: -2%; top: auto; left: auto; rotate: -3deg; }
}
@media (max-width: 560px) { .feat-mascot-img { width: 76%; } }

/* Interrogacao do FAQ: flutua igual ao logo do topo (sobe e desce com leve inclinacao) */
.faq-mascot-img { width: auto; height: auto; max-width: min(300px, 100%); max-height: 540px; animation: badge-float 3.6s ease-in-out .5s infinite; filter: drop-shadow(0 24px 40px rgba(0, 0, 0, .6)) drop-shadow(0 0 40px rgba(196, 255, 0, .16)); }
@media (prefers-reduced-motion: reduce) { .faq-mascot-img { animation: none; } }

/* Titulo do hero: o texto do destaque ("E venda.") alinha com o "A" de "Atenda."; o bloco verde pendura um pouco para a esquerda */
.hero h1 .grad-text { margin-left: -.16em; margin-right: 0; white-space: nowrap; }
@media (max-width: 780px) { .hero h1 .grad-text { margin: 0; } }

/* DESEMPENHO: os fundos (grade de pontos e brilhos) eram camadas da altura da pagina inteira (~9.000 px) e
   eram repintados a cada quadro de qualquer animacao (ex.: abrir uma pergunta do FAQ = 22 quadros travados em 78).
   Agora sao camadas fixas do tamanho da tela: pintadas uma vez, sem custo nas animacoes. Medido: 0 quadros lentos. */
body::before, body::after { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; height: auto !important; }
body::before {
  background:
    radial-gradient(720px 560px at 4% 2%, rgba(196, 255, 0, .12), transparent 66%),
    radial-gradient(680px 560px at 96% 4%, rgba(120, 190, 0, .11), transparent 66%),
    radial-gradient(760px 520px at 50% 105%, rgba(196, 255, 0, .08), transparent 68%),
    radial-gradient(560px 520px at 100% 62%, rgba(196, 255, 0, .06), transparent 66%),
    radial-gradient(560px 520px at 0% 70%, rgba(120, 190, 0, .06), transparent 66%);
}

/* 3 planos: colunas centralizadas; nota do que e uma instancia */
.plans4 { grid-template-columns: repeat(3, 1fr); max-width: 960px; }
.inst-note { text-align: center; color: var(--muted-2); font-size: 13.5px; margin: 22px auto 0; max-width: 620px; }
@media (max-width: 1000px) { .plans4 { grid-template-columns: repeat(2, 1fr); max-width: 640px; } }
@media (max-width: 720px) { .plans4 { grid-template-columns: 1fr; max-width: 380px; } }

/* banner de 7 dias: a frase de apoio fica sempre na linha de baixo */
.trial-banner small { display: block; margin-top: 6px; font-size: 13.5px; }

/* Secao "Feito para quem vive de atender e vender": 5 cards, 3 em cima e 2 centralizados embaixo */

/* Desktop: os 5 cards lado a lado numa unica fileira (a secao ganha um pouco mais de largura) */
@media (min-width: 1180px) {
  #publico .container { max-width: 1320px; }
    #publico .feat-card { flex: 1 1 0; padding: 22px 18px 26px; }
  #publico .feat-ic-photo { width: 168px; height: 168px; margin: -84px auto 16px; border-radius: 22px; }
  #publico .feat-card h3 { font-size: 15.5px; }
  #publico .feat-card p { font-size: 13.5px; line-height: 1.5; }
}

/* os baloes de Recursos podem passar da borda em telas intermediarias: corta o excesso em vez de criar rolagem lateral */
#recursos { overflow-x: clip; }

/* Larguras intermediarias (notebooks pequenos): nada passa da borda da tela */
.feat-grid > * { min-width: 0; }
.feat-ic-photo-wide { width: min(320px, 100%); height: auto; aspect-ratio: 16 / 9; }
#como, #problema { overflow-x: clip; }

/* "Feito para quem vive de atender e vender": desktop = 5 lado a lado; abaixo de 1180px = faixa horizontal deslizavel (arrasta com o dedo) */
#publico .feat-grid { display: flex; flex-wrap: nowrap; gap: 16px; margin-top: 0; padding: 104px 24px 14px; margin-inline: -24px;
  overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-padding-inline: 24px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
#publico .feat-grid::-webkit-scrollbar { display: none; }
#publico .feat-card { flex: 0 0 min(290px, 74vw); scroll-snap-align: start; min-width: 0; }
@media (min-width: 1180px) {
  #publico .feat-grid { padding: 84px 0 0; margin-inline: 0; overflow: visible; scroll-snap-type: none; }
  #publico .feat-card { flex: 1 1 0; }
}

/* Cards do publico: titulos com 2 linhas reservadas (as descricoes comecam todas na mesma altura), titulo centralizado e texto justificado */
#publico .feat-card h3 { display: flex; align-items: center; justify-content: center; text-align: center; line-height: 1.2; min-height: 2.4em; margin-bottom: 12px; }
#publico .feat-card p { text-align: justify; text-justify: inter-word; hyphens: manual; word-spacing: -0.02em; }

/* ALINHAMENTO AO MENU: o menu foi alargado para a largura do conteudo das secoes (1112px) e o hero, o mockup e os blocos largos usam a mesma medida */
.nav { max-width: 1112px; }
.hero .container { max-width: 1160px; }
.hero-flow { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(24px, 4vw, 56px); }
.hero-badge img { width: clamp(220px, 26vw, 360px); height: clamp(220px, 26vw, 360px); margin-inline: auto; }
.hero h1 { max-width: none; }
.hero p.lead { max-width: none; text-align: justify; text-justify: inter-word; }
.hero-app { max-width: 1112px; }
.plat-stage { max-width: 1112px; }
.plans4 { max-width: 1112px; }
.incl { max-width: 1112px; }
.faq-flow { max-width: 1112px; }
@media (min-width: 1180px) { #publico .container { max-width: 1160px; } }
@media (max-width: 780px) { .hero-flow { grid-template-columns: 1fr; } .hero p.lead { text-align: center; } }

/* MENU: logo a esquerda e botoes a direita, ambos com o mesmo respiro da borda; links centralizados no meio */
.nav { padding: 12px 24px; gap: 20px; justify-content: space-between; }
.nav .brand { margin-right: 0; }
.nav-cta { margin-left: 0; justify-content: flex-end; }
@media (min-width: 901px) { .nav-links { margin-inline: auto; gap: 26px; } }

/* LARGURA DO SITE: todo o site usa a largura da secao "Feito para quem vive de atender e vender" (conteudo de 1272px); menu, hero, mockups e secoes ficam nas mesmas bordas */
:root { --maxw: 1320px; }
.nav { max-width: 1272px; }
.hero .container { max-width: 1320px; }
.hero-app, .plat-stage, .plans4, .incl, .faq-flow { max-width: 1272px; }
@media (min-width: 1180px) { #publico .container { max-width: 1320px; } }

/* nav-wrap alinhado: o menu usa o mesmo respiro lateral (24px) do conteudo das secoes */
.nav-wrap { padding-inline: 24px; }

/* PLATAFORMA: titulo e frase de apoio em linha unica no desktop (no celular quebram para caber) */
@media (min-width: 900px) {
  #plataforma .section-head { max-width: none; }
  #plataforma .section-head h2 { white-space: nowrap; font-size: clamp(30px, 3.9vw, 50px); }
  #plataforma .section-head p { white-space: nowrap; max-width: none; }
}

/* BALOES DO CELULAR (Como funciona): todos encostam na borda do aparelho, entrando um pouco sobre ele (como o "Resposta em segundos"),
   alternando esquerda e direita; as posicoes partem do centro do bloco (o celular tem 288px de largura) */
@media (min-width: 901px) {
  .como-visual .fc-2 { top: 350px; bottom: auto; left: auto; right: calc(50% + 144px - 80px); }
  .como-visual .fc-4 { top: 32%; right: auto; left: calc(50% + 144px - 62px); }
  .como-visual .fc-3 { top: 80%; right: auto; left: calc(50% + 144px - 70px); }
}

/* PROBLEMA: imagens ocupam quase toda a largura do card (menos espaco lateral sobrando) e o texto fica mais afastado da imagem */
#problema .feat-ic-photo-wide { width: calc(100% - 24px); max-width: none; height: auto; aspect-ratio: 16 / 9; margin: -84px auto 34px; }
#problema .feat-grid { margin-top: 124px; }
#problema .feat-card { padding: 0 24px 36px; }
#problema .feat-card p { font-size: 16px; line-height: 1.6; }
@media (max-width: 560px) { #problema .feat-ic-photo-wide { margin: -70px auto 26px; } #problema .feat-grid { margin-top: 96px; } }

/* HERO: mais respiro entre o bloco de texto e o mockup da plataforma */
.hero-app { margin-top: clamp(64px, 8vw, 112px); }

/* NOTA DE INSTANCIA: uma linha so no desktop (no celular quebra para caber) */
@media (min-width: 760px) { .inst-note { max-width: none; white-space: nowrap; } }

/* EM TODOS OS PLANOS: cada item vira um card (mesmo estilo dos demais), com altura igual e alinhado as bordas do site */
.incl { max-width: 1272px; margin-top: 56px; }
.incl h3 { font-size: clamp(22px, 2.6vw, 30px); margin-bottom: 28px; }
.incl-list { grid-template-columns: repeat(3, 1fr); gap: 16px; }
.incl-list li { align-items: center; gap: 16px; padding: 20px 22px; background: var(--card); border: 1px solid var(--line-2); border-radius: 20px; transition: transform .2s ease, border-color .2s ease; }
.incl-list li:hover { transform: translateY(-3px); border-color: rgba(196, 255, 0, .4); }
.incl-list .pf-ic { width: 48px; height: 48px; border-radius: 14px; flex: none; }
.incl-list h4 { font-size: 15.5px; }
.incl-list p { font-size: 14px; }
.incl-pay { margin-top: 24px; }
@media (max-width: 900px) { .incl-list { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .incl-list { grid-template-columns: 1fr; } }

/* HERO: respiro inferior (os baloes ao redor do logo foram removidos) */
.hero { padding-bottom: clamp(40px, 6vw, 84px); }

/* RELOGIO SEM INTERACAO: o mouse/dedo nao mexe no ponteiro (ele so varre sozinho) */
.plt-dial { cursor: default; pointer-events: none; touch-action: auto; }

/* PUBLICO: imagens quase na largura do card (sobra ~10px de cada lado); a imagem continua saindo por cima do card pela metade da altura */
#publico .feat-ic-photo { width: calc(100% + 16px); height: auto; aspect-ratio: 1 / 1; margin: calc(-0.5 * (100% + 16px)) -8px 18px; }
#publico .feat-grid { padding-top: 140px; }
@media (min-width: 1180px) { #publico .feat-grid { padding-top: 124px; } }

/* relogio: sem o ponto central (hub) */
.plt-dial .hub { display: none; }

/* PROBLEMA 2: imagem quase na largura do card (sobra ~8px de cada lado), saindo por cima pela metade da altura; texto centralizado */
#problema .feat-ic-photo-wide { width: calc(100% + 16px); max-width: none; height: auto; aspect-ratio: 16 / 9; margin: calc(-0.28125 * (100% + 16px)) -8px 30px; }
#problema .feat-card p { text-align: center; }
#problema .feat-grid { margin-top: 156px; }
@media (max-width: 900px) { #problema .feat-grid { row-gap: 128px; } }
@media (max-width: 560px) { #problema .feat-grid { margin-top: 128px; row-gap: 104px; } }

/* FAQ: titulo em linha unica (no celular estreito quebra para caber) */
@media (min-width: 561px) { .faq-head-text h2 { white-space: nowrap; } }
@media (max-width: 560px) { .faq-head-text h2 { font-size: clamp(26px, 8vw, 34px); } }

/* FAQ: caixa das perguntas ate a margem lateral direita (alinhada ao menu e as demais secoes) */
.faq { max-width: none; width: 100%; }

/* cards do publico: evita palavra sozinha na ultima linha */
#publico .feat-card p { text-wrap: pretty; }

/* PROBLEMA: destaque nos textos (mais claros, maiores e com a palavra-chave em lima) */
#problema .feat-card p { color: #e9efe3; font-size: 18px; font-weight: 500; line-height: 1.5; }
#problema .feat-card p mark { background: none; color: #C4FF00; font-weight: 700; }
@media (max-width: 560px) { #problema .feat-card p { font-size: 17px; } }

/* PUBLICO: fotos trocadas por icones SVG em tiles (o dono achou as fotos feias).
   Tile quadrado com brilho lima suave atras, icone de traco centralizado; card
   fica mais baixo/compacto porque o icone vive dentro do padding normal do
   card (nao "flutua" para fora como a foto flutuava). */
#publico .feat-ic-tile {
  width: 68px; height: 68px; margin: 0 auto 18px; border-radius: 20px;
  background: rgba(196, 255, 0, .08); border: 1px solid rgba(196, 255, 0, .22);
  display: grid; place-items: center; position: relative; z-index: 1;
  transition: background .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
#publico .feat-ic-tile::before {
  content: ""; position: absolute; inset: -20px; z-index: -1; border-radius: 50%;
  background: radial-gradient(circle, rgba(196, 255, 0, .16), transparent 70%);
}
#publico .feat-ic-tile svg {
  width: 32px; height: 32px; color: #C4FF00; fill: none; stroke: currentColor;
  stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round;
}
#publico .feat-card:hover .feat-ic-tile {
  background: rgba(196, 255, 0, .13); border-color: rgba(196, 255, 0, .38);
  box-shadow: 0 14px 30px rgba(196, 255, 0, .16); transform: translateY(-3px);
}
@media (prefers-reduced-motion: reduce) {
  #publico .feat-ic-tile { transition: none; }
  #publico .feat-card:hover .feat-ic-tile { transform: none; }
}

/* PUBLICO: sem a foto flutuando pra fora do card, o respiro extra no topo da
   grade (antes calibrado pra caber a foto saindo -50% pra cima) vira vao
   vazio; volta a um respiro normal em todas as larguras. */
#publico .feat-grid { padding-top: 20px; }
@media (min-width: 1180px) { #publico .feat-grid { padding-top: 8px; } }

/* MONTADOR DE AVULSOS: cartao Classic com steppers/checkbox e total ao vivo (agente b2, 25/09/2026) */
.plans4.plans-2col { grid-template-columns: repeat(2, 1fr); max-width: 720px; }
@media (max-width: 720px) { .plans4.plans-2col { grid-template-columns: 1fr; max-width: 400px; } }

.p-addons { margin: 18px 0; display: flex; flex-direction: column; gap: 10px; }
.p-addons-title { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted-2); display: flex; align-items: center; gap: 8px; margin: 0 0 2px; }
.p-addons-hint { font-size: 9.5px; padding: 2px 8px; border-radius: 999px; border: 1px dashed var(--line-2); color: var(--muted-2); text-transform: none; letter-spacing: 0; }

.addon-opt { position: relative; display: grid; grid-template-columns: 30px 1fr auto; grid-template-areas: "icon info ctrl"; align-items: center; column-gap: 10px; row-gap: 6px; padding: 12px 12px 10px; border: 1px dashed var(--line-2); border-radius: 14px; background: rgba(255, 255, 255, .02); }
.addon-tag { position: absolute; top: -9px; left: 10px; background: var(--bg); padding: 0 6px; font-size: 9px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted-2); border: 1px dashed var(--line-2); border-radius: 999px; line-height: 1.6; }
.addon-tag-best { color: #101300; background: #C4FF00; border-color: #C4FF00; font-weight: 700; }
.addon-tag-locked { opacity: .75; }
.addon-ic { grid-area: icon; width: 30px; height: 30px; border-radius: 9px; background: rgba(196, 255, 0, .08); display: flex; align-items: center; justify-content: center; color: #C4FF00; }
.addon-ic svg { width: 16px; height: 16px; }
.addon-info { grid-area: info; min-width: 0; }
.addon-info h5 { font-size: 12.5px; font-weight: 700; color: var(--ink); margin: 0; line-height: 1.25; }
.addon-info p { font-size: 11.5px; color: var(--muted-2); margin: 2px 0 0; }
.addon-stepper { grid-area: ctrl; display: flex; align-items: center; gap: 6px; justify-self: end; }
.stepper-btn { width: 26px; height: 26px; border-radius: 8px; border: 1px solid var(--line-2); background: transparent; color: var(--ink); font-size: 15px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: border-color .15s ease, background .15s ease; }
.stepper-btn:hover:not(:disabled) { border-color: rgba(196, 255, 0, .5); background: rgba(196, 255, 0, .08); }
.stepper-btn:disabled { opacity: .35; cursor: not-allowed; }
.stepper-val { min-width: 16px; text-align: center; font-weight: 800; font-size: 13px; color: var(--ink); font-family: "Sora", sans-serif; }
.addon-check { grid-area: ctrl; justify-self: end; position: relative; display: flex; align-items: center; }
.addon-check input { position: absolute; inset: 0; opacity: 0; width: 22px; height: 22px; margin: 0; cursor: pointer; }
.addon-check-box { width: 22px; height: 22px; border-radius: 7px; border: 1px solid var(--line-2); display: flex; align-items: center; justify-content: center; }
.addon-check input:checked + .addon-check-box { background: #C4FF00; border-color: #C4FF00; }
.addon-check input:checked + .addon-check-box::after { content: ""; width: 9px; height: 5px; border-left: 2px solid #101300; border-bottom: 2px solid #101300; transform: rotate(-45deg) translate(1px, -1px); }
.addon-opt.addon-best { border-color: rgba(196, 255, 0, .5); background: rgba(196, 255, 0, .05); }
.addon-opt.addon-locked { opacity: .55; }
.addon-opt.addon-locked .addon-info p { font-style: italic; }
@media (max-width: 380px) {
  .addon-opt { grid-template-columns: 26px 1fr; grid-template-areas: "icon info" "ctrl ctrl"; padding: 14px 10px 10px; }
  .addon-stepper, .addon-check { justify-self: start; margin-top: 2px; }
}

.p-total { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line-2); }
.p-total-row { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.p-total-row span { font-size: 12.5px; color: var(--muted-2); }
.p-total-row b { font-size: 22px; font-family: "Sora", sans-serif; font-weight: 800; color: var(--ink); }
.p-total-summary { font-size: 11.5px; color: var(--muted-2); margin: 4px 0 0; }
.p-total-note { font-size: 10.5px; color: var(--muted-2); opacity: .8; margin: 6px 0 0; line-height: 1.4; }

/* [planos v3 2026-09-26] Layout do card 1:1: 2 planos compactos + faixa de avulsos embaixo */
.plans-v3 { max-width: 960px; margin: 34px auto 0; }
.pv3-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: stretch; }
.plans-v3 .plan.pv3 { display: flex; flex-direction: column; padding: 32px 30px 28px; border-radius: 26px; }
.plans-v3 .plan.pv3:not(.popular) { background: linear-gradient(180deg, #131810, #0f130c); border: 1px solid var(--line-2); }
.plans-v3 .plan.pv3.popular { background: linear-gradient(180deg, #151c0f, #10150c); border: 2px solid #C4FF00; box-shadow: 0 0 60px rgba(196, 255, 0, .14); background-image: none; }
.plans-v3 .p-name { font-size: 24px; margin-bottom: 6px; }
.plans-v3 .price { font-size: clamp(44px, 5vw, 58px); letter-spacing: -.035em; line-height: 1; }
.plans-v3 .p-sub { margin: 10px 0 20px; font-size: 15px; }
.pv3-list { list-style: none; margin: 0 0 26px; padding: 0; display: grid; gap: 15px; }
.pv3-list li { display: flex; align-items: center; gap: 12px; font-size: 17px; color: var(--ink-2, #ccd6c6); }
.pv3-list li b { color: #fff; font-weight: 800; }
.pv3-list li svg { width: 22px; height: 22px; flex: none; }
.plans-v3 .plan.pv3 .btn { margin-top: auto; }
.builder-v3 { margin-top: 28px; border: 1px dashed #2c3824; border-radius: 24px; padding: 24px 26px 20px; background: rgba(17, 21, 14, .5); }
.bv3-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
.bv3-head h4 { font-family: "Sora", sans-serif; font-size: 14px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-2, #98a493); margin: 0; display: flex; align-items: center; gap: 10px; }
.bv3-head h4 span { font-size: 10px; letter-spacing: .06em; border: 1px solid var(--line-2); border-radius: 999px; padding: 3px 9px; color: var(--muted-2, #98a493); }
.bv3-head p { margin: 0; font-size: 14px; font-weight: 600; color: #C4FF00; }
.bv3-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.bt-tile { position: relative; display: flex; flex-direction: column; gap: 10px; background: #11150e; border: 1px solid #222b1d; border-radius: 16px; padding: 16px; min-height: 150px; }
.bt-tile.bt-best { border-color: rgba(196, 255, 0, .5); background: rgba(196, 255, 0, .05); }
.bt-tag { position: absolute; top: -10px; left: 12px; background: #C4FF00; color: #101300; font-size: 9.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; padding: 3px 8px; border-radius: 999px; white-space: nowrap; }
.bt-ic { width: 32px; height: 32px; border-radius: 10px; background: rgba(196, 255, 0, .08); display: flex; align-items: center; justify-content: center; color: #C4FF00; }
.bt-ic svg { width: 16px; height: 16px; }
.bt-tile h5 { margin: 0; font-size: 14.5px; font-weight: 700; line-height: 1.3; color: var(--ink, #f1f5ec); }
.bt-foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.bt-price { font-family: "Sora", sans-serif; font-weight: 800; font-size: 22px; color: #C4FF00; }
.bt-tile .addon-stepper, .bt-tile .addon-check { justify-self: auto; margin: 0; }
.bv3-total { margin-top: 20px; padding-top: 18px; border-top: 1px solid #222b1d; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.bv3-sum { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.bv3-sum span { font-size: 15px; color: var(--muted-2, #98a493); }
.bv3-sum b { font-family: "Sora", sans-serif; font-size: 30px; font-weight: 800; color: #fff; letter-spacing: -.02em; }
.bv3-sum small { font-size: 13px; color: var(--muted-2, #98a493); }
.bv3-note { margin: 12px 0 0; font-size: 12.5px; color: var(--muted-2, #98a493); }
@media (max-width: 900px) { .bv3-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 720px) {
  .pv3-grid { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; }
  .builder-v3 { max-width: 420px; margin-left: auto; margin-right: auto; padding: 20px 16px 16px; }
  .bv3-total .btn { width: 100%; justify-content: center; }
}
@media (max-width: 420px) { .bv3-grid { grid-template-columns: 1fr; } .bt-tile { min-height: 0; } }

/* [publico 2026-09-26] Painel grande do icone no topo de cada card (icones Phosphor Icons duotone, MIT) */
#publico .feat-card { padding-top: 14px; }
#publico .pub-art { position: relative; height: 150px; margin: 0 0 18px; border-radius: 18px; border: 1px solid rgba(196, 255, 0, .16);
  background: radial-gradient(120% 90% at 50% 0%, rgba(196, 255, 0, .16), rgba(196, 255, 0, .03) 60%, transparent 100%), #10140c;
  display: flex; align-items: center; justify-content: center; overflow: hidden; }
#publico .pub-art::after { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(196, 255, 0, .10) 1px, transparent 1px); background-size: 14px 14px; mask-image: radial-gradient(70% 70% at 50% 50%, #000, transparent); pointer-events: none; }
#publico .pub-ic { position: relative; z-index: 1; width: 84px; height: 84px; border-radius: 22px; display: flex; align-items: center; justify-content: center;
  color: #C4FF00; background: rgba(196, 255, 0, .10); border: 1px solid rgba(196, 255, 0, .28); box-shadow: 0 0 40px rgba(196, 255, 0, .18); transition: transform .25s ease; }
#publico .pub-ic svg { width: 50px; height: 50px; }
#publico .feat-card:hover .pub-ic { transform: translateY(-3px) scale(1.04); }
@media (max-width: 720px) { #publico .pub-art { height: 120px; } #publico .pub-ic { width: 72px; height: 72px; } #publico .pub-ic svg { width: 42px; height: 42px; } }

#publico .feat-card p { text-align: left; hyphens: none; }
#publico .feat-card h3 { min-height: 2.6em; display: flex; align-items: center; justify-content: center; }

/* [publico 2026-09-26] painel do icone saindo por cima do card, como no desenho do Felipe */
#publico .feat-grid { padding-top: 64px; row-gap: 88px; }
#publico .feat-card { overflow: visible; padding-top: 0; }
#publico .pub-art { margin: -64px 6px 20px; box-shadow: 0 18px 40px rgba(0, 0, 0, .45), 0 0 0 1px rgba(196, 255, 0, .10); background: radial-gradient(120% 90% at 50% 0%, rgba(196, 255, 0, .18), rgba(196, 255, 0, .04) 60%, transparent 100%), #121810; }
@media (max-width: 720px) { #publico .feat-grid { padding-top: 52px; } #publico .pub-art { margin-top: -52px; } }

/* [publico 2026-09-26] texto dos cards justificado, com hifenizacao pt-BR para nao abrir buracos */
#publico .feat-card p { text-align: justify; text-justify: inter-word; hyphens: auto; -webkit-hyphens: auto; }

/* [2026-09-26] subtitulo de secao nunca passa da borda: quebra linha, largura limitada, centralizado */
#como .section-head p, #precos .section-head p, #depoimentos .section-head p { white-space: normal; max-width: 760px; margin-left: auto; margin-right: auto; text-align: center; text-wrap: balance; }
#precos .trial-banner { max-width: 760px; margin-left: auto; margin-right: auto; }

/* [2026-09-26] planos na mesma largura das outras secoes (sem sobra lateral) */
.plans-v3 { max-width: 1272px; }
.plans-v3 .pv3-grid { gap: 28px; }

.bt-ic svg[viewBox="0 0 256 256"] { width: 18px; height: 18px; }

/* [2026-09-26] itens dos avulsos com a mesma bolinha de check da lista dos planos */
.bt-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.bt-list li { display: flex; align-items: center; gap: 9px; font-size: 14.5px; font-weight: 700; line-height: 1.3; color: var(--ink, #f1f5ec); }
.bt-list li svg { width: 18px; height: 18px; flex: none; }

/* [2026-09-26] fundo do site inteiro com a grade de quadrados do Plantao 24h e luzes lima.
   Camadas fixas (pintadas uma vez); a unica animacao e opacity, que roda no compositor. */
body::after {
  background-image:
    linear-gradient(rgba(255, 255, 255, .034) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .034) 1px, transparent 1px) !important;
  background-size: 56px 56px, 56px 56px !important;
  background-position: center top !important;
  -webkit-mask-image: radial-gradient(140% 110% at 50% 40%, #000 55%, rgba(0, 0, 0, .55) 100%);
  mask-image: radial-gradient(140% 110% at 50% 40%, #000 55%, rgba(0, 0, 0, .55) 100%);
}
body::before {
  background:
    radial-gradient(760px 460px at 100% 0%, rgba(196, 255, 0, .14), transparent 70%),
    radial-gradient(700px 480px at 0% 8%, rgba(196, 255, 0, .10), transparent 70%),
    radial-gradient(620px 420px at 0% 100%, rgba(196, 255, 0, .09), transparent 70%),
    radial-gradient(640px 440px at 100% 72%, rgba(120, 190, 0, .08), transparent 70%),
    radial-gradient(900px 520px at 50% 110%, rgba(196, 255, 0, .07), transparent 70%) !important;
  animation: cgBgGlow 9s ease-in-out infinite alternate;
}
@keyframes cgBgGlow { from { opacity: .72; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { body::before { animation: none; } }
/* secoes que tinham fundo chapado deixam a grade do site aparecer */
#problema, #como, #recursos, #plataforma, #publico, #precos, #faq { background: transparent; }

body::after { background-image: linear-gradient(rgba(255, 255, 255, .058) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .058) 1px, transparent 1px) !important; }

/* a cor escura vem do html; o body fica transparente para as camadas fixas (grade e luzes) aparecerem */
body { background: transparent !important; }

/* [2026-09-26] secoes sem fundo proprio: o fundo do site (grade + luzes) vale para tudo */
#plantao, #calculadora { background: transparent !important; }
#plantao::before, #calculadora::before, #plantao::after, #calculadora::after { display: none !important; }
