/* Site-wide Paperlogy typography system. */
:root {
  --font-paperlogy: "Paperlogy", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Apple Color Emoji", "Segoe UI Emoji", sans-serif;
  --display-font: var(--font-paperlogy);
  --serif-display-font: var(--font-paperlogy);
  --professional-sans: var(--font-paperlogy);
  --professional-serif: var(--font-paperlogy);
}

html,
body,
body *,
button,
input,
select,
textarea {
  font-family: var(--font-paperlogy) !important;
  font-synthesis: none;
}

body {
  font-weight: 400;
  letter-spacing: -0.012em;
}

body :where(h1, .hero h1, .page-hero h1) {
  font-weight: 800 !important;
  letter-spacing: -0.048em !important;
}

body :where(h2, .section-title, .section-heading h2, .voucher-intro h2, .branch-header h2, .story-copy h2, .final-cta h2, .process-heading h2) {
  font-weight: 700 !important;
  letter-spacing: -0.038em !important;
}

body :where(h3, h4, .listing-card h2, .info-panel h2, .branch-card h2, .program-card strong, .branch-card h3, .process-card h3, .quick-link strong, .rail-card strong, .menu-rail-card strong, .hero-photo-card strong) {
  font-weight: 700 !important;
  letter-spacing: -0.025em !important;
}

body :where(.desktop-nav, .nav-link, .home-nav-item > a, .mobile-nav a, .mobile-menu a, .footer-links a) {
  font-weight: 600 !important;
  letter-spacing: -0.018em !important;
}

body :where(.button, button, .header-cta, .map-button, .kakao-button, .phone-button, .mobile-bar a, .social-quick-link) {
  font-weight: 700 !important;
  letter-spacing: -0.018em !important;
}

body :where(.eyebrow, .section-kicker, .hero-kicker, .program-no, .branch-label, .hero-note-label, .brand-copy span, .listing-meta, .process-number, .rail-card small, .menu-rail-card small) {
  font-weight: 700 !important;
}

body :where(p, .hero-lede, .section-lede, .footer-copy, .listing-card p, .program-card p, .info-panel p, .detail-row span) {
  font-weight: 400;
}

body :where(strong, b, .voucher-item summary) {
  font-weight: 700;
}

body :where(small, .note, .meta) {
  font-weight: 500;
}

@media (max-width: 720px) {
  body :where(h1, .hero h1, .page-hero h1) {
    letter-spacing: -0.043em !important;
  }

  body :where(h2, .section-title, .section-heading h2, .voucher-intro h2, .branch-header h2, .story-copy h2, .final-cta h2, .process-heading h2) {
    letter-spacing: -0.034em !important;
  }
}
