@charset "utf-8";

/* ==========================================================================
   pretendard.css — Pretendard 테마 토큰만
   --------------------------------------------------------------------------
   - 출처: font_guide.md (PC + Mobile)
   - Fluid 구간: :root 의 --typo-vw-min ~ --typo-vw-max
     (사이트별로 setting.css 등에서 선언. 이 프로젝트 기본 1440)
   - 공통 클래스(.title-1 등)는 typography-base.css — 이 파일에 넣지 말 것
   - @font-face는 head_sub.php Pretendard CDN 담당
   ========================================================================== */

.font-ptd {
  font-family: "Pretendard", -apple-system, BlinkMacSystemFont, system-ui, Roboto,
    "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic",
    sans-serif;

  /* 0(min폭) ~ 1(max폭) 무단위 비율. 분모·분자 모두 길이(px)여야 rem 곱셈이 유효함 */
  --typo-fluid: clamp(
    0,
    calc(
      (100vw - (var(--typo-vw-min, 375) * 1px))
      / ((var(--typo-vw-max, 1440) - var(--typo-vw-min, 375)) * 1px)
    ),
    1
  );

  /* ----- Headline 1: M 36 / PC 44 ----- */
  --hl1-min: 2.25rem;
  --hl1-max: 2.75rem;
  --hl1-size: clamp(
    var(--hl1-min),
    calc(var(--hl1-min) + (var(--hl1-max) - var(--hl1-min)) * var(--typo-fluid)),
    var(--hl1-max)
  );
  --hl1-lh: 1.32;
  --hl1-ls: -0.02em;
  --hl1-weight: 700;

  /* ----- Headline 2: M 32 / PC 40 ----- */
  --hl2-min: 2rem;
  --hl2-max: 2.5rem;
  --hl2-size: clamp(
    var(--hl2-min),
    calc(var(--hl2-min) + (var(--hl2-max) - var(--hl2-min)) * var(--typo-fluid)),
    var(--hl2-max)
  );
  --hl2-lh: 1.36;
  --hl2-ls: -0.02em;
  --hl2-weight: 700;

  /* ----- Headline 3: PC 36 (Mobile 없음 → min 28 보간) ----- */
  --hl3-min: 1.75rem;
  --hl3-max: 2.25rem;
  --hl3-size: clamp(
    var(--hl3-min),
    calc(var(--hl3-min) + (var(--hl3-max) - var(--hl3-min)) * var(--typo-fluid)),
    var(--hl3-max)
  );
  --hl3-lh: 1.39;
  --hl3-ls: -0.02em;
  --hl3-weight: 700;

  /* ----- Title 1: M 26 / PC 32 ----- */
  --t1-min: 1.625rem;
  --t1-max: 2rem;
  --t1-size: clamp(
    var(--t1-min),
    calc(var(--t1-min) + (var(--t1-max) - var(--t1-min)) * var(--typo-fluid)),
    var(--t1-max)
  );
  --t1-lh: 1.45;
  --t1-ls: -0.02em;
  --t1-weight: 600;

  /* ----- Title 2: M 22 / PC 28 ----- */
  --t2-min: 1.375rem;
  --t2-max: 1.75rem;
  --t2-size: clamp(
    var(--t2-min),
    calc(var(--t2-min) + (var(--t2-max) - var(--t2-min)) * var(--typo-fluid)),
    var(--t2-max)
  );
  --t2-lh: 1.52;
  --t2-ls: -0.02em;
  --t2-weight: 600;

  /* ----- Title 3: PC 24 (Mobile 없음 → min 18 보간) ----- */
  --t3-min: 1.125rem;
  --t3-max: 1.5rem;
  --t3-size: clamp(
    var(--t3-min),
    calc(var(--t3-min) + (var(--t3-max) - var(--t3-min)) * var(--typo-fluid)),
    var(--t3-max)
  );
  --t3-lh: 1.5;
  --t3-ls: -0.02em;
  --t3-weight: 600;

  /* ----- Body 1: M 18 / PC 22 ----- */
  --b1-min: 1.125rem;
  --b1-max: 1.375rem;
  --b1-size: clamp(
    var(--b1-min),
    calc(var(--b1-min) + (var(--b1-max) - var(--b1-min)) * var(--typo-fluid)),
    var(--b1-max)
  );
  --b1-lh: 1.7;
  --b1-ls: -0.02em;
  --b1-weight: 400;
  --b1-medium-weight: 500;

  /* ----- Body 2: M 16 / PC 18 ----- */
  --b2-min: 1rem;
  --b2-max: 1.125rem;
  --b2-size: clamp(
    var(--b2-min),
    calc(var(--b2-min) + (var(--b2-max) - var(--b2-min)) * var(--typo-fluid)),
    var(--b2-max)
  );
  --b2-lh: 1.76;
  --b2-ls: -0.02em;
  --b2-weight: 400;
  --b2-medium-weight: 500;

  /* ----- Caption: M 14 / PC 16 ----- */
  --cap-min: 0.875rem;
  --cap-max: 1rem;
  --cap-size: clamp(
    var(--cap-min),
    calc(var(--cap-min) + (var(--cap-max) - var(--cap-min)) * var(--typo-fluid)),
    var(--cap-max)
  );
  --cap-lh: 1.6;
  --cap-ls: -0.02em;
  --cap-weight: 400;

  /* ----- Tag: M 15 / PC 16 ----- */
  --tag-min: 0.9375rem;
  --tag-max: 1rem;
  --tag-size: clamp(
    var(--tag-min),
    calc(var(--tag-min) + (var(--tag-max) - var(--tag-min)) * var(--typo-fluid)),
    var(--tag-max)
  );
  --tag-lh: 1.55;
  --tag-ls: -0.02em;
  --tag-weight: 500;

  /* ----- Label: Caption 스케일 공유 / PC w600 ----- */
  --lab-min: 0.875rem;
  --lab-max: 1rem;
  --lab-size: clamp(
    var(--lab-min),
    calc(var(--lab-min) + (var(--lab-max) - var(--lab-min)) * var(--typo-fluid)),
    var(--lab-max)
  );
  --lab-lh: 1.5;
  --lab-ls: -0.02em;
  --lab-weight: 600;

  /* ----- Button: M 15 / PC 18 ----- */
  --btn-min: 0.9375rem;
  --btn-max: 1.125rem;
  --btn-size: clamp(
    var(--btn-min),
    calc(var(--btn-min) + (var(--btn-max) - var(--btn-min)) * var(--typo-fluid)),
    var(--btn-max)
  );
  --btn-lh: 1.58;
  --btn-ls: -0.02em;
  --btn-weight: 600;

  /* ----- Navigation: PC·Mobile 동일 ----- */
  --nav-main-size: 1.125rem;
  --nav-main-lh: 1.5556;
  --nav-main-ls: -0.02em;
  --nav-main-weight: 500;

  --nav-sub-size: 1rem;
  --nav-sub-lh: 1.625;
  --nav-sub-ls: -0.02em;
  --nav-sub-weight: 400;
}
