/* ShpTools — landing */
.progresso { position: fixed; top: 0; left: 0; height: 2px; width: 100%; background: var(--brand); transform-origin: 0 50%; transform: scaleX(var(--p, 0)); z-index: 40; pointer-events: none; }

/* ── Hero ── */
.hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--border-subtle); }
.hero-img { position: absolute; top: 0; bottom: 0; right: 0; width: min(100%, 1500px); }
.hero-foto {
  position: absolute; inset: -6% 0 -6% 0; background: url(/assets/img/hero-escuro.webp) right center / auto 100% no-repeat;
  transform: translate3d(0, var(--par, 0px), 0) scale(1.04); will-change: transform;
  animation: flutua 9s ease-in-out infinite alternate;
}
@keyframes flutua { from { background-position: right 0 center; } to { background-position: right 0 top 46%; } }
.hero-img::after { content: ""; position: absolute; inset: 0; background:
  linear-gradient(90deg, var(--bg) 0%, var(--bg) 38%, color-mix(in srgb, var(--bg) 55%, transparent) 58%, transparent 74%, transparent 86%, var(--bg) 100%),
  linear-gradient(180deg, transparent 78%, var(--bg) 100%); }
.hero-brilho { display: none; }
@keyframes pulsa { from { opacity: .55; transform: scale(.92); } to { opacity: 1; transform: scale(1.06); } }
.hero .wrap { position: relative; min-height: min(80vh, 700px); display: flex; flex-direction: column; justify-content: center; padding-top: 72px; padding-bottom: 80px; }
.hero-selo { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; padding: 7px 12px 7px 10px; border: 1px solid var(--border); border-radius: 999px; background: color-mix(in srgb, var(--surface) 70%, transparent); font-size: 13px; color: var(--text-secondary); margin-bottom: 22px; }
.hero-selo i { width: 7px; height: 7px; border-radius: 50%; background: var(--brand); box-shadow: 0 0 0 0 var(--brand-glow); animation: ping 2.2s ease-out infinite; }
@keyframes ping { 0% { box-shadow: 0 0 0 0 rgba(253,82,24,.55); } 100% { box-shadow: 0 0 0 9px rgba(253,82,24,0); } }
.hero h1 { font: 700 clamp(38px, 5.4vw, 64px)/1.03 var(--font-display); letter-spacing: -.035em; max-width: 560px; }
.hero h1 em { font-style: normal; color: var(--brand); background: linear-gradient(90deg, #FD5218, #FF8A3D, #FD5218); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: brilha 5s linear infinite; }
@keyframes brilha { to { background-position: -200% 0; } }
.hero p { font-size: 18px; color: var(--text-secondary); max-width: 500px; margin-top: 20px; }
.hero .acoes { display: flex; gap: 12px; margin-top: 32px; flex-wrap: wrap; }
.provas { display: flex; gap: 28px; margin-top: 44px; flex-wrap: wrap; }
.provas div { font-size: 13px; color: var(--text-muted); }
.provas b { display: block; font: 700 22px/1.1 var(--font-display); color: var(--text); letter-spacing: -.02em; }
.js .entra { opacity: 0; transform: translateY(18px); animation: entra .8s cubic-bezier(.2,.7,.2,1) forwards; animation-delay: var(--d, 0s); }
@keyframes entra { to { opacity: 1; transform: none; } }

@media (max-width: 760px) {
  .hero-img { width: 100%; }
  .hero-foto { background-position: 72% center; background-size: cover; opacity: .28; animation: none; }
  .hero-img::after { background: linear-gradient(180deg, color-mix(in srgb, var(--bg) 30%, transparent), var(--bg) 92%); }
  .hero .wrap { min-height: auto; padding-top: 48px; padding-bottom: 52px; }
  .hero p { font-size: 16.5px; }
  .hero .acoes { flex-direction: column; align-items: stretch; }
  .hero .acoes .botao { width: 100%; }
  .provas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 34px; }
  .provas b { font-size: 17px; }
  .provas div { font-size: 12px; line-height: 1.35; }
}

/* ── Faixa que corre ── */
.faixa-corre { overflow: hidden; border-bottom: 1px solid var(--border-subtle); background: var(--surface); padding: 15px 0;
  -webkit-mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.trilho { display: flex; width: max-content; animation: corre 38s linear infinite; }
.trilho span { font: 500 14px/1 var(--font-display); color: var(--text-muted); white-space: nowrap; padding: 0 22px; display: flex; align-items: center; gap: 22px; }
.trilho span::after { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--brand); margin-left: 22px; }
@keyframes corre { to { transform: translateX(-50%); } }

/* ── Seções ── */
.secao { padding: 96px 0; position: relative; }
.secao-cab { max-width: 620px; margin-bottom: 44px; }
.secao-cab.centro { text-align: center; margin-left: auto; margin-right: auto; }
.secao-cab .selo { font: 600 11px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--brand); }
.secao-cab h2 { font: 700 clamp(28px, 4.2vw, 42px)/1.1 var(--font-display); letter-spacing: -.03em; margin-top: 12px; }
.secao-cab p { color: var(--text-muted); margin-top: 12px; font-size: 16px; }
.estreito { max-width: 760px; }
@media (max-width: 760px) { .secao { padding: 52px 0; } .secao-cab { margin-bottom: 26px; } }

/* ── Duas colunas de ferramentas ── */
.colunas { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.coluna { background: var(--surface); border: 1px solid var(--border); border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; transition: border-color .25s, transform .25s, box-shadow .25s; }
.coluna:hover { border-color: color-mix(in srgb, var(--brand) 55%, var(--border)); box-shadow: 0 18px 50px rgba(0,0,0,.4), 0 0 0 1px rgba(253,82,24,.08); }
.coluna-img { aspect-ratio: 16 / 10; overflow: hidden; background: var(--surface-2); }
.coluna-img img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.coluna.dentro .coluna-img img { transform: scale(1); }
.coluna:hover .coluna-img img { transform: scale(1.04); }
.coluna-txt { padding: 26px 26px 30px; }
.tag { font: 600 11px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--text-dim); }
.coluna h3 { font: 700 26px/1.15 var(--font-display); letter-spacing: -.025em; margin-top: 10px; }
.coluna-txt > p { color: var(--text-muted); font-size: 15px; margin-top: 8px; }
.beneficios { list-style: none; margin-top: 22px; display: flex; flex-direction: column; gap: 14px; }
.beneficios li { position: relative; padding-left: 30px; font-size: 14.5px; color: var(--text-muted); line-height: 1.5; }
.beneficios li b { color: var(--text); font-weight: 600; }
.beneficios li::before { content: ""; position: absolute; left: 0; top: 1px; width: 20px; height: 20px; border-radius: 6px; background: var(--brand-soft);
  box-shadow: inset 0 0 0 1px rgba(253,82,24,.35); }
.beneficios li::after { content: ""; position: absolute; left: 6px; top: 6px; width: 8px; height: 5px; border-left: 2px solid var(--brand); border-bottom: 2px solid var(--brand); transform: rotate(-45deg); }
.js .coluna .beneficios li { opacity: 0; transform: translateY(10px); transition: opacity .5s, transform .5s; transition-delay: calc(var(--d) + .35s); }
.js .coluna.dentro .beneficios li { opacity: 1; transform: none; }
@media (max-width: 860px) { .colunas { grid-template-columns: 1fr; gap: 16px; } .js .rv.esq, .js .rv.dir { transform: translateY(26px); } }
@media (max-width: 520px) { .coluna-txt { padding: 22px 20px 26px; } .coluna h3 { font-size: 23px; } }

/* ── Passos ── */
.passos-sec { background: var(--surface); border-top: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle); }
.passos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; counter-reset: p; }
.passo { position: relative; padding: 26px 24px; border: 1px solid var(--border); border-radius: 16px; background: var(--bg); }
.passo .n { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: var(--brand); color: #fff; font: 700 17px/1 var(--font-display); box-shadow: 0 6px 18px var(--brand-glow); }
.passo h3 { font: 700 19px/1.25 var(--font-display); margin-top: 18px; letter-spacing: -.02em; }
.passo p { color: var(--text-muted); font-size: 14.5px; margin-top: 8px; }
@media (max-width: 860px) { .passos { grid-template-columns: 1fr; gap: 12px; } .passo { display: grid; grid-template-columns: 38px 1fr; column-gap: 16px; padding: 20px; } .passo h3 { margin-top: 0; align-self: center; } .passo p { grid-column: 2; margin-top: 4px; } }

/* ── Planos ── */
.planos-sec { overflow: hidden; }
.planos-brilho { position: absolute; left: 50%; top: 58%; width: 760px; height: 420px; transform: translate(-50%, -50%); background: radial-gradient(ellipse, rgba(253,82,24,.07), transparent 65%); pointer-events: none; }
.planos { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; max-width: 820px; margin: 0 auto; align-items: stretch; }
.plano { position: relative; display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border); border-radius: 20px; padding: 30px 28px; }
.plano.destaque { border-color: var(--brand); box-shadow: 0 16px 40px rgba(253,82,24,.10), inset 0 1px 0 rgba(255,255,255,.04); background: linear-gradient(180deg, color-mix(in srgb, var(--brand) 7%, var(--surface)), var(--surface) 40%); }
.fita { position: absolute; top: -12px; left: 28px; background: var(--brand); color: #fff; font: 600 12px/1 var(--font); padding: 7px 11px; border-radius: 999px; box-shadow: 0 6px 16px var(--brand-glow); }
.plano h3 { font: 700 22px/1.2 var(--font-display); letter-spacing: -.02em; }
.plano-resumo { color: var(--text-muted); font-size: 14.5px; margin-top: 6px; }
.preco { display: flex; align-items: baseline; gap: 4px; margin-top: 22px; }
.preco .rs { font: 600 18px/1 var(--font-display); color: var(--text-secondary); }
.preco .v { font: 700 52px/1 var(--font-display); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.preco .per { font-size: 15px; color: var(--text-muted); }
.diferenca { font-size: 13.5px; color: var(--brand); margin-top: 10px; font-weight: 500; }
.escolha { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; margin-top: 18px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 11px; }
.escolha button { border: 0; background: transparent; color: var(--text-muted); font: 600 14px/1 var(--font); padding: 11px 8px; border-radius: 8px; cursor: pointer; transition: background .2s, color .2s; min-height: 42px; }
.escolha button.on { background: var(--surface-3); color: var(--text); box-shadow: inset 0 0 0 1px var(--border), 0 2px 8px rgba(0,0,0,.25); }
.inclui { list-style: none; margin: 22px 0 26px; display: flex; flex-direction: column; gap: 11px; flex: 1; }
.inclui li { position: relative; padding-left: 26px; font-size: 14.5px; color: var(--text-secondary); }
.inclui li::before { content: ""; position: absolute; left: 3px; top: 6px; width: 9px; height: 5px; border-left: 2px solid var(--brand); border-bottom: 2px solid var(--brand); transform: rotate(-45deg); }
.inclui li.nao { color: var(--text-dim); }
.inclui li.nao::before { border: 0; top: 10px; left: 2px; width: 11px; height: 2px; background: var(--text-dim); transform: none; }
.plano-btn { width: 100%; }
@media (max-width: 760px) {
  .planos { grid-template-columns: 1fr; gap: 26px; }
  .plano.destaque { order: -1; }
  .plano { padding: 28px 22px 24px; }
  .preco .v { font-size: 46px; }
}

/* ── FAQ ── */
.faq { display: flex; flex-direction: column; gap: 10px; }
.faq details { border: 1px solid var(--border); border-radius: 14px; background: var(--surface); overflow: hidden; transition: border-color .2s; }
.faq details[open] { border-color: color-mix(in srgb, var(--brand) 45%, var(--border)); }
.faq summary { list-style: none; cursor: pointer; padding: 18px 52px 18px 20px; font: 600 16px/1.35 var(--font); position: relative; -webkit-tap-highlight-color: transparent; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: 22px; top: 50%; width: 9px; height: 9px; border-right: 2px solid var(--text-muted); border-bottom: 2px solid var(--text-muted); transform: translateY(-70%) rotate(45deg); transition: transform .25s; }
.faq details[open] summary::after { transform: translateY(-30%) rotate(-135deg); border-color: var(--brand); }
.faq details p { padding: 0 20px 20px; color: var(--text-muted); font-size: 15px; animation: abre .3s ease; }
@keyframes abre { from { opacity: 0; transform: translateY(-6px); } }

/* ── CTA ── */
.cta { text-align: center; padding: 100px 0; border-top: 1px solid var(--border-subtle); background: radial-gradient(ellipse 60% 70% at 50% 100%, rgba(253,82,24,.12), transparent); }
.cta img { width: 52px; height: auto; margin: 0 auto 22px; animation: flutua-logo 4s ease-in-out infinite alternate; }
@keyframes flutua-logo { to { transform: translateY(-8px); } }
.cta h2 { font: 700 clamp(28px, 4vw, 44px)/1.1 var(--font-display); letter-spacing: -.03em; max-width: 680px; margin: 0 auto; }
.cta p { color: var(--text-muted); margin: 14px auto 30px; max-width: 460px; }
.cta .acoes { display: flex; gap: 12px; justify-content: center; }
@media (max-width: 760px) { .cta { padding: 72px 0 84px; } .cta .acoes .botao { width: 100%; } }

/* ── Barra fixa de assinatura (celular) ── */
.barra-assinar { display: none; }
@media (max-width: 760px) {
  .barra-assinar {
    display: flex; align-items: center; gap: 14px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 25;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom)) 20px; border-top: 1px solid var(--border);
    background: var(--surface); box-shadow: 0 -10px 30px rgba(0,0,0,.45);
    transform: translateY(110%); transition: transform .35s cubic-bezier(.2,.7,.2,1);
  }
  .barra-assinar.mostra { transform: none; }
  .barra-assinar div { display: flex; flex-direction: column; line-height: 1.2; }
  .barra-assinar b { font: 700 16px/1.2 var(--font-display); }
  .barra-assinar span { font-size: 12.5px; color: var(--text-muted); }
  .barra-assinar .botao { margin-left: auto; padding: 12px 18px; min-height: 44px; }
  .rodape { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
  .rodape nav { gap: 6px 22px; } .rodape nav a { padding: 10px 0; font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-foto, .hero-brilho, .trilho, .cta img, .hero h1 em, .hero-selo i { animation: none !important; }
  .js .entra { opacity: 1; transform: none; animation: none; }
  .js .coluna .beneficios li { opacity: 1; transform: none; }
}
