/*
 * TUMUGIBA mobile readability guardrail
 * Loaded after each page's local stylesheet so that Japanese copy retains
 * natural line breaks and price annotations stay legible on narrow screens.
 */
@media (max-width: 700px) {
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

  body :is(p, li, td, th, dd, .note, .course-note, .pricing-note, .ev-note, .menu-foot, .offer-note) {
    letter-spacing: .02em !important;
    line-break: strict;
    line-height: 1.95 !important;
    overflow-wrap: break-word;
    word-break: normal;
  }

  /* A hard line break is valuable in a heading, but interrupts reading in body copy. */
  body p br { display: none; }

  body :is(h1, h2, h3, h4, .sec-title, .flow-heading) {
    letter-spacing: .045em !important;
    line-break: strict;
    overflow-wrap: normal;
    word-break: normal;
  }

  body h1 { line-height: 1.4 !important; }
  body :is(h2, h3, h4, .sec-title, .flow-heading) { line-height: 1.58 !important; }

  body :is(.eyebrow, .who, .service-kind, .course-label, .menu-cat) {
    letter-spacing: .12em !important;
    line-height: 1.7 !important;
  }

  body .pill {
    line-height: 1.55 !important;
    white-space: normal;
  }

  body :is(.fv-ctas, .cta-actions) { align-items: stretch; }

  /* Price qualifiers must be readable units, not squeezed decoration. */
  body :is(.tax-note, .course-price small, .price-row .now small, .menu-item .price small, .service-price span, .service-price-pair span) {
    display: inline-block;
    font-family: var(--sans, sans-serif);
    font-size: 11px !important;
    font-weight: 500;
    letter-spacing: .08em !important;
    line-height: 1.55 !important;
    margin: 0 0 0 .45em;
    white-space: nowrap;
    word-break: keep-all;
  }

  body .menu-item .price small,
  body .service-price-pair span { margin-left: 0; margin-top: 4px; }

  body .service-price { align-items: baseline; column-gap: 9px; row-gap: 5px; }
  body .service-price-pair p { min-width: 0; }
}

@media (max-width: 420px) {
  body :is(.eyebrow, .who, .service-kind, .course-label, .menu-cat) { letter-spacing: .09em !important; }
  body :is(.tax-note, .course-price small, .price-row .now small, .menu-item .price small, .service-price span, .service-price-pair span) { font-size: 10.5px !important; }
}
