/* === Estilos no críticos === */
:root{--shadow:0 2px 8px rgba(0,0,0,.06)}

article ul,article ol{margin:0 0 1rem 1.25rem;padding:0}
article li{margin-bottom:.4rem}
article figure{margin:1.5rem 0}
article img{border-radius:var(--r);box-shadow:var(--shadow)}
article blockquote{border-left:4px solid var(--c-primary);padding:.75rem 1rem;background:var(--c-soft);margin:1.5rem 0;color:var(--c-muted);font-style:italic}
article hr{border:0;border-top:1px solid var(--c-line);margin:2rem 0}
article table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.95rem}
article th,article td{border:1px solid var(--c-line);padding:.6rem .8rem;text-align:left}
article th{background:var(--c-soft);font-weight:600}

.lead{font-size:1.125rem;color:var(--c-muted);margin-bottom:1.5rem}

/* TOC */
.toc{background:var(--c-soft);border:1px solid var(--c-line);border-radius:var(--r);padding:1rem 1.25rem;margin:1.5rem 0}
.toc summary{font-weight:600;cursor:pointer;list-style:none;padding-left:1.25rem;position:relative}
.toc summary::before{content:"▾";position:absolute;left:0;transition:transform .15s}
.toc[open] summary::before{transform:rotate(0deg)}
.toc:not([open]) summary::before{transform:rotate(-90deg)}
.toc ol{margin:.75rem 0 0 1.25rem;padding:0;font-size:.95rem}
.toc li{margin-bottom:.25rem}
.toc .toc-sub{margin-left:1rem;font-size:.9rem;color:var(--c-muted)}
.toc a{text-decoration:none}
.toc a:hover{text-decoration:underline}

/* CTA box */
.cta-box{background:var(--c-soft);border:1px solid var(--c-line);border-radius:var(--r);padding:2rem;margin:2.5rem auto;text-align:center;max-width:780px}
.cta-box h2{margin-top:0}
.cta-box p{color:var(--c-muted);margin-bottom:1.5rem}

/* Related */
.related{margin:3rem auto;max-width:780px}
.related h2{font-size:1.3rem;border-bottom:2px solid var(--c-primary);padding-bottom:.5rem;display:inline-block}
.related-list{list-style:none;padding:0;margin:1rem 0;display:grid;grid-template-columns:1fr;gap:.75rem}
@media(min-width:640px){.related-list{grid-template-columns:1fr 1fr}}
.related-list li{margin:0}
.related-list a{display:block;padding:1rem;background:var(--c-soft);border-radius:var(--r);text-decoration:none;color:var(--c-text);border:1px solid var(--c-line);transition:border-color .15s,transform .15s}
.related-list a:hover{border-color:var(--c-primary);transform:translateY(-2px)}

/* Hero home */
.hero{padding:3rem 0;background:linear-gradient(180deg,var(--c-soft) 0%,#fff 100%)}
.hero h1{margin-top:0}
.hero-grid{display:grid;grid-template-columns:1fr;gap:2rem;align-items:center}
@media(min-width:768px){.hero-grid{grid-template-columns:1fr 1fr}}

/* Card grid hubs */
.hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin:2rem 0}
.hub-card{background:#fff;border:1px solid var(--c-line);border-radius:var(--r);padding:1.25rem;text-decoration:none;color:var(--c-text);transition:transform .15s,border-color .15s}
.hub-card:hover{border-color:var(--c-primary);transform:translateY(-2px);color:var(--c-text)}
.hub-card h3{margin:0 0 .25rem;font-size:1.05rem;color:var(--c-primary)}
.hub-card p{margin:0;color:var(--c-muted);font-size:.9rem}

/* Form */
.form-group{margin-bottom:1.25rem}
.form-group label{display:block;margin-bottom:.4rem;font-weight:500}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:.7rem .9rem;border:1px solid var(--c-line);border-radius:var(--r);font-family:inherit;font-size:1rem;background:#fff}
.form-group input:focus,.form-group textarea:focus{outline:2px solid var(--c-primary);outline-offset:0;border-color:var(--c-primary)}
.form-group textarea{resize:vertical;min-height:140px}
.form-group .hint{font-size:.85rem;color:var(--c-muted);margin-top:.25rem}
.form-group.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg{padding:1rem;border-radius:var(--r);margin-bottom:1.5rem}
.form-msg.ok{background:#e9f7ef;color:#0e6b3e;border:1px solid #b7e2c8}
.form-msg.err{background:#fde8e8;color:#8a1f1f;border:1px solid #f5b5b5}

/* FAQ */
.faq{margin:2rem 0}
.faq details{border:1px solid var(--c-line);border-radius:var(--r);padding:1rem 1.25rem;margin-bottom:.75rem;background:#fff}
.faq details[open]{background:var(--c-soft)}
.faq summary{font-weight:600;cursor:pointer;list-style:none;position:relative;padding-right:1.5rem}
.faq summary::after{content:"+";position:absolute;right:0;top:0;font-size:1.25rem;line-height:1;transition:transform .15s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details > *:not(summary){margin-top:.75rem}

/* Footer */
.site-footer{background:#0f1c1a;color:#cfd5d2;margin-top:4rem;padding:3rem 0 1rem;font-size:.95rem}
.footer-grid{display:grid;grid-template-columns:1fr;gap:2rem}
@media(min-width:640px){.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.footer-grid{grid-template-columns:repeat(4,1fr)}}
.site-footer h3,.site-footer h4{color:#fff;margin:0 0 .75rem}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:.4rem}
.site-footer a{color:#cfd5d2;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.footer-bottom{border-top:1px solid #1f3431;margin-top:2rem;padding-top:1rem;color:#8a958f;font-size:.85rem;text-align:center}

/* Cookie banner */
.cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;background:#fff;border:1px solid var(--c-line);border-radius:var(--r);box-shadow:0 8px 24px rgba(0,0,0,.15);padding:1rem 1.25rem;z-index:9999;max-width:560px;margin:0 auto;font-size:.9rem}
.cookie-banner[hidden]{display:none}
.cookie-banner p{margin:0 0 .75rem}
.cookie-actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}

/* 404 */
.error-page{text-align:center;padding:4rem 1rem;max-width:600px;margin:0 auto}
.error-page h1{font-size:4rem;color:var(--c-primary);margin:0}
.error-page p{color:var(--c-muted);font-size:1.1rem}
