/* Four public pages: semantic type roles; mobile body steps remain 2px smaller. */
:is(.home-page, .about-page, .cr-regular, .contact-page) {
  --reading-size: 16px;
  --lead-size: 18px;
  --label-size: 14px;
  --section-size: 36px;
  --card-size: 22px;
  font-size: var(--reading-size);
}
:is(.home-page, .about-page, .cr-regular, .contact-page) p {
  font-weight: 400;
  word-break: keep-all;
  overflow-wrap: break-word;
}
/* Labels carry real meaning; reserve 12/10px for short decorative metadata. */
.home-page .home-eyebrow,
.home-page #main-po-title .large-text,
.home-page #main-career-title-area .large-text,
.about-page :is(.about-eyebrow, .small-text),
.about-page :is(#about-instructor-title, #about-ob-title, #about-career-title-area) .large-text,
.cr-regular .cr-eyebrow,
.contact-page :is(#cont-title-text .large-text, .contact-form-intro .small-text, .location-info .small-text) {
  font-size: var(--label-size);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .04em;
}
.home-page :is(#main-po-title, .home-heading, #main-career-title-area, #main-ins-title) h2,
.about-page :is(.about-section-heading, #about-instructor-title, #about-ob-title, #about-career-title-area) h2,
.cr-regular .cr-section-head h2,
.contact-page #cont-title-text h1 {
  font-size: var(--section-size);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.home-page :is(.home-learning-steps, .home-youtube-copy) h3,
.about-page :is(.about-journey-card, .about-ob-card-title, .about-ai-copy) h3,
.cr-regular :is(.cr-learning-grid, .cr-class-steps, .cr-start-cards, .cr-field-list) h3,
.contact-page :is(.contact-form-intro, .location-info) h3 {
  font-size: var(--card-size);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -.025em;
}
.home-page :is(.medium-text, .home-heading > p:last-child, .home-learning-steps p, .home-youtube-copy > p:last-of-type),
.about-page :is(.medium-text, .about-section-heading > p:last-child, .about-journey-card > p, .about-ai-copy > p:last-child, .about-instructor-facts p),
.about-page .about-ob-card .medium-text,
.cr-regular :is(.cr-three article > p, .cr-learning-grid dd, .cr-field-list p, .cr-work-footer p, .cr-ai-method-copy > p:not(.cr-eyebrow)),
.contact-page :is(#cont-title-text .medium-text, .contact-form-note, .privacy-consent label, .location-info > p:not(.small-text)) {
  font-size: var(--reading-size);
  line-height: 1.8;
  letter-spacing: -.015em;
}
.home-page .home-ai-copy > p:last-child,
.about-page #about-bn-lead,
.cr-regular .cr-lead { font-size: var(--lead-size); line-height: 1.8; }
.home-page :is(.home-link, .home-cta, .home-hero-contact),
.about-page .about-contact-link,
.cr-regular :is(.cr-button, .cr-text-link),
.contact-page :is(.label, .consultation-flow span, #submitBtn, .naver-booking-link strong) {
  font-size: var(--reading-size);
  line-height: 1.5;
}
/* One explicit label-to-heading gap, including AI and closing sections. */
.about-page .about-section-heading,
.contact-page #cont-title-text { gap: 12px; }
.about-page .about-section-heading h2 { margin-top: 0; }
.about-page .about-ai-copy h3,
.about-page .about-ob-card-title h3,
.contact-page :is(.contact-form-intro, .location-info) h3 { margin-top: 12px; }
.cr-regular .cr-section-head .cr-eyebrow,
.cr-regular #project-builder > .cr-section-head .cr-eyebrow { margin: 0 0 12px; }
.cr-regular .cr-ai-method .cr-eyebrow { margin: 0 0 12px; }
.cr-regular .cr-section-head h2 { margin-top: 0; }
.home-page .home-ai-copy .home-eyebrow { color: #a6ff00; }
.home-page .home-ai-copy h3 { text-wrap: balance; }
.about-page .about-instructor-facts strong { font-size: var(--reading-size); }
.contact-page .privacy-consent p { font-size: var(--label-size); line-height: 1.7; }
.contact-page :is(.text-input, .textarea) { font-size: 16px; line-height: 1.6; }
.contact-page :is(input, textarea)::placeholder { font-size: var(--reading-size); color: #707070; }
@media (max-width: 767px) {
  :is(.home-page, .about-page, .cr-regular, .contact-page) {
    --reading-size: 14px;
    --lead-size: 16px;
    --label-size: 12px;
    --section-size: 26px;
    --card-size: 20px;
  }
  .home-page .main-bn-con-text p { font-size: var(--reading-size); }
  .home-page .home-hero-actions a { font-size: var(--reading-size); }
  .home-page .po-thumb-title .medium-text,
  .home-page .po-thumb-hover .btn-line-green { font-size: 12px; line-height: 1.5; }
  .about-page .about-instructor-facts { grid-template-columns: 1fr; gap: 20px; }
  .contact-page .naver-booking-link strong { align-items: baseline; }
  .contact-page .naver-booking-link i { flex-shrink: 0; }
}
