/* ============================================
   BASE — Reset, tokens, layout primitives
   Shared across all pages.
   ============================================ */

/* --------------------------------------------
   RESET
   -------------------------------------------- */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: 'Figtree', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  color: #ffffff;
  background-color: #0d0f22;
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
  transition: color 0.2s ease;
}

ul, ol {
  list-style: none;
}

/* --------------------------------------------
   DESIGN TOKENS
   -------------------------------------------- */
:root {
  /* Brand Colors */
  --color-coral: #f66a68;
  --color-coral-hover: #e45a58;
  --color-peppermint: #4af1a2;
  --color-peppermint-glow: #4af1a2;
  --color-dark-blue: #1b1d34;
  --color-super-dark: #0d0f22;

  /* Surfaces */
  --color-bg-light: #f7f7f9;
  --color-bg-white: #ffffff;
  --color-bg-card-dark: #1e2040;

  /* Text */
  --color-text-white: #ffffff;
  --color-text-light: #c4c9d4;
  --color-text-dark: #1b1d34;
  --color-text-muted: #8892a4;
  --color-text-dark-muted: #555;

  /* Borders */
  --color-border-light: #e2e4e8;
  --color-border-dark: #2a2d4a;

  /* Typography */
  --font-main: 'Figtree', -apple-system, BlinkMacSystemFont, sans-serif;

  /* Typography scale */
  --fs-display: 3.5rem;
  --fs-h2:      2.5rem;
  --fs-h3:      1.1rem;
  --fs-body:    0.95rem;
  --fs-body-sm: 0.85rem;
  --fs-caption:  0.78rem;
  --fs-btn:     0.88rem;
  --fs-btn-sm:  0.8rem;

  /* Card tokens */
  --card-radius-lg:  16px;
  --card-radius:     12px;
  --card-radius-sm:   8px;
  --card-padding:    32px 28px;
  --card-padding-sm: 24px 16px;

  /* Button tokens */
  --btn-padding:    12px 28px;
  --btn-padding-sm: 8px 20px;

  /* Spacing */
  --section-padding: 80px 0;
  --container-width: 1200px;
  --container-padding: 0 24px;

  /* Transitions */
  --ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
}

/* --------------------------------------------
   LAYOUT PRIMITIVES
   -------------------------------------------- */
.container {
  max-width: var(--container-width);
  margin: 0 auto;
  padding: var(--container-padding);
}

/* Section background colours — independent of layout type */
.section-light {
  --section-bg: var(--color-bg-light);
  background-color: var(--section-bg);
  color: var(--color-text-dark);
}

.section-white {
  --section-bg: var(--color-bg-white);
  background-color: var(--section-bg);
  color: var(--color-text-dark);
}

.section-dark {
  --section-bg: var(--color-dark-blue);
  background-color: var(--section-bg);
  color: var(--color-text-white);
}

.section-super-dark {
  --section-bg: var(--color-super-dark);
  background-color: var(--section-bg);
  color: var(--color-text-white);
}

.section-coral {
  --section-bg: var(--color-coral);
  background-color: var(--section-bg);
  color: var(--color-text-white);
}

/* --------------------------------------------
   HEADINGS — global defaults
   -------------------------------------------- */
h1, h2 {
  font-weight: 500;
  line-height: 1.2;
}

h1 {
  font-size: var(--fs-display);
  margin-bottom: 20px;
}

h2 {
  font-size: var(--fs-h2);
  margin-bottom: 16px;
}

/* Heading standouts */
h1 em, h2 em {
  font-style: italic;
  color: var(--color-coral);
}

h1 span, h2 span {
  color: var(--color-peppermint);
}

/* --------------------------------------------
   RESPONSIVE — base tokens
   -------------------------------------------- */
@media (max-width: 768px) {
  :root {
    --section-padding: 70px 0;
    --fs-display: 2.2rem;
    --fs-h2:      2rem;
    --fs-h3:      1.05rem;
    --fs-body:    0.92rem;
    --fs-body-sm: 0.82rem;
  }
}

@media (max-width: 480px) {
  :root {
    --fs-display: 1.8rem;
    --fs-h2:      1.7rem;
    --fs-h3:      1rem;
    --fs-body:    0.88rem;
    --fs-body-sm: 0.8rem;
  }
}

/* --------------------------------------------
   REDUCED MOTION
   -------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  * {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }

  html {
    scroll-behavior: auto;
  }
}
