/* ============================================================
   renewal.css — ココ住ム 2026 リニューアル（デザイン 3.0、2026-10-23）
   デザインガイドライン：data/ui/brand/coco-sumu/guidelines.md（3.0）
   方向：写真が主役の、余白の多い編集的なレイアウト。箱（カード）で囲まず、
         線・余白・数字で区切る。見出しは大きな明朝、英字の小さなラベルを添える。
         色は森の緑・生成り・墨の3つに絞る。クローバーは小さな印としてだけ使う。
   参考：Pinterest の不動産・建築・ブランドサイト（調査記録 00_context/external-files/）
   区切り：768px（タブレット）、1024px（PC）。スマホを基準に書く。
   ============================================================ */

:root {
  --cs-forest: #1E3A1B;
  --cs-forest-2: #27482A;
  --cs-clover: #3F6B1F;
  --cs-cream: #F4EFE6;
  --cs-paper: #FBF8F3;
  --cs-ink: #2B2420;
  --cs-greige: #6B5E55;
  --cs-line: #D8CFC0;
  --cs-white: #FFFFFF;
  --cs-on-dark: #F4EFE6;
  --cs-on-dark-muted: rgba(244, 239, 230, 0.72);
  --cs-on-dark-line: rgba(244, 239, 230, 0.22);
  --cs-font-display: "Shippori Mincho B1", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  --cs-font-body: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "YuGothic", Meiryo, sans-serif;
  --cs-font-label: "Shippori Mincho B1", "Times New Roman", serif;

  --rn-focus: #2563EB;
  --rn-ease: cubic-bezier(.22, .61, .36, 1);
  --rn-content-max: 1240px; --rn-reading-max: 760px; --rn-gutter: 20px;
  --rn-space: 88px;
  --rn-header-h: 64px;
  --rn-clover: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-50 -50 100 100'%3E%3Cg fill='%233F6B1F' transform='rotate(6)'%3E%3Cpath id='l' d='M0 -2.6 L -15.2 -17.8 C -24.6 -27.2 -21.8 -42.6 -11.2 -43.2 C -5.4 -43.5 -1.6 -40.2 0 -36.4 C 1.6 -40.2 5.4 -43.5 11.2 -43.2 C 21.8 -42.6 24.6 -27.2 15.2 -17.8 Z'/%3E%3Cuse href='%23l' transform='rotate(90)'/%3E%3Cuse href='%23l' transform='rotate(180)'/%3E%3Cuse href='%23l' transform='rotate(270)'/%3E%3C/g%3E%3C/svg%3E");
}
@media (min-width: 768px) { :root { --rn-space: 120px; } }
@media (min-width: 1024px) { :root { --rn-gutter: 48px; --rn-space: 160px; --rn-header-h: 80px; } }

/* ---------- base ---------- */
body.rn { margin: 0; background: var(--cs-cream); color: var(--cs-ink); font-family: var(--cs-font-body); font-size: 16px; line-height: 2; letter-spacing: 0.04em; line-break: strict; overflow-wrap: anywhere; -webkit-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; }
.rn *, .rn *::before, .rn *::after { box-sizing: border-box; }
.rn img { max-width: 100%; height: auto; vertical-align: middle; }
.rn a { color: var(--cs-clover); text-underline-offset: 5px; text-decoration-thickness: 1px; }
.rn a:hover { color: var(--cs-forest); }
.rn :focus-visible { outline: 3px solid var(--rn-focus); outline-offset: 3px; }
.rn h1, .rn h2, .rn h3, .rn h4 { margin: 0; line-height: 1.55; font-weight: 600; color: var(--cs-forest); font-family: var(--cs-font-display); letter-spacing: 0.08em; text-wrap: balance; }
.rn p, .rn ul, .rn ol, .rn dl, .rn figure { margin: 0; }
.rn ul, .rn ol { padding: 0; }
.rn.rn-is-locked { overflow: hidden; }
.rn-skip { position: fixed; top: 12px; left: 12px; z-index: 1000; padding: 8px 16px; background: var(--cs-forest); color: var(--cs-on-dark) !important; font-weight: 700; text-decoration: none; transform: translateY(-200%); }
.rn-skip:focus { transform: translateY(0); }
.rn-container { width: 100%; max-width: calc(var(--rn-content-max) + 2 * var(--rn-gutter)); margin: 0 auto; padding: 0 var(--rn-gutter); }
.rn-narrow { max-width: calc(var(--rn-reading-max) + 2 * var(--rn-gutter)); }
.rn-br-sp { display: inline; }
@media (min-width: 768px) { .rn-br-sp { display: none; } }

/* 英字の小さなラベル：見出しの上に置く。前に短い線 */
.rn-label { display: flex; align-items: center; gap: 14px; margin-bottom: 20px !important; font-family: var(--cs-font-label); font-size: 12px; font-weight: 500; line-height: 1; letter-spacing: 0.28em; text-transform: uppercase; color: var(--cs-clover); }
.rn-label::before { content: ""; width: 28px; height: 1px; background: currentColor; }

/* 見出しのかたまり */
.rn-head { margin-bottom: 48px; }
.rn-head__title { font-size: clamp(28px, 4.2vw, 52px); line-height: 1.5; }
.rn-head--on-dark .rn-head__title { color: var(--cs-on-dark); }
.rn-head--on-dark .rn-label { color: var(--cs-on-dark-muted); }
@media (min-width: 1024px) { .rn-head { margin-bottom: 80px; } }

/* 文字のリンク：下線が伸びる */
.rn-textlink { display: inline-flex; align-items: center; gap: 14px; margin-top: 32px; padding-bottom: 6px; border-bottom: 1px solid currentColor; color: var(--cs-forest) !important; font-family: var(--cs-font-display); font-weight: 600; letter-spacing: 0.1em; text-decoration: none; }
.rn-textlink::after { content: ""; width: 32px; height: 1px; background: currentColor; transition: width .4s var(--rn-ease); }
.rn-textlink:hover::after { width: 48px; }

/* ---------- buttons（角のある四角。線と矢印） ---------- */
.rn-btn { position: relative; display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 56px; padding: 14px 28px; border: 1px solid transparent; border-radius: 0; font-size: 15px; font-weight: 700; line-height: 1.4; letter-spacing: 0.1em; text-align: left; text-decoration: none; cursor: pointer; transition: background-color .3s ease, color .3s ease, border-color .3s ease; }
.rn-btn::after { content: ""; flex: none; width: 28px; height: 1px; background: currentColor; box-shadow: none; transition: width .4s var(--rn-ease); }
.rn-btn:hover::after { width: 40px; }
.rn-btn--primary { background: var(--cs-forest); color: var(--cs-on-dark) !important; }
.rn-btn--primary:hover { background: var(--cs-clover); }
.rn-btn--light { background: var(--cs-cream); color: var(--cs-forest) !important; }
.rn-btn--light:hover { background: var(--cs-white); }
.rn-btn--line-light { background: transparent; color: var(--cs-on-dark) !important; border-color: rgba(244, 239, 230, 0.6); font-family: var(--cs-font-display); font-size: 17px; letter-spacing: 0.08em; }
.rn-btn--line-light:hover { background: rgba(244, 239, 230, 0.12); }
.rn-btn--tel, .rn-btn--outline { background: transparent; color: var(--cs-forest) !important; border-color: var(--cs-forest); }
.rn-btn--tel:hover, .rn-btn--outline:hover { background: var(--cs-forest); color: var(--cs-on-dark) !important; }
.rn-btn--lg { min-height: 64px; padding: 16px 32px; font-size: 16px; }
.rn-btn--block { display: flex; width: 100%; }
.rn-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.rn-actions--center { justify-content: center; }
.rn-actions .rn-btn { flex: 1 1 100%; }
@media (min-width: 768px) { .rn-actions .rn-btn { flex: 0 0 auto; } }

/* ---------- header ---------- */
.rn-header { position: sticky; top: 0; z-index: 100; background: rgba(251, 248, 243, 0.96); backdrop-filter: blur(10px); border-bottom: 1px solid transparent; transition: border-color .3s ease, background-color .3s ease; }
.rn-scrolled .rn-header { border-bottom-color: var(--cs-line); }
.rn-utility { display: none; }
.rn-header__inner { display: flex; align-items: center; gap: 16px; min-height: var(--rn-header-h); max-width: none; transition: min-height .3s ease; }
.rn-logo img { display: block; width: 132px; height: auto; transition: width .3s ease; }
/* スクロールしたらロゴとヘッダーを小さく（CHG-20261109-001） */
.rn-scrolled .rn-logo img { width: 80px; }
.rn-scrolled .rn-header__inner { min-height: 52px; }
.rn-scrolled .rn-drawer { top: 52px; }
.rn-gnav { display: none; }
.rn-header__actions { margin-left: auto; display: flex; align-items: center; gap: 20px; }
.rn-header__tel { display: none; text-decoration: none; line-height: 1.3; text-align: right; }
.rn-header__tel-label { display: block; font-size: 10px; color: var(--cs-greige); letter-spacing: 0.14em; }
.rn-header__tel-number { display: block; white-space: nowrap; font-family: var(--cs-font-display); font-size: 19px; font-weight: 600; color: var(--cs-forest); letter-spacing: 0.08em; }
.rn-header__cta { display: none; white-space: nowrap; min-height: 48px; padding: 10px 22px; font-size: 14px; }
.rn-header__cta::after { width: 18px; }
.rn-menu-button { display: inline-flex; align-items: center; gap: 12px; height: 48px; padding: 0 2px; background: none; border: 0; color: var(--cs-forest); font: inherit; font-family: var(--cs-font-label); font-size: 11px; letter-spacing: 0.24em; cursor: pointer; }
.rn-menu-button__bars, .rn-menu-button__bars::before, .rn-menu-button__bars::after { display: block; width: 26px; height: 1px; background: currentColor; content: ""; position: relative; transition: transform .3s var(--rn-ease), background-color .2s ease; }
.rn-menu-button__bars::before { position: absolute; top: -5px; }
.rn-menu-button__bars::after { position: absolute; top: 5px; }
.rn-menu-button__label { font-family: var(--cs-font-body); font-size: 12px; letter-spacing: 0.12em; }
.rn-menu-button[aria-expanded="true"] .rn-menu-button__bars { background: transparent; }
.rn-menu-button[aria-expanded="true"] .rn-menu-button__bars::before { top: 0; transform: rotate(30deg); }
.rn-menu-button[aria-expanded="true"] .rn-menu-button__bars::after { top: 0; transform: rotate(-30deg); }
.rn-drawer { position: fixed; inset: var(--rn-header-h) 0 0 0; z-index: 99; overflow-y: auto; background: var(--cs-forest); color: var(--cs-on-dark); padding: 24px var(--rn-gutter) 112px; }
.rn-drawer[hidden] { display: none; }
.rn-drawer__heading { margin: 28px 0 8px; font-family: var(--cs-font-label); font-size: 12px; color: var(--cs-on-dark-muted); letter-spacing: 0.2em; }
.rn-drawer__heading:first-child { margin-top: 0; }
.rn-drawer__list { list-style: none; border-top: 1px solid var(--cs-on-dark-line); }
.rn-drawer__list li { border-bottom: 1px solid var(--cs-on-dark-line); }
.rn-drawer__link { display: flex; align-items: center; min-height: 60px; color: var(--cs-on-dark) !important; font-family: var(--cs-font-display); font-size: 20px; font-weight: 600; text-decoration: none; letter-spacing: 0.08em; }
.rn-drawer__link[aria-current="page"] { opacity: .6; }
.rn-drawer__actions { display: grid; gap: 12px; margin-top: 32px; }
.rn-drawer .rn-btn--primary { background: var(--cs-cream); color: var(--cs-forest) !important; }
.rn-drawer .rn-btn--tel { color: var(--cs-on-dark) !important; border-color: rgba(244, 239, 230, 0.6); }
@media (min-width: 768px) { .rn-header__tel { display: block; } .rn-header__cta { display: inline-flex; } }
@media (min-width: 1024px) {
  .rn-header__inner { gap: 40px; }
  .rn-logo img { width: 156px; }
  .rn-scrolled .rn-logo img { width: 88px; }
  .rn-gnav { display: block; margin-left: auto; }
  .rn-logo { flex-shrink: 0; }
  .rn-gnav__list { display: flex; list-style: none; gap: 24px; }
  .rn-gnav__link { position: relative; display: flex; align-items: center; min-height: 44px; color: var(--cs-ink) !important; font-family: var(--cs-font-display); font-size: 15px; font-weight: 600; text-decoration: none; white-space: nowrap; letter-spacing: 0.1em; }
  .rn-gnav__link::after { content: ""; position: absolute; left: 0; right: 0; bottom: 6px; height: 1px; background: var(--cs-forest); transform: scaleX(0); transform-origin: left; transition: transform .4s var(--rn-ease); }
  .rn-gnav__link:hover::after, .rn-gnav__link[aria-current="page"]::after { transform: scaleX(1); }
  .rn-header__actions { margin-left: 0; }
  .rn-menu-button { display: none; }
  .rn-drawer { display: none !important; }
  .rn-scrolled .rn-header__inner { min-height: 64px; }
}
@media (min-width: 1024px) and (max-width: 1279px) { .rn-header__inner { gap: 28px; } .rn-header__tel { display: none; } .rn-gnav__list { gap: 16px; } .rn-gnav__link { font-size: 14px; letter-spacing: 0.06em; } }
@media (min-width: 1280px) and (max-width: 1439px) { .rn-header__inner { gap: 28px; } .rn-gnav__list { gap: 20px; } .rn-gnav__link { letter-spacing: 0.06em; } }

/* ---------- top: hero（写真を全面に） ---------- */
.rn-hero { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: calc(100svh - var(--rn-header-h)); min-height: max(560px, calc(100svh - var(--rn-header-h))); overflow: hidden; background: var(--cs-forest); color: var(--cs-on-dark); isolation: isolate; }
.rn-hero__media { position: absolute; inset: 0; z-index: -1; }
.rn-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.rn-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 34, 18, 0.15) 0%, rgba(20, 34, 18, 0.25) 40%, rgba(20, 34, 18, 0.78) 100%), linear-gradient(90deg, rgba(20, 34, 18, 0.45) 0%, rgba(20, 34, 18, 0) 70%); }
.rn-hero__inner { padding-top: 96px; padding-bottom: 40px; }
.rn-hero__eyebrow { font-size: 13px; letter-spacing: 0.24em; color: var(--cs-on-dark-muted); }
.rn .rn-hero__title { margin-top: 20px; color: var(--cs-white); font-size: clamp(30px, 6.2vw, 76px); font-weight: 600; line-height: 1.4; letter-spacing: 0.06em; }
.rn-hero__lead { margin-top: 28px !important; font-size: 15px; line-height: 2.1; color: var(--cs-on-dark); }
.rn-hero__actions { display: grid; gap: 12px; margin-top: 36px; }
.rn-hero__tagline { display: none; }
.rn-hero__foot { border-top: 1px solid var(--cs-on-dark-line); }
.rn-hero__foot-inner { display: flex; flex-wrap: wrap; gap: 6px 28px; padding-top: 16px; padding-bottom: 18px; font-size: 12px; letter-spacing: 0.1em; color: var(--cs-on-dark-muted); }
.rn-hero__scroll { display: none; }
@media (min-width: 768px) {
  .rn-hero__lead { font-size: 17px; }
  .rn-hero__actions { display: flex; gap: 16px; }
  .rn-hero__tagline { display: block; position: absolute; right: var(--rn-gutter); top: 50%; transform: translateY(-50%); writing-mode: vertical-rl; font-family: var(--cs-font-display); font-size: 15px; letter-spacing: 0.5em; color: var(--cs-on-dark-muted); }
  .rn-hero__scroll { display: flex; align-items: center; gap: 12px; margin-left: auto; font-family: var(--cs-font-label); letter-spacing: 0.3em; text-transform: uppercase; }
  .rn-hero__scroll::after { content: ""; width: 56px; height: 1px; background: currentColor; transform-origin: left; }
}
@media (min-width: 1024px) { .rn-hero__inner { padding-bottom: 72px; } }

/* ---------- top: statement ---------- */
.rn-statement { padding: var(--rn-space) 0; background: var(--cs-cream); }
.rn-statement__inner { max-width: calc(980px + 2 * var(--rn-gutter)); }
.rn .rn-statement__q { font-size: clamp(30px, 5.4vw, 64px); line-height: 1.5; letter-spacing: 0.08em; }
.rn-statement__text { max-width: 34em; margin-top: 36px !important; font-size: 16px; line-height: 2.2; color: var(--cs-ink); }
.rn-statement__a { margin-top: 64px !important; padding-top: 48px; border-top: 1px solid var(--cs-line); font-family: var(--cs-font-display); font-size: clamp(26px, 3.4vw, 38px); font-weight: 600; line-height: 1.55; letter-spacing: 0.08em; color: var(--cs-clover); }
.rn-statement__photo { margin: 56px 0 0; }
.rn-statement__photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
@media (min-width: 1024px) {
  .rn-statement__inner { display: grid; grid-template-columns: 1fr 1fr; column-gap: 80px; }
  .rn-statement__inner .rn-label { grid-column: 1 / -1; }
  .rn-statement__q { grid-column: 1 / -1; }
  .rn-statement__q + .rn-statement__text { grid-column: 2; }
  .rn-statement__a { grid-column: 1; align-self: start; border-top: 0; padding-top: 0; margin-top: 96px !important; }
  .rn-statement__a + .rn-statement__text { grid-column: 2; margin-top: 96px !important; padding-top: 10px; }
  .rn-statement__photo { grid-column: 1 / -1; margin-top: 96px; }
}

/* ---------- top: services（線で区切る一覧と、触れると替わる写真） ---------- */
.rn-services { padding: var(--rn-space) 0; background: var(--cs-paper); }
.rn-services__visual { display: none; }
.rn-services__list { list-style: none; border-top: 1px solid var(--cs-line); counter-reset: none; }
.rn-services__list li { border-bottom: 1px solid var(--cs-line); }
.rn-service { display: grid; grid-template-columns: 44px minmax(0, 1fr) 32px; align-items: center; gap: 12px; padding: 28px 0; color: var(--cs-ink) !important; text-decoration: none; }
.rn-service__num { align-self: start; padding-top: 10px; font-family: var(--cs-font-label); font-size: 13px; letter-spacing: 0.14em; color: var(--cs-clover); }
.rn-service__title { display: block; font-family: var(--cs-font-display); font-size: clamp(24px, 3vw, 36px); font-weight: 600; line-height: 1.5; letter-spacing: 0.1em; color: var(--cs-forest); transition: color .3s ease; }
.rn-service__text { display: block; margin-top: 6px; font-size: 14px; line-height: 1.9; color: var(--cs-greige); }
.rn-service__arrow { position: relative; justify-self: end; width: 32px; height: 1px; background: var(--cs-forest); transition: width .4s var(--rn-ease); }
.rn-service__arrow::after { content: ""; position: absolute; right: 0; top: -4px; width: 9px; height: 9px; border-top: 1px solid var(--cs-forest); border-right: 1px solid var(--cs-forest); transform: rotate(45deg); transform-origin: center; }
@media (min-width: 1024px) {
  .rn-services__body { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 80px; align-items: start; }
  .rn-services__visual { position: sticky; top: calc(var(--rn-header-h) + 32px); display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--cs-forest); }
  .rn-services__visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.06); transition: opacity .9s var(--rn-ease), transform 1.6s var(--rn-ease); }
  .rn-services__visual img.is-active { opacity: 1; transform: scale(1); }
  .rn-service { grid-template-columns: 64px minmax(0, 1fr) 56px; padding: 44px 0; }
  .rn-service__text { font-size: 15px; }
  .rn-service:hover .rn-service__title, .rn-service.is-active .rn-service__title { color: var(--cs-clover); }
  .rn-service:hover .rn-service__arrow, .rn-service.is-active .rn-service__arrow { width: 56px; }
}

/* ---------- top: band（写真の帯） ---------- */
.rn-band { position: relative; display: flex; align-items: center; min-height: 72svh; overflow: hidden; color: var(--cs-on-dark); isolation: isolate; background: var(--cs-forest); }
.rn-band__media { position: absolute; inset: 0; z-index: -1; }
.rn-band__media img { width: 100%; height: 120%; object-fit: cover; will-change: transform; }
.rn-band__media::after { content: ""; position: absolute; inset: 0; background: rgba(20, 34, 18, 0.5); }
.rn-band__inner { padding-top: 96px; padding-bottom: 96px; }
.rn-band__text { font-family: var(--cs-font-display); font-size: clamp(28px, 5vw, 60px); font-weight: 600; line-height: 1.6; letter-spacing: 0.1em; color: var(--cs-white); }
.rn-band__sub { margin-top: 28px !important; font-size: 15px; color: var(--cs-on-dark); }

/* ---------- top: promise（森の緑の面に、三つの約束） ---------- */
.rn-promise { padding: var(--rn-space) 0; background: var(--cs-forest); color: var(--cs-on-dark); }
.rn-promise__list { list-style: none; display: grid; border-top: 1px solid var(--cs-on-dark-line); }
.rn-promise__list li { padding: 36px 0 40px; border-bottom: 1px solid var(--cs-on-dark-line); }
.rn-promise__num { display: block; font-family: var(--cs-font-label); font-size: 56px; line-height: 1; letter-spacing: 0.04em; color: transparent; -webkit-text-stroke: 1px rgba(244, 239, 230, 0.5); }
.rn .rn-promise__list h3 { margin-top: 28px; font-size: clamp(22px, 2.4vw, 28px); color: var(--cs-white); letter-spacing: 0.12em; }
.rn-promise__list p { margin-top: 16px !important; font-size: 15px; line-height: 2.1; color: var(--cs-on-dark-muted); }
@media (min-width: 1024px) {
  .rn-promise__list { grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 0; }
  .rn-promise__list li { padding: 8px 48px 0; border-bottom: 0; border-left: 1px solid var(--cs-on-dark-line); }
  .rn-promise__list li:first-child { padding-left: 0; border-left: 0; }
  .rn-promise__num { font-size: 88px; }
}

/* ---------- top: person ---------- */
.rn-person { padding: var(--rn-space) 0; background: var(--cs-cream); }
.rn-person__inner { display: grid; gap: 40px; }
.rn-person__photo img { display: block; width: 168px; height: 168px; object-fit: cover; border-radius: 50%; }
.rn-person__quote { font-family: var(--cs-font-display); font-size: clamp(28px, 4.4vw, 52px); font-weight: 600; line-height: 1.55; letter-spacing: 0.08em; color: var(--cs-forest); }
.rn .rn-person__name { margin-top: 32px; font-size: 16px; letter-spacing: 0.16em; color: var(--cs-ink); }
.rn-person__facts { margin-top: 32px !important; border-top: 1px solid var(--cs-line); }
.rn-person__facts > div { display: grid; grid-template-columns: 4.5em minmax(0, 1fr); gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--cs-line); font-size: 14px; line-height: 1.9; }
.rn-person__facts dt { font-weight: 700; color: var(--cs-greige); }
.rn-person__facts dd { margin: 0; }
@media (min-width: 1024px) {
  .rn-person__inner { grid-template-columns: 232px minmax(0, 1fr); gap: 96px; align-items: start; }
  .rn-person__photo { position: sticky; top: calc(var(--rn-header-h) + 32px); }
  .rn-person__photo img { width: 232px; height: 232px; }
  .rn-person__body { max-width: 760px; }
}

/* ---------- top: fees ---------- */
.rn-fees { padding: var(--rn-space) 0; background: var(--cs-paper); }
.rn-fees .rn-head { margin-bottom: 40px; }
.rn-fees .rn-head__title { font-size: clamp(28px, 3.4vw, 44px); }
.rn-fees__list { border-top: 1px solid var(--cs-forest); }
.rn-fees__list > div { display: grid; gap: 8px; padding: 28px 0; border-bottom: 1px solid var(--cs-line); }
.rn-fees__list dt { font-family: var(--cs-font-display); font-size: 17px; font-weight: 600; letter-spacing: 0.1em; color: var(--cs-ink); }
.rn-fees__list dd { margin: 0; }
.rn-fees__price { display: block; font-family: var(--cs-font-display); font-size: clamp(36px, 4.6vw, 56px); font-weight: 600; line-height: 1.3; letter-spacing: 0.04em; color: var(--cs-forest); }
.rn-fees__price small { margin-left: 6px; font-size: 15px; letter-spacing: 0.08em; }
.rn-fees__price--text { font-size: clamp(22px, 2.4vw, 28px); }
.rn-fees__note { display: block; margin-top: 6px; font-size: 13px; color: var(--cs-greige); }
@media (min-width: 1024px) {
  .rn-fees__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 80px; align-items: start; }
  .rn-fees__list > div { grid-template-columns: 200px minmax(0, 1fr); align-items: baseline; gap: 32px; padding: 36px 0; }
}

/* ---------- top: area（市の名前を大きく） ---------- */
.rn-area { padding: var(--rn-space) 0; background: var(--cs-cream); }
.rn-area__cities { display: flex; flex-wrap: wrap; gap: 4px 0; list-style: none; border-top: 1px solid var(--cs-line); border-bottom: 1px solid var(--cs-line); padding: 28px 0; }
.rn-area__cities li { font-family: var(--cs-font-display); font-size: clamp(34px, 5.6vw, 76px); font-weight: 600; line-height: 1.3; letter-spacing: 0.12em; color: var(--cs-forest); }
.rn-area__cities li:not(:last-child)::after { content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 0.5em; vertical-align: middle; border-radius: 50%; background: var(--cs-line); }
.rn-area__notes { display: grid; gap: 16px; margin-top: 32px; max-width: 760px; font-size: 14px; color: var(--cs-greige); }
@media (min-width: 1024px) { .rn-area__notes { grid-template-columns: 1fr 1fr; gap: 48px; max-width: none; } }

/* ---------- top: gates（写真の入口2つ） ---------- */
.rn-gates { display: grid; background: var(--cs-forest); }
.rn-gate { position: relative; display: flex; align-items: flex-end; min-height: 420px; overflow: hidden; color: var(--cs-on-dark) !important; text-decoration: none; isolation: isolate; }
.rn-gate img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--rn-ease); }
.rn-gate::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(20, 34, 18, 0.1) 20%, rgba(20, 34, 18, 0.82) 100%); transition: background-color .4s ease; }
.rn-gate:hover img { transform: scale(1.05); }
.rn-gate__body { display: block; width: 100%; padding: 40px var(--rn-gutter); }
.rn-gate .rn-label { color: var(--cs-on-dark-muted); }
.rn-gate__title { display: block; font-family: var(--cs-font-display); font-size: clamp(24px, 2.8vw, 34px); font-weight: 600; letter-spacing: 0.1em; color: var(--cs-white); }
.rn-gate__text { display: block; margin-top: 10px; font-size: 14px; color: var(--cs-on-dark); }
.rn-gate__title::after { content: ""; display: inline-block; width: 32px; height: 1px; margin-left: 20px; vertical-align: middle; background: currentColor; transition: width .4s var(--rn-ease); }
.rn-gate:hover .rn-gate__title::after { width: 56px; }
@media (min-width: 768px) { .rn-gates { grid-template-columns: 1fr 1fr; } .rn-gate { min-height: 560px; } .rn-gate__body { padding: 56px; } }

/* ---------- CTA（写真の上に、最後の案内） ---------- */
/* 電話とフォームを並べた CTA（CHG-20261109-170）。PC は左に電話、右に相談予約フォーム */
.rn-cta { padding: 88px 0; background: var(--cs-forest); color: var(--cs-on-dark); scroll-margin-top: var(--rn-header-h); }
.rn-cta__inner { display: grid; gap: 48px; }
.rn-cta__tag { display: inline-block; margin: 0 0 20px !important; padding: 6px 12px; background: var(--cs-cream); color: var(--cs-forest); font-size: 13px; font-weight: 700; line-height: 1.4; letter-spacing: 0.08em; }
.rn-content .rn-cta__title, .rn .rn-cta__title { margin: 0; font-size: clamp(26px, 3.2vw, 40px); line-height: 1.5; letter-spacing: 0.04em; word-break: auto-phrase; color: var(--cs-white); }
.rn-cta__tel { display: inline-block; margin-top: 28px; color: var(--cs-white) !important; font-family: var(--cs-font-display); font-size: clamp(34px, 6vw, 68px); font-weight: 600; line-height: 1.1; letter-spacing: 0.02em; text-decoration: none; white-space: nowrap; }
.rn-cta__tel:hover { color: var(--cs-cream) !important; text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }
.rn-cta__hours { margin-top: 10px !important; font-size: 14px; font-weight: 700; color: var(--cs-on-dark); }
.rn-cta__text { margin-top: 24px !important; max-width: 34em; font-size: 15px; line-height: 1.9; color: var(--cs-on-dark); }
.rn-cta__text + .rn-cta__text { margin-top: 16px !important; }
.rn-cta__note { margin-top: 16px !important; font-size: 13px; color: var(--cs-on-dark-muted); }
.rn-cta__form { padding: 28px 20px; background: var(--cs-white); color: var(--cs-ink); }
.rn-cta__form .rn-form { gap: 24px; margin-top: 0; padding-top: 0; border-top: 0; }
/* カードの幅では連絡方法・時間は2列に（4列だと字がはみ出す） */
@media (min-width: 768px) { .rn-cta__form { padding: 36px 32px; } .rn-cta__form .rn-form .wpcf7-radio--inline { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
  .rn-cta { padding: 112px 0; }
  .rn-cta__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 560px); gap: 64px; align-items: start; }
  .rn-cta__lead { position: sticky; top: calc(var(--rn-header-h) + 32px); }
}

/* ---------- page hero（下層。写真があれば全面に） ---------- */
.rn-page-hero { position: relative; overflow: hidden; padding: 56px 0 64px; background: var(--cs-forest); color: var(--cs-on-dark); isolation: isolate; }
.rn-page-hero--photo { display: flex; align-items: flex-end; min-height: 60svh; min-height: max(440px, 60svh); }
.rn-page-hero--photo > .rn-container { width: 100%; }
.rn-page-hero__media { position: absolute; inset: 0; z-index: -1; }
.rn-page-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.rn-page-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 34, 18, 0.25) 0%, rgba(20, 34, 18, 0.8) 100%); }
.rn-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; font-size: 12px; color: var(--cs-on-dark-muted); letter-spacing: 0.1em; }
.rn-breadcrumb a { color: var(--cs-on-dark) !important; text-decoration: none; }
.rn-breadcrumb li + li::before { content: "—"; margin-right: 10px; color: var(--cs-on-dark-muted); }
.rn-page-hero--photo .rn-breadcrumb { position: absolute; top: 24px; }
.rn-page-hero__label { display: flex; align-items: center; gap: 14px; margin-top: 48px !important; font-family: var(--cs-font-label); font-size: 12px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--cs-on-dark-muted); }
.rn-page-hero__label::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.rn .rn-page-hero__title { margin-top: 20px; font-size: clamp(30px, 6vw, 76px); line-height: 1.35; letter-spacing: 0.08em; color: var(--cs-white); }
.rn-page-hero__lead { max-width: 36em; margin-top: 24px !important; font-size: 15px; line-height: 2.1; color: var(--cs-on-dark); }
@media (min-width: 1024px) { .rn-page-hero { padding: 72px 0 88px; } .rn-page-hero__lead { font-size: 17px; } .rn-page-hero--photo .rn-breadcrumb { top: 32px; } }
/* PC はページ上の帯の説明文を途中で折り返さない（幅の制限を外す。CHG-20261109-034） */
@media (min-width: 1024px) { .rn-page-hero__lead { max-width: none; } }

/* ---------- 下層の本文（箱で囲まない。線と余白で区切る） ---------- */
.rn-content > .rn-section { padding: var(--rn-space) 0; background: var(--cs-cream); }
.rn-content > .rn-section--soft { background: var(--cs-paper); }
.rn-content .rn-section > .rn-container > h2 { display: block; margin-bottom: 48px; font-size: clamp(26px, 3.6vw, 44px); line-height: 1.55; }
.rn-content .rn-section > .rn-container > h2::before { content: ""; display: block; width: 18px; height: 18px; margin-bottom: 24px; background: var(--rn-clover) no-repeat center / contain; }
.rn-content .rn-section h3:not([class*="__"]) { font-size: clamp(19px, 2vw, 22px); letter-spacing: 0.1em; }
.rn-content .rn-section > .rn-container > p:not([class]) { max-width: 40em; }
.rn-content .rn-section > .rn-container > p:not([class]) + p:not([class]) { margin-top: 1em; }
.rn-content .rn-section > .rn-container > * + p:not([class]) { margin-top: 24px; }
.rn-section-lead { max-width: none; margin: -16px 0 40px !important; color: var(--cs-ink); }
.rn-note { margin-top: 24px !important; font-size: 14px; color: var(--cs-greige); }
.rn-compare-note { max-width: 44em; margin-top: 32px !important; padding-left: 20px; border-left: 2px solid var(--cs-forest); }
.rn-compare-note strong { display: block; margin-bottom: 4px; font-family: var(--cs-font-display); font-weight: 600; }
.rn-price { font-family: var(--cs-font-display); font-size: 1.25em; font-weight: 600; color: var(--cs-forest) !important; letter-spacing: 0.04em; white-space: nowrap; }
.rn-eyebrow { font-size: 13px; letter-spacing: 0.16em; color: var(--cs-greige); }
.rn-block + .rn-block { margin-top: 48px; }

/* リスト：横線で区切る */
.rn-list-check, .rn-list-dot, .rn-list-x { list-style: none; border-top: 1px solid var(--cs-line); }
.rn-list-check li, .rn-list-dot li, .rn-list-x li { position: relative; padding: 20px 0 20px 40px; border-bottom: 1px solid var(--cs-line); }
.rn-list-check li { font-family: var(--cs-font-display); font-size: 17px; font-weight: 600; line-height: 1.8; letter-spacing: 0.06em; color: var(--cs-forest); }
.rn-list-check li::before { content: ""; position: absolute; left: 2px; top: 1.95em; width: 20px; height: 1px; background: var(--cs-clover); }
.rn-list-dot li::before { content: ""; position: absolute; left: 6px; top: 2.05em; width: 6px; height: 6px; background: var(--cs-clover); border-radius: 50%; }
.rn-list-x li { color: var(--cs-greige); }
.rn-list-x li::before, .rn-list-x li::after { content: ""; position: absolute; left: 4px; top: 2.2em; width: 14px; height: 1px; background: var(--cs-greige); }
.rn-list-x li::before { transform: rotate(45deg); }
.rn-list-x li::after { transform: rotate(-45deg); }

/* すること：大きな番号と横線 */
.rn-points { list-style: none; counter-reset: rn-point; display: grid; border-top: 1px solid var(--cs-forest); }
.rn-points > li { counter-increment: rn-point; position: relative; padding: 32px 0 36px 64px; border-bottom: 1px solid var(--cs-line); }
.rn-points > li::before { content: counter(rn-point, decimal-leading-zero); position: absolute; left: 0; top: 30px; font-family: var(--cs-font-label); font-size: 30px; line-height: 1; color: var(--cs-clover); }
.rn-points h3 { font-size: clamp(19px, 2vw, 23px) !important; }
.rn-points p { margin-top: 12px !important; color: var(--cs-ink); }
@media (min-width: 1024px) {
  .rn-points { grid-template-columns: 1fr 1fr; column-gap: 80px; border-top: 0; }
  .rn-points > li { padding: 40px 0 44px 88px; border-top: 1px solid var(--cs-line); border-bottom: 0; }
  .rn-points > li:nth-child(-n+2) { border-top-color: var(--cs-forest); }
  .rn-points > li::before { top: 38px; font-size: 40px; }
}

/* 進め方：番号と縦の流れ */
.rn-steps { list-style: none; counter-reset: rn-step; border-top: 1px solid var(--cs-line); }
.rn-steps > li { counter-increment: rn-step; display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 12px; padding: 24px 0; border-bottom: 1px solid var(--cs-line); }
.rn-steps > li::before { content: counter(rn-step, decimal-leading-zero); grid-row: span 2; font-family: var(--cs-font-label); font-size: 15px; letter-spacing: 0.1em; color: var(--cs-clover); padding-top: 4px; }
.rn-steps strong { display: block; font-family: var(--cs-font-display); font-size: 18px; font-weight: 600; letter-spacing: 0.08em; color: var(--cs-forest); }
.rn-steps span { display: block; margin-top: 4px; font-size: 15px; color: var(--cs-ink); }
@media (min-width: 768px) { .rn-steps > li { grid-template-columns: 72px 220px minmax(0, 1fr); align-items: baseline; } .rn-steps > li::before { grid-row: auto; } .rn-steps span { margin-top: 0; } }

/* 入口のリンク一覧（旧カード）：箱にせず線で */
.rn-cards { display: grid; border-top: 1px solid var(--cs-forest); }
.rn-card { position: relative; display: block; padding: 32px 0 36px; border-bottom: 1px solid var(--cs-line); color: var(--cs-ink) !important; text-decoration: none; }
.rn-card__label { font-size: 12px; letter-spacing: 0.14em; color: var(--cs-greige); }
.rn .rn-card__title { margin-top: 8px; font-size: clamp(19px, 2vw, 23px); letter-spacing: 0.08em; color: var(--cs-forest); transition: color .3s ease; }
.rn-card p:not([class]) { margin-top: 12px; font-size: 15px; }
.rn-card__more { display: inline-flex; align-items: center; gap: 14px; margin-top: 20px; font-family: var(--cs-font-display); font-size: 14px; font-weight: 600; letter-spacing: 0.1em; color: var(--cs-forest); }
.rn-card__more::after { content: ""; width: 28px; height: 1px; background: currentColor; transition: width .4s var(--rn-ease); }
.rn-card--link:hover .rn-card__title { color: var(--cs-clover); }
.rn-card--link:hover .rn-card__more::after { width: 48px; }
@media (min-width: 768px) {
  .rn-cards--2, .rn-cards--3 { column-gap: 56px; border-top: 0; }
  .rn-cards--2 { grid-template-columns: 1fr 1fr; }
  .rn-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rn-cards--2 .rn-card, .rn-cards--3 .rn-card { border-top: 1px solid var(--cs-forest); border-bottom: 0; }
}

/* 表 */
.rn-table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--cs-forest); font-size: 15px; }
.rn-table th, .rn-table td { padding: 20px 0; border-bottom: 1px solid var(--cs-line); text-align: left; vertical-align: top; }
.rn-table th { font-weight: 700; color: var(--cs-forest); }
.rn-table--defs th { width: 34%; padding-right: 24px; font-family: var(--cs-font-display); font-weight: 600; letter-spacing: 0.06em; }
.rn-table thead th { font-family: var(--cs-font-body); font-size: 12px; font-weight: 700; letter-spacing: 0.14em; color: var(--cs-greige); }
@media (max-width: 767px) {
  .rn-table--defs th, .rn-table--defs td { display: block; width: 100%; }
  .rn-table--defs th { padding-bottom: 0; border-bottom: 0; }
  .rn-table--defs td { padding-top: 6px; }
  .rn-table--stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .rn-table--stack tr { display: block; padding: 20px 0; border-bottom: 1px solid var(--cs-line); }
  .rn-table--stack th, .rn-table--stack td { display: block; padding: 4px 0; border: 0; }
  .rn-table--stack th { font-family: var(--cs-font-display); font-size: 17px; }
  .rn-table--stack td[data-label]::before { content: attr(data-label); display: block; font-size: 12px; font-weight: 700; color: var(--cs-greige); letter-spacing: 0.1em; }
}
@media (min-width: 768px) { .rn-table th, .rn-table td { padding: 24px 24px 24px 0; } .rn-table--stack th[scope="row"] { font-family: var(--cs-font-display); font-weight: 600; width: 26%; } }

/* よくある質問 */
.rn-faq { border-top: 1px solid var(--cs-forest); }
.rn-faq__item { border-bottom: 1px solid var(--cs-line); }
.rn-faq__item summary { position: relative; display: block; padding: 24px 48px 24px 0; font-family: var(--cs-font-display); font-size: 17px; font-weight: 600; line-height: 1.7; letter-spacing: 0.06em; color: var(--cs-forest); cursor: pointer; list-style: none; }
.rn-faq__item summary::-webkit-details-marker { display: none; }
.rn-faq__item summary::before, .rn-faq__item summary::after { content: ""; position: absolute; right: 6px; top: 50%; width: 16px; height: 1px; background: var(--cs-forest); transition: transform .3s var(--rn-ease); }
.rn-faq__item summary::after { transform: rotate(90deg); }
.rn-faq__item[open] summary::after { transform: rotate(0); }
.rn-faq__answer { padding: 0 0 28px; }
.rn-faq__answer p + p { margin-top: 10px; }
@media (min-width: 768px) { .rn-faq__item summary { font-size: 19px; padding: 28px 56px 28px 0; } }

/* 代表のページ */
.rn-profile { display: grid; gap: 32px; align-items: start; }
.rn-profile__photo { width: 168px; height: 168px; object-fit: cover; border-radius: 50%; }
.rn .rn-profile__title { margin-top: 12px; font-size: clamp(22px, 2.6vw, 32px); }
.rn-profile__figure { margin: 0; text-align: center; }
.rn-profile__caption { margin-top: 12px; font-size: 13px; line-height: 1.6; }
.rn-profile__caption span, .rn-profile__sign span { font-size: 18px; font-weight: 600; }
.rn-profile__sign { margin-top: 24px; text-align: right; font-size: 13px; line-height: 1.7; }
.rn-profile__body > p:not([class]) { margin-top: 20px; }
.rn-badges { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 20px !important; list-style: none; }
.rn-badges li { font-size: 13px; font-weight: 700; color: var(--cs-forest); letter-spacing: 0.06em; }
.rn-badges li::before { content: "— "; color: var(--cs-clover); }
.rn-license-box { margin-top: 32px !important; padding: 4px 24px; border: 1px solid var(--cs-line); background: var(--cs-paper); font-size: 14px; }
.rn-license-box dt { padding-top: 16px; font-weight: 700; color: var(--cs-forest); }
.rn-license-box dt:not(:first-child) { border-top: 1px solid var(--cs-line); }
.rn-license-box dd { margin: 2px 0 0; padding-bottom: 16px; color: var(--cs-greige); }
.rn-access + .rn-access { margin-top: 56px; }
/* アクセスの2拠点を横に並べる（CHG-20261109-021） */
@media (min-width: 768px) {
	.rn-access-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
	.rn-access-grid .rn-access + .rn-access { margin-top: 0; }
}
/* 会社概要の表のすぐ下にアクセスを続ける（CHG-20261109-023） */
.rn-access-grid--after-table { margin-top: 64px; }
/* ご相談の実績（年間50件超）の段。解決事例へつなぐ（CHG-20261109-024） */
.rn-record { padding: calc(var(--rn-space) * 0.6) 0; background: var(--cs-paper); border-top: 1px solid var(--cs-line); border-bottom: 1px solid var(--cs-line); }
.rn-record__inner { display: grid; gap: 32px; align-items: end; }
.rn .rn-record__title { display: block; letter-spacing: 0.06em; }
.rn-record__lead { display: block; font-size: clamp(18px, 2.2vw, 24px); color: var(--cs-forest); }
.rn-record__num { display: block; margin-top: 4px; font-size: clamp(28px, 4vw, 44px); line-height: 1.2; color: var(--cs-forest); }
.rn-record__num strong { margin: 0 0.08em; font-size: clamp(88px, 14vw, 168px); font-weight: 600; line-height: 1; letter-spacing: 0; color: var(--cs-clover); }
/* 数字の左端を段どうしでそろえる：前に付く語（年間）は数字の上に置く（CHG-20261109-380） */
.rn-record__pre { display: block; }
.rn-record__num strong { margin-left: 0; }
.rn-record__text { margin: 0 !important; max-width: 30em; }
.rn-record__note { margin: 12px 0 0 !important; max-width: 30em; font-size: 14px; color: var(--cs-greige); }
.rn-record .rn-btn { margin-top: 28px; }
@media (min-width: 900px) {
  .rn-record__inner { grid-template-columns: minmax(max-content, 440px) minmax(0, 1fr); column-gap: 80px; } /* 段どうしで右の文の開始位置をそろえる（CHG-20261109-243） */
  .rn-record__body { padding-bottom: 12px; }
}
.rn .rn-access__name { font-size: 20px; }
.rn-access__addr { margin-top: 8px !important; }
.rn-access__note { margin-top: 4px !important; font-size: 14px; color: var(--cs-greige); }
.rn-map { position: relative; margin-top: 20px; aspect-ratio: 16 / 10; border: 1px solid var(--cs-line); background: var(--cs-paper); }
.rn-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.rn-access__link { margin-top: 10px !important; font-size: 14px; }
@media (min-width: 768px) { .rn-profile { grid-template-columns: 232px minmax(0, 1fr); gap: 72px; } .rn-profile__photo { width: 232px; height: 232px; } }
.rn-timeline { list-style: none; border-left: 1px solid var(--cs-line); margin-left: 4px !important; }
.rn-timeline li { position: relative; padding: 0 0 28px 32px; }
.rn-timeline li:last-child { padding-bottom: 0; }
.rn-timeline li::before { content: ""; position: absolute; left: -4px; top: 0.75em; width: 7px; height: 7px; background: var(--cs-clover); }
.rn-timeline strong { display: block; font-family: var(--cs-font-display); font-size: 17px; font-weight: 600; color: var(--cs-forest); letter-spacing: 0.06em; }

/* 事例 */
.rn-case { padding: 32px 0; border-top: 1px solid var(--cs-forest); }
.rn-case dl { display: grid; gap: 12px; margin-top: 16px !important; }
.rn-case dt { font-size: 12px; font-weight: 700; letter-spacing: 0.12em; color: var(--cs-greige); }
.rn-case dd { margin: 0; }

/* ---------- form ---------- */
.rn-form { display: grid; gap: 32px; margin-top: 32px; padding-top: 40px; border-top: 1px solid var(--cs-forest); }
.rn-form__row { display: grid; gap: 10px; }
.rn-form__label { font-weight: 700; letter-spacing: 0.06em; color: var(--cs-forest); }
.rn-req, .rn-opt { display: inline-block; margin-left: 10px; padding: 1px 8px; font-size: 11px; font-weight: 700; vertical-align: 0.15em; letter-spacing: 0.06em; }
.rn-req { background: var(--cs-forest); color: var(--cs-white); }
.rn-opt { border: 1px solid var(--cs-line); color: var(--cs-greige); }
.rn-form__help { font-size: 14px; color: var(--cs-greige); }
.rn-form input[type="text"], .rn-form input[type="email"], .rn-form input[type="tel"], .rn-form textarea { width: 100%; min-height: 56px; padding: 12px 18px; border: 1px solid #B9AE9C; border-radius: 0; background: var(--cs-white); font: inherit; font-size: 16px; color: var(--cs-ink); }
.rn-form input:focus, .rn-form textarea:focus { border-color: var(--cs-forest); outline: 2px solid var(--cs-forest); outline-offset: 0; }
.rn-form textarea { min-height: 176px; }
.rn-form .wpcf7-radio { display: grid; gap: 8px; }
.rn-form .wpcf7-list-item { margin: 0; }
.rn-form .wpcf7-list-item label { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 8px 18px; border: 1px solid var(--cs-line); background: var(--cs-white); cursor: pointer; transition: border-color .2s ease; }
.rn-form .wpcf7-list-item label:has(input:checked) { border-color: var(--cs-forest); box-shadow: inset 0 0 0 1px var(--cs-forest); }
.rn-form .wpcf7-list-item input { width: 20px; height: 20px; accent-color: var(--cs-forest); }
@media (min-width: 768px) { .rn-form .wpcf7-radio--2col { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* 相談予約フォームを短く：選ぶだけの項目は横に並べる・地域は選択・ひとことの欄は低く（CHG-20261109-032） */
.rn-form .wpcf7-radio--inline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 768px) { .rn-form .wpcf7-radio--inline { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.rn-form .wpcf7-radio--inline .wpcf7-list-item label { gap: 8px; padding: 8px 12px; font-size: 14px; white-space: nowrap; }
.rn-form select { width: 100%; min-height: 56px; padding: 12px 44px 12px 18px; border: 1px solid #B9AE9C; border-radius: 0; background: var(--cs-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231E3A1B' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 18px center; font: inherit; font-size: 16px; color: var(--cs-ink); appearance: none; -webkit-appearance: none; }
.rn-form textarea.rn-form__short { min-height: 104px; }
.rn-form .wpcf7-not-valid { border-color: #B42318 !important; }
.rn-form .wpcf7-not-valid-tip { margin-top: 4px; color: #B42318; font-size: 14px; font-weight: 700; }
.rn-form .wpcf7-submit { width: 100%; min-height: 64px; border: 0; border-radius: 0; background: var(--cs-forest); color: var(--cs-white); font: inherit; font-size: 17px; font-weight: 700; letter-spacing: 0.16em; cursor: pointer; transition: background-color .3s ease; }
.rn-form .wpcf7-submit:hover { background: var(--cs-clover); }
.rn-form .wpcf7-submit:disabled { background: #9AA596; cursor: not-allowed; }
.rn-form .wpcf7-acceptance label { display: flex; align-items: center; gap: 12px; min-height: 48px; cursor: pointer; }
.rn .wpcf7-response-output { margin: 24px 0 0 !important; padding: 16px !important; }
.rn .wpcf7 form.sent .wpcf7-response-output { border-color: var(--cs-forest) !important; }
.rn-privacy { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--cs-line); font-size: 14px; color: var(--cs-greige); }
.rn-privacy h3 { font-size: 15px !important; margin-bottom: 8px !important; }

/* ---------- footer（森の緑） ---------- */
.rn-footer { background: var(--cs-forest); color: var(--cs-on-dark-muted); padding: 88px 0 0; font-size: 14px; }
.rn-footer__inner { display: grid; gap: 56px; }
/* 上：メニュー6区分（PC 3列×2段、スマホは開け閉め。CHG-20261109-150）。下：ロゴ・住所と電話番号（CHG-20261109-100） */
.rn-footer__nav { display: grid; gap: 0; padding-bottom: 48px; border-bottom: 1px solid var(--cs-on-dark-line); }
.rn .rn-footer__nav .rn-footer__heading { margin: 0 !important; }
.rn-footer__group { border-top: 1px solid var(--cs-on-dark-line); }
.rn-footer__group:first-child { border-top: 0; }
.rn-footer__group summary { list-style: none; display: flex; align-items: center; min-height: 56px; cursor: pointer; }
.rn-footer__group summary::-webkit-details-marker { display: none; }
.rn-footer__group summary::after { content: ""; margin-left: auto; width: 9px; height: 9px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-3px); transition: transform .2s; }
.rn-footer__group[open] summary::after { transform: rotate(-135deg) translateY(-3px); }
.rn-footer__num { margin-right: 12px; color: var(--cs-on-dark-muted); letter-spacing: 0.1em; }
.rn-footer__nav .rn-footer__list { padding-bottom: 16px; }
.rn-footer__contact .rn-footer__cta { justify-content: center; background: var(--cs-cream) !important; color: var(--cs-forest) !important; text-decoration: none !important; min-height: 52px; padding-inline: 32px; margin-top: 20px; }
.rn-footer__base { display: grid; gap: 48px; }
@media (min-width: 768px) {
  .rn-footer__nav { grid-template-columns: repeat(3, 1fr); column-gap: 48px; row-gap: 48px; }
  .rn-footer__group, .rn-footer__group:first-child { border-top: 0; }
  .rn-footer__group summary { min-height: 0; padding-bottom: 14px; cursor: default; pointer-events: none; }
  .rn-footer__group summary::after { display: none; }
  .rn-footer__nav .rn-footer__list { padding-bottom: 0; }
  .rn-footer__base { grid-template-columns: 1.4fr 1fr; gap: 72px; }
}
@media (min-width: 1024px) {
  .rn-footer { padding-top: 120px; }
  .rn-footer__inner { gap: 64px; }
  .rn-footer__nav { column-gap: 72px; row-gap: 56px; padding-bottom: 64px; }
}
@media (min-width: 1200px) {
  .rn-footer__nav { grid-template-columns: repeat(5, auto); justify-content: space-between; column-gap: 40px; }
}
.rn-footer__logo { width: 156px; height: auto; }
.rn-footer__name { margin-top: 20px !important; font-family: var(--cs-font-display); font-size: 18px; font-weight: 600; letter-spacing: 0.14em; color: var(--cs-white); }
.rn-footer__defs { display: grid; gap: 14px; margin-top: 20px !important; }
.rn-footer__defs dt { font-size: 12px; letter-spacing: 0.14em; color: var(--cs-on-dark); }
.rn-footer__defs dd { margin: 0; }
.rn-footer__heading { margin: 28px 0 12px !important; font-family: var(--cs-font-label); font-size: 12px; letter-spacing: 0.2em; color: var(--cs-on-dark); }
.rn-footer__heading:first-child { margin-top: 0 !important; }
.rn-footer__tel { color: var(--cs-on-dark-muted); }
.rn-footer__tel a { display: block; font-family: var(--cs-font-display); font-size: 24px; font-weight: 600; color: var(--cs-white) !important; text-decoration: none; letter-spacing: 0.06em; }
.rn-footer__tel + .rn-footer__tel { margin-top: 12px !important; }
.rn-footer__tel--sub { font-size: 13px; }
.rn-footer__tel--sub a { font-size: 16px; font-weight: 500; letter-spacing: 0.04em; }
.rn-footer__small { margin-top: 10px !important; }
.rn-footer__small a { color: var(--cs-on-dark) !important; }
.rn-footer__nav ul { display: grid; gap: 0; list-style: none; }
.rn-footer__nav a { display: inline-flex; min-height: 36px; align-items: center; color: var(--cs-on-dark) !important; text-decoration: none; }
.rn-footer__nav a:hover { text-decoration: underline; }
.rn-credits { margin-top: 56px; font-size: 11px; line-height: 1.8; color: var(--cs-on-dark-muted); }
.rn-credits summary { cursor: pointer; width: max-content; letter-spacing: 0.12em; }
.rn-credits ul { display: grid; gap: 4px; margin-top: 12px; list-style: none; }
.rn-credits a { color: var(--cs-on-dark-muted) !important; }
.rn-footer__copy { margin-top: 72px; padding: 20px; border-top: 1px solid var(--cs-on-dark-line); text-align: center; font-size: 12px; letter-spacing: 0.14em; }

/* ---------- fixed bar（スマホ） ---------- */
.rn-fixed-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: grid; grid-template-columns: 1fr 1.6fr; background: var(--cs-forest); padding-bottom: env(safe-area-inset-bottom); }
.rn-fixed-bar a { display: flex; align-items: center; justify-content: center; min-height: 58px; font-weight: 700; text-decoration: none; letter-spacing: 0.1em; }
.rn-fixed-bar__tel { color: var(--cs-on-dark) !important; border-right: 1px solid var(--cs-on-dark-line); }
.rn-fixed-bar__cta { background: var(--cs-cream); color: var(--cs-forest) !important; }
body.rn { padding-bottom: 58px; }
/* reCAPTCHA のバッジは隠し、フォームの下に文言で示す（Google の定める表示方法） */
.rn .grecaptcha-badge { visibility: hidden; }
@media (min-width: 768px) { .rn-fixed-bar { display: none; } body.rn { padding-bottom: 0; } }

/* ---------- 動き（guidelines.md 6章：静かに、読む邪魔をしない） ---------- */
/* 現れる：JS が html に rn-js を付けたときだけ隠してから出す。translate を使い、触れたときの動きと干渉させない */
html.rn-js .rn-reveal { opacity: 0; translate: 0 24px; transition: opacity 1s var(--rn-ease), translate 1s var(--rn-ease); transition-delay: calc(var(--rn-i, 0) * .1s); }
html.rn-js .rn-reveal.is-in { opacity: 1; translate: 0 0; }
/* 写真：入ってきたとき、少し寄った状態からゆっくり引く */
html.rn-js .rn-zoom img { transform: scale(1.12); transition: transform 2.4s var(--rn-ease); }
html.rn-js .rn-zoom.is-in img { transform: scale(1); }
/* ファーストビュー：読み込み時に一度だけ */
html.rn-js .rn-hero__media img, html.rn-js .rn-page-hero__media img { animation: rn-settle 3.2s var(--rn-ease) both; }
html.rn-js .rn-hero__eyebrow, html.rn-js .rn-page-hero__label { animation: rn-rise 1.1s var(--rn-ease) .2s both; }
html.rn-js .rn-hero__title, html.rn-js .rn-page-hero__title { animation: rn-rise 1.2s var(--rn-ease) .35s both; }
html.rn-js .rn-hero__lead, html.rn-js .rn-page-hero__lead { animation: rn-rise 1.2s var(--rn-ease) .55s both; }
html.rn-js .rn-hero__actions { animation: rn-rise 1.2s var(--rn-ease) .75s both; }
html.rn-js .rn-hero__tagline { animation: rn-fade 1.6s ease 1.2s both; }
html.rn-js .rn-hero__scroll::after { animation: rn-line 2.4s var(--rn-ease) 1.6s infinite; }
@keyframes rn-rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes rn-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes rn-settle { from { transform: scale(1.1); } to { transform: scale(1); } }
@keyframes rn-line { 0% { transform: scaleX(0); transform-origin: left; } 45% { transform: scaleX(1); transform-origin: left; } 55% { transform: scaleX(1); transform-origin: right; } 100% { transform: scaleX(0); transform-origin: right; } }

/* 代表の写真（ファーストビュー。2026-10-23 小野隆士さんの依頼）。2026-11-03 から縦長の上半身の写真（photo_ono_full.jpg、2:3）を角の四角で出す（CHG-20261103-010） */
.rn-hero__inner { position: relative; }
.rn-hero__person { display: flex; align-items: center; gap: 16px; width: fit-content; max-width: 100%; margin-top: 32px; padding: 10px 20px 10px 10px; border: 1px solid var(--cs-on-dark-line); background: rgba(20, 34, 18, 0.45); backdrop-filter: blur(6px); color: var(--cs-on-dark) !important; text-decoration: none; transition: background-color .3s ease; }
.rn-hero__person:hover { background: rgba(20, 34, 18, 0.7); }
.rn-hero__person img { flex: none; width: 64px; height: 96px; object-fit: cover; object-position: center top; border: 2px solid var(--cs-cream); }
.rn-hero__person-body { display: grid; gap: 4px; min-width: 0; }
.rn-hero__person-quote { font-family: var(--cs-font-display); font-size: 15px; font-weight: 600; line-height: 1.6; letter-spacing: 0.06em; color: var(--cs-white); }
.rn-hero__person-name { font-size: 12px; letter-spacing: 0.14em; color: var(--cs-on-dark-muted); }
@media (min-width: 1024px) {
  .rn-hero__person { position: absolute; right: calc(var(--rn-gutter) + 40px); bottom: 72px; margin-top: 0; padding: 14px 28px 14px 14px; gap: 20px; }
  .rn-hero__person img { width: 100px; height: 150px; }
  .rn-hero__person-quote { font-size: 19px; }
  .rn-hero__tagline { top: 34%; }
}
@media (max-width: 1023px) {
  .rn-hero__inner { display: flex; flex-direction: column; padding-top: 64px; }
  .rn-hero__person { order: 4; margin-top: 24px; padding: 8px 16px 8px 8px; gap: 12px; }
  .rn-hero__person img { width: 48px; height: 72px; }
  .rn-hero__person-quote { font-size: 13px; }
  .rn-hero__person-name { font-size: 11px; }
  .rn-hero__actions { order: 5; margin-top: 20px; }
}
html.rn-js .rn-hero__person { animation: rn-rise 1.2s var(--rn-ease) .95s both; }

.admin-bar .rn-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rn-header { top: 46px; } }
@media (prefers-reduced-motion: reduce) { .rn *, .rn *::before, .rn *::after { transition: none !important; animation: none !important; } .rn-band__media img { transform: none !important; } }
html.rn-js .rn-gate.rn-zoom.is-in:hover img { transform: scale(1.05); }

/* ---------- HikiAI Cloud に移したときに足したもの（お知らせ・記事・フォームの補助） ---------- */
.rn-news { list-style: none; border-top: 1px solid var(--cs-forest); }
.rn-news li { border-bottom: 1px solid var(--cs-line); }
.rn-news a { display: grid; gap: 4px 28px; padding: 22px 0; color: var(--cs-ink) !important; text-decoration: none; }
.rn-news time { font-family: var(--cs-font-label); font-size: 13px; letter-spacing: 0.1em; color: var(--cs-clover); }
.rn-news span { font-family: var(--cs-font-display); font-size: 17px; font-weight: 600; letter-spacing: 0.04em; color: var(--cs-forest); }
.rn-news a:hover span { color: var(--cs-clover); }
@media (min-width: 768px) { .rn-news a { grid-template-columns: 120px minmax(0, 1fr); align-items: baseline; } }
.rn-pager { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 32px; margin-top: 40px; }
.rn-pager .rn-textlink { margin-top: 0; }
.rn-pager__now { font-family: var(--cs-font-label); font-size: 13px; letter-spacing: 0.1em; color: var(--cs-greige); }
.rn-news-date { margin-bottom: 32px !important; font-family: var(--cs-font-label); letter-spacing: 0.1em; color: var(--cs-greige); }
.rn-news-ended { margin: -16px 0 32px !important; padding: 12px 16px; border-left: 3px solid var(--cs-greige); background: rgba(0,0,0,0.03); font-weight: 600; }
.rn-article > * + * { margin-top: 1.2em; }
.rn-article h2 { margin-top: 2.4em !important; font-size: clamp(22px, 2.6vw, 28px); }
.rn-article h3 { margin-top: 2em !important; font-size: 19px; }
.rn-article ul:not([class]), .rn-article ol:not([class]) { padding-left: 1.4em; }
.rn-article img { display: block; height: auto; margin: 1.6em 0; }
.rn-article table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--cs-forest); }
.rn-article th, .rn-article td { padding: 12px 8px 12px 0; border-bottom: 1px solid var(--cs-line); text-align: left; vertical-align: top; }
/* 規約・方針のような読み物（個人情報の取り扱いなど）は見出しを小さく、すっきり見せる（CHG-20261109-027） */
.rn-main:has(.rn-doc) .rn-page-hero__title { font-size: clamp(22px, 2.6vw, 30px); }
.rn-main:has(.rn-col) .rn-page-hero__title { font-size: clamp(24px, 3.2vw, 40px); line-height: 1.5; letter-spacing: 0.05em; } /* コラムの題は長いので小さく（11/9 小野さん「デカすぎ」） */
.rn-main:has(.rn-doc) .rn-page-hero { padding: 40px 0 48px; }
.rn-content > .rn-section:has(.rn-doc) { padding: 64px 0 96px; }
.rn-content .rn-section > .rn-container.rn-doc > h2 { margin: 2.6em 0 0 !important; padding-bottom: 10px; border-bottom: 1px solid var(--cs-line); font-size: 19px; line-height: 1.6; letter-spacing: 0.06em; }
.rn-content .rn-section > .rn-container.rn-doc > h2::before { content: none; }
.rn-doc > h2 + * { margin-top: 16px !important; }
.rn-doc p, .rn-doc li { font-size: 15px; line-height: 2; }
.rn-content .rn-section > .rn-container.rn-doc > p:not([class]) { max-width: none; }
.rn-doc .rn-list-dot li { padding-top: 10px; padding-bottom: 10px; }
.rn-doc .rn-list-dot li::before { top: 22px; }
.rn-case-body { margin-top: 40px; font-size: 17px; line-height: 2.2; }
.rn-case-body > * + * { margin-top: 1em; }
.rn-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rn-form__errors { padding: 16px 20px; border-left: 3px solid #B42318; background: var(--cs-paper); color: #B42318; font-weight: 700; }
.rn-form fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.rn-form legend { padding: 0; margin-bottom: 10px; }

/* ---------- 根拠のグラフ（F-HKA-014、2026-10-27）。描くのは app/Coco/Chart.php ----------
   色は森の緑（伝えたい値）と、くすんだベージュ（比べる値）だけ。値はすべて文字で添える。
   箱で囲まず、上の線と出典の線で区切る */
.rn .rn-chart { --rn-chart-surface: var(--cs-cream); --rn-chart-muted: #B8AE9C; margin-top: 56px; padding-top: 28px; border-top: 1px solid var(--cs-forest); }
.rn-section--soft .rn .rn-chart { --rn-chart-surface: var(--cs-paper); }
.rn-chart__title { font-family: var(--cs-font-display); font-size: clamp(19px, 2.2vw, 24px); font-weight: 600; line-height: 1.6; letter-spacing: 0.06em; color: var(--cs-forest); text-wrap: balance; word-break: auto-phrase; }
.rn-chart__sub { margin-top: 6px !important; font-size: 13px; line-height: 1.7; color: var(--cs-greige); }
.rn-chart__foot { display: grid; gap: 6px; margin-top: 24px; padding-top: 14px; border-top: 1px solid var(--cs-line); font-size: 12px; line-height: 1.8; color: var(--cs-greige); }
.rn-chart__note { font-size: 13px; color: var(--cs-ink); }
.rn-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
/* 表は width が効かず、折り返さないと横に伸びてスマホで横スクロールが出た（CHG-20261029-015） */
table.rn-sr { white-space: normal; }

/* 縦の棒 */
.rn .rn-cols { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); margin-top: 28px; }
.rn-col { display: flex; flex-direction: column; align-items: center; min-width: 0; }
.rn-col__area { display: flex; flex-direction: column; justify-content: flex-end; align-items: center; width: 100%; height: 200px; padding-top: 30px; border-bottom: 1px solid var(--cs-greige); }
.rn-col__val { margin-bottom: 6px; font-size: 12px; font-weight: 700; line-height: 1.2; letter-spacing: 0; color: var(--cs-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.rn-col__bar { display: block; width: min(64%, 40px); background: var(--rn-chart-muted); }
.rn-col.is-hl .rn-col__bar { background: var(--cs-forest); }
.rn-col.is-hl .rn-col__val { font-size: 15px; color: var(--cs-forest); }
.rn-col__cat { margin-top: 10px; font-size: 11px; line-height: 1.5; letter-spacing: 0; color: var(--cs-greige); text-align: center; white-space: nowrap; }
.rn-col.is-hl .rn-col__cat { color: var(--cs-forest); font-weight: 700; }
@media (max-width: 767px) {
  .rn-col.is-minor .rn-col__val, .rn-col.is-minor .rn-col__cat { visibility: hidden; }
  .rn-cols.is-dense .rn-col__cat, .rn-cols.is-dense .rn-col__val { font-size: 10px; }
  .rn-cols.is-dense .rn-col.is-hl .rn-col__val { font-size: 12px; }
}
@media (min-width: 768px) { .rn-col__area { height: 260px; } .rn-col__val { font-size: 13px; } .rn-col.is-hl .rn-col__val { font-size: 17px; } .rn-col__cat { font-size: 12px; } }

/* 横の棒：スマホは名前の下に棒、PC は1行 */
.rn .rn-bars { list-style: none; display: grid; gap: 16px; margin-top: 28px; }
.rn-bar { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "cat val" "track track"; gap: 4px 16px; align-items: baseline; }
.rn-bar__cat { grid-area: cat; font-size: 14px; line-height: 1.6; color: var(--cs-ink); }
.rn-bar__cat small { margin-left: 8px; font-size: 12px; color: var(--cs-greige); white-space: nowrap; }
.rn-bar__val { grid-area: val; font-size: 14px; font-weight: 700; color: var(--cs-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.rn-bar__track { grid-area: track; display: block; height: 12px; }
.rn-bar__fill { display: block; height: 100%; background: var(--rn-chart-muted); }
.rn-bar.is-hl .rn-bar__fill { background: var(--cs-forest); }
.rn-bar.is-hl .rn-bar__cat, .rn-bar.is-hl .rn-bar__val { color: var(--cs-forest); font-weight: 700; }
@media (min-width: 768px) {
  .rn-bar { grid-template-columns: 17em minmax(0, 1fr) 4.5em; grid-template-areas: "cat track val"; align-items: center; }
  .rn-bar__track { height: 16px; }
  .rn-bar__val { text-align: right; }
}

/* 折れ線：線は SVG を伸ばし、点と文字は HTML */
.rn .rn-legend { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 24px; margin-top: 20px; font-size: 13px; line-height: 1.6; color: var(--cs-ink); }
.rn-legend__item::before { content: ""; display: inline-block; width: 24px; margin-right: 8px; border-top: 2px solid var(--cs-forest); vertical-align: middle; }
.rn-legend__item.is-dashed::before { border-top: 2px dashed var(--cs-greige); }
.rn-line { margin-top: 24px; }
.rn-line__plot { position: relative; height: 240px; margin: 0 14px; }
.rn-line__grid { position: absolute; left: -14px; right: -14px; border-top: 1px solid var(--cs-line); }
.rn-line__grid span { position: absolute; left: 0; bottom: 2px; font-size: 11px; line-height: 1; color: var(--cs-greige); }
.rn-line__band { position: absolute; top: 0; bottom: 0; border-left: 1px solid rgba(30, 58, 27, 0.4); background: rgba(30, 58, 27, 0.06); }
.rn-line__band span { position: absolute; top: 8px; left: 10px; right: 8px; font-size: 12px; font-weight: 700; line-height: 1.5; color: var(--cs-forest); }
.rn-line__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.rn-line__svg polyline { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.rn-line__svg .is-solid { stroke: var(--cs-forest); }
.rn-line__svg .is-dashed { stroke: var(--cs-greige); stroke-dasharray: 6 5; }
.rn-line__dot { position: absolute; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: var(--cs-forest); box-shadow: 0 0 0 2px var(--rn-chart-surface); }
.rn-line__dot.is-dashed { background: var(--cs-greige); }
.rn-line__label { position: absolute; transform: translate(-50%, calc(-100% - 10px)); font-size: 13px; font-weight: 700; line-height: 1.2; color: var(--cs-ink); white-space: nowrap; }
.rn-line__label.is-end { transform: translate(calc(-100% + 6px), calc(-100% - 10px)); }
.rn-line__label.is-below { transform: translate(-50%, 12px); }
.rn-line__label.is-end.is-below { transform: translate(calc(-100% + 6px), 12px); }
.rn-line__x { position: relative; height: 22px; margin: 10px 14px 0; }
.rn-line__x span { position: absolute; transform: translateX(-50%); font-size: 12px; line-height: 1.5; color: var(--cs-greige); white-space: nowrap; }
.rn-line__x-title { margin-top: 4px !important; font-size: 12px; color: var(--cs-greige); }
@media (min-width: 768px) { .rn-line__plot { height: 320px; } }

/* 現れるとき、棒が伸びる（rn-js のときだけ。動きを減らす設定では伸ばさない） */
html.rn-js .rn-chart.rn-reveal .rn-col__bar { transform: scaleY(0); transform-origin: bottom; transition: transform 1.2s var(--rn-ease) .3s; }
html.rn-js .rn-chart.rn-reveal .rn-bar__fill { transform: scaleX(0); transform-origin: left; transition: transform 1.2s var(--rn-ease) .3s; }
html.rn-js .rn-chart.rn-reveal.is-in .rn-col__bar, html.rn-js .rn-chart.rn-reveal.is-in .rn-bar__fill { transform: none; }

/* トップの「数字で見る」：大きな明朝の数字を線で区切る */
.rn-facts { padding: 0 0 var(--rn-space); background: var(--cs-cream); }
.rn-facts .rn-head { margin-bottom: 40px; }
.rn-facts .rn-head__title { font-size: clamp(26px, 3.4vw, 44px); }
.rn .rn-facts__list { list-style: none; border-top: 1px solid var(--cs-forest); }
.rn-facts__list > li { padding: 28px 0 32px; border-bottom: 1px solid var(--cs-line); }
.rn-facts__num { display: block; font-family: var(--cs-font-display); font-size: clamp(48px, 5.6vw, 76px); font-weight: 600; line-height: 1.15; letter-spacing: 0.02em; color: var(--cs-forest); }
.rn-facts__num small { margin-left: 4px; font-size: 0.4em; letter-spacing: 0.06em; }
.rn-facts__text { display: block; margin-top: 10px; font-size: 15px; line-height: 1.9; color: var(--cs-ink); }
.rn-facts__src { display: block; margin-top: 8px; font-size: 12px; line-height: 1.7; color: var(--cs-greige); }
.rn-facts .rn-textlink { margin-top: 40px; }
@media (min-width: 1024px) {
  .rn-facts__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 56px; }
  .rn-facts__list > li { padding: 40px 0 0; border-bottom: 0; }
}

/* ============================================================
   解決事例の型（CHG-20261028-003・F-HKA-015、2026-10-28）
   調べたもの：Pinterest 271 件、日本の相続・資産・土地活用・仲介 31 社、海外の編集的な事例ページ
   一覧：大きく見せる1件 → 絞り込み → 写真のカード（場所・相談した人・番号 → 結果の見出し → 数字 → ご相談の内容）
   1件：写真と結果の見出し → 概要 → 3行 → 数字 → 家族と資産 → ご相談のとき → 考えた道 → 進め方 → いま → 声 → 関わった人
   ============================================================ */
.rn-cs-feature__title, .rn-cs-digest p, .rn-cs-section__title, .rn-cs-quote p, .rn-cs-staff blockquote p, .rn-cs-index__head h2 { word-break: auto-phrase; }
.rn-cs-meta { display: flex; flex-wrap: wrap; gap: 6px 0; font-family: var(--cs-font-label); font-size: 12px; letter-spacing: 0.18em; color: var(--cs-clover); }
.rn-cs-meta span + span::before { content: ""; display: inline-block; width: 18px; height: 1px; margin: 0 12px; vertical-align: middle; background: var(--cs-line); }
.rn-cs-arrow { position: relative; display: inline-block; flex: none; width: 28px; height: 1px; margin: 0 12px; vertical-align: middle; background: currentColor; }
.rn-cs-arrow::after { content: ""; position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); }

/* 一覧：大きく見せる1件（写真を左半分いっぱいに） */
.rn-content > .rn-cs-feature { display: grid; background: var(--cs-paper); }
.rn-cs-feature[hidden] { display: none !important; }
.rn-cs-feature__media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--cs-forest); }
.rn-cs-feature__media img { width: 100%; height: 100%; object-fit: cover; }
.rn-cs-feature__body { padding: 48px var(--rn-gutter) 64px; }
.rn .rn-cs-feature__title { margin-top: 20px; font-size: clamp(26px, 3.2vw, 44px); line-height: 1.55; }
.rn-cs-feature__title a { color: inherit !important; text-decoration: none; }
.rn-cs-feature__title a:hover { color: var(--cs-clover) !important; }
.rn-cs-feature__who { margin-top: 16px !important; font-size: 14px; letter-spacing: 0.1em; color: var(--cs-greige); }
.rn-cs-feature .rn-cs-digest { margin-top: 36px; }
@media (min-width: 1024px) {
  .rn-content > .rn-cs-feature { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); min-height: 640px; }
  .rn-cs-feature__media { aspect-ratio: auto; height: 100%; }
  .rn-cs-feature__body { align-self: center; padding: 80px max(var(--rn-gutter), calc((100vw - var(--rn-content-max)) / 2)) 80px 72px; }
}

/* 3行で分かる流れ（ご相談のとき → 見立て → いま） */
.rn-cs-digest { list-style: none; display: grid; border-top: 1px solid var(--cs-forest); counter-reset: rn-cs; }
.rn-cs-digest > li { counter-increment: rn-cs; position: relative; display: grid; align-content: start; gap: 8px; padding: 24px 0 28px; border-bottom: 1px solid var(--cs-line); }
.rn-cs-digest__label { display: flex; align-items: center; gap: 12px; font-family: var(--cs-font-label); font-size: 12px; font-weight: 600; letter-spacing: 0.18em; color: var(--cs-clover); }
.rn-cs-digest__label::before { content: counter(rn-cs, decimal-leading-zero); font-size: 13px; letter-spacing: 0.06em; }
.rn-cs-digest p { font-family: var(--cs-font-display); font-size: clamp(18px, 1.9vw, 23px); font-weight: 600; line-height: 1.75; letter-spacing: 0.06em; color: var(--cs-forest); }
.rn-cs-digest--compact p { font-family: var(--cs-font-body); font-size: 15px; font-weight: 400; line-height: 1.9; letter-spacing: 0.04em; color: var(--cs-ink); }
.rn-cs-digest--compact > li { padding: 16px 0 18px; }
@media (min-width: 1024px) {
  .rn-cs-digest:not(.rn-cs-digest--compact) { grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 0; }
  .rn-cs-digest:not(.rn-cs-digest--compact) > li { gap: 20px; padding: 32px 48px 8px; border-bottom: 0; border-top: 1px solid var(--cs-forest); }
  .rn-cs-digest:not(.rn-cs-digest--compact) > li + li { border-left: 1px solid var(--cs-line); }
  .rn-cs-digest:not(.rn-cs-digest--compact) > li:first-child { padding-left: 0; }
  .rn-cs-digest:not(.rn-cs-digest--compact) > li:not(:last-child)::after { content: ""; position: absolute; right: -6px; top: -6px; width: 11px; height: 11px; border-top: 1px solid var(--cs-forest); border-right: 1px solid var(--cs-forest); transform: rotate(45deg); background: var(--cs-paper); }
  .rn-cs-feature .rn-cs-digest--compact > li { grid-template-columns: 9em minmax(0, 1fr); align-items: baseline; }
}

/* 一覧：見出しと件数、絞り込み */
.rn-cs-index__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px 40px; margin-bottom: 40px; }
.rn-content .rn-cs-index__head h2 { font-size: clamp(28px, 4vw, 52px); line-height: 1.5; }
.rn-cs-index__count { font-size: 14px; letter-spacing: 0.12em; color: var(--cs-greige); }
.rn-cs-index__num { margin-right: 8px; font-family: var(--cs-font-display); font-size: clamp(48px, 6vw, 80px); font-weight: 600; line-height: 1; letter-spacing: 0.02em; color: var(--cs-forest); }
.rn-cs-filter { display: grid; gap: 0; margin-bottom: 40px; border-top: 1px solid var(--cs-forest); border-bottom: 1px solid var(--cs-line); }
.rn-cs-filter__row { display: grid; gap: 4px 32px; padding: 16px 0; }
.rn-cs-filter__row + .rn-cs-filter__row, .rn-cs-filter__more, .rn-cs-filter__more .rn-cs-filter__row { border-top: 1px solid var(--cs-line); }
.rn-cs-filter__name { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; color: var(--cs-greige); }
.rn-cs-filter ul { display: flex; flex-wrap: wrap; gap: 4px 28px; list-style: none; }
.rn-cs-filter a { position: relative; display: inline-flex; align-items: baseline; gap: 6px; min-height: 44px; padding-top: 10px; color: var(--cs-greige); font-family: var(--cs-font-display); font-size: 16px; font-weight: 600; letter-spacing: 0.08em; text-decoration: none; transition: color .3s ease; }
.rn-cs-filter a span { font-family: var(--cs-font-label); font-size: 12px; color: var(--cs-clover); }
.rn-cs-filter a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 6px; height: 1px; background: var(--cs-forest); transform: scaleX(0); transform-origin: left; transition: transform .4s var(--rn-ease); }
.rn-cs-filter a:hover, .rn-cs-filter a[aria-current="true"] { color: var(--cs-forest); }
.rn-cs-filter a[aria-current="true"]::after { transform: scaleX(1); }
.rn-cs-filter__more summary { display: flex; align-items: baseline; gap: 12px; min-height: 52px; padding: 14px 0; list-style: none; cursor: pointer; font-family: var(--cs-font-display); font-size: 16px; font-weight: 600; letter-spacing: 0.08em; color: var(--cs-forest); }
.rn-cs-filter__more summary::-webkit-details-marker { display: none; }
.rn-cs-filter__more summary span { font-family: var(--cs-font-body); font-size: 12px; font-weight: 400; letter-spacing: 0.1em; color: var(--cs-greige); }
.rn-cs-filter__more summary::after { content: ""; flex: none; align-self: center; width: 8px; height: 8px; margin-left: auto; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateY(-3px) rotate(45deg); transition: transform .3s var(--rn-ease); }
.rn-cs-filter__more[open] summary::after { transform: translateY(2px) rotate(-135deg); }
/* 言葉で探す（CHG-20261029-010）。枠は下線1本、ボタンは文字と線（ピル型にしない） */
.rn-cs-search { margin-bottom: 0; }
.rn-cs-search + .rn-cs-filter { border-top: 0; }   /* 検索欄の下線を、絞り込みの上の線にする（線が2本続かないように） */
.rn-cs-search__label { display: block; margin-bottom: 4px; font-size: 12px; font-weight: 700; letter-spacing: 0.16em; color: var(--cs-greige); }
.rn-cs-search__box { display: flex; align-items: stretch; border-bottom: 1px solid var(--cs-forest); }
.rn-cs-search input[type="search"] { flex: 1 1 auto; min-width: 0; min-height: 56px; padding: 8px 0; border: 0; border-radius: 0; background: transparent; color: var(--cs-ink); font-family: var(--cs-font-display); font-size: clamp(18px, 2vw, 22px); letter-spacing: 0.04em; -webkit-appearance: none; appearance: none; }
.rn-cs-search input[type="search"]::placeholder { color: var(--cs-greige); opacity: .6; }
.rn-cs-search input[type="search"]:focus { outline: none; }
.rn-cs-search__box:focus-within { box-shadow: 0 1px 0 0 var(--cs-forest); }
.rn-cs-search button { flex: none; display: inline-flex; align-items: center; gap: 12px; min-width: 44px; padding: 0 0 0 16px; border: 0; background: none; color: var(--cs-forest); font-family: var(--cs-font-display); font-size: 16px; font-weight: 600; letter-spacing: 0.12em; cursor: pointer; }
.rn-cs-search button::after { content: ""; width: 28px; height: 1px; background: currentColor; transition: width .4s var(--rn-ease); }
.rn-cs-search button:hover::after { width: 40px; }
/* いまの条件（押すと外れる） */
.rn-cs-active { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 20px; margin: -16px 0 40px; }
.rn-cs-active__name { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; color: var(--cs-greige); }
.rn-cs-active ul { display: flex; flex-wrap: wrap; gap: 4px 20px; list-style: none; }
.rn-cs-active ul a { display: inline-flex; align-items: baseline; gap: 6px; min-height: 44px; padding-top: 10px; color: var(--cs-forest); font-size: 14px; text-decoration: none; }
.rn-cs-active ul a span { font-size: 13px; color: var(--cs-greige); }
.rn-cs-active ul a:hover span { color: var(--cs-forest); }
.rn-cs-active__clear { margin-left: auto; min-height: 44px; padding-top: 10px; font-size: 13px; color: var(--cs-greige); text-underline-offset: 4px; }
/* ページ送り */
.rn-cs-pager { display: flex; align-items: center; justify-content: center; gap: 8px 24px; margin-top: 64px; padding-top: 24px; border-top: 1px solid var(--cs-line); font-family: var(--cs-font-label); }
.rn-cs-pager ol { display: flex; gap: 4px; list-style: none; }
.rn-cs-pager ol a, .rn-cs-pager ol span, .rn-cs-pager__gap { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; font-size: 18px; color: var(--cs-greige); text-decoration: none; }
.rn-cs-pager ol a:hover { color: var(--cs-forest); }
.rn-cs-pager [aria-current="page"] { color: var(--cs-forest); font-weight: 600; box-shadow: inset 0 -1px 0 var(--cs-forest); }
.rn-cs-pager__step { min-height: 44px; display: inline-flex; align-items: center; font-family: var(--cs-font-display); font-size: 15px; letter-spacing: 0.12em; color: var(--cs-forest); text-decoration: none; }
span.rn-cs-pager__step { color: var(--cs-line); }
@media (min-width: 768px) { .rn-cs-filter__row { grid-template-columns: 8em minmax(0, 1fr); align-items: center; } }

/* 写真のカード：列のあいだを線で区切る（箱で囲まない） */
.rn-cs-grid { display: grid; list-style: none; border-top: 1px solid var(--cs-line); }
.rn-cs-card { border-bottom: 1px solid var(--cs-line); }
.rn-cs-card[hidden] { display: none; }
.rn-cs-card__link { display: grid; gap: 14px; padding: 28px 0 32px; color: var(--cs-ink) !important; text-decoration: none; }
.rn-cs-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--cs-forest); }
.rn-cs-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--rn-ease); }
.rn-cs-card__link:hover .rn-cs-card__media img { transform: scale(1.05); }
.rn-cs-card__meta { display: flex; justify-content: space-between; gap: 16px; margin-top: 6px; font-size: 12px; letter-spacing: 0.12em; color: var(--cs-greige); }
.rn-cs-card__no { flex: none; font-family: var(--cs-font-label); color: var(--cs-clover); }
.rn-cs-card__title { font-family: var(--cs-font-display); font-size: clamp(19px, 1.7vw, 22px); font-weight: 600; line-height: 1.7; letter-spacing: 0.06em; color: var(--cs-forest); word-break: auto-phrase; transition: color .3s ease; }
.rn-cs-card__link:hover .rn-cs-card__title { color: var(--cs-clover); }
.rn-cs-card__num { display: grid; gap: 2px; padding-top: 14px; border-top: 1px solid var(--cs-line); }
.rn-cs-card__label { font-size: 12px; letter-spacing: 0.12em; color: var(--cs-greige); }
.rn-cs-card__figure { font-family: var(--cs-font-display); font-size: 40px; font-weight: 600; line-height: 1.2; color: var(--cs-forest); }
.rn-cs-card__figure small { margin-left: 4px; font-size: 15px; letter-spacing: 0.08em; }
.rn-cs-card__change { display: flex; flex-wrap: wrap; align-items: center; font-family: var(--cs-font-display); font-size: 17px; font-weight: 600; line-height: 1.6; letter-spacing: 0.04em; color: var(--cs-forest); }
.rn-cs-card__change .rn-cs-arrow { color: var(--cs-clover); }
.rn-cs-card__tags { font-size: 12px; letter-spacing: 0.12em; color: var(--cs-clover); }
.rn-cs-card { position: relative; }
@media (min-width: 768px) {
  .rn-cs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 64px; border-top: 0; }
  .rn-cs-card { border-top: 1px solid var(--cs-line); border-bottom: 0; }
  .rn-cs-card__link { height: 100%; padding: 32px 0 40px; align-content: start; }
  .rn-cs-card:nth-child(2n)::before { content: ""; position: absolute; left: -32px; top: 0; bottom: 0; width: 1px; background: var(--cs-line); }
}
@media (min-width: 1024px) {
  .rn-cs-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 72px; }
  .rn-cs-card__link { padding: 40px 0 48px; }
  .rn-cs-card:nth-child(2n)::before { content: none; }
  .rn-cs-card:not(:nth-child(3n+1))::before { content: ""; position: absolute; left: -36px; top: 0; bottom: 0; width: 1px; background: var(--cs-line); }
}
.rn-cs-empty { padding: 48px 0; border-bottom: 1px solid var(--cs-line); color: var(--cs-greige); }
.rn-cs-empty p + p { margin-top: 8px; font-size: 14px; }
.rn-cs-note, .rn-cs-disclaimer { max-width: 46em; margin-top: 48px !important; font-size: 13px; line-height: 2; color: var(--cs-greige); }
.rn-cs-disclaimer { margin: 0 0 72px !important; padding-bottom: 40px; border-bottom: 1px solid var(--cs-line); }

/* 1件：ページの頭（左に見出し、右に写真を端まで） */
.rn-cs-hero { display: grid; background: var(--cs-cream); }
.rn-cs-hero__body { padding: 32px var(--rn-gutter) 48px; }
.rn-breadcrumb--ink ol { color: var(--cs-greige); }
.rn-breadcrumb--ink a { color: var(--cs-ink) !important; }
.rn-breadcrumb--ink li + li::before { color: var(--cs-line); }
.rn-cs-hero .rn-cs-meta { margin-top: 48px !important; }
.rn .rn-cs-hero__title { margin-top: 20px; font-size: clamp(30px, 3.6vw, 52px); line-height: 1.45; letter-spacing: 0.06em; word-break: auto-phrase; }
.rn-cs-hero__lead { max-width: 34em; margin-top: 28px !important; font-size: 16px; line-height: 2.1; }
.rn-cs-hero__model { max-width: 34em; margin-top: 20px !important; padding-left: 16px; border-left: 2px solid var(--cs-clover); font-size: 13px; line-height: 1.9; color: var(--cs-greige); }
.rn-cs-hero__media { margin: 0; overflow: hidden; } /* 写真が縮む動きの間、横にはみ出さない（CHG-20261029-003） */
.rn-cs-hero__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.rn-cs-hero__media figcaption { padding: 10px var(--rn-gutter) 0; font-size: 12px; letter-spacing: 0.06em; color: var(--cs-greige); }
@media (min-width: 1024px) {
  .rn-cs-hero { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); align-items: stretch; min-height: calc(88svh - var(--rn-header-h)); }
  .rn-cs-hero__body { align-self: center; padding: 64px 72px 96px max(var(--rn-gutter), calc((100vw - var(--rn-content-max)) / 2)); }
  .rn-cs-hero__media { order: 2; display: flex; flex-direction: column; }
  .rn-cs-hero__media img { flex: 1; height: 100%; min-height: 560px; aspect-ratio: auto; }
  .rn-cs-hero__media figcaption { padding: 12px 24px 16px; }
}
html.rn-js .rn-cs-hero__media img { animation: rn-settle 3.2s var(--rn-ease) both; }
html.rn-js .rn-cs-hero__title { animation: rn-rise 1.2s var(--rn-ease) .3s both; }
html.rn-js .rn-cs-hero__lead { animation: rn-rise 1.2s var(--rn-ease) .5s both; }

/* 1件：概要（線で区切る表） */
.rn-cs-facts { background: var(--cs-cream); border-top: 1px solid var(--cs-line); }
.rn-cs-facts dl { display: grid; grid-template-columns: 1fr 1fr; }
.rn-cs-facts dl > div { padding: 22px 16px 22px 0; border-bottom: 1px solid var(--cs-line); }
.rn-cs-facts dt { font-size: 12px; letter-spacing: 0.14em; color: var(--cs-greige); }
.rn-cs-facts dd { margin: 6px 0 0; font-family: var(--cs-font-display); font-size: 16px; font-weight: 600; line-height: 1.7; letter-spacing: 0.04em; color: var(--cs-forest); }
@media (min-width: 1024px) {
  .rn-cs-facts dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rn-cs-facts dl > div { padding: 28px 32px 30px; border-bottom: 0; border-left: 1px solid var(--cs-line); }
  .rn-cs-facts dl > div:nth-child(3n+1) { padding-left: 0; border-left: 0; }
  .rn-cs-facts dl > div:nth-child(n+4) { border-top: 1px solid var(--cs-line); }
}

/* 1件：区画 */
.rn-cs-section { padding: var(--rn-space) 0; background: var(--cs-cream); }
.rn-cs-section--paper { background: var(--cs-paper); }
.rn .rn-cs-section__title { margin-bottom: 40px; font-size: clamp(26px, 3.4vw, 44px); line-height: 1.5; }
.rn-cs-chapter .rn-cs-section__title { margin-bottom: 0; }
.rn-cs-chapter__inner { display: grid; gap: 32px; }
.rn-cs-chapter__num { display: block; margin-bottom: 20px; font-family: var(--cs-font-label); font-size: 56px; line-height: 1; color: transparent; -webkit-text-stroke: 1px var(--cs-clover); }
@media (min-width: 1024px) {
  .rn-cs-chapter__inner { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 80px; }
  .rn-cs-chapter__head { position: sticky; top: calc(var(--rn-header-h) + 40px); align-self: start; }
  .rn-cs-chapter__num { font-size: 88px; }
}
.rn-cs-prose { max-width: 40em; font-size: 16px; line-height: 2.2; }
.rn-cs-prose > * + * { margin-top: 1.2em; }
.rn-cs-quote { margin: 48px 0 0 !important; padding: 8px 0 8px 28px; border-left: 2px solid var(--cs-forest); }
.rn-cs-quote p { font-family: var(--cs-font-display); font-size: clamp(22px, 2.6vw, 32px); font-weight: 600; line-height: 1.7; letter-spacing: 0.06em; color: var(--cs-forest); }
.rn-cs-quote footer { margin-top: 12px; font-size: 13px; letter-spacing: 0.12em; color: var(--cs-greige); }
.rn-cs-quote footer::before { content: "— "; }

/* 1件：数字（線で区切って横に並べる） */
.rn-cs-numbers { padding: 56px 0; background: var(--cs-forest); color: var(--cs-on-dark); }
.rn-cs-numbers ul { display: grid; list-style: none; }
.rn-cs-numbers li { display: grid; gap: 8px; padding: 24px 0; border-bottom: 1px solid var(--cs-on-dark-line); }
.rn-cs-numbers li:last-child { border-bottom: 0; }
.rn-cs-numbers__label { font-size: 12px; letter-spacing: 0.16em; color: var(--cs-on-dark-muted); }
.rn-cs-numbers__figure { font-family: var(--cs-font-display); font-size: clamp(48px, 5.6vw, 76px); font-weight: 600; line-height: 1.1; color: var(--cs-white); }
.rn-cs-numbers__figure small { margin-left: 6px; font-size: 18px; letter-spacing: 0.08em; }
.rn-cs-numbers__change { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; font-family: var(--cs-font-display); font-weight: 600; letter-spacing: 0.04em; }
.rn-cs-numbers__before { font-size: 18px; color: var(--cs-on-dark-muted); text-decoration: line-through; text-decoration-thickness: 1px; }
.rn-cs-numbers__after { font-size: clamp(24px, 2.6vw, 34px); color: var(--cs-white); }
@media (min-width: 1024px) {
  .rn-cs-numbers { padding: 72px 0; }
  .rn-cs-numbers ul { grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
  .rn-cs-numbers li { padding: 8px 48px; border-bottom: 0; border-left: 1px solid var(--cs-on-dark-line); }
  .rn-cs-numbers li:first-child { padding-left: 0; border-left: 0; }
}

/* 1件：家族と資産（イラストの人物は使わず、線と文字で） */
.rn-cs-map { display: grid; gap: 48px; }
.rn-cs-tree { display: grid; gap: 40px; }
.rn-cs-tree__gen { position: relative; display: flex; flex-wrap: wrap; justify-content: center; gap: 16px 24px; }
.rn-cs-tree__gen + .rn-cs-tree__gen::before { content: ""; position: absolute; left: 50%; top: -40px; height: 40px; width: 1px; background: var(--cs-forest); }
/* 夫婦（2人の世代の下に子がいる）：2人を横線で結び、その真ん中から子へ縦線を下ろす（CHG-20261103-006） */
.rn-cs-tree__gen.is-couple { flex-wrap: nowrap; }
.rn-cs-tree__gen.is-couple::after { content: ""; position: absolute; left: calc(50% - 12px); top: 50%; width: 24px; height: 1px; background: var(--cs-forest); }
.rn-cs-tree__gen.is-couple::before { content: ""; position: absolute; left: 50%; top: 50%; bottom: 0; width: 1px; background: var(--cs-forest); }
.rn-cs-tree__gen.is-couple .rn-cs-tree__person { min-width: 0; flex: 0 1 9.5em; }
.rn-cs-tree__person { display: grid; gap: 2px; min-width: 9.5em; padding: 14px 18px 16px; border: 1px solid var(--cs-forest); background: var(--cs-cream); text-align: center; }
.rn-cs-tree__name { font-family: var(--cs-font-display); font-size: 17px; font-weight: 600; letter-spacing: 0.08em; color: var(--cs-forest); }
.rn-cs-tree__name small { margin-left: 8px; font-family: var(--cs-font-body); font-size: 12px; font-weight: 400; color: var(--cs-greige); }
.rn-cs-tree__note { font-size: 12px; line-height: 1.6; color: var(--cs-greige); }
.rn-cs-tree__person.is-client { background: var(--cs-forest); }
.rn-cs-tree__person.is-client .rn-cs-tree__name, .rn-cs-tree__person.is-client .rn-cs-tree__name small, .rn-cs-tree__person.is-client .rn-cs-tree__note { color: var(--cs-on-dark); }
.rn-cs-assets__head { margin-bottom: 12px !important; font-size: 12px; font-weight: 700; letter-spacing: 0.16em; color: var(--cs-greige); }
.rn-cs-assets ul { list-style: none; border-top: 1px solid var(--cs-forest); }
.rn-cs-assets li { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; padding: 18px 0; border-bottom: 1px solid var(--cs-line); }
.rn-cs-assets li span { font-family: var(--cs-font-display); font-size: 19px; font-weight: 600; letter-spacing: 0.08em; color: var(--cs-forest); }
.rn-cs-assets li small { font-size: 13px; color: var(--cs-greige); }
@media (min-width: 1024px) { .rn-cs-map { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 96px; align-items: center; } }

/* 1件：考えた道（選んだ道と、見送った道と理由） */
.rn-cs-options { list-style: none; border-top: 1px solid var(--cs-forest); }
.rn-cs-options li { display: grid; gap: 6px; padding: 24px 0 26px; border-bottom: 1px solid var(--cs-line); color: var(--cs-greige); }
.rn-cs-options__mark { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; }
.rn-cs-options__name { font-family: var(--cs-font-display); font-size: 19px; font-weight: 600; letter-spacing: 0.06em; color: var(--cs-ink); }
.rn-cs-options__name small { display: block; margin-top: 2px; font-family: var(--cs-font-body); font-size: 13px; font-weight: 400; color: var(--cs-greige); }
.rn-cs-options__reason { font-size: 15px; line-height: 1.9; }
.rn-cs-options li.is-chosen { position: relative; margin: 0 calc(-1 * var(--rn-gutter)); padding-left: var(--rn-gutter); padding-right: var(--rn-gutter); background: var(--cs-forest); border-bottom-color: var(--cs-forest); color: var(--cs-on-dark); }
.rn-cs-options li.is-chosen .rn-cs-options__name { color: var(--cs-white); font-size: 22px; }
.rn-cs-options li.is-chosen .rn-cs-options__name small { color: var(--cs-on-dark-muted); }
@media (min-width: 768px) {
  .rn-cs-options li { grid-template-columns: 7em minmax(0, 1fr) minmax(0, 1.1fr); align-items: baseline; gap: 24px; }
  .rn-cs-options li.is-chosen { margin: 0; padding-left: 24px; padding-right: 24px; }
}

/* 1件：進め方（縦の線と、時期） */
.rn-cs-timeline { list-style: none; position: relative; margin-left: 4px !important; border-left: 1px solid var(--cs-forest); }
.rn-cs-timeline li { position: relative; display: grid; gap: 4px; padding: 0 0 32px 32px; }
.rn-cs-timeline li:last-child { padding-bottom: 0; }
.rn-cs-timeline li::before { content: ""; position: absolute; left: -5px; top: 0.7em; width: 9px; height: 9px; background: var(--cs-forest); }
.rn-cs-timeline__when { font-family: var(--cs-font-display); font-size: 15px; font-weight: 600; letter-spacing: 0.1em; color: var(--cs-clover); }
.rn-cs-timeline__event { font-size: 16px; line-height: 1.9; }
@media (min-width: 768px) { .rn-cs-timeline li { grid-template-columns: 8em minmax(0, 1fr); gap: 24px; padding-bottom: 36px; } }

/* 1件：いま（ご相談のときと、いまを並べる） */
.rn-cs-compare { width: 100%; border-collapse: collapse; border-top: 1px solid var(--cs-forest); font-size: 15px; }
.rn-cs-compare th, .rn-cs-compare td { padding: 20px 16px 20px 0; border-bottom: 1px solid var(--cs-line); text-align: left; vertical-align: top; line-height: 1.8; }
.rn-cs-compare thead th { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; color: var(--cs-greige); }
.rn-cs-compare thead th:last-child { color: var(--cs-forest); }
.rn-cs-compare tbody th { font-family: var(--cs-font-display); font-weight: 600; letter-spacing: 0.06em; color: var(--cs-ink); }
.rn-cs-compare td:nth-child(2) { color: var(--cs-greige); }
.rn-cs-compare td:last-child { font-family: var(--cs-font-display); font-size: 17px; font-weight: 600; color: var(--cs-forest); }
.rn-cs-compare + .rn-cs-prose { margin-top: 48px; }
@media (max-width: 767px) {
  .rn-cs-compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .rn-cs-compare tr { display: block; padding: 20px 0; border-bottom: 1px solid var(--cs-line); }
  .rn-cs-compare th, .rn-cs-compare td { display: block; padding: 2px 0; border: 0; }
  .rn-cs-compare td::before { content: attr(data-label); display: block; margin-top: 8px; font-family: var(--cs-font-body); font-size: 11px; font-weight: 700; letter-spacing: 0.14em; color: var(--cs-greige); }
}
@media (min-width: 768px) { .rn-cs-compare tbody th { width: 9em; } .rn-cs-compare td:last-child { padding-left: 24px; border-left: 1px solid var(--cs-line); } }

/* 1件：声（森の緑の面に、大きな引用） */
.rn-cs-voice { padding: var(--rn-space) 0; background: var(--cs-forest); color: var(--cs-on-dark); }
.rn-cs-voice .rn-label { color: var(--cs-on-dark-muted); }
.rn-cs-voice blockquote { margin: 0; }
.rn-cs-voice blockquote p { max-width: 17em; word-break: auto-phrase; font-family: var(--cs-font-display); font-size: clamp(28px, 4.4vw, 56px); font-weight: 600; line-height: 1.6; letter-spacing: 0.06em; color: var(--cs-white); text-indent: -0.5em; }
.rn-cs-voice blockquote p::before { content: "「"; }
.rn-cs-voice blockquote p::after { content: "」"; }
.rn-cs-voice footer { margin-top: 28px; font-size: 14px; letter-spacing: 0.14em; color: var(--cs-on-dark-muted); }
.rn-cs-voice footer::before { content: "— "; }

/* 1件：関わった人（担当の顔と言葉・専門家） */
.rn-cs-people { display: grid; gap: 56px; }
.rn-cs-staff { display: grid; gap: 24px; margin: 0; }
.rn-cs-staff img { width: 140px; height: 140px; object-fit: cover; border-radius: 50%; }
.rn-cs-staff blockquote { margin: 0; }
.rn-cs-staff blockquote p { font-family: var(--cs-font-display); font-size: clamp(19px, 2vw, 24px); font-weight: 600; line-height: 1.8; letter-spacing: 0.06em; color: var(--cs-forest); }
.rn-cs-staff__name { display: block; margin-top: 16px; font-size: 13px; letter-spacing: 0.14em; color: var(--cs-greige); }
.rn-cs-experts { list-style: none; border-top: 1px solid var(--cs-forest); }
.rn-cs-experts li { display: grid; gap: 4px; padding: 20px 0; border-bottom: 1px solid var(--cs-line); }
.rn-cs-experts strong { font-family: var(--cs-font-display); font-size: 18px; font-weight: 600; letter-spacing: 0.1em; color: var(--cs-forest); }
.rn-cs-experts span { font-size: 14px; }
@media (min-width: 1024px) {
  .rn-cs-people { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 96px; align-items: start; }
  .rn-cs-staff { grid-template-columns: 160px minmax(0, 1fr); gap: 40px; align-items: start; }
  .rn-cs-staff img { width: 160px; height: 160px; }
}
.rn-cs-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 40px; margin-top: 40px; }

/* 1件：読みもの1本（CHG-20261109-012。「細かく分けられていてよく分からない」を受けて、概要の表と「ご相談の内容・ココ住ムがしたこと・結果」の3つにまとめた） */
.rn-cs-read { padding: 56px 0 var(--rn-space); background: var(--cs-cream); border-top: 1px solid var(--cs-line); }
.rn-cs-read__inner { max-width: calc(var(--rn-reading-max) + 2 * var(--rn-gutter)); }
.rn-cs-brief { display: grid; margin: 0; border-top: 1px solid var(--cs-forest); }
.rn-cs-brief > div { display: grid; grid-template-columns: 7.5em minmax(0, 1fr); gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--cs-line); }
.rn-cs-brief dt { font-size: 13px; letter-spacing: 0.1em; color: var(--cs-greige); }
.rn-cs-brief dd { margin: 0; font-size: 15px; line-height: 1.8; color: var(--cs-ink); }
.rn-cs-part { margin-top: 64px; }
.rn .rn-cs-part__title { margin-bottom: 24px; padding-left: 14px; border-left: 4px solid var(--cs-clover); font-size: clamp(22px, 2.4vw, 28px); line-height: 1.5; color: var(--cs-forest); }
.rn-cs-part .rn-cs-prose { max-width: none; }
.rn-cs-part > * + * { margin-top: 28px; }
.rn-cs-part .rn-cs-map { margin-top: 40px; gap: 32px; grid-template-columns: none; }
.rn-cs-part .rn-cs-quote { margin-top: 32px !important; }
.rn-cs-part .rn-cs-quote p { font-size: clamp(18px, 2vw, 22px); }
.rn-cs-ways { list-style: none; border-top: 1px solid var(--cs-line); }
.rn-cs-ways li { display: grid; gap: 4px; padding: 16px 0; border-bottom: 1px solid var(--cs-line); color: var(--cs-greige); }
.rn-cs-ways__mark { font-size: 12px; font-weight: 700; letter-spacing: 0.14em; }
.rn-cs-ways__name { font-size: 16px; font-weight: 600; color: var(--cs-ink); }
.rn-cs-ways__reason { font-size: 14px; line-height: 1.8; }
.rn-cs-ways li.is-chosen .rn-cs-ways__mark, .rn-cs-ways li.is-chosen .rn-cs-ways__name { color: var(--cs-forest); }
.rn-cs-ways li.is-chosen .rn-cs-ways__name::before { content: "✓ "; }
.rn-cs-steps { list-style: none; counter-reset: rn-steps; }
.rn-cs-steps li { counter-increment: rn-steps; position: relative; display: grid; gap: 2px; padding: 0 0 16px 40px; font-size: 15px; line-height: 1.8; }
.rn-cs-steps li::before { content: counter(rn-steps); position: absolute; left: 0; top: 2px; width: 26px; height: 26px; border-radius: 50%; background: var(--cs-forest); color: var(--cs-white); font-size: 13px; line-height: 26px; text-align: center; }
.rn-cs-steps__when { font-size: 13px; font-weight: 700; color: var(--cs-clover); }
.rn-cs-with { font-size: 14px; line-height: 1.9; color: var(--cs-greige); }
.rn-cs-figures { display: grid; gap: 12px; list-style: none; }
.rn-cs-figures li { display: grid; gap: 4px; padding: 16px 20px; background: var(--cs-paper); border-left: 4px solid var(--cs-forest); }
.rn-cs-figures__label { font-size: 13px; color: var(--cs-greige); }
.rn-cs-figures__value { display: flex; flex-wrap: wrap; align-items: center; font-family: var(--cs-font-display); font-size: clamp(20px, 2.2vw, 26px); font-weight: 600; letter-spacing: 0.04em; color: var(--cs-forest); }
.rn-cs-figures__value s { font-size: 0.75em; color: var(--cs-greige); text-decoration-thickness: 1px; }
.rn-cs-read .rn-cs-staff { grid-template-columns: 72px minmax(0, 1fr); gap: 20px; align-items: start; margin-top: 64px; padding-top: 32px; border-top: 1px solid var(--cs-line); }
.rn-cs-read .rn-cs-staff img { width: 72px; height: 72px; }
.rn-cs-read .rn-cs-staff blockquote p { font-size: 17px; }
.rn-cs-read .rn-cs-disclaimer { margin: 48px 0 0 !important; padding-bottom: 0; border-bottom: 0; }

/* ---------- セミナー：これまでの開催（F-HKA-016）。社名が並ぶので写真でなく年ごとの索引にする ---------- */
.rn-sm-lead { max-width: 40em; margin: -16px 0 40px !important; font-size: 15px; line-height: 2; }
.rn-sm-hosts { margin-bottom: 40px; border-top: 1px solid var(--cs-forest); }
.rn-sm-hosts__name { padding: 16px 0 4px; font-size: 12px; font-weight: 700; letter-spacing: 0.16em; color: var(--cs-greige); }
.rn-sm-hosts ul { display: grid; list-style: none; }
.rn-sm-hosts li { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--cs-line); font-family: var(--cs-font-display); font-size: 16px; font-weight: 600; line-height: 1.6; letter-spacing: 0.06em; color: var(--cs-forest); }
.rn-sm-hosts__count { flex: none; font-family: var(--cs-font-display); font-size: 26px; line-height: 1; color: var(--cs-forest); }
.rn-sm-hosts__count small { margin-left: 2px; font-family: var(--cs-font-body); font-size: 12px; font-weight: 400; letter-spacing: 0.08em; color: var(--cs-greige); }
.rn-sm-year { border-top: 1px solid var(--cs-forest); }
.rn-sm-year[hidden], .rn-sm-row[hidden] { display: none; }
.rn-content .rn-sm-year__label, .rn-sm-year__label { padding: 20px 0 4px; font-family: var(--cs-font-display); font-size: clamp(36px, 4.4vw, 64px); font-weight: 600; line-height: 1; letter-spacing: 0.02em; color: var(--cs-forest); }
.rn-sm-list { list-style: none; }
.rn-sm-row { display: grid; gap: 8px; padding: 24px 0 28px; }
.rn-sm-row + .rn-sm-row { border-top: 1px solid var(--cs-line); }
.rn-sm-row__when { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 14px; font-size: 13px; letter-spacing: 0.08em; color: var(--cs-greige); }
.rn-sm-row__when time { font-family: var(--cs-font-display); font-size: 16px; font-weight: 600; color: var(--cs-clover); }
.rn-content .rn-sm-row__title, .rn-sm-row__title { font-family: var(--cs-font-display); font-size: clamp(18px, 1.8vw, 22px); font-weight: 600; line-height: 1.7; letter-spacing: 0.06em; color: var(--cs-forest); word-break: auto-phrase; }
.rn-sm-row__where { display: flex; flex-wrap: wrap; gap: 0 16px; margin-top: 4px !important; font-size: 14px; line-height: 1.8; }
.rn-sm-row__host { font-weight: 700; }
.rn-sm-row__text { font-size: 14px; line-height: 1.9; color: var(--cs-ink); }
.rn-sm-row__extra { display: flex; flex-wrap: wrap; gap: 0 20px; font-size: 13px; line-height: 1.8; color: var(--cs-greige); }
.rn-sm-row__tags { font-size: 12px; letter-spacing: 0.12em; color: var(--cs-clover); }
@media (min-width: 768px) {
  .rn-sm-hosts { display: grid; grid-template-columns: 8em minmax(0, 1fr); column-gap: 32px; }
  .rn-sm-hosts__name { padding-top: 22px; }
  .rn-sm-hosts ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; }
  .rn-sm-row { grid-template-columns: 13em minmax(0, 1fr); column-gap: 32px; }
  .rn-sm-row__when { flex-direction: column; gap: 0; }
  .rn-sm-row__when time { margin-bottom: 4px; }
}
@media (min-width: 1024px) {
  .rn-sm-year { display: grid; grid-template-columns: 200px minmax(0, 1fr); column-gap: 48px; }
  .rn-content .rn-sm-year__label, .rn-sm-year__label { position: sticky; top: calc(var(--rn-header-h) + 24px); align-self: start; padding-top: 28px; }
  .rn-sm-row { padding: 32px 0 36px; }
}

/* セミナーの開催 1件（/seminar/records/{番号}）と、一覧の題名のリンク（CHG-20261029-011） */
.rn-sm-row__title a { color: inherit; text-decoration: none; background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-position: 0 100%; background-repeat: no-repeat; transition: background-size .3s; }
.rn-sm-row__title a::after { content: "→"; display: inline-block; margin-left: 8px; font-family: var(--cs-font-body); font-size: 0.8em; color: var(--cs-clover); transition: transform .3s; }
.rn-sm-row__title a:hover, .rn-sm-row__title a:focus-visible { background-size: 100% 1px; }
.rn-sm-row__title a:hover::after { transform: translateX(4px); }
.rn-sm-facts { margin-top: 0; }
/* セミナーの概要：項目数に合わせて等幅に並べ、線は格子でそろえる（CHG-20261109-420） */
.rn-sm-facts { padding: 8px 0 0; border-top: 0; }
.rn-sm-facts dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1px; margin: 0; background: var(--cs-line); border-top: 3px solid var(--cs-forest); border-bottom: 1px solid var(--cs-line); }
.rn-sm-facts dl > div, .rn-sm-facts dl > div:nth-child(n) { padding: 24px 24px 26px; border: 0; background: var(--cs-cream); }
.rn-sm-facts dt { display: flex; align-items: center; gap: 8px; }
.rn-sm-facts dt::before { content: ""; width: 14px; height: 1px; background: var(--cs-clover); }
.rn-sm-facts dd { margin-top: 10px; font-size: 17px; }
@media (max-width: 599px) { .rn-sm-facts dl { grid-template-columns: 1fr 1fr; } .rn-sm-facts dl > div, .rn-sm-facts dl > div:nth-child(n) { padding: 18px 14px 20px; } .rn-sm-facts dd { font-size: 15px; } }
.rn-sm-detail__grid { display: grid; gap: 20px; }
/* 見出しは左の列（200px）に収まる大きさ。ページの h2 の型（大きな見出しと葉の印）より強くする */
.rn-content .rn-section > .rn-sm-detail__grid > .rn-sm-detail__head, .rn-sm-detail__head { margin-bottom: 0; font-family: var(--cs-font-display); font-size: clamp(20px, 2vw, 24px); font-weight: 600; line-height: 1.6; letter-spacing: 0.08em; color: var(--cs-forest); }
.rn-content .rn-section > .rn-sm-detail__grid > .rn-sm-detail__head::before { margin-bottom: 16px; }
/* ページの大見出しを、語の途中（「比／較」など）で折り返さない */
.rn .rn-page-hero__title { word-break: auto-phrase; }
.rn-sm-detail__head span { display: block; margin-top: 4px; font-family: var(--cs-font-body); font-size: 13px; font-weight: 400; letter-spacing: 0.12em; color: var(--cs-greige); }
.rn-sm-detail__text { margin-bottom: 16px !important; font-family: var(--cs-font-display); font-size: clamp(17px, 1.6vw, 20px); line-height: 2.1; letter-spacing: 0.06em; color: var(--cs-ink); }
.rn-sm-more { padding-top: 0 !important; }
.rn-sm-more .rn-container { padding-top: 40px; border-top: 1px solid var(--cs-forest); }
.rn-sm-links { list-style: none; }
.rn-sm-links li + li { border-top: 1px solid var(--cs-line); }
.rn-sm-links a { display: grid; gap: 2px; padding: 16px 0; color: var(--cs-ink); text-decoration: none; }
.rn-sm-links time { font-size: 13px; letter-spacing: 0.08em; color: var(--cs-clover); }
.rn-sm-links span { font-family: var(--cs-font-display); font-size: 17px; font-weight: 600; line-height: 1.7; letter-spacing: 0.04em; color: var(--cs-forest); }
.rn-sm-links small { font-size: 13px; color: var(--cs-greige); }
.rn-sm-links a:hover span { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.rn-sm-pager { padding-top: 0 !important; }
.rn-sm-pager ul { display: grid; gap: 0; list-style: none; border-top: 1px solid var(--cs-forest); border-bottom: 1px solid var(--cs-line); }
.rn-sm-pager li:empty { display: none; }
.rn-sm-pager a { display: block; padding: 18px 0; font-family: var(--cs-font-display); font-size: 15px; font-weight: 600; line-height: 1.7; color: var(--cs-forest); text-decoration: none; }
.rn-sm-pager a span { display: block; font-family: var(--cs-font-body); font-size: 12px; font-weight: 400; letter-spacing: 0.14em; color: var(--cs-greige); }
.rn-sm-pager li + li a { border-top: 1px solid var(--cs-line); }
.rn-sm-pager a:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.rn-sm-pager__all { color: var(--cs-clover) !important; }
@media (min-width: 768px) {
  .rn-sm-detail__grid { grid-template-columns: 200px minmax(0, 1fr); column-gap: 48px; }
  .rn-sm-links a { grid-template-columns: 13em minmax(0, 1fr); column-gap: 32px; align-items: baseline; }
  .rn-sm-links small { grid-column: 2; }
  .rn-sm-pager ul { grid-template-columns: 1fr auto 1fr; column-gap: 32px; align-items: center; }
  .rn-sm-pager li:empty { display: block; }
  .rn-sm-pager li + li a { border-top: 0; }
  .rn-sm-pager li:last-child { text-align: right; }
  .rn-sm-pager a { padding: 24px 0; }
}

/* トップの「実際に受けたご相談」（CHG-20261107-002） */
.rn-top-cases { list-style: none; margin: 32px 0 24px; padding: 0; display: grid; gap: 16px; }
@media (min-width: 768px) { .rn-top-cases { grid-template-columns: repeat(3, 1fr); } }
.rn-top-cases a { display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 24px; border: 1px solid var(--cs-line, #D9D2C3); background: var(--cs-paper, #fff); color: inherit; text-decoration: none; transition: border-color .2s var(--rn-ease); }
.rn-top-cases a:hover, .rn-top-cases a:focus-visible { border-color: var(--cs-forest); }
.rn-top-cases__tag { font-size: 13px; color: var(--cs-forest); }
.rn-top-cases__title { font-size: 17px; line-height: 1.7; font-weight: 600; }

/* CHG-20261109-004：代表の切り抜き写真をファーストビューに大きく */
.rn-hero__figure { position: absolute; z-index: 0; right: 0; bottom: 0; height: 58%; pointer-events: none; }
.rn-hero__figure img { display: block; height: 100%; width: auto; filter: drop-shadow(0 18px 40px rgba(0, 0, 0, 0.35)); }
.rn-hero__inner, .rn-hero__foot { position: relative; z-index: 1; }
.rn-hero__foot { background: rgba(20, 34, 18, 0.55); }
.rn-hero__person img { display: none; }
@media (max-width: 767px) {
  .rn-hero__figure { position: relative; right: auto; bottom: auto; height: 340px; align-self: flex-end; margin: 24px 0 -96px; -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, #000 70%, transparent 100%); }
  .rn-hero__inner { padding-top: 0; }
  .rn-hero__eyebrow { display: none; }
  .rn-hero__title, .rn-hero__lead { text-shadow: 0 2px 12px rgba(20, 34, 18, 0.7); }
}
@media (min-width: 768px) {
  .rn-hero__figure { height: 92%; right: 4%; }
  .rn-hero__person { right: auto; left: calc(100% - 4% - 340px - var(--rn-gutter)); bottom: 48px; padding: 14px 24px; }
  .rn-hero__tagline { display: none; }
  .rn-hero__lead { max-width: calc(100% - 380px); }
}
@media (min-width: 1280px) { .rn-hero__figure { right: 8%; } }
html.rn-js .rn-hero__figure { animation: rn-rise 1.4s var(--rn-ease) .4s both; }

/* 本文の区切りの写真（CHG-20261109-008） */
.rn-photo-strip { padding: 40px 0; background: var(--cs-white); }
.rn-photo-strip__inner { display: grid; gap: 16px; }
.rn-photo-strip__item { margin: 0; }
.rn-photo-strip__item img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.rn-photo-strip__item figcaption { margin-top: 8px; font-size: 0.8125rem; color: var(--cs-greige); letter-spacing: 0.04em; }
.rn-photo-strip:not(.rn-photo-strip--pair) .rn-photo-strip__item img { aspect-ratio: 21 / 9; }
@media (min-width: 768px) {
	.rn-photo-strip { padding: 64px 0; }
	.rn-photo-strip--pair .rn-photo-strip__inner { grid-template-columns: 3fr 2fr; gap: 24px; align-items: end; }
	.rn-photo-strip--pair .rn-photo-strip__item:nth-child(2) img { aspect-ratio: 4 / 5; }
}

/* ---------- 用語集（F-HKA-020・CHG-20261109-030）。右のサイドバーの相談の案内は追従（PC）。スマホは本文の下に回る ---------- */
.rn-gl__layout { display: grid; gap: 64px; }
.rn-gl__main { min-width: 0; }
@media (min-width: 1024px) {
  .rn-gl__layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 72px; align-items: start; }
  .rn-gl-aside { align-self: stretch; }
  .rn-gl-aside__sticky { position: sticky; top: calc(var(--rn-header-h) + 24px); }
}
.rn-gl-cta { padding: 28px 24px; background: var(--cs-forest); color: var(--cs-on-dark); }
.rn-gl-cta__label { margin-bottom: 10px; font-family: var(--cs-font-label); font-size: 12px; letter-spacing: 0.28em; color: var(--cs-on-dark-muted); }
.rn-gl-cta__title { font-family: var(--cs-font-display); font-size: 19px; font-weight: 600; line-height: 1.6; letter-spacing: 0.04em; }
.rn-gl-cta__text { margin: 12px 0 20px; font-size: 14px; line-height: 1.8; color: var(--cs-on-dark-muted); }
.rn-gl-cta .rn-btn--primary { background: var(--cs-cream); color: var(--cs-forest) !important; }
.rn-gl-cta .rn-btn--primary:hover { background: var(--cs-white); }
.rn-gl-cta .rn-btn--block { justify-content: center; gap: 14px; padding-left: 16px; padding-right: 16px; letter-spacing: 0.08em; white-space: nowrap; }
.rn-gl-cta .rn-btn--block::after, .rn-gl-cta .rn-btn--block:hover::after { width: 24px; }
.rn-gl-cta__tel { display: flex; flex-direction: column; margin-top: 18px; color: var(--cs-white) !important; font-family: var(--cs-font-display); font-size: 26px; font-weight: 600; line-height: 1.2; letter-spacing: 0.04em; text-decoration: none; }
.rn-gl-cta__tel span { font-family: var(--cs-font-body); font-size: 12px; font-weight: 700; letter-spacing: 0.14em; color: var(--cs-on-dark-muted); }
.rn-gl-cta__note { margin-top: 8px; font-size: 12px; line-height: 1.7; color: var(--cs-on-dark-muted); }
.rn-gl-cta__service { display: block; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--cs-on-dark-line); font-size: 14px; font-weight: 700; color: var(--cs-on-dark) !important; }
.rn-gl-aside__box { margin-top: 32px; }
.rn-gl-aside__h { padding-bottom: 10px; border-bottom: 1px solid var(--cs-forest); font-family: var(--cs-font-display); font-size: 15px; font-weight: 600; letter-spacing: 0.08em; color: var(--cs-forest); }
.rn-gl-aside__list { list-style: none; }
.rn-gl-aside__list a { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--cs-line); font-size: 14px; color: var(--cs-ink) !important; text-decoration: none; }
.rn-gl-aside__list a:hover, .rn-gl-aside__list a[aria-current] { color: var(--cs-clover) !important; }
.rn-gl-aside__list span { font-size: 12px; color: var(--cs-greige); }

.rn-gl-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-bottom: 28px; font-size: 13px; color: var(--cs-greige); }
.rn-gl-meta__cat { padding: 4px 12px; background: var(--cs-forest); color: var(--cs-on-dark) !important; font-weight: 700; letter-spacing: 0.08em; text-decoration: none; }
.rn-gl-meta__group { font-weight: 700; color: var(--cs-forest); }
.rn-gl-define { padding: 28px; background: var(--cs-paper); border-left: 4px solid var(--cs-clover); }
.rn-gl-define__label { margin-bottom: 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; color: var(--cs-clover); }
.rn-gl-define__text { font-family: var(--cs-font-display); font-size: clamp(18px, 2vw, 21px); font-weight: 600; line-height: 1.8; color: var(--cs-forest); }
.rn-gl-toc { margin-top: 40px; padding: 24px 28px; border: 1px solid var(--cs-line); }
.rn-gl-toc__title { margin-bottom: 12px; font-size: 13px; font-weight: 700; letter-spacing: 0.14em; color: var(--cs-greige); }
.rn-gl-toc ol { padding-left: 1.4em; }
.rn-gl-toc li + li { margin-top: 8px; }
.rn-gl-toc a { color: var(--cs-forest) !important; }
.rn-gl-body { margin-top: 8px; }
.rn-gl-body table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--cs-forest); font-size: 14px; }
.rn-gl-body th, .rn-gl-body td { padding: 14px 12px 14px 0; border-bottom: 1px solid var(--cs-line); text-align: left; vertical-align: top; }
.rn-gl-body th { color: var(--cs-forest); }
.rn-gl-body thead th { font-size: 12px; letter-spacing: 0.1em; color: var(--cs-greige); }
@media (max-width: 767px) { .rn-gl-body table { display: block; overflow-x: auto; } }
.rn-gl-body strong { color: var(--cs-forest); }
.rn-gl-example { margin-top: 2.4em; padding: 4px 28px 28px; background: var(--cs-paper); }
.rn-gl-example h2 { margin-top: 24px !important; }
.rn-gl-h2 { margin: 64px 0 20px; font-size: clamp(20px, 2.4vw, 24px); }
.rn-gl-inline-cta { display: grid; gap: 20px; margin-top: 56px; padding: 28px; border: 1px solid var(--cs-forest); }
.rn-gl-inline-cta__text { font-family: var(--cs-font-display); font-weight: 600; line-height: 1.8; color: var(--cs-forest); }
@media (min-width: 768px) { .rn-gl-inline-cta { grid-template-columns: minmax(0, 1fr) auto; align-items: center; } }
.rn-gl-chips { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; }
.rn-gl-chips a { display: inline-block; padding: 8px 16px; border: 1px solid var(--cs-forest); font-size: 14px; color: var(--cs-forest) !important; text-decoration: none; }
.rn-gl-chips a:hover { background: var(--cs-forest); color: var(--cs-on-dark) !important; }
.rn-gl-updated { margin-top: 48px; font-size: 13px; color: var(--cs-greige); }

.rn-gl-search { margin-bottom: 28px; }
.rn-gl-search__label { display: block; margin-bottom: 10px; font-weight: 700; color: var(--cs-forest); }
.rn-gl-search__input { width: 100%; min-height: 56px; padding: 12px 18px; border: 1px solid var(--cs-forest); border-radius: 0; background: var(--cs-white); font-size: 16px; }
.rn-gl-search__none { margin-top: 12px; color: var(--cs-greige); }
.rn-gl-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; }
.rn-gl-tabs a { display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px; background: var(--cs-forest); color: var(--cs-on-dark) !important; font-weight: 700; letter-spacing: 0.06em; text-decoration: none; }
.rn-gl-tabs a:hover { background: var(--cs-clover); }
.rn-gl-tabs span { font-size: 12px; font-weight: 400; color: var(--cs-on-dark-muted); }
.rn-gl-cat { padding-top: 48px; scroll-margin-top: calc(var(--rn-header-h) + 16px); }
.rn-gl-cat__h { padding-bottom: 14px; border-bottom: 1px solid var(--cs-forest); font-size: clamp(22px, 2.6vw, 28px); }
.rn-gl-group { margin-top: 32px; }
.rn-gl-group__h { margin-bottom: 8px; font-size: 15px; font-weight: 700; letter-spacing: 0.1em; color: var(--cs-clover); }
.rn-gl-terms { display: grid; list-style: none; }
@media (min-width: 768px) { .rn-gl-terms { grid-template-columns: 1fr 1fr; column-gap: 32px; } }
.rn-gl-terms a { display: block; height: 100%; padding: 16px 0; border-bottom: 1px solid var(--cs-line); color: var(--cs-ink) !important; text-decoration: none; }
.rn-gl-terms__title { font-family: var(--cs-font-display); font-size: 17px; font-weight: 600; color: var(--cs-forest); }
.rn-gl-terms__reading { margin-left: 10px; font-size: 12px; color: var(--cs-greige); }
.rn-gl-terms__summary { display: block; margin-top: 6px; font-size: 13px; line-height: 1.7; color: var(--cs-greige); }
.rn-gl-terms a:hover .rn-gl-terms__title { color: var(--cs-clover); }
.rn-gl-cat__more { margin-top: 8px; }
.rn-content > .rn-section.rn-gl { padding-top: 56px; }
.rn-gl-body h2 { margin-bottom: 0.6em; }

/* ============================================================
   サービスのページの見直し（CHG-20261109-080）
   参考：東急リバブル ウェルスアドバイザリー本部「事業承継」のページの並び（00_context/external-files/2026-11-09_livable-service-page-reference/）
   段の上の日本語の小見出し・写真の上の流れのカード・ご挨拶・ほかのご相談
   ============================================================ */

/* 段の上の小見出し（クローバー＋日本語）。あるときは見出しの上のクローバーを出さない */
.rn-kicker { display: flex; align-items: center; gap: 10px; margin-bottom: 18px !important; font-family: var(--cs-font-display); font-size: 14px; font-weight: 600; line-height: 1.4; letter-spacing: 0.16em; color: var(--cs-clover); }
.rn-kicker::before { content: ""; flex: none; width: 16px; height: 16px; background: var(--rn-clover) no-repeat center / contain; }
.rn-content .rn-section > .rn-container > .rn-kicker + h2::before { display: none; }
@media (min-width: 768px) { .rn-kicker { font-size: 15px; } }

/* ご相談の流れ：写真の上に、左に見出し、右に手順のカード */
.rn-content > .rn-section.rn-flow { position: relative; overflow: hidden; background: var(--cs-forest); color: var(--cs-on-dark); }
.rn-flow__media { position: absolute; inset: 0; }
.rn-flow__media img { width: 100%; height: 100%; object-fit: cover; opacity: 0.32; }
.rn-flow__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(30, 58, 27, 0.92) 0%, rgba(30, 58, 27, 0.6) 100%); }
.rn-flow__inner { position: relative; display: grid; gap: 40px; }
.rn .rn-flow__heading { grid-column: 1 / -1; margin: 0; color: var(--cs-on-dark) !important; font-family: var(--cs-font-display); font-size: clamp(28px, 3.6vw, 44px); letter-spacing: 0.08em; text-align: center; }
.rn-flow .rn-kicker { color: var(--cs-on-dark-muted); }
.rn-flow .rn-kicker::before { filter: brightness(0) invert(0.92); }
.rn .rn-flow__title { margin-bottom: 0; color: var(--cs-on-dark) !important; font-size: clamp(26px, 3.6vw, 44px); }
.rn .rn-flow__note { margin-top: 28px; max-width: 30em; font-size: 14px; line-height: 1.9; color: var(--cs-on-dark-muted); }
.rn-flow__link { display: inline-block; margin-top: 20px; color: var(--cs-on-dark) !important; font-size: 14px; }
.rn-flow__steps { list-style: none; counter-reset: rn-flow; background: var(--cs-white); color: var(--cs-ink); }
.rn-flow__steps > li { position: relative; counter-increment: rn-flow; display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 12px; padding: 26px 24px 28px; }
.rn-flow__steps > li:nth-child(even) { background: var(--cs-paper); }
.rn-flow__steps > li::before { content: counter(rn-flow) "."; grid-row: span 2; font-family: var(--cs-font-label); font-size: 26px; line-height: 1.1; color: var(--cs-clover); }
.rn-flow__steps > li:not(:last-child)::after { content: ""; position: absolute; left: 50%; bottom: -11px; z-index: 1; transform: translateX(-50%); border-left: 14px solid transparent; border-right: 14px solid transparent; border-top: 12px solid var(--cs-white); }
.rn-flow__steps > li:nth-child(even):not(:last-child)::after { border-top-color: var(--cs-paper); }
.rn-flow__steps strong { display: block; font-family: var(--cs-font-display); font-size: 17px; font-weight: 600; letter-spacing: 0.06em; color: var(--cs-forest); }
.rn-flow__steps span { display: block; margin-top: 6px; font-size: 14px; line-height: 1.85; color: var(--cs-greige); }
@media (min-width: 1024px) {
  /* 見出し→説明→横に並べた手順（CHG-20261109-300） */
  .rn-flow__head { text-align: center; }
  .rn .rn-flow__lead, .rn .rn-flow__note { margin-left: auto; margin-right: auto; max-width: none; }
  .rn-flow__steps { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
  .rn-flow__steps > li { display: block; padding: 28px 22px 30px; }
  .rn-flow__steps > li::before { display: block; margin-bottom: 12px; }
  .rn-flow__steps > li:not(:last-child)::after { left: auto; right: -11px; top: 50%; bottom: auto; transform: translateY(-50%); border-top: 14px solid transparent; border-bottom: 14px solid transparent; border-left: 12px solid var(--cs-white); border-right: 0; }
  .rn-flow__steps > li:nth-child(even):not(:last-child)::after { border-top-color: transparent; border-left-color: var(--cs-paper); }
  .rn-flow__steps strong { font-size: 16px; }
}

/* ご挨拶：左に言葉、右に代表の写真 */
.rn-greet__inner { display: grid; gap: 40px; }
.rn .rn-greet__title { margin-bottom: 32px; font-size: clamp(22px, 2.6vw, 30px); }
.rn-greet__text { max-width: 34em; }
.rn .rn-greet__text + .rn-greet__text { margin-top: 1em; }
.rn-greet__body .rn-btn { margin-top: 36px; }
.rn-greet__figure img { display: block; width: 100%; max-width: 320px; aspect-ratio: 1; object-fit: cover; }
.rn-greet__figure figcaption { margin-top: 14px; font-size: 13px; line-height: 1.8; color: var(--cs-greige); }
@media (min-width: 768px) {
  .rn-greet__inner { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); column-gap: 64px; align-items: center; }
  .rn-greet__figure { justify-self: end; }
}

/* ほかのご相談：写真・名前・説明・矢印 */
.rn-svc-links__list { list-style: none; display: grid; gap: 16px; }
.rn-svc-link { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 18px; align-items: start; height: 100%; padding: 20px; border: 1px solid var(--cs-line); background: var(--cs-white); color: var(--cs-ink) !important; text-decoration: none; transition: border-color .3s var(--rn-ease); }
.rn-svc-link:hover { border-color: var(--cs-forest); }
.rn-svc-link__media img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.rn-svc-link__title { display: block; font-family: var(--cs-font-display); font-size: 17px; font-weight: 600; letter-spacing: 0.06em; color: var(--cs-forest); }
.rn-svc-link__text { display: block; margin-top: 6px; font-size: 13px; line-height: 1.8; color: var(--cs-greige); }
.rn-svc-link__arrow { display: none; }
@media (min-width: 1024px) {
  .rn-svc-links__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
  .rn-svc-link { grid-template-columns: 1fr; align-content: start; gap: 18px; padding: 24px 24px 56px; position: relative; }
  .rn-svc-link__media img { aspect-ratio: 3 / 2; }
  .rn-svc-link__arrow { display: block; position: absolute; right: 24px; bottom: 26px; width: 28px; height: 1px; background: var(--cs-forest); transition: width .3s var(--rn-ease); }
  .rn-svc-link__arrow::after { content: ""; position: absolute; right: 0; top: -4px; width: 9px; height: 9px; border-top: 1px solid var(--cs-forest); border-right: 1px solid var(--cs-forest); transform: rotate(45deg); }
  .rn-svc-link:hover .rn-svc-link__arrow { width: 40px; }
}

/* ---------- トップ：段の並びを参考サイト（東急リバブル ウェルスアドバイザリー本部）にそろえた（CHG-20261109-070） ---------- */
.rn-tp-title { font-size: clamp(22px, 2.6vw, 30px); color: var(--cs-forest); margin-bottom: 40px !important; }
.rn-tp-eyebrow { margin-bottom: 18px !important; font-family: var(--cs-font-display); font-size: 15px; font-weight: 600; letter-spacing: 0.12em; color: var(--cs-clover); }
.rn-tp-big { font-size: clamp(28px, 3.8vw, 46px); line-height: 1.6; color: var(--cs-forest); }
.rn-tp-text { margin-top: 28px !important; max-width: 30em; font-size: 15px; line-height: 2; }
.rn-tp-more { display: inline-flex; align-items: center; gap: 12px; margin-top: 20px; font-size: 14px; color: var(--cs-clover); }
.rn-tp-more::after { content: ""; width: 24px; height: 1px; background: currentColor; transition: width .4s var(--rn-ease); }

/* どのようなご相談ですか */
.rn-tp-issues { padding: 72px 0; background: var(--cs-paper); }
.rn-tp-issues__list { list-style: none; display: grid; gap: 20px; grid-template-columns: minmax(0, 1fr); counter-reset: rn-issue; }
.rn-tp-issues__list > li { position: relative; display: flex; flex-direction: column; padding: 36px 28px 28px; background: var(--cs-white); border-top: 3px solid var(--cs-forest); box-shadow: 0 10px 30px rgba(43, 36, 32, .07); counter-increment: rn-issue; transition: transform .4s var(--rn-ease), box-shadow .4s var(--rn-ease); }
.rn-tp-issues__list > li::before { content: counter(rn-issue, decimal-leading-zero); position: absolute; top: 18px; right: 22px; font-family: var(--cs-font-label); font-size: 30px; line-height: 1; color: var(--cs-line); letter-spacing: .04em; }
.rn-tp-issues__list > li:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(43, 36, 32, .12); }
.rn-tp-issues__list > li > a { display: block; flex: 1; color: var(--cs-ink) !important; text-decoration: none; }
.rn-tp-issues__icon { display: block; box-sizing: content-box; width: 72px; height: 60px; padding: 22px 20px; margin: 0 auto 24px; border-radius: 50%; background: var(--cs-cream); fill: none; stroke: var(--cs-forest); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.rn-tp-issues__name { display: flex; align-items: center; justify-content: center; gap: 12px; font-family: var(--cs-font-display); font-size: 19px; font-weight: 600; color: var(--cs-forest); letter-spacing: 0.08em; white-space: nowrap; }
.rn-tp-issues__text { display: block; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--cs-line); font-size: 14px; line-height: 1.9; color: var(--cs-greige); }
.rn-tp-issues__links { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 22px; font-size: 13px; }
.rn-tp-issues__links a { display: flex; align-items: center; justify-content: center; padding: 10px 6px; border: 1px solid var(--cs-forest); color: var(--cs-forest) !important; text-decoration: none; white-space: nowrap; transition: background .3s var(--rn-ease), color .3s var(--rn-ease); }
.rn-tp-issues__links a:first-child { background: var(--cs-forest); color: var(--cs-on-dark) !important; }
.rn-tp-issues__links a:hover { background: var(--cs-clover); border-color: var(--cs-clover); color: var(--cs-on-dark) !important; }
@media (min-width: 640px) { .rn-tp-issues__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .rn-tp-issues { padding: 96px 0; } .rn-tp-issues__list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; } .rn-tp-issues__list > li { padding: 40px 22px 24px; } .rn-tp-issues__name { font-size: 18px; } }

/* 解決事例 */
.rn-tp-cases { padding: var(--rn-space) 0; background: var(--cs-paper); overflow: hidden; }
.rn-tp-cases__inner { display: grid; gap: 48px; }
.rn-tp-cases__head .rn-btn { margin-top: 36px; }
.rn-tp-cases__stat { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; margin-top: 32px !important; padding-top: 24px; border-top: 1px solid var(--cs-line); font-family: var(--cs-font-display); font-size: 16px; font-weight: 600; color: var(--cs-forest); }
.rn-tp-cases__num { font-size: 26px; }
.rn-tp-cases__note { margin-top: 8px !important; font-size: 13px; color: var(--cs-greige); }
.rn-tp-sub { margin: -24px 0 36px !important; font-size: 15px; color: var(--cs-greige); }
.rn-tp-cases__num strong { font-family: var(--cs-font-label); font-size: 2em; font-weight: 600; line-height: 1; margin: 0 0.06em; color: var(--cs-clover); }
.rn-tp-cases__rail { min-width: 0; }
.rn-tp-cases__list { list-style: none; display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-right: calc(-1 * var(--rn-gutter)) !important; padding: 4px var(--rn-gutter) 16px 0 !important; }
.rn-tp-cases__list::-webkit-scrollbar { display: none; }
.rn-tp-case { flex: 0 0 min(82%, 340px); scroll-snap-align: start; }
.rn-tp-case a { display: flex; flex-direction: column; height: 100%; background: var(--cs-white); color: var(--cs-ink) !important; text-decoration: none; box-shadow: 0 2px 16px rgba(30, 58, 27, 0.08); transition: box-shadow .3s ease; }
.rn-tp-case a:hover { box-shadow: 0 6px 28px rgba(30, 58, 27, 0.16); }
.rn-tp-case__media { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.rn-tp-case__media img { width: 100%; height: 100%; object-fit: cover; }
.rn-tp-case__tag { position: absolute; top: 0; left: 0; z-index: 1; padding: 4px 16px; background: var(--cs-forest); color: var(--cs-on-dark); font-size: 13px; font-weight: 700; letter-spacing: 0.12em; }
.rn-tp-case__body { display: flex; flex-direction: column; flex: 1; padding: 22px 24px 24px; }
.rn-tp-case__title { font-family: var(--cs-font-display); font-size: 17px; font-weight: 600; line-height: 1.7; color: var(--cs-forest); }
.rn-tp-case__text { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 12px; font-size: 13px; line-height: 1.9; color: var(--cs-greige); }
.rn-tp-case .rn-tp-more { margin-top: auto; padding-top: 20px; }
.rn-tp-case a:hover .rn-tp-more::after { width: 40px; }
.rn-tp-cases__nav { display: flex; justify-content: center; gap: 24px; margin-top: 20px; }
.rn-tp-cases__arrow { width: 44px; height: 44px; border: 1px solid var(--cs-line); border-radius: 50%; background: var(--cs-white); color: var(--cs-forest); font-size: 24px; line-height: 1; cursor: pointer; }
.rn-tp-cases__arrow:hover { border-color: var(--cs-forest); }
@media (min-width: 1024px) {
  .rn-tp-cases__inner { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: 64px; }
  .rn-tp-case { flex-basis: 340px; }
}

/* 写真の帯（ココ住ムの役割・事業内容） */
.rn-tp-feature { position: relative; color: var(--cs-on-dark); background: var(--cs-forest); isolation: isolate; overflow: hidden; }
.rn-tp-feature__media { position: absolute; inset: 0; z-index: -1; }
.rn-tp-feature__media img { width: 100%; height: 100%; object-fit: cover; }
.rn-tp-feature__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20, 34, 18, 0.82) 0%, rgba(20, 34, 18, 0.6) 55%, rgba(20, 34, 18, 0.35) 100%); }
.rn-tp-feature__inner { padding-top: 56px; padding-bottom: 56px; }
@media (min-width: 1024px) { .rn-tp-feature__inner { padding-top: 88px; padding-bottom: 88px; } }
.rn-tp-feature .rn-tp-eyebrow { color: var(--cs-on-dark); }
/* 見出しは改行を入れず、1〜2行に収める大きさに（CHG-20261109-180） */
.rn-tp-feature .rn-tp-big { font-size: clamp(22px, 2.6vw, 34px); line-height: 1.6; color: var(--cs-white); }
.rn-tp-feature__text { max-width: 46em; margin-top: 18px; }
.rn-tp-feature__text p { margin-top: 10px !important; font-size: 15px; line-height: 2; color: var(--cs-on-dark); }
.rn-tp-feature__text .rn-tp-feature__answer { margin: 28px 0 18px !important; font-family: var(--cs-font-display); font-size: clamp(20px, 2.4vw, 26px); font-weight: 600; line-height: 1.6; color: var(--cs-white); }
.rn-tp-feature .rn-btn { margin-top: 28px; }

/* ココ住ムの役割：左に深緑の地と文、右に写真（CHG-20261109-200） */
.rn-tp-feature--split { background: var(--cs-forest) radial-gradient(circle at 0 100%, rgba(63, 107, 31, 0.55), transparent 55%); }
.rn-tp-feature--split .rn-tp-feature__media { position: relative; z-index: 0; height: 240px; }
.rn-tp-feature--split .rn-tp-feature__media::after { display: none; }
@media (min-width: 1024px) {
  .rn-tp-feature--split .rn-tp-feature__media { position: absolute; inset: 0 0 0 auto; width: 42%; height: auto; }
  .rn-tp-feature--split .rn-tp-feature__media::after { display: block; background: linear-gradient(90deg, var(--cs-forest) 0%, rgba(30, 58, 27, 0) 28%); }
  .rn-tp-feature--split .rn-tp-feature__inner { padding-right: calc(42% + 24px); }
}

/* 事業内容：ひとつの窓口の図（CHG-20261109-200） */
.rn-tp-hub { padding: 64px 0 0; background: var(--cs-cream); background-image: radial-gradient(var(--cs-line) 1px, transparent 1px); background-size: 22px 22px; }
.rn-tp-hub__inner { display: grid; gap: 40px; align-items: center; }
.rn-tp-hub .rn-tp-big { font-size: clamp(22px, 2.6vw, 34px); }
.rn-tp-hub__body .rn-tp-feature__text p { color: var(--cs-ink); }
.rn-tp-hub__figure { position: relative; width: min(100%, 420px); aspect-ratio: 1; margin: 0 auto; }
.rn-tp-hub__ring { position: absolute; inset: 0; border: 1px dashed var(--cs-greige); border-radius: 50%; opacity: .55; }
.rn-tp-hub__ring::before { content: ""; position: absolute; inset: 17%; border: 1px solid var(--cs-forest); border-radius: 50%; opacity: .35; }
.rn-tp-hub__core { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: grid; place-content: center; width: 34%; aspect-ratio: 1; border-radius: 50%; background: var(--cs-forest); color: var(--cs-white); font-family: var(--cs-font-display); font-size: clamp(17px, 2vw, 22px); font-weight: 600; text-align: center; box-shadow: 0 0 0 10px rgba(30, 58, 27, .12); }
.rn-tp-hub__core small { font-family: var(--cs-font-body); font-size: 11px; font-weight: 400; letter-spacing: .1em; color: var(--cs-on-dark-muted); }
.rn-tp-hub__node { position: absolute; transform: translate(-50%, -50%); padding: 8px 14px; border: 1px solid var(--cs-forest); background: var(--cs-white); color: var(--cs-forest); font-family: var(--cs-font-display); font-size: clamp(13px, 1.4vw, 16px); font-weight: 600; white-space: nowrap; }
.rn-tp-hub__node--n { left: 50%; top: 17%; } .rn-tp-hub__node--e { left: 83%; top: 50%; }
.rn-tp-hub__node--s { left: 50%; top: 83%; } .rn-tp-hub__node--w { left: 17%; top: 50%; }
.rn-tp-hub__pro { position: absolute; transform: translate(-50%, -50%); padding: 2px 10px; border-radius: 999px; background: var(--cs-cream); color: var(--cs-greige); font-size: 12px; white-space: nowrap; }
.rn-tp-hub__pro--1 { left: 85%; top: 15%; } .rn-tp-hub__pro--2 { left: 15%; top: 85%; } .rn-tp-hub__pro--3 { left: 85%; top: 85%; }
.rn-tp-hub + .rn-tp-biz { background: var(--cs-cream); padding-top: 48px; padding-bottom: 72px; }
@media (min-width: 1024px) {
  .rn-tp-hub { padding-top: 88px; }
  .rn-tp-hub__inner { grid-template-columns: minmax(0, 1fr) 420px; gap: 64px; }
}

/* 相談フォームの上の見出し・連絡先の注記・送ったあとの流れ（CHG-20261109-210） */
.rn-cta__form-title { margin: 0 0 28px !important; font-family: var(--cs-font-display); font-size: 20px; font-weight: 600; color: var(--cs-forest); }
.rn-form__note { margin: 0 !important; font-size: 13px; color: var(--cs-greige); }
.rn-form__after { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 0; margin: 4px 0 0; padding: 0; font-size: 13px; color: var(--cs-greige); }
.rn-form__after li + li::before { content: "→"; margin: 0 8px; color: var(--cs-line); }

/* 事業内容のカード・お役立ちのカード（写真 → 見出しと矢印 → 文） */
.rn-tp-biz { padding: 64px 0 0; background: var(--cs-white); }
.rn-tp-cards { list-style: none; display: grid; gap: 12px; }
.rn-tp-card { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 20px; align-items: start; height: 100%; padding: 20px; border: 1px solid var(--cs-line); background: var(--cs-white); color: var(--cs-ink) !important; text-decoration: none; transition: border-color .3s ease; }
.rn-tp-card:hover { border-color: var(--cs-forest); }
.rn-tp-card img { width: 96px; height: 96px; object-fit: cover; }
.rn-tp-card__body { display: block; }
.rn-tp-card__title { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-family: var(--cs-font-display); font-size: 17px; font-weight: 600; line-height: 1.6; color: var(--cs-forest); }
.rn-tp-card__title::after { content: ""; flex: none; width: 24px; height: 1px; background: currentColor; transition: width .4s var(--rn-ease); }
.rn-tp-card:hover .rn-tp-card__title::after { width: 36px; }
.rn-tp-card__text { display: block; margin-top: 8px; font-size: 14px; line-height: 1.9; color: var(--cs-greige); }
@media (min-width: 768px) {
  .rn-tp-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rn-tp-card { grid-template-columns: 120px minmax(0, 1fr); gap: 28px; padding: 24px 32px; }
  .rn-tp-card img { width: 120px; height: 120px; }
}

/* ご挨拶 */
.rn-tp-greeting { padding: var(--rn-space) 0; background: var(--cs-white); }
.rn-tp-greeting__inner { display: grid; gap: 48px; }
.rn-tp-greeting__body .rn-btn { margin-top: 36px; }
.rn-tp-greeting__photo { margin: 0; }
.rn-tp-greeting__photo img { display: block; width: 100%; max-width: 480px; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.rn-tp-greeting__photo figcaption { margin-top: 14px; font-size: 13px; line-height: 1.8; color: var(--cs-greige); }
@media (min-width: 1024px) {
  .rn-tp-greeting__inner { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 96px; }
  .rn-tp-greeting__photo { margin-right: 0; }
  .rn-tp-greeting__photo img { width: 520px; max-width: none; }
}

/* お役立ち・お知らせ */
.rn-tp-useful { padding: var(--rn-space) 0 64px; background: var(--cs-paper); }
.rn-tp-useful .rn-tp-card { background: var(--cs-white); }
.rn-tp-news { padding: 64px 0 var(--rn-space); background: var(--cs-paper); }
.rn-tp-news__list { list-style: none; border-top: 1px solid var(--cs-line); }
.rn-tp-news__list li { border-bottom: 1px solid var(--cs-line); }
.rn-tp-news__list a { display: grid; gap: 4px; padding: 20px 0; color: var(--cs-ink) !important; text-decoration: none; }
.rn-tp-news__list a:hover span { color: var(--cs-clover); }
.rn-tp-news__list time { font-size: 13px; color: var(--cs-greige); letter-spacing: 0.06em; }
.rn-tp-news__list span { font-size: 15px; line-height: 1.8; }
@media (min-width: 768px) { .rn-tp-news__list a { grid-template-columns: 8em minmax(0, 1fr); gap: 24px; padding: 24px 0; } }

/* お役立ち（/resources。F-HKA-022・CHG-20261109-090）：区分ごとに、写真・題・短い説明のカード。カード全体がリンク */
.rn-res-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 56px; }
.rn-res-tabs a { padding: 8px 18px; border: 1px solid var(--cs-line); border-radius: 999px; background: var(--cs-paper); font-size: 14px; line-height: 1.6; color: var(--cs-ink) !important; text-decoration: none; }
.rn-res-tabs a:hover { border-color: var(--cs-clover); color: var(--cs-clover) !important; }
.rn-res-sec { scroll-margin-top: 96px; }
.rn-res-sec + .rn-res-sec { margin-top: 80px; padding-top: 56px; border-top: 1px solid var(--cs-line); }
.rn-res-sec__h { font-family: var(--cs-font-display); font-size: clamp(22px, 3vw, 28px); font-weight: 600; line-height: 1.5; color: var(--cs-forest); }
.rn-res-sec__lead { margin-top: 12px; font-size: 15px; color: var(--cs-greige); }
.rn-res-cards { display: grid; gap: 24px; margin-top: 32px; list-style: none; padding: 0; }
@media (min-width: 640px) { .rn-res-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .rn-res-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; } }
.rn-res-card { display: flex; flex-direction: column; height: 100%; background: var(--cs-white); border: 1px solid var(--cs-line); color: var(--cs-ink) !important; text-decoration: none; transition: border-color .3s var(--rn-ease), transform .3s var(--rn-ease); }
.rn-res-card:hover { border-color: var(--cs-clover); transform: translateY(-2px); }
.rn-res-card__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--cs-cream); }
.rn-res-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rn-res-card__body { display: flex; flex-direction: column; gap: 8px; padding: 20px 22px 24px; }
.rn-res-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: 12px; line-height: 1.6; color: var(--cs-greige); }
.rn-res-card__badge { padding: 2px 10px; border-radius: 999px; background: var(--cs-cream); color: var(--cs-forest); font-weight: 600; }
.rn-res-card__title { font-family: var(--cs-font-display); font-size: 18px; font-weight: 600; line-height: 1.6; color: var(--cs-forest); }
.rn-res-card:hover .rn-res-card__title { color: var(--cs-clover); }
.rn-res-card__text { font-size: 14px; line-height: 1.9; color: var(--cs-ink); }
/* コラムの1本：冒頭の写真 */
.rn-col__photo { margin: 0 0 32px; aspect-ratio: 16 / 9; overflow: hidden; background: var(--cs-cream); }
.rn-col__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rn-col .rn-gl-h2 { margin-top: 64px; margin-bottom: 20px; }
.rn-col .rn-gl-inline-cta { margin-top: 48px; }
.rn-col .rn-gl-updated { margin-top: 40px; }
.rn-col .rn-gl-updated + .rn-gl-updated { margin-top: 8px; }

/* 講演・セミナーの実績の段（CHG-20261109-091）。ご相談の実績の段（.rn-record）と同じ組みに、主催の会社・団体のロゴ（無ければ社名）の帯 */
.rn-record--lecture + .rn-record, .rn-record + .rn-record--lecture { border-top: 0; }
.rn-logos { margin-top: 56px; padding-top: 32px; border-top: 1px solid var(--cs-line); }
.rn-logos__title { font-size: 13px; letter-spacing: 0.12em; color: var(--cs-greige); }
.rn-logos__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; padding: 0; list-style: none; }
@media (min-width: 640px) { .rn-logos__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .rn-logos__list { gap: 16px; } }
.rn-logos__item { display: flex; align-items: center; justify-content: center; min-height: 88px; padding: 16px 20px; background: var(--cs-white); border: 1px solid var(--cs-line); text-align: center; }
.rn-logos__item img { display: block; max-width: 100%; max-height: 48px; width: auto; height: auto; object-fit: contain; }
.rn-logos__name { text-wrap: balance; font-family: var(--cs-font-display); font-size: 15px; font-weight: 600; line-height: 1.6; color: var(--cs-forest); }

/* サービスのページの見出し（2行の文。CHG-20261109-081） */
.rn .rn-page-hero__title--long { font-size: clamp(26px, 4.6vw, 58px); line-height: 1.5; letter-spacing: 0.06em; }
.rn .rn-page-hero__title--long + .rn-page-hero__lead { max-width: 40em; }
/* 用語集の p の余白（.rn p { margin: 0 } より強くする） */
.rn .rn-gl-cta__label { margin-bottom: 10px; }
.rn .rn-gl-cta__text { margin: 14px 0 22px; }
.rn .rn-gl-cta__note { margin-top: 8px; }
.rn .rn-gl-meta { margin-bottom: 28px; }
.rn .rn-gl-define__label { margin-bottom: 8px; }
.rn .rn-gl-toc__title { margin-bottom: 12px; }
.rn .rn-gl-search__none { margin-top: 12px; }
.rn .rn-gl-cat__more { margin-top: 8px; }
.rn .rn-gl-updated { margin-top: 48px; }

/* サービスのページの上のタブ（4つのご相談。CHG-20261109-081） */
.rn-svc-tabs { background: var(--cs-paper); border-top: 1px solid var(--cs-line); }
.rn-svc-tabs ul { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: calc(var(--rn-content-max) + 2 * var(--rn-gutter)); margin: 0 auto; }
.rn-svc-tabs a { display: flex; align-items: center; justify-content: center; min-height: 52px; padding: 8px 4px; font-family: var(--cs-font-display); font-size: 13px; font-weight: 600; letter-spacing: 0.06em; line-height: 1.4; text-align: center; color: var(--cs-forest) !important; text-decoration: none; transition: background-color .3s var(--rn-ease); }
.rn-svc-tabs a:hover { background: var(--cs-cream); }
.rn-svc-tabs a[aria-current="page"] { background: var(--cs-forest); color: var(--cs-on-dark) !important; }
@media (min-width: 768px) { .rn-svc-tabs a { min-height: 60px; font-size: 16px; letter-spacing: 0.12em; } }
.rn .rn-svc-links__list--in { margin-top: 64px; }
.rn .rn-flow__lead { margin-top: 28px; max-width: 30em; font-size: 15px; line-height: 2; color: var(--cs-on-dark); }
.rn .rn-flow__lead + .rn-flow__note { margin-top: 16px; }

/* 講演の主催のロゴ（2社の組は並べる。CHG-20261109-092） */
.rn-logos__imgs { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 20px; }
.rn-logos__imgs img { max-height: 40px; max-width: 46%; }
.rn-logos__imgs img:only-child { max-height: 44px; max-width: 100%; }

/* トップ：お取り引き先の工務店・設計会社・メーカー（現行サイトのロゴの帯を移した。CHG-20261109-092） */
.rn-partners { padding: calc(var(--rn-space) * 0.6) 0; background: var(--cs-white); border-top: 1px solid var(--cs-line); }
.rn .rn-partners__title { margin-top: 4px; font-family: var(--cs-font-display); font-size: clamp(17px, 2vw, 22px); font-weight: 600; line-height: 1.8; color: var(--cs-forest); }
.rn .rn-partners__list { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 20px 28px; margin-top: 40px; padding: 28px 0 0; border-top: 1px solid var(--cs-line); list-style: none; }
.rn-partners__item a { display: block; transition: opacity .3s var(--rn-ease); }
.rn-partners__item a:hover { opacity: .7; }
.rn-partners__item img { display: block; width: auto; max-width: 100%; height: auto; max-height: 64px; }
@media (max-width: 639px) { .rn-partners__list { gap: 16px 20px; } .rn-partners__item img { max-height: 44px; } }
.rn .rn-flow__title { font-size: clamp(24px, 3vw, 38px); line-height: 1.6; }
/* コピーライトの2行（CHG-20261109-101） */
.rn .rn-footer__copy p + p { margin-top: 4px; }
.rn-footer__copy small { font-size: 11px; letter-spacing: 0.12em; }
.rn-footer__legal { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 24px; margin: 0 0 12px !important; padding: 0; list-style: none; }
.rn-footer__legal a { display: inline-flex; min-height: 32px; align-items: center; color: var(--cs-on-dark) !important; text-decoration: none; letter-spacing: 0.08em; }
.rn-footer__legal a:hover { text-decoration: underline; }

/* 横に並べる「ご相談の流れ」（CHG-20261109-153。partials/flow-row。/fees） */
#flow { scroll-margin-top: var(--rn-header-h); }
.rn-content > .rn-section.rn-hflow { position: relative; overflow: hidden; background: var(--cs-forest); color: var(--cs-on-dark); }
.rn-hflow__media { position: absolute; inset: 0; }
.rn-hflow__media img { width: 100%; height: 100%; object-fit: cover; opacity: 0.28; }
.rn-hflow__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(30, 58, 27, 0.94) 0%, rgba(30, 58, 27, 0.78) 55%, rgba(30, 58, 27, 0.94) 100%); }
.rn-hflow__inner { position: relative; }
.rn-hflow__head { text-align: center; max-width: 40em; margin: 0 auto 48px; }
.rn-hflow .rn-kicker { justify-content: center; color: var(--cs-on-dark-muted); }
.rn-hflow .rn-kicker::before { filter: brightness(0) invert(0.92); }
.rn .rn-hflow__title { margin: 0 !important; color: var(--cs-on-dark) !important; font-family: var(--cs-font-display); font-size: clamp(28px, 3.6vw, 44px); font-weight: 600; letter-spacing: 0.12em; line-height: 1.5; }
.rn .rn-hflow__title::before { display: none !important; }
.rn .rn-hflow__title::after { content: ""; display: block; width: 48px; height: 1px; margin: 22px auto 0; background: var(--cs-on-dark-line); }
.rn .rn-hflow__lead { margin: 22px 0 0; font-size: 15px; line-height: 2; color: var(--cs-on-dark); }
.rn-hflow__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.rn-hflow__step { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr); column-gap: 16px; padding-bottom: 20px; }
.rn-hflow__step:not(:last-child)::before { content: ""; position: absolute; left: 31px; top: 64px; bottom: 0; border-left: 1px dashed var(--cs-on-dark-line); }
.rn-hflow__mark { display: flex; flex-direction: column; align-items: center; }
.rn-hflow__num { order: 2; margin-top: 6px; font-family: var(--cs-font-label); font-size: 13px; letter-spacing: 0.14em; color: var(--cs-on-dark-muted); }
.rn-hflow__icon { position: relative; z-index: 1; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--cs-cream); color: var(--cs-clover); box-shadow: 0 0 0 6px rgba(244, 239, 230, 0.12); }
.rn-hflow__icon svg { width: 30px; height: 30px; }
.rn-hflow__card { position: relative; padding: 22px 22px 24px; background: var(--cs-white); color: var(--cs-ink); border-top: 3px solid var(--cs-clover); box-shadow: 0 18px 40px -24px rgba(0, 0, 0, 0.55); }
.rn .rn-hflow__name { margin: 0 !important; font-family: var(--cs-font-display); font-size: 17px; font-weight: 600; letter-spacing: 0.06em; line-height: 1.5; color: var(--cs-forest) !important; }
.rn .rn-hflow__name::before { display: none !important; }
.rn .rn-hflow__text { margin: 10px 0 0; font-size: 14px; line-height: 1.85; color: var(--cs-greige); }
.rn .rn-hflow__tag { display: inline-block; margin: 14px 0 0; padding: 4px 10px; font-size: 12px; line-height: 1.5; letter-spacing: 0.04em; color: var(--cs-clover); background: var(--cs-paper); border: 1px solid var(--cs-line); }
.rn-hflow__foot { display: flex; flex-direction: column; align-items: center; gap: 20px; margin-top: 40px; text-align: center; }
.rn .rn-hflow__note { margin: 0; max-width: 40em; font-size: 14px; line-height: 1.9; color: var(--cs-on-dark-muted); }
.rn-hflow__link { display: inline-flex; align-items: center; gap: 12px; padding: 14px 32px; background: var(--cs-cream); color: var(--cs-forest) !important; font-family: var(--cs-font-display); font-size: 15px; font-weight: 600; letter-spacing: 0.08em; text-decoration: none !important; transition: background .2s var(--rn-ease), color .2s var(--rn-ease); }
.rn-hflow__link:hover { background: var(--cs-white); }
.rn-hflow__link span { transition: transform .2s var(--rn-ease); }
.rn-hflow__link:hover span { transform: translateX(4px); }
@media (min-width: 1024px) {
  .rn-hflow__head { margin-bottom: 64px; }
  .rn-hflow__steps { grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: 20px; }
  .rn-hflow__step { grid-template-columns: none; grid-template-rows: auto 1fr; row-gap: 24px; padding-bottom: 0; }
  .rn-hflow__step:not(:last-child)::before { left: calc(50% + 44px); right: calc(-50% + 24px); top: 66px; bottom: auto; border-left: 0; border-top: 1px dashed rgba(244, 239, 230, 0.4); }
  .rn-hflow__step:not(:last-child)::after { content: ""; position: absolute; top: 62px; right: calc(-50% + 24px); width: 8px; height: 8px; border-top: 1px solid rgba(244, 239, 230, 0.6); border-right: 1px solid rgba(244, 239, 230, 0.6); transform: rotate(45deg); }
  .rn-hflow__num { order: 0; height: 20px; margin: 0 0 10px; line-height: 20px; }
  .rn-hflow__icon { width: 72px; height: 72px; }
  .rn-hflow__icon svg { width: 34px; height: 34px; }
  .rn-hflow__card { height: 100%; padding: 26px 20px 26px; }
  .rn-hflow__card::before { content: ""; position: absolute; left: 50%; top: -12px; transform: translateX(-50%); border-left: 9px solid transparent; border-right: 9px solid transparent; border-bottom: 9px solid var(--cs-clover); }
  .rn .rn-hflow__name { text-align: center; }
  .rn-hflow__foot { margin-top: 56px; }
}

/* よくある質問の目次（CHG-20261109-190） */
.rn-faq-nav { padding-top: 40px; padding-bottom: 40px; }
.rn-faq-nav__group + .rn-faq-nav__group { margin-top: 24px; }
.rn-faq-nav__label { margin: 0 0 10px; font-size: 14px; font-weight: 600; color: var(--cs-forest); letter-spacing: 0.06em; }
.rn-faq-nav__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.rn-faq-nav__list a { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border: 1px solid var(--cs-line); border-radius: 999px; color: var(--cs-forest); font-size: 15px; text-decoration: none; background: #fff; }
.rn-faq-nav__list a:hover { border-color: var(--cs-forest); }
.rn-faq-nav__list span { font-size: 12px; color: var(--cs-forest); opacity: .7; }
.rn-faq-heading { scroll-margin-top: 100px; }
/* ご相談の流れ：ご予約の手順の電話・フォーム（CHG-20261109-202、204 でボタンに） */
.rn .rn-hflow__contact { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 8px; }
.rn .rn-hflow__contact li { margin: 0; padding: 0; }
.rn .rn-hflow__cbtn { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid var(--cs-forest); border-radius: 4px; color: var(--cs-forest); text-decoration: none; font-weight: 600; font-size: 15px; letter-spacing: 0.02em; line-height: 1.3; white-space: nowrap; transition: background .2s, color .2s; }
.rn .rn-hflow__cbtn span { display: flex; flex-direction: column; }
.rn .rn-hflow__cbtn small { font-size: 11px; font-weight: 500; letter-spacing: 0.08em; opacity: .75; }
.rn .rn-hflow__cbtn svg { flex: none; }
.rn .rn-hflow__cbtn--form { background: var(--cs-forest); color: #fff; }
.rn .rn-hflow__cbtn:hover { background: var(--cs-forest); color: #fff; }
.rn .rn-hflow__cbtn--form:hover { opacity: .88; }
/* /fees 料金表の見出し（CHG-20261109-203） */
.rn .rn-fees-title { margin: 0 0 40px !important; text-align: center; color: var(--cs-forest) !important; font-family: var(--cs-font-display); font-size: clamp(26px, 3.2vw, 38px); font-weight: 600; letter-spacing: 0.12em; line-height: 1.5; }
.rn .rn-fees-title::before { display: none !important; }
.rn .rn-fees-title::after { content: ""; display: block; width: 48px; height: 1px; margin: 20px auto 0; background: var(--cs-forest); }

/* CTA をリッチに（CHG-20261109-240）：背景に淡い光と細い線、電話は枠つきの札、フォームは上に色の帯と影 */
.rn-cta { position: relative; overflow: hidden; isolation: isolate;
  background:
    radial-gradient(ellipse 60% 70% at 0% 0%, rgba(255,255,255,.10), transparent 60%),
    radial-gradient(ellipse 50% 60% at 100% 100%, rgba(0,0,0,.22), transparent 60%),
    var(--cs-forest); }
.rn-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: linear-gradient(120deg, #000 0%, transparent 55%); mask-image: linear-gradient(120deg, #000 0%, transparent 55%); }
.rn-cta__title { padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,.18); }
.rn-cta__telbox { margin-top: 20px; padding: 12px 16px 10px; border: 1px solid rgba(255,255,255,.14); background: transparent; border-radius: 4px; -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.rn-cta__telbox-label { display: flex; align-items: center; gap: 8px; margin: 0 !important; font-size: 13px; font-weight: 700; letter-spacing: .08em; color: var(--cs-cream); }
.rn-cta__telbox-icon { width: 18px; height: 18px; flex: none; }
.rn-cta__telbox .rn-cta__tel { margin-top: 6px; font-size: clamp(22px, 2.6vw, 30px); }
.rn-cta__form { position: relative; border-radius: 4px; box-shadow: 0 24px 60px -20px rgba(0,0,0,.45), 0 2px 6px rgba(0,0,0,.12); }
.rn-cta__form::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--cs-cream); border-radius: 4px 4px 0 0; }
.rn-cta__form-title { padding-bottom: 16px; border-bottom: 1px solid var(--cs-line); }
.rn-cta__note { display: inline-block; padding: 4px 10px; border-left: 3px solid var(--cs-cream); background: rgba(255,255,255,.06); }
@media (min-width: 768px) { .rn-cta__telbox { padding: 12px 18px 10px; } }

/* サービスのページ：お役立ちコラムのスライダー（CHG-20261109-240） */
.rn-svc-cols { overflow: hidden; }
.rn-svc-cols .rn-tp-cases__rail { margin-top: 32px; }
.rn-svc-cols__more { margin-top: 24px !important; text-align: right; }

/* CTA の背景に相談の場面の写真（CHG-20261109-231）。深緑を重ねて文字を読みやすく、写真は右側でうっすら見せる */
.rn-cta {
  background:
    linear-gradient(90deg, rgba(31,51,30,.97) 0%, rgba(31,51,30,.90) 45%, rgba(31,51,30,.72) 100%),
    url("photos/consult-sm.jpg") center / cover no-repeat,
    var(--cs-forest); }
@media (min-width: 1024px) {
  .rn-cta {
    background:
      linear-gradient(90deg, rgba(31,51,30,.96) 0%, rgba(31,51,30,.88) 40%, rgba(31,51,30,.62) 100%),
      url("photos/consult.jpg") center / cover no-repeat,
      var(--cs-forest); } }

/* こんなご相談を受けています：写真・見出し・文のカード（CHG-20261109-242） */
.rn-worries { list-style: none; padding: 0; margin-top: 40px !important; display: grid; gap: 32px; }
@media (min-width: 640px) { .rn-worries { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .rn-worries { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 32px; } }
.rn-worry__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; }
.rn-worry__media img { width: 100%; height: 100%; object-fit: cover; }
.rn-worry__h { margin-top: 20px !important; font-family: var(--cs-font-display); font-size: 18px; font-weight: 600; line-height: 1.6; color: var(--cs-forest); }
.rn-worry__text { margin-top: 10px !important; font-size: 14px; line-height: 1.9; color: var(--cs-ink); }

/* CTA の左下に実績の数と講演の主催企業のロゴ（CHG-20261109-232） */
.rn-cta__proof { margin-top: 40px; padding-top: 32px; border-top: 1px solid rgba(255,255,255,.18); }
.rn-cta__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0; }
.rn-cta__stat { padding: 18px 20px; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.05); border-radius: 4px; }
.rn-cta__stat dt { font-size: 13px; font-weight: 700; color: var(--cs-cream); }
.rn-cta__stat dd { margin: 6px 0 0; font-size: 15px; font-weight: 700; color: var(--cs-white); }
.rn-cta__stat strong { margin: 0 4px; font-family: var(--cs-font-display); font-size: clamp(36px, 4vw, 48px); font-weight: 600; line-height: 1; }
.rn-cta__logos-title { margin: 28px 0 12px !important; font-size: 13px; font-weight: 700; color: var(--cs-on-dark); }
.rn-cta__logos { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; }
.rn-cta__logos li { display: flex; align-items: center; justify-content: center; gap: 8px; height: 64px; padding: 10px 14px; background: var(--cs-white); border-radius: 4px; }
.rn-cta__logos img { max-width: 100%; max-height: 36px; width: auto; height: auto; object-fit: contain; }
.rn-cta__logos li:has(img + img) img { max-width: 48%; }
@media (min-width: 1024px) { .rn-cta__lead { position: static; } }
@media (max-width: 480px) { .rn-cta__stat { padding: 14px; } .rn-cta__stat dt { font-size: 12px; } }

/* 相談予約フォームのリード文は PC で折り返さない（CHG-20261109-244） */
@media (min-width: 1024px) { .rn-form-lead { white-space: nowrap; } }

/* 3列のカードの見出しを1行に収める（CHG-20261109-233、小野さん「見出しの改行するな」） */
.rn .rn-cards--3 .rn-card__title { font-size: clamp(17px, 1.35vw, 19px); letter-spacing: 0.02em; }
@media (min-width: 1024px) { .rn .rn-cards--3 .rn-card__title { white-space: nowrap; font-size: clamp(15px, 1.35vw, 19px); letter-spacing: 0; } }
.rn-cta__logos-more { margin: 14px 0 0 !important; font-size: 14px; line-height: 1.8; color: var(--cs-on-dark); }

/* CTA の本文を列の右端まで（CHG-20261109-236） */
.rn-cta__text { max-width: none; }
/* お役立ち：コラムの「すべて見る」（CHG-20261109-256） */
.rn-res-more { margin: 40px 0 0; text-align: center; }
.rn-res-more .rn-btn { min-width: 240px; font-family: inherit; }
/* ご相談の流れ：横並び（CHG-20261109-300） */
@media (min-width: 1024px) {
  .rn .rn-flow__head .rn-flow__lead, .rn .rn-flow__head .rn-flow__note { max-width: none; margin-left: auto; margin-right: auto; }
  .rn-flow__head .rn-kicker { justify-content: center; }
  .rn-flow__steps > li { padding: 26px 18px 28px; }
  .rn .rn-flow__steps strong { font-size: 15px; letter-spacing: 0.02em; line-height: 1.6; }
  .rn .rn-flow__steps span { font-size: 13px; line-height: 1.8; }
}
/* ご相談の流れ：カードを分けて番号の丸と線でつなぐ（CHG-20261109-301） */
@media (min-width: 1024px) {
  .rn-flow__steps { position: relative; gap: 20px; padding-top: 28px; background: none; counter-reset: rn-flow; }
  .rn-flow__steps::before { content: ""; position: absolute; left: 0; right: 0; top: 28px; border-top: 1px dashed rgba(255, 255, 255, 0.45); }
  .rn-flow__steps > li, .rn-flow__steps > li:nth-child(even) { position: relative; padding: 46px 22px 30px; background: var(--cs-white); border-radius: 6px; box-shadow: 0 18px 40px -18px rgba(0, 0, 0, 0.45); transition: transform .3s var(--rn-ease), box-shadow .3s var(--rn-ease); }
  .rn-flow__steps > li:hover { transform: translateY(-4px); box-shadow: 0 26px 48px -18px rgba(0, 0, 0, 0.55); }
  .rn-flow__steps > li::before { content: counter(rn-flow, decimal-leading-zero); position: absolute; top: -28px; left: 50%; transform: translateX(-50%); display: grid; place-items: center; width: 56px; height: 56px; margin: 0; border-radius: 50%; background: var(--cs-forest); border: 3px solid var(--cs-white); color: var(--cs-white); font-size: 18px; letter-spacing: 0.04em; box-shadow: 0 6px 16px -6px rgba(0, 0, 0, 0.5); }
  .rn-flow__steps > li:not(:last-child)::after { content: none; }
  .rn-flow__steps > li:last-child::before { background: var(--cs-clover); }
  .rn .rn-flow__steps strong { text-align: center; padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid var(--cs-line); font-size: 15.5px; }
  .rn .rn-flow__steps span { margin-top: 0; }
}
@media (min-width: 1024px) {
  .rn-flow__steps { margin-top: 36px; }
  .rn .rn-flow__steps strong { display: flex; align-items: center; justify-content: center; min-height: 3.4em; }
}
.rn-flow__inner { row-gap: 28px; }
@media (min-width: 1024px) { .rn .rn-flow__steps { margin-top: 64px; } }

/* 代表のメッセージのリード（CHG-20261109-335） */
.rn-profile__lead { font-size: 1.125rem; font-weight: 700; color: var(--rn-green, #1f5b3f); margin: .25rem 0 1rem; }
/* CTA の対応エリア（CHG-20261109-321） */
.rn-cta__area { margin: 0 !important; font-size: 15px; font-weight: 700; line-height: 1.8; color: var(--cs-on-dark); }

/* 流れのカードの中の電話・フォームのボタン（CHG-20261109-400） */
.rn .rn-flow__steps .rn-flow__contact { margin-top: 18px; }
.rn .rn-flow__steps .rn-flow__contact span { display: flex; margin-top: 0; font-size: 15px; line-height: 1.3; color: inherit; }
.rn .rn-flow__steps .rn-hflow__cbtn { justify-content: center; }
.rn-cta__form { scroll-margin-top: calc(var(--rn-header-h) + 16px); }
html:has(#rn-cta-form) { scroll-behavior: smooth; }

/* 対応エリアの市のリンク（F-HKA-023・CHG-20261109-420） */
.rn-area-links { list-style: none; margin: 24px 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 768px) { .rn-area-links { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.rn-area-links a { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border: 1px solid var(--rn-line, #d9d4c7); border-radius: 8px; background: #fff; color: inherit; text-decoration: none; font-weight: 600; }
.rn-area-links a::after { content: "→"; opacity: .6; }
.rn-area-links a:hover { border-color: currentColor; }
/* 役割の見出しを折り返さない（CHG-20261109-471） */
.rn-tp-feature--split .rn-tp-big { font-size: clamp(19px, 2.3vw, 32px); white-space: nowrap; }
.rn-tp-cases__stat > span { white-space: nowrap; }

/* フッターの対応エリアのリンク（暗い地で目立つように白・下線。CHG-20261109-479） */
.rn-footer__defs dd a { color: var(--cs-white) !important; text-decoration: underline; text-decoration-color: rgba(255,255,255,.5); text-underline-offset: 4px; font-weight: 600; }
.rn-footer__defs dd a:hover { text-decoration-color: var(--cs-white); }
/* ロゴの大小をそろえる（CHG-20261109-472） */
.rn-cta__logos img[src*="aisin"], .rn-cta__logos img[src*="denso"] { max-height: 22px; max-width: 62%; }
.rn-cta__logos img[src*="toyotahome"] { max-height: 42px; max-width: 88%; } /* CHG-20261109-495 */
.rn-cta__logos img[src*="reibs"] { max-height: 40px; max-width: 72%; }
.rn-cta__logos img[src*="boshoku-jtekt-1"] { max-height: 26px; max-width: 80%; }
.rn-cta__logos img[src*="boshoku-jtekt-2"] { max-height: 42px; max-width: 60%; }

/* 対応エリアの地図と町域（CHG-20261109-490） */
.rn-area-map { height: 440px; margin: 24px 0 8px; border: 1px solid var(--rn-line, #d9d4c7); border-radius: 12px; overflow: hidden; z-index: 0; }
@media (max-width: 767px) { .rn-area-map { height: 340px; } }
.rn-area-map__note { font-size: 13px; color: #6b6a63; margin: 0 0 24px; }
.rn-map-pin span { display: inline-block; transform: translate(-50%, calc(-100% - 6px)); position: relative; white-space: nowrap; padding: 4px 9px; background: var(--rn-green, #1f5b3f); color: #fff; font-size: 12px; font-weight: 700; border: 1px solid #fff; border-radius: 4px; box-shadow: 0 1px 4px rgba(0,0,0,.25); cursor: pointer; }
.rn-map-pin span::after { content: ""; position: absolute; left: 50%; bottom: -6px; transform: translateX(-50%); border: 6px solid transparent; border-bottom: 0; border-top-color: var(--rn-green, #1f5b3f); }
.rn-map-pin:hover { z-index: 1000 !important; }
.rn-map-pin:hover span { background: #c9a227; color: #1a1a1a; }
.rn-map-pop__city { margin: 0 0 4px !important; font-size: 12px; color: #6b6a63; }
.rn-map-pop__title { margin: 0 0 8px !important; font-weight: 700; font-size: 14px; line-height: 1.5; }
.rn-area-towns { list-style: none; margin: 20px 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px 16px; font-size: 14px; }
@media (min-width: 768px) { .rn-area-towns { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.rn-area-towns li { padding: 4px 0; border-bottom: 1px dotted var(--rn-line, #d9d4c7); }
.rn-area-towns__more summary { cursor: pointer; font-weight: 700; color: var(--rn-green, #1f5b3f); margin-top: 16px; }

/* コラム・用語集のよくある質問：詰まりを解消（CHG-20261109-431。小野さん「要素が寄りすぎ」） */
.rn-gl__main .rn-gl-h2 + .rn-faq { margin-top: 28px; }
.rn-gl__main h2.rn-gl-h2[id$="faq"] { margin-top: 88px !important; margin-bottom: 0 !important; }
.rn-gl__main .rn-faq__item summary { padding: 26px 56px 26px 20px; }
.rn-gl__main .rn-faq__answer { padding: 4px 20px 32px; line-height: 2; }
@media (min-width: 768px) { .rn-gl__main .rn-faq__item summary { padding: 30px 64px 30px 24px; } .rn-gl__main .rn-faq__answer { padding: 4px 24px 36px; } }

/* 見出しのクローバーを大きく薄く、見出しの背景に溶かす（CHG-20261109-496） */
.rn-content .rn-section > .rn-container > h2 { position: relative; isolation: isolate; }
.rn-content .rn-section > .rn-container > h2::before { position: absolute; z-index: -1; left: -0.6em; top: 50%; width: 3.6em; height: 3.6em; margin: 0; transform: translateY(-50%) rotate(-12deg); opacity: .09; pointer-events: none; }

/* 「頼んで良かった！」ランキング10の棒グラフ（CHG-20261109-512） */
ol.rn-rank.rn-rank { list-style: none; margin: 32px 0 16px; padding: 28px 32px; background: #fff; border-radius: 8px; box-shadow: 0 6px 24px rgba(0,0,0,.06); display: grid; gap: 18px; }
.rn-rank__row { display: grid; grid-template-columns: 64px 1fr; align-items: center; gap: 16px; }
.rn-rank__no { display: inline-flex; align-items: baseline; justify-content: center; gap: 2px; width: 56px; height: 56px; align-items: center; border-radius: 50%; background: var(--cs-paper); color: var(--cs-ink, #1f2a22); font-size: 12px; }
.rn-rank__no b { font-size: 22px; font-weight: 700; font-family: var(--rn-font-serif, serif); }
.rn-rank__row--top .rn-rank__no { background: var(--cs-forest, #1f4d2e); color: #fff; }
.rn-rank__body { display: grid; gap: 8px; min-width: 0; }
.rn-rank__label { word-break: auto-phrase; text-wrap: pretty; font-size: 15px; font-weight: 600; line-height: 1.6; }
.rn-rank__row--top .rn-rank__label { font-size: 17px; }
.rn-rank__bar { display: block; height: 10px; width: var(--w); border-radius: 999px; background: var(--cs-clover, #6a9b4f); opacity: .45; transform-origin: left; animation: rn-rank-grow .9s ease-out both; }
.rn-rank__row--top .rn-rank__bar { opacity: 1; height: 12px; }
@keyframes rn-rank-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) { .rn-rank__bar { animation: none; } }
@media (max-width: 640px) { ol.rn-rank.rn-rank { padding: 20px 16px; gap: 14px; } .rn-rank__row { grid-template-columns: 44px 1fr; gap: 12px; } .rn-rank__no { width: 44px; height: 44px; } .rn-rank__no b { font-size: 18px; } .rn-rank__label { font-size: 14px; } .rn-rank__row--top .rn-rank__label { font-size: 14px; } }
