@font-face {
    font-family: 'Outfit';
    src: url('../fonts/Outfit-Black.woff2') format('woff2'),
        url('../fonts/Outfit-Black.woff') format('woff');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('../fonts/Outfit-ExtraBold.woff2') format('woff2'),
        url('../fonts/Outfit-ExtraBold.woff') format('woff');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('../fonts/Outfit-Bold.woff2') format('woff2'),
        url('../fonts/Outfit-Bold.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('../fonts/Outfit-SemiBold.woff2') format('woff2'),
        url('../fonts/Outfit-SemiBold.woff') format('woff');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('../fonts/Outfit-Medium.woff2') format('woff2'),
        url('../fonts/Outfit-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('../fonts/Outfit-Regular.woff2') format('woff2'),
        url('../fonts/Outfit-Regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('../fonts/Outfit-Light.woff2') format('woff2'),
        url('../fonts/Outfit-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('../fonts/Outfit-ExtraLight.woff2') format('woff2'),
        url('../fonts/Outfit-ExtraLight.woff') format('woff');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('../fonts/Outfit-Thin.woff2') format('woff2'),
        url('../fonts/Outfit-Thin.woff') format('woff');
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}

/* CSS Reset & Variables */
:root {
  /* Colors - Light Theme (Default) */
  --primary-hsl: 156, 72%, 35%; /* Emerald */
  --primary-color: hsl(var(--primary-hsl));
  --primary-hover: hsl(156, 72%, 28%);
  --primary-light: hsl(156, 72%, 95%);
  
  --secondary-hsl: 217, 91%, 60%; /* Slate Blue */
  --secondary-color: hsl(var(--secondary-hsl));
  --secondary-hover: hsl(217, 91%, 50%);

  --bg-color: #f8fafc;
  --bg-alt: #ffffff;
  --text-color: #0f172a;
  --text-muted: #475569;
  --border-color: #e2e8f0;
  --card-bg: #ffffff;
  --shadow-color: rgba(15, 23, 42, 0.06);
  --shadow: 0 4px 6px -1px var(--shadow-color), 0 2px 4px -2px var(--shadow-color);
  --shadow-lg: 0 10px 15px -3px var(--shadow-color), 0 4px 6px -4px var(--shadow-color);
  
  /* Accent Colors */
  --error: #ef4444;
  --success: #10b981;
  --warning: #f59e0b;
  --info: #3b82f6;

  /* Typography */
  --font-family: 'Outfit', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  
  /* Font Sizes - Responsive scale using clamp() */
  --fs-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.8125rem);
  --fs-sm: clamp(0.875rem, 0.8rem + 0.3vw, 0.9375rem);
  --fs-base: clamp(1rem, 0.95rem + 0.25vw, 1.0625rem);
  --fs-md: clamp(1.125rem, 1.05rem + 0.35vw, 1.25rem);
  --fs-lg: clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem);
  --fs-xl: clamp(1.5rem, 1.35rem + 0.75vw, 2rem);
  --fs-xxl: clamp(2rem, 1.75rem + 1.25vw, 3rem);
  --fs-jumbo: clamp(2.5rem, 2rem + 2.5vw, 4.5rem);

  /* Spacing */
  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2.5rem;
  --space-xl: 4rem;
  --space-xxl: 6rem;

  /* Layout */
  --container-width: 1200px;
  --container-padding: var(--space-md);
  --border-radius: 12px;
  --border-radius-sm: 8px;
  --border-radius-lg: 24px;
  
  /* Transitions */
  --transition-fast: 0.15s ease;
  --transition-normal: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 0.5s ease;

  color-scheme: light;
}

/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

/* Remove list styles on ul, ol elements with a list class, and set sensible defaults */
ul,
ol {
  margin-top: 0;
  margin-bottom: var(--space-sm);
  padding-left: var(--space-md);
}

ul[class],
ol[class] {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Set core root defaults */
html:focus-within {
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: 1.6;
  font-family: var(--font-family);
  font-size: var(--fs-base);
  color: var(--text-color);
  background-color: var(--bg-color);
  transition: background-color var(--transition-normal), color var(--transition-normal);
  overflow-x: hidden;
}

/* A elements that don't have a class get default styles */
a {
  color: var(--primary-color);
  text-decoration: none;
  transition: color var(--transition-fast);
}

a:hover,
a:focus {
  color: var(--primary-hover);
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
  height: auto;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
}

/* Heading Typography */
h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: var(--font-family);
  font-weight: 700;
  line-height: 1.2;
  color: var(--text-color);
  margin-bottom: var(--space-sm);
}

h1, .h1 { font-size: var(--fs-xxl); letter-spacing: -0.02em; }

/* h2 — Outfit Bold, 48px / 58px on desktop; responsive via responsive.css */
h2, .h2 {
  font-family: 'Outfit', var(--font-family);
  font-weight: 700;
  font-size: 48px;
  line-height: 58px;
  letter-spacing: -0.01em;
}

h3, .h3 { font-size: var(--fs-lg); }
h4, .h4 { font-size: var(--fs-md); }
h5, .h5 { font-size: var(--fs-base); }
h6, .h6 { font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: 0.05em; }

/* Paragraph — 16px / 26px */
p {
  font-size: 16px;
  line-height: 26px;
}

/* Skip Link for Accessibility */
.skip-link {
  position: absolute;
  top: -100px;
  left: var(--space-md);
  background: var(--primary-color);
  color: white;
  padding: var(--space-xs) var(--space-sm);
  z-index: 9999;
  border-radius: 0 0 var(--border-radius-sm) var(--border-radius-sm);
  transition: top var(--transition-fast);
  font-weight: 500;
}

.skip-link:focus {
  top: 0;
  outline: 3px solid var(--secondary-color);
}

/* Focus outline helper */
*:focus-visible {
  outline: 3px solid var(--secondary-color);
  outline-offset: 3px;
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }
  
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
