/* Retain rounded display lettering; use a stronger sans for extended reading. */
:root { --muted: #354f43; --ink: #172b23; --read-font: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif; }
body { font-family: var(--read-font); font-size: 17px; font-weight: 500; line-height: 1.85; letter-spacing: 0; }
*, *::before, *::after { letter-spacing: 0; }
h1, h2, h3, .headline, .brand-name, .hero-brandline, .action-card strong { font-family: "Zen Maru Gothic", var(--read-font); }
.brand-name { font-size: 16px; }
main p { line-height: 1.9; }
main .lead,
main .hero-lead { color: #223d30; font-size: 18px; font-weight: 500; }
main .focus-card p,
main .feature-card p,
main .route-step p,
main .menu-card p,
main .flow-step p,
main .info-card p,
main .clinic-access-note p,
main .booking-location p,
main .reservation-assistance p,
main .menu-choice p,
main .menu-consultation p { color: #243d30; font-size: 17px; font-weight: 500; }
main .greeting-copy p { color: #172b23; font-size: 18px; font-weight: 500; }
main .text-cta,
main .card-cta,
main .focus-card em { color: #a1471b; font-size: 16px; font-weight: 700; }
main .text-cta { min-height: 44px; }
main .focus-other p,
main .aftercare-action p,
main .menu-guide-note,
main .line-availability p,
main .choice-link-detail,
main .clinic-photo figcaption,
main .clinic-map figcaption,
main .greeting-signature p,
main .greeting-signature .greeting-role,
main .director-name small { font-size: 15px; color: #354f43; font-weight: 500; }
main .aftercare-note { max-width: 100%; padding: 12px 16px; color: #fff; background: #0d4638; font-size: 16px; font-weight: 700; line-height: 1.8; }
main .aftercare-note > span { display: block; }
main .consult-prompts dt,
main .consult-prompts dd { font-size: 16px; }
main .kicker { color: #18624c; font-size: 15px; font-weight: 700; }
main .aftercare-caption small,
main .aftercare-caption em { font-size: 14px; font-weight: 700; }
main .aftercare-caption strong { font-size: 18px; }
main .reservation-facts { font-size: 15px; }
main .eyebrow,
main .focus-note,
.inner-page-heading .kicker,
.reservation-intro .kicker { font-size: 15px; }
.page-hero p { font-size: 16px; }
main .action-card small { font-size: 13px; }
main .action-card span { font-size: 14px; }
main .action-card strong { font-size: 27px; }
main .action-phone span { white-space: nowrap; }
main .action-line span { color: #243d30; }
main .cta-band p { color: #fff; }
main .cta-band .kicker { color: #fff; }
.site-footer { font-size: 15px; }
.fixed-cta a { font-size: 16px; }
.site-directory,
.mobile-nav { font-family: var(--read-font); }
.page-jump { flex-wrap: wrap; }
.page-jump a { font-size: 16px; }
.greeting-identity { align-items: start; }
@media (max-width: 720px) {
  body { font-size: 17px; }
  main .lead,
  main .hero-lead,
  main .greeting-copy p { font-size: 17px; }
  main .focus-card p,
  main .feature-card p,
  main .route-step p,
  main .menu-card p,
  main .flow-step p { font-size: 17px; }
  main .focus-other p,
  main .aftercare-copy .lead,
  main .menu-guide-heading p { font-size: 16px; }
  main .aftercare-note,
  main .aftercare-action p { font-size: 15px; }
  main .hero-actions .action-card small { font-size: 12px; padding-inline: 5px; white-space: nowrap; }
  main .hero-actions .action-card span { font-size: 12px; }
  main .action-card strong { font-size: 20px; }
  main .hero-actions .action-card { padding-inline: 4px; }
  main .action-phone span { font-size: 12px; }
  main .aftercare-caption strong { font-size: 16px; }
  main .aftercare-caption small,
  main .aftercare-caption em { font-size: 13px; }
  .greeting-identity { grid-template-columns: 112px minmax(0, 1fr); gap: 18px; }
  main .greeting-signature p { font-size: 15px; }
  main .greeting-signature strong { font-size: 24px; }
  .menu-choice p strong { white-space: normal; }
  .menu-guide-heading h2 .keep { white-space: normal; }
  .hero h1.headline { max-width: 100%; }
  .split > * { min-width: 0; }
}
@media (max-width: 420px) {
  .hero h1.headline { font-size: 26px; }
}
@media (max-width: 374px) {
  .hero h1.headline { font-size: 23px; }
  .focus-hook { font-size: 26px; }
  .split h2.headline { font-size: 24px; }
  main .action-card strong { font-size: 18px; }
  main .action-card small { font-size: 10px; }
  main .hero-actions .action-phone span { font-size: 11px; }
  .greeting-identity { grid-template-columns: 96px minmax(0, 1fr); gap: 14px; }
  .guide-heading h1 { font-size: 27px; }
}
