@charset "utf-8";

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

  --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 56 ----- */
  --hl1-min: 2.25rem;
  --hl1-max: 3.5rem;
  --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.214;
  --hl1-ls: -0.02em;
  --hl1-weight: 700;

  /* ----- Headline 2: M 30 / PC 44 ----- */
  --hl2-min: 1.875rem;
  --hl2-max: 2.75rem;
  --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.273;
  --hl2-ls: -0.02em;
  --hl2-weight: 700;

  /* ----- Headline 3: Mobile 없음 → M Headline 2(30) / PC 36 ----- */
  --hl3-min: 1.875rem;
  --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.333;
  --hl3-ls: -0.02em;
  --hl3-weight: 700;

  /* ----- Title 1: M 24 / PC 30 ----- */
  --t1-min: 1.5rem;
  --t1-max: 1.875rem;
  --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.4;
  --t1-ls: -0.02em;
  --t1-weight: 600;

  /* ----- Title 2: M 20 / PC 24 ----- */
  --t2-min: 1.25rem;
  --t2-max: 1.5rem;
  --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.5;
  --t2-ls: -0.02em;
  --t2-weight: 600;

  /* ----- Title 3: Mobile 없음 → M Title 2(20) / PC 24, ls -0.48px ----- */
  --t3-min: 1.25rem;
  --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 / Body 1 Medium: M 16 / PC 18 -----
     · Regular → --b1-weight (400)
     · Medium  → --b1-medium-weight (500) — .body-1-medium (typography-base.css)
     · PC Body 1 Medium: 18px / lh 32px (177.778%)
     · M Body 1 Medium: Body 1과 동일 스케일, weight 500만 상이 ----- */
  --b1-min: 1rem;
  --b1-max: 1.125rem;
  --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.778;
  --b1-ls: -0.02em;
  --b1-weight: 400;
  --b1-medium-weight: 500;

  /* ----- Body 2 / Body 2 Medium: M 15 / PC 16 -----
     · Regular → --b2-weight (400)
     · Medium  → --b2-medium-weight (500) — .body-2-medium (typography-base.css) ----- */
  --b2-min: 0.9375rem;
  --b2-max: 1rem;
  --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.75;
  --b2-ls: -0.02em;
  --b2-weight: 400;
  --b2-medium-weight: 500;

  /* ----- Body 3: Mobile 없음 → M Body 2(15) / PC 15 ----- */
  --b3-min: 0.9375rem;
  --b3-max: 0.9375rem;
  --b3-size: clamp(
    var(--b3-min),
    calc(var(--b3-min) + (var(--b3-max) - var(--b3-min)) * var(--typo-fluid)),
    var(--b3-max)
  );
  --b3-lh: 1.733;
  --b3-ls: -0.02em;
  --b3-weight: 400;

  /* ----- Caption: M 13 / PC 14 ----- */
  --cap-min: 0.8125rem;
  --cap-max: 0.875rem;
  --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.571;
  --cap-ls: -0.02em;
  --cap-weight: 400;

  /* ----- Tag: M Button·Tag(14) / PC 15 ----- */
  --tag-min: 0.875rem;
  --tag-max: 0.9375rem;
  --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.467;
  --tag-ls: -0.02em;
  --tag-weight: 500;

  /* ----- Label: Mobile 없음 → Caption 스케일 M 13 / PC 14 ----- */
  --lab-min: 0.8125rem;
  --lab-max: 0.875rem;
  --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.429;
  --lab-ls: -0.02em;
  --lab-weight: 600;

  /* ----- Button: M 14 / PC 17 ----- */
  --btn-min: 0.875rem;
  --btn-max: 1.0625rem;
  --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.412;
  --btn-ls: -0.02em;
  --btn-weight: 600;

  /* ----- Navigation Main: Mobile 없음 → M Body 1(16) / PC 18 ----- */
  --nav-main-min: 1rem;
  --nav-main-max: 1.125rem;
  --nav-main-size: clamp(
    var(--nav-main-min),
    calc(var(--nav-main-min) + (var(--nav-main-max) - var(--nav-main-min)) * var(--typo-fluid)),
    var(--nav-main-max)
  );
  --nav-main-lh: 1.333;
  --nav-main-ls: -0.02em;
  --nav-main-weight: 500;

  /* ----- Navigation Sub: 가이드 없음 → Body 2 스케일 M 15 / PC 16 ----- */
  --nav-sub-min: 0.9375rem;
  --nav-sub-max: 1rem;
  --nav-sub-size: clamp(
    var(--nav-sub-min),
    calc(var(--nav-sub-min) + (var(--nav-sub-max) - var(--nav-sub-min)) * var(--typo-fluid)),
    var(--nav-sub-max)
  );
  --nav-sub-lh: 1.75;
  --nav-sub-ls: -0.02em;
  --nav-sub-weight: 400;
}
