:root {
  --clr-forest: #0F2E1A;
  --clr-forest-mid: #1b4332;
  --clr-forest-light: #2D6A4F;
  --clr-gold: #C9A84C;
  --clr-gold-light: #DFC06B;
  --clr-gold-pale: #F5E6B8;
  --clr-cream: #FAF6EE;
  --clr-sand: #EDE4D3;
  --clr-warm: #8B5E3C;
  --clr-dark: #0A0F0B;
  --clr-text: #2A2A2A;
  --clr-text-light: #7A7A7A;
  --clr-white: #FFFFFF;
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Outfit', sans-serif;
  --max-w: 1200px;
  --section-pad: clamp(80px, 10vw, 140px);
}

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

body {
  font-family: var(--font-body);
  background: var(--clr-cream);
  color: var(--clr-text);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

a {
  text-decoration: none;
  color: inherit;
}

img {
  max-width: 100%;
  display: block;
}

button {
  cursor: pointer;
  font-family: var(--font-body);
}

::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: var(--clr-cream);
}

::-webkit-scrollbar-thumb {
  background: var(--clr-forest-mid);
  border-radius: 4px;
}

.container {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 60px);
}

/* ============================================
   UTILITY CLASSES
   ============================================ */
.hidden {
  display: none !important;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}