/* Política de Privacidade (LGPD/index.php) e formulário LGPD (formulariolgpd.html).
   Complementa o stylehome.css: usa as mesmas cores, botões, topo e rodapé. */

#conteudo:focus { outline: none; }

.link-botao {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: var(--navy);
    font-weight: 600;
    text-decoration: underline;
    cursor: pointer;
}
.link-botao:hover { color: var(--ouro-texto); }

/* ---------- Abertura ---------- */
.pp-abertura {
    background: linear-gradient(180deg, var(--fundo) 0%, #fbfcfe 100%);
    border-bottom: 1px solid var(--linha);
    padding: 56px 0 60px;
}
.pp-abertura-grade {
    display: grid;
    grid-template-columns: 1.3fr .7fr;
    gap: 48px;
    align-items: center;
}
.pp-abertura h1 { font-size: clamp(28px, 4vw, 42px); margin-bottom: 16px; }
.pp-abertura .lead { font-size: 17.5px; color: var(--suave); margin: 0 0 22px; max-width: 640px; }
.pp-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin: 0 0 26px;
    padding: 0;
    list-style: none;
    font-size: 14px;
    color: var(--suave);
}
.pp-meta li { display: inline-flex; align-items: center; gap: 7px; }
.pp-meta i { color: var(--ouro-texto); }
.pp-botoes { display: flex; flex-wrap: wrap; gap: 12px; }
.pp-abertura figure { margin: 0; display: flex; justify-content: center; }
.pp-abertura figure img { max-height: 340px; width: auto; filter: drop-shadow(0 18px 30px rgba(11, 17, 40, .18)); }

/* ---------- Resumo ---------- */
.resumo { padding: 56px 0 24px; }
.resumo-grade {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}
.resumo-card {
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: var(--raio);
    padding: 22px;
}
.resumo-card .icone,
.secao-numero {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: var(--navy);
    color: var(--ouro);
    font-size: 18px;
    flex-shrink: 0;
}
.resumo-card h3 { font-size: 18px; margin: 14px 0 6px; }
.resumo-card p { margin: 0; font-size: 15px; color: var(--suave); }
.resumo-card a { color: var(--navy); font-weight: 600; overflow-wrap: anywhere; }

/* ---------- Sumário ---------- */
.sumario {
    margin: 32px 0 0;
    background: var(--fundo);
    border: 1px solid var(--linha);
    border-radius: var(--raio);
    padding: 22px 24px;
}
.sumario h2 { font-size: 20px; margin-bottom: 14px; }
.sumario ol {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: item;
    columns: 3;
    column-gap: 28px;
}
.sumario li { counter-increment: item; break-inside: avoid; margin-bottom: 4px; }
.sumario a {
    display: flex;
    gap: 10px;
    padding: 7px 4px;
    color: var(--texto);
    text-decoration: none;
    font-size: 15px;
    border-radius: 8px;
}
.sumario a::before {
    content: counter(item);
    min-width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--branco);
    border: 1px solid #cfd6e3;
    color: var(--ouro-texto);
    font-size: 12.5px;
    font-weight: 700;
    display: grid;
    place-items: center;
}
.sumario a:hover { background: var(--branco); color: var(--navy); }

/* ---------- Seções da política ---------- */
.pp-secao { padding: 56px 0; border-top: 1px solid var(--linha); }
.pp-secao.cinza { background: var(--fundo); }
.pp-cabecalho { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 22px; max-width: 820px; }
.pp-cabecalho h2 { font-size: clamp(23px, 2.6vw, 30px); }
.pp-cabecalho p { margin: 6px 0 0; color: var(--suave); }

.pp-texto { max-width: 820px; font-size: 16.5px; }
.pp-texto p { margin: 0 0 14px; }
.pp-texto ul, .pp-texto ol { margin: 0 0 14px; padding-left: 22px; }
.pp-texto li { margin-bottom: 6px; }
.pp-texto a { color: var(--navy); font-weight: 600; }

.pp-duas {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 40px;
    align-items: start;
}
.pp-figura { margin: 0; }
.pp-figura img {
    width: 100%;
    border-radius: var(--raio);
    border: 1px solid var(--linha);
    background: var(--branco);
}
.pp-figura figcaption { font-size: 13.5px; color: var(--suave); margin-top: 8px; text-align: center; }

/* Ficha de dados (quem somos, responsável técnico) */
.ficha {
    list-style: none;
    margin: 0 0 18px;
    padding: 0;
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: var(--raio);
}
.ficha li {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 12px;
    padding: 12px 18px;
    border-bottom: 1px solid var(--linha);
    font-size: 15px;
}
.ficha li:last-child { border-bottom: 0; }
.ficha .rotulo { font-weight: 600; color: var(--suave); font-size: 13px; text-transform: uppercase; letter-spacing: .04em; padding-top: 2px; }
.ficha .valor { overflow-wrap: anywhere; }
.ficha a { color: var(--navy); font-weight: 600; }

/* Caixas de destaque */
.aviso {
    display: flex;
    gap: 14px;
    padding: 16px 18px;
    border-radius: 12px;
    border: 1px solid #e8d9b5;
    background: #fbf6ea;
    margin: 18px 0;
    font-size: 15.5px;
    max-width: 820px;
}
.aviso > i { color: var(--ouro-texto); font-size: 19px; margin-top: 3px; }
.aviso p { margin: 0; }
.aviso p + p { margin-top: 8px; }
.aviso strong { color: var(--navy); }
.aviso.azul { background: #eef3fb; border-color: #cfdcf1; }
.aviso.azul > i { color: #2d5aa6; }
.aviso.verde { background: #ecf8f1; border-color: #c4e8d2; }
.aviso.verde > i { color: var(--whats); }

/* Cartões genéricos em grade */
.cartoes {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}
.cartoes.dois { grid-template-columns: repeat(2, 1fr); }
.cartao {
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: var(--raio);
    padding: 20px;
    display: flex;
    flex-direction: column;
}
.cartao > img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: contain;
    background: var(--fundo);
    border-radius: 10px;
    margin-bottom: 14px;
}
.cartao h3 { font-size: 18px; margin-bottom: 6px; display: flex; gap: 10px; align-items: center; }
.cartao h3 i { color: var(--ouro-texto); font-size: 17px; }
.cartao p { margin: 0; font-size: 15px; color: var(--suave); }
.cartao p + p { margin-top: 8px; }

/* Glossário com os cartões ilustrados */
.glossario {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 22px;
}
.termo {
    display: flex;
    gap: 16px;
    align-items: center;
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: var(--raio);
    padding: 14px;
}
.termo img { width: 86px; height: auto; border-radius: 8px; flex-shrink: 0; }
.termo h3 { font-size: 17px; margin-bottom: 4px; }
.termo p { margin: 0; font-size: 14.5px; color: var(--suave); }

/* Princípios */
.principios {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
}
.principio {
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: var(--raio);
    padding: 16px 14px;
    text-align: center;
}
.principio img { width: 84px; height: 84px; object-fit: contain; margin: 0 auto 10px; }
.principio h3 { font-size: 16px; margin-bottom: 4px; }
.principio p { margin: 0; font-size: 14px; color: var(--suave); line-height: 1.45; }

/* Lista com ícones (finalidades, segurança, compartilhamento) */
.lista-icones { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 10px; max-width: 820px; }
.lista-icones li {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: 12px;
    padding: 14px 16px;
    font-size: 15.5px;
}
.lista-icones li > i {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    display: grid;
    place-items: center;
    background: #eef2f8;
    color: var(--navy);
    font-size: 15px;
    flex-shrink: 0;
}
.lista-icones strong { color: var(--navy); display: block; }
.lista-icones span { color: var(--suave); }
.lista-icones.duas-colunas { grid-template-columns: repeat(2, 1fr); max-width: none; }

/* Prazos de guarda: tabela no computador, cartões no celular */
.tabela-prazos { width: 100%; border-collapse: collapse; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; font-size: 15px; }
.tabela-prazos th, .tabela-prazos td { text-align: left; padding: 13px 16px; border-bottom: 1px solid var(--linha); vertical-align: top; }
.tabela-prazos th { background: var(--navy); color: #fff; font-weight: 600; font-size: 14px; }
.tabela-prazos tr:last-child td { border-bottom: 0; }
.tabela-prazos td:first-child { font-weight: 600; color: var(--navy); }

/* Direitos */
.direitos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.direito {
    background: var(--branco);
    border: 1px solid var(--linha);
    border-left: 4px solid var(--ouro);
    border-radius: 12px;
    padding: 16px 18px;
}
.direito h3 { font-size: 17px; margin-bottom: 4px; display: flex; gap: 10px; align-items: center; }
.direito h3 i { color: var(--whats); font-size: 16px; }
.direito p { margin: 0; font-size: 14.5px; color: var(--suave); }
.direito .no-cartorio { margin-top: 8px; font-size: 13.5px; color: #6b5420; background: #fbf6ea; border-radius: 8px; padding: 8px 10px; }

/* Passo a passo */
.passos { list-style: none; margin: 0; padding: 0; counter-reset: passo; display: grid; gap: 12px; }
.passos li {
    counter-increment: passo;
    display: flex;
    gap: 14px;
    align-items: flex-start;
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: 12px;
    padding: 14px 16px;
    font-size: 15.5px;
}
.passos li::before {
    content: counter(passo);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--ouro);
    color: var(--navy);
    font-weight: 800;
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
.passos strong { color: var(--navy); }
.passos a { color: var(--navy); font-weight: 600; overflow-wrap: anywhere; }

/* Responsável técnico e Encarregada */
.pessoa-card {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 28px;
    align-items: start;
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: 18px;
    padding: 26px;
    box-shadow: var(--sombra);
}
.pessoa-card > img { width: 100%; border-radius: 12px; background: var(--fundo); }
.pessoa-card .selo { margin-bottom: 8px; }
.pessoa-card h3 { font-size: 23px; margin-bottom: 2px; }
.pessoa-card .cargo { color: var(--suave); margin: 0 0 16px; }
.pessoa-card .ficha { margin-bottom: 16px; }
.pessoa-card .pp-botoes .btn { white-space: normal; text-align: center; }
.pessoa-card.destaque { border: 2px solid var(--ouro); }

/* Órgãos de referência */
.orgaos { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: center; }
.orgaos a {
    display: grid;
    place-items: center;
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: 12px;
    padding: 10px 14px;
    height: 76px;
    min-width: 150px;
    transition: border-color .2s, box-shadow .2s;
}
.orgaos a:hover { border-color: #cdd5e2; box-shadow: var(--sombra); }
.orgaos img { max-height: 56px; width: auto; }

/* Rodapé da política */
.rodape-pp .rodape-grade { grid-template-columns: 1.3fr 1fr 1.1fr 1.1fr; }
.rodape-pp .rodape-texto { margin: 0 0 6px; }
.rodape-pp .rodape-pequeno { font-size: 13px; color: #8790a6; }
.rodape-pp .rodape-orgaos { margin-top: 36px; }
.rodape-pp .rodape-orgaos .orgaos a { background: #fff; border-color: transparent; }
.rodape-base a { color: #b9c1d3; }
.rodape-base a:hover { color: #fff; }

.voltar-topo {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 40;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 0;
    display: grid;
    place-items: center;
    background: var(--navy);
    color: var(--ouro);
    font-size: 18px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, .2);
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s;
}
.voltar-topo.visivel { opacity: 1; pointer-events: auto; }

/* ---------- Formulário LGPD ---------- */
.form-lgpd { padding: 40px 0 64px; }
.form-lgpd .container { max-width: 900px; }
.form-intro { margin-bottom: 26px; }
.form-intro h1 { font-size: clamp(26px, 3.4vw, 36px); margin-bottom: 10px; }
.form-intro p { color: var(--suave); margin: 0 0 10px; font-size: 16.5px; }

.form-bloco {
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: var(--raio);
    padding: 22px 24px;
    margin: 0 0 18px;
}
.form-bloco legend,
.form-bloco .titulo-bloco {
    font-family: 'Lora', Georgia, serif;
    font-weight: 700;
    font-size: 19px;
    color: var(--navy);
    padding: 0 6px;
    margin-left: -6px;
}
.form-bloco .ajuda { margin: 4px 0 14px; color: var(--suave); font-size: 14.5px; }

.campos { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 18px; }
.campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.campo.inteiro { grid-column: 1 / -1; }
.campo label { font-weight: 600; font-size: 14.5px; color: var(--texto); }
.campo label .obrig { color: #b42318; }
.campo label .opcional { font-weight: 400; color: var(--suave); font-size: 13px; }
.campo input,
.campo select,
.campo textarea {
    width: 100%;
    font: inherit;
    font-size: 16px;
    color: var(--texto);
    background: #fff;
    border: 1px solid #c4ccd9;
    border-radius: 10px;
    padding: 11px 13px;
    min-height: 46px;
}
.campo textarea { min-height: 110px; resize: vertical; }
.campo input:focus,
.campo select:focus,
.campo textarea:focus { outline: 3px solid rgba(201, 167, 92, .45); outline-offset: 0; border-color: var(--ouro-texto); }
.campo input[aria-invalid="true"] { border-color: #b42318; }
.campo .erro { color: #b42318; font-size: 13.5px; min-height: 0; }
.campo .erro:empty { display: none; }

.opcoes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.opcao {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    border: 1px solid var(--linha);
    border-radius: 12px;
    padding: 13px 14px;
    cursor: pointer;
    background: #fff;
    transition: border-color .15s, background .15s;
}
.opcao:hover { border-color: #c4ccd9; }
.opcao input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--navy); flex-shrink: 0; }
.opcao > span { display: block; min-width: 0; }
.opcao strong { display: block; color: var(--navy); font-size: 15px; line-height: 1.35; }
.opcao > span > span { display: block; color: var(--suave); font-size: 13.5px; line-height: 1.45; margin-top: 2px; }
.opcao:has(input:checked) { border-color: var(--navy); background: #f3f6fb; }
.opcoes.linha { grid-template-columns: repeat(3, 1fr); }
.grupo-erro { color: #b42318; font-size: 14px; margin: 10px 0 0; }
.grupo-erro:empty { display: none; }

.declaracao { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; }
.declaracao input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--navy); flex-shrink: 0; }

.assinatura { display: none; }

.form-acoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.form-acoes .btn { flex: 1 1 220px; white-space: normal; }

.envio {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    margin: 0 0 18px;
}
.envio .cartao h3 { font-size: 17px; }
.envio .cartao a { color: var(--navy); font-weight: 600; overflow-wrap: anywhere; }

.so-impressao { display: none; }

/* ---------- Responsivo ---------- */
@media (max-width: 1100px) {
    .principios { grid-template-columns: repeat(3, 1fr); }
    .sumario ol { columns: 2; }
    .rodape-pp .rodape-grade { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
    .pp-abertura-grade, .pp-duas { grid-template-columns: 1fr; gap: 28px; }
    .pp-abertura figure img { max-height: 220px; }
    .resumo-grade, .cartoes { grid-template-columns: repeat(2, 1fr); }
    .pessoa-card { grid-template-columns: 1fr; }
    .pessoa-card > img { max-width: 260px; }
    .lista-icones.duas-colunas { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .pp-abertura { padding: 32px 0 40px; }
    .pp-abertura figure img { max-height: 160px; }
    .rodape-pp .rodape-grade { grid-template-columns: 1fr; gap: 28px; }
    .pp-botoes .btn { flex: 1 1 100%; }
    .resumo { padding-top: 36px; }
    .resumo-grade, .cartoes, .cartoes.dois, .glossario, .direitos, .campos, .opcoes, .opcoes.linha, .envio { grid-template-columns: 1fr; }
    .principios { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .principio img { width: 64px; height: 64px; }
    .sumario { padding: 18px; }
    .sumario ol { columns: 1; }
    .pp-secao { padding: 40px 0; }
    .pp-cabecalho { gap: 12px; }
    .secao-numero { width: 38px; height: 38px; font-size: 15px; }
    .ficha li { grid-template-columns: 1fr; gap: 2px; }
    .pessoa-card { padding: 20px; }
    .form-bloco { padding: 18px 16px; }
    .tabela-prazos thead { display: none; }
    .tabela-prazos, .tabela-prazos tbody, .tabela-prazos tr, .tabela-prazos td { display: block; width: 100%; }
    .tabela-prazos tr { border-bottom: 1px solid var(--linha); padding: 8px 0; }
    .tabela-prazos tr:last-child { border-bottom: 0; }
    .tabela-prazos td { border-bottom: 0; padding: 4px 16px; }
    .tabela-prazos td::before { content: attr(data-rotulo); display: block; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--suave); }
    .voltar-topo { right: 16px; bottom: 16px; }
    .orgaos a { min-width: 0; flex: 1 1 140px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}

/* ---------- Impressão ---------- */
@media print {
    @page { margin: 14mm; }
    body { font-size: 11.5pt; color: #000; background: #fff; }
    .topo, .rodape, .voltar-topo, .pular, .nao-imprimir, .form-acoes, .whats-flutuante { display: none !important; }
    .so-impressao { display: block; }
    .pp-secao, .pp-abertura, .form-lgpd { padding: 12px 0; border: 0; background: #fff; }
    .form-bloco, .cartao, .termo, .principio, .direito, .pessoa-card { break-inside: avoid; box-shadow: none; }
    .form-bloco { border: 1px solid #999; padding: 10px 14px; margin-bottom: 10px; }
    .opcao { border: 0; padding: 3px 0; }
    .opcao > span > span { display: none; }
    .opcoes, .opcoes.linha { gap: 2px 16px; }
    .campo input, .campo textarea, .campo select { border: 0; border-bottom: 1px solid #555; border-radius: 0; padding: 4px 0; min-height: 0; }
    .campo textarea { min-height: 60px; }
    .assinatura { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 36px; }
    .assinatura div { border-top: 1px solid #000; padding-top: 6px; text-align: center; font-size: 10.5pt; }
    a[href^="http"]::after { content: ""; }
}
