/* ================================
   ROOT VARIABLES (SITE-WIDE)
================================ */
:root {
  --color-dark: #333333;
  --color-text: #222222;
  --color-muted: #555555;
  --color-light-bg: #f7f7f7;
  --color-section-bg: #fafafa;
  --color-accent: #999999;

  --container-width: 90%;
  --container-max: 1200px;

  --focus-ring: rgba(153,153,153,0.55);

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;

  --shadow-soft: 0 10px 22px rgba(0,0,0,0.06);
}


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


/* ================================
   BASE / GLOBAL
================================ */
html {
  scroll-behavior: smooth;
}

body {
  font-family: Arial, Helvetica, sans-serif;
  background-color: var(--color-light-bg);
  color: var(--color-text);
  line-height: 1.6;
}


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


/* ================================
   GENERIC SECTIONS
================================ */
section {
  padding: 80px 0;
}

section h2 {
  margin-bottom: 20px;
  font-size: 28px;
}

.section-title {
  text-align: center;
}


/* ================================
   MEDIA DEFAULTS
================================ */
img,
svg,
video,
iframe {
  max-width: 100%;
}

img,
video {
  height: auto;
  display: block;
}


/* ================================
   FORMS / BUTTONS (BASE)
================================ */
button,
input,
textarea,
select {
  font: inherit;
}

button {
  cursor: pointer;
}


/* ================================
   ACCESSIBILITY
================================ */

/* Focus ring */
a:focus-visible,
button:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

/* Screen-reader only text */
.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;
}


/* ================================
   SMALL UTILITIES
================================ */
.center {
  text-align: center;
}

.no-scroll {
  overflow: hidden;
}


/* ================================
   REDUCED MOTION SUPPORT
================================ */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}