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

html { font-size: 16px; scroll-behavior: smooth; }

body {
  background: var(--bg-canvas);
  color: var(--text-primary);
  font-family: 'Poppins', system-ui, -apple-system, sans-serif;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1 { font-size: 32px; font-weight: 700; line-height: 1.2; letter-spacing: -0.02em; }
h2 { font-size: 24px; font-weight: 700; line-height: 1.25; letter-spacing: -0.01em; }
h3 { font-size: 18px; font-weight: 600; line-height: 1.3; }
h4 { font-size: 15px; font-weight: 600; line-height: 1.4; }

p { line-height: 1.6; }

a { color: var(--brand); text-decoration: none; }
a:hover { color: var(--brand-hover); }

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

button { cursor: pointer; font-family: inherit; }

input, textarea, select {
  font-family: inherit;
  font-size: 15px;
}

.container {
  max-width: 620px;
  margin: 0 auto;
  padding: 0 16px;
}

.section { padding: 32px 20px; }

.visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes fadeInStep {
  from { opacity: 0; transform: translateX(-8px); }
  to   { opacity: 1; transform: translateX(0); }
}

.fade-in { animation: fadeIn 0.4s ease both; }

/* ── Anti-zoom: prevent iOS/Android auto-zoom on input focus ─────────────── */
html, body { touch-action: manipulation; }
input, select, textarea { font-size: 16px !important; }
@media (max-width: 640px) {
  input, select, textarea { font-size: 16px !important; }
}
