:root {
  /* Paleta New Money — azul profundo #07172f, dourado #d4af37 e prata #f5f7fa */
  --navy: #07172f;
  --navy-mid: #0e2444;
  --navy-soft: #15315a;
  --accent-blue: #1f4e8c; /* azul de apoio: links, foco e bordas ativas */
  --accent-green: #a67c1e; /* dourado escuro: hover de links */
  --accent-gold: #d4af37;
  --accent-gold-dark: #a67c1e;

  /* Superfícies */
  --white-color: #ffffff;
  --white-background: #ffffff;
  --surface-muted: #f8f9fb;
  --surface-alt: #eef1f6;
  --paragraph-color: #4a586d;

  /* Marca — CTAs e destaques (texto azul sobre o dourado) */
  --primary-color: var(--accent-gold);
  --primary-text: #8a6a14;
  --btn-color: var(--accent-gold);
  --btn-hover: #e5c558;
  --btn-text-on-primary: #07172f;

  /* Hero / slideshow — overlay azul com calor do ouro */
  --background-color: var(--navy);
  --background-linear-color: linear-gradient(
    115deg,
    rgba(7, 23, 47, 0.96) 0%,
    rgba(14, 36, 68, 0.84) 48%,
    rgba(212, 175, 55, 0.3) 100%
  );
  --background-overlay: linear-gradient(
    120deg,
    rgba(7, 23, 47, 0.92) 0%,
    rgba(212, 175, 55, 0.22) 55%,
    transparent 100%
  );

  /* Seções */
  --background-gallery: linear-gradient(
    165deg,
    var(--navy) 0%,
    var(--navy-mid) 45%,
    #15315a 100%
  );
  --background-contact: linear-gradient(
    165deg,
    var(--surface-muted) 0%,
    var(--white-background) 55%,
    var(--surface-alt) 100%
  );
  --background-second: var(--surface-muted);

  /* Gradientes de acento (ícones, underlines) */
  --gradient-brand: linear-gradient(
    135deg,
    #f5e09a 0%,
    var(--accent-gold) 50%,
    var(--accent-gold-dark) 100%
  );
  --gradient-brand-soft: linear-gradient(
    90deg,
    rgba(212, 175, 55, 0.15) 0%,
    rgba(31, 78, 140, 0.1) 100%
  );

  --accent-highlight: #8a6a14;

  /* Navegação */
  --menu-header-color: rgba(255, 255, 255, 0.98);
  --menu-header-text: var(--navy);

  /* Elevação e forma */
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-pill: 999px;
  --shadow-sm: 0 2px 8px rgba(7, 23, 47, 0.06);
  --shadow-md: 0 8px 28px rgba(7, 23, 47, 0.1);
  --shadow-glow-gold: 0 4px 24px rgba(212, 175, 55, 0.32);
  --shadow-lg: 0 20px 50px rgba(7, 23, 47, 0.12);
  --shadow-inner-vignette: inset 0 0 100px rgba(7, 23, 47, 0.35);
  --border-hairline: 1px solid rgba(7, 23, 47, 0.08);
  --border-accent-soft: 1px solid rgba(212, 175, 55, 0.24);
  --radius-lg: 20px;
  --section-py: clamp(3.5rem, 6vw, 5.5rem);
  --transition-smooth: 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-spring: 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);

  /* Animações — curvas e durações unificadas */
  --ease-reveal: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-nav: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-hero: cubic-bezier(0.2, 0.85, 0.35, 1);
  --dur-reveal: 0.88s;
  --dur-hero: 0.92s;
  --dur-nav: 1s;

  /* Texto principal (títulos) — separado do azul usado em fundos da marca */
  --text-primary: var(--navy);

  /* Topbar */
  --nav-surface: rgba(255, 255, 255, 0.94);
  --nav-border: rgba(7, 23, 47, 0.06);
  --nav-link: rgba(7, 23, 47, 0.78);
  --nav-link-hover-bg: rgba(212, 175, 55, 0.12);
  --nav-link-hover-text: var(--navy);
  --nav-shadow: 0 4px 24px rgba(7, 23, 47, 0.08);
}

/* Tema escuro (o único usado pela marca) — superfícies em azul profundo,
   tipografia prata e dourado claro para texto */
html[data-theme="dark"] {
  color-scheme: dark;
}

[data-theme="dark"] {
  --text-primary: #f5f7fa;
  --paragraph-color: #b4bfce;

  --white-background: #0b2040;
  --surface-muted: #07172f;
  --surface-alt: #06142a;

  --primary-text: #f0d78c;
  --accent-highlight: #f0d78c;
  --accent-blue: #f0d78c;
  --accent-green: #f0d78c;

  --menu-header-text: #f5f7fa;

  --background-contact: linear-gradient(
    165deg,
    var(--surface-muted) 0%,
    var(--surface-alt) 52%,
    #07172f 100%
  );
  --background-second: var(--surface-alt);

  --border-hairline: 1px solid rgba(255, 255, 255, 0.08);
  --border-accent-soft: 1px solid rgba(212, 175, 55, 0.3);

  --shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.35);
  --shadow-md: 0 10px 32px rgba(0, 0, 0, 0.45);
  --shadow-lg: 0 22px 56px rgba(0, 0, 0, 0.55);
  --shadow-glow-gold: 0 4px 24px rgba(212, 175, 55, 0.22);

  --gradient-brand-soft: linear-gradient(
    90deg,
    rgba(212, 175, 55, 0.22) 0%,
    rgba(240, 215, 140, 0.12) 100%
  );

  --nav-surface: rgba(7, 23, 47, 0.94);
  --nav-border: rgba(255, 255, 255, 0.08);
  --nav-link: rgba(245, 247, 250, 0.82);
  --nav-link-hover-bg: rgba(212, 175, 55, 0.16);
  --nav-link-hover-text: #ffffff;
  --nav-shadow: 0 4px 28px rgba(0, 0, 0, 0.45);
}

/* Reveals de seção (scroll) */
@keyframes revealUpFade {
  from {
    opacity: 0;
    transform: translate3d(0, 48px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes revealFromLeft {
  from {
    opacity: 0;
    transform: translate3d(-52px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes revealFromRight {
  from {
    opacity: 0;
    transform: translate3d(52px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

/* Hero / slideshow — entrada mais legível */
@keyframes heroSlideInRight {
  from {
    opacity: 0;
    transform: translate3d(72px, 36px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes heroSlideInLeft {
  from {
    opacity: 0;
    transform: translate3d(-56px, 28px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
