/* Keep Japanese headings readable at the places where their meaning changes. */
h1, h2, h3, h4 {
  word-break: normal;
  overflow-wrap: normal;
  line-break: strict;
  text-wrap: balance;
}

.text-unit {
  display: inline-block;
  white-space: nowrap;
  text-indent: 0;
}

p, li, summary, figcaption {
  line-break: strict;
  text-wrap: pretty;
}

@supports (word-break: auto-phrase) {
  h1, h2, h3, h4, p, li, summary, figcaption {
    word-break: auto-phrase;
  }
}

:where(.value-head, .features-head, .comparison-intro, .pricing-panel,
  .screen-layout, .gps-layout, .women-connect-layout, .contact-panel,
  .hero-grid, .result-panel, .cta-inner, .feature-item) > * {
  min-width: 0;
}

.value-price, .pricing-price {
  flex-wrap: nowrap;
  white-space: nowrap;
}

.value-price > *, .pricing-price > * {
  flex: 0 0 auto;
  white-space: nowrap;
}

.women-connect-copy h2 .text-unit { color: inherit; }
.women-connect-copy h2 .heading-accent { color: #c53e6c; }

@media (max-width: 700px) {
  .section-title, .screen-copy .section-title {
    font-size: clamp(1.65rem, 8vw, 2rem);
  }

  .gps-copy h2, .women-connect-copy h2 {
    font-size: clamp(1.9rem, 8.2vw, 2.5rem);
  }

  .visual-card:first-child h3 {
    font-size: clamp(1.5rem, 6.8vw, 1.6875rem);
  }

  .pricing-title {
    font-size: clamp(1.625rem, 6.8vw, 2rem);
  }

  .contact-copy h2 {
    font-size: clamp(1.65rem, 7.2vw, 2rem);
  }
}

@media (max-width: 640px) {
  .hero-grid h1 {
    font-size: clamp(2rem, 9vw, 2.35rem);
  }

  .section-head h2, .result-panel h2, .cta h2 {
    font-size: clamp(1.65rem, 7.6vw, 2rem);
  }
}
