/* =========================================================
   Risingsun main.css
   モック準拠: 白背景・ピンク〜紫〜オレンジのグラデーション・清潔感
   モバイルファースト
   ========================================================= */

:root {
	--rs-pink: #ec4d8b;
	--rs-magenta: #e0326e;
	--rs-purple: #8b5cf6;
	--rs-blue: #4f7cf6;
	--rs-orange: #f7a049;
	--rs-grad: linear-gradient(100deg, #f97fb5 0%, #b78bf3 55%, #f7a049 100%);
	--rs-grad-cta: linear-gradient(100deg, #ee5a8c 0%, #f7749d 50%, #f7a049 100%);
	--rs-text: #33343d;
	--rs-text-weak: #6b6d7a;
	--rs-bg: #ffffff;
	--rs-bg-soft: #fdf5f9;
	--rs-border: #f0dbe6;
	--rs-radius: 14px;
	--rs-shadow: 0 6px 24px rgba(190, 80, 140, 0.12);
	--rs-font: "M PLUS Rounded 1c", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Yu Gothic", Meiryo, system-ui, sans-serif;
	--rs-container: 1400px; /* 指示: max-width 1400px / width 94% */
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--rs-font);
	color: var(--rs-text);
	background: var(--rs-bg);
	line-height: 1.8;
	overflow-x: hidden;
}
img { max-width: 100%; height: auto; }
a { color: var(--rs-magenta); text-decoration: none; }
a:hover { opacity: 0.85; }
:focus-visible { outline: 3px solid var(--rs-purple); outline-offset: 2px; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}
.rs-skip-link:focus {
	position: fixed; top: 8px; left: 8px;
	width: auto; height: auto;
	clip: auto; margin: 0;
	background: #fff; padding: 8px 16px;
	z-index: 1000; border-radius: 6px;
}

.rs-container { max-width: var(--rs-container); width: 94%; margin: 0 auto; padding: 24px 0 48px; }

/* ---------- ボタン ---------- */
.rs-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 26px;
	border-radius: 999px;
	font-weight: 700;
	font-size: 15px;
	line-height: 1.4;
	transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
	cursor: pointer;
	border: 2px solid transparent;
	text-align: center;
	white-space: nowrap;
}
.rs-btn:hover { transform: translateY(-2px); opacity: 1; }
.rs-btn--primary { background: var(--rs-grad-cta); color: #fff; box-shadow: 0 6px 18px rgba(224, 50, 110, 0.35); }
.rs-btn--primary:hover { box-shadow: 0 10px 24px rgba(224, 50, 110, 0.45); }
.rs-btn--outline { border-color: var(--rs-magenta); color: var(--rs-magenta); background: #fff; }
.rs-btn--ghost { border-color: var(--rs-pink); color: var(--rs-magenta); background: rgba(255, 255, 255, 0.8); }
.rs-btn--white { background: #fff; color: var(--rs-magenta); box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15); }
.rs-btn--ghost-white { border-color: #fff; color: #fff; background: transparent; }
.rs-btn--lg { padding: 16px 36px; font-size: 17px; }
.rs-btn--sm { padding: 8px 18px; font-size: 13px; }
.rs-btn__icon { flex-shrink: 0; }

/* ---------- 新着情報バー ---------- */
.rs-newsbar { background: #fff; border-bottom: 1px solid var(--rs-border); font-size: 12px; }
.rs-newsbar__track { max-width: 100%; margin: 0 auto; position: relative; min-height: 38px; }
.rs-newsbar__item {
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	color: var(--rs-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
/* スマホ: 1件ずつ自動切替 / PC: モック同様に複数件を横並び表示 */
.rs-newsbar__item { display: none; }
.rs-newsbar__item.is-active { display: flex; }
@media (min-width: 900px) {
	.rs-newsbar__track { display: flex; }
	.rs-newsbar__item, .rs-newsbar__item.is-active { display: flex; flex: 1 1 0; min-width: 0; }
	.rs-newsbar__item + .rs-newsbar__item { border-left: 1px solid var(--rs-border); }
	.rs-newsbar__item::after { content: "›"; margin-left: auto; color: var(--rs-text-weak); }
}
.rs-newsbar__badge {
	flex-shrink: 0;
	color: #fff;
	background: var(--rs-magenta);
	border-radius: 4px;
	padding: 1px 8px;
	font-size: 11px;
	font-weight: 700;
}
.rs-newsbar__badge--event { background: var(--rs-orange); }
.rs-newsbar__badge--campaign { background: var(--rs-purple); }
.rs-newsbar__badge--audition { background: var(--rs-blue); }
.rs-newsbar__badge--important { background: #d63638; }
.rs-newsbar__date { color: var(--rs-text-weak); flex-shrink: 0; }
.rs-newsbar__title { overflow: hidden; text-overflow: ellipsis; }

/* ---------- ヘッダー ---------- */
.rs-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, 0.94);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--rs-border);
}
.rs-header__inner {
	max-width: var(--rs-container);
	width: 94%;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 6px 0;
	min-height: 56px;
}
.rs-header__brand { display: flex; align-items: baseline; gap: 10px; margin-right: auto; }
.rs-header__logo, .rs-footer__logo {
	font-size: 24px;
	font-weight: 800;
	font-style: italic;
	color: var(--rs-text);
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.rs-header__sun {
	width: 22px; height: 22px;
	border-radius: 50%;
	background: var(--rs-grad-cta);
	display: inline-block;
	box-shadow: 0 0 0 3px rgba(247, 160, 73, 0.35);
}
.rs-header__note { font-size: 11px; color: var(--rs-text-weak); }
.rs-nav__list { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; }
.rs-nav__list a {
	display: block;
	padding: 8px 12px;
	color: var(--rs-text);
	font-size: 14px;
	font-weight: 600;
	border-radius: 6px;
	white-space: nowrap;
}
.rs-nav__list a:hover { background: var(--rs-bg-soft); color: var(--rs-magenta); opacity: 1; }
/* 現在ページ: ピンク下線(モック準拠) */
.rs-nav__list .current-menu-item > a,
.rs-nav__list .current_page_item > a {
	color: var(--rs-magenta);
	border-bottom: 2px solid var(--rs-magenta);
	border-radius: 6px 6px 0 0;
}
.rs-hamburger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px; height: 44px;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 10px;
}
.rs-hamburger span { display: block; height: 2px; background: var(--rs-text); border-radius: 2px; transition: transform 0.25s, opacity 0.25s; }
.rs-hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.rs-hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.rs-hamburger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 900px) {
	.rs-header__note { display: none; }
	.rs-hamburger { display: flex; }
	.rs-header__nav {
		display: none;
		position: absolute;
		top: 100%; left: 0; right: 0;
		background: #fff;
		border-bottom: 1px solid var(--rs-border);
		box-shadow: var(--rs-shadow);
		padding: 12px 20px;
	}
	.rs-header__nav.is-open { display: block; }
	.rs-nav__list { flex-direction: column; gap: 0; }
	.rs-nav__list a { padding: 12px 8px; border-bottom: 1px dashed var(--rs-border); }
	.rs-header__cta .rs-btn { padding: 8px 14px; font-size: 12px; }
}

/* ---------- パンくず ---------- */
.rs-breadcrumbs { max-width: var(--rs-container); width: 94%; margin: 0 auto; padding: 10px 0 0; font-size: 12px; color: var(--rs-text-weak); }
.rs-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 4px; list-style: none; margin: 0; padding: 0; }
.rs-breadcrumbs li:not(:last-child)::after { content: "›"; margin-left: 4px; }
.rs-breadcrumbs a { color: var(--rs-text-weak); }

/* ---------- ヒーロー(モック準拠: 白基調・黒文字・最終行グラデ文字) ---------- */
.rs-hero {
	position: relative;
	overflow: hidden;
	color: var(--rs-text);
	background:
		radial-gradient(circle at 88% 15%, rgba(183, 139, 243, 0.28) 0, transparent 34%),
		radial-gradient(circle at 70% 85%, rgba(249, 127, 181, 0.22) 0, transparent 40%),
		linear-gradient(100deg, #ffffff 0%, #fdf3f8 45%, #f4e9fb 75%, #fdeedd 100%);
}
.rs-hero__inner {
	max-width: var(--rs-container);
	width: 94%;
	margin: 0 auto;
	padding: 36px 0;
	position: relative;
	z-index: 2;
}
.rs-hero__label { font-weight: 700; letter-spacing: 0.1em; margin: 0 0 8px; color: var(--rs-text); }
.rs-hero__catch {
	font-size: clamp(30px, 6vw, 54px);
	font-weight: 900;
	line-height: 1.35;
	margin: 0 0 16px;
	color: var(--rs-text);
}
.rs-hero__catch-line, .rs-hero__catch-accent { display: block; }
.rs-hero__catch-accent {
	background: linear-gradient(95deg, #e0326e 0%, #c65ad1 50%, #f7a049 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.rs-hero__sub { font-size: clamp(14px, 2vw, 17px); margin: 0 0 24px; color: var(--rs-text-weak); }
.rs-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; }
/* 装飾(音符・ハート・波形・キラキラ) */
.rs-hero__deco { position: absolute; z-index: 1; pointer-events: none; }
.rs-hero__deco--note { top: 18%; right: 8%; font-size: 30px; color: var(--rs-purple); opacity: 0.7; transform: rotate(12deg); }
.rs-hero__deco--heart { top: 8%; right: 44%; font-size: 22px; color: var(--rs-pink); opacity: 0.7; }
.rs-hero__deco--sparkle { bottom: 16%; right: 3%; font-size: 24px; color: var(--rs-orange); opacity: 0.8; }
.rs-hero__deco--wave {
	left: 12px; bottom: 24px;
	width: 90px; height: 34px;
	background: repeating-linear-gradient(90deg, var(--rs-pink) 0 4px, transparent 4px 10px);
	-webkit-mask-image: linear-gradient(0deg, transparent 0, #000 30%, #000 70%, transparent 100%);
	mask-image: linear-gradient(0deg, transparent 0, #000 30%, #000 70%, transparent 100%);
	opacity: 0.45;
	border-radius: 3px;
}

/* ヒーロー画像: 横長ビジュアルをセクション全面(右寄せ)に敷く。モバイルはテキスト下に全幅 */
.rs-hero__visual { position: relative; z-index: 1; }
.rs-hero__visual img {
	display: block;
	width: 100%;
	height: auto;
}
@media (min-width: 900px) {
	/* 横長ヒーロー: 縦に大きくしすぎない(指示3) */
	.rs-hero.has-visual { min-height: 500px; max-height: 600px; display: flex; align-items: center; }
	/* 下端はアプリ帯が重なるため余白を確保 */
	.rs-hero.has-visual .rs-hero__inner { padding: 36px 0 130px; }
	.rs-hero.has-visual .rs-hero__body { max-width: 46%; }
	/* 画像はヒーロー全面に敷き、右寄せで人物を見せる(モックのs001系ワイド画像前提) */
	.rs-hero.has-visual .rs-hero__visual {
		position: absolute;
		inset: 0;
		z-index: 0;
	}
	.rs-hero.has-visual .rs-hero__visual img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: right center;
	}
	/* テキスト可読性のため左側に白グラデーションを重ねる */
	.rs-hero.has-visual .rs-hero__visual::after {
		content: "";
		position: absolute;
		inset: 0;
		background: linear-gradient(90deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 255, 255, 0.72) 32%, rgba(255, 255, 255, 0) 58%);
	}
	/* 装飾は画像側に含まれるため、画像がある場合はCSS装飾を出さない */
	.rs-hero.has-visual .rs-hero__deco { display: none; }
	.rs-hero:not(.has-visual) .rs-hero__inner { padding: 64px 0; }
}

/* ---------- セクション共通(モックは白基調・見出し左寄せ・高密度) ---------- */
.rs-sec { padding: 16px 0 26px; background: #fff; }
.rs-sec__inner { max-width: var(--rs-container); width: 94%; margin: 0 auto; padding: 0; }
.rs-sec__label { text-align: center; font-weight: 700; color: var(--rs-text-weak); margin: 0 0 16px; }
.rs-sec__label--left { text-align: left; color: var(--rs-text); font-size: 14px; }
.rs-sec__title {
	font-size: clamp(18px, 2.6vw, 22px);
	font-weight: 800;
	margin: 0 0 12px;
	color: var(--rs-text);
}
/* 左寄せ見出しの右に細いライン(モック準拠) */
.rs-sec__title:not(.rs-sec__title--dots) { display: flex; align-items: center; gap: 16px; }
.rs-sec__title:not(.rs-sec__title--dots)::after {
	content: "";
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, rgba(51, 52, 61, 0.18), rgba(51, 52, 61, 0));
}
.rs-sec__title--dots {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	font-size: clamp(21px, 3.4vw, 27px);
	margin-bottom: 22px;
}
.rs-sec__dots { width: 40px; height: 6px; background: radial-gradient(circle, var(--rs-pink) 2.5px, transparent 3px); background-size: 12px 6px; background-repeat: repeat-x; }
.rs-sec__more { text-align: center; margin-top: 14px; font-weight: 700; font-size: 13px; }

/* ---------- 対応アプリ(モック準拠: アイコン+名前を内包した白カードを1行等幅) ---------- */
.rs-sec--apps { padding: 12px 0 26px; }
/* ヒーロー表示時は下端に重ねて配置(背景にヒーローが見える・PCのみ) */
.rs-sec--apps.is-overlap { background: transparent; position: relative; z-index: 5; }
@media (min-width: 900px) {
	.rs-sec--apps.is-overlap { margin-top: -92px; }
}
/* ラベル右にラインを伸ばす(モック準拠) */
.rs-sec__label--left {
	display: flex;
	align-items: center;
	gap: 12px;
	text-align: left;
	color: var(--rs-text);
	font-size: 13px;
	font-weight: 700;
	margin: 0 0 10px;
}
.rs-sec__label--left::after {
	content: "";
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, rgba(236, 77, 139, 0.45), rgba(236, 77, 139, 0));
}
.rs-apps { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 10px; list-style: none; margin: 0; padding: 0; }
@media (min-width: 900px) {
	.rs-apps { grid-template-columns: repeat(var(--rs-apps-count, 9), 1fr); gap: 14px; }
}
.rs-apps__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	background: #fff;
	border: 1px solid #f2e6ec;
	border-radius: 12px;
	box-shadow: 0 3px 10px rgba(190, 80, 140, 0.08);
	padding: 12px 6px 9px;
	text-align: center;
	font-size: 10.5px;
	transition: transform 0.2s;
	height: 100%;
}
.rs-apps__item:hover { transform: translateY(-3px); }
.rs-apps__icon {
	width: 38px; height: 38px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	border-radius: 9px;
}
.rs-apps__icon img { width: 100%; height: 100%; object-fit: contain; }
.rs-apps__icon--text { font-size: 20px; font-weight: 800; color: var(--rs-magenta); background: var(--rs-bg-soft); }
.rs-apps__name { color: var(--rs-text); font-weight: 700; line-height: 1.3; }
.rs-apps__desc { color: var(--rs-text-weak); font-size: 10px; }

/* ---------- 所属者カード(モック準拠: 写真左・テキスト右の横長カード) ---------- */
.rs-talent-grid { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 700px) { .rs-talent-grid { grid-template-columns: repeat(3, 1fr); } }
.rs-talent-card {
	background: #fff;
	border-radius: var(--rs-radius);
	overflow: hidden;
	box-shadow: var(--rs-shadow);
	transition: transform 0.25s;
	display: grid;
	grid-template-columns: 42% 1fr;
	min-height: 150px;
}
.rs-talent-card:hover { transform: translateY(-4px); }
.rs-talent-card__thumb { display: block; background: var(--rs-bg-soft); height: 100%; min-height: 150px; }
.rs-talent-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.rs-talent-card__noimg {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%; height: 100%;
	font-size: 56px;
	font-weight: 800;
	color: #fff;
	background: var(--rs-grad);
	min-height: 240px;
}
.rs-talent-card__body { padding: 12px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rs-talent-card__name { font-size: 14px; font-weight: 800; margin: 0; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.rs-talent-card__catch { color: var(--rs-magenta); font-weight: 700; font-size: 11px; margin: 0; }
.rs-talent-card__text {
	font-size: 10.5px;
	line-height: 1.6;
	color: var(--rs-text-weak);
	margin: 0;
	flex: 1;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.rs-talent-card .rs-btn { align-self: stretch; }
.rs-badge {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	border-radius: 999px;
	padding: 2px 10px;
	background: var(--rs-bg-soft);
	color: var(--rs-magenta);
}
.rs-badge.is-liver { background: #fde8f0; color: var(--rs-magenta); }
.rs-badge.is-voice { background: #e8edfd; color: var(--rs-blue); }
.rs-talent-card.is-voice .rs-btn--outline { border-color: var(--rs-blue); color: var(--rs-blue); }

/* ---------- 事務所紹介・カード ---------- */
.rs-about { display: grid; gap: 20px; }
.rs-about__cards { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; }
.rs-card-grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }

/* 事務所紹介4カード: モック準拠(大アイコン左・タイトル右・本文右下、淡色背景) */
.rs-feature-card--tint {
	border: none;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 2px 14px;
	align-items: start;
	padding: 18px 16px;
}
.rs-feature-card--tint .rs-feature-card__icon {
	grid-row: 1 / 3;
	align-self: center;
	width: auto;
	height: auto;
	background: none !important;
	border-radius: 0;
}
.rs-feature-card--tint .rs-feature-card__icon .rs-icon { width: 46px; height: 46px; }
.rs-feature-card--tint h3 { grid-column: 2; margin: 0 0 2px; font-size: 15px; }
.rs-feature-card--tint p { grid-column: 2; font-size: 12px; line-height: 1.8; color: var(--rs-text); }
.rs-about__cards > :nth-child(4n+1) { background: #fdeef4; }
.rs-about__cards > :nth-child(4n+1) .rs-feature-card__icon { color: var(--rs-magenta); background: #fff; }
.rs-about__cards > :nth-child(4n+2) { background: #edf2fd; }
.rs-about__cards > :nth-child(4n+2) .rs-feature-card__icon { color: var(--rs-blue); background: #fff; }
.rs-about__cards > :nth-child(4n+3) { background: #eaf7ef; }
.rs-about__cards > :nth-child(4n+3) .rs-feature-card__icon { color: #38b48b; background: #fff; }
.rs-about__cards > :nth-child(4n+4) { background: #f4eefc; }
.rs-about__cards > :nth-child(4n+4) .rs-feature-card__icon { color: var(--rs-purple); background: #fff; }
.rs-about__cards > :nth-child(4n+1) h3 { color: var(--rs-magenta); }
.rs-about__cards > :nth-child(4n+2) h3 { color: var(--rs-blue); }
.rs-about__cards > :nth-child(4n+3) h3 { color: #2e9e77; }
.rs-about__cards > :nth-child(4n+4) h3 { color: var(--rs-purple); }

/* 正規代理店シールドバッジ(モック右カラム) */
.rs-about__badge {
	background: #fff;
	border: 1px solid var(--rs-border);
	border-radius: var(--rs-radius);
	box-shadow: 0 3px 14px rgba(190, 80, 140, 0.08);
	padding: 16px 14px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
}
.rs-about__ribbon {
	display: inline-block;
	background: linear-gradient(90deg, #d4a017, #f5d576, #d4a017);
	color: #6b4e00;
	font-weight: 800;
	font-size: 12px;
	letter-spacing: 0.2em;
	border-radius: 999px;
	padding: 3px 18px;
}
.rs-about__badge p { margin: 0; font-weight: 700; font-size: 14px; }
.rs-card-grid--wide { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.rs-feature-card {
	background: #fff;
	border-radius: var(--rs-radius);
	border: 1px solid var(--rs-border);
	padding: 16px;
	box-shadow: 0 3px 14px rgba(190, 80, 140, 0.08);
	transition: transform 0.25s;
}
.rs-feature-card:hover { transform: translateY(-4px); }
.rs-feature-card--outline { border: 2px solid var(--rs-border); box-shadow: none; }
.rs-feature-card h2, .rs-feature-card h3 { font-size: 15px; margin: 8px 0 6px; }
.rs-feature-card p { font-size: 12px; color: var(--rs-text-weak); margin: 0; }
.rs-feature-card__icon {
	display: inline-flex;
	width: 52px; height: 52px;
	align-items: center;
	justify-content: center;
	border-radius: 14px;
	background: var(--rs-bg-soft);
	color: var(--rs-magenta);
}

/* サポート内容: モック準拠のアイコン左・横型コンパクトカード */
.rs-sec--support .rs-card-grid { grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); gap: 12px; }
.rs-sec--support .rs-feature-card {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 2px 10px;
	align-items: start;
	padding: 14px 12px;
}
/* モック: アイコンは枠なし・大きくカラフル */
.rs-sec--support .rs-feature-card__icon { grid-row: span 2; width: auto; height: auto; background: none !important; border-radius: 0; align-self: center; }
.rs-sec--support .rs-feature-card__icon .rs-icon { width: 44px; height: 44px; }
.rs-sec--support .rs-feature-card h3 { grid-column: 2; font-size: 13px; margin: 2px 0 0; line-height: 1.4; }
.rs-sec--support .rs-feature-card p { grid-column: 2; font-size: 11px; line-height: 1.6; }

/* サポート内容: モックのアイコン色サイクル(ピンク/紫/黄/緑/青/オレンジ) */
.rs-sec--support .rs-card-grid > :nth-child(6n+1) .rs-feature-card__icon { color: var(--rs-magenta); }
.rs-sec--support .rs-card-grid > :nth-child(6n+2) .rs-feature-card__icon { color: var(--rs-purple); }
.rs-sec--support .rs-card-grid > :nth-child(6n+3) .rs-feature-card__icon { color: #e8b006; }
.rs-sec--support .rs-card-grid > :nth-child(6n+4) .rs-feature-card__icon { color: #38b48b; }
.rs-sec--support .rs-card-grid > :nth-child(6n+5) .rs-feature-card__icon { color: var(--rs-blue); }
.rs-sec--support .rs-card-grid > :nth-child(6n+6) .rs-feature-card__icon { color: var(--rs-orange); }

/* 選ばれる理由: モック準拠(大アイコン左・色付き見出し+説明が右・色付き薄枠の丸角カード) */
.rs-sec--reasons .rs-card-grid { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; }
.rs-sec--reasons .rs-feature-card { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; align-items: start; padding: 16px 14px; border-radius: 16px; border-width: 1.5px; }
.rs-sec--reasons .rs-feature-card__icon { grid-row: 1 / 3; align-self: center; width: auto; height: auto; border-radius: 0; background: transparent; }
.rs-sec--reasons .rs-feature-card__icon .rs-icon { width: 42px; height: 42px; }
.rs-sec--reasons .rs-feature-card h3 { grid-column: 2; font-size: 14px; margin: 0; line-height: 1.45; }
.rs-sec--reasons .rs-feature-card p { grid-column: 2; font-size: 11.5px; line-height: 1.7; color: var(--rs-text); }

/* 選ばれる理由: モックのカード色サイクル(枠・見出し・アイコン) */
.rs-sec--reasons .rs-card-grid > :nth-child(4n+1) { border-color: #f5c3d7; }
.rs-sec--reasons .rs-card-grid > :nth-child(4n+1) h3, .rs-sec--reasons .rs-card-grid > :nth-child(4n+1) .rs-feature-card__icon { color: var(--rs-magenta); }
.rs-sec--reasons .rs-card-grid > :nth-child(4n+2) { border-color: #d4c3f5; }
.rs-sec--reasons .rs-card-grid > :nth-child(4n+2) h3, .rs-sec--reasons .rs-card-grid > :nth-child(4n+2) .rs-feature-card__icon { color: var(--rs-purple); }
.rs-sec--reasons .rs-card-grid > :nth-child(4n+3) { border-color: #bfe5d4; }
.rs-sec--reasons .rs-card-grid > :nth-child(4n+3) h3, .rs-sec--reasons .rs-card-grid > :nth-child(4n+3) .rs-feature-card__icon { color: #2e9e77; }
.rs-sec--reasons .rs-card-grid > :nth-child(4n+4) { border-color: #f7d9b8; }
.rs-sec--reasons .rs-card-grid > :nth-child(4n+4) h3, .rs-sec--reasons .rs-card-grid > :nth-child(4n+4) .rs-feature-card__icon { color: var(--rs-orange); }
.rs-about__info {
	background: #fff;
	border-radius: var(--rs-radius);
	border: 1px solid var(--rs-border);
	padding: 22px;
}
.rs-about__dl { margin: 0; }
.rs-about__dl > div, .rs-footer__info > div { display: flex; gap: 12px; padding: 6px 0; border-bottom: 1px dashed var(--rs-border); font-size: 14px; }
.rs-about__dl dt, .rs-footer__info dt { font-weight: 700; min-width: 6em; margin: 0; }
.rs-about__dl dd, .rs-footer__info dd { margin: 0; }
.rs-about__agency {
	margin: 16px 0 0;
	font-weight: 700;
	color: var(--rs-purple);
	background: #f5f0fd;
	border-radius: 8px;
	padding: 10px 14px;
	text-align: center;
}
.rs-about__message { background: #fff; border-radius: var(--rs-radius); border: 1px solid var(--rs-border); padding: 22px; margin-top: 24px; }
/* 運営者情報カード: 写真背景+白帯の行リスト(モック準拠) */
.rs-about__info {
	background: linear-gradient(135deg, #dfe9f5 0%, #eef2f8 55%, #fdf0f7 100%);
	background-size: cover;
	background-position: left center;
	border: 1px solid #e3e9f5;
	border-radius: var(--rs-radius);
	padding: 18px;
	display: flex;
	align-items: center;
}
.rs-about__rows { list-style: none; margin: 0; padding: 0; width: 100%; max-width: 480px; margin-left: auto; }
.rs-about__rows li {
	display: flex;
	align-items: center;
	gap: 10px;
	background: rgba(255, 255, 255, 0.92);
	border-radius: 8px;
	padding: 8px 14px;
	margin: 8px 0;
	font-size: 13px;
	box-shadow: 0 1px 5px rgba(40, 60, 100, 0.08);
}
.rs-about__ricon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px; height: 28px;
	border: 1.5px solid #9aa7bd;
	border-radius: 50%;
	color: #6b7a94;
	flex-shrink: 0;
}
.rs-about__rlabel { font-weight: 700; }
@media (min-width: 900px) {
	.rs-about { grid-template-columns: 1.15fr 1fr; }
	.rs-about.has-badge { grid-template-columns: 1.15fr 1fr 0.55fr; }
}

/* ---------- 数字 ---------- */
.rs-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; list-style: none; margin: 0; padding: 0; }
.rs-numbers__item {
	background: #fff;
	border-radius: var(--rs-radius);
	box-shadow: var(--rs-shadow);
	padding: 14px 28px;
	text-align: center;
	min-width: 180px;
}
.rs-numbers__label { display: block; font-size: 12px; color: var(--rs-text-weak); font-weight: 700; }
.rs-numbers__value { font-size: 32px; font-weight: 900; color: var(--rs-magenta); }
.rs-numbers__value small { font-size: 14px; color: var(--rs-text); }

/* ---------- ブログ ---------- */
.rs-carousel { position: relative; }
.rs-carousel__track {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	list-style: none;
	margin: 0; padding: 4px 4px 10px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none; /* スクロール可能のままバーだけ非表示(モック準拠) */
}
.rs-carousel__track::-webkit-scrollbar { display: none; }
/* モック同様にPCで5枚見える幅(1400px時 約260px) */
.rs-carousel__slide { flex: 0 0 calc(20% - 13px); min-width: 210px; scroll-snap-align: start; }
@media (max-width: 600px) { .rs-carousel__slide { flex-basis: 240px; } }
.rs-carousel__nav {
	position: absolute;
	top: 40%;
	transform: translateY(-50%);
	width: 40px; height: 40px;
	border-radius: 50%;
	border: 0;
	background: var(--rs-magenta);
	color: #fff;
	font-size: 22px;
	cursor: pointer;
	z-index: 2;
	box-shadow: var(--rs-shadow);
}
.rs-carousel__nav--prev { left: -8px; }
.rs-carousel__nav--next { right: -8px; }
.rs-post-grid { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.rs-post-card {
	background: #fff;
	border-radius: var(--rs-radius);
	overflow: hidden;
	box-shadow: var(--rs-shadow);
	transition: transform 0.25s;
	height: 100%;
}
.rs-post-card:hover { transform: translateY(-4px); }
.rs-post-card__link { display: flex; flex-direction: column; height: 100%; color: var(--rs-text); padding-bottom: 12px; }
.rs-post-card__thumb { position: relative; display: block; aspect-ratio: 16 / 10; background: var(--rs-bg-soft); }
.rs-post-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.rs-post-card__noimg {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%; height: 100%;
	font-weight: 800;
	font-style: italic;
	color: #fff;
	background: var(--rs-grad);
}
.rs-post-card__cat {
	position: absolute;
	left: 10px; bottom: 10px;
	background: var(--rs-magenta);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	border-radius: 4px;
	padding: 2px 8px;
}
/* カテゴリバッジの色サイクル(モック準拠: ピンク実色+淡色ピル) */
.rs-post-card__cat.rs-cat-c0 { background: var(--rs-pink); color: #fff; }
.rs-post-card__cat.rs-cat-c1 { background: #dbe7fd; color: #3b62c9; }
.rs-post-card__cat.rs-cat-c2 { background: #fbdaea; color: #d23b77; }
.rs-post-card__cat.rs-cat-c3 { background: #e8def7; color: #7343c9; }
.rs-post-card__cat.rs-cat-c4 { background: #fdead2; color: #c77a1e; }
/* 画像右上の日付帯(モック準拠) */
.rs-post-card__date-tag {
	position: absolute;
	right: 8px; top: 8px;
	background: rgba(255, 255, 255, 0.92);
	color: var(--rs-text);
	font-size: 11px;
	font-weight: 600;
	border-radius: 4px;
	padding: 2px 8px;
}
.rs-post-card__date { font-size: 12px; color: var(--rs-text-weak); padding: 12px 16px 0; }
.rs-post-card__title { font-size: 13px; font-weight: 700; margin: 10px 0 4px; padding: 0 14px; line-height: 1.5; }
.rs-post-card__excerpt {
	font-size: 12px;
	color: var(--rs-text-weak);
	margin: 0;
	padding: 0 16px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	padding-bottom: 2px;
}
/* 事務所ブログのカルーセルはモック準拠のフラットカード
   (白箱・影なし。角丸画像+左下バッジ+右下白文字日付+下にタイトル/説明) */
.rs-carousel .rs-post-card { background: transparent; box-shadow: none; border-radius: 0; }
.rs-carousel .rs-post-card:hover { transform: none; }
.rs-carousel .rs-post-card__link { padding-bottom: 0; }
.rs-carousel .rs-post-card__thumb { border-radius: 10px; overflow: hidden; box-shadow: 0 3px 12px rgba(120, 60, 100, 0.14); }
.rs-carousel .rs-post-card__title { padding: 0; margin: 10px 0 4px; font-size: 14px; line-height: 1.55; }
.rs-carousel .rs-post-card__excerpt { padding: 0; font-size: 11.5px; }
.rs-carousel .rs-post-card__cat {
	left: 8px;
	bottom: 8px;
	border-radius: 999px;
	padding: 2px 12px;
	font-size: 10.5px;
}
.rs-carousel .rs-post-card__date-tag {
	top: auto;
	bottom: 8px;
	right: 10px;
	background: transparent;
	color: #fff;
	font-weight: 700;
	font-size: 11px;
	padding: 0;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}
/* ブログ一覧: 2列リスト+右側プロモカード(モック準拠)
   ※multicol(columns)はChromeでレンダリングが固まる不具合を確認したためGridで実装 */
.rs-blog-bottom { display: grid; gap: 24px; align-items: start; }
.rs-bloglist { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.rs-bloglist li { margin: 0; min-width: 0; }
.rs-bloglist a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 7px 12px;
	border: 1px solid #eee3ea;
	border-radius: 8px;
	background: #fff;
	color: var(--rs-text);
	font-size: 13px;
}
.rs-bloglist a:hover { color: var(--rs-magenta); border-color: var(--rs-pink); opacity: 1; }
.rs-bloglist__num { font-weight: 800; color: var(--rs-pink); font-size: 12px; }
.rs-bloglist__title { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rs-bloglist__arrow { color: var(--rs-text-weak); }
.rs-bloglist__date { font-size: 12px; color: var(--rs-text-weak); white-space: nowrap; }
.rs-blog-promo {
	border: 2px solid var(--rs-pink);
	border-radius: var(--rs-radius);
	background: linear-gradient(135deg, #fff5fa 0%, #fdeef4 100%);
	padding: 20px 18px;
	text-align: center;
}
.rs-blog-promo__text { font-weight: 800; font-size: 15px; color: var(--rs-magenta); margin: 0 0 14px; position: relative; }
.rs-blog-promo__deco { position: absolute; top: -10px; right: 4px; color: var(--rs-orange); }
@media (min-width: 900px) {
	.rs-blog-bottom { grid-template-columns: 2fr 1fr; }
	/* モック同様に 01→下 の縦順で2列に流す */
	.rs-bloglist { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(var(--rs-rows, 5), auto); grid-auto-flow: column; column-gap: 20px; }
}

/* ---------- CTA帯 ---------- */
.rs-ctaband { background: var(--rs-grad-cta); color: #fff; padding: 34px 20px; position: relative; overflow: hidden; }
/* 中間CTA: モック準拠(角丸帯・左オレンジ→右ピンク・白ピルボタン) */
.rs-ctaband--mid {
	background: linear-gradient(100deg, #f7a049 0%, #ee4a5e 45%, #e0326e 100%);
	width: 96%;
	max-width: 1560px;
	margin: 0 auto;
	border-radius: 26px;
	padding: 30px 20px;
}
.rs-ctaband__btns .rs-btn--white { color: var(--rs-text); }
.rs-ctaband__btns .rs-btn--white .rs-btn__icon { color: var(--rs-magenta); }
/* 左右の人物写真(帯の下端揃え・幅固定。管理画面で設定・未設定時は非表示) */
.rs-ctaband__person { position: absolute; top: 0; bottom: 0; width: 150px; display: none; align-items: flex-end; z-index: 1; }
.rs-ctaband__person picture { display: block; width: 100%; }
.rs-ctaband__person img { display: block; width: 100%; height: auto; }
.rs-ctaband__person--left { left: 14px; }
.rs-ctaband__person--right { right: 14px; }
.rs-ctaband__inner { position: relative; z-index: 2; }
@media (min-width: 1100px) {
	.rs-ctaband__person { display: flex; }
	.rs-ctaband--mid .rs-ctaband__inner { padding: 0 170px; }
}
.rs-ctaband__deco { margin-right: 10px; color: #fff; opacity: 0.9; }

/* 最終CTA: モック準拠(紫〜ピンクの角丸帯・横1行・白ピルボタン) */
.rs-ctaband--last {
	background: linear-gradient(100deg, #ef6fae 0%, #9a63ee 42%, #c05ecf 70%, #f078b0 100%);
	width: 96%;
	max-width: 1560px;
	margin: 0 auto;
	border-radius: 18px;
	padding: 26px 20px;
}
.rs-ctaband--last .rs-ctaband__inner {
	flex-direction: row;
	flex-wrap: wrap;
	text-align: left;
	justify-content: space-between;
	align-items: center;
}
.rs-ctaband--last .rs-ctaband__catch { font-size: clamp(18px, 2.6vw, 26px); }
.rs-ctaband--last .rs-ctaband__sub { font-size: 12.5px; margin-top: 4px; opacity: 0.95; }
.rs-ctaband--last .rs-btn--white { color: var(--rs-text); }
.rs-ctaband--last .rs-btn--white .rs-btn__icon,
.rs-ctaband--last .rs-btn--white .rs-icon { color: var(--rs-blue); }
/* 白い音声波形の装飾(モックの雰囲気・上品に) */
.rs-ctaband__wave {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 120px;
	height: 46px;
	background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.7) 0 3px, transparent 3px 9px);
	-webkit-mask-image: linear-gradient(0deg, transparent 0, #000 30%, #000 70%, transparent 100%), linear-gradient(90deg, transparent 0, #000 20%, #000 80%, transparent 100%);
	-webkit-mask-composite: source-in;
	mask-image: linear-gradient(0deg, transparent 0, #000 30%, #000 70%, transparent 100%), linear-gradient(90deg, transparent 0, #000 20%, #000 80%, transparent 100%);
	mask-composite: intersect;
	border-radius: 4px;
	opacity: 0.55;
	pointer-events: none;
}
.rs-ctaband__wave--left { left: 22px; }
.rs-ctaband__wave--right { right: 22px; }
@media (max-width: 900px) { .rs-ctaband__wave { display: none; } }
/* LINE風アイコン(緑の角丸) */
.rs-line-dot {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px; height: 24px;
	border-radius: 7px;
	background: #06c755;
	color: #fff;
	flex-shrink: 0;
}
.rs-ctaband__inner {
	max-width: var(--rs-container);
	width: 94%;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}
.rs-ctaband__catch { font-size: clamp(18px, 3.4vw, 28px); font-weight: 800; margin: 0; line-height: 1.6; }
.rs-ctaband__sub { margin: 0; }
.rs-ctaband__btns { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- FAQ ---------- */
.rs-faq { display: grid; gap: 9px; }
@media (min-width: 900px) { .rs-sec--faq .rs-faq { grid-template-columns: 1fr 1fr; align-items: start; } }
.rs-faq__item { background: #fff; border: 1px solid var(--rs-border); border-radius: 10px; overflow: hidden; }
.rs-faq__q { margin: 0; font-size: 14px; }
.rs-faq__q button {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 10px 14px;
	background: none;
	border: 0;
	font: inherit;
	font-weight: 700;
	text-align: left;
	cursor: pointer;
	color: var(--rs-text);
}
.rs-faq__q-icon { color: #45464f; display: inline-flex; }
/* ＋はピンクの丸バッジ(モック準拠) */
.rs-faq__toggle {
	margin-left: auto;
	width: 24px; height: 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #fde3ee;
	color: var(--rs-magenta);
	font-weight: 800;
	font-size: 15px;
	flex-shrink: 0;
	transition: transform 0.2s;
}
.rs-faq__q button[aria-expanded="true"] .rs-faq__toggle { transform: rotate(45deg); }
.rs-faq__a { padding: 0 16px 14px 42px; font-size: 14px; color: var(--rs-text-weak); }
.rs-faq__cta { text-align: center; margin-top: 12px; }

/* ---------- 流れ ---------- */
.rs-flow { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; counter-reset: step; }
.rs-flow__step {
	background: #fff;
	border-radius: var(--rs-radius);
	box-shadow: var(--rs-shadow);
	padding: 14px 16px;
	position: relative;
	display: flex;
	gap: 12px;
	align-items: flex-start;
}
.rs-flow__num {
	flex-shrink: 0;
	width: 38px; height: 38px;
	border-radius: 50%;
	background: var(--rs-grad-cta);
	color: #fff;
	font-weight: 800;
	font-size: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.rs-flow__body h3 { margin: 0 0 4px; font-size: 15px; }
.rs-flow__body p { margin: 0; font-size: 11.5px; color: var(--rs-text-weak); }
/* STEP番号・矢印の色サイクル(モック準拠) */
.rs-flow__step:nth-child(4n+1) .rs-flow__num { background: linear-gradient(135deg, #ee5a8c, #f7749d); }
.rs-flow__step:nth-child(4n+2) .rs-flow__num { background: linear-gradient(135deg, #f7a049, #f7bf49); }
.rs-flow__step:nth-child(4n+3) .rs-flow__num { background: linear-gradient(135deg, #4f7cf6, #7b9cf8); }
.rs-flow__step:nth-child(4n+4) .rs-flow__num { background: linear-gradient(135deg, #38b48b, #5cd0a9); }
.rs-flow__step:nth-child(4n+1)::after { color: var(--rs-pink); }
.rs-flow__step:nth-child(4n+2)::after { color: var(--rs-blue); }
.rs-flow__step:nth-child(4n+3)::after { color: #38b48b; }
@media (min-width: 900px) {
	/* モック: 横長カード4枚を1行に並べ、間に色付き矢印 */
	.rs-flow:not(.rs-flow--vertical) { grid-template-columns: repeat(4, 1fr); gap: 28px; }
	.rs-flow:not(.rs-flow--vertical) .rs-flow__step { align-items: center; }
	.rs-flow:not(.rs-flow--vertical) .rs-flow__step:not(:last-child)::after {
		content: "❯";
		position: absolute;
		right: -22px;
		top: 50%;
		transform: translateY(-50%);
		font-size: 22px;
		font-weight: 800;
	}
}

/* ---------- フッター ---------- */
.rs-footer { background: #241f26; color: #eee; margin-top: 0; }
.rs-footer a { color: #f5c1d8; }
.rs-footer__inner {
	max-width: var(--rs-container);
	width: 94%;
	margin: 0 auto;
	padding: 36px 0 20px;
	display: grid;
	gap: 28px;
}
.rs-footer__logo { color: #fff; margin: 0 0 8px; }
.rs-footer__note { font-size: 12px; color: #bbb; }
.rs-footer__heading { font-size: 14px; letter-spacing: 0.08em; color: #f5c1d8; margin: 0 0 12px; }
.rs-footer__menu { list-style: none; margin: 0; padding: 0; font-size: 13px; }
.rs-footer__menu a { display: block; padding: 3px 0; }
.rs-footer__menu a::before { content: "› "; color: #f5c1d8; font-weight: 700; }
/* SNS丸アイコン(モック準拠) */
.rs-footer__sns { display: flex; gap: 10px; list-style: none; margin: 14px 0 0; padding: 0; }
.rs-footer__sns a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px; height: 34px;
	border-radius: 50%;
	background: #3a333d;
	color: #fff;
}
.rs-footer__sns a:hover { background: var(--rs-magenta); opacity: 1; }
/* 運営情報: モック準拠の「ラベル:値」インライン形式 */
.rs-footer__info { list-style: none; margin: 0; padding: 0; font-size: 13px; color: #ddd; }
.rs-footer__info li { padding: 3px 0; }
.rs-footer__info li span { font-weight: 700; color: #fff; }
/* 公式LINE: QR+案内文の横並び(モック準拠) */
.rs-footer__line { display: flex; align-items: center; gap: 14px; font-size: 13px; }
.rs-footer__line p { margin: 0; line-height: 1.9; }
.rs-footer__qr { display: inline-block; background: #fff; border-radius: 6px; padding: 6px; flex-shrink: 0; }
.rs-footer__qr img { display: block; width: 92px; height: 92px; object-fit: contain; }
.rs-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px 24px;
	font-size: 11px;
	color: #999;
	padding: 12px 3%;
	border-top: 1px solid #3a333d;
}
.rs-footer__bottom p { margin: 0; }
.rs-footer__legal a { color: #ccc; }
.rs-footer__legal span { margin: 0 6px; color: #666; }
@media (min-width: 1000px) { .rs-footer__inner { grid-template-columns: 1.1fr 0.9fr 1.5fr 1.1fr; align-items: start; } }
@media (min-width: 600px) and (max-width: 999px) { .rs-footer__inner { grid-template-columns: 1fr 1fr; } }

/* ---------- 記事・下層 ---------- */
.rs-page-title { font-size: clamp(24px, 4vw, 32px); font-weight: 800; margin: 8px 0 24px; }
.rs-single__title { font-size: clamp(22px, 4vw, 30px); line-height: 1.5; margin: 8px 0 20px; }
.rs-single__meta { display: flex; align-items: center; gap: 10px; color: var(--rs-text-weak); font-size: 13px; margin: 0; }
.rs-single__thumb { margin: 0 0 24px; }
.rs-single__thumb img { border-radius: var(--rs-radius); }
.rs-content { font-size: 16px; }
.rs-content h2 { font-size: 22px; border-left: 5px solid var(--rs-pink); padding-left: 12px; margin: 40px 0 16px; }
.rs-content h3 { font-size: 18px; margin: 32px 0 12px; }
.rs-content img { border-radius: 8px; }
.rs-content a { text-decoration: underline; }
.rs-content blockquote { border-left: 4px solid var(--rs-border); margin: 16px 0; padding: 4px 16px; color: var(--rs-text-weak); }
.rs-single__tags { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 24px 0 0; padding: 0; font-size: 13px; }
.rs-single__cta {
	text-align: center;
	background: var(--rs-bg-soft);
	border-radius: var(--rs-radius);
	padding: 28px;
	margin: 36px 0;
	font-weight: 700;
}
.rs-single__nav { display: flex; justify-content: space-between; gap: 16px; font-size: 13px; }
.rs-cat-nav { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 24px; padding: 0; }
.rs-cat-nav a {
	display: block;
	border: 1px solid var(--rs-border);
	border-radius: 999px;
	padding: 6px 16px;
	font-size: 13px;
	font-weight: 600;
	color: var(--rs-text);
}
.rs-cat-nav a[aria-current="page"], .rs-cat-nav a:hover { background: var(--rs-magenta); border-color: var(--rs-magenta); color: #fff; opacity: 1; }
.rs-noresult { text-align: center; color: var(--rs-text-weak); padding: 40px 0; }
.rs-searchform { display: flex; gap: 8px; max-width: 480px; margin: 0 0 28px; }
.rs-searchform input[type="search"] {
	flex: 1;
	border: 1px solid var(--rs-border);
	border-radius: 999px;
	padding: 10px 18px;
	font: inherit;
}
.pagination, .rs-archive .navigation { margin-top: 36px; text-align: center; }
.page-numbers { display: inline-block; min-width: 38px; padding: 8px 10px; border-radius: 8px; border: 1px solid var(--rs-border); margin: 2px; color: var(--rs-text); }
.page-numbers.current { background: var(--rs-magenta); color: #fff; border-color: var(--rs-magenta); }

/* ---------- 所属者詳細 ---------- */
.rs-talent__top { display: grid; gap: 28px; margin-bottom: 36px; }
.rs-talent__photo img { border-radius: var(--rs-radius); box-shadow: var(--rs-shadow); }
.rs-talent__photo .rs-talent-card__noimg { border-radius: var(--rs-radius); min-height: 320px; }
.rs-talent__name { font-size: clamp(26px, 5vw, 38px); margin: 4px 0 8px; }
.rs-talent__catch { color: var(--rs-magenta); font-weight: 700; font-size: 17px; }
.rs-talent__apps { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 12px 0; padding: 0; }
.rs-talent__apps li { background: var(--rs-bg-soft); border-radius: 999px; padding: 4px 14px; font-size: 12px; font-weight: 700; color: var(--rs-magenta); }
.rs-talent.is-voice .rs-talent__catch, .rs-talent.is-voice .rs-talent__apps li { color: var(--rs-blue); }
.rs-talent__links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.rs-talent__sec { margin: 32px 0; }
.rs-talent__sec h2 { font-size: 20px; border-left: 5px solid var(--rs-pink); padding-left: 12px; }
.rs-talent__sec audio { width: 100%; max-width: 480px; }
.rs-related { list-style: none; margin: 0; padding: 0; }
.rs-related li { padding: 8px 0; border-bottom: 1px dashed var(--rs-border); display: flex; gap: 12px; align-items: baseline; }
@media (min-width: 800px) { .rs-talent__top { grid-template-columns: 380px 1fr; } }

/* ---------- イベント・会社情報・お問い合わせ ---------- */
.rs-event-info { background: var(--rs-bg-soft); border-radius: var(--rs-radius); padding: 16px 20px; margin: 0 0 24px; }
.rs-event-info > div { display: flex; gap: 16px; padding: 4px 0; }
.rs-event-info dt { font-weight: 700; min-width: 5em; margin: 0; }
.rs-event-info dd { margin: 0; }
.rs-company-table { width: 100%; border-collapse: collapse; margin: 0 0 28px; }
.rs-company-table th, .rs-company-table td { border: 1px solid var(--rs-border); padding: 12px 16px; text-align: left; font-size: 14px; }
.rs-company-table th { background: var(--rs-bg-soft); width: 28%; }
.rs-contact-cards { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); margin-top: 24px; }
.rs-sitemap section { margin-bottom: 28px; }
.rs-sitemap ul { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 40px; }
@media (max-width: 700px) { .rs-sitemap ul { grid-template-columns: 1fr; } }
.rs-404 { text-align: center; }
.rs-404 .rs-searchform { margin: 24px auto; }
.rs-404__links { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ---------- スマートフォン調整 ---------- */
@media (max-width: 899px) {
	/* ヒーロー: 装飾は非表示(画像側に含まれる)、ボタンは全幅で整える */
	.rs-hero__deco { display: none; }
	.rs-hero__inner { padding: 26px 0 18px; }
	.rs-hero__catch { font-size: clamp(27px, 8vw, 34px); }
	.rs-hero__cta { flex-direction: column; }
	.rs-hero__cta .rs-btn { width: 100%; }
	.rs-hero__visual img {
		width: 100%;
		height: auto;
		min-height: 230px;
		object-fit: cover;
		object-position: right center;
	}
	/* CTA帯: ボタン全幅・余白調整 */
	.rs-ctaband { padding: 24px 18px; }
	.rs-ctaband__btns { width: 100%; flex-direction: column; }
	.rs-ctaband__btns .rs-btn { width: 100%; }
	.rs-ctaband--mid, .rs-ctaband--last { border-radius: 18px; }
	/* カルーセル矢印は小さめに */
	.rs-carousel__nav { width: 34px; height: 34px; font-size: 18px; }
	/* 所属者カードのキャッチは2行まで */
	.rs-talent-card__catch {
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}
	/* 見出しサイズ・行間 */
	.rs-sec__title--dots { gap: 10px; }
	.rs-sec__dots { width: 26px; }
}

/* ---------- アニメーション ---------- */
.rs-fade { opacity: 0; transform: translateY(24px); transition: opacity 0.7s ease, transform 0.7s ease; }
.rs-fade.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.rs-fade { opacity: 1; transform: none; transition: none; }
	.rs-btn, .rs-talent-card, .rs-post-card, .rs-feature-card { transition: none; }
}
