/* 기본 글자·글자 단계·폭·접근성 — 디자인 시스템 §3·§4 */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font);
  font-size: 17px; line-height: 1.588; font-weight: 400; letter-spacing: var(--track);
  color: var(--ink); background: var(--bg);
  -webkit-font-smoothing: antialiased; word-break: keep-all; overflow-wrap: break-word;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
[hidden] { display: none !important; } /* 부품에 display를 줘도 hidden 속성이 이기게 */
:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }

.wrap { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); }
.skip-link { position: absolute; left: var(--s2); top: -100px; z-index: 100; background: var(--navy); color: #fff; padding: 10px 16px; border-radius: 10px; }
.skip-link:focus { top: var(--s2); }

.t-hero     { font-size: 56px; line-height: 1.179; font-weight: 600; letter-spacing: var(--track-tight); }
.t-headline { font-size: 48px; line-height: 1.083; font-weight: 600; letter-spacing: var(--track-tight); }
.t-callout  { font-size: 32px; line-height: 1.25;  font-weight: 600; }
.t-subhead  { font-size: 21px; line-height: 1.286; font-weight: 400; }
.t-body     { font-size: 17px; line-height: 1.588; font-weight: 400; }
.t-small    { font-size: 14px; line-height: 1.571; font-weight: 400; }
.t-caption  { font-size: 12px; line-height: 1.417; font-weight: 600; letter-spacing: 0.02em; }
@media (max-width: 1068px) {
  .t-hero { font-size: 48px; }
  .t-headline { font-size: 40px; line-height: 1.1; }
  .t-callout { font-size: 28px; }
  .t-subhead { font-size: 19px; line-height: 1.316; }
}
@media (max-width: 734px) {
  .t-hero { font-size: 32px; }
  .t-headline { font-size: 32px; line-height: 1.125; }
  .t-callout { font-size: 24px; line-height: 1.292; }
}

.placeholder-hero { padding: var(--s12) var(--gutter); display: grid; gap: var(--s2); justify-items: start; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important; animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
}
