/* Almanaque Astral: base visual de todas as páginas (extraída do mock aprovado). Fontes: Google Fonts, carregadas pelo HTML. */
:root{
  --papel:#F3F2EE; --branco:#FFFFFF; --noite:#1E1B3A; --noite-2:#2A2650; --tinta:#1E1B3A; --suave:#5C5A70; --suave-n:#B9B6CE;
  --linha:#D6D4DE; --linha-n:#3A3660; --ceu:#2B3FA8; --sol:#E8A317; --ouro-escuro:#8A5A00; --lua:#DDE2F5; --alerta:#B23A3A;
  --display:"DM Serif Display",Georgia,serif; --body:"Instrument Sans",system-ui,sans-serif; --mono:"IBM Plex Mono",ui-monospace,monospace;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--papel);color:var(--tinta);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
body.travado{overflow:hidden}
.wrap{max-width:1080px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.estreito{max-width:620px;margin:0 auto}
a{color:inherit}
button{font:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--sol);outline-offset:3px}
h1,h2,h3,.folha-nome,.cert .nome{overflow-wrap:anywhere}

/* Cabeçalho */
.cab{background:var(--noite);color:var(--papel)}
.cab .wrap{display:flex;align-items:center;justify-content:space-between;padding-block:10px}
.logo{display:flex;align-items:center;gap:10px;font:500 12px var(--mono);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;min-height:44px}
.logo svg{width:34px;height:34px}
.btn-entrar{background:none;border:1px solid var(--suave-n);color:var(--papel);border-radius:8px;padding:0 18px;min-height:44px;font-weight:600;font-size:15px}

/* Botões */
.cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--sol);color:var(--noite);border:0;border-radius:8px;padding:16px 28px;font-weight:700;font-size:17px;min-height:54px;text-decoration:none;transition:transform .15s}
.cta:hover{transform:translateY(-1px)}
.cta.largo{width:100%}
.micro{font-size:13px;color:var(--suave);margin-top:10px}
.noite .micro,.capa .micro,.resultado .micro{color:var(--suave-n)}
.link{color:var(--ceu);font-weight:600;display:inline-block;padding:10px 4px}
.btn2{border:1.5px solid var(--ceu);color:var(--ceu);background:none;border-radius:8px;min-height:48px;padding:12px;font-weight:700;width:100%}
.btn3{border:0;background:var(--ceu);color:#fff;border-radius:8px;min-height:50px;padding:14px;font-weight:700;width:100%;font-size:16px}
.btn-texto{border:0;background:none;color:var(--suave);min-height:44px;width:100%;font-weight:600}

/* Capa */
.capa{background:var(--noite);color:var(--papel);padding-block:28px 64px;overflow:hidden}
.capa .wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:44px;align-items:center}
@media (min-width:880px){.capa .wrap{grid-template-columns:1.1fr .9fr}.capa{padding-block:48px 96px}}
.olho{font:500 12px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sol)}
.capa h1{font-family:var(--display);font-weight:400;font-size:clamp(40px,8vw,64px);line-height:1.02;margin:12px 0 0;text-wrap:balance}
.capa h1 em{color:var(--sol)}
.capa .sub{font-size:18px;color:var(--suave-n);margin:20px 0 28px;max-width:46ch}
.capa .sub b{color:var(--papel);font-weight:600}

/* Folhinha da capa */
.folha{background:var(--papel);color:var(--tinta);border-radius:3px;max-width:360px;width:100%;justify-self:center;transform:rotate(-2deg);text-align:center}
.folha-topo{background:var(--sol);display:flex;justify-content:space-between;align-items:center;padding:10px 16px;font:500 12px var(--mono);letter-spacing:.1em;text-transform:uppercase}
.folha-topo i{width:10px;height:10px;border-radius:50%;background:var(--noite);display:block}
.folha-corpo{padding:18px 20px 22px;display:flex;flex-direction:column;align-items:center;gap:4px}
.folha-mes{font:500 12px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--suave)}
.folha-num{font:500 168px/0.9 var(--mono);color:var(--ceu);margin:6px 0 2px}
.folha-palavra{font-family:var(--display);font-size:30px;line-height:1}
.folha-nome{font:500 13px var(--mono);letter-spacing:.06em;color:var(--suave);border-top:1px solid var(--linha);margin-top:12px;padding-top:12px;width:100%}
.folha-pe{border-top:1px dashed var(--linha);padding:10px;font:500 12px var(--mono);color:var(--suave);display:flex;justify-content:space-between}

/* Faixa */
.faixa{background:var(--lua);padding-block:12px}
.faixa ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 24px;justify-content:center;font-size:14px;font-weight:600}
.faixa li+li::before{content:"·";margin-right:24px;color:var(--ceu)}
@media (max-width:520px){.faixa li+li::before{display:none}.faixa ul{flex-direction:column;align-items:center}}

/* Seções */
.secao{padding-block:64px}
.secao h2{font-family:var(--display);font-weight:400;font-size:clamp(32px,6vw,44px);line-height:1.05;margin:10px 0 12px;text-wrap:balance}
.secao .lead{font-size:17px;color:var(--suave);margin:0 0 28px;max-width:56ch}
.centro{text-align:center}
.centro .lead{margin-left:auto;margin-right:auto}
.noite{background:var(--noite);color:var(--papel)}
.noite .lead{color:var(--suave-n)}
.branco{background:var(--branco)}
.olho.azul{color:var(--ceu)}

/* Grade de letras */
.grade-letras{display:flex;flex-wrap:wrap;gap:10px 16px}
.grade-letras .pal{display:flex;flex-wrap:wrap;gap:6px 2px;max-width:100%}
.grade-letras .l{display:flex;flex-direction:column;align-items:center;min-width:24px;font-family:var(--mono)}
.grade-letras .l b{font-weight:500;font-size:16px}
.grade-letras .l span{font-size:13px;color:var(--ceu)}
.grade-letras .l.v span{color:var(--ouro-escuro)}
.grade-letras .esp{width:12px}

/* Formulário */
.cartao{background:var(--branco);border:1px solid var(--linha);border-radius:6px;padding:28px 20px;text-align:left}
@media (min-width:560px){.cartao{padding:32px}}
.campo{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.campo label{font-weight:600;font-size:15px}
.campo input{font:17px var(--body);color:var(--tinta);border:1.5px solid var(--linha);border-radius:6px;padding:13px 14px;background:var(--branco);width:100%;min-height:50px}
.campo input:focus{border-color:var(--ceu);outline:none;box-shadow:0 0 0 3px var(--lua)}
.campo input[aria-invalid=true]{border-color:var(--alerta)}
.ajuda{font-size:14px;color:var(--suave)}
.mais-nome{background:none;border:1.5px dashed var(--linha);border-radius:6px;min-height:48px;padding:12px;width:100%;color:var(--ceu);font-weight:600;font-size:15px;margin:-4px 0 18px}
.check{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;margin-bottom:18px}
.check input{width:22px;height:22px;margin-top:1px;flex:0 0 auto;accent-color:var(--ceu)}
.erro{color:var(--alerta);font-size:14.5px;font-weight:600;margin:-4px 0 14px}
.passo{text-align:center;font-size:13px;color:var(--suave);margin-top:12px}
.sugestao{font-size:14px;background:var(--lua);border-radius:6px;padding:4px 4px 4px 12px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.sugestao button{background:none;border:0;color:var(--ceu);font-weight:700;min-height:44px;padding:0 12px}
.presente-aviso{background:var(--lua);border-radius:6px;padding:12px 14px;font-size:14.5px;margin-bottom:18px}

/* Resultado grátis */
.resultado{background:var(--noite);color:var(--papel);border-radius:6px;padding:28px 20px;text-align:left}
@media (min-width:560px){.resultado{padding:36px}}
.resultado h3{font-family:var(--display);font-weight:400;font-size:clamp(30px,7vw,40px);line-height:1.05;margin:8px 0 18px}
.conta{border-top:1px solid var(--linha-n);border-bottom:1px solid var(--linha-n);padding-block:16px;display:flex;flex-direction:column;gap:12px}
.conta .grade-letras .l b{color:var(--papel)}
.conta .grade-letras .l span{color:var(--suave-n)}
.conta .grade-letras .l.v span{color:var(--sol)}
.conta .soma{font:500 15px var(--mono);color:var(--suave-n)}
.conta .soma b{color:var(--papel)}
.legenda-vog{font-size:13px;color:var(--suave-n)}
.legenda-vog i{color:var(--sol);font-style:normal}
.grande{display:flex;align-items:center;gap:22px;padding-block:22px}
.grande b{font:500 120px/0.8 var(--mono);color:var(--sol)}
.grande strong{display:block;font-family:var(--display);font-weight:400;font-size:28px;line-height:1.1}
.grande span{color:var(--suave-n);font-size:15px}
.lacuna{border-top:1px solid var(--linha-n);padding-top:16px;font-size:16px}
.lacuna b{color:var(--sol);font-family:var(--mono);font-weight:500;font-size:18px}
.lacuna p{margin:6px 0 0;color:var(--suave-n);font-size:14.5px}
.outros{margin-top:18px;border-top:1px solid var(--linha-n);padding-top:14px;display:flex;flex-direction:column;gap:8px}
.outros .linha{display:flex;justify-content:space-between;gap:12px;font-size:15px}
.outros .linha b{font:500 18px var(--mono);color:var(--sol)}
.trancado{margin-top:18px;border:1px dashed var(--linha-n);border-radius:6px;padding:16px;display:flex;flex-direction:column;gap:10px}
.trancado .item{display:flex;justify-content:space-between;gap:12px;font-size:15px}
.trancado .item span:last-child{filter:blur(4px);user-select:none;color:var(--suave-n)}
.trancado .cad{font:500 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--sol)}
.oferta{margin-top:24px;text-align:center}
.oferta .preco{font-family:var(--display);font-size:44px;line-height:1}
.oferta .inclui{color:var(--suave-n);font-size:15px;margin:6px 0 18px}
.garantia{display:flex;gap:12px;align-items:center;border:1px solid var(--linha-n);border-radius:6px;padding:12px 14px;margin-top:14px;text-align:left;font-size:14px;color:var(--suave-n)}
.garantia b{color:var(--papel)}
.garantia .sete{font:500 26px/1 var(--mono);color:var(--sol);border:1.5px solid var(--sol);border-radius:50%;width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto}

/* Tabela dos 9 (estilo almanaque) */
.nove{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--linha-n);border-left:1px solid var(--linha-n);max-width:760px;margin:0 auto 32px}
.nove div{border-right:1px solid var(--linha-n);border-bottom:1px solid var(--linha-n);padding:14px 10px;text-align:center}
.nove b{display:block;font:500 34px/1 var(--mono);color:var(--sol)}
.nove strong{display:block;font-family:var(--display);font-weight:400;font-size:18px;margin-top:6px}
.nove p{margin:4px 0 0;font-size:13px;color:var(--suave-n);line-height:1.35}
.mestres{text-align:center;font-size:14px;color:var(--suave-n);margin:-16px 0 32px}

/* Leitura completa: itens */
.itens{display:grid;grid-template-columns:minmax(0,1fr);gap:0 28px}
@media (min-width:720px){.itens{grid-template-columns:repeat(2,minmax(0,1fr))}}
.item-c{border-top:2px solid var(--noite);padding:16px 0 24px}
.item-c .n{font:500 13px var(--mono);color:var(--ceu);letter-spacing:.08em}
.item-c h3{font-family:var(--display);font-weight:400;font-size:24px;margin:6px 0 6px}
.item-c p{margin:0;color:var(--suave);font-size:15px}

/* Prévia da leitura */
.previa{border:1px solid var(--linha);border-radius:6px;background:var(--papel);padding:18px;margin-top:8px;position:relative;overflow:hidden}
.previa .n{font:500 12px var(--mono);letter-spacing:.1em;color:var(--ceu)}
.previa h4{font-family:var(--display);font-weight:400;font-size:24px;margin:4px 0 8px}
.previa p{margin:0 0 8px;color:var(--suave);font-size:15px}
.previa::after{content:"";position:absolute;left:0;right:0;bottom:0;height:70px;background:linear-gradient(transparent,var(--papel))}

/* Certificado */
.cert{background:var(--branco);border:2px solid var(--noite);outline:6px solid var(--branco);box-shadow:0 0 0 7px var(--noite);border-radius:2px;padding:26px 20px;text-align:center;max-width:420px;margin:0 auto}
.cert svg{width:44px;height:44px;margin:0 auto 6px;display:block}
.cert .olho{color:var(--ceu)}
.cert .nome{font-family:var(--display);font-size:34px;line-height:1.05;margin:12px 0 6px}
.cert .fio{height:1px;background:var(--linha);margin:16px 40px}
.cert .nums{display:flex;justify-content:center;gap:22px;font-family:var(--mono)}
.cert .nums div{display:flex;flex-direction:column;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--suave)}
.cert .nums b{font-size:30px;font-weight:500;color:var(--ceu)}
.cert .ded{font-size:14px;color:var(--suave);margin:14px 0 0;font-style:italic}
.cert .pe{font:500 12px var(--mono);color:var(--suave);margin-top:14px}

/* Como usar */
.passos{display:grid;grid-template-columns:minmax(0,1fr);gap:0 28px;counter-reset:p}
@media (min-width:720px){.passos{grid-template-columns:repeat(3,minmax(0,1fr))}}
.passos div{border-top:1px solid var(--linha-n);padding:16px 0 22px}
.passos b{font:500 40px/1 var(--mono);color:var(--sol)}
.passos h3{font-family:var(--display);font-weight:400;font-size:24px;margin:8px 0 6px}
.passos p{margin:0;color:var(--suave-n);font-size:15px}
.metodo{border:1px solid var(--linha-n);border-radius:6px;padding:16px;margin-top:20px;font-size:15px;color:var(--suave-n)}
.metodo b{color:var(--papel)}

/* Para quem */
.quem{display:grid;grid-template-columns:minmax(0,1fr);gap:0 24px}
@media (min-width:720px){.quem{grid-template-columns:repeat(3,minmax(0,1fr))}}
.quem>div{border-top:2px solid var(--noite);padding:14px 0 22px}
.quem h3{font-family:var(--display);font-weight:400;font-size:24px;margin:0 0 6px}
.quem p{margin:0 0 10px;color:var(--suave);font-size:15px}
.quem .destaque{background:var(--lua);border-top-color:var(--ceu);padding:14px 16px 18px}

/* FAQ */
.faq{background:var(--branco);border:1px solid var(--linha);border-radius:6px;padding:4px 18px}
.faq details{border-bottom:1px solid var(--linha)}
.faq details:last-child{border-bottom:0}
.faq summary{list-style:none;padding:16px 36px 16px 0;min-height:44px;font-weight:600;font-size:16.5px;position:relative;cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:12px;font:500 22px var(--mono);color:var(--ceu)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 18px;color:var(--suave);font-size:15.5px}

/* Rodapé */
.rodape{background:var(--noite);color:var(--suave-n);padding-block:40px 120px;font-size:14px;text-align:center}
.rodape svg{width:44px;height:44px}
.rodape .marca-r{font-family:var(--display);color:var(--papel);font-size:24px;margin:6px 0 12px}
.rodape p{margin:6px auto;max-width:60ch}
.rodape a{display:inline-block;padding:10px 6px}
.rodape .ph{color:var(--sol)}

/* Barra fixa */
.barra{position:fixed;left:0;right:0;bottom:0;background:var(--noite);color:var(--papel);border-top:1px solid var(--linha-n);padding:8px max(12px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));display:flex;align-items:center;justify-content:center;gap:14px;z-index:20;transform:translateY(110%);visibility:hidden;transition:transform .25s,visibility .25s}
.barra.on{transform:none;visibility:visible}
.barra small{display:block;color:var(--suave-n);font-size:12.5px}
.barra strong{font-size:15px}
.barra .cta{padding:12px 18px;min-height:46px;font-size:15px}
.barra .x{background:none;border:0;color:var(--suave-n);font-size:22px;width:44px;height:44px}

/* Janelas */
.veu{position:fixed;inset:0;background:rgba(20,19,42,.6);display:flex;align-items:flex-end;justify-content:center;z-index:40;padding:16px}
@media (min-width:640px){.veu{align-items:center}}
.modal{background:var(--branco);border-radius:10px;width:100%;max-width:440px;padding:24px;display:flex;flex-direction:column;gap:14px;max-height:92dvh;overflow:auto}
.modal h3{font-family:var(--display);font-weight:400;font-size:28px;margin:0;line-height:1.1}
.simu{font:500 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--alerta)}
.linha-p{display:flex;justify-content:space-between;gap:12px}
.bump{border:1.5px dashed var(--sol);border-radius:6px;padding:12px;display:flex;gap:10px;font-size:14.5px;background:#FFF9EC}
.bump input{accent-color:var(--sol);width:22px;height:22px;margin-top:1px;flex:0 0 auto}
.giro{width:52px;height:52px;border-radius:50%;border:5px solid var(--lua);border-top-color:var(--ceu);animation:g 1s linear infinite;margin:8px auto}
@keyframes g{to{transform:rotate(360deg)}}

/* Leitura completa */
.leitura-cab{background:var(--noite);color:var(--papel);padding-block:32px 40px}
.leitura-cab h1{font-family:var(--display);font-weight:400;font-size:clamp(34px,7vw,52px);line-height:1.05;margin:10px 0 8px}
.leitura-cab p{color:var(--suave-n);margin:0}
.comp-t{display:none;background:var(--branco);border:1px solid var(--linha);border-radius:6px;overflow:hidden}
@media (min-width:640px){.comp-t{display:block}.comp-c{display:none!important}}
table{border-collapse:collapse;width:100%;font-size:15px}
th,td{padding:14px 12px;border-bottom:1px solid var(--linha);text-align:left}
th{font:500 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--suave)}
td.n{font:500 20px var(--mono);color:var(--ceu);font-variant-numeric:tabular-nums}
tr.esc td{background:var(--lua)}
.comp-c{display:flex;flex-direction:column;gap:10px}
.comp-c .c{background:var(--branco);border:1px solid var(--linha);border-radius:6px;padding:14px}
.comp-c .c.esc{background:var(--lua);border-color:var(--ceu)}
.comp-c .c strong{display:block;font-size:16px;margin-bottom:8px;overflow-wrap:anywhere}
.comp-c dl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin:0;text-align:center}
.comp-c dt{font:500 11.5px var(--mono);text-transform:uppercase;color:var(--suave);letter-spacing:.02em}
.comp-c dd{margin:0;font:500 20px var(--mono);color:var(--ceu)}
.etq{font:500 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;background:var(--ceu);color:#fff;padding:2px 6px;border-radius:3px;margin-left:6px;white-space:nowrap}
.nota{font-size:14px;color:var(--suave);margin:12px 0 0}
.addnome{display:flex;gap:8px;margin-top:14px}
.addnome input{flex:1;min-width:0;font:16px var(--body);border:1.5px solid var(--linha);border-radius:6px;padding:12px;min-height:48px}
.addnome button{width:auto;padding:0 16px;flex:0 0 auto}
.escolha{display:flex;flex-direction:column;gap:2px;margin:10px 0 18px}
.escolha label{display:flex;gap:10px;align-items:center;min-height:44px;font-size:15.5px}
.escolha input{width:22px;height:22px;accent-color:var(--ceu)}
.capitulo{border-top:2px solid var(--noite);padding-top:18px;margin-top:40px}
.capitulo .n{font:500 12px var(--mono);letter-spacing:.1em;color:var(--ceu)}
.capitulo h2{font-family:var(--display);font-weight:400;font-size:30px;margin:6px 0 10px;line-height:1.1}
.capitulo p{color:var(--suave);margin:0 0 10px;max-width:62ch}
.harmonia{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.harmonia span{font:500 18px var(--mono);width:40px;height:40px;display:grid;place-items:center;border-radius:4px;border:1px solid var(--linha);color:var(--suave)}
.harmonia span.falta{border-style:dashed}
.harmonia span.preenche{background:var(--ceu);border-color:var(--ceu);color:#fff}
.nasc{background:var(--lua);border-radius:6px;padding:20px;display:flex;flex-direction:column;gap:12px}
.nasc .duas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mapa{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.mapa div{background:var(--branco);border-radius:6px;padding:12px 6px;text-align:center}
.mapa small{display:block;font:500 12px var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--suave)}
.mapa b{font-family:var(--display);font-weight:400;font-size:20px}
.senha{background:var(--noite);color:var(--papel);border-radius:6px;padding:22px;display:flex;flex-direction:column;gap:10px}
.senha p{margin:0;color:var(--suave-n)}

/* Minha conta */
.prod{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--linha)}
.prod strong{display:block}
.prod small{color:var(--suave)}
.prod .acao{border-radius:6px;min-height:44px;padding:0 14px;font-weight:700;font-size:14px;white-space:nowrap;border:0}
.prod .acao.ok{background:var(--ceu);color:#fff}
.prod .acao.comprar{background:var(--sol);color:var(--noite)}
.prod .breve{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--suave);white-space:nowrap}


.so-leitor{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ph{color:var(--sol)}

/* leitura completa e conta */
.texto-leitura h2{font-size:1.7rem;margin:0 0 14px}.texto-leitura h3{font-size:1.25rem;margin:28px 0 8px}
.texto-leitura p{line-height:1.7;margin:0 0 14px}
.lista-leituras{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.lista-leituras li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border:1px solid rgba(128,128,128,.3);border-radius:10px}
.btn-texto{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;padding:8px 0}
