/* 폰트 — Pretendard 서브셋 (KS X 1001 한글 2,350자 + 영문) */
@font-face { font-family: "Pretendard"; font-weight: 400; font-display: swap; src: url("/assets/fonts/Pretendard-Regular.subset.woff2") format("woff2"); }
@font-face { font-family: "Pretendard"; font-weight: 500; font-display: swap; src: url("/assets/fonts/Pretendard-Medium.subset.woff2") format("woff2"); }
@font-face { font-family: "Pretendard"; font-weight: 700; font-display: swap; src: url("/assets/fonts/Pretendard-Bold.subset.woff2") format("woff2"); }

/* 색·간격 — 브랜드 색은 body.brand-* 에서 바꿈 */
:root {
    --ink: #1c1c1c;
    --text: #4a4a4a;
    --muted: #8b8b8b;
    --line: #e7e7e5;
    --soft: #f6f5f3;
    --brand: #1c1c1c;
    --brand-soft: #f6f5f3;
    --radius: 14px;
    --shadow: 0 12px 32px rgba(0, 0, 0, .08);
    --side: 280px;
    --gutter: 16px;
}
.brand-intrinsic, .brand-intrinsic_md { --brand: #7d6991; --brand-soft: #f2eff7; }
.brand-fusidyne { --brand: #ec6a2c; --brand-soft: #fdf1ea; }
.brand-leda { --brand: #7f7f7f; --brand-soft: #f3f3f3; }
.brand-never { --brand: #1d2b6b; --brand-soft: #eef0f7; }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
    margin: 0;
    background: #fff;
    color: var(--text);
    font-family: "Pretendard", -apple-system, BlinkMacSystemFont, "Malgun Gothic", "맑은 고딕", sans-serif;
    font-size: 16px;
    line-height: 1.65;
    word-break: keep-all;
    overflow-wrap: anywhere;
}
h1, h2, h3, h4, h5, p, ul, ol, dl, dd, figure { margin: 0; }
h1, h2, h3, h4, h5 { color: var(--ink); line-height: 1.3; font-weight: 700; }
ul, ol { padding: 0; list-style: none; }
img, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
input { font: inherit; color: inherit; }
address { font-style: normal; }
:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; }

.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 10px 16px; background: var(--ink); color: #fff; border-radius: 8px; }
.skip-link:focus { top: 12px; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
