/* Typography roles: readable Gothic body/UI; Mincho only for page titles,
 * the main hero and short corporate/recruit slogans. Logos remain authored. */
body.tokueikai-site {
	--tokueikai-sans: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

.news-layout-page h1,
.letter-page h1 {
	font-family: var(--tokueikai-mincho);
}

.hero-copy { font-family: var(--tokueikai-mincho); }

.prose-paragraph {
	display: block;
	text-wrap: wrap;
}

.alivio-hero__copy .prose-paragraph + .prose-paragraph { margin-top: 1lh; }
.keep-phrase { white-space: normal; }

/* Keep Japanese punctuation with its text, without viewport-dependent breaks. */
body.tokueikai-site :is(main, article) :is(p, li, dd, dt, td, th) {
	line-break: strict;
	word-break: normal;
	text-wrap-style: auto;
}

/* Photo captions share the full card width. Let available space determine
 * wrapping; do not shorten lines to balance sentences or avoid short tails. */
:is(.shortstay-service, .alivio-dayservice-service, .care-support-service-card,
	.tomoiki-facility-card, .sakura-facility-card) > p {
	width: 100%;
	max-width: none;
	text-wrap: wrap;
}

/* Unindented section introductions use the same width as their section. */
.shortstay-flow__intro, .alivio-dayservice-flow__intro,
.care-support-flow__lead, .care-support-fee__copy,
.tomoiki-process__lead, .sakura-process__lead,
.tomoiki-eligibility > p, .sakura-eligibility > p {
	width: 100%;
	max-width: none;
}

/* Match the visible right edge of process introductions to the heading rule.
 * Japanese punctuation can otherwise leave a two-character gap in a full-width
 * text box. Keep the final line naturally aligned to the left. */
.shortstay-flow__intro, .alivio-dayservice-flow__intro,
.tomoiki-process__lead, .sakura-process__lead {
	text-align: justify;
	text-justify: inter-character;
	text-align-last: left;
}

.tomoiki-contact-link, .sakura-contact-link {
	display: inline;
}

.tomoiki-phone-link, .sakura-phone-link {
	white-space: nowrap;
}

@media (min-width: 700px) {
	.hero-copy { line-height: 29px; }
	.tomoiki-fees__note { height: 64px; }
	/* The Gothic English headings need a wider text slot, inside the same group. */
	.section-heading--facility h2 { width: 190px; }
	.section-heading--recruit h2 { width: 185px; }
	/* Seven lines fit above the existing recruit CTA without compressing type. */
	.recruit-copy { height: 147px; letter-spacing: 0; }
}

@media (max-width: 699px) {
	.facility-card li, .facility-card .figma-line { line-height: 19px; }
	.jka-effects__copy, .tomoiki-fees__note, .sakura-fee-item--two > p {
		letter-spacing: 0;
	}
}

/* Keep compact link names and their action labels intact at natural wrap points.
 * The surrounding Figma text slots retain their width and font size. */
.label-phrase {
    display: inline-block;
    white-space: nowrap;
}

/* An em dash belongs with the preceding word, not on a line of its own. */
.punctuation-phrase { white-space: nowrap; }
