/* ============================================================
   DIGITAL GROWTH — BASE STYLES
   Reset moderno + estilos base globales
   ============================================================ */

/* Reset */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html, body { height: 100%; }
body {
  background: var(--dg-bg-primary);
  color: var(--dg-text-primary);
  font-family: var(--dg-font-body);
  font-size: var(--dg-fs-body);
  line-height: var(--dg-lh-relaxed);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
img, picture, video, canvas, svg { display: block; max-width: 100%; }
input, button, textarea, select { font: inherit; color: inherit; }
p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }
#root, #__next { isolation: isolate; }

/* Typography */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--dg-font-display);
  font-weight: 600;
  line-height: var(--dg-lh-tight);
  letter-spacing: var(--dg-ls-tight);
  color: var(--dg-text-primary);
}
h1 { font-size: var(--dg-fs-h1); }
h2 { font-size: var(--dg-fs-h2); }
h3 { font-size: var(--dg-fs-h3); }
h4 { font-size: var(--dg-fs-h4); }

p { color: var(--dg-text-secondary); line-height: var(--dg-lh-relaxed); }
p + p { margin-top: var(--dg-space-sm); }

a {
  color: var(--dg-blue-accent);
  text-decoration: none;
  transition: color var(--dg-transition-fast);
}
a:hover { color: var(--dg-blue-accent-hover); }
a:focus-visible {
  outline: 2px solid var(--dg-blue-accent);
  outline-offset: 3px;
  border-radius: var(--dg-radius-sm);
}

/* Selection */
::selection { background: var(--dg-blue-accent); color: var(--dg-bg-primary); }

/* Scrollbar (subtle dark theme) */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--dg-bg-primary); }
::-webkit-scrollbar-thumb { background: var(--dg-bg-subtle); border-radius: var(--dg-radius-sm); }
::-webkit-scrollbar-thumb:hover { background: var(--dg-border-default); }

/* Containers */
.dg-container { width: 100%; max-width: var(--dg-container-max); margin: 0 auto; padding: 0 var(--dg-content-padding); }
.dg-container--narrow { max-width: var(--dg-container-narrow); }
.dg-container--content { max-width: var(--dg-container-content); }

/* Section spacing */
.dg-section { padding: var(--dg-space-2xl) 0; }
.dg-section--sm { padding: var(--dg-space-xl) 0; }
.dg-section--lg { padding: var(--dg-space-3xl) 0; }

/* Visual primitives */
.dg-eyebrow {
  display: inline-block;
  font-family: var(--dg-font-body);
  font-size: var(--dg-fs-eyebrow);
  font-weight: 500;
  letter-spacing: var(--dg-ls-wide);
  text-transform: uppercase;
  color: var(--dg-blue-accent);
  margin-bottom: var(--dg-space-sm);
}
.dg-highlight { color: var(--dg-blue-accent); }
.dg-text-secondary { color: var(--dg-text-secondary); }
.dg-text-tertiary { color: var(--dg-text-tertiary); }

/* Skip link (accessibility) */
.dg-skip-link {
  position: absolute;
  left: -9999px;
  top: var(--dg-space-sm);
  background: var(--dg-blue-accent);
  color: var(--dg-bg-primary);
  padding: var(--dg-space-xs) var(--dg-space-sm);
  border-radius: var(--dg-radius-md);
  z-index: var(--dg-z-modal);
}
.dg-skip-link:focus { left: var(--dg-space-sm); color: var(--dg-bg-primary); }

/* Divider */
.dg-divider { height: 1px; background: var(--dg-border-subtle); border: none; margin: var(--dg-space-xl) 0; }
.dg-divider--accent { background: var(--dg-blue-structural); opacity: 0.4; }
