@charset "utf-8";

/* Pretendard 로컬 폰트 */
@font-face { font-family: 'Pretendard'; font-weight: 300; font-style: normal; font-display: swap; src: url('../fonts/Pretendard-Light.woff2') format('woff2'); }
@font-face { font-family: 'Pretendard'; font-weight: 400; font-style: normal; font-display: swap; src: url('../fonts/Pretendard-Regular.woff2') format('woff2'); }
@font-face { font-family: 'Pretendard'; font-weight: 500; font-style: normal; font-display: swap; src: url('../fonts/Pretendard-Medium.woff2') format('woff2'); }
@font-face { font-family: 'Pretendard'; font-weight: 600; font-style: normal; font-display: swap; src: url('../fonts/Pretendard-SemiBold.woff2') format('woff2'); }
@font-face { font-family: 'Pretendard'; font-weight: 700; font-style: normal; font-display: swap; src: url('../fonts/Pretendard-Bold.woff2') format('woff2'); }
@font-face { font-family: 'Pretendard'; font-weight: 800; font-style: normal; font-display: swap; src: url('../fonts/Pretendard-ExtraBold.woff2') format('woff2'); }

/* 디자인 토큰 */
:root {
  /* 색상 — 로고의 짙은 녹색·라임 기반 */
  --c-ink: #0f1a14;
  --c-ink-2: #16261d;
  --c-green: #1f5a36;
  --c-green-2: #2f7a47;
  --c-lime: #8cc63f;
  --c-lime-soft: #e9f3dc;
  --c-bg: #f3f4ef;
  --c-white: #ffffff;
  --c-text: #1b221e;
  --c-text-2: #4d5852;
  --c-text-3: #7d8781;
  --c-line: #dcdfd7;
  --c-line-dark: rgba(255, 255, 255, 0.16);

  /* 레이아웃 */
  --w-page: 1920px;
  --w-inner: 1440px;
  --h-header: 96px;

  /* 폰트 크기 */
  --fs-12: 12px;
  --fs-13: 13px;
  --fs-14: 14px;
  --fs-15: 15px;
  --fs-16: 16px;
  --fs-17: 17px;
  --fs-18: 18px;
  --fs-19: 19px;
  --fs-20: 20px;
  --fs-22: 22px;
  --fs-24: 24px;
  --fs-28: 28px;
  --fs-32: 32px;
  --fs-40: 40px;
  --fs-48: 48px;
  --fs-56: 56px;
  --fs-64: 64px;
  --fs-80: 80px;
  --fs-96: 96px;

  /* 간격 */
  --sp-2: 2px;
  --sp-4: 4px;
  --sp-6: 6px;
  --sp-8: 8px;
  --sp-10: 10px;
  --sp-12: 12px;
  --sp-14: 14px;
  --sp-16: 16px;
  --sp-20: 20px;
  --sp-24: 24px;
  --sp-28: 28px;
  --sp-32: 32px;
  --sp-40: 40px;
  --sp-48: 48px;
  --sp-56: 56px;
  --sp-64: 64px;
  --sp-72: 72px;
  --sp-80: 80px;
  --sp-96: 96px;
  --sp-120: 120px;
  --sp-160: 160px;

  /* 모서리 */
  --r-4: 4px;
  --r-8: 8px;
  --r-12: 12px;
  --r-16: 16px;
  --r-24: 24px;
  --r-full: 999px;

  /* 모션 */
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --dur: 0.5s;
}

/* 리셋 */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { font-family: 'Pretendard', sans-serif; font-size: var(--fs-17); line-height: 1.6; color: var(--c-text); background: var(--c-white); word-break: keep-all; -webkit-font-smoothing: antialiased; }
img, picture, video, svg { display: block; max-width: 100%; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
input, select, textarea { font: inherit; color: inherit; }
table { border-collapse: collapse; border-spacing: 0; }
h1, h2, h3, h4, h5, h6 { font-weight: 700; line-height: 1.3; }
address { font-style: normal; }
.blind { overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); width: 1px; height: 1px; margin: -1px; white-space: nowrap; }
:focus-visible { outline: 2px solid var(--c-lime); outline-offset: 3px; }
@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; }
}
