/* ============================================================
   GRUPO ESPERANTO / NOVA LINE — Base compartilhada
   Cursor custom, loader, reveal-on-scroll, reset, tipografia
   ============================================================ */

:root{
  --gold:         #cda059;
  --gold-light:   #ecd5a2;
  --gold-dark:    #8a6a34;
  --gold-sutil:   rgba(205,160,89,0.08);
  --gold-borda:   rgba(205,160,89,0.28);

  --navy:         #0c0e14;
  --navy-2:       #12151f;
  --navy-3:       #181c29;

  --blue:         #1e3a5f;
  --blue-vivo:    #2f6fc4;
  --blue-sutil:   rgba(30,58,95,0.06);
  --blue-borda:   rgba(30,58,95,0.20);
  --orange:       #e8935a;

  --off:          #f7f5f1;
  --off-2:        #efece5;
  --dark-text:    #14161d;
  --dark-text-2:  #4a4f5c;
  --dark-text-3:  #7a8090;

  --branco:       #ffffff;
  --cinza-1:      #6b7280;
  --cinza-2:      #9aa0ae;
  --cinza-3:      #d6d9e0;

  --font-serif:  'Cormorant Garamond', Georgia, serif;
  --font-sans:   'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;

  --w-container: 1200px;
  --nav-h: 76px;

  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --t: 0.4s var(--ease);
  --t-fast: 0.2s var(--ease);
}

*, *::before, *::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
body{ font-family:var(--font-sans); line-height:1.5; overflow-x:hidden; background:var(--navy); color:var(--branco); }
body.no-scroll{ overflow:hidden; }
img{ max-width:100%; display:block; }
ul{ list-style:none; }
a{ color:inherit; text-decoration:none; }
button{ border:none; background:none; font-family:inherit; cursor:pointer; }

.container{ width:100%; max-width:var(--w-container); margin:0 auto; padding:0 24px; }

/* ── Cursor custom (desktop) ─────────────────────────────────── */
.cursor{
  position:fixed; width:30px; height:30px;
  border:1.5px solid rgba(205,160,89,0.7);
  border-radius:50%; pointer-events:none; z-index:99999;
  transform:translate(-50%,-50%);
  transition:width .3s var(--ease), height .3s var(--ease), border-color .3s, background .3s;
  mix-blend-mode:difference;
}
.cursor.hover{ width:54px; height:54px; border-color:var(--gold); background:rgba(205,160,89,0.08); }
.cursor-dot{ position:fixed; width:4px; height:4px; background:var(--gold); border-radius:50%; pointer-events:none; z-index:99999; transform:translate(-50%,-50%); }
@media (pointer:coarse){ .cursor, .cursor-dot{ display:none; } }

/* ── Loader ───────────────────────────────────────────────────── */
.loader{
  position:fixed; inset:0; background:var(--navy); z-index:99998;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:36px;
  transition:opacity .6s var(--ease), visibility .6s;
}
.loader.hidden{ opacity:0; visibility:hidden; pointer-events:none; }
.loader__logo{ font-family:var(--font-serif); font-size:1.3rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--branco); text-align:center; }
.loader__logo span{ color:var(--gold); }
.loader__bar{ width:130px; height:1px; background:rgba(255,255,255,0.12); position:relative; overflow:hidden; }
.loader__progress{ position:absolute; inset:0; background:var(--gold); transform:scaleX(0); transform-origin:left; }

/* ── Reveal on scroll ────────────────────────────────────────── */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.visible{ opacity:1; transform:translateY(0); }
.reveal-d1{ transition-delay:.06s; }
.reveal-d2{ transition-delay:.12s; }
.reveal-d3{ transition-delay:.18s; }

::selection{ background:rgba(205,160,89,0.3); color:var(--branco); }
::-webkit-scrollbar{ width:3px; }
::-webkit-scrollbar-track{ background:var(--navy); }
::-webkit-scrollbar-thumb{ background:var(--gold-dark); }
