:root {
  --type-body-size: 16px;
  --type-body-leading: 2.05;
  --type-body-tracking: 0.08em;
  --type-small-size: 14px;
  --type-small-leading: 1.85;
  --type-small-tracking: 0.07em;
  --type-label-size: 13px;
  --type-label-leading: 1.4;
  --type-label-tracking: 0.06em;
  --type-kicker-size: 16px;
  --type-kicker-leading: 1.1;
  --type-kicker-tracking: 0.08em;
  --type-heading-size: 24px;
  --type-heading-leading: 1.35;
  --type-heading-tracking: 0.06em;
}

body {
  font-size: var(--type-body-size);
  letter-spacing: var(--type-body-tracking);
  line-height: var(--type-body-leading);
}

.global-menu a {
  font-size: var(--type-label-size);
  letter-spacing: var(--type-label-tracking);
  line-height: 1.5;
}

.hero__scroll {
  font-size: 9px;
  letter-spacing: 0.12em;
  line-height: 1.2;
}

.quick-nav__label {
  font-size: 14px;
  letter-spacing: 0.12em;
  line-height: 1.35;
}

.quick-nav__badge {
  font-size: 9px;
  letter-spacing: 0.08em;
  line-height: 1.1;
}

.section-heading h2,
.home-page .section-heading h2,
.subpage-heading h2,
.recruit-heading h2,
.contact-heading h2 {
  font-size: var(--type-heading-size);
  letter-spacing: var(--type-heading-tracking);
  line-height: var(--type-heading-leading);
}

.section-kicker,
.subpage-kicker,
.recruit-kicker,
.contact-kicker {
  font-size: var(--type-kicker-size);
  letter-spacing: var(--type-kicker-tracking);
  line-height: var(--type-kicker-leading);
}

.subpage-hero__title p,
.recruit-hero__copy p {
  font-size: 16px;
  letter-spacing: 0.04em;
  line-height: 1.1;
}

.subpage-hero__title h1,
.recruit-hero__copy h1 {
  font-size: 24px;
  letter-spacing: 0.06em;
  line-height: 1.3;
}

.subpage-hero__tagline {
  font-size: 20px;
  letter-spacing: 0.06em;
  line-height: 1.8;
}

.subpage-hero__tagline small {
  font-size: 16px;
  letter-spacing: 0.06em;
  line-height: 1.5;
}

.body-copy,
.subpage-body,
.recruit-body,
.home-page .about__intro .body-copy,
.home-page .about__philosophy .body-copy {
  font-size: var(--type-body-size);
  letter-spacing: var(--type-body-tracking);
  line-height: var(--type-body-leading);
}

.body-copy--small {
  font-size: var(--type-small-size);
  letter-spacing: var(--type-small-tracking);
  line-height: var(--type-small-leading);
}

.pill-button {
  font-size: 15px;
  letter-spacing: 0.08em;
  line-height: 1.4;
}

.stats__card > span,
.home-page .stats__card > span,
.recruit-hero-stat > span,
.recruit-bonus-card > div > span,
.recruit-metric > span {
  font-size: var(--type-label-size);
  letter-spacing: var(--type-label-tracking);
  line-height: 1.35;
}

.stats__card strong,
.recruit-hero-stat strong,
.recruit-metric strong {
  line-height: 1.15;
}

.stats__card small,
.recruit-hero-stat strong small,
.recruit-metric strong small {
  line-height: 1.25;
}

.philosophy-copy h3 {
  font-size: 20px;
  letter-spacing: 0.06em;
  line-height: 1.35;
}

.recruit-copy h4 {
  font-size: 24px;
  letter-spacing: 0.06em;
  line-height: 1.35;
}

.service-card__body > h3,
.home-page .service-card__body > h3,
.business-services .service-card__body > h3 {
  font-size: 44px;
  letter-spacing: -0.04em;
  line-height: 0.92;
}

.service-number {
  font-size: 15px;
  letter-spacing: 0.04em;
  line-height: 1.3;
}

.service-card__meta h4,
.home-page .service-card__meta h4,
.business-services .service-card__meta h4 {
  font-size: 22px;
  letter-spacing: 0.06em;
  line-height: 1.35;
}

.service-description,
.home-page .service-description,
.business-services .service-description {
  font-size: var(--type-small-size);
  letter-spacing: var(--type-small-tracking);
  line-height: 2.05;
}

.join-title,
.recruit-ideal__wordmark {
  line-height: 1.05;
}

.interview-card > h3,
.home-page .interview-card > h3,
.recruit-interview-card > h3 {
  font-size: 22px;
  letter-spacing: 0.06em;
  line-height: 1.35;
}

.interview-card > p,
.recruit-interview-card > p {
  font-size: var(--type-small-size);
  letter-spacing: var(--type-small-tracking);
  line-height: 1.8;
}

.journal-card__meta time,
.journal-entry__meta time {
  font-size: 13px;
  letter-spacing: 0.06em;
  line-height: 1.3;
}

.journal-card__meta span,
.journal-entry__meta span {
  font-size: 11px;
  letter-spacing: 0.06em;
  line-height: 1.3;
}

.journal-card h3,
.home-page .journal-card h3,
.journal-entry h3 {
  font-size: 15px;
  letter-spacing: 0.06em;
  line-height: 1.55;
}

.footer-info {
  font-size: var(--type-small-size);
  letter-spacing: var(--type-small-tracking);
  line-height: 1.8;
}

.footer-nav {
  line-height: 1.4;
}

.copyright {
  font-size: 12px;
  letter-spacing: 0.06em;
  line-height: 1.6;
}

/* Lower-page content */
.company-message__signature p,
.company-outline__item dt,
.company-history__year {
  font-size: 15px;
  letter-spacing: 0.07em;
  line-height: 1.35;
}

.company-message__signature strong {
  font-size: 22px;
  letter-spacing: 0.08em;
  line-height: 1.35;
}

.company-outline__item dd,
.company-history__entry ul {
  font-size: 15px;
  letter-spacing: 0.07em;
  line-height: 1.85;
}

.journal-latest__date {
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  font-size: 18px;
  letter-spacing: 0.08em;
  line-height: 1.3;
}

.journal-latest__header h2 {
  font-size: 22px;
  letter-spacing: 0.06em;
  line-height: 1.5;
}

/* Contact */
.contact-lead,
.contact-form-section__lead {
  font-size: var(--type-small-size);
  letter-spacing: var(--type-small-tracking);
  line-height: 1.9;
}

.contact-method h3 {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.45;
}

.contact-method p {
  font-size: 13px;
  letter-spacing: 0.06em;
  line-height: 1.8;
}

.contact-method__link {
  font-size: 16px;
  letter-spacing: 0.04em;
  line-height: 1.35;
}

.contact-field label {
  font-size: var(--type-label-size);
  letter-spacing: var(--type-label-tracking);
  line-height: 1.5;
}

.contact-field input,
.contact-field select,
.contact-field textarea {
  font-size: var(--type-small-size);
  letter-spacing: 0.04em;
  line-height: 1.55;
}

.contact-form__consent {
  font-size: 12px;
  letter-spacing: 0.04em;
  line-height: 1.6;
}

.contact-form__note {
  font-size: 11px;
  letter-spacing: 0.04em;
  line-height: 1.7;
}

.contact-info__card p {
  font-size: var(--type-small-size);
  letter-spacing: var(--type-small-tracking);
  line-height: 1.9;
}

.contact-info__card a {
  line-height: 1.3;
}

/* Recruitment */
.recruit-hero-stat__note,
.recruit-bonus-card > small {
  font-size: 10px;
  letter-spacing: 0.05em;
  line-height: 1.35;
}

.recruit-metric em {
  font-size: 11px;
  letter-spacing: 0.06em;
  line-height: 1.35;
}

.recruit-strength-card h3 {
  font-size: 17px;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.recruit-strength-card p,
.recruit-mindset > p:last-child,
.recruit-flow-step__body > p {
  font-size: var(--type-small-size);
  letter-spacing: var(--type-small-tracking);
  line-height: 1.95;
}

.recruit-mindset__eyebrow {
  font-size: 14px;
  letter-spacing: 0.06em;
  line-height: 1.3;
}

.recruit-mindset h3 {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.recruit-qa dt {
  font-size: 11px;
  letter-spacing: 0.04em;
  line-height: 1.3;
}

.recruit-qa dd h3 {
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.recruit-qa dd p {
  font-size: 13px;
  letter-spacing: 0.07em;
  line-height: 1.9;
}

.recruit-position {
  font-size: 13px;
  letter-spacing: 0.06em;
  line-height: 1.4;
}

.recruit-job-detail > h3 {
  font-size: 14px;
  letter-spacing: 0.06em;
  line-height: 1.4;
}

.recruit-job-detail > p,
.recruit-job-detail > ul {
  font-size: 13px;
  letter-spacing: 0.06em;
  line-height: 1.9;
}

.recruit-flow-step__number span {
  line-height: 1.3;
}

.recruit-flow-step__number strong {
  line-height: 1;
}

.recruit-flow-step__body h3 {
  font-size: 19px;
  letter-spacing: 0.05em;
  line-height: 1.35;
}

.recruit-flow__arrow {
  line-height: 1;
}

@media (min-width: 900px) {
  .global-menu a {
    font-size: 13px;
    letter-spacing: 0.06em;
    line-height: 1.4;
  }

  .section-heading h2,
  .home-page .section-heading h2,
  .subpage-heading h2,
  .recruit-heading h2,
  .contact-heading h2 {
    font-size: 34px;
    letter-spacing: 0.06em;
    line-height: 1.3;
  }

  .section-kicker,
  .subpage-kicker,
  .recruit-kicker,
  .contact-kicker {
    font-size: 18px;
    letter-spacing: 0.08em;
    line-height: 1.1;
  }

  .subpage-hero__title p,
  .recruit-hero__copy p {
    font-size: 24px;
    letter-spacing: 0.04em;
    line-height: 1.1;
  }

  .subpage-hero__title h1,
  .recruit-hero__copy h1 {
    font-size: 52px;
    letter-spacing: 0.06em;
    line-height: 1.2;
  }

  .subpage-hero__tagline {
    font-size: 25px;
    letter-spacing: 0.06em;
    line-height: 1.8;
  }

  .subpage-hero__tagline small {
    font-size: 18px;
    letter-spacing: 0.06em;
  }

  .body-copy,
  .subpage-body,
  .recruit-body,
  .home-page .about__intro .body-copy,
  .home-page .about__philosophy .body-copy {
    font-size: 16px;
    letter-spacing: 0.08em;
    line-height: 2.15;
  }

  .body-copy--small {
    font-size: 14px;
    letter-spacing: 0.07em;
    line-height: 1.9;
  }

  .service-card__body > h3,
  .home-page .service-card__body > h3,
  .business-services .service-card__body > h3 {
    font-size: 42px;
    letter-spacing: -0.04em;
    line-height: 0.92;
  }

  .service-card__meta h4,
  .home-page .service-card__meta h4,
  .business-services .service-card__meta h4 {
    font-size: 22px;
    letter-spacing: 0.06em;
    line-height: 1.35;
  }

  .interview-card > h3,
  .home-page .interview-card > h3,
  .recruit-interview-card > h3 {
    font-size: 24px;
    letter-spacing: 0.06em;
    line-height: 1.35;
  }

  .company-message__signature p,
  .company-outline__item dt,
  .company-history__year {
    font-size: 15px;
    letter-spacing: 0.07em;
    line-height: 1.4;
  }

  .company-outline__item dd,
  .company-history__entry ul {
    font-size: 14px;
    letter-spacing: 0.07em;
    line-height: 1.85;
  }

  .journal-latest__date {
    font-size: 18px;
    letter-spacing: 0.08em;
  }

  .journal-latest__header h2 {
    font-size: 30px;
    letter-spacing: 0.06em;
    line-height: 1.45;
  }

  .journal-entry h3 {
    font-size: 16px;
    letter-spacing: 0.06em;
    line-height: 1.55;
  }

  .contact-heading h2 {
    font-size: 34px;
  }

  .contact-lead,
  .contact-form-section__lead {
    font-size: 16px;
    letter-spacing: 0.07em;
    line-height: 1.9;
  }

  .contact-method h3 {
    font-size: 18px;
    line-height: 1.45;
  }

  .contact-method p {
    font-size: 13px;
    line-height: 1.8;
  }

  .contact-field label {
    font-size: 13px;
  }

  .contact-field input,
  .contact-field select,
  .contact-field textarea {
    font-size: 14px;
    line-height: 1.55;
  }

  .contact-info__card p {
    font-size: 16px;
    line-height: 1.9;
  }

  .recruit-strength-card p,
  .recruit-mindset > p:last-child,
  .recruit-flow-step__body > p {
    font-size: 14px;
    letter-spacing: 0.07em;
    line-height: 1.95;
  }

  .recruit-qa dd p {
    font-size: 13px;
    line-height: 1.9;
  }

  .recruit-job-detail > p,
  .recruit-job-detail > ul {
    font-size: 13px;
    line-height: 1.9;
  }

  .recruit-flow-step__body h3 {
    font-size: 19px;
    line-height: 1.35;
  }
}

/* Keep every CTA button consistent with the home services CTA. */
main.site-shell .pill-button {
  width: 280px;
  height: 68px;
  min-height: 68px;
  gap: 18px;
  padding: 10px 28px 10px 18px;
  font-size: 15px;
  letter-spacing: 0.08em;
  line-height: 1.4;
}

main.site-shell .pill-button__mark {
  --mark-size: 14px;
  top: 1px;
}

main.site-shell.subpage-page .subpage-cta-section .pill-button {
  width: 280px;
  height: 68px;
  min-height: 68px;
  gap: 18px;
  padding: 10px 28px 10px 18px;
  font-size: 15px;
  letter-spacing: 0.08em;
  line-height: 1.4;
}

main.site-shell.subpage-page .subpage-cta-section .pill-button__mark {
  --mark-size: 14px;
}

@media (max-width: 899px) {
  .subpage-page .subpage-hero__title h1 {
    font-size: 28px;
  }

  .recruit-page .recruit-hero__copy h1 {
    font-size: 28px;
  }

  .hero__scroll {
    font-size: 10px;
  }

  .quick-nav__badge,
  .journal-card__meta span,
  .journal-entry__meta span,
  .qa-video-card__label {
    font-size: 12px;
  }

  .contact-field label span {
    font-size: 11px;
  }

  .contact-form__note {
    font-size: 12px;
  }

  .recruit-hero-stat__note,
  .recruit-bonus-card > small,
  .recruit-metric em,
  .recruit-qa dt,
  .recruit-job-details__eyebrow,
  .recruit-day__eyebrow,
  .recruit-day__hours span {
    font-size: 12px;
  }

  .recruit-qa dd p,
  .recruit-job-detail > p,
  .recruit-job-detail > ul,
  .recruit-day > .recruit-day__lead,
  .recruit-day__event p,
  .recruit-day__note,
  .recruit-position,
  .recruit-day__job {
    font-size: 14px;
  }

  .recruit-flow-step__number span {
    font-size: 12px;
  }
}
