/* ── DESIGN TOKENS ── */
:root {
  --navy: #0f2137;
  --navy-mid: #1a3350;
  --green: #1e6b45;
  --green-light: #2d8a5a;
  --green-pale: #e8f5ee;
  --gold: #c9a84c;
  --gold-light: #f0d480;
  --red: #c0392b;
  --red-pale: #fdf0ee;
  --amber: #e67e22;
  --white: #ffffff;
  --off-white: #f8f7f4;
  --gray-100: #f0eeea;
  --gray-300: #d0cdc6;
  --gray-500: #8a8680;
  --gray-700: #4a4844;
  --text: #1a1916;
  --radius: 10px;
  --shadow: 0 4px 24px rgba(15,33,55,0.10);
  --shadow-lg: 0 12px 48px rgba(15,33,55,0.16);
}

/* ── RESET & TYPOGRAPHY ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'DM Sans', sans-serif; color: var(--text); background: var(--white); font-size: 16px; line-height: 1.7; }
h1,h2,h3,h4 { font-family: 'Playfair Display', serif; line-height: 1.25; }
a { color: inherit; text-decoration: none; }

/* ── SECTION BASE ── */
section { padding: 96px 40px; }
.section-inner { max-width: 1200px; margin: 0 auto; }
.section-label { font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--green); font-weight: 600; margin-bottom: 12px; }
.section-title { font-size: clamp(28px, 3.5vw, 42px); margin-bottom: 16px; color: var(--navy); }
.section-sub { font-size: 17px; color: var(--gray-500); max-width: 580px; line-height: 1.75; }

/* ── ANIMATIONS ── */
@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:0.4;transform:scale(0.7);} }
.fade-in { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease; }
.fade-in.visible { opacity: 1; transform: translateY(0); }
