/* ============================================================
   사이트 공통 글자 크기 — 페이지마다 제각각이던 제목·소개문 크기를 하나의 기준으로 맞춘다.
   각 페이지 스타일보다 뒤에 불러오고, 글자 크기(font-size)만 !important로 페이지 규칙보다 우선한다.

   역할                PC      모바일(767px 이하)
   첫 화면 제목         48px    30px
   섹션 제목            40px    26px
   사진+글 줄 제목      30px    22px
   소제목(목록 항목)    22px    18px
   카드 제목            19px    17px
   신청 폼 제목         22px    20px
   첫 화면 소개문       18px    16px
   섹션 소개문          17px    15px
   ============================================================ */

/* 제목·소개문은 단어 중간에서 줄이 바뀌지 않게 */
html body h1, html body h2, html body h3,
html body .hx-hero-sub, html body .mv .hm-lede, html body .hero-sub,
html body .yg-hero-lede, html body .ptl-hero-lead, html body .hero-grid p.lead { word-break: keep-all; overflow-wrap: break-word; }

/* ── 첫 화면 제목 ── */
html body .hx-hero h1,
html body .mv .hero-m h1 .line-main,
html body h1.bk-hero-title,
html body #yg-hero-title,
html body .ptl-hero-grid h1,
html body .ptl-hero-grid h1 .ptl-title-line,
html body .hero-content > h1,
html body .hero-grid h1.reveal {
  font-size: clamp(2.1rem, 3.3vw, 3rem) !important;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.035em;
}
/* 제목 앞의 작은 첫 줄 (홈 '사업과 재산을 지키는', 환급 '지난 5년간 낸 세금 중') */
html body .hx-hero h1 span:first-child { font-size: .72em !important; }
html body .mv .hero-m h1 .line-ghost { font-size: clamp(1.5rem, 2.4vw, 2.15rem) !important; line-height: 1.3; margin-bottom: 10px; }
html body .hero-grid h1 .hl-word { font-size: 1em !important; }

/* ── 섹션 제목 ── */
html body .section-title,
html body #work-title,
html body .greeting-title,
html body #closing-title,
html body .mv .sec-head-m h2,
html body .mv .target-layout .sec-head-m h2,
html body .mv .cta-m h2,
html body #bk-care-title,
html body #ptl-care-title,
html body #bk-scope-title,
html body #bk-transfer-title,
html body .pro-faq h2,
html body section.closing h2,
html body #yg-spotlight-title,
html body #yg-story-title,
html body #yg-cases-title,
html body #yg-process-title,
html body #yg-faq-title,
html body .yg-final-inner h2,
html body .ptl-section-head h2,
html body .ptl-bottom-grid h2,
html body .section-head h2,
html body .profile-info h2,
html body .sec-head h2,
html body .sched-intro h2,
html body .cta-final h2 {
  font-size: clamp(1.75rem, 2.8vw, 2.5rem) !important;
  font-weight: 800;
  line-height: 1.32;
  letter-spacing: -0.03em;
}

/* ── 사진+글 줄 제목 ── */
html body .tf-story-text h3,
html body .mv .story-text h3 {
  font-size: clamp(1.5rem, 2.1vw, 1.875rem) !important;
  font-weight: 700;
  line-height: 1.34;
  letter-spacing: -0.03em;
}

/* ── 소제목 (큰 목록 항목) ── */
html body .mv .why-m-row h3 {
  font-size: 1.375rem !important;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.02em;
}

/* ── 카드 제목 ── */
html body .service-name,
html body .mv .process-m-row h3,
html body .mv .contact-m-col h3,
html body .scope-card-title,
html body .yg-case h3,
html body .yg-quote-copy h3,
html body .yg-process-layout li h3,
html body .ptl-branch h3,
html body .ptl-issue h3,
html body .ptl-scope h3,
html body .ptl-step h3,
html body .cycle-card h3,
html body .sched-card h3,
html body .check h3 {
  font-size: 1.1875rem !important;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: -0.02em;
}

/* ── 신청 폼 제목 ── */
html body .mv .hero-apply-card h2,
html body #formDefault > h3,
html body #yg-form-title,
html body .ptl-form-body h2,
html body #tax-apply-form-title,
html body #formView > h3 {
  font-size: 1.375rem !important;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: -0.02em;
}

/* ── 첫 화면 소개문 ── */
html body .hx-hero-sub,
html body .mv .hm-lede,
html body .hero-content > .hero-sub,
html body .yg-hero-lede,
html body .ptl-hero-lead,
html body .hero-grid p.lead {
  font-size: 1.125rem !important;
  font-weight: 400;
  line-height: 1.75;
}

/* ── 섹션 소개문 ── */
html body .section-subtitle,
html body .tf-story-head p,
html body .mv .sec-head-m .sec-lede,
html body .section-head > p,
html body .yg-section-head > p,
html body .yg-section-head div > p,
html body .ptl-section-head p,
html body .sec-head > p {
  font-size: 1.0625rem !important;
  line-height: 1.75;
}

/* ── 모바일 ── */
@media (max-width: 767px) {
  html body .hx-hero h1,
  html body .mv .hero-m h1 .line-main,
  html body h1.bk-hero-title,
  html body #yg-hero-title,
  html body .ptl-hero-grid h1,
  html body .ptl-hero-grid h1 .ptl-title-line,
  html body .hero-content > h1,
  html body .hero-grid h1.reveal { font-size: 1.875rem !important; letter-spacing: -0.03em; }
  /* 기장·양도세·상속 제목은 두 줄 고정(줄 단위 줄바꿈 금지)이라, 긴 줄이 화면 폭에 다 들어가도록 좁은 화면에서만 글자를 줄인다.
     나누는 값은 가장 긴 줄의 폭(em) + 여유 3%로, 제목 문구를 바꾸면 다시 맞춰야 한다. */
  html body .hero h1.bk-hero-title { font-size: min(1.875rem, calc((100vw - 48px) / 8.8)) !important; }
  html body .yg-hero #yg-hero-title { font-size: min(1.875rem, calc((100vw - 48px) / 11)) !important; }
  html body .ptl.theme-inheritance .ptl-hero-grid h1,
  html body .ptl.theme-inheritance .ptl-hero-grid h1 .ptl-title-line { font-size: min(1.875rem, calc((100vw - 32px) / 12.45)) !important; }
  html body .mv .hero-m h1 .line-ghost { font-size: 1.25rem !important; margin-bottom: 6px; }

  html body .section-title,
  html body #work-title,
  html body .greeting-title,
  html body #closing-title,
  html body .mv .sec-head-m h2,
  html body .mv .target-layout .sec-head-m h2,
  html body .mv .cta-m h2,
  html body #bk-care-title,
  html body #ptl-care-title,
  html body #bk-scope-title,
  html body #bk-transfer-title,
  html body .pro-faq h2,
  html body section.closing h2,
  html body #yg-spotlight-title,
  html body #yg-story-title,
  html body #yg-cases-title,
  html body #yg-process-title,
  html body #yg-faq-title,
  html body .yg-final-inner h2,
  html body .ptl-section-head h2,
  html body .ptl-bottom-grid h2,
  html body .section-head h2,
  html body .profile-info h2,
  html body .sec-head h2,
  html body .sched-intro h2,
  html body .cta-final h2 { font-size: 1.625rem !important; letter-spacing: -0.025em; }

  html body .tf-story-text h3,
  html body .mv .story-text h3 { font-size: 1.375rem !important; }

  html body .mv .why-m-row h3 { font-size: 1.125rem !important; }

  html body .service-name,
  html body .mv .process-m-row h3,
  html body .mv .contact-m-col h3,
  html body .scope-card-title,
  html body .yg-case h3,
  html body .yg-quote-copy h3,
  html body .yg-process-layout li h3,
  html body .ptl-branch h3,
  html body .ptl-issue h3,
  html body .ptl-scope h3,
  html body .ptl-step h3,
  html body .cycle-card h3,
  html body .sched-card h3,
  html body .check h3 { font-size: 1.0625rem !important; }

  html body .mv .hero-apply-card h2,
  html body #formDefault > h3,
  html body #yg-form-title,
  html body .ptl-form-body h2,
  html body #tax-apply-form-title,
  html body #formView > h3 { font-size: 1.25rem !important; }

  html body .hx-hero-sub,
  html body .mv .hm-lede,
  html body .hero-content > .hero-sub,
  html body .yg-hero-lede,
  html body .ptl-hero-lead,
  html body .hero-grid p.lead { font-size: 1rem !important; }

  html body .section-subtitle,
  html body .tf-story-head p,
  html body .mv .sec-head-m .sec-lede,
  html body .section-head > p,
  html body .yg-section-head > p,
  html body .yg-section-head div > p,
  html body .ptl-section-head p,
  html body .sec-head > p { font-size: .9375rem !important; }
}
