/* ============================================================================
   Home do App (app.html). Layout em faixas. Só vale com body.home-app.
   Princípios: uma ideia por faixa, títulos grandes, fundos alternados dentro
   da identidade (creme, preto, amarelo, verde), o produto em moldura de celular.
   ============================================================================ */
.home-app main > .envelope { max-width: none; padding: 0; }
.home-app { --larg: 1080px; --leitura: 660px; }

/* Faixa: fundo de ponta a ponta, conteúdo centralizado */
.home-app .banda { padding: 64px max(20px, calc((100% - var(--larg)) / 2)); }
.home-app .banda > :is(h2, h3, p, ul, ol, .selo, .cartao, details, .carrossel) { max-width: var(--leitura); margin-left: auto; margin-right: auto; }
.home-app .f-creme { background: var(--creme); }
.home-app .f-branco { background: #fff; }
.home-app .f-verde-claro { background: var(--verde-claro); }
.home-app .f-tinta { background: var(--tinta); color: #F3F0E6; border-block: 4px solid var(--tinta); }
.home-app .f-amarelo { background: var(--amarelo); border-block: 4px solid var(--tinta); }
.home-app .f-verde { background: var(--verde-escuro); color: #fff; border-block: 4px solid var(--tinta); }
.home-app .f-tinta + .f-amarelo, .home-app .f-amarelo + .f-tinta { border-top: 0; }

/* Tipografia: escala bem maior que o texto, como cartaz */
.home-app section h2 { font-size: clamp(1.95rem, 1.2rem + 3vw, 3.5rem); line-height: 1.02; letter-spacing: 0; margin-bottom: .45em; text-wrap: balance; color: var(--tinta); }
.home-app section h2 .acento { color: var(--verde); display: inline-block; }
.home-app .f-tinta h2 { color: #fff; }
.home-app .f-tinta h2 .acento, .home-app .f-verde h2 { color: var(--amarelo); }
.home-app .banda p, .home-app .banda li { font-size: 1.08rem; }
.home-app section h3 { font-size: 1.15rem; }
.home-app .banda .fecho { font-size: 1.15rem; margin-top: 28px; }

/* Hierarquia: no desktop o H1 do topo fica maior que qualquer H2 */
@media (min-width: 760px) { .home-app .heroi-vsl h1 { font-size: clamp(3rem, 1.4rem + 3.2vw, 4.1rem); line-height: 1.02; } }

/* Botão dentro de cartão estreito: texto numa linha só */
.home-app .oferta-preco .botao, .home-app .painel .botao { white-space: nowrap; padding-left: 14px; padding-right: 14px; font-size: clamp(.98rem, .8rem + 1vw, 1.1rem); }

/* 1) Dor: três frases grandes, uma por linha */
.home-app .s-dor h2 { text-align: center; }
.home-app .lista-dor { display: grid; gap: 12px; margin-top: 30px; }
.home-app .s-dor .lista-dor li { margin: 0; background: #fff; border: 3px solid var(--tinta); border-left-width: 10px; border-left-color: var(--terra); border-radius: 16px; box-shadow: 0 4px 0 var(--tinta); padding: 16px 20px; font-family: var(--titulo); font-size: clamp(1.3rem, 1rem + 1.2vw, 1.75rem); line-height: 1.15; color: var(--tinta); }
.home-app .s-dor .fecho { text-align: center; }

/* 2) Inimigo: faixa preta, os 7 vazamentos numerados */
.home-app .s-inimigo h2, .home-app .s-inimigo h3 { text-align: center; }
.home-app .s-inimigo .apoio { text-align: center; color: #D9D5C8; }
.home-app .s-inimigo .apoio strong, .home-app .s-inimigo .fecho { color: #fff; }
.home-app .s-inimigo h3 { color: var(--amarelo); font-family: var(--titulo); font-weight: 400; font-size: 1.5rem; letter-spacing: .02em; margin-top: 36px; }
.home-app .s-inimigo .vazamentos { max-width: none; counter-reset: vz; grid-template-columns: 1fr; gap: 12px; margin-top: 18px; }
.home-app .s-inimigo .vazamentos li { counter-increment: vz; position: relative; background: var(--creme); color: var(--texto); border: 3px solid var(--tinta); box-shadow: 0 5px 0 var(--amarelo); border-radius: 16px; padding: 13px 14px 13px 62px; min-height: 0; }
.home-app .s-inimigo .vazamentos li::before { content: counter(vz); position: absolute; left: 14px; top: 14px; width: 38px; height: 38px; display: grid; place-items: center; background: var(--tinta); color: var(--amarelo); border-radius: 12px; font-family: var(--titulo); font-size: 1.3rem; line-height: 1; }
.home-app .s-inimigo .vazamentos strong { color: var(--verde-escuro); font-size: 1.05rem; margin-bottom: 2px; }
.home-app .s-inimigo .fecho { text-align: center; font-weight: 700; }

/* Duas colunas (texto + celular) */
.home-app .dupla { display: grid; gap: 34px; align-items: center; }
.home-app .dupla-texto > :last-child { margin-bottom: 0; }

/* 3) Mecanismo: a conta em letra grande ao lado da tela Anotar */
.home-app .s-mecanismo h2 { color: var(--tinta); }
.home-app .s-mecanismo p { color: var(--tinta); }
.home-app .s-mecanismo .conta { font-family: var(--titulo); line-height: 1.08; margin: 22px 0 6px; }
.home-app .s-mecanismo .conta-a { font-size: clamp(1.7rem, 1.2rem + 1.8vw, 2.4rem); }
.home-app .s-mecanismo .conta-b { font-size: clamp(1.7rem, 1.2rem + 1.8vw, 2.4rem); background: var(--tinta); color: var(--amarelo) !important; border-radius: 16px; padding: 14px 18px; margin: 0 0 22px; }
.home-app .s-mecanismo .conta-a { margin-top: 26px; }

/* Moldura de celular de verdade: aro grosso, cantos de aparelho, ilha no topo */
.home-app .mockups { margin: 0; gap: 34px; }
.home-app .mock { max-width: 300px; }
.home-app .celular { position: relative; border: 10px solid var(--tinta); border-radius: 44px; box-shadow: 0 8px 0 rgba(22, 21, 21, .22); font-size: .8rem; background: var(--creme); }
.home-app .celular::before { content: ''; position: absolute; top: 9px; left: 50%; width: 74px; height: 20px; margin-left: -37px; background: var(--tinta); border-radius: 99px; z-index: 2; }
.home-app .celular .tp { padding-top: 40px; font-size: 1.2rem; }
.home-app .celular .tp small { font-size: .7rem; }
.home-app .celular .corpo { padding: 12px; min-height: 300px; align-content: start; }
.home-app .mock figcaption { font-size: .88rem; }
.home-app .s-mecanismo .mock figcaption { color: var(--tinta); }
.home-app .mockups.solo { justify-items: center; }

/* 4) O que o app faz */
.home-app .s-faz h2 { text-align: center; }
.home-app .s-faz .carrossel { max-width: 860px; }
.home-app .s-faz > .pequeno { text-align: center; margin-top: 14px; }
.home-app .mockups.par { margin-top: 40px; justify-items: center; }

/* 5) Como você recebe: passos em cartões */
.home-app .s-entrega h2 { text-align: center; }
.home-app .s-entrega .passos { max-width: 900px; display: grid; gap: 14px; margin-top: 26px; }
.home-app .s-entrega .passos li { margin: 0; background: #fff; border: 3px solid var(--tinta); border-radius: 18px; box-shadow: 0 4px 0 var(--tinta); padding: 16px 16px 16px 66px; min-height: 0; }
.home-app .s-entrega .passos li::before { left: 14px; top: 14px; width: 40px; height: 40px; }
.home-app .s-entrega .privacidade { max-width: 900px; margin-top: 18px; background: var(--verde); color: #fff; }
.home-app .s-entrega .privacidade h3 { color: var(--amarelo); font-size: 1.25rem; }
.home-app .s-entrega .privacidade a { color: #fff; }

/* 6) "Já tentei e larguei": faixa verde, título grande à esquerda */
.home-app .s-largou .dupla { align-items: start; }
.home-app .s-largou h2 { margin: 0; }
.home-app .banda.s-largou p { font-size: 1.2rem; margin: 0 0 12px; }
.home-app .s-largou strong { color: var(--amarelo); }
.home-app .banda.s-largou p:last-child { font-size: 1.45rem; }

/* 7) Preço: o que vem + cartão com preço e botão */
.home-app .s-preco h2 { text-align: center; }
.home-app .oferta { display: grid; gap: 22px; max-width: 940px; margin: 26px auto 0; align-items: center; }
.home-app .oferta-lista h3 { margin-bottom: 10px; }
.home-app .banda .oferta-lista .lista-ok li { font-size: 1.1rem; padding: 9px 0; border-bottom: 2px dashed var(--linha); }
.home-app .oferta-lista .lista-ok li:last-child { border-bottom: 0; }
.home-app .oferta-preco { margin: 0; padding: 26px 16px; border-radius: 26px; box-shadow: 0 6px 0 var(--tinta); }
.home-app .oferta-preco .destaque-num { font-size: clamp(3.4rem, 2.6rem + 3vw, 4.8rem); color: var(--tinta); }
.home-app .oferta-preco .botao { margin: 16px auto 14px; }
.home-app .banda .oferta-preco .extras { font-size: .9rem; color: var(--texto-2); margin: 0; text-align: left; }

/* 8) Garantia logo abaixo da oferta */
.home-app .s-garantia { padding-top: 0; }
.home-app .s-garantia .selo { max-width: 940px; margin-top: 0; }

/* 9) FAQ */
.home-app .s-faq h2 { text-align: center; }
.home-app .s-faq details { max-width: 760px; }

/* 10) Final: painel verde grande */
.home-app .s-final .painel { max-width: 940px; margin: 0 auto; background: var(--verde); color: #fff; border: 4px solid var(--tinta); border-radius: 32px; box-shadow: 0 8px 0 var(--tinta); padding: 40px 16px; }
.home-app .s-final .painel h2 { color: var(--amarelo); }
.home-app .banda .painel p { max-width: 560px; margin-left: auto; margin-right: auto; font-size: 1.15rem; }
.home-app .banda .painel .pequeno { color: #E8F5E9; font-size: .9rem; }
.home-app .s-final .painel .botao { margin-top: 14px; }

/* Desktop: duas colunas e grades */
@media (min-width: 760px) {
  .home-app .banda { padding-top: 104px; padding-bottom: 104px; }
  .home-app .s-garantia { padding-top: 0; padding-bottom: 72px; }
  .home-app .s-preco { padding-bottom: 40px; }
  .home-app .banda p, .home-app .banda li { font-size: 1.15rem; }
  .home-app .s-inimigo .vazamentos li { padding: 64px 16px 18px; }
  .home-app .dupla { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 64px; }
  .home-app .s-largou .dupla { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .home-app .mockups { margin-left: 0; margin-right: 0; }
  .home-app .mockups.solo { grid-template-columns: 1fr; }
  .home-app .mockups.solo .mock { width: 340px; max-width: 340px; }
  .home-app .mockups.par { grid-template-columns: repeat(2, 320px); justify-content: center; gap: 56px; }
  .home-app .mock { max-width: 320px; width: 320px; }
  .home-app .s-entrega .passos { grid-template-columns: repeat(4, 1fr); max-width: var(--larg); }
  .home-app .s-entrega .passos li { padding: 68px 18px 20px; }
  .home-app .s-entrega .passos li::before { left: 18px; top: 16px; }
  .home-app .s-entrega .privacidade { max-width: var(--larg); }
  .home-app .oferta { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; }
  .home-app .s-final .painel { padding: 72px 48px; }
  .home-app .oferta-preco { padding: 30px 28px; }
  .home-app .s-final { padding-bottom: 88px; }
}
/* Os 7 vazamentos: 4 em cima, 3 centralizados embaixo */
@media (min-width: 760px) {
  .home-app .s-inimigo .vazamentos { grid-template-columns: repeat(8, 1fr); }
  .home-app .s-inimigo .vazamentos li { grid-column: span 2; }
  .home-app .s-inimigo .vazamentos li:nth-child(5) { grid-column: 2 / span 2; }
}

/* 11) Sugestões aprovadas: etiquetas, faixa de CTA no meio, linha de apoio, botão fixo escuro na faixa amarela */
.home-app .banda p.etiqueta { display: block; max-width: var(--leitura); margin: 0 auto 12px; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; line-height: 1.3; color: var(--verde-escuro); }
.home-app .banda p.etiqueta span { display: inline-block; padding: 3px 10px; border: 2px solid currentColor; border-radius: 999px; }
.home-app .banda.f-tinta p.etiqueta, .home-app .banda.f-verde p.etiqueta { color: var(--amarelo); }
.home-app .banda.f-amarelo p.etiqueta { color: var(--tinta); }
.home-app .banda .painel p.etiqueta { color: var(--amarelo); font-size: .78rem; margin-bottom: 12px; }
.home-app .banda .etiqueta + h2 { margin-top: 0; }
.home-app .s-cta-meio { text-align: center; border-block: 4px solid var(--tinta); }
.home-app .banda.s-cta-meio p.cta-chamada { font-family: var(--titulo); font-size: clamp(1.6rem, 1.1rem + 2vw, 2.4rem); line-height: 1.08; color: var(--verde-escuro); margin: 0 auto 6px; max-width: 18ch; text-wrap: balance; }
.home-app .s-cta-meio .botao { white-space: nowrap; margin-left: auto; margin-right: auto; font-size: clamp(.98rem, .8rem + 1vw, 1.1rem); }
.home-app .banda p.apoio-cta { font-size: .92rem; margin: 10px auto 0; max-width: 36ch; color: #3d3b36; }
.home-app .banda .oferta-preco p.apoio-cta { color: var(--tinta); }
@media (max-width: 899px) {
  .home-app .cta-fixo .botao { transition: background-color 180ms ease, color 180ms ease; }
  .home-app .cta-fixo.escuro .botao { background: var(--tinta); color: var(--amarelo); border-color: var(--tinta); box-shadow: 0 4px 0 rgba(22,21,21,.5), 0 8px 24px rgba(22,21,21,.28); }
}
@media (prefers-reduced-motion: reduce) { .home-app .cta-fixo .botao { transition: none; } }
.home-app :is(.s-dor, .s-inimigo, .s-faz, .s-entrega, .s-preco, .s-faq) p.etiqueta { text-align: center; }
