/* === H Law Group — Base Reset & Typography === */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --gold: #C5B358;
  --gold-light: #d4c56e;
  --gold-dark: #a89640;
  --navy: #1a2a3a;
  --navy-deep: #0f1a26;
  --navy-light: #243a4e;
  --white: #ffffff;
  --gray-50: #f8f9fa;
  --gray-100: #f0f1f3;
  --gray-200: #e0e2e6;
  --gray-300: #c5c8ce;
  --gray-400: #9a9ea6;
  --gray-500: #6b7280;
  --gray-600: #4b5563;
  --gray-700: #374151;
  --gray-800: #1f2937;
  --red: #dc2626;
  --green: #16a34a;
  --shadow-sm: 0 1px 3px rgba(0,0,0,.12);
  --shadow-md: 0 4px 12px rgba(0,0,0,.15);
  --shadow-lg: 0 8px 30px rgba(0,0,0,.2);
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  color: var(--gray-800);
  background: var(--white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5 {
  font-family: 'Playfair Display', Georgia, serif;
  line-height: 1.2;
  font-weight: 700;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
ul { list-style: none; }

.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.gold { color: var(--gold); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

/* Utility */
.text-center { text-align: center; }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-weight: 600; border-radius: var(--radius-sm); transition: all .2s ease;
  text-decoration: none; font-size: 15px; letter-spacing: .02em;
}
.btn-gold {
  background: var(--gold); color: var(--navy-deep); padding: 14px 28px;
}
.btn-gold:hover { background: var(--gold-light); transform: translateY(-1px); box-shadow: var(--shadow-md); }
.btn-outline {
  border: 2px solid var(--white); color: var(--white); padding: 12px 28px;
}
.btn-outline:hover { background: rgba(255,255,255,.1); }
.btn-navy {
  background: var(--navy); color: var(--white); padding: 14px 28px;
}
.btn-navy:hover { background: var(--navy-light); }

/* Reveal animation */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }
