/* Responsive typography safeguards: keep Japanese headings in meaningful lines. */
.heading-line {
  display: block;
}

.mobile-heading-line {
  display: inline;
}

@media (min-width: 821px) {
  .home-page #services .service-group {
    grid-template-columns: 290px minmax(0, 1fr);
  }
}

@media (min-width: 761px) {
  .legal-main .intro {
    grid-template-columns: minmax(330px, .85fr) minmax(0, 1.15fr);
    gap: clamp(40px, 6vw, 80px);
  }

  .legal-main .intro h2 {
    font-size: clamp(25px, 2.6vw, 37px);
  }
}

@media (max-width: 820px) {
  .home-page #services .group-title h3 {
    font-size: clamp(18px, 5.4vw, 21px);
  }
}

@media (max-width: 760px) {
  .legal-main .intro h2 {
    font-size: clamp(23px, 7.2vw, 29px);
  }

  .legal-main .intro h2 .heading-line,
  .contact h2 .heading-line {
    white-space: nowrap;
  }

  .contact-page .page-hero h1 {
    font-size: clamp(23px, 7.2vw, 30px);
  }

  .consultation-page .page-hero h1 {
    font-size: clamp(23px, 6.4vw, 27px);
  }

  .consultation-page .page-hero h1 > span,
  .tokutei-page .page-hero h1 {
    white-space: nowrap;
  }

  .tokutei-page .page-hero h1 {
    font-size: clamp(21px, 6.3vw, 26px);
  }

  .privacy-page .page-hero h1 {
    font-size: clamp(23px, 7.2vw, 30px);
  }

  .contact h2 {
    font-size: clamp(23px, 6.5vw, 28px);
  }
}

@media (max-width: 480px) {
  .mobile-heading-line {
    display: block;
    white-space: nowrap;
  }

  .home-page .consult-panel h3 {
    font-size: clamp(20px, 6.5vw, 27px);
  }

  .consultation-page .form-heading h2 {
    font-size: clamp(22px, 7vw, 26px);
  }
}
