/* DGLAB design system — editorial moderno, mobile-first.
   Tokens por entidade via [data-theme] + inline vars do backoffice. Zero deps. */
:root{
  --bg:#faf9f6; --surface:#fff; --ink:#1c1a17; --muted:#6b6459;
  --line:#e5ded2; --accent:#8c1d2f; --accent-ink:#fff; --accent-soft:#f6e9ec;
  --gold:#b98a2f; --gold-soft:#f7efdc; --radius:14px; --max:72rem;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Manrope","Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --focus:#1a73e8;
  --shadow-sm:0 1px 2px rgba(28,26,23,.06),0 2px 8px rgba(28,26,23,.06);
  --shadow-md:0 2px 4px rgba(28,26,23,.06),0 12px 32px rgba(28,26,23,.12);
  --shadow-lg:0 4px 8px rgba(28,26,23,.08),0 24px 56px rgba(28,26,23,.16);
}
/* Acentos por entidade — mesma base elegante */
[data-theme="arquivos"]{--accent:#1f4e5f;--accent-soft:#e6f0f3;--gold:#8a6d3b}
[data-theme="livro"]{--accent:#8c1d2f;--accent-soft:#f8ecef;--gold:#b98a2f}
[data-theme="bibliotecas"]{--accent:#2e5d3a;--accent-soft:#e8f1ea;--gold:#a07c2c}
[data-theme="antt"]{--accent:#4a2c6e;--accent-soft:#efe9f6;--gold:#9a7b2d}
[data-theme="cpf"]{--accent:#9a5b13;--accent-soft:#faf0df;--gold:#7a4d0f}
[data-theme="institucional"]{--accent:#0f3a5d;--accent-soft:#e8eff5;--gold:#b98a2f}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
[x-cloak]{display:none!important}
::selection{background:var(--gold);color:#141414}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.65;font-size:1.02rem;-webkit-font-smoothing:antialiased}
h1,h2,h3,.block-heading{font-family:var(--serif);line-height:1.12;letter-spacing:-.015em;font-weight:600}
h1{font-size:clamp(2rem,4.5vw,3rem)} h2{font-size:clamp(1.45rem,3vw,2rem)}
.lede{font-size:1.18rem;color:var(--muted);max-width:60ch;line-height:1.7}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:clamp(1rem,3vw,1.75rem)}
a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
img{max-width:100%;height:auto;border-radius:12px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:1rem;top:-4rem;background:var(--ink);color:#fff;padding:.7rem 1.1rem;border-radius:10px;z-index:50;text-decoration:none;font-weight:600}
.skip-link:focus{top:.5rem}

/* Header — fosco, filete ouro */
.site-header{position:sticky;top:0;z-index:20;background:var(--surface);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.site-header::before{content:"";display:block;height:3px;background:linear-gradient(90deg,var(--accent) 0%,var(--accent) 55%,var(--gold) 100%)}
.header-top-in{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding-block:.8rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--ink)}
.brand-mark{width:2.75rem;height:2.75rem;border-radius:14px;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#000));color:var(--accent-ink);display:grid;place-items:center;font-family:var(--serif);font-size:1.5rem;font-weight:700;box-shadow:var(--shadow-sm)}
.brand-logo{border-radius:10px}
.brand-txt strong{display:block;font-family:var(--serif);font-size:1.25rem;letter-spacing:-.01em}
.brand-txt small{color:var(--muted);font-size:.82rem}
.header-tools{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap}
.searchbox{position:relative;display:flex;gap:.4rem}
.searchbox input[type=search]{padding:.6rem .9rem;border:1px solid var(--line);border-radius:999px;min-width:min(17rem,60vw);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
.searchbox input[type=search]:focus{border-color:var(--accent);outline:3px solid var(--accent-soft)}
.suggest{position:absolute;top:115%;left:0;right:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;margin:0;padding:.4rem;list-style:none;box-shadow:var(--shadow-md);overflow:hidden}
.suggest a{display:block;padding:.55rem .8rem;text-decoration:none;color:var(--ink);border-radius:9px}
.suggest a:hover{background:var(--accent-soft)}
.lang-switch{border:1px solid var(--line);border-radius:999px;padding:.5rem .95rem;text-decoration:none;color:var(--ink);font-weight:600;background:var(--surface)}
.lang-switch:hover{border-color:var(--accent);color:var(--accent)}
.mainnav{background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 82%,#000))}
.nav-list{display:flex;gap:.25rem;list-style:none;margin:0;padding:.35rem 1rem;flex-wrap:wrap;max-width:var(--max);margin-inline:auto}
.nav-list a{color:var(--accent-ink);text-decoration:none;padding:.6rem 1rem;display:block;border-radius:999px;font-weight:500;font-size:.96rem;opacity:.94}
.nav-list a:hover{background:rgba(255,255,255,.16);opacity:1}
.nav-toggle{display:none}
.search-toggle{display:none;align-items:center;justify-content:center;min-width:2.6rem}
@media(max-width:48rem){
  .nav-toggle{display:inline-flex}
  .mainnav{display:none}.mainnav.is-open{display:block}
  .nav-list{flex-direction:column;padding-bottom:.7rem}
  .search-toggle{display:inline-flex}
  .header-tools{flex-wrap:nowrap}
  .searchbox{display:none;width:100%;flex-basis:100%;order:9;margin-top:.5rem}
  .searchbox input[type=search]{flex:1;min-width:0}
  .header-top-in.sopen .searchbox{display:flex}
}

/* Botões */
.btn{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--accent);border-radius:14px;padding:.7rem 1.35rem;text-decoration:none;cursor:pointer;font-weight:600;font-size:.96rem;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}
.btn:active{transform:translateY(1px)}
.btn-primary{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 88%,#fff),var(--accent));color:var(--accent-ink);box-shadow:var(--shadow-sm)}
.btn-primary:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}
.btn-ghost{background:var(--surface);color:var(--accent)}
.btn-ghost:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}
.btn-small{padding:.45rem .9rem;font-size:.88rem;border-radius:999px}

/* Hero editorial */
.hero{position:relative;display:grid;gap:1.25rem;background:var(--surface);border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);padding:clamp(1.6rem,5vw,3.2rem);margin-block:1.4rem;overflow:hidden;box-shadow:var(--shadow-sm)}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(42rem 20rem at 85% -10%,color-mix(in srgb,var(--gold) 22%,transparent),transparent 70%),radial-gradient(36rem 22rem at 8% 110%,var(--accent-soft),transparent 65%);pointer-events:none}
.hero-in{position:relative;max-width:44rem}
@media(min-width:48rem){.hero{grid-template-columns:1.25fr .75fr;align-items:center}}
.kicker{display:flex;align-items:center;gap:.7rem;color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;font-weight:700;margin:0 0 .9rem}
.kicker::before{content:"";width:2.2rem;height:2px;background:var(--gold);border-radius:2px}
.hero h1{margin:0 0 .8rem}
.hero-cta{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.4rem}
.hero-img{position:relative;width:100%;object-fit:cover;max-height:24rem;border-radius:calc(var(--radius) + 2px);box-shadow:var(--shadow-md)}

.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:2.6rem 0 1.1rem;padding-bottom:.6rem;border-bottom:1px solid var(--line);position:relative}
.sec-head::after{content:"";position:absolute;left:0;bottom:-1px;width:5rem;height:3px;background:linear-gradient(90deg,var(--gold),transparent);border-radius:3px}
.sec-head h2{margin:0}
.cards{display:grid;gap:1.25rem;grid-template-columns:1fr;margin-block:1rem}
@media(min-width:40rem){.cards{grid-template-columns:repeat(2,1fr)}}
@media(min-width:64rem){.cards{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:calc(var(--radius) + 2px);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.card .img-wrap{overflow:hidden}
.card img{border-radius:0;aspect-ratio:16/9;object-fit:cover;width:100%;transition:transform .4s ease}
.card:hover img{transform:scale(1.04)}
.card-b{padding:1.25rem;display:grid;gap:.5rem;align-content:start;flex:1}
.card-b h3,.card-b h2{margin:0;font-size:1.22rem}
.card-b h3 a,.card-b h2 a{text-decoration:none;color:var(--ink)}
.card-b h3 a::after{content:" →";color:var(--gold);opacity:0;transition:opacity .2s}
.card:hover .card-b h3 a::after{opacity:1}
.card-b p{margin:0;color:var(--muted);font-size:.95rem}
.price{font-weight:700;color:var(--accent);font-size:1.1rem}
.news-list{list-style:none;margin:0;padding:0;display:grid;gap:.8rem}
.news-list li{display:flex;gap:1rem;align-items:baseline;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.9rem 1.1rem;transition:border-color .2s,box-shadow .2s}
.news-list li:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}
.news-list time{color:var(--accent);font-size:.8rem;font-weight:700;white-space:nowrap;background:var(--accent-soft);border-radius:8px;padding:.2rem .6rem;margin:0}
.news-list a{font-weight:600;text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:1.08rem}
.news-list p{margin:.3rem 0 0;color:var(--muted);font-size:.93rem;flex-basis:100%}

/* Blocos */
.blocks{display:grid;gap:1.4rem;margin-block:1.2rem}
.block-text p{max-width:72ch}
.block-image img{width:100%;box-shadow:var(--shadow-sm)}
.block-image figcaption{color:var(--muted);font-size:.88rem;margin-top:.4rem}
.block-quote{position:relative;border:0;margin:1rem 0;padding:1.4rem 1.4rem 1.2rem 3.4rem;background:var(--accent-soft);border-radius:18px;font-family:var(--serif);font-size:1.3rem;line-height:1.5}
.block-quote::before{content:"“";position:absolute;left:1rem;top:.4rem;font-size:3rem;color:var(--gold);line-height:1}
.block-quote cite{display:block;margin-top:.6rem;font-size:.9rem;font-family:var(--sans);color:var(--muted);font-style:normal}
.block-columns{display:grid;gap:1.1rem;grid-template-columns:1fr}
@media(min-width:48rem){.block-columns{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}}
.acc-item{border:1px solid var(--line);border-radius:14px;background:var(--surface);margin-bottom:.6rem;overflow:hidden}
.acc-item:has(.acc-btn[aria-expanded="true"]){border-color:var(--accent)}
.acc-btn{width:100%;background:none;border:0;padding:.95rem 1.1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-weight:600;cursor:pointer;color:var(--ink);font-size:1rem;font-family:var(--serif);font-size:1.08rem;text-align:left}
.acc-panel{padding:0 1.1rem 1.1rem}
.block-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(8rem,1fr));gap:.6rem}
.gal-thumb{border:1px solid var(--line);border-radius:12px;padding:0;background:#fff;cursor:zoom-in;overflow:hidden}
.gal-thumb img{aspect-ratio:1;object-fit:cover;width:100%;border-radius:0}
.block-video iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:14px;box-shadow:var(--shadow-sm)}
.block-cta{margin-block:.6rem}
.crumbs{font-size:.82rem;color:var(--muted);margin-top:1.2rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600}

/* Forms / loja / pesquisa */
.form{display:grid;gap:.9rem;max-width:38rem}
.form label{display:grid;gap:.35rem;font-weight:600}
.form input,.form textarea,.form select{padding:.7rem .9rem;border:1.5px solid var(--line);border-radius:12px;font:inherit;background:var(--surface);color:var(--ink)}
.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--accent);outline:3px solid var(--accent-soft)}
.hp{position:absolute!important;left:-9999px;opacity:0;height:0}
.flash{padding:.8rem 1.1rem;border-radius:12px;font-weight:500}
.flash.ok{background:#e6f4ea;border:1px solid #2e7d32}
.flash.err{background:#fdecea;border:1px solid #b71c1c}
.notice{background:var(--accent-soft);border:1px solid var(--accent);border-radius:12px;padding:.8rem 1.1rem}
.results{list-style:none;padding:0;display:grid;gap:.8rem}
.results li{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.9rem 1.1rem;transition:border-color .2s}
.results li:hover{border-color:var(--accent)}
.badge{background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:.2rem .7rem;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.row{display:flex;gap:.6rem;align-items:end;flex-wrap:wrap}
.product{display:grid;gap:1.4rem}
@media(min-width:48rem){.product{grid-template-columns:1fr 1fr}}

/* Footer */
.site-footer{background:#181310;color:#f3ede1;margin-top:3rem;position:relative}
.site-footer::before{content:"";display:block;height:4px;background:linear-gradient(90deg,var(--accent) 0%,var(--accent) 50%,var(--gold) 100%)}
.site-footer a{color:#f3ede1}
.footer-grid{display:grid;gap:1.6rem;padding-block:2.2rem;grid-template-columns:1fr}
@media(min-width:48rem){.footer-grid{grid-template-columns:1.3fr .7fr 1fr}}
.footer-grid strong{font-family:var(--serif);font-size:1.4rem;letter-spacing:-.01em}
.footer-grid p{color:#b9ae9c;max-width:36ch}
.footer-grid ul{list-style:none;padding:0;display:grid;gap:.45rem}
.footer-grid nav a{text-decoration:none;opacity:.85}
.footer-grid nav a:hover{opacity:1;color:var(--gold);text-decoration:underline}
.foot-base{border-top:1px solid #3a332a;padding-block:1rem}
.foot-base small{color:#8d8272}
.foot-news label{font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;color:#cfc4ae}
.foot-news input{background:#241e17;border:1px solid #4a443a;color:#f3ede1;padding:.65rem .9rem;border-radius:999px}
.foot-news input::placeholder{color:#8d8272}
.foot-news input:focus{border-color:var(--gold);outline:none}

/* Sociais da entidade + CTA do cabeçalho */
.social-list{display:flex;gap:.55rem;list-style:none;margin:1.1rem 0 0;padding:0;flex-wrap:wrap}
.social-link{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:1px solid #4a443a;border-radius:50%;color:#f3ede1;text-decoration:none;transition:transform .18s,background .18s,border-color .18s}
.social-link:hover{background:var(--gold);border-color:var(--gold);color:#181310;transform:translateY(-2px)}
.header-cta{white-space:nowrap}
@media(max-width:48rem){
  .header-cta{order:8}
  .header-top-in{row-gap:.5rem}
  .foot-news .row{flex-wrap:nowrap}
  .foot-news input{flex:1;min-width:0}
}

/* Blocos extra do builder */
.block-divider{border:0;border-top:3px solid var(--accent);opacity:.35;margin:1.4rem 0}
.block-docs{list-style:none;padding:0;display:grid;gap:.5rem}
.block-docs a{display:inline-flex;gap:.6rem;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.65rem .95rem;text-decoration:none;transition:border-color .2s,box-shadow .2s}
.block-docs a:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}
.block-docs a::before{content:"↓";font-weight:700;color:var(--gold)}

/* Banner RGPD cookies (por entidade, desligável no backoffice) */
.cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:90;display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--surface);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:var(--ink);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg);padding:1.1rem 1.3rem}
.cookie-banner p{margin:0;flex:1 1 20rem;font-size:.93rem}
.cookie-banner .row{flex:0 0 auto}
.cookie-banner[hidden]{display:none!important}
.no-alpine .suggest{display:none!important}
@media(max-width:48rem){.cookie-banner{left:.6rem;right:.6rem;bottom:.6rem}}

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(15,12,9,.88);backdrop-filter:blur(6px);display:grid;place-items:center;z-index:100;padding:1rem}
.lightbox img{max-height:85vh;max-width:92vw;border-radius:14px;box-shadow:var(--shadow-lg)}
.lightbox button{position:absolute;top:1rem;right:1rem}

/* Print / motion */
@media print{.site-header .header-tools,.mainnav,.hero-cta,.foot-news,.cookie-banner{display:none}body{background:#fff}.card,.hero{break-inside:avoid;box-shadow:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
