/* base.css - Base styles and resets */

/* CSS Variables - Design System */
:root {
  /* Brand Colors */
  --color-primary: #673AB7;          /* Deep Purple - York Dance Centre brand */
  --color-primary-dark: #5E35B1;     /* Darker purple for hover states */
  --color-primary-light: #E1BEE7;    /* Light purple for backgrounds */
  --color-secondary: #FFB300;        /* Amber accent - York Minster gold */
  --color-secondary-dark: #FF8F00;   /* Darker amber */
  
  /* Neutral Colors */
  --color-dark: #222;                /* Near black for headings */
  --color-text: #333;                /* Main text color */
  --color-text-light: #666;          /* Light text */
  --color-text-muted: #999;          /* Muted text */
  --color-background: #fff;          /* White background */
  --color-background-light: #f8f8f8; /* Light grey background */
  --color-background-dark: #f5f5f5;  /* Darker grey background */
  --color-border: #e0e0e0;           /* Border color */
  --color-shadow: rgba(0, 0, 0, 0.1); /* Shadow color */
  
  /* Typography Scale */
  --font-family-primary: 'Montserrat', Arial, sans-serif;
  --font-family-heading: 'Playfair Display', 'Times New Roman', serif;
  --font-size-base: 16px;
  --font-size-small: 0.875rem;       /* 14px */
  --font-size-large: 1.125rem;       /* 18px */
  --font-size-h1: 2.5rem;            /* 40px */
  --font-size-h2: 2rem;              /* 32px */
  --font-size-h3: 1.75rem;           /* 28px */
  --font-size-h4: 1.5rem;            /* 24px */
  --font-size-h5: 1.25rem;           /* 20px */
  --font-size-h6: 1rem;              /* 16px */
  
  /* Spacing Scale */
  --spacing-xs: 0.25rem;             /* 4px */
  --spacing-sm: 0.5rem;              /* 8px */
  --spacing-md: 1rem;                /* 16px */
  --spacing-lg: 1.5rem;              /* 24px */
  --spacing-xl: 2rem;                /* 32px */
  --spacing-xxl: 3rem;               /* 48px */
  --spacing-xxxl: 4rem;              /* 64px */
  
  /* Border Radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-round: 50%;
  
  /* Transitions */
  --transition-fast: 0.2s ease;
  --transition-base: 0.3s ease;
  --transition-slow: 0.5s ease;
  
  /* Z-index Scale */
  --z-index-dropdown: 100;
  --z-index-sticky: 200;
  --z-index-fixed: 300;
  --z-index-modal-backdrop: 400;
  --z-index-modal: 500;
  --z-index-popover: 600;
  --z-index-tooltip: 700;
  
  /* Container Width */
  --container-max-width: 1200px;
  --container-padding: 1rem;
}

/* Reset */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }
  
  /* Base styling */
  html {
    font-size: var(--font-size-base);
    scroll-behavior: smooth;
  }
  
  body {
    font-family: var(--font-family-primary);
    line-height: 1.6;
    color: var(--color-text);
    background-color: var(--color-background);
    padding-top: 80px; /* Account for fixed header */
  }
  
  /* Typography */
  h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-family-heading);
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: var(--spacing-md);
    color: var(--color-dark);
  }
  
  h1 {
    font-size: var(--font-size-h1);
  }
  
  h2 {
    font-size: var(--font-size-h2);
  }
  
  h3 {
    font-size: var(--font-size-h3);
  }
  
  h4 {
    font-size: var(--font-size-h4);
  }
  
  h5 {
    font-size: var(--font-size-h5);
  }
  
  h6 {
    font-size: 1rem;
  }
  
  p {
    margin-bottom: 1rem;
  }
  
  a {
    color: var(--color-primary);
    text-decoration: none;
    -webkit-transition: color 0.3s ease;
    -o-transition: color 0.3s ease;
    transition: color 0.3s ease;
  }
  
  a:hover {
    color: var(--color-primary-dark);
  }
  
  img {
    max-width: 100%;
    height: auto;
    display: block;
  }
  
  /* Containers */
  .container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem;
  }
  
  .section {
    padding: 4rem 0;
  }
  
  /* Buttons */
  .btn {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    background-color: var(--color-primary);
    color: white;
    border: none;
    border-radius: var(--radius-sm);
    font-weight: 600;
    cursor: pointer;
    -webkit-transition: background-color 0.3s ease;
    -o-transition: background-color 0.3s ease;
    transition: background-color 0.3s ease;
    text-align: center;
    text-decoration: none;
  }
  
  .btn:hover {
    background-color: var(--color-primary-dark);
    color: white;
  }
  
  .btn-primary {
    background-color: var(--color-primary);
    color: white;
  }
  
  .btn-primary:hover {
    background-color: var(--color-primary-dark);
  }
  
  .btn-secondary {
    background-color: transparent;
    color: white;
    border: 2px solid white;
  }
  
  .btn-secondary:hover {
    background-color: white;
    color: var(--color-primary);
  }
  
  .btn-large {
    padding: 1rem 2rem;
    font-size: 1.125rem;
  }
  
  .btn-small {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
  }
  
  /* Utilities */
  .text-center {
    text-align: center;
  }
  
  .mb-1 {
    margin-bottom: 0.5rem;
  }
  
  .mb-2 {
    margin-bottom: 1rem;
  }
  
  .mb-3 {
    margin-bottom: 1.5rem;
  }
  
  .mb-4 {
    margin-bottom: 2rem;
  }
  
  .mt-1 {
    margin-top: 0.5rem;
  }
  
  .mt-2 {
    margin-top: 1rem;
  }
  
  .mt-3 {
    margin-top: 1.5rem;
  }
  
  .mt-4 {
    margin-top: 2rem;
  }
  
  /* Responsive utilities */
  @media (max-width: 992px) {
    html {
      font-size: 15px;
    }
  }
  
  @media (max-width: 768px) {
    html {
      font-size: 14px;
    }
    
    .section {
      padding: 3rem 0;
    }
  }
  
  @media (max-width: 576px) {
    html {
      font-size: 13px;
    }
    
    .section {
      padding: 2rem 0;
    }
  }