@charset "utf-8";

/* ==========================================================================
   pretendard-senior.css — Pretendard 시니어 테마 토큰만
   --------------------------------------------------------------------------
   - 출처: font_guide_ver2.md (Senior PC + Mobile)
   - Fluid 구간: :root 의 --typo-vw-min ~ --typo-vw-max
     (사이트별로 setting.css 등에서 선언. 이 프로젝트 기본 1440)
   - 공통 클래스(.headline-1 등)는 typography-base.css — 이 파일에 넣지 말 것
   - @font-face는 head_sub.php Pretendard CDN 담당
   - 사용: <main class="font-ptd-senior"> … headline-1, section-title, card-title …
   - 매핑·변환 규칙: typography_generation_guide.md
   ========================================================================== */

.font-ptd-senior {
  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: Senior Headline — M 36 / PC 52 ----- */
  --hl1-min: 2.25rem;
  --hl1-max: 3.25rem;
  --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.269;
  --hl1-ls: -0.02em;
  --hl1-weight: 700;

  /* ----- Headline 2: 가이드 없음 → Headline·Section Title 중간 보간 M 32 / PC 50 ----- */
  --hl2-min: 2rem;
  --hl2-max: 3.125rem;
  --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.24;
  --hl2-ls: -0.02em;
  --hl2-weight: 700;

  /* ----- Headline 3: 가이드 없음 → Section·Card Title 중간 보간 M 25 / PC 40 ----- */
  --hl3-min: 1.5625rem;
  --hl3-max: 2.5rem;
  --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.2;
  --hl3-ls: -0.02em;
  --hl3-weight: 600;

  /* ----- Section Title (.section-title): Senior Section Title — M 28 / PC 48 ----- */
  --st-min: 1.75rem;
  --st-max: 3rem;
  --st-size: clamp(
    var(--st-min),
    calc(var(--st-min) + (var(--st-max) - var(--st-min)) * var(--typo-fluid)),
    var(--st-max)
  );
  --st-lh: 1.208;
  --st-ls: -0.02em;
  --st-weight: 700;

  /* ----- Card Title (.card-title): Senior Card Title — M 22 / PC 32 ----- */
  --ct-min: 1.375rem;
  --ct-max: 2rem;
  --ct-size: clamp(
    var(--ct-min),
    calc(var(--ct-min) + (var(--ct-max) - var(--ct-min)) * var(--typo-fluid)),
    var(--ct-max)
  );
  --ct-lh: 1.125;
  --ct-ls: -0.02em;
  --ct-weight: 600;

  /* ----- Title 1: 일반 Pretendard 호환 (마이그레이션 전 .title-1 → --st-* 와 동일) ----- */
  --t1-size: var(--st-size);
  --t1-lh: var(--st-lh);
  --t1-ls: var(--st-ls);
  --t1-weight: var(--st-weight);

  /* ----- Title 2: 일반 Pretendard 호환 (마이그레이션 전 .title-2 → --ct-* 와 동일) ----- */
  --t2-size: var(--ct-size);
  --t2-lh: var(--ct-lh);
  --t2-ls: var(--ct-ls);
  --t2-weight: var(--ct-weight);

  /* ----- Title 3: 가이드 없음 → Card Title·Body1 중간 보간 M 19 / PC 28 ----- */
  --t3-min: 1.1875rem;
  --t3-max: 1.75rem;
  --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.44;
  --t3-ls: -0.02em;
  --t3-weight: 600;

  /* ----- Body 1: Senior Body1 / M Body — M 16 / PC 24 ----- */
  --b1-min: 1rem;
  --b1-max: 1.5rem;
  --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.667;
  --b1-ls: -0.02em;
  --b1-weight: 400;
  --b1-medium-weight: 500;

  /* ----- Body 2: Senior Body2 / M Sub Body — M 15 / PC 20 ----- */
  --b2-min: 0.9375rem;
  --b2-max: 1.25rem;
  --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.7;
  --b2-ls: -0.02em;
  --b2-weight: 400;
  --b2-medium-weight: 500;

  /* ----- Caption: Senior Caption — M 13 / PC 18 ----- */
  --cap-min: 0.8125rem;
  --cap-max: 1.125rem;
  --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.667;
  --cap-ls: -0.02em;
  --cap-weight: 400;

  /* ----- Tag: 가이드 없음 → Caption·Body2 중간 보간 M 14 / PC 19 ----- */
  --tag-min: 0.875rem;
  --tag-max: 1.1875rem;
  --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.68;
  --tag-ls: -0.02em;
  --tag-weight: 500;

  /* ----- Label: Caption 스케일 공유 / weight 600 ----- */
  --lab-min: 0.8125rem;
  --lab-max: 1.125rem;
  --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.667;
  --lab-ls: -0.02em;
  --lab-weight: 600;

  /* ----- Button: Senior Button — M 14 / PC 20 ----- */
  --btn-min: 0.875rem;
  --btn-max: 1.25rem;
  --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.6;
  --btn-ls: -0.02em;
  --btn-weight: 600;

  /* ----- Navigation Main: Senior Navigation — M 16 / PC 19 ----- */
  --nav-main-min: 1rem;
  --nav-main-max: 1.1875rem;
  --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.579;
  --nav-main-ls: -0.02em;
  --nav-main-weight: 500;

  /* ----- Navigation Sub: 가이드 없음 → M Sub Body 고정 15 ----- */
  --nav-sub-size: 0.9375rem;
  --nav-sub-lh: 2;
  --nav-sub-ls: -0.02em;
  --nav-sub-weight: 400;
}
