/*================ CORE PADRAO ================
Módulos globais (base + botões + header + footer + modal + reveal + faq).
Cada página só precisa definir sua cartela (:root) e chamar este arquivo.
Os módulos ativam por presença de markup — quem não usar, não afeta nada.
======================================================================*/

/*================ BASE ================*/
*                       { margin:0; padding:0; box-sizing:border-box; }
html                    { scroll-behavior:smooth; scrollbar-gutter:stable; }
body                    { font-family:'Lato',Arial,sans-serif; color:var(--texto); background:var(--fundo); }
h1, h2, h3, h4, h5, h6  { margin:0; font-family:Georgia,serif; font-weight:normal; line-height:1.05; }
p                       { margin:0; line-height:1.7; }
.rotulo                 { display:block; color:var(--rotulo); font-size:11px; font-weight:bold; letter-spacing:2px; text-transform:uppercase; margin-bottom:14px; }
.destaque               { color:var(--destaque); }
h2 + p                  { margin-top:20px; }
a                       { color:inherit; text-decoration:none; }
.content                { width:100%; max-width:1400px; margin:0 auto; padding:0 20px; }
section                 { padding:100px 0; scroll-margin-top:120px; }

/*================ BOTÕES ================*/
.btn                    { display:inline-flex; min-height:48px; padding:13px 26px; align-items:center; justify-content:center; gap:9px; border-radius:999px; color:var(--botao-texto); background:var(--botao-fundo); font-weight:800; text-transform:uppercase; box-shadow:0 6px 18px rgba(0,0,0,.18); transition:.25s; }

/*================ HEADER ================*/
.header                 { color:var(--header-menu); background:var(--header-bkg); border-bottom:1px solid var(--header-borda); backdrop-filter:blur(14px); position:fixed; inset:40px 0 auto; z-index:20; height:78px; display:flex;}
.header-inner           { height:78px; display:flex; justify-content:space-between; align-items:center; }
.logo img               { display:block; width:auto; height:64px; object-fit:contain; content:var(--logo); }
.header-nav             { display:flex; align-items:center; gap:26px; font-size:13px; }
.header-link            { position:relative; padding:9px 0; color:var(--header-menu); }
.header-link::after     { content:""; position:absolute; left:50%; bottom:0; width:0; height:2px; background:var(--header-menu); transition:.3s; }
.header-link:hover      { color:var(--header-menu); }
.header-link:hover::after,
.header-link.active::after { left:0; width:100%; }
.header-btn             { color:var(--header-btn-texto); background:var(--header-btn-bkg); transition:filter .2s ease, box-shadow .2s ease; }
.header-btn:hover       { color:var(--header-btn-texto); filter:brightness(0.80); transform:none; box-shadow:0 6px 18px rgba(0,0,0,.18); }
.header-drop            { position:relative; }
.header-drop-btn        { width:42px; height:42px; display:grid; place-items:center; border:0; border-radius:50%; color:var(--header-menu); background:transparent; font-size:19px; transition:filter .2s ease; cursor:pointer; transition:color .2s; }
.header-drop-btn:hover  { filter:brightness(1.35); }
.header-drop-menu       { background:var(--header-bkg); position:absolute; top:50px; right:0; z-index:50; width:150px; padding:7px; display:none; box-shadow:0 12px 30px rgba(0,0,0,.35); }
.header-drop-menu.aberto{ display:block; }
.header-drop-item       { width:100%; padding:10px 12px; display:block; border:0; color:var(--header-menu); background:transparent; text-align:left; cursor:pointer; }
.header-seta           { border-left:6px solid var(--header-menu); display:inline-block; width:0; height:0; margin-right:9px; vertical-align:middle; border-top:4px solid transparent; border-bottom:4px solid transparent; opacity:0; transition:.15s; }
.header-drop-item:hover .header-seta,
.header-drop-item.atual .header-seta { opacity:1; }

/*================ FOOTER ================*/
.footer                 { padding:50px 0; color:var(--footer-texto); background:var(--footer-bkg); line-height:1.7; }
.footer-inner           { display:flex; justify-content:space-between; align-items:center; gap:35px; }
.footer-logo            { display:block; width:auto; height:60px; object-fit:contain; content:var(--logo); }
.footer-info            { display:flex; flex-direction:column; gap:3px; font-size:13px; line-height:1.5; color:var(--footer-endereco); }
.footer-info strong     { color:var(--footer-logo); }
.footer-credito         { color:var(--footer-dev); font-size:13px; letter-spacing:1px; white-space:nowrap; transition:.15s; }
.footer-credito:hover   { color:var(--footer-texto); }

/*================ MODAL ================*/
body.modal-aberto       { overflow:hidden; }
.modal                  { position:fixed; inset:0; z-index:1000000; padding:30px; display:flex; align-items:center; justify-content:center; visibility:hidden; opacity:0; background:var(--modal-overlay); transition:.3s; }
.modal.aberto           { visibility:visible; opacity:1; }
.modal-caixa            { width:min(1050px,100%); max-height:90vh; display:grid; grid-template-columns:1.05fr .95fr; overflow:auto; color:var(--modal-texto); background:var(--modal-fundo); transform:scale(.96); transition:.3s; }
.modal.aberto .modal-caixa { transform:scale(1); }
.modal-imagem img       { width:100%; height:100%; min-height:520px; display:block; object-fit:cover; }
.modal-conteudo         { position:relative; padding:65px 50px; }
.modal-conteudo p       { margin-bottom:30px; color:var(--modal-texto-secundario); font-size:16px; line-height:1.8; }
.modal-fechar           { position:absolute; top:20px; right:20px; width:42px; height:42px; border:1px solid var(--borda-modal); border-radius:50%; color:var(--modal-texto); background:var(--botao-escuro-fundo); font-size:27px; line-height:1; cursor:pointer; transition:.2s; }
.modal-fechar:hover     { background:var(--botao-escuro-hover); transform:rotate(90deg); }

/*================ REVEAL ================*/
.reveal                 { opacity:0; transform:translateY(45px); transition:opacity .65s ease, transform .65s cubic-bezier(.22,.61,.36,1); }
.reveal.ativo           { opacity:1; transform:none; }

/*================ FAQ ================*/
details                 { padding:22px 0; border-bottom:1px solid var(--borda-faq); }
summary                 { cursor:pointer; font-weight:bold; list-style:none; }
details p               { padding-top:15px; color:var(--texto-faq); line-height:1.6; }

/*================ RESPONSIVO CORE ================*/
@media(max-width:900px) {
    .header-link        { display:none; }
    .modal-caixa        { grid-template-columns:1fr; }
    .modal-imagem img   { height:320px; min-height:0; }
}
@media(max-width:560px) {
    .footer-inner       { flex-direction:column; align-items:flex-start; }
    .modal              { padding:14px; }
    .modal-conteudo     { padding:55px 25px 30px; }
    .modal-conteudo h2  { font-size:34px; }
}