/*
 * BUSINESS pages / conservative renewal
 * Existing red, black, gray and photographic tone is intentionally retained.
 */

.rb-page,
.rb-page * {
	box-sizing: border-box;
}

.rb-page a:focus-visible {
	outline: 4px solid rgba(178, 39, 45, 0.35);
	outline-offset: 4px;
}

.rb-lead,
.rb-note,
.rb-section-heading,
.rb-section-intro,
.rb-path-card__title,
.rb-path-card__text,
.rb-feature__title,
.rb-feature__text,
.rb-related-card__title,
.rb-related-card__text,
.rb-dojo-hero__title,
.rb-dojo-hero__text,
.rb-white-section__title,
.rb-white-section__lead,
.rb-check-list li,
.rb-theme__title,
.rb-theme__text,
.rb-process__title,
.rb-process__text,
.rb-price__title,
.rb-price__meta,
.rb-price__note {
	line-break: strict;
	overflow-wrap: break-word;
	word-break: normal;
}

@supports (word-break: auto-phrase) {
	.rb-lead,
	.rb-note,
	.rb-section-heading,
	.rb-section-intro,
	.rb-path-card__title,
	.rb-path-card__text,
	.rb-feature__title,
	.rb-feature__text,
	.rb-related-card__title,
	.rb-related-card__text,
	.rb-dojo-hero__title,
	.rb-dojo-hero__text,
	.rb-white-section__title,
	.rb-white-section__lead,
	.rb-check-list li,
	.rb-theme__title,
	.rb-theme__text,
	.rb-process__title,
	.rb-process__text,
	.rb-price__title,
	.rb-price__meta,
	.rb-price__note {
		word-break: auto-phrase;
	}
}

.rb-page .contents {
	max-width: 1180px;
}

.rb-lead {
	max-width: 850px;
	margin: 0 auto;
	font-family: 'Shippori Mincho', serif;
	font-size: 19px;
	font-weight: 500;
	letter-spacing: 0.035em;
	line-height: 2;
	text-align: left;
}

.rb-note {
	max-width: 850px;
	margin: 22px auto 0;
	color: #666;
	font-size: 16px;
	line-height: 1.9;
	text-align: left;
}

.rb-section-heading {
	margin: 0;
	padding: 18px 24px;
	background: #111;
	color: #fff;
	font-size: 26px;
	font-weight: 700;
	letter-spacing: 0.09em;
	line-height: 1.5;
	text-align: center;
}

.rb-section-heading--red {
	background: #b2272d;
}

.rb-section-intro {
	margin: 0;
	padding: 22px 24px 0;
	background: rgba(255, 255, 255, 0.95);
	color: #555;
	font-size: 16px;
	line-height: 1.9;
	text-align: center;
}

.rb-paths {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin: 0 0 60px;
	padding: 24px;
	background: rgba(255, 255, 255, 0.95);
}

.rb-path-card {
	position: relative;
	display: flex;
	min-height: 232px;
	flex-direction: column;
	padding: 34px 34px 30px;
	overflow: hidden;
	background: #1a1a1a;
	border-top: 5px solid #b2272d;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.09);
	color: #fff !important;
	text-align: left;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.rb-path-card::after {
	position: absolute;
	right: 27px;
	bottom: 25px;
	color: #b2272d;
	content: "\2192";
	font-family: Arial, sans-serif;
	font-size: 28px;
	line-height: 1;
}

.rb-path-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.16);
	opacity: 1;
	filter: none;
}

.rb-path-card__number {
	margin: 0 0 18px;
	color: #d99396;
	font-family: 'Poppins', sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1;
}

.rb-path-card__title {
	margin: 0 0 12px;
	color: #fff;
	font-family: 'Shippori Mincho', serif;
	font-size: 25px;
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.5;
}

.rb-path-card__text {
	max-width: 430px;
	margin: 0;
	padding-right: 35px;
	color: #ddd;
	font-size: 16px;
	line-height: 1.85;
}

.rb-feature {
	display: grid;
	grid-template-columns: minmax(250px, 0.9fr) minmax(0, 1.1fr);
	margin: 0 0 60px;
	overflow: hidden;
	background: #b2272d;
	color: #fff;
}

.rb-feature__image {
	min-height: 360px;
	background: #222;
}

.rb-feature__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rb-feature__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 46px 50px;
}

.rb-feature__eyebrow {
	margin: 0 0 13px;
	color: #efbabc;
	font-family: 'Poppins', sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.2em;
	line-height: 1.5;
}

.rb-feature__title {
	margin: 0 0 17px;
	color: #fff;
	font-family: 'Shippori Mincho', serif;
	font-size: 29px;
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 1.55;
}

.rb-feature__text {
	margin: 0;
	color: #fff;
	font-size: 16px;
	line-height: 1.9;
}

.rb-feature__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}

.rb-feature__facts li {
	margin: 0;
	padding: 7px 12px;
	background: rgba(0, 0, 0, 0.22);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
}

.rb-feature__note {
	margin: 11px 0 0;
	color: #f8dfe0;
	font-size: 13px;
	line-height: 1.7;
}

.rb-feature__cta {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	justify-content: center;
	min-width: 260px;
	min-height: 52px;
	margin-top: 24px;
	padding: 13px 22px;
	background: #111;
	border: 1px solid #111;
	color: #fff !important;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.5;
	transition: background 0.2s ease, color 0.2s ease;
}

.rb-feature__cta:hover {
	background: #fff;
	color: #b2272d !important;
	opacity: 1;
	filter: none;
}

.rb-related {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	margin: 0 0 60px;
	background: #4d4d4d;
	border: 1px solid #4d4d4d;
}

.rb-related-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
	padding: 30px;
	background: rgba(0, 0, 0, 0.86);
	color: #fff;
}

.rb-related-card__photos {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 5px;
	margin-bottom: 24px;
}

.rb-related-card__photos img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.rb-related-card__title {
	margin: 0 0 12px;
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.55;
}

.rb-related-card__text {
	margin: 0 0 22px;
	color: #ddd;
	font-size: 16px;
	line-height: 1.85;
}

.rb-related-card__link {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	margin-top: auto;
	padding-bottom: 5px;
	border-bottom: 1px solid #b2272d;
	color: #fff !important;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.rb-related-card__link::after {
	margin-left: 12px;
	color: #d99396;
	content: "\2192";
	font-size: 17px;
}

.rb-related-card__link:hover {
	color: #d99396 !important;
}

/* Dojo detail page */
.rb-dojo-hero {
	position: relative;
	min-height: 480px;
	display: flex;
	align-items: flex-end;
	padding: 55px;
	background: #111;
	color: #fff;
}

.rb-dojo-hero::before {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0, 0, 0, 0.83) 0%, rgba(0, 0, 0, 0.53) 54%, rgba(0, 0, 0, 0.18) 100%), url(../img/bus10_hero.jpg) center / cover no-repeat;
	content: "";
}

.rb-dojo-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 800px;
}

.rb-dojo-hero__eyebrow {
	margin: 0 0 14px;
	color: #e5a7aa;
	font-family: 'Poppins', sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.2em;
	line-height: 1.5;
}

.rb-dojo-hero__title {
	display: block;
	float: none;
	width: auto;
	height: auto;
	margin: 0 0 18px;
	padding: 0;
	background: none;
	color: #fff;
	font-family: 'Shippori Mincho', serif;
	font-size: clamp(31px, 4vw, 48px);
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.5;
	text-indent: 0;
}

.rb-dojo-hero__text {
	max-width: 660px;
	margin: 0;
	color: #eee;
	font-size: 17px;
	line-height: 1.9;
}

.rb-dojo-hero__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.rb-dojo-hero__facts li {
	margin: 0;
	padding: 8px 13px;
	background: #b2272d;
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
}

.rb-dojo-hero__note {
	margin: 12px 0 0;
	color: #eeeeee;
	font-size: 13px;
	line-height: 1.7;
}

.rb-white-section {
	margin: 0 0 60px;
	padding: 54px 50px;
	background: rgba(255, 255, 255, 0.96);
}

.rb-white-section__eyebrow {
	margin: 0 0 8px;
	color: #b2272d;
	font-family: 'Poppins', sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1.5;
	text-align: center;
}

.rb-white-section__title {
	margin: 0 0 26px;
	color: #222;
	font-family: 'Shippori Mincho', serif;
	font-size: 28px;
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 1.6;
	text-align: center;
}

.rb-white-section__lead {
	max-width: 820px;
	margin: 0 auto;
	color: #444;
	font-size: 16px;
	line-height: 2;
	text-align: left;
}

.rb-check-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 24px;
	max-width: 880px;
	margin: 30px auto 0;
	padding: 0;
	list-style: none;
}

.rb-check-list li {
	position: relative;
	margin: 0;
	padding: 16px 18px 16px 48px;
	background: #f3f3f3;
	color: #333;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.7;
}

.rb-check-list li::before {
	position: absolute;
	top: 16px;
	left: 18px;
	color: #b2272d;
	content: "\2713";
	font-size: 19px;
	font-weight: 700;
}

.rb-themes {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	margin: 0 0 60px;
	background: #555;
	border: 1px solid #555;
}

.rb-theme {
	min-height: 180px;
	padding: 28px 25px;
	background: rgba(0, 0, 0, 0.86);
	color: #fff;
}

.rb-theme__number {
	margin: 0 0 19px;
	color: #d99396;
	font-family: 'Poppins', sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1;
}

.rb-theme__title {
	margin: 0 0 8px;
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.55;
}

.rb-theme__text {
	margin: 0;
	color: #ccc;
	font-size: 16px;
	line-height: 1.75;
}

.rb-process {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 32px;
}

.rb-process__item {
	padding: 30px 26px;
	background: #f2f2f2;
	border-top: 4px solid #b2272d;
	text-align: left;
}

.rb-process__number {
	margin: 0 0 14px;
	color: #b2272d;
	font-family: 'Poppins', sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1;
}

.rb-process__title {
	margin: 0 0 10px;
	color: #222;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.6;
}

.rb-process__text {
	margin: 0;
	color: #555;
	font-size: 16px;
	line-height: 1.8;
}

.rb-price {
	margin: 0 0 60px;
	padding: 50px;
	background: #b2272d;
	color: #fff;
	text-align: center;
}

.rb-price__label {
	margin: 0 0 8px;
	color: #efbabc;
	font-family: 'Poppins', sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1.5;
	text-align: center;
}

.rb-price__title {
	margin: 0 0 8px;
	color: #fff;
	font-family: 'Shippori Mincho', serif;
	font-size: 29px;
	font-weight: 600;
	line-height: 1.55;
	text-align: center;
}

.rb-price__meta {
	margin: 0 0 15px;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.7;
	text-align: center;
}

.rb-price__amount {
	margin: 0;
	color: #fff;
	font-family: 'Poppins', sans-serif;
	font-size: 44px;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1.35;
	text-align: center;
}

.rb-price__tax {
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
}

.rb-price__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 320px;
	min-height: 58px;
	margin-top: 25px;
	padding: 15px 24px;
	background: #111;
	border: 1px solid #111;
	color: #fff !important;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.5;
	transition: background 0.2s ease, color 0.2s ease;
}

.rb-price__cta:hover {
	background: #fff;
	color: #b2272d !important;
	opacity: 1;
	filter: none;
}

.rb-price__note {
	margin: 16px 0 0;
	color: #f5d9da;
	font-size: 12px;
	line-height: 1.7;
	text-align: center;
}

@media only screen and (max-width: 860px) {
	.rb-related,
	.rb-themes {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rb-feature {
		grid-template-columns: 1fr;
	}

	.rb-feature__image {
		min-height: 0;
		aspect-ratio: 16 / 8;
	}

	.rb-process {
		grid-template-columns: 1fr;
	}
}

@media only screen and (max-width: 750px) {
	.rb-page .contents {
		padding-right: 18px;
		padding-left: 18px;
	}

	.rb-lead {
		font-size: 16px;
		line-height: 1.95;
	}

	.rb-note,
	.rb-section-intro,
	.rb-path-card__text,
	.rb-feature__text,
	.rb-white-section__lead {
		font-size: 16px;
	}

	.rb-section-heading {
		padding: 13px 16px;
		font-size: 19px;
		letter-spacing: 0.06em;
	}

	.rb-section-intro {
		padding: 18px 18px 0;
		text-align: left;
	}

	.rb-paths,
	.rb-related,
	.rb-check-list,
	.rb-themes {
		grid-template-columns: 1fr;
	}

	.rb-paths {
		gap: 12px;
		margin-bottom: 42px;
		padding: 18px;
	}

	.rb-path-card {
		min-height: 0;
		padding: 26px 24px 25px;
	}

	.rb-path-card__number {
		margin-bottom: 13px;
	}

	.rb-path-card__title {
		margin-bottom: 9px;
		font-size: 20px;
		letter-spacing: 0.02em;
	}

	.rb-path-card::after {
		right: 21px;
		bottom: 20px;
	}

	.rb-feature {
		margin-bottom: 42px;
	}

	.rb-feature__image {
		aspect-ratio: 4 / 3;
	}

	.rb-feature__body {
		padding: 30px 24px;
	}

	.rb-feature__title {
		font-size: 23px;
	}

	.rb-feature__cta {
		align-self: stretch;
		min-width: 0;
	}

	.rb-related {
		margin-bottom: 42px;
	}

	.rb-related-card {
		padding: 24px 20px;
	}

	.rb-related-card__title {
		font-size: 18px;
	}

	.rb-dojo-hero {
		min-height: 470px;
		align-items: flex-end;
		padding: 32px 24px;
	}

	.rb-dojo-hero::before {
		background: linear-gradient(0deg, rgba(0, 0, 0, 0.91) 0%, rgba(0, 0, 0, 0.6) 58%, rgba(0, 0, 0, 0.22) 100%), url(../img/bus10_hero.jpg) center / cover no-repeat;
	}

	.rb-dojo-hero__title {
		font-size: 30px;
		line-height: 1.55;
	}

	.rb-dojo-hero__text {
		font-size: 16px;
	}

	.rb-white-section {
		margin-bottom: 42px;
		padding: 36px 24px;
	}

	.rb-white-section__title {
		margin-bottom: 20px;
		font-size: 23px;
	}

	.rb-check-list {
		gap: 9px;
		margin-top: 24px;
	}

	.rb-check-list li {
		padding: 14px 15px 14px 43px;
		font-size: 16px;
	}

	.rb-check-list li::before {
		top: 14px;
		left: 15px;
	}

	.rb-themes {
		margin-bottom: 42px;
	}

	.rb-theme {
		min-height: 0;
		padding: 24px 22px;
	}

	.rb-process {
		gap: 10px;
	}

	.rb-process__item {
		padding: 24px 21px;
	}

	.rb-price {
		margin-bottom: 42px;
		padding: 38px 22px;
	}

	.rb-price__title {
		font-size: 23px;
	}

	.rb-price__amount {
		font-size: 36px;
	}

	.rb-price__cta {
		width: 100%;
		min-width: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rb-path-card,
	.rb-feature__cta,
	.rb-price__cta {
		transition: none;
	}

	.rb-path-card:hover {
		transform: none;
	}
}
