/* ===== Base reset ===== */
*, *::before, *::after { box-sizing: border-box; }
/* 앵커 스크롤 시 sticky 헤더(높이 68px)에 섹션 상단이 가려지지 않도록 오프셋 */
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
html, body { margin: 0; padding: 0; }
body {
  font-family: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; background: none; border: none; }
h1, h2, h3, h4, p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
dl, dd { margin: 0; }

/* ===== Theme tokens (임시 — 디자인 확정 시 교체) ===== */
:root {
  --color-primary: #1565C0;
  --color-primary-dark: #0D47A1;
  --color-primary-light: #E8F0FB;
  --color-accent: #FFB300;      /* gold star */
  --color-accent-2: #42A5F5;
  --color-text: #1c2430;
  --color-muted: #5c6a7a;
  --color-bg: #ffffff;
  --color-bg-alt: #f4f8fd;
  --color-border: #e2e9f2;
  --max-width: 1160px;
  --section-py: 88px;
  --radius: 18px;
  --shadow-sm: 0 4px 16px rgba(21, 101, 192, 0.06);
  --shadow-md: 0 12px 32px rgba(21, 101, 192, 0.12);
}

/* ===== Layout helpers ===== */
.container {
  width: 100%;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 24px;
}
.section { padding: var(--section-py) 0; }
.text-center { text-align: center; }
.justify-center { justify-content: center; }

.section-header { max-width: 720px; margin: 0 auto 56px; }
.section-title {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 800;
  line-height: 1.25;
  color: var(--color-text);
  letter-spacing: -0.02em;
}
.section-subtitle {
  margin-top: 14px;
  font-size: clamp(1rem, 1.6vw, 1.25rem);
  color: var(--color-muted);
}
.responsive-img { width: 100%; height: auto; }

.badge {
  display: inline-block;
  padding: 8px 18px;
  border-radius: 999px;
  background: var(--color-primary-light);
  color: var(--color-primary-dark);
  font-size: 0.875rem;
  font-weight: 600;
}
