/* base.css */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap');

:root {
  --green:       #1b4332;
  --green-mid:   #2d6a4f;
  --green-light: #d8ede4;
  --green-pale:  #f0f8f4;
  --gold:        #c9a84c;
  --gold-light:  #f5ecd3;
  --cream:       #faf9f5;
  --cream2:      #f3f1ea;
  --white:       #ffffff;
  --ink:         #1a1a18;
  --ink2:        #3d3d38;
  --ink3:        #6b6460;
  --ink4:        #a09a94;
  --border:      #e4dfd6;
  --radius:      12px;
  --radius-lg:   20px;
  --shadow:      0 2px 16px rgba(27,67,50,0.10);
  --shadow-lg:   0 8px 40px rgba(27,67,50,0.15);
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body:    'Plus Jakarta Sans', -apple-system, sans-serif;
  --nav-h:       70px;
  --transition:  0.3s ease;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: var(--font-body); background: var(--cream); color: var(--ink);
  line-height: 1.7; overflow-x: hidden; opacity: 0; transition: opacity 0.3s ease;
}
body.loaded { opacity: 1; }
img { max-width: 100%; display: block; }
a  { color: inherit; text-decoration: none; }
ul { list-style: none; }

h1, h2, h3, h4 { font-family: var(--font-display); line-height: 1.2; font-feature-settings: "liga" 1, "kern" 1; text-rendering: optimizeLegibility; }
h1 { font-size: clamp(2.4rem, 5vw, 4rem); font-weight: 600; }
h2 { font-size: clamp(1.8rem, 3.5vw, 2.8rem); font-weight: 600; }
h3 { font-size: clamp(1.3rem, 2.5vw, 1.8rem); font-weight: 500; }
h4 { font-size: 1.2rem; font-weight: 500; }
p  { color: var(--ink3); line-height: 1.8; }

.text-green { color: var(--green); }
.text-gold  { color: var(--gold); }
.bg-green   { background: var(--green); }
.bg-cream   { background: var(--cream2); }
.bg-white   { background: var(--white); }

.divider { width: 48px; height: 3px; background: var(--gold); border-radius: 2px; margin-bottom: 20px; }
.divider.centered { margin: 0 auto 20px; }

/* Scroll Reveal */
.reveal { opacity: 0; transform: translateY(32px); transition: opacity 0.7s cubic-bezier(0.22,1,0.36,1), transform 0.7s cubic-bezier(0.22,1,0.36,1); will-change: transform; }
.reveal-left  { transform: translateX(-32px); }
.reveal-right { transform: translateX(32px); }
.reveal-scale { transform: scale(0.95); }
.reveal.visible { opacity: 1; transform: none; }
.stagger .reveal:nth-child(n+6) { transition-delay: 0.5s !important; }

/* Custom Cursor */
body.has-custom-cursor, body.has-custom-cursor * { cursor: none !important; }
.cursor-dot { position: fixed; top: 0; left: 0; width: 9px; height: 9px; background: #c9a84c; border-radius: 50%; pointer-events: none; z-index: 99999; scale: 1; transition: scale 0.18s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.18s ease, opacity 0.15s ease; will-change: translate; }
.cursor-ring { position: fixed; top: 0; left: 0; width: 28px; height: 28px; border: 1px solid rgba(201, 168, 76, 0.38); background: transparent; border-radius: 50%; pointer-events: none; z-index: 99998; scale: 1; transition: scale 0.22s cubic-bezier(0.34, 1.56, 0.64, 1), border-color 0.22s ease, background-color 0.22s ease, opacity 0.18s ease; will-change: translate; }
body.cursor-hover .cursor-dot { scale: 0; opacity: 0; }
body.cursor-hover .cursor-ring { scale: 1.7; background-color: rgba(201,168,76,0.10); border-color: rgba(201,168,76,0.7); }
body.cursor-heading .cursor-dot { scale: 1.3; background-color: #1b4332; }
body.cursor-heading .cursor-ring { scale: 1.25; border-color: rgba(27,67,50,0.45); }
body.cursor-card .cursor-ring { scale: 1.5; border-color: rgba(201,168,76,0.55); }
body.cursor-fab .cursor-dot { scale: 0; opacity: 0; }
body.cursor-fab .cursor-ring { scale: 1.8; background-color: rgba(37,211,102,0.12); border-color: rgba(37,211,102,0.7); }
body.cursor-nav .cursor-dot { scale: 1.2; }
body.cursor-nav .cursor-ring { scale: 1.3; border-color: rgba(201,168,76,0.65); }
body.cursor-click .cursor-dot { scale: 0.6 !important; }
body.cursor-click .cursor-ring { scale: 0.8 !important; }
.cursor-ripple { position: fixed; width: 60px; height: 60px; border-radius: 50%; border: 1px solid rgba(201,168,76,0.6); pointer-events: none; z-index: 99997; animation: cursorRipple 0.5s ease-out forwards; }
@keyframes cursorRipple { from { transform: scale(0); opacity: 1; } to { transform: scale(1); opacity: 0; } }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } .reveal, .reveal-left, .reveal-right, .reveal-scale { opacity: 1 !important; transform: none !important; transition: none !important; } }
