/* ============================================================
   LANDING PAGES (/lp/...) - 04/10/2026
   Carregado SO pelo layout_lp.html. Toda regra comeca por .lp (ou por
   body.lp-pagina), entao nada aqui encosta em outra pagina do site.

   Duas regras do style.css que a landing precisa anular:
     - section { padding: 6em 0 }  -> cada bloco daqui tem o proprio espaco;
     - body { padding-top: 48px / 82px } no celular - existe por causa do
       topo FIXO do site, que a landing nao usa (ela tem o topo dela).
   Cores: as do design system do site (--b400 etc. no :root do style.css)
   e o amarelo do site; o ambar e o fundo da propria imagem do banner.
   ============================================================ */

body.lp-pagina { padding-top: 0 !important; }
/* A faixa "Consulte o seu certificado" (inc_rodape.html, section.certificados)
   nao entra na landing - pedido dele em 04/10. O rodape e o oficial; a faixa
   so some AQUI, e continua em todas as outras paginas. */
body.lp-pagina section.certificados { display: none !important; }
/* RODAPE: o mesmo rodape oficial, so com o fundo no azul-marinho da landing
   (pedido dele em 05/10). No resto do site continua o #556683 do style.css. */
body.lp-pagina footer { background: #030C1F; }
body.lp-pagina footer .rodape-base { border-top-color: rgba(255,255,255,.16); }

.lp {
	--lp-navy: #06142E; --lp-n900: #091E42; --lp-b600: #063A88; --lp-b500: #0747A6;
	--lp-b400: #0052CC; --lp-b200: #2684FF; --lp-b75: #B3D4FF; --lp-n600: #314464;
	--lp-n300: #556683; --lp-n40: #D6E0F0; --lp-nevoa: #E8EDF4; --lp-am: #FFBE00;
	--lp-ambar: #261502; --lp-am-esc: #8A5A00; --lp-areia: #FBE6A6; --lp-branco: #FFFFFF;
	--lp-tit: var(--fonte-titulo, 'Lexend', 'Segoe UI', Arial, sans-serif);
	--lp-txt: var(--fonte-texto, 'Source Sans Pro', 'Segoe UI', Arial, sans-serif);
	font-family: var(--lp-txt); color: var(--lp-n900); font-size: 17px; line-height: 1.6;
	background: var(--lp-branco);
}
.lp *, .lp *::before, .lp *::after { box-sizing: border-box; }
.lp section { padding: 0; }
.lp h1, .lp h2, .lp h3 { font-family: var(--lp-tit); margin: 0; text-wrap: balance; }
.lp p { margin: 0; }
.lp [hidden] { display: none !important; }
.lp .lp-wrap { max-width: 1180px; margin: 0 auto; padding-left: 44px; padding-right: 44px; }
.lp .lp-ic { width: 22px; height: 22px; flex: none; }
.lp .lp-eyebrow { font-family: var(--lp-tit); font-size: .82rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--lp-b400); margin-bottom: 14px; }
.lp .lp-eyebrow.lp-am { color: var(--lp-am); }
.lp .lp-eyebrow.lp-escuro { color: var(--lp-am-esc); }
.lp .lp-tit-gr { font-size: 2.4rem; line-height: 1.1; color: var(--lp-n900); letter-spacing: -.025em; font-weight: 800; }
.lp .lp-tit-xl { font-size: 3.6rem; line-height: 1.02; color: var(--lp-n900); letter-spacing: -.035em; font-weight: 800; max-width: 16ch; }
.lp .lp-claro { color: var(--lp-branco) !important; }

/* botoes - nomes proprios (lp-btn) para nao herdar nada do .btn do Bootstrap */
.lp .lp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-family: var(--lp-tit); font-weight: 700; text-decoration: none; border-radius: 8px; border: 2px solid transparent; cursor: pointer; transition: background .2s, transform .2s, box-shadow .2s, color .2s; white-space: nowrap; line-height: 1.2; }
.lp .lp-btn:hover { transform: translateY(-2px); text-decoration: none; }
.lp .lp-btn:focus-visible { outline: 3px solid var(--lp-b200); outline-offset: 2px; }
.lp .lp-btn-gr { height: 58px; padding: 0 30px; font-size: 1.05rem; }
.lp .lp-btn-am, .lp .lp-btn-am:hover { background: var(--lp-am); color: var(--lp-navy); }
.lp .lp-btn-am:hover { background: #FFD040; box-shadow: 0 10px 24px rgba(255,190,0,.35); }
.lp .lp-btn-contorno { border-color: var(--lp-b400); color: var(--lp-b400); background: transparent; }
.lp .lp-btn-contorno:hover { background: var(--lp-b400); color: var(--lp-branco); }
.lp .lp-ic-btn { width: 20px; height: 20px; flex: none; }

/* o topo da landing */
.lp .lp-top { position: sticky; top: 0; z-index: 50; background: var(--lp-branco); box-shadow: 0 1px 0 var(--lp-n40); }
.lp .lp-top-in { display: flex; align-items: center; gap: 24px; height: 78px; }
.lp .lp-logo { display: block; flex: none; line-height: 0; }
.lp .lp-logo img { height: 30px; width: auto; }
.lp .lp-ancoras { display: flex; gap: 22px; margin-left: auto; font-family: var(--lp-tit); font-size: .86rem; font-weight: 500; }
.lp .lp-ancoras a { color: var(--lp-n600); text-decoration: none; white-space: nowrap; }
.lp .lp-ancoras a:hover { color: var(--lp-b400); }
.lp .lp-btn-top { height: 46px; padding: 0 20px; font-size: .9rem; }
/* O menu de ancoras: o topo fica PRESO no alto (sticky), entao a secao tem de
   parar abaixo dele - senao o titulo some embaixo do topo. Pedido dele em 04/10
   ("Todos os Cursos nao carrega no lugar certo"). A medida e a altura do topo:
   o script do template mede o topo e grava em --lp-topo (o topo muda de altura
   com a fileira de botoes no tablet e no celular); 78px e o valor de reserva. */
.lp section[id] { scroll-margin-top: var(--lp-topo, 78px); }

/* HERO: a foto fica a esquerda e a imagem continua escura para a direita.
   A imagem segue a LARGURA (assim a cadeira de rodas termina antes do texto)
   e a borda de baixo se dissolve no ambar, que e o fundo da propria imagem. */
.lp .lp-hero { position: relative; background: var(--lp-ambar); color: var(--lp-branco); overflow: hidden; }
.lp .lp-hero-img { position: absolute; left: 0; top: 0; width: 107%; aspect-ratio: 1916 / 821; background: url(../../imagens/lp/apoio-cuidador-banner.jpg) left top / 100% auto no-repeat; -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 99%); mask-image: linear-gradient(180deg, #000 72%, transparent 99%); }
.lp .lp-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(38,21,2,0) 46%, rgba(38,21,2,.6) 56%, var(--lp-ambar) 64%); }
.lp .lp-hero-in { position: relative; z-index: 2; display: flex; justify-content: flex-end; padding-top: 72px; padding-bottom: 84px; }
.lp .lp-hero-txt { width: 40%; animation: lp-sobe .8s ease-out both; }
@keyframes lp-sobe { from { transform: translateY(14px); } to { transform: none; } }
.lp .lp-hero h1 { font-size: 2.65rem; line-height: 1.04; letter-spacing: -.035em; font-weight: 800; color: var(--lp-branco); }
.lp .lp-chamada { font-family: var(--lp-tit); font-size: 1.3rem; font-weight: 500; color: var(--lp-am); margin: 20px 0 10px; line-height: 1.35; }
.lp .lp-hero-p { font-size: 1.08rem; color: #EADBC0; margin-bottom: 24px; max-width: 54ch; }
.lp .lp-selos { list-style: none; padding: 0; margin: 0 0 32px; display: flex; flex-wrap: wrap; gap: 10px; }
.lp .lp-selos li { display: flex; align-items: center; gap: 8px; border: 1px solid rgba(255,255,255,.25); border-radius: 30px; padding: 8px 14px; font-weight: 600; font-size: .95rem; line-height: 1.2; background: rgba(255,255,255,.06); }
.lp .lp-selos .lp-ic { color: var(--lp-am); width: 20px; height: 20px; }
.lp .lp-barra-cor { position: absolute; left: 0; right: 0; bottom: 0; height: 6px; z-index: 3; display: grid; grid-template-columns: 3fr 1fr 2fr 1fr; }
.lp .lp-barra-cor i:nth-child(odd) { background: var(--lp-b400); }
.lp .lp-barra-cor i:nth-child(even) { background: var(--lp-am); }

.lp .lp-chamada-faixa { background: var(--lp-n900); color: var(--lp-branco); padding: 46px 0; text-align: center; }
.lp .lp-chamada-tit { font-size: 1.9rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 800; color: var(--lp-branco); }
.lp .lp-chamada-sub { margin-top: 10px; color: var(--lp-b75); letter-spacing: .08em; text-transform: uppercase; font-size: .92rem; font-weight: 600; }

.lp .lp-cab-2col { display: grid; grid-template-columns: 1.2fr 1fr; gap: 48px; align-items: end; margin-bottom: 44px; }
.lp .lp-cab-lado { color: var(--lp-n600); font-size: 1.15rem; }

/* DIFERENCIAIS: blocos que viram azul-escuro ao passar o mouse */
.lp .lp-dif-sec { padding: 96px 0; }
.lp .lp-dif-grid { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--lp-n40); }
.lp .lp-dif { padding: 36px 32px; border-right: 1px solid var(--lp-n40); border-bottom: 1px solid var(--lp-n40); transition: background .25s, transform .25s, box-shadow .25s; outline: none; }
.lp .lp-dif:nth-child(3n) { border-right: 0; }
.lp .lp-dif:nth-last-child(-n+3) { border-bottom: 0; }
.lp .lp-ic-dif { width: 42px; height: 42px; color: var(--lp-b400); margin-bottom: 18px; transition: color .25s; }
.lp .lp-dif h3 { font-size: 1.2rem; color: var(--lp-n900); margin-bottom: 8px; transition: color .25s; }
.lp .lp-dif p { color: var(--lp-n600); transition: color .25s; }
.lp .lp-dif:hover, .lp .lp-dif:focus-visible { position: relative; z-index: 1; background: var(--lp-n900); transform: translateY(-5px); box-shadow: 0 18px 38px rgba(9,30,66,.25); }
.lp .lp-dif:hover h3, .lp .lp-dif:focus-visible h3 { color: var(--lp-branco); }
.lp .lp-dif:hover p, .lp .lp-dif:focus-visible p { color: #C9D6EC; }
.lp .lp-dif:hover .lp-ic-dif, .lp .lp-dif:focus-visible .lp-ic-dif { color: var(--lp-am); }

/* SOBRE: o bloco amarelo */
.lp .lp-sobre-sec { background: var(--lp-areia); padding: 100px 0; }
.lp .lp-lead { font-family: var(--lp-tit); font-size: 1.3rem; font-weight: 600; color: #3B2F12; line-height: 1.55; margin: 30px 0 22px; max-width: 62ch; }
.lp .lp-sobre-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.lp .lp-sobre-cols p { color: #4A3E22; font-size: 1.08rem; }
.lp .lp-quem { margin-top: 40px; padding-top: 28px; border-top: 2px solid rgba(138,90,0,.25); display: grid; grid-template-columns: 200px 1fr; gap: 24px; }
.lp .lp-quem h3 { font-size: 1.15rem; color: var(--lp-am-esc); text-transform: uppercase; letter-spacing: .08em; }
.lp .lp-quem p { color: #4A3E22; font-size: 1.08rem; }

/* COMO FUNCIONA: cartoes 01-05 com borda azul/amarela e efeito no mouse */
.lp .lp-passos-sec { background: var(--lp-nevoa); padding: 96px 0; }
.lp .lp-passos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); }
.lp .lp-passos li { background: var(--lp-branco); border-top: 5px solid var(--lp-b400); padding: 34px 24px 32px; transition: background .25s, transform .25s, box-shadow .25s; outline: none; }
.lp .lp-passos li:nth-child(even) { border-top-color: var(--lp-am); background: #F7F9FC; }
.lp .lp-passos li + li { border-left: 1px solid var(--lp-n40); }
.lp .lp-n { display: block; font-family: var(--lp-tit); font-size: 2.8rem; font-weight: 800; letter-spacing: -.04em; color: var(--lp-b75); line-height: 1; margin-bottom: 34px; transition: color .25s; }
.lp .lp-passos h3 { font-size: 1.1rem; color: var(--lp-n900); margin-bottom: 12px; transition: color .25s; }
.lp .lp-passos p { font-size: .98rem; color: var(--lp-n600); transition: color .25s; }
.lp .lp-passos li:hover, .lp .lp-passos li:focus-visible { position: relative; z-index: 1; background: var(--lp-n900); transform: translateY(-8px); box-shadow: 0 22px 44px rgba(9,30,66,.28); }
.lp .lp-passos li:hover .lp-n, .lp .lp-passos li:focus-visible .lp-n { color: var(--lp-am); }
.lp .lp-passos li:hover h3, .lp .lp-passos li:focus-visible h3 { color: var(--lp-branco); }
.lp .lp-passos li:hover p, .lp .lp-passos li:focus-visible p { color: #C9D6EC; }

/* CONTEUDO: o bloco azul-escuro, titulo a esquerda e a lista em linhas a direita */
.lp .lp-cont-sec { background: var(--lp-navy); color: var(--lp-branco); padding: 100px 0; }
.lp .lp-cont-in { display: grid; grid-template-columns: .85fr 1.15fr; gap: 64px; align-items: start; }
.lp .lp-cont-esq { position: sticky; top: 110px; }
.lp .lp-cont-esq label { display: block; font-family: var(--lp-tit); font-weight: 600; font-size: .88rem; color: var(--lp-b75); margin: 34px 0 8px; }
.lp .lp-sel { display: block; font-family: var(--lp-tit); font-size: 1rem; color: var(--lp-n900); height: 52px; padding: 0 14px; border: 2px solid var(--lp-b400); border-radius: 8px; background: var(--lp-branco); width: 100%; max-width: 100%; }
.lp .lp-sel-esc { background: #0D2350; color: var(--lp-branco); border-color: #2B4C86; }
.lp .lp-cont-conta { color: var(--lp-b75); margin-top: 10px; font-size: .95rem; }
.lp .lp-temas { list-style: none; margin: 0; padding: 0; border-top: 1px solid #22385F; }
.lp .lp-temas li { display: flex; align-items: flex-start; gap: 14px; padding: 15px 0; border-bottom: 1px solid #22385F; font-size: 1.05rem; line-height: 1.4; color: #E1E9F7; }
.lp .lp-temas li span { min-width: 0; }
.lp .lp-ic-tema { width: 20px; height: 20px; color: #5F7BA8; flex: none; margin-top: 1px; }
.lp .lp-temas li.lp-tema-video .lp-ic-tema { color: var(--lp-am); }
.lp .lp-mais summary { cursor: pointer; font-family: var(--lp-tit); font-weight: 700; color: var(--lp-am); padding: 18px 0; list-style: none; outline: none; }
.lp .lp-mais summary::-webkit-details-marker { display: none; }
.lp .lp-mais summary::after { content: "  +"; }
.lp .lp-mais[open] summary::after { content: "  \2212"; }

/* MATRICULA */
.lp .lp-mat-sec { padding: 100px 0; }
.lp .lp-mat-in { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.lp .lp-mat-txt > p { font-size: 1.15rem; color: var(--lp-n600); margin: 16px 0; }
.lp .lp-mat-txt > p.lp-formas { display: flex; align-items: center; gap: 10px; font-weight: 700; color: var(--lp-n900); }
.lp .lp-formas .lp-ic { color: var(--lp-b400); }
.lp .lp-mat-card { background: var(--lp-branco); border: 1px solid var(--lp-n40); border-top: 6px solid var(--lp-am); border-radius: 12px; padding: 34px; box-shadow: 0 24px 60px rgba(9,30,66,.14); display: flex; flex-direction: column; gap: 12px; margin: 0; }
.lp .lp-mat-card label { font-family: var(--lp-tit); font-weight: 600; font-size: .9rem; color: var(--lp-n600); margin: 0; }
.lp .lp-preco { display: flex; flex-direction: column; gap: 2px; border-top: 1px solid var(--lp-n40); border-bottom: 1px solid var(--lp-n40); padding: 18px 0; margin-top: 6px; }
.lp .lp-preco-mod { font-family: var(--lp-tit); font-weight: 700; color: var(--lp-b400); }
.lp .lp-preco-parc { font-family: var(--lp-tit); font-size: 1.25rem; }
.lp .lp-preco-parc b { font-size: 2.8rem; color: var(--lp-n900); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.lp .lp-preco-parc small { font-size: .95rem; color: var(--lp-n600); font-weight: 500; }
.lp .lp-preco-tot { color: var(--lp-n600); }
.lp .lp-preco-tot b { color: var(--lp-n900); font-variant-numeric: tabular-nums; }
.lp .lp-mat-dl { margin: 0; display: grid; gap: 8px; }
.lp .lp-mat-dl div { display: flex; justify-content: space-between; gap: 12px; }
.lp .lp-mat-dl dt { color: var(--lp-n600); font-weight: 400; }
.lp .lp-mat-dl dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.lp .lp-btn-cheio { width: 100%; margin-top: 6px; }

/* CERTIFICACAO: a foto no lugar do selo; o canto amarelo repete a faixa do banner */
.lp .lp-mec-sec { background: var(--lp-nevoa); padding: 96px 0; }
.lp .lp-mec-in { display: grid; grid-template-columns: 440px 1fr; gap: 64px; align-items: center; isolation: isolate; }
.lp .lp-mec-foto { position: relative; aspect-ratio: 1; border-radius: 16px; background: url(../../imagens/lp/apoio-cuidador-certificado.jpg) center / cover no-repeat; box-shadow: 0 24px 50px rgba(9,30,66,.22); }
.lp .lp-mec-foto::after { content: ""; position: absolute; left: -14px; bottom: -14px; width: 44%; height: 44%; border-left: 6px solid var(--lp-am); border-bottom: 6px solid var(--lp-am); border-radius: 0 0 0 22px; z-index: -1; }
.lp .lp-mec-in p:not(.lp-eyebrow) { color: var(--lp-n600); font-size: 1.06rem; margin: 14px 0; }
.lp .lp-mec-in .lp-btn { margin-top: 8px; }

.lp .lp-todos-sec { background: var(--lp-b500); color: var(--lp-branco); padding: 60px 0; }
.lp .lp-todos-in { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.lp .lp-todos-in p { margin-top: 10px; color: var(--lp-b75); font-size: 1.1rem; max-width: 56ch; }

.lp .lp-contato-sec { padding: 96px 0; }
.lp .lp-contato-in { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.lp .lp-contato-p { color: var(--lp-n600); font-size: 1.1rem; margin-top: 14px; }
.lp .lp-canais { display: grid; gap: 14px; }
.lp .lp-canal { display: flex; align-items: center; gap: 16px; background: var(--lp-branco); border: 1px solid var(--lp-n40); border-left: 5px solid var(--lp-b400); border-radius: 10px; padding: 20px 24px; text-decoration: none; color: var(--lp-n900); transition: transform .2s, box-shadow .2s; min-width: 0; }
.lp .lp-canal:hover { transform: translateX(4px); box-shadow: 0 12px 28px rgba(9,30,66,.12); color: var(--lp-n900); text-decoration: none; }
.lp .lp-ic-canal { width: 38px; height: 38px; color: var(--lp-b400); flex: none; }
.lp .lp-canal small { display: block; font-family: var(--lp-tit); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--lp-n300); }
.lp .lp-canal b { font-family: var(--lp-tit); font-size: 1.15rem; overflow-wrap: anywhere; }

.lp .lp-final-sec { position: relative; background: radial-gradient(circle at 15% 0, var(--lp-b500) 0, transparent 55%), var(--lp-navy); color: var(--lp-branco); padding: 100px 0; text-align: center; }
.lp .lp-final-in h2 { font-size: 2.8rem; line-height: 1.08; letter-spacing: -.03em; font-weight: 800; max-width: 18ch; margin: 0 auto; color: var(--lp-branco); }
.lp .lp-final-in p { font-size: 1.15rem; color: #C9D6EC; margin: 18px auto 32px; max-width: 52ch; }

/* ---- o topo: abaixo de 1200px os 7 links + o botao nao cabem numa linha (o topo
   pedia 1.188px numa tela de 1.024 - medido em 04/10), entao o menu vira a fileira
   de botoes que rola para o lado. O resto da pagina so muda abaixo de 992. ---- */
@media (max-width: 1199.98px) {
	.lp .lp-btn-top { margin-left: auto; }
	/* O menu de ancoras vira uma fileira de botoes que ROLA PARA O LADO - abaixo de 1200px
	   (notebook pequeno, tablet e celular). 04/10, pedido dele ("o menu nao esta correndo para o lado" e "o item
	   selecionado esta sendo cortado"):
	     - no computador, o script do template faz a roda do mouse rolar para o lado e
	       deixa ARRASTAR com o mouse; a barra de rolagem fica escondida - ele achou
	       "esteticamente melhor" sem ela (04/10);
	     - folga de 4px em volta e o destaque do foco DESENHADO PARA DENTRO do botao
	       (outline-offset negativo) - a borda de fora era cortada pela fileira;
	     - antes, no tablet (768-991), o menu simplesmente sumia. */
	.lp .lp-top-in { flex-wrap: wrap; height: auto; padding-top: 12px; gap: 10px; }
	.lp .lp-ancoras { display: flex; order: 3; width: 100%; margin: 0; overflow-x: auto; overflow-y: hidden; gap: 8px; padding: 4px 4px 8px; scrollbar-width: none; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
	.lp .lp-ancoras::-webkit-scrollbar { display: none; }
	.lp .lp-ancoras a { flex: none; background: var(--lp-nevoa); border-radius: 20px; padding: 6px 12px; font-size: .8rem; scroll-snap-align: start; }
	.lp .lp-ancoras a:focus { outline: none; }
	.lp .lp-ancoras a:focus-visible { outline: 2px solid var(--lp-b400); outline-offset: -2px; }
	/* arrastar com o mouse: a maozinha avisa que da para arrastar; enquanto arrasta, o
	   encaixe (snap) sai para nao brigar com o movimento, e o texto nao e selecionado */
	.lp .lp-ancoras { cursor: grab; user-select: none; -webkit-user-select: none; }
	.lp .lp-ancoras.lp-arrastando { cursor: grabbing; scroll-snap-type: none; }
	.lp .lp-ancoras.lp-arrastando a { cursor: grabbing; }
}

/* ---- tablet: o banner passa para o formato de celular abaixo de 992 ---- */
@media (max-width: 991.98px) {
	.lp .lp-hero-img { width: 100%; height: 340px; aspect-ratio: auto; background-size: auto 340px; -webkit-mask-image: none; mask-image: none; }
	.lp .lp-hero::before { background: linear-gradient(180deg, rgba(38,21,2,0) 170px, rgba(38,21,2,.75) 270px, var(--lp-ambar) 340px); }
	.lp .lp-hero-in { padding-top: 290px; padding-bottom: 64px; }
	.lp .lp-hero-txt { width: 100%; }
	.lp .lp-passos { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	/* MEC no tablet: a foto de 440px + o botao que nao quebrava linha empurravam a
	   pagina para 884px numa tela de 768 (medido em 04/10). Colunas proporcionais
	   e o botao pode quebrar a linha. */
	.lp .lp-mec-in { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 36px; }
	.lp .lp-mec-in .lp-btn { white-space: normal; height: auto; min-height: 58px; padding: 10px 22px; text-align: center; }
	.lp .lp-passos li + li { border-left: 0; }
}

/* ---- celular ---- */
@media (max-width: 767.98px) {
	.lp { font-size: 16px; }
	.lp .lp-wrap { padding-left: 18px; padding-right: 18px; }
	.lp .lp-logo img { height: 24px; }
	.lp .lp-btn-top { height: 38px; padding: 0 14px; font-size: .8rem; }
	.lp .lp-hero-img { height: 300px; background-size: auto 300px; }
	.lp .lp-hero::before { background: linear-gradient(180deg, rgba(38,21,2,0) 150px, rgba(38,21,2,.75) 240px, var(--lp-ambar) 300px); }
	.lp .lp-hero-in { padding-top: 250px; }
	.lp .lp-hero h1 { font-size: 2rem; }
	.lp .lp-chamada { font-size: 1.1rem; }
	.lp .lp-hero .lp-btn { width: 100%; }
	.lp .lp-chamada-faixa { padding: 36px 0; }
	.lp .lp-chamada-tit { font-size: 1.25rem; }
	.lp .lp-chamada-sub { font-size: .8rem; }
	.lp .lp-tit-gr { font-size: 1.75rem; }
	.lp .lp-tit-xl { font-size: 2.3rem; }
	.lp .lp-cab-2col { grid-template-columns: 1fr; gap: 12px; margin-bottom: 28px; }
	.lp .lp-cab-lado { font-size: 1rem; }
	.lp .lp-dif-sec, .lp .lp-sobre-sec, .lp .lp-passos-sec, .lp .lp-cont-sec, .lp .lp-mat-sec, .lp .lp-mec-sec, .lp .lp-contato-sec, .lp .lp-final-sec { padding: 60px 0; }
	.lp .lp-dif-grid { grid-template-columns: 1fr; }
	.lp .lp-dif { border-right: 0 !important; border-bottom: 1px solid var(--lp-n40) !important; padding: 24px 22px; }
	.lp .lp-dif:last-child { border-bottom: 0 !important; }
	.lp .lp-lead { font-size: 1.1rem; }
	.lp .lp-sobre-cols { grid-template-columns: 1fr; gap: 16px; }
	.lp .lp-quem { grid-template-columns: 1fr; gap: 8px; }
	.lp .lp-passos { grid-template-columns: 1fr; }
	.lp .lp-passos li { padding: 24px 22px; }
	.lp .lp-n { font-size: 2.2rem; margin-bottom: 16px; }
	.lp .lp-cont-in { grid-template-columns: 1fr; gap: 28px; }
	.lp .lp-cont-esq { position: static; }
	.lp .lp-mat-in, .lp .lp-contato-in { grid-template-columns: 1fr; gap: 28px; }
	.lp .lp-mat-card { padding: 24px; }
	.lp .lp-preco-parc b { font-size: 2.3rem; }
	.lp .lp-mec-in { grid-template-columns: 1fr; gap: 22px; }
	.lp .lp-mec-foto { aspect-ratio: 4 / 3; background-position: center 62%; }
	.lp .lp-mec-foto::after { left: -8px; bottom: -8px; border-width: 4px; }
	.lp .lp-mec-in .lp-btn, .lp .lp-todos-in .lp-btn, .lp .lp-final-in .lp-btn { width: 100%; white-space: normal; height: auto; min-height: 58px; padding-top: 10px; padding-bottom: 10px; }
	.lp .lp-todos-in { flex-direction: column; align-items: stretch; gap: 22px; }
	.lp .lp-final-in h2 { font-size: 1.9rem; }
}

/* ---- celular em pe: o banner proprio, quadrado (pedido dele em 05/10). A imagem ocupa a
   largura toda e a altura acompanha (1:1); o texto entra onde ela ja escureceu. Acima de
   576px a imagem larga mostra a foto inteira e continua valendo. ---- */
@media (max-width: 575.98px) {
	.lp .lp-hero-img { height: auto; aspect-ratio: 1 / 1; background: url(../../imagens/lp/apoio-cuidador-banner-mobile.jpg) center top / 100% auto no-repeat; }
	.lp .lp-hero::before { background: linear-gradient(180deg, rgba(38,21,2,0) 50vw, rgba(38,21,2,.75) 76vw, var(--lp-ambar) 96vw); }
	.lp .lp-hero-in { padding-top: 74vw; }
}

@media (prefers-reduced-motion: reduce) {
	.lp * { animation: none !important; transition: none !important; }
}
