/* Base Reset & Core Styles */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  /* 
    Strategy: Design for 1920px as the DEFAULT.
    At 1920px → 14px base (everything feels lighter/proportional)
    At 2560px+ → 16px base (scales up for large monitors)
    At 1440px and below → slightly smaller
  */
  font-size: 14px;
}

/* Scale UP for very large monitors */
@media (min-width: 2560px) {
  html { font-size: 16px; }
}

/* Scale slightly for smaller laptops */
@media (max-width: 1440px) {
  html { font-size: 13.5px; }
}

@media (max-width: 1280px) {
  html { font-size: 13px; }
}

body {
  margin: 0;
  padding: 0;
  font-family: var(--font-body);
  color: var(--text-primary);
  background-color: var(--bg-light);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Typography — all in rem, scales with html font-size */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  color: var(--primary-dark);
  margin-top: 0;
  font-weight: 700;
  letter-spacing: -0.01em;
}

h1 { font-size: 2.8rem;  line-height: 1.15; margin-bottom: 1.2rem; }
h2 { font-size: 2.1rem;  line-height: 1.2;  margin-bottom: 1.1rem; }
h3 { font-size: 1.5rem;  line-height: 1.3;  margin-bottom: 0.9rem; }
h4 { font-size: 1.1rem;  font-weight: 600;  line-height: 1.4; margin-bottom: 0.7rem; }

p {
  margin-top: 0;
  margin-bottom: 1.25rem;
  color: var(--text-secondary);
  font-size: 1rem;
  line-height: 1.7;
}

.text-sm { font-size: 0.875rem; line-height: 1.4; }
.text-lg { font-size: 1.1rem;   line-height: 1.5; }

a {
  color: var(--primary);
  text-decoration: none;
  transition: color var(--transition-fast);
}

a:hover {
  color: var(--primary-dark);
  text-decoration: underline;
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

::selection {
  background-color: var(--primary);
  color: white;
}

::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--bg-surface); }
::-webkit-scrollbar-thumb { background: #a8a8a8; }
::-webkit-scrollbar-thumb:hover { background: #8d8d8d; }

.section-bg-alt { background-color: var(--bg-surface); }

.subtitle {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--primary);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: 0.75rem;
}
