/*
 * Global Design System
 */

/* ========================================
   CSS VARIABLES
======================================== */

:root {
  /* Colors */
  --color-background: #ffffff;
  --color-surface: #f7f7f7;

  --color-text: #171717;
  --color-text-muted: #666666;

  --color-primary: #111111;
  --color-primary-hover: #333333;

  --color-border: #e5e5e5;

  /* Typography */

  --font-family:
    Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* Spacing */

  --space-xs: 8px;
  --space-sm: 12px;
  --space-md: 20px;
  --space-lg: 32px;
  --space-xl: 48px;
  --space-2xl: 80px;
  --space-3xl: 120px;

  /* Layout */

  --container-width: 1200px;
}

/* ========================================
   RESET
======================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;

  font-family: var(--font-family);

  background: var(--color-background);

  color: var(--color-text);

  line-height: 1.6;
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
}

/* ========================================
   CONTAINER
======================================== */

.container {
  width: min(calc(100% - 40px), var(--container-width));

  margin-inline: auto;
  max-width: 1200px;

  padding-inline: 24px;

  box-sizing: border-box;
}

/* ========================================
   BUTTONS
======================================== */

.button {
  display: inline-flex;

  align-items: center;
  justify-content: center;

  padding: 12px 20px;

  border-radius: 6px;

  font-weight: 600;

  text-decoration: none;

  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease,
    transform 0.2s ease;
}

.button:hover {
  transform: translateY(-2px);
}

/* ========================================
   SECTION
======================================== */

.section {
  padding-block: var(--space-3xl);
}

.section__header {
  max-width: 720px;

  margin-inline: auto;
  text-align: center;

  margin-bottom: var(--space-xl);
}

.section__title {
  margin: 0;

  font-size: clamp(32px, 5vw, 48px);

  line-height: 1.2;
}

.section__description {
  max-width: 650px;

  margin-top: var(--space-md);

  color: var(--color-text-muted);
}

@media (max-width: 1024px) {
  .section {
    padding-block: 80px;
  }
}

/*
|--------------------------------------------------------------------------
| Mobile
|--------------------------------------------------------------------------
*/

@media (max-width: 768px) {
  .container {
    padding-inline: 20px;
  }

  .section {
    padding-block: 64px;
  }

  .section__header {
    margin-bottom: 32px;
  }
}

/*
|--------------------------------------------------------------------------
| Small Mobile
|--------------------------------------------------------------------------
*/

@media (max-width: 480px) {
  .container {
    padding-inline: 16px;
  }

  .section {
    padding-block: 52px;
  }
}

/*
|--------------------------------------------------------------------------
| Accessibility — Skip Link
|--------------------------------------------------------------------------
*/

.skip-link {
    position: absolute;

    top: 8px;
    left: 8px;

    z-index: 9999;

    padding: 10px 16px;

    background: var(--color-background);

    color: var(--color-text);

    border: 2px solid var(--color-primary);

    border-radius: 6px;

    text-decoration: none;

    transform: translateY(-200%);

    transition: transform 0.2s ease;
}


.skip-link:focus {
    transform: translateY(0);

    outline: 3px solid var(--color-primary);

    outline-offset: 2px;
}