/* =========================================
   BASE — Skoolapps
   ========================================= */

/* Google Fonts import */
@import url('https://fonts.googleapis.com/css2?family=Syne:wght@600;700;800&family=DM+Sans:wght@400;500;600&display=swap');

body {
  font-family: var(--font-body);
  font-size: var(--fs-base);
  font-weight: var(--fw-normal);
  line-height: var(--lh-normal);
  color: var(--clr-text);
  background-color: var(--clr-bg);
}

/* --- Headings --- */
h1, h2, h3, h4 {
  font-family: var(--font-display);
  line-height: var(--lh-tight);
  color: var(--clr-black);
}

h1 { font-size: clamp(var(--fs-3xl), 5vw, var(--fs-5xl)); font-weight: var(--fw-extrabold); }
h2 { font-size: clamp(var(--fs-2xl), 4vw, var(--fs-4xl)); font-weight: var(--fw-bold); }
h3 { font-size: clamp(var(--fs-xl), 3vw, var(--fs-2xl));  font-weight: var(--fw-bold); }
h4 { font-size: var(--fs-lg); font-weight: var(--fw-semibold); }

p {
  color: var(--clr-text-muted);
  line-height: var(--lh-loose);
}

/* --- Container --- */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}

/* --- Section spacing --- */
.section {
  padding-block: var(--sp-20);
}

/* --- Utility: visually hidden (accessibility) --- */
.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;
}

/* --- Scroll reveal base state --- */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-left {
  opacity: 0;
  transform: translateX(-32px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal-left.visible {
  opacity: 1;
  transform: translateX(0);
}

.reveal-right {
  opacity: 0;
  transform: translateX(32px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal-right.visible {
  opacity: 1;
  transform: translateX(0);
}

/* Staggered delay helpers */
.delay-1 { transition-delay: 0.1s; }
.delay-2 { transition-delay: 0.2s; }
.delay-3 { transition-delay: 0.3s; }
.delay-4 { transition-delay: 0.4s; }
.delay-5 { transition-delay: 0.5s; }

/* ── Reveal scale (for stat cards etc) ── */
.reveal-scale {
  opacity: 0;
  transform: scale(0.88);
  transition: opacity 0.6s cubic-bezier(0.22,1,0.36,1), transform 0.6s cubic-bezier(0.22,1,0.36,1);
}
.reveal-scale.visible { opacity: 1; transform: scale(1); }

/* ── Hero demo btn fade on scroll (JS adds class) ── */
.hero__demo-btn {
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.hero__demo-btn.faded {
  opacity: 0;
  pointer-events: none;
  transform: translateY(-8px);
}
