/* ============================================================
   CARVALHO & GONÇALVES — CSS COMPARTILHADO
   Usado por: areas/, equipe/, artigos/
============================================================ */
:root {
  --bg-primary:    #0A0A0A;
  --bg-secondary:  #111111;
  --gold-rich:     #B8952A;
  --gold-light:    #D4AF37;
  --text-primary:  #F0EDE6;
  --text-secondary:#9A9A9A;
  --divider:       rgba(184,149,42,0.30);
  --divider-solid: rgba(184,149,42,0.55);
  --font-title:    'Cormorant Garamond', Georgia, serif;
  --font-caps:     'Cinzel', serif;
  --font-body:     'Raleway', sans-serif;
  --transition:    0.85s cubic-bezier(0.25,0.46,0.45,0.94);
  --transition-fast: 0.35s ease;
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { font-size:16px; }
body { background:var(--bg-primary); color:var(--text-primary); font-family:var(--font-body); font-weight:300; line-height:1.7; overflow-x:hidden; }
::selection { background:var(--gold-rich); color:#000; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background:var(--bg-primary); }
::-webkit-scrollbar-thumb { background:var(--gold-rich); border-radius:2px; }

/* Canvas global */
#bgCanvas { position:fixed; inset:0; width:100%; height:100%; pointer-events:none; z-index:0; }

/* Header */
#header { position:fixed; top:0; left:0; right:0; z-index:1000; display:flex; align-items:center; justify-content:space-between; padding:0 5vw; height:72px; background:rgba(10,10,10,0.85); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-bottom:1px solid var(--divider); transition:background var(--transition-fast); }
#header.scrolled { background:rgba(10,10,10,0.97); }
.header-logo { display:flex; align-items:center; gap:14px; cursor:pointer; }
.logo-svg-horizontal { height:auto; width:180px; }
.header-nav { display:flex; align-items:center; gap:2.6rem; }
.header-nav a { font-family:var(--font-caps); font-size:0.60rem; letter-spacing:0.22em; color:var(--text-secondary); text-transform:uppercase; position:relative; transition:color var(--transition-fast); }
.header-nav a::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:1px; background:var(--gold-rich); transition:width var(--transition-fast); }
.header-nav a:hover { color:var(--gold-light); }
.header-nav a:hover::after { width:100%; }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; background:none; border:none; }
.hamburger span { display:block; width:24px; height:1px; background:var(--gold-light); transition:var(--transition-fast); }
.hamburger.active span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.hamburger.active span:nth-child(2) { opacity:0; }
.hamburger.active span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
.mobile-nav { display:none; position:fixed; top:72px; left:0; right:0; background:rgba(10,10,10,0.98); border-bottom:1px solid var(--divider); padding:2rem 5vw; flex-direction:column; gap:1.5rem; z-index:998; }
.mobile-nav.open { display:flex; }
.mobile-nav a { font-family:var(--font-caps); font-size:0.72rem; letter-spacing:0.22em; color:var(--text-secondary); text-transform:uppercase; transition:color var(--transition-fast); }
.mobile-nav a:hover { color:var(--gold-light); }

/* Utilitários */
.gold-line { display:block; width:48px; height:1px; background:var(--gold-rich); margin:1.5rem auto; }
.gold-line--left { margin-left:0; }
.section-label { font-family:var(--font-caps); font-size:0.65rem; letter-spacing:0.25em; color:var(--gold-light); text-transform:uppercase; }
.section-title { font-family:var(--font-title); font-weight:300; font-size:clamp(2rem,4vw,3rem); line-height:1.2; color:var(--text-primary); }
.fade-up { opacity:0; transform:translateY(32px); transition:opacity var(--transition), transform var(--transition); }
.fade-up.visible { opacity:1; transform:translateY(0); }
.delay-1 { transition-delay:0.15s; }
.delay-2 { transition-delay:0.30s; }
.delay-3 { transition-delay:0.45s; }

/* Botões */
.btn-primary { display:inline-block; font-family:var(--font-caps); font-size:0.60rem; letter-spacing:0.28em; text-transform:uppercase; color:#000; background:var(--gold-rich); padding:1rem 2.8rem; border-radius:2px; border:1px solid var(--gold-rich); cursor:pointer; transition:background var(--transition-fast),color var(--transition-fast); }
.btn-primary:hover { background:transparent; color:var(--gold-light); }
.btn-secondary { display:inline-block; font-family:var(--font-caps); font-size:0.60rem; letter-spacing:0.28em; text-transform:uppercase; color:var(--gold-light); background:transparent; padding:1rem 2.8rem; border-radius:2px; border:1px solid var(--divider-solid); cursor:pointer; transition:border-color var(--transition-fast),color var(--transition-fast); }
.btn-secondary:hover { border-color:var(--gold-rich); }

/* Page hero (banner interno) */
.page-hero { padding:10rem 5vw 5rem; position:relative; z-index:1; border-bottom:1px solid var(--divider); }
.page-hero-inner { max-width:1100px; margin:0 auto; }
.back-link { font-family:var(--font-caps); font-size:0.55rem; letter-spacing:0.22em; color:var(--text-secondary); text-transform:uppercase; display:inline-flex; align-items:center; gap:0.5rem; margin-bottom:2.5rem; transition:color var(--transition-fast); }
.back-link::before { content:'←'; }
.back-link:hover { color:var(--gold-light); }
.page-hero-label { font-family:var(--font-caps); font-size:0.60rem; letter-spacing:0.30em; color:var(--gold-light); text-transform:uppercase; display:block; margin-bottom:1rem; }
.page-hero-title { font-family:var(--font-title); font-weight:300; font-size:clamp(2.5rem,6vw,5rem); line-height:1.1; color:var(--text-primary); }
.page-hero-title em { font-style:italic; color:var(--gold-light); }
.page-hero-sub { font-family:var(--font-body); font-weight:300; font-size:1rem; color:var(--text-secondary); margin-top:1.5rem; max-width:580px; line-height:1.85; }

/* Conteúdo da página */
.page-content { max-width:1100px; margin:0 auto; padding:5rem 5vw; position:relative; z-index:1; }

/* Seção "Em construção" */
.em-breve { text-align:center; padding:5rem 2rem; border:1px solid var(--divider); background:rgba(17,17,17,0.6); position:relative; overflow:hidden; }
.em-breve::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at center, rgba(184,149,42,0.05) 0%, transparent 70%); pointer-events:none; }
.em-breve-icon { width:60px; height:60px; border:1px solid var(--divider-solid); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 2rem; }
.em-breve-icon svg { width:24px; height:24px; stroke:var(--gold-rich); fill:none; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.em-breve-title { font-family:var(--font-title); font-weight:300; font-size:2rem; color:var(--text-primary); margin-bottom:1rem; }
.em-breve-text { font-size:0.92rem; color:var(--text-secondary); line-height:1.85; max-width:480px; margin:0 auto 2.5rem; }

/* Footer */
#footer { background:rgba(5,5,5,0.97); padding:3.5rem 5vw 2rem; border-top:1px solid var(--divider); position:relative; z-index:1; }
.footer-inner { max-width:780px; margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:2rem; padding-bottom:2.5rem; border-bottom:1px solid var(--divider); margin-bottom:1.5rem; text-align:center; }
.footer-logo-area { display:flex; justify-content:center; }
.footer-logo-img  { height:110px; width:auto; opacity:0.88; display:block; }
.footer-divider-line { width:48px; height:1px; background:rgba(154,110,36,0.4); }
.footer-nav { display:flex; justify-content:center; flex-wrap:wrap; gap:0.5rem 2.5rem; }
.footer-nav a { font-family:var(--font-caps); font-size:0.52rem; letter-spacing:0.20em; color:var(--text-secondary); text-transform:uppercase; opacity:0.55; transition:opacity var(--transition-fast),color var(--transition-fast); }
.footer-nav a:hover { opacity:1; color:var(--gold-light); }
.footer-bottom { max-width:1100px; margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:0.4rem; text-align:center; }
.footer-copy  { font-size:0.73rem; color:var(--text-secondary); opacity:0.35; letter-spacing:0.05em; }
.footer-legal { font-size:0.70rem; color:var(--text-secondary); opacity:0.28; line-height:1.7; }

/* Animação ascendente entrada */
@keyframes glow-pulse { 0%,100%{opacity:0.7;transform:scale(1)} 50%{opacity:1;transform:scale(1.1)} }

/* Responsivo */
@media (max-width:768px) {
  .header-nav { display:none; }
  .hamburger { display:flex; }
  .page-hero { padding:8rem 1.5rem 4rem; }
  .page-content { padding:3rem 1.5rem; }
}
@media (max-width:480px) {
  #header { padding:0 1.2rem; }
}
