/* RETOUR 駅データベース
 * すべて .rs 配下に限定。テーマ(Cocoon)の既存スタイルは上書きしない。
 * 色は既存トップページ（#c9822e / #eadfce / #fffdf9）に合わせる。
 */
.rs {
	--rs-accent: #c9822e;
	--rs-accent-dark: #a5661d;
	--rs-ink: #333;
	--rs-sub: #6b645c;
	--rs-line: #eadfce;
	--rs-paper: #fffdf9;
	--rs-soft: #f7f2ea;
	color: var(--rs-ink);
}

.rs a { color: inherit; }

/* パンくず */
.rs-crumb { font-size: .82em; color: var(--rs-sub); margin: 0 0 1.2em; }
.rs-crumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .2em; }
.rs-crumb li { margin: 0; padding: 0; }
.rs-crumb li + li::before { content: "›"; margin: 0 .45em 0 .25em; color: #b8ada0; }
.rs-crumb a { color: var(--rs-sub); text-decoration: none; }
.rs-crumb a:hover { text-decoration: underline; }

.rs-lead { font-size: 1.05em; line-height: 1.9; margin: 0 0 1.2em; }

/* 基本情報 */
.rs-dl { margin: 0 0 1.5em; border-top: 1px solid var(--rs-line); }
.rs-dl > div { display: flex; border-bottom: 1px solid var(--rs-line); padding: .7em 0; }
.rs-dl dt { flex: 0 0 9em; font-weight: bold; color: var(--rs-sub); font-size: .92em; }
.rs-dl dd { margin: 0; flex: 1; }

/* ページ内目次 */
.rs-toc { margin: 0 0 2em; }
.rs-toc ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4em .6em; }
.rs-toc li { margin: 0; padding: 0; }
.rs-toc a { display: inline-block; font-size: .88em; padding: .35em .8em; border: 1px solid var(--rs-line); border-radius: 3px; text-decoration: none; background: #fff; }
.rs-toc a:hover { border-color: var(--rs-accent); color: var(--rs-accent-dark); }

/* セクション（テーマの h2 装飾をそのまま使うため h2 には触らない） */
.rs-sec { margin: 2.4em 0; scroll-margin-top: 80px; }
.rs-sec h3 { margin-top: 1.4em; }

/* 家賃相場 */
.rs table.rs-rent { width: 100%; border-collapse: collapse; margin: 0 0 .6em; font-size: 1em; }
.rs table.rs-rent th, .rs table.rs-rent td { border: none; border-bottom: 1px solid var(--rs-line); padding: .8em .6em; text-align: left; vertical-align: middle; background: transparent; }
.rs table.rs-rent th { width: 9em; font-weight: bold; white-space: nowrap; }
.rs .rs-yen { font-size: 1.15em; font-weight: bold; margin-right: .6em; }
.rs .rs-sub { font-size: .85em; color: var(--rs-sub); margin-right: .8em; }
.rs .rs-more { font-size: .88em; color: var(--rs-accent-dark); text-decoration: underline; text-underline-offset: 3px; }
.rs .rs-note { font-size: .8em; color: var(--rs-sub); line-height: 1.7; margin: .4em 0; }
.rs .rs-note p { margin: 0 0 .3em; }

/* 駅×間取りの表 */
.rs-matrix-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 0 1em; }
.rs table.rs-matrix { width: 100%; min-width: 560px; border-collapse: collapse; font-size: .95em; }
.rs table.rs-matrix th, .rs table.rs-matrix td { border: none; border-bottom: 1px solid var(--rs-line); padding: .7em .5em; text-align: right; background: transparent; white-space: nowrap; }
.rs table.rs-matrix thead th { font-size: .85em; color: var(--rs-sub); font-weight: normal; border-bottom: 2px solid var(--rs-line); }
.rs table.rs-matrix th[scope="row"], .rs table.rs-matrix thead th:first-child { text-align: left; }
.rs table.rs-matrix th[scope="row"] a { color: var(--rs-accent-dark); font-weight: bold; }

/* データで見る駅周辺 */
.rs table.rs-facts th { width: 11em; }
.rs .rs-facts .rs-yen { font-size: 1.05em; }
.rs-shops { margin: 0 0 .6em; padding-left: 1.2em; }
.rs-shops li { margin: .3em 0; }
.rs-shops .rs-sub { margin-left: .6em; }

/* スタッフコメント */
.rs-staff { display: flex; gap: 1em; align-items: flex-start; background: var(--rs-paper); border: 1px solid var(--rs-line); border-radius: 4px; padding: 1.1em 1.2em; }
.rs-staff img { width: 72px; height: 84px; object-fit: cover; object-position: center 18%; border-radius: 3px; flex: 0 0 auto; }
.rs-staff-name { font-weight: bold; margin: 0 0 .3em; }
.rs-staff p:last-child { margin-bottom: 0; }

/* 子ページ・関連記事 */
.rs-pages { margin: 0; padding-left: 1.2em; }
.rs-pages li { margin: .3em 0; }
.rs-posts { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rs-line); }
.rs-posts li { margin: 0; padding: 0; border-bottom: 1px solid var(--rs-line); }
.rs-posts a { display: flex; align-items: center; gap: .9em; padding: .8em 0; text-decoration: none; }
.rs-posts a:hover .rs-posts-t { text-decoration: underline; }
.rs-posts-img img { width: 96px; height: 64px; object-fit: cover; border-radius: 3px; display: block; }
.rs-posts-t { flex: 1; font-weight: bold; line-height: 1.5; }
.rs-posts time { font-size: .8em; color: var(--rs-sub); white-space: nowrap; }

/* 近隣駅 */
.rs-neighbors-pn { display: flex; justify-content: space-between; gap: 1em; flex-wrap: wrap; margin: 0 0 .8em; }
.rs-neighbors-pn a { color: var(--rs-accent-dark); font-weight: bold; }
.rs-line-list { font-size: .92em; line-height: 2; margin: 0; }
.rs-line-list > span { color: var(--rs-sub); margin-right: .4em; }
.rs-line-list a, .rs-line-list strong { margin-right: .9em; }

/* 問い合わせ導線 */
.rs-cta { display: flex; gap: 1.2em; align-items: flex-start; margin: 2.6em 0; padding: 1.4em 1.4em 1.2em; background: var(--rs-paper); border: 1px solid var(--rs-line); border-left: 4px solid var(--rs-accent); border-radius: 4px; }
.rs-cta-img { width: 88px; height: 104px; object-fit: cover; object-position: center 18%; border-radius: 3px; flex: 0 0 auto; }
.rs-cta-body { flex: 1; min-width: 0; }
.rs-cta-lead { font-size: .85em; color: var(--rs-sub); margin: 0 0 .2em; }
.rs-cta-title { font-size: 1.12em; font-weight: bold; margin: 0 0 .4em; }
.rs-cta-text { font-size: .95em; line-height: 1.8; margin: 0 0 1em; }
.rs-cta-btn { margin: 0; }
.rs-cta-btn a { display: inline-block; padding: .8em 1.6em; background: var(--rs-accent); color: #fff; border-radius: 4px; text-decoration: none; font-weight: bold; }
.rs-cta-btn a:hover { background: var(--rs-accent-dark); color: #fff; }
.rs-cta-btn { display: flex; flex-wrap: wrap; gap: .6em; }
.rs-cta-btn a.rs-cta-line { background: #06c755; }
.rs-cta-btn a.rs-cta-line:hover { background: #05a847; }
.rs-cta-sub { font-size: .8em; color: var(--rs-sub); margin: .5em 0 0; }
.rs-cta-qr { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; text-decoration: none; color: var(--rs-sub); font-size: .72em; }
.rs-cta-qr img { width: 120px; height: 120px; border: 1px solid var(--rs-line); border-radius: 4px; background: #fff; padding: 4px; }

/* ブログ記事末尾 */
.rs-postlinks { margin: 2.4em 0 0; padding: 1.1em 1.3em; border: 1px solid var(--rs-line); border-radius: 4px; background: #fff; }
.rs-postlinks-t { font-weight: bold; margin: 0 0 .5em; }
.rs-postlinks ul { margin: 0; padding-left: 1.2em; }
.rs-postlinks li { margin: .35em 0; }
.rs-postlinks a { color: var(--rs-accent-dark); }

/* 駅ページのタブ（概要｜家賃相場｜暮らし｜記事） */
.rs-tabs { margin: 0 0 1.4em; border-bottom: 2px solid var(--rs-ink); }
.rs-tabs ul, .rs-subtabs ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .2em; }
.rs-tabs li, .rs-subtabs li { margin: 0; padding: 0; }
.rs-tabs a, .rs-tabs span { display: block; padding: .6em 1.1em; font-size: .95em; text-decoration: none; border-radius: 4px 4px 0 0; }
.rs-tabs a { color: var(--rs-sub); }
.rs-tabs a:hover { color: var(--rs-ink); background: var(--rs-soft); }
.rs-tabs .is-current span { background: var(--rs-ink); color: #fff; font-weight: bold; }
.rs-subtabs { margin: -.6em 0 1.4em; }
.rs-subtabs a, .rs-subtabs span { display: block; padding: .35em .9em; font-size: .85em; border: 1px solid var(--rs-line); border-radius: 3px; text-decoration: none; background: #fff; }
.rs-subtabs .is-current span { border-color: var(--rs-accent); color: var(--rs-accent-dark); font-weight: bold; }

/* 駅の要点 */
.rs-keyfacts { list-style: none; margin: 0 0 1.4em; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: .6em; }
.rs-keyfacts li { margin: 0; padding: .8em .9em; background: var(--rs-paper); border: 1px solid var(--rs-line); border-radius: 4px; }
.rs-kf-l { display: block; font-size: .75em; color: var(--rs-sub); }
.rs-kf-v { display: block; font-size: 1.1em; font-weight: bold; margin-top: .15em; }
.rs-facts-mini { list-style: none; margin: 0 0 .4em; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: .5em; }
.rs-facts-mini li { margin: 0; padding: .6em .8em; border-bottom: 1px solid var(--rs-line); font-size: .9em; }
.rs-facts-mini span { color: var(--rs-sub); margin-right: .5em; }
.rs-facts-mini strong { font-size: 1.2em; }
.rs table.rs-detail { min-width: 0; }
.rs table.rs-detail tr.is-current th, .rs table.rs-detail tr.is-current td { background: var(--rs-paper); font-weight: bold; }

/* 物件 */
.rs-props { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1em; }
.rs-prop { display: flex; flex-direction: column; border: 1px solid var(--rs-line); border-radius: 4px; background: #fff; overflow: hidden; text-decoration: none; color: var(--rs-ink); }
.rs-prop:hover { border-color: var(--rs-accent); }
.rs-prop-img { display: block; aspect-ratio: 4 / 3; background: var(--rs-soft); overflow: hidden; }
.rs-prop-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rs-prop-body { display: flex; flex-direction: column; padding: .7em .9em .9em; }
.rs-prop-rent { font-size: 1.25em; font-weight: bold; color: var(--rs-accent-dark); }
.rs-prop-rent small { font-size: .65em; color: var(--rs-sub); font-weight: normal; margin-left: .3em; }
.rs-prop-spec { font-size: .85em; }
.rs-prop-t { font-size: .8em; color: var(--rs-sub); margin-top: .3em; }
.rs-prop-price { font-size: 1.8em; font-weight: bold; color: var(--rs-accent-dark); margin: .4em 0 .6em; }
.rs-prop-price span { font-size: .5em; color: var(--rs-sub); font-weight: normal; margin-left: .6em; }
.rs-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .5em; margin: 0 0 1em; }
.rs-gallery img { width: 100%; height: auto; border-radius: 3px; display: block; }
.rs-feat { columns: 2; }
.rs-prop-closed { background: var(--rs-soft); padding: 1em; border-radius: 4px; }
@media (max-width: 900px) { .rs-props { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .rs-props { grid-template-columns: 1fr; } .rs-feat { columns: 1; } }
.single-rs_property .entry-content .toc, .single-rs_property .author-info, .single-rs_property .under-entry-content .related-entries { display: none; }

/* 比較・ランキング */
.rs table.rs-compare th[scope="row"] { text-align: left; color: var(--rs-sub); font-weight: normal; font-size: .9em; }
.rs table.rs-compare td { text-align: center; }
.rs table.rs-compare thead a { color: var(--rs-accent-dark); font-weight: bold; }
.rs table.rs-ranking td.rs-rank { font-weight: bold; text-align: center; width: 3em; }
.rs table.rs-ranking td, .rs table.rs-ranking th { text-align: left; }
.rs-cols { columns: 2; column-gap: 2em; }
@media (max-width: 600px) { .rs-cols { columns: 1; } }

/* 写真クレジット */
.rs-photo-credit { font-size: .72em; color: #8a8278; margin: 1.5em 0 0; }
.rs-photo-credit a { color: #8a8278; }
.rs-stations-credit { display: block; font-size: .65em; color: #8a8278; margin: -.3em 0 .4em; line-height: 1.4; }

/* 駅一覧（写真が主役） */
.rs-stations { list-style: none; margin: 0 0 1.5em; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 1.2em 1em; }
.rs-stations li { margin: 0; padding: 0; }
.rs-stations a { display: block; text-decoration: none; }
.rs-stations-img { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 3px; background: var(--rs-soft); margin-bottom: .5em; }
.rs-stations-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: opacity .2s; }
.rs-stations a:hover img { opacity: .88; }
.rs-stations-name { display: block; font-weight: bold; font-size: 1.08em; }
.rs-stations a:hover .rs-stations-name { text-decoration: underline; }
.rs-stations-loc, .rs-stations-rent { display: block; font-size: .85em; color: var(--rs-sub); }

/* 間取りから探す */
.rs-madori-row { display: flex; gap: 1em; align-items: baseline; padding: .8em 0; border-bottom: 1px solid var(--rs-line); }
.rs-madori-row:first-child { border-top: 1px solid var(--rs-line); }
.rs-madori-label { flex: 0 0 7em; font-weight: bold; margin: 0; }
.rs-madori ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .3em 1.2em; }
.rs-madori li { margin: 0; padding: 0; }
.rs-madori a { text-decoration: none; }
.rs-madori a:hover { text-decoration: underline; }
.rs-madori a span { font-size: .85em; color: var(--rs-sub); margin-left: .35em; }

/* 目的から探す */
.rs-purpose { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5em; }
.rs-purpose li { margin: 0; padding: 0; }
.rs-purpose a { display: inline-block; padding: .5em 1em; border: 1px solid var(--rs-line); border-radius: 3px; background: #fff; text-decoration: none; }
.rs-purpose a:hover { border-color: var(--rs-accent); color: var(--rs-accent-dark); }

/* Cocoon：駅ページでは投稿用の「関連記事(カテゴリ基準)」「前後の記事」は意味が無いので隠す */
.single-station .under-entry-content .related-entries,
.single-station .under-entry-content .pager-post-navi,
.single-station .date-tags,
.single-station .author-info,
.single-station .entry-content .toc,
.single-rs_guide .entry-content .toc,
.single-rs_guide .date-tags,
.single-rs_guide .author-info,
.single-rs_guide .under-entry-content .related-entries,
.single-rs_guide .under-entry-content .pager-post-navi { display: none; }

@media (max-width: 600px) {
	.rs-keyfacts { grid-template-columns: repeat(2, 1fr); }
	.rs-facts-mini { grid-template-columns: repeat(2, 1fr); }
	.rs-tabs a, .rs-tabs span { padding: .5em .7em; font-size: .88em; }
	.rs-dl > div { display: block; }
	.rs-dl dt { margin-bottom: .2em; }
	.rs table.rs-rent th { width: 7em; }
	.rs .rs-yen { display: block; margin: 0; }
	.rs-cta { flex-direction: column; padding: 1.2em 1em; gap: .8em; }
	.rs-cta-img { width: 64px; height: 76px; }
	.rs-cta-btn a { display: block; text-align: center; width: 100%; }
	.rs-cta-qr { display: none; }
	.rs-stations { grid-template-columns: repeat(2, 1fr); gap: 1em .8em; }
	.rs-madori-row { display: block; }
	.rs-madori-label { margin-bottom: .3em; }
	.rs-posts-img img { width: 72px; height: 50px; }
	.rs-posts time { display: none; }
	.rs-neighbors-pn { flex-direction: column; gap: .4em; }
}
