/**
 * Mobile heading rhythm.
 *
 * Keep the authored copy editable while allowing the browser to choose
 * natural Japanese phrase boundaries. Only page/section headings are sized
 * here; headings inside cards retain their component-specific scale.
 */
@media (max-width: 767px) {
	:where(
		.page-hero h1,
		.home-hero h1,
		.blog-index__hero h1,
		.blog-single__header h1,
		.course-hero h1,
		.about-hero h1,
		.school-archive h1,
		.content-section > .home-container > h2,
		.home-concerns h2,
		.home-features > .home-container > h2,
		.home-benefit-group > h3,
		.home-conclusion h2,
		.home-voice h2,
		.home-course > .home-container > h2,
		.home-schools > .home-container > h2,
		.home-faq > .home-container > h2,
		.home-cta h2,
		.site-blog-section h2,
		.course-choice h2,
		.course-pricing h2,
		.about-recommendation h2,
		.about-recommendation h3,
		.school-gallery h2,
		.school-hours h2,
		.school-staff > .home-container > h2,
		.school-address h3,
		.voice-list-section h2,
		.blog-single__content h2,
		.blog-single__content h3
	) {
		max-width: 100%;
		overflow-wrap: anywhere;
		word-break: normal;
		line-break: strict;
		text-wrap: balance;
	}

	@supports (word-break: auto-phrase) {
		:where(
			.page-hero h1,
			.home-hero h1,
			.blog-index__hero h1,
			.blog-single__header h1,
			.course-hero h1,
			.about-hero h1,
			.content-section h2,
			.home-page h2,
			.home-benefit-group > h3,
			.school-page h2,
			.school-page h3,
			.blog-single__content h2,
			.blog-single__content h3
		) {
			word-break: auto-phrase;
		}
	}

	:where(.page-hero h1, .home-hero h1, .course-hero h1, .about-hero h1, .blog-single__header h1) {
		font-size: clamp(27px, 8.25vw, 33px) !important;
		line-height: 1.5;
		letter-spacing: -.02em;
	}

	:where(
		.home-concerns h2,
		.home-features > .home-container > h2,
		.home-conclusion h2,
		.home-voice h2,
		.home-course > .home-container > h2,
		.home-schools > .home-container > h2,
		.home-faq > .home-container > h2,
		.home-cta h2,
		.content-section > .home-container > h2,
		.course-choice h2,
		.course-pricing h2,
		.school-gallery h2,
		.school-hours h2,
		.school-staff > .home-container > h2,
		.voice-list-section h2,
		.site-blog-section h2
	) {
		font-size: clamp(22px, 6.6vw, 27px) !important;
		line-height: 1.55;
		letter-spacing: -.015em;
	}

	:where(.home-benefit-group > h3, .school-address h3, .about-recommendation h3) {
		font-size: clamp(20px, 6vw, 24px) !important;
		line-height: 1.55;
	}

	.blog-single__content h2 {
		font-size: clamp(20px, 6vw, 24px) !important;
		line-height: 1.5;
	}

	.blog-single__content h3 {
		font-size: clamp(18px, 5.2vw, 21px) !important;
		line-height: 1.55;
	}
}

@media (max-width: 390px) {
	:where(.page-hero h1, .home-hero h1, .course-hero h1, .about-hero h1, .blog-single__header h1) {
		font-size: clamp(25px, 7.7vw, 30px) !important;
	}

	:where(
		.home-concerns h2,
		.home-features > .home-container > h2,
		.home-conclusion h2,
		.home-voice h2,
		.home-course > .home-container > h2,
		.home-schools > .home-container > h2,
		.home-faq > .home-container > h2,
		.home-cta h2,
		.content-section > .home-container > h2,
		.course-choice h2,
		.course-pricing h2,
		.school-gallery h2,
		.school-hours h2,
		.school-staff > .home-container > h2,
		.voice-list-section h2,
		.site-blog-section h2
	) {
		font-size: clamp(20px, 6vw, 23px) !important;
	}
}

@media (max-width: 340px) {
	:where(
		.home-concerns h2,
		.home-features > .home-container > h2,
		.home-conclusion h2,
		.home-voice h2,
		.home-course > .home-container > h2,
		.home-schools > .home-container > h2,
		.home-faq > .home-container > h2,
		.home-cta h2,
		.content-section > .home-container > h2,
		.course-choice h2,
		.course-pricing h2,
		.school-gallery h2,
		.school-hours h2,
		.school-staff > .home-container > h2,
		.voice-list-section h2,
		.site-blog-section h2
	) {
		font-size: 21px !important;
		line-height: 1.5;
	}

	.home-conclusion h2 {
		font-size: 22px !important;
	}

	/* Desktop-authored breaks become too aggressive on narrow phones. */
	.home-features > .home-container > h2 br {
		display: none;
	}
}
