/* ============================================
   ORIGINAL DESIGN A — Brand Slider + Dark Process + Pricing
   Restored CSS for index2.html
   ============================================ */

/* === BRAND SECTION (HDD 6-step Slider) === */
.brand-section-wrapper {
	padding: 80px 0;
	background: linear-gradient(160deg, #0c1222 0%, #162036 40%, #1a2744 70%, #0f172a 100%);
	color: #ffffff;
	overflow-x: hidden;
}
.brand-section-wrapper .container {
	max-width: 1240px;
	width: 100%;
	margin: 0 auto;
	padding: 0 20px;
}
.brand-section-wrapper .header-section {
	text-align: center;
	margin-bottom: 60px;
}
.brand-section-wrapper .header-section h2 {
	font-size: clamp(24px, 3.6vw, 42px);
	font-weight: 800;
	margin-bottom: 20px;
	color: #fff;
	letter-spacing: -.02em;
}
.brand-section-wrapper .header-section p {
	font-size: clamp(15px, 2vw, 17px);
	color: rgba(255, 255, 255, .75);
	line-height: 1.85;
}
.brand-section-wrapper .split-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.85fr) minmax(0, 1fr);
	gap: 60px;
	align-items: center;
}
.brand-section-wrapper .slider-window {
	width: 100%;
	aspect-ratio: 16/10;
	border-radius: 20px;
	overflow: hidden;
	position: relative;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
	border: solid 1px #fff;
}
.brand-section-wrapper .slider-track {
	display: flex;
	width: 100%;
	height: 100%;
	transition: transform .6s cubic-bezier(.25, 1, .5, 1);
}
.brand-section-wrapper .slide {
	min-width: 100%;
	height: 100%;
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 40px;
}
.brand-section-wrapper .slide-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 1;
}
.brand-section-wrapper .slide-content {
	position: relative;
	z-index: 2;
	transform: translateY(20px);
	opacity: 0;
	transition: all .5s ease .2s;
}
.brand-section-wrapper .slide.active .slide-content {
	transform: translateY(0);
	opacity: 1;
}
.brand-section-wrapper .slide-content h3 {
	font-size: clamp(20px, 3vw, 32px);
	margin-bottom: 12px;
	color: #fff;
	font-weight: 800;
}
.brand-section-wrapper .slide-content p {
	font-size: 16px;
	color: #fff;
	max-width: 90%;
	line-height: 1.6;
}
.brand-section-wrapper .nav-list {
	display: flex;
	flex-direction: column;
	gap: 0;
}
.brand-section-wrapper .nav-list .nav-item {
	height: auto;
	padding: 24px 16px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	cursor: pointer;
	display: flex;
	align-items: center;
	color: rgba(255, 255, 255, 0.6);
	opacity: .7;
	transition: all .3s ease;
	position: relative;
}
.brand-section-wrapper .nav-list .nav-item:hover {
	opacity: 1;
}
.brand-section-wrapper .nav-list .nav-item:first-child {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.brand-section-wrapper .nav-num {
	font-family: monospace;
	font-size: 14px;
	margin-right: 20px;
	color: #60a5fa;
	opacity: 1;
	font-weight: 600;
}
.brand-section-wrapper .nav-title {
	font-size: 16px;
	font-weight: 500;
	letter-spacing: -.01em;
}
.brand-section-wrapper .nav-list .nav-item.active {
	color: #ffffff;
	opacity: 1;
	padding-left: 26px;
}
.brand-section-wrapper .nav-list .nav-item.active::after {
	content: '';
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 100%;
	height: 1px;
	background: #60a5fa;
}
.brand-section-wrapper .brand-section {
	margin-top: 80px;
	padding-top: 40px;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.brand-section-wrapper .brand-title {
	text-align: center;
	font-size: 14px;
	margin-bottom: 30px;
	letter-spacing: 0.15em;
	font-weight: 700;
	color: rgba(255, 255, 255, .7);
}
.brand-section-wrapper .marquee-container {
	overflow: hidden;
	white-space: nowrap;
	position: relative;
	width: 100%;
	-webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
	mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
}
.brand-section-wrapper .marquee-track {
	display: inline-flex;
	gap: 60px;
	animation: marquee 30s linear infinite;
}
.brand-section-wrapper .brand-logo {
	font-size: 1.2rem;
	font-weight: 700;
	color: #fff;
	user-select: none;
}
@keyframes marquee {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

@media (max-width: 980px) {
	.brand-section-wrapper { padding: 60px 0; }
	.brand-section-wrapper .split-layout { grid-template-columns: 1fr; gap: 30px; }
	.brand-section-wrapper .slider-window { aspect-ratio: auto; height: auto; border: none; box-shadow: none; border-radius: 0; }
	.brand-section-wrapper .slider-track { display: flex; gap: 5vw; overflow-x: auto; margin-bottom: 20px; }
	.brand-section-wrapper .slide { display: block; min-width: 100%; height: auto; border-radius: 16px; overflow: hidden; background: #fff; border: 1px solid #e2e8f0; }
	.brand-section-wrapper .slide-bg { width: 100%; height: auto; position: relative; }
	.brand-section-wrapper .slide-content { position: relative; transform: none; opacity: 1; padding: 24px; top: 0; }
	.brand-section-wrapper .slide-content h3 { color: #111; margin-bottom: 8px; }
	.brand-section-wrapper .slide-content p { color: #555; }
	.brand-section-wrapper .nav-list { display: none !important; }
	.brand-section-wrapper .brand-section { margin-top: 30px; padding-top: 30px; }
}

/* === DARK THEME WRAPPER (#process: process + pricing) === */
#process.dark-theme-wrapper {
	padding: 80px 0;
	background-color: #1a1f2e;
	color: #9ca3af;
}
#process.dark-theme-wrapper .container {
	max-width: 1240px;
	width: 100%;
	margin: 0 auto;
	padding: 0 20px;
}
#process .page-header {
	margin-bottom: 40px;
	text-align: left;
}
#process .sub-label {
	display: block;
	margin-bottom: 16px;
	text-transform: uppercase;
	font-weight: 800;
	font-size: 14px;
	color: #2563eb;
	letter-spacing: .15em;
}
#process .main-title {
	margin-bottom: 16px;
	font-weight: 900;
	font-size: clamp(26px, 3.6vw, 40px);
	line-height: 1.2;
	color: #ffffff;
	letter-spacing: -.02em;
}
#process .header-desc {
	font-size: 16px;
	line-height: 1.85;
	color: rgba(255, 255, 255, .65);
}
#process .header-desc strong {
	color: #FFD700;
	font-weight: 700;
}

#process .feature-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-bottom: 40px;
}
#process .feature-item-dark {
	background-color: rgba(255, 255, 255, 0.03);
	border: 1px solid rgba(255, 255, 255, 0.08);
	padding: 24px;
	border-radius: 12px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	transition: all .3s ease;
}
#process .feature-item-dark:hover {
	background-color: rgba(255, 255, 255, .05);
	border-color: rgba(38, 128, 235, .3);
	transform: translateY(-3px);
}
#process .icon-header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px;
	width: 100%;
}
#process .icon-circle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px !important;
	height: 36px !important;
	min-width: 36px;
	min-height: 36px;
	max-width: 36px;
	max-height: 36px;
	border-radius: 50%;
	background-color: #2563eb;
	color: #ffffff;
	flex-shrink: 0;
	box-sizing: border-box;
	overflow: hidden;
}
#process .icon-circle svg {
	width: 18px !important;
	height: 18px !important;
	max-width: 18px;
	max-height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	display: block;
}
#process .icon-circle svg[style*="fill:currentColor"] {
	fill: currentColor !important;
	stroke: none !important;
}
#process .feature-title {
	font-weight: 800;
	font-size: 17px;
	color: #ffffff;
	letter-spacing: -.01em;
	line-height: 1.3;
	margin: 0;
}
#process .feature-desc {
	font-size: 14px;
	line-height: 1.7;
	color: rgba(255, 255, 255, .7);
}
#process .tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 14px;
}
#process .tag-light {
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(38, 128, 235, .15);
	font-size: 11px;
	font-weight: 700;
	color: #93c5fd;
	border: 1px solid rgba(38, 128, 235, .25);
}
#process .sec-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
#process .sec-list li {
	margin-bottom: 6px;
	padding-left: 18px;
	font-size: 13.5px;
	color: rgba(255, 255, 255, .8);
	position: relative;
	line-height: 1.5;
}
#process .sec-list li::before {
	content: "•";
	font-size: 18px;
	line-height: 14px;
	color: #60a5fa;
	position: absolute;
	top: 2px;
	left: 0;
	font-weight: 700;
}

#process .stats-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-bottom: 60px;
}
#process .stat-card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 200px;
	padding: 28px 24px;
	border-radius: 14px;
	border: 1px solid rgba(59, 130, 246, .25);
	background: linear-gradient(135deg, #1e3a5f 0%, #1a365d 50%, #1e40af 100%);
	color: #ffffff;
	transition: transform .3s ease;
}
#process .stat-card:hover {
	transform: translateY(-4px);
}
#process .stat-top {
	margin-bottom: 16px;
}
#process .stat-value {
	font-weight: 900;
	font-size: 32px;
	line-height: 1;
	color: #FFF;
	font-family: 'Helvetica Neue', sans-serif;
	letter-spacing: -.02em;
}
#process .stat-unit {
	font-weight: 600;
	font-size: 14px;
	margin-left: 4px;
}
#process .stat-info h3 {
	margin-top: 18px;
	padding-top: 18px;
	border-top: solid 1px rgba(255, 255, 255, .15);
	margin-bottom: 12px;
	font-size: 14px;
	font-weight: 800;
	color: #FFF;
}
#process .stat-info ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
#process .stat-info li {
	margin-bottom: 4px;
	padding-left: 16px;
	font-size: 13px;
	color: rgba(255, 255, 255, .8);
	position: relative;
	line-height: 1.5;
}
#process .stat-info li::before {
	content: "•";
	font-size: 18px;
	line-height: 14px;
	color: #FFD700;
	position: absolute;
	top: 1px;
	left: 0;
	font-weight: 700;
}
#process .card-label {
	font-size: 10px;
	font-weight: 800;
	opacity: .7;
	letter-spacing: .15em;
	text-transform: uppercase;
	margin-top: auto;
	font-family: 'Helvetica Neue', sans-serif;
}
#process .btn-link {
	display: inline-block;
	margin-top: auto;
	padding: 8px 0;
	border-bottom: 2px solid #FFD700;
	font-size: 14px;
	font-weight: 800;
	color: #FFD700;
	text-decoration: none;
	transition: all .2s ease;
}
#process .btn-link:hover {
	color: #FFE55C;
	border-bottom-color: #FFE55C;
}

#price.page-header {
	margin-top: 60px;
	padding-top: 50px;
	border-top: solid 1px rgba(255, 255, 255, .15);
}
#process .pricing-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	margin-bottom: 30px;
}
#process .pricing-card {
	background-color: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.1);
	padding: 28px 24px;
	border-radius: 14px;
	display: flex;
	flex-direction: column;
	transition: all .3s ease;
	position: relative;
}
#process .pricing-card:hover {
	background-color: rgba(255, 255, 255, .06);
	transform: translateY(-4px);
}
#process .pricing-card.highlight {
	border-color: rgba(255, 215, 0, .4);
	background: linear-gradient(180deg, rgba(255, 215, 0, .06) 0%, rgba(255, 255, 255, .03) 100%);
}
#process .lv-badge {
	display: inline-block;
	background-color: #2563eb;
	color: #ffffff;
	font-size: 11px;
	font-weight: 800;
	padding: 4px 10px;
	border-radius: 6px;
	margin-bottom: 16px;
	align-self: flex-start;
	letter-spacing: .05em;
	font-family: 'Helvetica Neue', sans-serif;
}
#process .card-title {
	font-size: 18px;
	font-weight: 800;
	margin-bottom: 4px;
	color: #ffffff;
	letter-spacing: -.01em;
}
#process .card-sub {
	font-size: 12px;
	color: rgba(255, 255, 255, .55);
	margin-bottom: 20px;
	display: block;
}
#process .price-area {
	margin-bottom: 22px;
	padding-bottom: 18px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
#process .price-value {
	font-size: 30px;
	font-weight: 900;
	color: #FFD700;
	letter-spacing: -.03em;
	font-family: 'Helvetica Neue', sans-serif;
}
#process .price-unit {
	font-size: 14px;
	font-weight: 600;
	color: rgba(255, 255, 255, .8);
	margin-left: 4px;
}
#process .check-list {
	list-style: none;
	padding: 0;
	margin: 0;
	flex: 1;
}
#process .check-list li {
	font-size: 13px;
	color: rgba(255, 255, 255, .75);
	margin-bottom: 9px;
	padding-left: 20px;
	position: relative;
	line-height: 1.5;
}
#process .check-list li::before {
	content: "✔";
	color: #00D4FF;
	position: absolute;
	left: 0;
	top: 0;
	font-size: 12px;
	line-height: 1.5;
	font-weight: 800;
}
#process .note-section {
	background-color: rgba(255, 255, 255, .03);
	border: 1px solid rgba(255, 255, 255, .08);
	border-radius: 12px;
	padding: 24px 28px;
	margin-top: 24px;
}
#process .note-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
#process .note-list li {
	font-size: 13px;
	color: rgba(255, 255, 255, .65);
	margin-bottom: 6px;
	padding-left: 14px;
	position: relative;
	line-height: 1.7;
}
#process .note-list li::before {
	content: "*";
	position: absolute;
	left: 0;
	color: #FFD700;
	font-weight: 700;
}
#process .note-list strong {
	color: #FFF;
	font-weight: 700;
}

@media (max-width: 980px) {
	#process .feature-grid { grid-template-columns: repeat(2, 1fr); }
	#process .stats-grid { grid-template-columns: 1fr; }
	#process .pricing-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
	#process.dark-theme-wrapper { padding: 60px 0; }
	#process .feature-grid { grid-template-columns: 1fr; gap: 12px; }
	#process .pricing-grid { grid-template-columns: 1fr; gap: 14px; }
	#process .stat-card { min-height: auto; }
}

/* ============================================
   HDD データ復旧 — Design B v2 (Global Premium / Yahoo JP Font)
   Content flow restructured for user trust
   ============================================ */

:root {
	--rb-jp-font: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Hiragino Sans", "Meiryo", メイリオ, "Yu Gothic", "Yu Gothic Medium", YuGothic, "MS PGothic", Osaka, sans-serif;
	--rb-jp-font-bold: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W6", "Hiragino Sans", "Meiryo", メイリオ, "Yu Gothic Medium", YuGothic, sans-serif;
	--rb-jp-mincho: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W6", "Hiragino Sans", "Meiryo", メイリオ, "Yu Gothic Medium", YuGothic, sans-serif;
	--rb-num-font: "Helvetica Neue", "Hiragino Kaku Gothic ProN", sans-serif;
	--rb-black: #000000;
	--rb-near-black: #0A0A0A;
	--rb-charcoal: #1A1A1A;
	--rb-navy: #1428A0;
	--rb-blue: #2680EB;
	--rb-blue-light: #E8F0FE;
	--rb-cyan: #00D4FF;
	/* RAID theme — Purple accent (variable name kept for compatibility) */
	--rb-red: #65A30D;
	--rb-red-light: #F5F3FF;
	--rb-green: #00B670;
	--rb-gold: #FFD700;
	--rb-gold-2: #F59E0B;
	--rb-text: #0A0A0A;
	--rb-text-2: #4A4A4A;
	--rb-text-3: #757575;
	--rb-bg: #FFFFFF;
	--rb-bg-soft: #F7F7F7;
	--rb-bg-soft2: #FAFAFA;
	--rb-bg-dark: #0A0A0A;
	--rb-border: #E5E5E5;
	--rb-border-light: #F0F0F0;
	--rb-radius: 4px;
	--rb-radius-md: 12px;
	--rb-radius-lg: 24px;
	--rb-pill: 999px;
	--rb-shadow-sm: 0 2px 8px rgba(0, 0, 0, .04);
	--rb-shadow: 0 8px 32px rgba(0, 0, 0, .08);
	--rb-shadow-lg: 0 20px 60px rgba(0, 0, 0, .12);
	--rb-ease: cubic-bezier(0.32, 0, 0.16, 1);
}

.rb-page {
	font-family: var(--rb-jp-font);
	color: var(--rb-text);
	background: var(--rb-bg);
	line-height: 1.7;
	font-size: 15px;
	letter-spacing: .02em;
}
.rb-page * { box-sizing: border-box; }
.rb-page h1, .rb-page h2, .rb-page h3, .rb-page h4 {
	font-family: var(--rb-jp-font-bold);
	font-weight: 700;
	letter-spacing: -.01em;
}

.rb-container {
	max-width: 1240px;
	width: 100%;
	margin: 0 auto;
	padding: 0 20px;
}

.rb-section-head {
	text-align: center;
	margin-bottom: 56px;
}
.rb-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .25em;
	text-transform: uppercase;
	color: var(--rb-blue);
	margin-bottom: 16px;
	font-family: var(--rb-num-font);
}
.rb-eyebrow::before {
	content: "";
	width: 24px;
	height: 2px;
	background: var(--rb-blue);
}
.rb-page h2.rb-title {
	font-size: clamp(28px, 4.5vw, 44px);
	font-weight: 700;
	line-height: 1.3;
	color: var(--rb-text);
	margin: 0 0 18px;
	letter-spacing: -.02em;
}
.rb-page .rb-section-head p {
	font-size: 16px;
	line-height: 1.95;
	color: var(--rb-text-2);
	max-width: 720px;
	margin: 0 auto;
	font-weight: 400;
}

/* Buttons */
.rb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 16px 32px;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	border: 2px solid transparent;
	cursor: pointer;
	transition: all .3s var(--rb-ease);
	white-space: nowrap;
	letter-spacing: .03em;
	min-height: 56px;
	border-radius: var(--rb-pill);
	font-family: var(--rb-jp-font-bold);
}
.rb-btn-primary {
	background: var(--rb-red);
	color: #FFF;
	border-color: var(--rb-red);
	box-shadow: 0 6px 18px rgba(101, 163, 13, .35);
}
.rb-btn-primary:hover {
	background: #3F6212;
	border-color: #3F6212;
	transform: translateY(-2px);
	box-shadow: 0 10px 28px rgba(101, 163, 13, .5);
}
.rb-btn-black {
	background: var(--rb-black);
	color: #FFF;
	border-color: var(--rb-black);
}
.rb-btn-black:hover {
	background: var(--rb-charcoal);
	transform: translateY(-2px);
}
.rb-btn-white {
	background: #FFF;
	color: var(--rb-black);
	border-color: #FFF;
}
.rb-btn-white:hover {
	background: rgba(255, 255, 255, .9);
	transform: translateY(-2px);
}
.rb-btn-outline-w {
	background: transparent;
	color: #FFF;
	border-color: rgba(255, 255, 255, .35);
}
.rb-btn-outline-w:hover {
	border-color: #FFF;
	background: rgba(255, 255, 255, .08);
}
.rb-btn-outline-b {
	background: transparent;
	color: var(--rb-black);
	border-color: var(--rb-black);
}
.rb-btn-outline-b:hover {
	background: var(--rb-black);
	color: #FFF;
}
.rb-btn-large {
	padding: 18px 38px;
	font-size: 15px;
	min-height: 60px;
}

/* Top Banner */
.rb-topbar {
	background: var(--rb-red);
	color: #FFF;
	padding: 10px 0;
	font-size: 13px;
	text-align: center;
	font-weight: 700;
}
.rb-topbar strong {
	color: var(--rb-gold);
	margin: 0 6px;
	font-weight: 700;
}
.rb-topbar a {
	color: #FFF;
	text-decoration: underline;
	text-underline-offset: 3px;
	font-weight: 700;
}

/* ============================================
   1. HERO
   ============================================ */
.rb-hero {
	position: relative;
	background: var(--rb-near-black);
	color: #FFF;
	overflow: hidden;
	padding: 90px 0 100px;
	min-height: 720px;
	display: flex;
	align-items: center;
}
.rb-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at 75% 50%, rgba(38, 128, 235, .35) 0%, transparent 60%),
		radial-gradient(ellipse at 0% 100%, rgba(101, 163, 13, .15) 0%, transparent 50%);
}
.rb-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px);
	background-size: 32px 32px;
	mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 70%, transparent 100%);
	-webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 70%, transparent 100%);
}
.rb-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 60px;
	align-items: center;
}
.rb-hero-text { min-width: 0; }
.rb-hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 16px 8px 12px;
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: var(--rb-pill);
	color: #FFF;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .05em;
	margin-bottom: 24px;
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
}
.rb-hero-badge-dot {
	width: 8px;
	height: 8px;
	background: #00FF7F;
	border-radius: 50%;
	box-shadow: 0 0 10px #00FF7F;
	animation: rbPulse 1.6s var(--rb-ease) infinite;
}
@keyframes rbPulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: .5; transform: scale(.85); }
}
.rb-hero h1 {
	font-size: clamp(26px, 4vw, 46px);
	white-space: nowrap;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -.02em;
	margin: 0 0 24px;
	color: #FFF;
}
.rb-hero h1 .rb-hl {
	background: linear-gradient(135deg, var(--rb-gold) 0%, var(--rb-gold-2) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}
.rb-hero-lead {
	font-size: 16px;
	line-height: 1.95;
	color: rgba(255, 255, 255, .8);
	margin: 0 0 32px;
	max-width: 560px;
}
.rb-hero-recovery {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 22px 28px;
	background: rgba(255, 255, 255, .05);
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: var(--rb-radius-md);
	margin-bottom: 32px;
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
}
.rb-hero-recovery-num {
	font-size: 52px;
	font-weight: 900;
	letter-spacing: -.03em;
	line-height: 1;
	background: linear-gradient(135deg, var(--rb-gold), var(--rb-gold-2));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	font-family: var(--rb-num-font);
}
.rb-hero-recovery-num small {
	font-size: 22px;
	font-weight: 700;
}
.rb-hero-recovery-text strong {
	display: block;
	font-size: 15px;
	font-weight: 700;
	color: #FFF;
	margin-bottom: 4px;
}
.rb-hero-recovery-text span {
	font-size: 12px;
	color: rgba(255, 255, 255, .55);
	letter-spacing: .02em;
	display: block;
}
.rb-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 28px;
}
.rb-hero-microtrust {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	font-size: 12px;
	color: rgba(255, 255, 255, .65);
}
.rb-hero-microtrust span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600;
}
.rb-hero-microtrust span::before {
	content: "✓";
	color: #00FF7F;
	font-weight: 700;
}

.rb-hero-visual {
	min-width: 0;
	position: relative;
}
.rb-hero-visual-frame {
	position: relative;
	border-radius: var(--rb-radius-lg);
	overflow: hidden;
	background: var(--rb-charcoal);
	border: 1px solid rgba(255, 255, 255, .15);
	padding: 0;
	aspect-ratio: 4/3;
	display: block;
	box-shadow: 0 24px 64px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .05);
}
.rb-hero-visual-frame::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 50%, rgba(10, 10, 10, .35) 100%);
	pointer-events: none;
	z-index: 1;
}
.rb-hero-visual-frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.rb-hero-visual-tag {
	position: absolute;
	bottom: 18px;
	left: 18px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 16px;
	background: rgba(10, 10, 10, .75);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: var(--rb-pill);
	color: #FFF;
	font-size: 12px;
	font-weight: 700;
	z-index: 2;
	letter-spacing: .03em;
}
.rb-hero-visual-tag::before {
	content: "";
	width: 8px;
	height: 8px;
	background: var(--rb-gold);
	border-radius: 50%;
	box-shadow: 0 0 8px var(--rb-gold);
}
.rb-hero-floating {
	position: absolute;
	background: rgba(10, 10, 10, .85);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 14px;
	padding: 14px 18px;
	color: #FFF;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .5);
}
.rb-hero-floating-1 {
	top: 30px;
	left: -20px;
	display: flex;
	align-items: center;
	gap: 10px;
}
.rb-hero-floating-1-ico { font-size: 22px; }
.rb-hero-floating-1-text strong {
	display: block;
	font-size: 13px;
	font-weight: 700;
	color: #FFF;
}
.rb-hero-floating-1-text span {
	font-size: 11px;
	color: rgba(255, 255, 255, .55);
}
.rb-hero-floating-2 {
	bottom: 30px;
	right: -20px;
	display: flex;
	align-items: center;
	gap: 10px;
}
.rb-hero-floating-2-num {
	font-size: 28px;
	font-weight: 900;
	color: #00FF7F;
	font-family: var(--rb-num-font);
	line-height: 1;
}
.rb-hero-floating-2-text strong {
	display: block;
	font-size: 12px;
	font-weight: 700;
	color: #FFF;
}
.rb-hero-floating-2-text span {
	font-size: 10px;
	color: rgba(255, 255, 255, .55);
}

@media (max-width: 980px) {
	.rb-hero { padding: 60px 0 80px; min-height: auto; display: block; }
	.rb-hero-grid { grid-template-columns: 1fr; gap: 50px; }
	.rb-hero-floating { display: none; }
}
@media (max-width: 540px) {
	.rb-hero h1 { font-size: 30px; white-space: normal; }
	.rb-hero-recovery { flex-direction: column; align-items: flex-start; padding: 20px; gap: 12px; }
	.rb-hero-recovery-num { font-size: 40px; }
	.rb-hero-actions { flex-direction: column; width: 100%; }
	.rb-hero-actions .rb-btn { width: 100%; }
}

/* ============================================
   FREE DIAGNOSIS CTA BANNER
   ============================================ */
.rb-fdcta {
	padding: 60px 0;
	background: linear-gradient(135deg, var(--rb-red) 0%, #3F6212 100%);
	color: #FFF;
	position: relative;
	overflow: hidden;
}
.rb-fdcta::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at 20% 50%, rgba(255, 215, 0, .15) 0%, transparent 50%),
		radial-gradient(ellipse at 80% 50%, rgba(255, 255, 255, .1) 0%, transparent 50%);
}
.rb-fdcta::after {
	content: "FREE";
	position: absolute;
	top: 50%;
	right: 5%;
	transform: translateY(-50%);
	font-size: 220px;
	font-weight: 900;
	color: rgba(255, 255, 255, .08);
	font-family: var(--rb-num-font);
	letter-spacing: -.08em;
	line-height: 1;
	pointer-events: none;
}
.rb-fdcta-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 16px;
}
.rb-fdcta-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 14px;
	background: rgba(255, 255, 255, .12);
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: var(--rb-pill);
	color: #FFF;
	font-size: 12px;
	font-weight: 700;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}
.rb-fdcta-badge::before {
	content: "✓";
	color: var(--rb-gold);
	font-weight: 800;
}
.rb-fdcta-inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) auto;
	gap: 40px;
	align-items: center;
}
.rb-fdcta-text {
	min-width: 0;
}
.rb-fdcta-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(255, 255, 255, .15);
	color: var(--rb-gold);
	padding: 6px 14px;
	border-radius: var(--rb-pill);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .15em;
	margin-bottom: 12px;
	font-family: var(--rb-num-font);
	border: 1px solid rgba(255, 215, 0, .3);
}
.rb-fdcta h2 {
	font-size: clamp(24px, 3.6vw, 36px);
	font-weight: 700;
	color: #FFF;
	margin: 0 0 10px;
	line-height: 1.4;
	letter-spacing: -.01em;
}
.rb-fdcta h2 strong {
	color: var(--rb-gold);
	font-weight: 900;
}
.rb-fdcta p {
	font-size: 15px;
	color: rgba(255, 255, 255, .85);
	margin: 0;
	line-height: 1.85;
}
.rb-fdcta-actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 280px;
}
.rb-fdcta-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 18px 28px;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	border-radius: var(--rb-pill);
	transition: all .3s var(--rb-ease);
	min-height: 60px;
	font-family: var(--rb-jp-font-bold);
}
.rb-fdcta-btn-gold {
	background: var(--rb-gold);
	color: var(--rb-black);
	box-shadow: 0 6px 18px rgba(255, 215, 0, .35);
}
.rb-fdcta-btn-gold:hover {
	background: #FFE55C;
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(255, 215, 0, .5);
}
.rb-fdcta-btn-tel {
	background: transparent;
	color: #FFF;
	border: 2px solid rgba(255, 255, 255, .35);
}
.rb-fdcta-btn-tel:hover {
	border-color: #FFF;
	background: rgba(255, 255, 255, .08);
}

@media (max-width: 880px) {
	.rb-fdcta-inner { grid-template-columns: 1fr; gap: 24px; }
	.rb-fdcta-actions { min-width: 0; }
}

/* ============================================
   RECOVERY RATE TABLE
   ============================================ */
.rb-rate {
	padding: 100px 0;
	background: var(--rb-bg-soft);
}
.rb-rate-wrap {
	max-width: 1000px;
	margin: 0 auto;
	background: #FFF;
	border-radius: var(--rb-radius-lg);
	padding: 40px;
	border: 1px solid var(--rb-border);
	box-shadow: var(--rb-shadow);
}
.rb-rate-table {
	width: 100%;
	border-collapse: collapse;
}
.rb-rate-table thead th {
	padding: 16px 20px;
	font-size: 11px;
	font-weight: 700;
	text-align: left;
	color: var(--rb-text-3);
	letter-spacing: .2em;
	text-transform: uppercase;
	border-bottom: 2px solid var(--rb-text);
	font-family: var(--rb-num-font);
}
.rb-rate-table thead th:last-child { text-align: right; }
.rb-rate-table tbody td {
	padding: 20px 20px;
	border-bottom: 1px solid var(--rb-border-light);
	font-size: 14px;
	color: var(--rb-text-2);
	vertical-align: middle;
}
.rb-rate-table tbody tr:last-child td { border-bottom: none; }
.rb-rate-table tbody tr:hover { background: var(--rb-bg-soft2); }
.rb-rate-table tbody td:first-child {
	font-weight: 700;
	color: var(--rb-text);
	font-size: 15px;
}
.rb-rate-meter {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 14px;
}
.rb-rate-track {
	width: 140px;
	height: 7px;
	background: var(--rb-border);
	border-radius: 99px;
	overflow: hidden;
}
.rb-rate-fill { height: 100%; border-radius: 99px; }
.rb-rate-fill.high { background: linear-gradient(90deg, var(--rb-green), #34D399); }
.rb-rate-fill.mid { background: linear-gradient(90deg, var(--rb-gold-2), var(--rb-gold)); }
.rb-rate-fill.low { background: linear-gradient(90deg, #DC2626, #F87171); }
.rb-rate-pct {
	font-size: 18px;
	font-weight: 900;
	min-width: 56px;
	text-align: right;
	font-family: var(--rb-num-font);
	letter-spacing: -.02em;
}
.rb-rate-pct.high { color: var(--rb-green); }
.rb-rate-pct.mid { color: var(--rb-gold-2); }
.rb-rate-pct.low { color: #DC2626; }
.rb-rate-note {
	margin-top: 24px;
	padding: 16px 20px;
	background: var(--rb-red-light);
	border-left: 3px solid var(--rb-red);
	border-radius: 0 8px 8px 0;
	font-size: 13px;
	color: var(--rb-text-2);
	line-height: 1.7;
}
.rb-rate-note strong { color: var(--rb-red); }

@media (max-width: 880px) {
	.rb-rate { padding: 70px 0; }
	.rb-rate-wrap { padding: 24px; overflow-x: auto; }
	.rb-rate-table { min-width: 600px; }
	.rb-rate-track { width: 80px; }
}

/* ============================================
   2. STATS
   ============================================ */
.rb-stats {
	padding: 80px 0;
	background: var(--rb-bg-soft);
}
.rb-stats-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}
.rb-stat-card {
	background: #FFF;
	border-radius: var(--rb-radius-lg);
	padding: 36px 24px;
	text-align: center;
	transition: all .3s var(--rb-ease);
	border: 1px solid var(--rb-border-light);
}
.rb-stat-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--rb-shadow-lg);
	border-color: var(--rb-blue);
}
.rb-stat-icon {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--rb-navy) 0%, var(--rb-blue) 100%);
	color: #FFF;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	margin-bottom: 16px;
}
.rb-stat-num {
	font-size: 44px;
	font-weight: 900;
	color: var(--rb-navy);
	letter-spacing: -.03em;
	line-height: 1;
	margin-bottom: 6px;
	font-family: var(--rb-num-font);
}
.rb-stat-num small {
	font-size: 16px;
	color: var(--rb-text-2);
	font-weight: 700;
	margin-left: 4px;
}
.rb-stat-label {
	font-size: 14px;
	font-weight: 700;
	color: var(--rb-text);
	margin-bottom: 4px;
}
.rb-stat-sub {
	font-size: 12px;
	color: var(--rb-text-3);
	line-height: 1.5;
}

@media (max-width: 880px) {
	.rb-stats { padding: 60px 0; }
	.rb-stats-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.rb-stat-num { font-size: 36px; }
}

/* ============================================
   3. SYMPTOMS
   ============================================ */
.rb-symptoms {
	padding: 100px 0;
	background: #FFF;
}
.rb-symptoms-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.rb-symptom {
	background: #FFF;
	border-radius: var(--rb-radius-lg);
	overflow: hidden;
	border: 1px solid var(--rb-border);
	transition: all .35s var(--rb-ease);
	display: flex;
	flex-direction: column;
}
.rb-symptom:hover {
	transform: translateY(-6px);
	box-shadow: var(--rb-shadow-lg);
	border-color: var(--rb-black);
}
.rb-symptom-img {
	aspect-ratio: 16/10;
	overflow: hidden;
	position: relative;
	background: var(--rb-bg-soft);
}
.rb-symptom-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s var(--rb-ease);
}
.rb-symptom:hover .rb-symptom-img img { transform: scale(1.06); }
.rb-symptom-img-tag {
	position: absolute;
	top: 16px;
	left: 16px;
	background: var(--rb-black);
	color: #FFF;
	font-size: 11px;
	font-weight: 700;
	padding: 6px 12px;
	border-radius: var(--rb-pill);
	letter-spacing: .03em;
}
.rb-symptom-body {
	padding: 24px 26px 28px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.rb-symptom h3 {
	font-size: 18px;
	font-weight: 700;
	color: var(--rb-text);
	margin: 0 0 10px;
}
.rb-symptom p {
	font-size: 13.5px;
	line-height: 1.85;
	color: var(--rb-text-2);
	margin: 0 0 16px;
	flex: 1;
}
.rb-symptom-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.rb-symptom-tags span {
	display: inline-block;
	padding: 4px 11px;
	background: var(--rb-bg-soft);
	color: var(--rb-text);
	font-size: 11px;
	font-weight: 700;
	border-radius: var(--rb-pill);
	border: 1px solid var(--rb-border);
}

@media (max-width: 980px) {
	.rb-symptoms-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.rb-symptoms { padding: 70px 0; }
	.rb-symptoms-grid { grid-template-columns: 1fr; gap: 16px; }
}

/* ============================================
   4. WHY PRO (Risk vs Safe)
   ============================================ */
.rb-why {
	padding: 100px 0;
	background: var(--rb-bg-soft);
}
.rb-why-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	gap: 32px;
	align-items: center;
	max-width: 1100px;
	margin: 0 auto;
}
.rb-why-col {
	background: #FFF;
	border-radius: var(--rb-radius-lg);
	padding: 36px 32px;
	border: 2px solid var(--rb-border);
}
.rb-why-col.rb-risk { border-color: var(--rb-red); }
.rb-why-col.rb-safe { border-color: var(--rb-green); }
.rb-why-col-head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 22px;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--rb-border);
}
.rb-why-col-icon {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	flex-shrink: 0;
}
.rb-why-col.rb-risk .rb-why-col-icon { background: var(--rb-red-light); color: var(--rb-red); }
.rb-why-col.rb-safe .rb-why-col-icon { background: #ECFDF5; color: var(--rb-green); }
.rb-why-col-head strong {
	display: block;
	font-size: 18px;
	font-weight: 700;
	color: var(--rb-text);
	margin-bottom: 2px;
}
.rb-why-col-head span {
	font-size: 11px;
	color: var(--rb-text-3);
	font-weight: 700;
	letter-spacing: .15em;
	text-transform: uppercase;
	font-family: var(--rb-num-font);
}
.rb-why-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.rb-why-list li {
	display: grid;
	grid-template-columns: 24px 1fr;
	gap: 12px;
	padding: 10px 0;
	font-size: 14px;
	color: var(--rb-text-2);
	line-height: 1.7;
}
.rb-why-list li::before {
	content: "✕";
	color: var(--rb-red);
	font-weight: 700;
	font-size: 16px;
}
.rb-why-col.rb-safe .rb-why-list li::before {
	content: "✓";
	color: var(--rb-green);
}
.rb-why-list li strong {
	color: var(--rb-text);
	font-weight: 700;
}
.rb-why-vs {
	font-size: 32px;
	font-weight: 900;
	color: var(--rb-text-3);
	font-family: var(--rb-num-font);
	letter-spacing: -.02em;
}

@media (max-width: 880px) {
	.rb-why { padding: 70px 0; }
	.rb-why-grid { grid-template-columns: 1fr; gap: 16px; }
	.rb-why-vs { display: none; }
}

/* ============================================
   5. CRITICAL ALERT (Immediate Consultation)
   ============================================ */
.rb-alert {
	padding: 80px 0;
	background: #FFF;
}
.rb-alert-box {
	background: linear-gradient(135deg, #DDD6FE 0%, #F5F3FF 100%);
	border: 2px solid var(--rb-red);
	border-radius: var(--rb-radius-lg);
	padding: 48px;
	max-width: 1080px;
	margin: 0 auto;
	position: relative;
	overflow: hidden;
}
.rb-alert-box::before {
	content: "!";
	position: absolute;
	top: -40px;
	right: -20px;
	font-size: 280px;
	font-weight: 900;
	color: rgba(101, 163, 13, .08);
	font-family: var(--rb-num-font);
	line-height: 1;
}
.rb-alert-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: 40px;
	position: relative;
	z-index: 1;
}
.rb-alert-text {
	min-width: 0;
}
.rb-alert-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--rb-red);
	color: #FFF;
	padding: 6px 14px;
	border-radius: var(--rb-pill);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .15em;
	margin-bottom: 16px;
	font-family: var(--rb-num-font);
}
.rb-alert-eyebrow::before {
	content: "⚠";
	font-size: 14px;
}
.rb-alert h2 {
	font-size: clamp(24px, 3.5vw, 34px);
	font-weight: 700;
	color: var(--rb-text);
	margin: 0 0 16px;
	line-height: 1.4;
	letter-spacing: -.01em;
}
.rb-alert h2 em {
	font-style: normal;
	color: var(--rb-red);
}
.rb-alert-lead {
	font-size: 15px;
	line-height: 1.95;
	color: var(--rb-text-2);
	margin: 0 0 26px;
}
.rb-alert-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.rb-alert-list {
	list-style: none;
	padding: 0;
	margin: 0;
	background: #FFF;
	border-radius: var(--rb-radius-md);
	padding: 24px;
	border: 1px solid var(--rb-border);
}
.rb-alert-list-title {
	font-size: 13px;
	font-weight: 700;
	color: var(--rb-red);
	margin-bottom: 14px;
	letter-spacing: .03em;
}
.rb-alert-list li {
	display: grid;
	grid-template-columns: 22px 1fr;
	gap: 10px;
	padding: 6px 0;
	font-size: 13.5px;
	color: var(--rb-text);
	font-weight: 600;
}
.rb-alert-list li::before {
	content: "→";
	color: var(--rb-red);
	font-weight: 700;
}

@media (max-width: 880px) {
	.rb-alert { padding: 60px 0; }
	.rb-alert-box { padding: 32px 24px; }
	.rb-alert-grid { grid-template-columns: 1fr; gap: 24px; }
	.rb-alert-actions .rb-btn { flex: 1; }
}

/* ============================================
   6. PROCESS — Editorial Magazine Style (Color Optimized)
   ============================================ */
.rb-process {
	padding: 120px 0;
	background: var(--rb-bg-soft2);
	position: relative;
	overflow: hidden;
	border-top: 1px solid var(--rb-border-light);
	border-bottom: 1px solid var(--rb-border-light);
}
.rb-process .rb-section-head { margin-bottom: 80px; }
.rb-process h2.rb-title {
	font-family: var(--rb-jp-mincho);
	font-size: clamp(32px, 5vw, 52px);
	font-weight: 700;
	letter-spacing: -.025em;
	line-height: 1.15;
	color: var(--rb-text);
}
.rb-process h2.rb-title em {
	font-style: normal;
	color: var(--rb-red);
	font-weight: 400;
}
.rb-process .rb-eyebrow {
	color: var(--rb-red);
	font-family: var(--rb-jp-mincho);
	font-style: normal;
	letter-spacing: .25em;
	font-size: 13px;
}
.rb-process .rb-eyebrow::before { background: var(--rb-red); width: 28px; height: 1px; }
.rb-process .rb-section-head p {
	font-size: 16px;
	color: var(--rb-text-2);
	line-height: 1.95;
}

.rb-process-list {
	max-width: 980px;
	margin: 0 auto;
	position: relative;
}
.rb-process-list::before {
	content: "";
	position: absolute;
	top: 60px;
	bottom: 60px;
	left: 60px;
	width: 1px;
	background: var(--rb-border);
}
.rb-process-item {
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: 40px;
	padding: 40px 0;
	border-bottom: 1px solid var(--rb-border-light);
	transition: all .3s var(--rb-ease);
	align-items: start;
	background: transparent !important;
	border-radius: 0 !important;
	border-top: none !important;
	border-left: none !important;
	border-right: none !important;
}
.rb-process-item:last-child { border-bottom: none; }
.rb-process-item:hover {
	transform: none;
	background: transparent !important;
}
.rb-process-num {
	width: 120px;
	height: 120px;
	background: var(--rb-red);
	color: #FFF;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	font-family: var(--rb-jp-mincho);
	box-shadow: 0 16px 36px rgba(200, 16, 46, .35);
	position: relative;
	z-index: 1;
}
.rb-process-num strong {
	font-size: 56px;
	font-weight: 700;
	font-style: normal;
	line-height: 1;
	letter-spacing: -.04em;
}
.rb-process-num small {
	font-size: 10px;
	letter-spacing: .25em;
	margin-top: 4px;
	font-weight: 700;
	opacity: .9;
	font-style: normal;
}
.rb-process-content {
	min-width: 0;
	padding-top: 18px;
}
.rb-process-content h3 {
	font-family: var(--rb-jp-mincho);
	font-size: 28px;
	font-weight: 700;
	color: var(--rb-text);
	margin: 0 0 14px;
	letter-spacing: -.02em;
	line-height: 1.3;
}
.rb-process-content p {
	font-size: 15px;
	line-height: 1.95;
	color: var(--rb-text-2);
	margin: 0 0 18px;
}
.rb-process-content p strong {
	color: var(--rb-red) !important;
	font-weight: 700;
	font-style: normal;
	font-family: var(--rb-jp-mincho);
}
.rb-process-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	font-family: var(--rb-jp-mincho);
	font-size: 13px;
	font-style: normal;
	color: var(--rb-text-3);
	padding-top: 16px;
	border-top: 1px dashed var(--rb-border);
}
.rb-process-tags span {
	display: inline-block;
	background: transparent !important;
	color: var(--rb-text-3) !important;
	padding: 0 !important;
	border: none !important;
	border-radius: 0 !important;
	font-weight: 400 !important;
}
.rb-process-tags span::before {
	content: "#";
	color: var(--rb-red);
	font-weight: 700;
	margin-right: 4px;
}

@media (max-width: 640px) {
	.rb-process { padding: 70px 0; }
	.rb-process-list::before { left: 30px; }
	.rb-process-item { grid-template-columns: 60px 1fr; gap: 20px; padding: 28px 0; }
	.rb-process-num { width: 60px; height: 60px; }
	.rb-process-num strong { font-size: 28px; }
	.rb-process-num small { display: none; }
	.rb-process-content h3 { font-size: 22px; }
}

/* ============================================
   7. TRUST POINTS — Editorial Magazine Style (Color Optimized)
   ============================================ */
.rb-trust {
	padding: 120px 0;
	background: #FFF;
	position: relative;
}
.rb-trust .rb-section-head { margin-bottom: 70px; }
.rb-trust h2.rb-title {
	font-family: var(--rb-jp-mincho);
	font-size: clamp(32px, 5vw, 52px);
	font-weight: 700;
	letter-spacing: -.025em;
	line-height: 1.15;
	color: var(--rb-text);
}
.rb-trust h2.rb-title em {
	font-style: normal;
	color: var(--rb-red);
	font-weight: 400;
}
.rb-trust .rb-eyebrow {
	color: var(--rb-red);
	font-family: var(--rb-jp-mincho);
	font-style: normal;
	letter-spacing: .25em;
	font-size: 13px;
}
.rb-trust .rb-eyebrow::before { background: var(--rb-red); width: 28px; height: 1px; }
.rb-trust .rb-section-head p {
	font-size: 16px;
	color: var(--rb-text-2);
	line-height: 1.95;
}

.rb-trust-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	max-width: 1100px;
	margin: 0 auto;
	border-top: 2px solid var(--rb-text);
	border-left: 1px solid var(--rb-border);
}
.rb-trust-card {
	background: #FFF !important;
	border-radius: 0 !important;
	padding: 48px 36px !important;
	border: none !important;
	border-right: 1px solid var(--rb-border) !important;
	border-bottom: 1px solid var(--rb-border) !important;
	transition: all .35s var(--rb-ease);
	position: relative;
}
.rb-trust-card:hover {
	transform: none !important;
	box-shadow: none !important;
	background: var(--rb-bg-soft2) !important;
}
.rb-trust-card:hover .rb-trust-num {
	color: var(--rb-red) !important;
	opacity: 1;
}
.rb-trust-num {
	position: relative !important;
	top: auto !important;
	right: auto !important;
	font-family: var(--rb-jp-mincho) !important;
	font-size: 80px !important;
	font-weight: 700 !important;
	font-style: normal !important;
	color: var(--rb-red) !important;
	line-height: 1 !important;
	letter-spacing: -.05em !important;
	margin-bottom: 16px !important;
	display: block !important;
	opacity: .25;
	transition: opacity .35s var(--rb-ease);
}
.rb-trust-icon {
	width: auto !important;
	height: auto !important;
	background: transparent !important;
	color: var(--rb-red) !important;
	font-size: 32px !important;
	margin-bottom: 18px !important;
	display: inline-block !important;
	box-shadow: none !important;
}
.rb-trust-card h3 {
	font-family: var(--rb-jp-mincho) !important;
	font-size: 24px !important;
	font-weight: 700 !important;
	color: var(--rb-text) !important;
	margin: 0 0 14px !important;
	letter-spacing: -.02em !important;
	line-height: 1.35 !important;
}
.rb-trust-card p {
	font-size: 14px !important;
	line-height: 1.95 !important;
	color: var(--rb-text-2) !important;
	margin: 0 !important;
}
.rb-trust-card p strong {
	color: var(--rb-red) !important;
	font-weight: 700 !important;
	font-family: var(--rb-jp-mincho) !important;
	font-style: normal !important;
}

@media (max-width: 980px) {
	.rb-trust-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
	.rb-trust { padding: 70px 0; }
	.rb-trust-grid { grid-template-columns: 1fr; border-left: none; border-top: 1px solid var(--rb-border); }
	.rb-trust-card { padding: 36px 24px !important; border-right: none !important; }
	.rb-trust-num { font-size: 64px !important; }
}

/* ============================================
   8. TECHNOLOGY (Big Image Cards)
   ============================================ */
.rb-tech {
	padding: 100px 0;
	background: #FFF;
}
.rb-tech-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 28px;
}
.rb-tech-card {
	background: var(--rb-bg-soft);
	border-radius: var(--rb-radius-lg);
	overflow: hidden;
	transition: all .3s var(--rb-ease);
	display: flex;
	flex-direction: column;
}
.rb-tech-card:hover {
	transform: translateY(-6px);
	background: #FFF;
	box-shadow: var(--rb-shadow-lg);
}
.rb-tech-img {
	aspect-ratio: 16/9;
	overflow: hidden;
	position: relative;
	background: var(--rb-charcoal);
}
.rb-tech-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s var(--rb-ease);
}
.rb-tech-card:hover .rb-tech-img img { transform: scale(1.05); }
.rb-tech-img-overlay {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 22px 26px;
	background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, .8) 100%);
	color: #FFF;
}
.rb-tech-img-overlay strong {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .8);
	font-family: var(--rb-num-font);
}
.rb-tech-body {
	padding: 28px 30px 32px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.rb-tech-body h3 {
	font-size: 22px;
	font-weight: 700;
	color: var(--rb-text);
	margin: 0 0 12px;
	letter-spacing: -.01em;
	line-height: 1.4;
}
.rb-tech-body p {
	font-size: 14px;
	line-height: 1.95;
	color: var(--rb-text-2);
	margin: 0 0 18px;
	flex: 1;
}
.rb-tech-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.rb-tech-tags span {
	display: inline-block;
	padding: 5px 12px;
	background: #FFF;
	color: var(--rb-text);
	font-size: 11px;
	font-weight: 700;
	border-radius: var(--rb-pill);
	border: 1px solid var(--rb-border);
}

@media (max-width: 880px) {
	.rb-tech { padding: 70px 0; }
	.rb-tech-grid { grid-template-columns: 1fr; gap: 18px; }
}

/* ============================================
   9. PRICING
   ============================================ */
.rb-pricing {
	padding: 100px 0;
	background: var(--rb-bg-soft);
}
.rb-pricing-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	max-width: 1100px;
	margin: 0 auto;
}
.rb-pricing-card {
	background: #FFF;
	border-radius: var(--rb-radius-lg);
	padding: 32px 26px;
	border: 1.5px solid var(--rb-border);
	display: flex;
	flex-direction: column;
	transition: all .3s var(--rb-ease);
	position: relative;
}
.rb-pricing-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--rb-shadow-lg);
}
.rb-pricing-card.rb-featured {
	background: var(--rb-black);
	color: #FFF;
	border-color: var(--rb-black);
	transform: translateY(-10px);
}
.rb-pricing-card.rb-featured::before {
	content: "おすすめ";
	position: absolute;
	top: -14px;
	left: 50%;
	transform: translateX(-50%);
	background: linear-gradient(135deg, var(--rb-gold) 0%, var(--rb-gold-2) 100%);
	color: var(--rb-black);
	font-size: 11px;
	font-weight: 700;
	padding: 7px 16px;
	border-radius: var(--rb-pill);
	letter-spacing: .08em;
}
.rb-pricing-tier {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	color: var(--rb-text-3);
	letter-spacing: .15em;
	margin-bottom: 12px;
	align-self: flex-start;
	font-family: var(--rb-num-font);
}
.rb-pricing-card.rb-featured .rb-pricing-tier { color: var(--rb-gold); }
.rb-pricing-card h3 {
	font-size: 19px;
	font-weight: 700;
	margin: 0 0 6px;
	color: inherit;
}
.rb-pricing-sub {
	font-size: 12px;
	color: var(--rb-text-3);
	display: block;
	margin-bottom: 22px;
}
.rb-pricing-card.rb-featured .rb-pricing-sub { color: rgba(255, 255, 255, .55); }
.rb-pricing-price {
	font-size: 38px;
	font-weight: 900;
	color: var(--rb-text);
	letter-spacing: -.03em;
	line-height: 1;
	margin-bottom: 4px;
	font-family: var(--rb-num-font);
}
.rb-pricing-card.rb-featured .rb-pricing-price { color: #FFF; }
.rb-pricing-price small {
	font-size: 16px;
	color: var(--rb-text-2);
	font-weight: 700;
	margin-left: 4px;
}
.rb-pricing-card.rb-featured .rb-pricing-price small { color: rgba(255, 255, 255, .7); }
.rb-pricing-price-note {
	font-size: 12px;
	color: var(--rb-text-3);
	margin-bottom: 22px;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--rb-border);
}
.rb-pricing-card.rb-featured .rb-pricing-price-note {
	color: rgba(255, 255, 255, .5);
	border-bottom-color: rgba(255, 255, 255, .15);
}
.rb-pricing-list {
	list-style: none;
	padding: 0;
	margin: 0;
	flex: 1;
}
.rb-pricing-list li {
	font-size: 13px;
	padding: 7px 0 7px 24px;
	position: relative;
	line-height: 1.5;
	color: var(--rb-text-2);
}
.rb-pricing-card.rb-featured .rb-pricing-list li { color: rgba(255, 255, 255, .8); }
.rb-pricing-list li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: var(--rb-blue);
	font-weight: 700;
	font-size: 15px;
}
.rb-pricing-card.rb-featured .rb-pricing-list li::before { color: var(--rb-gold); }

@media (max-width: 980px) {
	.rb-pricing-grid { grid-template-columns: repeat(2, 1fr); }
	.rb-pricing-card.rb-featured { transform: none; }
}
@media (max-width: 540px) {
	.rb-pricing { padding: 70px 0; }
	.rb-pricing-grid { grid-template-columns: 1fr; gap: 14px; }
	.rb-pricing-price { font-size: 32px; }
}

/* ============================================
   10. CASES
   ============================================ */
.rb-cases {
	padding: 100px 0;
	background: #FFF;
}
.rb-cases-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.rb-case {
	background: #FFF;
	border-radius: var(--rb-radius-lg);
	overflow: hidden;
	border: 1px solid var(--rb-border);
	transition: all .35s var(--rb-ease);
	display: flex;
	flex-direction: column;
}
.rb-case:hover {
	transform: translateY(-6px);
	box-shadow: var(--rb-shadow-lg);
	border-color: var(--rb-black);
}
.rb-case-img {
	aspect-ratio: 16/10;
	overflow: hidden;
	position: relative;
	background: var(--rb-bg-soft);
}
.rb-case-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s var(--rb-ease);
}
.rb-case:hover .rb-case-img img { transform: scale(1.06); }
.rb-case-result {
	position: absolute;
	top: 16px;
	right: 16px;
	background: var(--rb-black);
	color: var(--rb-gold);
	font-size: 13px;
	font-weight: 900;
	padding: 7px 14px;
	border-radius: var(--rb-pill);
	font-family: var(--rb-num-font);
}
.rb-case-body {
	padding: 28px 24px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.rb-case-tag {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	color: var(--rb-blue);
	letter-spacing: .15em;
	margin-bottom: 12px;
	align-self: flex-start;
	text-transform: uppercase;
	font-family: var(--rb-num-font);
}
.rb-case h3 {
	font-size: 17px;
	font-weight: 700;
	color: var(--rb-text);
	margin: 0 0 12px;
	line-height: 1.5;
}
.rb-case p {
	font-size: 13.5px;
	line-height: 1.85;
	color: var(--rb-text-2);
	margin: 0 0 18px;
	flex: 1;
}
.rb-case-meta {
	display: flex;
	gap: 20px;
	padding-top: 18px;
	border-top: 1px solid var(--rb-border);
}
.rb-case-meta-item {
	display: flex;
	flex-direction: column;
}
.rb-case-meta-num {
	font-size: 15px;
	font-weight: 700;
	color: var(--rb-text);
	letter-spacing: -.01em;
	font-family: var(--rb-num-font);
}
.rb-case-meta-label {
	font-size: 10px;
	color: var(--rb-text-3);
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	margin-top: 2px;
	font-family: var(--rb-num-font);
}

@media (max-width: 980px) {
	.rb-cases-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
	.rb-cases { padding: 70px 0; }
}

/* ============================================
   11. REVIEWS
   ============================================ */
.rb-reviews {
	padding: 100px 0;
	background: var(--rb-bg-soft);
}
.rb-reviews-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
	max-width: 1080px;
	margin: 0 auto;
}
.rb-review {
	background: #FFF;
	border-radius: var(--rb-radius-lg);
	padding: 32px 30px;
	border: 1px solid var(--rb-border);
	transition: all .3s var(--rb-ease);
	position: relative;
}
.rb-review:hover {
	transform: translateY(-4px);
	box-shadow: var(--rb-shadow-lg);
}
.rb-review-stars {
	color: var(--rb-gold-2);
	font-size: 16px;
	letter-spacing: 2px;
	margin-bottom: 14px;
}
.rb-review-rating {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--rb-num-font);
	font-size: 13px;
	color: var(--rb-text-3);
	margin-left: 8px;
	font-weight: 700;
}
.rb-review-rating strong {
	color: var(--rb-text);
	font-size: 16px;
}
.rb-review-title {
	font-size: 16px;
	font-weight: 700;
	color: var(--rb-text);
	margin: 0 0 12px;
	line-height: 1.5;
}
.rb-review-text {
	font-size: 14px;
	line-height: 1.95;
	color: var(--rb-text-2);
	margin: 0 0 20px;
}
.rb-review-text strong { color: var(--rb-red); font-weight: 700; }
.rb-review-meta {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-top: 18px;
	border-top: 1px solid var(--rb-border);
}
.rb-review-avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--rb-navy) 0%, var(--rb-blue) 100%);
	color: #FFF;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	font-weight: 900;
	flex-shrink: 0;
	font-family: var(--rb-num-font);
}
.rb-review-author {
	flex: 1;
	min-width: 0;
}
.rb-review-author strong {
	display: block;
	font-size: 14px;
	font-weight: 700;
	color: var(--rb-text);
	margin-bottom: 2px;
}
.rb-review-author span {
	font-size: 12px;
	color: var(--rb-text-3);
}
.rb-review-date {
	font-size: 11px;
	color: var(--rb-text-3);
	font-weight: 700;
	letter-spacing: .03em;
	font-family: var(--rb-num-font);
}

@media (max-width: 880px) {
	.rb-reviews { padding: 70px 0; }
	.rb-reviews-grid { grid-template-columns: 1fr; }
}

/* ============================================
   12. FAQ
   ============================================ */
.rb-faq {
	padding: 100px 0;
	background: #FFF;
}
.rb-faq-list {
	max-width: 920px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.rb-faq-item {
	background: var(--rb-bg-soft);
	border-radius: var(--rb-radius-md);
	border: 1px solid var(--rb-border);
	overflow: hidden;
	transition: all .25s var(--rb-ease);
}
.rb-faq-item[open] {
	background: #FFF;
	border-color: var(--rb-black);
	box-shadow: var(--rb-shadow);
}
.rb-faq-item summary {
	padding: 22px 26px;
	font-size: 15px;
	font-weight: 700;
	color: var(--rb-text);
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	gap: 16px;
}
.rb-faq-item summary::-webkit-details-marker { display: none; }
.rb-faq-q {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	background: var(--rb-black);
	color: #FFF;
	border-radius: 8px;
	font-size: 13px;
	font-weight: 900;
	flex-shrink: 0;
	font-family: var(--rb-num-font);
}
.rb-faq-text {
	flex: 1;
	min-width: 0;
	line-height: 1.5;
}
.rb-faq-toggle {
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	color: var(--rb-text-3);
	transition: all .3s var(--rb-ease);
	flex-shrink: 0;
	background: var(--rb-bg-soft);
	border-radius: 50%;
}
.rb-faq-item[open] .rb-faq-toggle { transform: rotate(180deg); background: var(--rb-black); color: #FFF; }
.rb-faq-body {
	padding: 0 26px 26px 74px;
	font-size: 14px;
	line-height: 1.95;
	color: var(--rb-text-2);
}
.rb-faq-body strong { color: var(--rb-text); }
.rb-faq-body .rb-warn { color: var(--rb-red); font-weight: 700; }

@media (max-width: 640px) {
	.rb-faq { padding: 70px 0; }
	.rb-faq-item summary { padding: 18px 20px; font-size: 14px; gap: 12px; }
	.rb-faq-q { width: 28px; height: 28px; font-size: 12px; }
	.rb-faq-toggle { width: 28px; height: 28px; }
	.rb-faq-body { padding: 0 20px 22px 60px; font-size: 13.5px; }
}

/* ============================================
   13. ACCESS
   ============================================ */
.rb-access {
	padding: 100px 0;
	background: var(--rb-bg-soft);
}
.rb-access-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 32px;
	max-width: 1100px;
	margin: 0 auto;
	align-items: stretch;
}
.rb-access-map {
	border-radius: var(--rb-radius-lg);
	overflow: hidden;
	min-height: 420px;
	box-shadow: var(--rb-shadow);
}
.rb-access-map iframe {
	width: 100%;
	height: 100%;
	min-height: 420px;
	border: 0;
	display: block;
}
.rb-access-info {
	background: #FFF;
	border-radius: var(--rb-radius-lg);
	padding: 36px 32px;
	border: 1px solid var(--rb-border);
}
.rb-access-row {
	display: grid;
	grid-template-columns: 40px 1fr;
	gap: 16px;
	align-items: flex-start;
	padding: 16px 0;
	border-bottom: 1px solid var(--rb-border-light);
}
.rb-access-row:first-child { padding-top: 0; }
.rb-access-row:last-child { border-bottom: none; padding-bottom: 0; }
.rb-access-row-icon {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: var(--rb-black);
	color: #FFF;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	flex-shrink: 0;
}
.rb-access-row-text strong {
	display: block;
	font-size: 13px;
	font-weight: 700;
	color: var(--rb-text);
	margin-bottom: 4px;
}
.rb-access-row-text span {
	font-size: 14px;
	color: var(--rb-text-2);
	line-height: 1.7;
}
.rb-access-row-text a {
	color: var(--rb-blue);
	font-weight: 700;
	text-decoration: none;
}

@media (max-width: 880px) {
	.rb-access { padding: 70px 0; }
	.rb-access-grid { grid-template-columns: 1fr; gap: 18px; }
}

/* ============================================
   14. FINAL CTA
   ============================================ */
.rb-finalcta {
	padding: 100px 0;
	background: var(--rb-black);
	color: #FFF;
	position: relative;
	overflow: hidden;
}
.rb-finalcta::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at 30% 50%, rgba(38, 128, 235, .25) 0%, transparent 50%),
		radial-gradient(ellipse at 70% 50%, rgba(255, 215, 0, .12) 0%, transparent 50%);
}
.rb-finalcta-inner {
	position: relative;
	z-index: 1;
	max-width: 920px;
	margin: 0 auto;
	text-align: center;
}
.rb-finalcta h2 {
	font-size: clamp(28px, 4vw, 42px);
	font-weight: 700;
	margin: 18px 0 22px;
	line-height: 1.4;
	color: #FFF;
	letter-spacing: -.02em;
}
.rb-finalcta h2 .rb-hl {
	background: linear-gradient(135deg, var(--rb-gold) 0%, var(--rb-gold-2) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}
.rb-finalcta p {
	font-size: 16px;
	color: rgba(255, 255, 255, .8);
	margin: 0 0 36px;
	line-height: 1.95;
}
.rb-finalcta-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
	margin-bottom: 36px;
}
.rb-finalcta-emergency {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	padding: 22px 32px;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .15);
	border-radius: var(--rb-pill);
	transition: all .3s var(--rb-ease);
	text-decoration: none;
}
.rb-finalcta-emergency:hover {
	background: rgba(255, 255, 255, .1);
	border-color: var(--rb-gold);
}
.rb-finalcta-emergency-ico {
	font-size: 26px;
}
.rb-finalcta-emergency-text {
	text-align: left;
}
.rb-finalcta-emergency-text strong {
	display: block;
	font-size: 26px;
	font-weight: 900;
	color: #FFF;
	font-family: var(--rb-num-font);
	letter-spacing: -.02em;
	line-height: 1;
	margin-bottom: 4px;
}
.rb-finalcta-emergency-text span {
	font-size: 12px;
	color: rgba(255, 255, 255, .65);
	font-weight: 700;
	letter-spacing: .03em;
}

@media (max-width: 540px) {
	.rb-finalcta { padding: 70px 0; }
	.rb-finalcta-actions { flex-direction: column; }
	.rb-finalcta-actions .rb-btn { width: 100%; }
	.rb-finalcta-emergency { padding: 18px 24px; gap: 12px; }
	.rb-finalcta-emergency-text strong { font-size: 22px; }
}

/* ============================================
   STICKY RIGHT-SIDE QUICK MENU (Floating)
   Avoids covering footer SNS icons
   ============================================ */
.rb-stickybar {
	position: fixed;
	right: 20px;
	bottom: 30px;
	z-index: 90;
	display: flex;
	flex-direction: column;
	gap: 10px;
	transform: translateX(140%);
	transition: transform .5s var(--rb-ease);
}
.rb-stickybar.rb-show { transform: translateX(0); }

.rb-stickybar-tel,
.rb-stickybar-apply {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 20px;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	border-radius: 12px;
	transition: all .25s var(--rb-ease);
	white-space: nowrap;
	font-family: var(--rb-jp-font-bold);
	box-shadow: 0 12px 32px rgba(0, 0, 0, .25);
	min-width: 220px;
}
.rb-stickybar-tel {
	background: rgba(10, 10, 10, .95);
	color: #FFF;
	border: 1px solid rgba(255, 255, 255, .15);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
}
.rb-stickybar-tel:hover {
	background: var(--rb-black);
	transform: translateX(-4px);
	box-shadow: 0 16px 40px rgba(0, 0, 0, .35);
}
.rb-stickybar-apply {
	background: var(--rb-red);
	color: #FFF;
	border: 1px solid var(--rb-red);
}
.rb-stickybar-apply:hover {
	background: #3F6212;
	border-color: #3F6212;
	transform: translateX(-4px);
	box-shadow: 0 16px 40px rgba(101, 163, 13, .4);
}
.rb-stickybar-icon {
	width: 36px;
	height: 36px;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	flex-shrink: 0;
}
.rb-stickybar-tel .rb-stickybar-icon {
	background: rgba(255, 255, 255, .12);
}
.rb-stickybar-apply .rb-stickybar-icon {
	background: rgba(0, 0, 0, .18);
}
.rb-stickybar-text-block {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
}
.rb-stickybar-text-block strong {
	font-size: 15px;
	font-weight: 800;
	letter-spacing: .02em;
	font-family: var(--rb-num-font);
}
.rb-stickybar-text-block span {
	font-size: 11px;
	font-weight: 600;
	opacity: .75;
	margin-top: 3px;
	letter-spacing: .03em;
}

@media (max-width: 640px) {
	.rb-stickybar {
		right: 12px;
		bottom: 12px;
		gap: 8px;
	}
	.rb-stickybar-tel,
	.rb-stickybar-apply {
		min-width: 0;
		padding: 12px 14px;
	}
	.rb-stickybar-text-block {
		display: none;
	}
	.rb-stickybar-icon {
		width: 40px;
		height: 40px;
		margin: 0;
	}
}

/* ============================================
   RELATED RECOVERY SERVICES (Simple)
   ============================================ */
.rb-related {
	padding: 70px 0 60px;
	background: var(--rb-bg-soft);
	text-align: center;
	border-top: 1px solid var(--rb-border-light);
}
.rb-related-head {
	max-width: 720px;
	margin: 0 auto 36px;
}
.rb-related-head .rb-eyebrow {
	color: var(--rb-blue);
}
.rb-related-head .rb-eyebrow::before {
	background: var(--rb-blue);
}
.rb-related-head h2 {
	font-size: clamp(22px, 3vw, 28px);
	font-weight: 700;
	color: var(--rb-text);
	margin: 0 0 12px;
	letter-spacing: -.02em;
}
.rb-related-head p {
	font-size: 14px;
	color: var(--rb-text-2);
	line-height: 1.85;
	margin: 0;
}
.rb-related-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	max-width: 1100px;
	margin: 0 auto;
}
.rb-related-list a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 22px;
	background: #FFF;
	border: 1px solid var(--rb-border);
	border-radius: var(--rb-pill);
	color: var(--rb-text);
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: none;
	transition: all .25s var(--rb-ease);
}
.rb-related-list a::after {
	content: "→";
	color: var(--rb-text-3);
	transition: all .2s var(--rb-ease);
	font-size: 14px;
}
.rb-related-list a:hover {
	background: var(--rb-black);
	border-color: var(--rb-black);
	color: #FFF;
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(0, 0, 0, .15);
}
.rb-related-list a:hover::after {
	color: #FFF;
	transform: translateX(3px);
}

@media (max-width: 540px) {
	.rb-related { padding: 50px 0; }
}

/* ============================================
   (LEGACY) SEO INTERNAL LINKS SECTION — unused
   ============================================ */
.rb-seolinks {
	padding: 80px 0 60px;
	background: var(--rb-bg-soft);
	border-top: 1px solid var(--rb-border-light);
}
.rb-seolinks-head {
	text-align: center;
	margin-bottom: 48px;
}
.rb-seolinks-head .rb-eyebrow {
	color: var(--rb-blue);
}
.rb-seolinks-head .rb-eyebrow::before {
	background: var(--rb-blue);
}
.rb-seolinks-head h2 {
	font-size: clamp(22px, 3vw, 32px);
	font-weight: 700;
	color: var(--rb-text);
	margin: 0 0 12px;
	letter-spacing: -.02em;
}
.rb-seolinks-head p {
	font-size: 15px;
	color: var(--rb-text-2);
	line-height: 1.85;
	max-width: 720px;
	margin: 0 auto;
}
.rb-seolinks-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
	max-width: 1100px;
	margin: 0 auto 40px;
}
.rb-seolinks-col h3 {
	font-size: 14px;
	font-weight: 800;
	color: var(--rb-text);
	margin: 0 0 16px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--rb-text);
	letter-spacing: -.01em;
	display: flex;
	align-items: center;
	gap: 8px;
}
.rb-seolinks-col h3::before {
	content: "";
	width: 4px;
	height: 14px;
	background: var(--rb-red);
}
.rb-seolinks-col ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
.rb-seolinks-col li {
	margin-bottom: 8px;
}
.rb-seolinks-col a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--rb-text-2);
	text-decoration: none;
	transition: all .2s var(--rb-ease);
	padding: 4px 0;
	font-weight: 600;
}
.rb-seolinks-col a::before {
	content: "›";
	color: var(--rb-text-3);
	font-size: 14px;
	font-weight: 700;
	transition: all .2s var(--rb-ease);
}
.rb-seolinks-col a:hover {
	color: var(--rb-red);
	transform: translateX(2px);
}
.rb-seolinks-col a:hover::before {
	color: var(--rb-red);
}
.rb-seolinks-tags {
	max-width: 1100px;
	margin: 0 auto;
	padding-top: 32px;
	border-top: 1px solid var(--rb-border);
	text-align: center;
}
.rb-seolinks-tags-label {
	display: block;
	font-size: 11px;
	font-weight: 800;
	color: var(--rb-text-3);
	letter-spacing: .15em;
	text-transform: uppercase;
	margin-bottom: 16px;
	font-family: var(--rb-num-font);
}
.rb-seolinks-tags-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
}
.rb-seolinks-tags-list a {
	display: inline-block;
	padding: 7px 14px;
	background: #FFF;
	border: 1px solid var(--rb-border);
	border-radius: var(--rb-pill);
	color: var(--rb-text-2);
	font-size: 12px;
	font-weight: 600;
	text-decoration: none;
	transition: all .2s var(--rb-ease);
}
.rb-seolinks-tags-list a:hover {
	background: var(--rb-black);
	border-color: var(--rb-black);
	color: #FFF;
	transform: translateY(-1px);
}

@media (max-width: 880px) {
	.rb-seolinks { padding: 60px 0 50px; }
	.rb-seolinks-grid { grid-template-columns: repeat(2, 1fr); gap: 28px 24px; }
}
@media (max-width: 480px) {
	.rb-seolinks-grid { grid-template-columns: 1fr; gap: 24px; }
}

/* Breadcrumb & Skip */
.rb-bread {
	background: #FFF;
	padding: 14px 0;
	border-bottom: 1px solid var(--rb-border-light);
}
.rb-bread ol {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	font-size: 12px;
}
.rb-bread li { color: var(--rb-text-3); display: inline-flex; align-items: center; }
.rb-bread li:not(:last-child)::after { content: "›"; margin: 0 6px; color: var(--rb-text-3); }
.rb-bread a { color: var(--rb-text-2); text-decoration: none; }
.rb-bread a:hover { color: var(--rb-black); }

.rb-skip {
	position: absolute;
	left: -9999px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ============================================
   INQUIRY PAGE — FORM, MODALS, TOAST, FAQ BANNER
   ============================================ */

/* FAQ Banner */
.faq-banner{ max-width:1240px; margin:30px auto 50px; padding:0 20px; }
.faq-banner > .container{
	display:flex; align-items:center; justify-content:space-between;
	background:linear-gradient(135deg,#65A30D 0%,#3F6212 100%);
	border-radius:14px; padding:18px 26px; flex-wrap:wrap; gap:16px;
}
.faq-banner-text{ display:flex; align-items:center; gap:14px; color:#fff; }
.faq-banner-icon{
	width:42px; height:42px; background:rgba(255,255,255,0.18);
	border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.faq-banner-copy{ display:flex; flex-direction:column; gap:2px; }
.faq-banner-copy strong{ font-weight:800; font-size:15px; }
.faq-banner-copy span{ font-size:13px; opacity:0.92; }
.faq-banner-btn{
	display:inline-flex; align-items:center; gap:6px; padding:10px 18px;
	background:#fff; color:#3F6212; border-radius:999px;
	font-weight:800; font-size:13px; text-decoration:none;
	transition:transform .2s, box-shadow .2s; white-space:nowrap;
}
.faq-banner-btn:hover{ transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,0.15); }

/* Generic content section + section header */
.content-section{ padding:80px 0; }
.content-section .container{ max-width:1240px; margin:0 auto; padding:0 20px; }
.section-header{ text-align:center; margin-bottom:48px; }
.section-header .badge-top{
	display:inline-block; padding:6px 14px;
	background:rgba(101,163,13,0.10); color:#65A30D;
	border-radius:999px; font-size:12px; font-weight:800; letter-spacing:0.05em;
	text-transform:uppercase; margin-bottom:14px;
}
.section-header h2{
	font-size:clamp(24px,3.4vw,38px); font-weight:800;
	color:#1d1d1f; letter-spacing:-0.02em; margin-bottom:14px;
}
.section-header p{ font-size:16px; color:#555; line-height:1.75; max-width:760px; margin:0 auto; }

/* Card grid for contact methods */
.card-grid{ display:grid; gap:24px; }
.card-grid.grid-3{ grid-template-columns:repeat(3,1fr); }
.card-grid .card{
	background:#fff; border:1px solid var(--rb-border, #e2e8f0);
	border-radius:18px; overflow:hidden;
	transition:transform .25s ease, box-shadow .25s ease;
}
.card-grid .card:hover{
	transform:translateY(-4px);
	box-shadow:0 16px 40px rgba(101,163,13,0.12);
	border-color:#65A30D;
}
.card-grid .card-media{
	height:170px; display:flex; align-items:center; justify-content:center;
	position:relative; overflow:hidden;
}
.card-grid .card-media .ph{ display:flex; align-items:center; justify-content:center; }
.card-grid .badge-group{ position:absolute; top:14px; left:14px; display:flex; gap:6px; }
.card-grid .badge{
	padding:5px 12px; border-radius:999px;
	font-size:11px; font-weight:800; color:#fff; letter-spacing:0.05em;
}
.card-grid .badge.orange{ background:#F97316; }
.card-grid .badge.blue{ background:#3498db; }
.card-grid .card-body{ padding:24px 22px; }
.card-grid .card-title{
	font-size:18px; font-weight:800; color:#111; margin-bottom:14px;
}
.card-grid .feature-box{
	padding:14px 16px; background:#f8f9fa; border-radius:10px;
	border-left:3px solid #65A30D;
}
.card-grid .feature-desc{ font-size:14px; color:#555; line-height:1.7; margin:0; }
.card-grid .feature-list{ margin:10px 0 0; padding-left:18px; font-size:13.5px; color:#555; line-height:1.8; }
.card-grid .feature-list li{ margin-bottom:4px; }

/* Map / Access */
.map-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:24px; }
.map-card{
	background:#fff; border:1px solid var(--rb-border, #e2e8f0);
	border-radius:18px; overflow:hidden;
}
.map-ph{ height:280px; }
.map-body{ padding:26px 24px; }
.map-body h3{ font-size:18px; font-weight:800; margin-bottom:10px; color:#111; }
.kv{ display:grid; grid-template-columns:auto 1fr; gap:12px 18px; font-size:14px; line-height:1.7; color:#444; }
.kv > div:nth-child(odd){ font-weight:700; color:#111; white-space:nowrap; }
.pill{
	display:inline-flex; align-items:center; gap:6px;
	padding:6px 14px; background:#F7FEE7; border:1px solid #D9F99D;
	border-radius:999px; font-size:12.5px; color:#3F6212; font-weight:700;
}
.pill .dot{ width:6px; height:6px; background:#65A30D; border-radius:50%; }

/* Form */
.form-shell{
	max-width:980px; margin:0 auto; background:#fff;
	border:1px solid var(--rb-border, #e2e8f0); border-radius:20px;
	overflow:hidden; box-shadow:0 10px 40px rgba(0,0,0,0.04);
}
.form-body{ padding:40px 36px; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px 24px; }
.field{ display:flex; flex-direction:column; }
.field .label{
	font-size:13.5px; font-weight:800; color:#111; margin-bottom:8px;
	display:flex; align-items:center; gap:4px;
}
.field .req{ color:#e02020; margin-left:2px; }
.input,.select,.textarea{
	width:100%; padding:13px 14px;
	border:1.5px solid #e6e8eb; border-radius:10px;
	font-size:14.5px; color:#111; font-family:inherit;
	background:#fff; transition:border-color .2s, box-shadow .2s; box-sizing:border-box;
}
.input:focus,.select:focus,.textarea:focus{
	outline:none; border-color:#65A30D;
	box-shadow:0 0 0 4px rgba(101,163,13,0.10);
}
.textarea{ min-height:140px; resize:vertical; line-height:1.7; }
.inline{ display:flex; flex-wrap:wrap; gap:10px; }
.chip{
	display:inline-flex; align-items:center; gap:6px;
	padding:8px 14px; border:1.5px solid #e6e8eb; border-radius:999px;
	font-size:13px; color:#444; cursor:pointer;
	transition:all .2s ease;
}
.chip input{ accent-color:#65A30D; }
.hr{ border-top:1px solid #eee; margin:30px 0 4px; }
.actions{ display:flex; flex-wrap:wrap; gap:14px; }
.smallprint{ font-size:13px; line-height:1.6; color:#555; max-width:520px; }
.btn-primary{
	display:inline-flex; align-items:center; justify-content:center; gap:8px;
	padding:14px 36px; background:#65A30D; color:#fff; border:none;
	border-radius:50px; font-weight:800; font-size:15px;
	cursor:pointer; transition:all .25s ease;
	box-shadow:0 6px 18px rgba(101,163,13,0.25);
}
.btn-primary:hover{ background:#3F6212; transform:translateY(-2px); box-shadow:0 10px 28px rgba(101,163,13,0.35); }
.btn-primary:disabled{ opacity:0.7; cursor:not-allowed; transform:none; }

/* Modal */
.modal-overlay{
	display:none; position:fixed; inset:0;
	background:rgba(0,0,0,0.55); z-index:9999;
	align-items:center; justify-content:center; padding:20px;
	opacity:0; transition:opacity .25s ease;
}
.modal-overlay.active{ display:flex; opacity:1; }
.modal-box{
	background:#fff; border-radius:20px; max-width:520px; width:100%;
	overflow:hidden; animation:modalIn .3s ease;
}
@keyframes modalIn{ from{ opacity:0; transform:translateY(20px) scale(0.96); } to{ opacity:1; transform:translateY(0) scale(1); } }
.modal-header{
	background:linear-gradient(135deg,#65A30D 0%,#3F6212 100%);
	color:#fff; padding:30px 30px 24px; text-align:center;
}
.modal-header-icon{
	width:60px; height:60px; background:rgba(255,255,255,0.22);
	border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
	margin-bottom:14px;
}
.modal-header h3{ font-size:22px; font-weight:800; margin-bottom:8px; }
.modal-header p{ font-size:14px; opacity:0.95; line-height:1.6; }
.modal-body{ padding:28px 30px 32px; }
.modal-steps{ display:flex; flex-direction:column; gap:16px; margin-bottom:24px; }
.modal-step{ display:flex; gap:14px; align-items:flex-start; }
.modal-step-num{
	width:32px; height:32px; background:#65A30D; color:#fff;
	border-radius:50%; display:flex; align-items:center; justify-content:center;
	font-weight:800; font-size:14px; flex-shrink:0;
}
.modal-step-text{ display:flex; flex-direction:column; gap:4px; }
.modal-step-text strong{ font-size:14.5px; color:#111; font-weight:800; }
.modal-step-text span{ font-size:13px; color:#555; line-height:1.65; }
.modal-close-btn{
	width:100%; padding:14px; background:#1d1d1f; color:#fff;
	border:none; border-radius:10px; font-weight:800; font-size:14px; cursor:pointer;
	transition:opacity .2s;
}
.modal-close-btn:hover{ opacity:0.85; }

/* Toast */
.toast{
	position:fixed; bottom:30px; left:50%; transform:translateX(-50%) translateY(100px);
	background:#1d1d1f; color:#fff; padding:14px 24px; border-radius:999px;
	font-size:13.5px; font-weight:700;
	box-shadow:0 12px 30px rgba(0,0,0,0.25);
	transition:transform .35s ease; z-index:10000; opacity:0;
}
.toast.show{ transform:translateX(-50%) translateY(0); opacity:1; }

/* Mobile responsive */
@media (max-width: 980px){
	.card-grid.grid-3{ grid-template-columns:1fr; }
	.map-grid{ grid-template-columns:1fr; }
	.form-grid{ grid-template-columns:1fr; }
	.faq-banner > .container{ flex-direction:column; text-align:center; align-items:stretch; }
	.faq-banner-btn{ align-self:center; }
}
@media (max-width: 540px){
	.content-section{ padding:60px 0; }
	.form-body{ padding:28px 22px; }
	.section-header h2{ font-size:24px; }
}

/* ============================================
   FORM PAGE — SLIM HERO (no visual, horizontal)
   ============================================ */
.rb-hero.rb-hero-slim {
	min-height: auto !important;
	padding: 60px 0 50px !important;
	display: block !important;
}
.rb-hero.rb-hero-slim .rb-hero-grid {
	grid-template-columns: 1fr !important;
	gap: 0 !important;
}
.rb-hero.rb-hero-slim .rb-hero-text {
	max-width: none;
	text-align: center;
}
.rb-hero.rb-hero-slim .rb-hero-badge {
	justify-content: center;
}
.rb-hero.rb-hero-slim h1 {
	white-space: normal !important;
	margin-bottom: 18px;
}
.rb-hero.rb-hero-slim .rb-hero-lead {
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}
.rb-hero.rb-hero-slim .rb-hero-recovery {
	max-width: 520px;
	margin-left: auto;
	margin-right: auto;
}
.rb-hero.rb-hero-slim .rb-hero-actions {
	justify-content: center;
}
.rb-hero.rb-hero-slim .rb-hero-microtrust {
	justify-content: center;
}
.rb-hero.rb-hero-slim .rb-hero-visual {
	display: none !important;
}
@media (max-width: 980px) {
	.rb-hero.rb-hero-slim { padding: 50px 0 40px !important; }
}
