/* 第12版（docs/28・docs/29）：全体メニュー・下層ページ（住宅会社の方へ・参画のご相談・会社概要・お知らせ・プライバシーポリシー・パートナー）・フッター。
   手で書いた見た目。tools/build_v12.py が書き出し先へ写す。色と書体は styles.css（第11版）の値を使う */

:root { --menu-top: 18px; --menu-h: 44px; --menu-w: 118px; }
/* 下層ページ：移った先・フォーカスした部品が、右上の［メニュー］の下に入らないように上を空ける。
   トップは空けない（第11版の着地の位置＝段の上端が画面の上から 16px、部屋は目次のすぐ下、をそのまま使う。
   段の上の余白が［メニュー］より高いので、見出しはボタンに隠れない。足し算にすると前の段が上に残る） */
html.v12-sub { scroll-padding-top: 76px; }
.ext-icon { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }

/* ---------- 全体メニューのボタン（右上に固定。ページの途中からでも開ける） ---------- */
.menu-btn {
  position: fixed; top: calc(var(--menu-top) + env(safe-area-inset-top, 0px)); right: max(12px, env(safe-area-inset-right)); z-index: 40;
  display: inline-flex; align-items: center; justify-content: center; gap: 9px; width: var(--menu-w); height: var(--menu-h); padding: 0 16px 0 14px; border: 0; border-radius: 999px;
  background: rgba(255, 255, 255, .94); color: var(--ink); font-size: 14px; font-weight: 700; letter-spacing: .06em; cursor: pointer;
  box-shadow: 0 2px 14px rgba(27, 27, 26, .14), inset 0 0 0 1px rgba(27, 27, 26, .12);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); transition: top .25s, box-shadow .2s;
}
.menu-btn:hover { box-shadow: 0 2px 14px rgba(27, 27, 26, .18), inset 0 0 0 1.5px var(--ink); }
.menu-ico { display: grid; gap: 4px; width: 18px; }
.menu-ico i { display: block; height: 2px; border-radius: 2px; background: currentColor; }
.menu-ico i:nth-child(2) { width: 13px; }
/* 部屋の目次が上に付いている間は、目次の高さの中に収める */
html.tour-stuck .menu-btn { top: calc(6px + env(safe-area-inset-top, 0px)); }
/* ヘッダーの右端は、ボタンの分だけ空ける */
.site-header .header-inner { padding-right: calc(var(--menu-w) + 28px); }
/* 部屋の目次も、右端をボタンの分だけ空ける（目次の札がボタンの下に隠れない） */
.tour-nav { padding-right: calc(var(--menu-w) + 16px); }

/* ---------- 全体メニューの中身 ---------- */
.site-menu[hidden] { display: none; }
.site-menu { position: fixed; inset: 0; z-index: 60; }
.site-menu-scrim { position: absolute; inset: 0; background: rgba(27, 27, 26, .38); }
.site-menu-panel {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(420px, 100%); overflow-y: auto; overscroll-behavior: contain;
  background: var(--paper); box-shadow: -10px 0 40px rgba(27, 27, 26, .18); padding: 0 24px 40px;
}
.site-menu.is-open .site-menu-panel { animation: menuIn .22s ease-out; }
@keyframes menuIn { from { transform: translateX(24px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .site-menu.is-open .site-menu-panel { animation: none; } }
.site-menu-bar { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; margin: 0 -24px; padding: 14px 16px 12px 24px; background: var(--paper); border-bottom: 1px solid var(--line); }
.site-menu-title { font-size: 15px; font-weight: 700; letter-spacing: .1em; }
.site-menu-close { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px; border: 0; border-radius: 999px; background: var(--off); font-size: 14px; font-weight: 700; cursor: pointer; }
.site-menu-close svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.site-menu-close:hover { background: var(--linen); }
.site-menu-here { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: 16px; padding: 10px 14px; border-radius: 12px; background: var(--off); font-size: 13px; color: var(--muted); }
.site-menu-here b { color: var(--ink); font-size: 14px; }
.site-menu-here[hidden] { display: none; }
.site-menu-group { margin: 22px 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .14em; color: var(--muted); }
.site-menu-nav ul { display: grid; gap: 2px; }
.site-menu-nav a { position: relative; display: grid; gap: 1px; padding: 11px 14px; border-radius: 12px; text-decoration: none; font-size: 17px; font-weight: 700; line-height: 1.5; }
.site-menu-nav a small { font-size: 12px; font-weight: 500; color: var(--muted); line-height: 1.6; }
.site-menu-nav a:hover { background: var(--off); }
.site-menu-nav a .here-tag { display: none; position: absolute; right: 12px; top: 13px; padding: 1px 9px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 11px; font-style: normal; letter-spacing: .06em; }
.site-menu-nav a[aria-current] { background: var(--off); box-shadow: inset 3px 0 0 var(--ink); }
.site-menu-nav a[aria-current] .here-tag { display: block; }
.site-menu-nav a[aria-current] > span, .site-menu-nav a[aria-current] > small { padding-right: 64px; }
.site-menu-primary { background: rgba(253, 202, 91, .28); }
.site-menu-nav .site-menu-primary:hover { background: rgba(253, 202, 91, .45); }
.site-menu-biz { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--line); }
.site-menu-biz a { font-size: 15px; box-shadow: inset 0 0 0 1px var(--line); }

/* ---------- 下層ページのヘッダー・現在の場所 ---------- */
.site-header--sub { position: relative; background: var(--paper); border-bottom: 1px solid var(--line); }
.crumbs { margin-top: 16px; }
.crumbs ol { display: flex; flex-wrap: wrap; gap: 2px 0; font-size: 13px; color: var(--muted); }
.crumbs li + li::before { content: "›"; margin: 0 9px; color: var(--line-strong); }
.crumbs a { color: var(--ink-2); text-underline-offset: 3px; }
.crumbs [aria-current] { color: var(--ink); font-weight: 700; }
main:focus { outline: none; }
.sub-head { padding: 36px 0 28px; max-width: 860px; }
.sub-k { font-size: 13px; font-weight: 700; letter-spacing: .14em; color: var(--muted); }
.sub-title { margin-top: 8px; font-size: clamp(28px, 3.4vw, 44px); line-height: 1.4; font-weight: 600; letter-spacing: .02em; word-break: keep-all; overflow-wrap: anywhere; font-feature-settings: "palt"; }
.sub-lead { margin-top: 16px; font-size: clamp(15px, 1.2vw, 17px); color: var(--ink-2); line-height: 1.95; overflow-wrap: anywhere; }
.preview-flag { position: relative; z-index: 30; margin: 0; padding: 6px 16px; background: #24435f; color: #fff; font-size: 13px; font-weight: 700; text-align: center; }

/* ---------- フッター ---------- */
.site-footer--v12 { padding: 48px 0 40px; background: var(--paper); border-top: 1px solid var(--line); }
.ft-top { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px 36px; }
.ft-nav ul { display: flex; flex-wrap: wrap; gap: 4px 22px; font-size: 14px; }
.ft-nav a, .ft-bottom a { text-underline-offset: 3px; color: var(--ink-2); }
.ft-nav a { display: inline-block; padding: 6px 0; text-decoration: none; }
.ft-nav a:hover { text-decoration: underline; }
.ft-biz a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--line-strong); font-size: 14px; font-weight: 700; text-decoration: none; }
.ft-biz a:hover { box-shadow: inset 0 0 0 1.5px var(--ink); }
.ft-biz .btn-icon { width: 16px; height: 16px; }
.site-footer--v12 .footer-note { margin-top: 22px; }
/* mamettoとは（正本 content/site.json の company.summary。検索・AI 検索でも読める本文の短い説明。docs/28a） */
.ft-about { max-width: 46em; margin-top: 22px; font-size: 13px; line-height: 1.85; color: var(--ink-2); word-break: auto-phrase; }
.ft-bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 24px; margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); }
.ft-bottom .footer-copy { margin-left: auto; }
.ft-bottom a { display: inline-block; padding: 6px 0; }

/* ---------- トップ：締めの相談の下の、住宅会社への入口（副導線） ---------- */
.bridge-biz { margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--line); }
.bridge-biz a { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 2px 10px; min-height: 44px; padding: 4px 6px; font-size: 14px; color: var(--ink-2); text-decoration: none; }
.bridge-biz-k { font-weight: 700; text-decoration: underline; text-underline-offset: 4px; color: var(--ink); }
.bridge-biz-t { font-size: 13px; color: var(--muted); }
.bridge-biz .btn-icon { width: 16px; height: 16px; }
.bridge-biz a:hover .bridge-biz-k { text-decoration-thickness: 2px; }

/* ---------- お知らせ（トップの欄・一覧・本文） ---------- */
.news-top { padding: 64px 0 72px; background: var(--paper); border-top: 1px solid var(--line); }
.news-top-inner { display: grid; grid-template-columns: 220px 1fr; gap: 12px 40px; align-items: start; }
.news-top-title { font-size: clamp(22px, 2.2vw, 28px); font-weight: 600; letter-spacing: .06em; }
.news-top-title:focus { outline: none; }
.news-top-more { grid-column: 2; }
.news-top-more a, .nd-back a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 14px; font-weight: 700; color: var(--ink); text-underline-offset: 4px; }
.news-top-more .btn-icon, .nd-back .btn-icon, .nw-more .btn-icon { width: 16px; height: 16px; }
.nl { border-top: 1px solid var(--line); }
.nl-item { border-bottom: 1px solid var(--line); }
.nl-link { display: grid; grid-template-columns: auto auto 1fr; align-items: baseline; gap: 6px 16px; padding: 16px 4px; text-decoration: none; }
.nl-link:hover .nl-title { text-decoration: underline; text-underline-offset: 4px; }
.nl-link time, .nw-meta time { font-size: 14px; color: var(--muted); font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.nl-kind { display: inline-block; padding: 1px 10px; border-radius: 999px; background: var(--off); box-shadow: inset 0 0 0 1px var(--line); font-size: 12px; font-weight: 700; color: var(--ink-2); white-space: nowrap; }
.nl-title { font-size: 15px; font-weight: 700; line-height: 1.7; overflow-wrap: anywhere; }
.nws-wrap, .co-wrap, .pp-wrap, .nd-wrap, .ct-wrap { max-width: 900px; padding-bottom: 88px; }
.nws-list { border-top: 1px solid var(--line); }
/* 第11版の .nw（折り返さない）と重ならない名前に */
.nws-item { padding: 26px 0 28px; border-bottom: 1px solid var(--line); }
.nws-item:target { background: linear-gradient(90deg, rgba(253, 202, 91, .18), transparent 70%); }
.nw-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
.nw-title { margin-top: 10px; font-size: clamp(18px, 1.7vw, 22px); line-height: 1.6; font-weight: 700; overflow-wrap: anywhere; }
.nw-summary { margin-top: 10px; color: var(--ink-2); }
.nw-links { display: flex; flex-wrap: wrap; gap: 6px 24px; margin-top: 10px; }
.nw-links a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 14px; font-weight: 700; color: var(--ink); text-underline-offset: 4px; }
.nw-asof { margin-top: 4px; font-size: 12px; color: var(--muted); }
.nd-body { margin-top: 24px; display: grid; gap: 1em; }
.nd-back { margin-top: 32px; }

/* ---------- 会社概要 ---------- */
.co-dl { border-top: 1px solid var(--line); }
.co-dl > div { display: grid; grid-template-columns: 160px 1fr; gap: 6px 24px; padding: 18px 4px; border-bottom: 1px solid var(--line); }
.co-dl dt { font-weight: 700; color: var(--ink-2); }
.co-dl dd { margin: 0; overflow-wrap: anywhere; }
.co-reps li + li { margin-top: 2px; }
.co-sub { display: block; margin-top: 4px; font-size: 13px; color: var(--muted); }
.co-h2 { margin-top: 48px; font-size: 20px; font-weight: 700; letter-spacing: .04em; }
.co-hist { margin-top: 14px; border-left: 2px solid var(--line); padding-left: 18px; display: grid; gap: 10px; }
.co-hist span { display: block; font-size: 13px; font-weight: 700; color: var(--muted); }
.co-routes { margin-top: 14px; display: grid; gap: 12px; }
.co-routes li { display: grid; gap: 4px; padding: 16px 18px; border-radius: 14px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); }
.co-routes span { font-size: 14px; color: var(--ink-2); }
.co-routes a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 700; color: var(--ink); text-underline-offset: 4px; justify-self: start; }
.co-routes .btn-icon { width: 16px; height: 16px; }
.co-asof { margin-top: 24px; font-size: 12px; color: var(--muted); }

/* ---------- プライバシーポリシー ---------- */
.pp-intro { color: var(--ink-2); }
.pp-a { margin-top: 32px; }
.pp-a h2 { font-size: 18px; font-weight: 700; line-height: 1.6; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.pp-a p, .pp-a ul, .pp-a ol { margin-top: 12px; font-size: 15px; color: var(--ink-2); line-height: 1.95; }
.pp-a ul, .pp-a ol { padding-left: 1.4em; display: grid; gap: 8px; }
.pp-a ul { list-style: disc; }
.pp-a ol { list-style: decimal; }
.pp-hist { margin-top: 40px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); }

/* ---------- パートナーを探す ---------- */
.pf .wrap { padding-bottom: 88px; }
.pf-tool { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 24px 36px; align-items: start; padding: 24px; border-radius: 24px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); }
.pf-tool[hidden] { display: none; }
.pf-map-k, .pf-ctrl-k { font-size: 13px; font-weight: 700; letter-spacing: .1em; color: var(--muted); margin-bottom: 10px; }
.jm { display: grid; grid-template-columns: repeat(14, minmax(0, 1fr)); grid-template-rows: repeat(9, auto); gap: 3px; }
.jm-t {
  position: relative; aspect-ratio: 1 / 1; min-width: 0; padding: 0; border: 0; border-radius: 5px; cursor: pointer;
  background: #ece8e1; color: #8a857b; font-size: clamp(9px, .78vw, 12px); font-weight: 700; line-height: 1; letter-spacing: 0;
  display: grid; place-items: center; transition: background-color .15s, box-shadow .15s;
}
.jm-t[style*="span 2"] { aspect-ratio: auto; }
.jm-t > span { display: block; max-width: 100%; overflow: hidden; white-space: nowrap; }
.jm-t b { position: absolute; right: 2px; top: 2px; min-width: 15px; height: 15px; padding: 0 3px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 10px; line-height: 15px; }
.jm-t[data-n]:not([data-n="0"]) { background: #f5dc9f; color: var(--ink); }
.jm-t:hover { box-shadow: inset 0 0 0 2px var(--ink-2); }
.jm.has-sel .jm-t { opacity: .45; }
.jm.has-sel .jm-t.in-sel { opacity: 1; }
.jm .jm-t.is-sel { box-shadow: inset 0 0 0 2.5px var(--ink); opacity: 1; }
.pf-map-note { margin-top: 10px; font-size: 12px; line-height: 1.7; color: var(--muted); }
.pf-regions { display: flex; flex-wrap: wrap; gap: 8px; }
.pf-r, .pf-p {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 0; border-radius: 999px; cursor: pointer;
  background: var(--off); box-shadow: inset 0 0 0 1px var(--line-strong); font-size: 14px; font-weight: 700; color: var(--ink);
}
.pf-r b, .pf-p b { font-size: 12px; font-weight: 700; color: var(--muted); }
.pf-r:hover, .pf-p:hover { box-shadow: inset 0 0 0 1.5px var(--ink); }
.pf-r[aria-pressed="true"], .pf-p[aria-pressed="true"] { background: var(--ink); color: #fff; box-shadow: none; }
.pf-r[aria-pressed="true"] b, .pf-p[aria-pressed="true"] b { color: rgba(255, 255, 255, .8); }
.pf-p[data-zero] { color: var(--muted); background: var(--paper); }
.pf-prefs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--line-strong); }
.pf-prefs[hidden] { display: none; }
.pf-p { min-height: 40px; padding: 0 12px; font-size: 13px; }
.pf-status { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin-top: 18px; padding: 12px 16px; border-radius: 14px; background: var(--off); }
.pf-status p { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.pf-status-k { font-size: 12px; font-weight: 700; color: var(--muted); letter-spacing: .08em; }
.pf-status b { font-size: 17px; }
.pf-count { font-size: 15px; font-weight: 700; }
.pf-reset { min-height: 44px; padding: 0 16px; border: 0; border-radius: 999px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--ink); font-size: 14px; font-weight: 700; cursor: pointer; }
.pf-reset[hidden] { display: none; }
.pf-basis { margin-top: 16px; font-size: 13px; color: var(--muted); line-height: 1.8; }
.pf-results { margin-top: 12px; }
.pc-group { display: flex; align-items: baseline; gap: 10px; margin-top: 36px; font-size: 18px; font-weight: 700; letter-spacing: .06em; }
.pc-group span { font-size: 13px; color: var(--muted); }
.pc-group[hidden], .pc-list[hidden], .pc[hidden] { display: none; }
.pc-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 14px; }
.pc-card { display: flex; flex-direction: column; height: 100%; border-radius: 18px; background: var(--paper); box-shadow: 0 1px 0 var(--line), inset 0 0 0 1px var(--line); overflow: hidden; }
.pc-media { position: relative; }
.pc-photo { width: 100%; aspect-ratio: 5 / 3; object-fit: cover; background: var(--stone); }
.pc-logo { position: absolute; left: 14px; bottom: -22px; display: grid; place-items: center; height: 50px; min-width: 50px; max-width: calc(100% - 28px); padding: 7px 12px; border-radius: 12px; background: #fff; box-shadow: 0 2px 10px rgba(27, 27, 26, .14); }
.pc-logo img { width: auto; height: auto; max-height: 34px; max-width: 150px; object-fit: contain; }
.pc-body { display: flex; flex-direction: column; flex: 1; padding: 34px 18px 18px; }
.pc-name { font-size: 17px; font-weight: 700; line-height: 1.55; word-break: keep-all; overflow-wrap: anywhere; }
.pc-co { display: block; margin-top: 2px; font-size: 13px; font-weight: 500; color: var(--ink-2); }
.pc-pref { margin-top: 6px; font-size: 13px; color: var(--muted); }
.pc-pref::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: var(--yellow); box-shadow: inset 0 0 0 1px rgba(27, 27, 26, .2); vertical-align: 1px; }
.pc-sns { display: flex; gap: 4px; margin-top: 8px; }
.pc-sns a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: var(--ink-2); }
.pc-sns a:hover { background: var(--off); color: var(--ink); }
.pc-sns svg, .pc-l svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.pc-sns svg .f { fill: currentColor; stroke: none; }
.pc-links { display: flex; flex-wrap: wrap; gap: 8px 6px; margin-top: auto; padding-top: 14px; }
.pc-main { display: inline-flex; align-items: center; justify-content: center; gap: 7px; flex: 1 1 100%; min-height: 46px; padding: 0 16px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 14px; font-weight: 700; text-decoration: none; }
.pc-main:hover { background: #000; }
.pc-l { display: inline-flex; align-items: center; justify-content: center; gap: 6px; flex: 1 1 0; min-height: 44px; padding: 0 12px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--line-strong); font-size: 13px; font-weight: 700; text-decoration: none; color: var(--ink); white-space: nowrap; }
.pc-l:hover { box-shadow: inset 0 0 0 1.5px var(--ink); }
.pf-empty { margin-top: 28px; padding: 28px 24px; border-radius: 18px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); text-align: center; color: var(--ink-2); }
.pf-empty-t { font-size: 17px; color: var(--ink); }
.pf-empty .btn { margin-top: 16px; }
.pf-checked { margin-top: 32px; font-size: 12px; color: var(--muted); }
.js .pf-results .pc-group:first-child { margin-top: 20px; }

/* ---------- 住宅会社の方へ ---------- */
.biz-route { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 4px 14px; margin-top: 10px; font-size: 13px; color: var(--muted); }
.biz-route a { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; font-weight: 700; color: var(--ink); text-underline-offset: 4px; }
.biz-route .btn-icon { width: 15px; height: 15px; }
.biz-hero { padding: 40px 0 72px; }
.biz-title { margin-top: 12px; font-size: clamp(34px, 5.2vw, 72px); line-height: 1.25; font-weight: 700; letter-spacing: .01em; font-feature-settings: "palt"; }
.biz-title .hl { display: inline-block; }
.biz-sub { margin-top: 14px; font-size: clamp(19px, 2.2vw, 28px); font-weight: 600; line-height: 1.6; overflow-wrap: anywhere; }
.biz-hero-text { margin-top: 28px; max-width: 720px; display: grid; gap: 1.1em; font-size: clamp(15px, 1.25vw, 18px); color: var(--ink-2); line-height: 2; overflow-wrap: anywhere; }
.biz-flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 44px; counter-reset: f; }
.biz-flow li { position: relative; display: grid; gap: 4px; align-content: start; padding: 20px 22px 22px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); }
.biz-flow li:first-child { border-radius: 18px 0 0 18px; }
.biz-flow li:last-child { border-radius: 0 18px 18px 0; background: #fff8e6; }
.biz-flow li + li::before { content: ""; position: absolute; left: -11px; top: 50%; width: 20px; height: 20px; margin-top: -10px; border-radius: 50%; background: var(--ink); z-index: 1;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10'/%3E%3C/svg%3E"); }
.biz-flow li + li::after { content: ""; position: absolute; left: -4px; top: 50%; width: 6px; height: 6px; margin-top: -3px; border: solid #fff; border-width: 2px 2px 0 0; transform: rotate(45deg); z-index: 2; }
.biz-flow b { font-size: 17px; }
.biz-flow span { font-size: 13px; color: var(--ink-2); line-height: 1.7; overflow-wrap: anywhere; }
.biz-jump { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.biz-jump a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--line-strong); font-size: 13px; font-weight: 700; text-decoration: none; color: var(--ink-2); }
.biz-jump a:hover { box-shadow: inset 0 0 0 1.5px var(--ink); color: var(--ink); }
.biz-sec { padding: clamp(64px, 8vw, 112px) 0; }
.biz-sec--gray { background: #f1efeb; }
.biz-k { font-size: 13px; font-weight: 700; letter-spacing: .14em; color: var(--muted); }
.biz-h2 { margin-top: 10px; font-size: clamp(24px, 2.8vw, 38px); line-height: 1.5; font-weight: 600; word-break: keep-all; overflow-wrap: anywhere; font-feature-settings: "palt"; }
.biz-h2:focus { outline: none; }
.biz-2col { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 24px 64px; align-items: start; }
.biz-text { display: grid; gap: 1.1em; font-size: clamp(15px, 1.2vw, 17px); color: var(--ink-2); line-height: 2; overflow-wrap: anywhere; }
.biz-strengths, .biz-wishes { display: grid; gap: 8px; margin: 4px 0; }
.biz-strengths li { position: relative; padding: 12px 16px 12px 44px; border-radius: 14px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); font-weight: 700; color: var(--ink); line-height: 1.6; }
.biz-strengths li::before { content: ""; position: absolute; left: 16px; top: 50%; width: 14px; height: 14px; margin-top: -7px; border-radius: 50%; background: var(--yellow); box-shadow: inset 0 0 0 1px rgba(27, 27, 26, .2); }
.biz-mametto { padding: 16px 18px; border-left: 3px solid var(--yellow); background: var(--paper); color: var(--ink); font-weight: 600; }
.biz-doms { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 32px; }
.biz-dom { display: grid; align-content: start; gap: 8px; padding: 24px 20px 26px; border-radius: 20px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); }
.biz-dom-ico svg { width: 44px; height: 44px; fill: none; stroke: var(--ink); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.biz-dom h3 { font-size: 19px; font-weight: 700; }
.biz-dom p { font-size: 14px; color: var(--ink-2); line-height: 1.85; overflow-wrap: anywhere; }
.biz-wishes li { padding: 14px 18px; border-radius: 14px; background: #f1efeb; color: var(--ink); font-weight: 700; line-height: 1.6; }
.biz-note { font-size: 12px; line-height: 1.8; color: var(--muted); }
.biz-call { padding: clamp(64px, 8vw, 104px) 0; background: var(--paper); border-top: 1px solid var(--line); text-align: center; }
.biz-call p:not(.biz-k) { margin-top: 18px; font-size: clamp(15px, 1.25vw, 18px); color: var(--ink-2); line-height: 2; overflow-wrap: anywhere; }
.biz-call .biz-call-q { margin-top: 24px; font-size: clamp(18px, 1.8vw, 24px); font-weight: 700; color: var(--ink); }

/* ウェビナー */
.wb { padding: clamp(56px, 7vw, 96px) 0 clamp(72px, 9vw, 120px); background: #f1efeb; }
.wb-card { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 0; margin-top: 28px; border-radius: 24px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); overflow: hidden; }
.wb-card:has(.wb-banner[hidden]) { grid-template-columns: 1fr; }
.wb-banner { align-self: start; margin: 0; padding: 26px 0 26px 26px; }
.wb-banner[hidden], .wb-img[hidden] { display: none; }
.wb-img { width: 100%; height: auto; aspect-ratio: 1200 / 630; object-fit: contain; border-radius: 14px; background: #1b1b1a; }
.wb-body { padding: 28px 30px 30px; }
.wb-kind { font-size: 13px; font-weight: 700; color: var(--muted); letter-spacing: .06em; }
.wb-name { margin-top: 6px; font-size: 22px; font-weight: 700; line-height: 1.5; }
.wb-target { margin-top: 6px; font-size: 13px; color: var(--ink-2); }
.wb-sessions { display: grid; gap: 8px; margin-top: 16px; }
.wb-s { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding: 10px 14px; border-radius: 12px; background: var(--off); }
.wb-s[hidden] { display: none; }
.wb-date { font-size: 17px; font-weight: 700; }
.wb-time { font-size: 15px; font-weight: 700; color: var(--ink-2); }
.wb-state { margin-left: auto; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; background: var(--yellow); }
.wb-s[data-state="closed"] .wb-state { background: var(--paper); box-shadow: inset 0 0 0 1px var(--line-strong); color: var(--ink-2); }
.wb-ended { margin-top: 8px; font-size: 13px; color: var(--muted); }
.wb-ended[hidden], .wb-closed[hidden], .wb-none[hidden], [data-wb-dates][hidden], .wb-actions [hidden], .wb-note[hidden] { display: none; }
.wb-meta { margin-top: 10px; font-size: 13px; color: var(--ink-2); }
.wb-closed, .wb-none { margin-top: 16px; padding: 12px 14px; border-radius: 12px; background: var(--off); font-weight: 700; }
.wb-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.wb-actions .btn { min-height: 52px; padding: 0 22px; font-size: 15px; }
.wb-actions .ext-icon { width: 17px; height: 17px; }
.wb-note { margin-top: 12px; font-size: 12px; color: var(--muted); }

/* ---------- 参画のご相談（フォーム） ---------- */
.ct-route { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 14px 18px; border-radius: 14px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); font-size: 14px; color: var(--ink-2); }
.ct-route-a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-weight: 700; color: var(--ink); text-underline-offset: 4px; }
.ct-route-a .btn-icon { width: 16px; height: 16px; }
.ct-off { margin-top: 16px; padding: 14px 18px; border-radius: 14px; background: #eef3f8; box-shadow: inset 0 0 0 1px #c8d6e4; font-size: 14px; color: #24435f; }
.ct-off[hidden] { display: none; }
.ct-form { margin-top: 24px; padding: 28px; border-radius: 22px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); }
.ct-step[hidden] { display: none; }
.ct-field + .ct-field { margin-top: 22px; }
.ct-field label { display: flex; align-items: center; gap: 10px; font-weight: 700; }
.ct-req { display: inline-block; padding: 0 8px; border-radius: 4px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 700; line-height: 1.8; letter-spacing: .06em; }
.ct-field input[type="text"], .ct-field input[type="email"], .ct-field textarea {
  display: block; width: 100%; margin-top: 8px; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: 10px; background: #fff;
  font: inherit; font-size: 16px; line-height: 1.7; color: var(--ink);
}
.ct-field textarea { resize: vertical; min-height: 168px; }
.ct-field input:focus, .ct-field textarea:focus { outline: 3px solid var(--focus); outline-offset: 1px; border-color: var(--ink); }
.ct-field [aria-invalid="true"] { border-color: #b3261e; background: #fff8f7; }
.ct-hint { margin-top: 6px; font-size: 12px; color: var(--muted); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; }
.ct-err { margin-top: 6px; font-size: 13px; font-weight: 700; color: #b3261e; }
.ct-err::before { content: "！"; display: inline-block; margin-right: 4px; }
.ct-err[hidden] { display: none; }
.ct-check { display: flex !important; flex-wrap: wrap; align-items: center; gap: 10px; min-height: 44px; font-weight: 500 !important; cursor: pointer; }
.ct-check input { width: 22px; height: 22px; margin: 0; accent-color: var(--ink); }
.ct-check a { color: var(--ink); text-underline-offset: 3px; font-weight: 700; }
.ct-submit { margin-top: 28px; }
.ct-errors { margin-bottom: 22px; padding: 14px 18px; border-radius: 12px; background: #fff3f2; box-shadow: inset 0 0 0 1px #f0c6c2; color: #8c1d18; }
.ct-errors:focus { outline: 3px solid #b3261e; outline-offset: 2px; }
.ct-errors[hidden] { display: none; }
.ct-errors-t { font-weight: 700; }
.ct-errors ul { margin-top: 6px; padding-left: 1.2em; list-style: disc; font-size: 14px; }
.ct-errors a { color: inherit; text-underline-offset: 3px; }
.ct-h2 { font-size: 20px; font-weight: 700; }
.ct-h2:focus { outline: none; }
.ct-dl { margin-top: 14px; border-top: 1px solid var(--line); }
.ct-dl > div { display: grid; grid-template-columns: 200px 1fr; gap: 4px 20px; padding: 14px 4px; border-bottom: 1px solid var(--line); }
.ct-dl dt { font-weight: 700; color: var(--ink-2); font-size: 14px; }
.ct-dl dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.ct-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.ct-step p { margin-top: 12px; color: var(--ink-2); }
.ct-step[data-ct-step="unsent"] .ct-h2 { color: #24435f; }
.ct-step .btn { margin-top: 18px; }
.ct-actions .btn { margin-top: 0; }
.ct-pp { margin-top: 18px; font-size: 13px; color: var(--muted); }
.ct-pp a { color: var(--ink-2); }
.ct-noscript { margin-top: 12px; font-weight: 700; }

/* ---------- 中くらいの画面 ---------- */
@media (max-width: 1099px) {
  .pc-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf-tool { grid-template-columns: 1fr; }
  .biz-doms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-card { grid-template-columns: 1fr; }
  .wb-banner { padding: 20px 20px 0; }
}
/* ---------- スマホ・縦長のタブレット ---------- */
@media (max-width: 899px) {
  :root { --menu-top: 11px; --menu-w: 114px; }
  .menu-btn { padding: 0 14px 0 12px; }
  .site-header .header-inner { padding-right: calc(var(--menu-w) + 16px); }
  .tour-nav { padding-right: calc(var(--menu-w) + 16px); }
  .site-menu-panel { padding: 0 18px 32px; }
  .site-menu-bar { margin: 0 -18px; padding-left: 18px; }
  .news-top-inner { grid-template-columns: 1fr; }
  .news-top-more { grid-column: 1; }
  .ft-top { grid-template-columns: 1fr; }
  .ft-bottom .footer-copy { margin-left: 0; width: 100%; }
  .biz-2col { grid-template-columns: 1fr; }
  .biz-flow { grid-template-columns: 1fr; }
  .biz-flow li:first-child { border-radius: 18px 18px 0 0; }
  .biz-flow li:last-child { border-radius: 0 0 18px 18px; }
  .biz-flow li + li::before { left: 50%; top: -11px; margin: 0 0 0 -10px; }
  .biz-flow li + li::after { left: 50%; top: -4px; margin: 0 0 0 -3px; transform: rotate(135deg); }
  .biz-route { justify-content: flex-start; }
}
@media (max-width: 639px) {
  .pc-list { grid-template-columns: 1fr; }
  .pf-tool { padding: 16px; border-radius: 18px; }
  .jm { gap: 2px; }
  .jm-t { border-radius: 3px; font-size: 9px; }
  /* スマホ：件数は小さな点に（数は下の文字のボタンに出る）。都道府県の名前を隠さない */
  .jm-t b { min-width: 0; width: 6px; height: 6px; padding: 0; right: 2px; top: 2px; font-size: 0; line-height: 0; }
  .co-dl > div, .ct-dl > div { grid-template-columns: 1fr; }
  .ct-form { padding: 20px 16px; border-radius: 18px; }
  .biz-doms { grid-template-columns: 1fr; }
  .wb-body { padding: 22px 18px 24px; }
  .nl-link { grid-template-columns: auto 1fr; }
  .nl-title { grid-column: 1 / -1; }
  .wb-actions .btn { width: 100%; }
}
@media (max-width: 380px) {
  :root { --menu-w: 104px; }
  .menu-btn { gap: 7px; padding: 0 12px 0 10px; font-size: 13px; }
  .jm-t > span { font-size: 8px; }
}
/* ---------- 2回目の撮影（768・320・1440）で直した折れ方と形 ---------- */
/* 北海道（横に2つ分）のタイルが細い帯にならないよう、ほかのタイルと同じ高さに */
.jm-t[style*="span 2"] { aspect-ratio: 2 / 1; }
/* 区切り（<wbr>）のある短い文は、語の途中で折らない */
.biz-sub, .biz-strengths li, .biz-wishes li, .biz-dom p, .biz-flow span, .co-addr, .site-menu-nav a small, .wb-actions .btn span { word-break: keep-all; overflow-wrap: anywhere; }
/* 区切りの無い短い見出し・文は、文節で折り、最後の行に1〜2字だけ残さない（文節の判断は Chrome。ほかのブラウザでは通常の折り返し） */
.nw-title, .nl-title, .wb-name, .wb-kind, .biz-call p:not(.biz-k), .site-footer--v12 .footer-note { word-break: auto-phrase; text-wrap: balance; }
/* トップの締めの小さな案内（docs/29 §7。320 幅で「…から／探せます」「パー／トナー」と折れていた） */
.bridge .bridge-dest, .bridge .bridge-more { word-break: auto-phrase; text-wrap: balance; }
@media (max-width: 639px) {
  /* 3字の県名はタイルに収まらないので、2字の略に（正式な名前は下の文字のボタンに出る） */
  .jm-t > span[data-s] { font-size: 0; }
  .jm-t > span[data-s]::after { content: attr(data-s); font-size: 9px; }
}
@media (max-width: 380px) {
  .jm-t > span[data-s]::after { font-size: 8px; }
}
@media (max-width: 420px) {
  /* 「スマートホームから、」を1行に収める */
  .biz-title { font-size: min(34px, 8.6vw); }
}
@media (max-width: 380px) {
  /* 締めの［お近くのパートナーを探す］を1行に（第11版のボタンの余白を、この幅だけ詰める） */
  .bridge .btn-large { gap: 8px; padding: 0 16px; font-size: 16px; letter-spacing: .02em; }
}
@media print {
  .menu-btn, .site-menu { display: none !important; }
}

/* 2026-10-19：承認原稿を一列のメッセージとして掲載。開催案内は導入の直後。 */
.biz-reading-page .biz-reading { max-width: 860px; }
.biz-reading-page .biz-hero { padding: 28px 0 36px; }
.biz-reading-page .biz-title { font-size: clamp(30px, 3.8vw, 48px); line-height: 1.45; }
.biz-reading-page .biz-title .hl { display: block; }
.biz-reading-page .biz-hero-text { max-width: none; margin-top: 18px; font-size: 16px; line-height: 1.95; }
.biz-reading-links { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 24px; }
.biz-reading-links .btn { min-height: 50px; padding: 12px 22px; font-size: 15px; line-height: 1.6; text-align: center; }
.biz-reading-links .btn span { white-space: normal; }
.biz-about-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--ink); font-size: 14px; font-weight: 600; text-underline-offset: 4px; }
.biz-reading-page .wb { padding: 32px 0 40px; background: #fff7df; border-top: 1px solid #e4d7b4; border-bottom: 1px solid #e4d7b4; }
.biz-reading-page .wb > .wrap { max-width: 1100px; }
.biz-reading-page .wb .biz-h2 { font-size: clamp(24px, 2.6vw, 32px); }
.biz-reading-page .wb-card { margin-top: 22px; }
.biz-reading-page .biz-letter { max-width: 760px; padding-top: 64px; padding-bottom: 80px; }
.biz-letter .biz-letter-label { margin: 0 0 28px; font-size: 13px; font-weight: 600; letter-spacing: .08em; color: var(--muted); }
.biz-letter-label::before { content: ""; display: block; width: 40px; height: 3px; margin-bottom: 20px; background: var(--yellow); }
.biz-letter section + section { margin-top: 56px; }
.biz-letter h2 { margin: 0 0 24px; font-size: clamp(23px, 2.1vw, 28px); font-weight: 600; line-height: 1.65; letter-spacing: .015em; word-break: keep-all; overflow-wrap: anywhere; text-wrap: pretty; }
.biz-letter h2:focus { outline: none; }
.biz-letter p { margin: 0; font-size: 17px; line-height: 2; color: var(--ink-2); overflow-wrap: anywhere; line-break: strict; }
.biz-letter p + p { margin-top: 22px; }
.biz-letter p strong { font-weight: 600; color: var(--ink); }
.biz-letter .biz-note { font-size: 12px; line-height: 1.8; color: var(--muted); }
.biz-letter-end { padding-top: 40px; border-top: 1px solid var(--line); }
.biz-letter .biz-invitation { color: var(--ink); font-weight: 600; }
.biz-letter-end .biz-reading-links { margin-top: 32px; }
@media (max-width: 599px) {
  .biz-reading-page .biz-hero { padding: 20px 0 28px; }
  .biz-reading-page .biz-title { font-size: min(32px, 7.8vw); }
  .biz-reading-page .biz-hero-text { font-size: 15px; }
  .biz-reading-links { gap: 8px 16px; margin-top: 18px; }
  .biz-reading-links .btn { width: 100%; padding: 12px; }
  .biz-reading-page .wb { padding: 28px 0 32px; }
  .biz-reading-page .biz-letter { padding-top: 40px; padding-bottom: 56px; }
  .biz-letter h2 { font-size: 22px; margin-bottom: 20px; }
  .biz-letter p { font-size: 16px; line-height: 1.95; }
  .biz-letter p + p { margin-top: 20px; }
  .biz-letter section + section { margin-top: 40px; }
  .biz-letter-end { padding-top: 32px; }
}

/* ウェビナーのバナー（トップの FV の直後。Studio 版 v3 の見た目に合わせる） */
.wb-banner { background: #fff8e6; padding: 24px 40px; }
.wb-banner[hidden] { display: none; }
.wb-banner-inner { position: relative; max-width: 1000px; margin: 0 auto; padding-top: 14px; }
.wb-banner-card { display: block; border-radius: 16px; overflow: hidden; background: #fff; box-shadow: 0 8px 24px rgba(43, 42, 24, .10); transition: transform .2s ease, box-shadow .2s ease; }
.wb-banner-card:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(43, 42, 24, .14); }
.wb-banner-card:focus-visible { outline: 3px solid var(--ink, #1b1b1a); outline-offset: 3px; }
.wb-banner-card img { display: block; width: 100%; height: auto; }
.wb-banner-callout { position: absolute; top: -4px; right: 24px; width: 224px; height: auto; pointer-events: none; }
@media (max-width: 700px) {
  .wb-banner { padding: 20px 16px; }
  .wb-banner-card { border-radius: 12px; }
  .wb-banner-callout { width: 184px; right: 12px; top: -2px; }
}
@media (prefers-reduced-motion: reduce) { .wb-banner-card { transition: none; } .wb-banner-card:hover { transform: none; } }

/* ===== スマホを短く（2026-10-20 オーナー指示「文字・情報・ボタンが多い」）。PC は変えない =====
   残す：見出し・写真・体験の操作（各区画のボタン1つ）。隠す：補足の文・手順の図解・注記・重複する説明。
   部屋とカードは横にスワイプ。文はすべて HTML に残すので、PC と読み上げでは今まで通り */
@media (max-width: 700px) {
  :root { --sec: 64px; }
  /* FV：写真・見出し・ボタン1つ。場面の札・説明・一時停止ボタンは出さない（写真のタップで止まる。site12.js） */
  .fv6 .hero-actions .btn-secondary, .fv6-notes, .hero-eyebrow, .hero-lead, .fv6-dock { display: none !important; }
  /* 写真の下を、見出しの地の色へゆっくり溶かし、見出しを少し写真に重ねてつなげる */
  .fv6-veil { background:
    linear-gradient(180deg, rgba(14, 14, 13, .4) 0, rgba(14, 14, 13, .1) 70px, rgba(14, 14, 13, 0) 100px),
    linear-gradient(0deg, #191816 0, rgba(25, 24, 22, .92) 12%, rgba(25, 24, 22, .6) 26%, rgba(25, 24, 22, .25) 40%, rgba(25, 24, 22, 0) 55%) !important; }
  .fv6-copy { position: relative; z-index: 2; margin-top: -72px; }
  .fv6-copy .wrap { padding-top: 0; padding-bottom: 28px; }
  .hero-actions { margin-top: 22px; }
  /* マメの帯：名前と見出しだけ（詳しくは下の「マメが監修していること」） */
  .sv-text { display: none; }
  /* 住んでからも：3枚を横にスワイプ。設計の箱は見出しとボタンだけ */
  .grow-steps { display: flex; gap: 14px; margin-top: 28px; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: calc(var(--gutter) * -1); padding: 0 var(--gutter) 6px; scrollbar-width: none; }
  .grow-steps::-webkit-scrollbar { display: none; }
  .grow-steps > .grow-step { flex: 0 0 80%; scroll-snap-align: start; display: flex; flex-direction: column; }
  .grow-steps .grow-media { margin-top: 10px; aspect-ratio: 4 / 3; }
  .grow-steps .grow-title { margin-top: 14px; }
  .grow-steps .grow-text { margin-top: 6px; }
  .ready { margin-top: 40px; padding: 28px 22px 24px; }
  .ready-title { margin-bottom: 20px; }
  .ready-values, .ready-lead { display: none; }
  /* 横スワイプの列も、左右は本文と同じ余白から始める */
  .grow-steps, .doors { padding-inline: var(--gutter) !important; scroll-padding-inline: var(--gutter); }
  .grow-steps .grow-when { padding-left: 2px; }
  /* 家の中：見出しの説明と家の断面図は省き、部屋のカードを横にスワイプ */
  .house .section-head .section-lead, .house-figure { display: none; }
  .doors { display: flex !important; gap: 14px; margin-top: 24px; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: calc(var(--gutter) * -1); padding: 0 var(--gutter) 6px; scrollbar-width: none; }
  .doors::-webkit-scrollbar { display: none; }
  .doors > li { flex: 0 0 72%; scroll-snap-align: start; }
  /* 6部屋を横にスワイプ（次の部屋の端を見せる）。部屋のカードから選ぶと、その部屋へ横に送る（script.js の scrollIntoView） */
  .tour { display: flex; align-items: flex-start; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; }
  .tour::-webkit-scrollbar { display: none; }
  .tour > section { flex: 0 0 calc(100% - 36px); padding-block: calc(var(--sec) * .75); scroll-snap-align: start; min-width: 0; }
  .tour > section + section { border-left: 1px solid rgba(27, 27, 26, .06); }
  .tour > section .wrap { padding-inline: var(--gutter); }
  .tour .exp-head { margin-bottom: 20px; }
  .tour .exp-panel { margin-top: 16px; }
  .tour-nav, .room--outing .phone-demo { display: none !important; }
  /* 部屋どうしで高さをそろえる（2026-10-20 オーナー指示）。カードは同じ高さ、時刻の札・見出し・写真・説明・ボタンは各部屋で同じ位置に。
     見出しは同じ大きさで3行ぶん、説明は全部屋でいちばん長い段に合わせる（site12.js）。札のないリビングは札の高さを空け、帰り道は文を写真の上へ */
  .tour { align-items: stretch; }
  .tour .section-title { font-size: 26px; line-height: 1.4; min-height: 3lh; }
  .tour .room-time { display: flex; height: 24px; margin: 0 0 10px; }
  .tour #exp-living .exp-head { padding-top: 40px; }
  .tour .exp-panel .exp-now { min-height: var(--tour-now, 122px) !important; }
  .room--outing .room-grid { display: flex; flex-direction: column; }
  .room--outing .room-text { order: -1; }
  /* 各部屋：見出し・写真・操作だけ。手順の図解・補足・設計メモ・機器の説明は省く */
  .room-bar, .exp-path, .exp-after, .ls-design, .devs, .room-foot, .exp-head .section-lead, .room-text .section-lead, .self-check { display: none !important; }
  /* ホームアプリ：画面と見出しだけ */
  .app .section-head .section-lead, .app-uses-main, .app-phone-keys, .app-phone-note, .app-features { display: none; }
  .app-note { font-size: 10px; line-height: 1.6; opacity: .7; }
  /* 未来に備える家：図の切り替えと4つの流れだけ */
  .plan .section-head .section-lead, .prep-list, .prep-two, .plan-more { display: none; }
  /* マメ・相談 */
  .mame-does, .mame-bridge, .bridge-topics { display: none; }
}

/* メニューの「いま見ている場所」の枠と「いまここ」の札は出さない（2026-10-20 オーナー指示）。
   いまの項目は aria-current のまま（読み上げで伝わる）。site12.js は名前を入れ続けるので、戻す時はこの2行を消す */
.site-menu-here, .site-menu .here-tag { display: none !important; }
