/* ============================================
   CADLEM CONSULTANTS — Base Styles
   ============================================ */

*, *::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(--off-white, #faf8f4);
  color: var(--text);
  line-height: 1.6;
  cursor: none;
  -webkit-font-smoothing: antialiased;
}

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

/* ── TYPOGRAPHY ── */
.section-eyebrow {
  font-size: 0.6rem; letter-spacing: 0.4em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 1.2rem;
}
.section-heading {
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.5vw, 3.2rem);
  font-weight: 300; line-height: 1.15;
  color: var(--dark);
  margin-bottom: 1.5rem;
}
.section-heading em { font-style: italic; color: var(--gold); }

/* ── BUTTONS ── */
.btn-primary {
  display: inline-flex; align-items: center; gap: 1rem;
  background: var(--dark); color: var(--white);
  font-size: 0.65rem; letter-spacing: 0.3em; text-transform: uppercase;
  padding: 1.1rem 2.2rem;
  transition: background 0.3s, color 0.3s;
}
.btn-primary:hover { background: var(--gold); color: var(--dark); }
.btn-primary svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 1.5; fill: none; }

.btn-ghost {
  font-size: 0.65rem; letter-spacing: 0.25em; text-transform: uppercase;
  color: var(--dark); border-bottom: 1px solid var(--gold);
  padding-bottom: 0.2rem;
  transition: color 0.3s, border-color 0.3s;
}
.btn-ghost:hover { color: var(--gold); }

/* ── REVEAL ANIMATIONS ── */
.reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease, transform 0.8s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-delay { transition-delay: 0.2s; }

/* ── CUSTOM CURSOR ── */
.cursor {
  position: fixed;
  width: 8px; height: 8px;
  background: var(--gold);
  border-radius: 50%;
  pointer-events: none;
  transform: translate(-50%, -50%);
  z-index: 9999;
  transition: transform 0.15s ease, background 0.2s;
  mix-blend-mode: normal;
}
.cursor-ring {
  position: fixed;
  width: 32px; height: 32px;
  border: 1.5px solid var(--gold);
  border-radius: 50%;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(1);
  z-index: 9998;
  transition: transform 0.3s ease, border-color 0.2s;
  opacity: 0.7;
}

/* ── KEYFRAMES ── */
@keyframes fadeUp   { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeIn   { from { opacity:0; } to { opacity:1; } }
@keyframes marquee  { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@keyframes scrollDown {
  0%   { top: -100%; opacity: 1; }
  80%  { top: 100%;  opacity: 1; }
  100% { top: 100%;  opacity: 0; }
}
