/* ============================================================
   PÁGINAS DE CONTEÚDO PÚBLICO (Privacidade, Carta de Serviços, etc.)
   Estilo de leitura otimizado: tipografia confortável, espaços
   generosos, hierarquia clara, ótima acessibilidade.
   ============================================================ */
.pub-conteudo-section { padding: 1.5rem 0 3rem; }

.pub-conteudo-header {
    display: flex; gap: 1rem; align-items: flex-start;
    padding: 1.5rem 0;
    border-bottom: 2px solid var(--line);
    margin-bottom: 1.5rem;
}
.pub-conteudo-header-icon {
    width: 56px; height: 56px;
    background: var(--magenta-50); color: var(--magenta);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.pub-conteudo-breadcrumb {
    display: inline-flex; align-items: center; gap: .375rem;
    font-size: .8125rem; color: var(--muted); margin-bottom: .25rem;
}
.pub-conteudo-breadcrumb a {
    color: var(--magenta); text-decoration: none;
    display: inline-flex; align-items: center; gap: .25rem;
}
.pub-conteudo-breadcrumb a:hover { text-decoration: underline; }
.pub-conteudo-section h1 { font-size: 1.875rem; color: var(--ink); margin-bottom: .375rem; }
.pub-conteudo-subtitle { color: var(--ink-2); font-size: .9375rem; line-height: 1.55; max-width: 760px; }

/* Sumário (TOC) */
.pub-conteudo-toc {
    background: var(--paper);
    border: 1px solid var(--line);
    border-left: 4px solid var(--cyan);
    border-radius: var(--border-radius, 8px);
    padding: 1rem 1.25rem;
    margin-bottom: 2rem;
}
.pub-conteudo-toc h2 {
    font-size: .875rem; text-transform: uppercase; letter-spacing: .04em;
    color: var(--ink-2); margin-bottom: .5rem;
}
.pub-conteudo-toc ol { padding-left: 1.25rem; margin: 0; }
.pub-conteudo-toc li { margin-bottom: .25rem; font-size: .9375rem; }
.pub-conteudo-toc a { color: var(--magenta); text-decoration: none; }
.pub-conteudo-toc a:hover { text-decoration: underline; }

/* Conteúdo principal — tipografia legível */
.pub-conteudo-main {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--border-radius, 8px);
    padding: 2rem 2.25rem;
    color: var(--ink-2);
    font-size: 1rem;
    line-height: 1.7;
    max-width: 860px;
}
.pub-conteudo-main h2 {
    font-size: 1.375rem;
    color: var(--ink);
    margin: 2rem 0 .75rem;
    padding-bottom: .375rem;
    border-bottom: 1px solid var(--line);
    scroll-margin-top: 90px;
}
.pub-conteudo-main h2:first-child { margin-top: 0; }
.pub-conteudo-main h3 {
    font-size: 1.0625rem;
    color: var(--ink);
    margin: 1.5rem 0 .5rem;
}
.pub-conteudo-main p {
    margin-bottom: 1rem;
}
.pub-conteudo-main strong { color: var(--ink); }
.pub-conteudo-main ul, .pub-conteudo-main ol {
    margin-bottom: 1rem;
    padding-left: 1.5rem;
}
.pub-conteudo-main li { margin-bottom: .375rem; }
.pub-conteudo-main a {
    color: var(--magenta);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.pub-conteudo-main a:hover { color: var(--magenta-600); }

.pub-conteudo-main blockquote {
    border-left: 4px solid var(--cyan);
    background: var(--cyan-50);
    padding: 1rem 1.25rem;
    margin: 1.25rem 0;
    border-radius: 0 6px 6px 0;
    color: var(--ink-2);
    font-style: normal;
}
.pub-conteudo-main blockquote p:last-child { margin-bottom: 0; }

.pub-conteudo-main code {
    background: var(--bg);
    padding: .125rem .375rem;
    border-radius: 4px;
    font-size: .9em;
    color: var(--ink);
}

/* Callout de info/aviso */
.pub-callout {
    display: flex; gap: .75rem;
    padding: 1rem 1.25rem;
    background: var(--magenta-50);
    border-left: 4px solid var(--magenta);
    border-radius: 0 6px 6px 0;
    margin: 1.25rem 0;
}
.pub-callout-icon {
    color: var(--magenta);
    flex-shrink: 0;
}
.pub-callout-body {
    flex: 1; color: var(--ink-2);
}
.pub-callout-body strong { color: var(--ink); }
.pub-callout-body p:last-child { margin-bottom: 0; }

.pub-callout--info { background: var(--cyan-50); border-left-color: var(--cyan); }
.pub-callout--info .pub-callout-icon { color: var(--cyan); }

/* Cards de serviço (Carta de Serviços) */
.pub-servico-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
    margin: 1.5rem 0;
}
.pub-servico-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--border-radius, 8px);
    padding: 1.25rem;
    transition: border-color .15s, transform .12s, box-shadow .2s;
}
.pub-servico-card:hover {
    border-color: var(--magenta);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(15,23,42,.08);
}
.pub-servico-card-head {
    display: flex; align-items: center; gap: .5rem;
    margin-bottom: .625rem;
}
.pub-servico-card-icon {
    width: 36px; height: 36px;
    background: var(--magenta-50); color: var(--magenta);
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.pub-servico-card h3 {
    font-size: 1rem; color: var(--ink);
    margin: 0;
    line-height: 1.3;
}
.pub-servico-card-meta {
    display: flex; flex-wrap: wrap; gap: .375rem;
    margin: .5rem 0 .75rem;
}
.pub-servico-card-tag {
    display: inline-flex; align-items: center; gap: .25rem;
    padding: .1875rem .5rem;
    background: var(--bg); color: var(--ink-2);
    border-radius: 999px;
    font-size: .75rem; font-weight: 600;
}
.pub-servico-card-tag svg { color: var(--muted); }
.pub-servico-card p {
    font-size: .875rem; color: var(--ink-2);
    line-height: 1.5; margin-bottom: .75rem;
}
.pub-servico-card-foot {
    margin-top: .75rem;
    padding-top: .625rem;
    border-top: 1px dashed var(--line);
    font-size: .8125rem;
    color: var(--muted);
    display: flex; align-items: center; gap: .375rem;
    flex-wrap: wrap;
}

/* Tabela de direitos (LGPD) */
.pub-direitos-table {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0;
    font-size: .9375rem;
}
.pub-direitos-table th,
.pub-direitos-table td {
    padding: .75rem;
    text-align: left;
    border-bottom: 1px solid var(--line);
    vertical-align: top;
}
.pub-direitos-table th {
    background: var(--bg);
    color: var(--ink);
    font-weight: 700;
    font-size: .8125rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.pub-direitos-table tr:hover { background: var(--magenta-50); }

/* Última atualização (rodapé do conteúdo) */
.pub-conteudo-footer {
    margin-top: 2rem;
    padding: 1rem 1.25rem;
    background: var(--bg);
    border-radius: 6px;
    font-size: .8125rem;
    color: var(--muted);
    display: flex; align-items: center; gap: .375rem;
    flex-wrap: wrap;
}

/* Responsivo */
@media (max-width: 640px) {
    .pub-conteudo-section h1 { font-size: 1.5rem; }
    .pub-conteudo-header { flex-direction: column; }
    .pub-conteudo-main { padding: 1.25rem; }
    .pub-conteudo-main h2 { font-size: 1.25rem; }
}
