*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body { 
  font-family: var(--font-sans); 
  color: var(--navy-dark); 
  background: var(--white); 
  -webkit-font-smoothing: antialiased; 
}

a { 
  text-decoration: none; 
  color: inherit; 
}

/* UTILS */
.container { 
  max-width: var(--max-w); 
  margin: 0 auto; 
  padding: 0 40px; 
}

.tag { 
  font-size: 11px; 
  font-weight: 600; 
  letter-spacing: 0.1em; 
  text-transform: uppercase; 
  color: var(--grey-500); 
  margin-bottom: 16px; 
  display: block; 
}

.serif-heading { 
  font-family: var(--font-serif); 
  font-weight: 600; 
  color: var(--navy-dark); 
}

.btn { 
  display: inline-flex; 
  align-items: center; 
  justify-content: center; 
  padding: 10px 20px; 
  font-size: 14px; 
  font-weight: 500; 
  border-radius: var(--radius); 
  cursor: pointer; 
  transition: all 0.2s; 
  gap: 8px; 
}

.btn-outline { 
  background: transparent; 
  border: 1px solid var(--grey-200); 
  color: var(--navy-dark); 
}

.btn-outline:hover { 
  background: var(--grey-50); 
}

.btn-primary { 
  background: var(--navy); 
  border: 1px solid var(--navy); 
  color: white; 
}

.btn-primary:hover { 
  background: var(--navy-dark); 
}

.btn-icon { 
  width: 16px; 
  height: 16px; 
}

/* ICONS (SVG Placeholders) */
.icon-svg { 
  width: 20px; 
  height: 20px; 
  fill: currentColor; 
}
