/*
 * Lavish 公式サイト 共通スタイル（2026 リニューアル）
 * デザイン：アイボリー × ブロンズ（design_handoff_lavish_site_renewal の README / 3a・4a–4f）
 *
 * - 値はハンドオフ README の Design Tokens に合わせる（1280px 幅基準）
 * - 角丸なし。影はトップヒーローの注目製品カードのみ
 * - /column/ のページ（src/lavish-pages/column/）もこのファイルで表示する（末尾の「コラム」の節）
 * - クラス名は lv- 接頭辞（旧サイトの Bootstrap / layout.css と衝突させない）
 */

:root {
  /* カラー */
  --lv-bg: #f4f1ea;
  --lv-bg-alt: #e9e4d9;
  --lv-surface: #fbf9f5;
  --lv-ph: #ebe6db;
  --lv-ph-2: #e6e0d4;
  --lv-ph-stripe: #ded7c9;
  --lv-hover: #ece7dc;
  --lv-ink: #1f1c18;
  --lv-ink-sub: #4a443b;
  --lv-ink-muted: #6b6457;
  --lv-accent: #7a5f34;
  --lv-line: #d9d2c4;
  --lv-line-strong: #1f1c18;
  --lv-input-line: #b9b0a0;
  --lv-error: #9b3b2a;

  /* フォント */
  --lv-mincho: 'Shippori Mincho', 'Hiragino Mincho ProN', 'Yu Mincho', serif;
  /* 本文・UI も明朝体で表示する（2026-10 試行）。
     ゴシックに戻すときは 'Zen Kaku Gothic New', 'Hiragino Sans', 'Yu Gothic', system-ui, sans-serif にする */
  --lv-gothic: var(--lv-mincho);
  --lv-serif-en: 'Cormorant Garamond', 'Times New Roman', serif;
  /* 型番・電話番号の書体（本文と同じ明朝） */
  --lv-model: var(--lv-mincho);
  --lv-mono: 'IBM Plex Mono', ui-monospace, Menlo, Consolas, monospace;

  /* レイアウト */
  --lv-gutter: 64px;
  --lv-max: 1280px;
  --lv-header-h: 88px;
  --lv-ease: cubic-bezier(.2, .7, .2, 1);
}

@media (max-width: 1279px) { :root { --lv-gutter: 48px; } }
@media (max-width: 767px) { :root { --lv-gutter: 20px; --lv-header-h: 64px; } }

/* ── ベース ─────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--lv-header-h) + 16px); }
body {
  margin: 0;
  background: var(--lv-bg);
  color: var(--lv-ink);
  font: 400 15px/2 var(--lv-gothic);
  -webkit-font-smoothing: antialiased;
  font-feature-settings: 'palt' 0;
  /* 日本語の折り返し：文節の区切りで折り返し（auto-phrase。Chrome 119+、lang=ja が必要）、最後の行に1〜2文字だけ残さない（pretty） */
  word-break: auto-phrase;
  text-wrap: pretty;
}
/* 見出し・短い文は行の長さをそろえる */
h1, h2, h3, h4, .lv-h1, .lv-h2, .lv-lead, .lv-label, .lv-btn, .lv-sysfeat__title, .lv-sysflow__title, .lv-pdetail__type, .lv-mega__title, .lv-solindex__name, .lv-pfuncs dt, .lv-pblock__title, .lv-pstory__gtitle, figcaption { text-wrap: balance; }
[hidden] { display: none !important; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color .2s ease, background-color .25s ease, border-color .2s ease; }
a:hover { color: var(--lv-accent); }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--lv-accent);
  outline-offset: 2px;
}
h1, h2, h3, h4 { margin: 0; font-weight: 500; }
p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
button { font: inherit; color: inherit; }
input, textarea, select { font-family: inherit; }

.lv-skip {
  position: absolute; left: 8px; top: -60px; z-index: 200;
  background: var(--lv-ink); color: var(--lv-bg); padding: 10px 16px; font-size: 13px;
}
.lv-skip:focus { top: 8px; color: var(--lv-bg); }

.lv-wrap { max-width: var(--lv-max); margin: 0 auto; padding-left: var(--lv-gutter); padding-right: var(--lv-gutter); }
/* ↗ は和文フォントだと細い斜線に見えるため等幅欧文フォントで表示する */
.lv-ext { color: var(--lv-accent); font-family: var(--lv-mono); font-weight: 400; }
.lv-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ── タイポグラフィ ─────────────────────────── */
.lv-label {
  font: 500 12px/1 var(--lv-serif-en);
  letter-spacing: .42em;
  text-transform: uppercase;
  color: var(--lv-accent);
}
.lv-h1 { font: 500 48px/1.4 var(--lv-mincho); letter-spacing: .1em; }
.lv-h2 { font: 500 36px/1.5 var(--lv-mincho); letter-spacing: .1em; }
.lv-h3 { font: 500 26px/1.6 var(--lv-mincho); letter-spacing: .08em; }
.lv-lead { font-size: 15px; line-height: 2.1; color: var(--lv-ink-sub); }
.lv-body { font-size: 14px; line-height: 2; color: var(--lv-ink-sub); }
.lv-mono { font-family: var(--lv-mono); }
.lv-note { font-size: 12px; line-height: 1.9; color: var(--lv-ink-muted); }

/* ── ボタン ─────────────────────────────── */
.lv-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6em;
  padding: 19px 38px;
  font: 500 13px/1 var(--lv-gothic);
  letter-spacing: .2em;
  border: 1px solid var(--lv-ink);
  cursor: pointer;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.lv-btn--primary { background: var(--lv-ink); color: var(--lv-bg); }
.lv-btn--primary:hover { background: var(--lv-accent); border-color: var(--lv-accent); color: var(--lv-bg); }
.lv-btn--secondary { background: transparent; color: var(--lv-ink); }
.lv-btn--secondary:hover { background: var(--lv-ink); color: var(--lv-bg); }
.lv-btn--sm { padding: 14px 24px; font-size: 12px; }
.lv-btn--block { display: flex; width: 100%; }
.lv-btn.is-accent { background: var(--lv-accent); border-color: var(--lv-accent); }
.lv-textlink {
  display: inline-block;
  font: 500 13px/1 var(--lv-gothic);
  letter-spacing: .16em;
  border-bottom: 1px solid var(--lv-ink);
  padding-bottom: 8px;
}
.lv-textlink:hover { border-color: var(--lv-accent); }

/* ── ヘッダー ────────────────────────────── */
.lv-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--lv-bg);
  border-bottom: 1px solid var(--lv-line);
}
.lv-header__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  height: var(--lv-header-h);
  /* ヘッダーは画面幅いっぱいに使う（1920px でも左右の余白は --lv-gutter だけ） */
  max-width: none;
  margin: 0 auto;
  padding: 0 var(--lv-gutter);
  transition: height .3s ease;
}
.lv-header.is-scrolled .lv-header__inner { height: 64px; }
.lv-header__logo img { height: 38px; width: auto; transition: height .3s ease; }
.lv-header.is-scrolled .lv-header__logo img { height: 30px; }

.lv-nav__list { display: flex; gap: 24px; }
.lv-nav__item { position: static; }
.lv-nav__link {
  display: flex; align-items: center;
  height: var(--lv-header-h);
  font: 400 13px/1 var(--lv-gothic);
  letter-spacing: .14em;
  color: var(--lv-ink-sub);
  white-space: nowrap;
  transition: height .3s ease, color .2s ease;
}
.lv-header.is-scrolled .lv-nav__link { height: 64px; }
.lv-nav__link.is-current { color: var(--lv-accent); font-weight: 500; }

/* メガメニュー */
.lv-mega {
  position: absolute; left: 0; right: 0; top: 100%;
  /* ページの地（--lv-bg）より明るい色と淡い影で、開いたメニューを本文と見分けやすくする */
  background: var(--lv-surface);
  box-shadow: 0 18px 32px -20px rgba(31, 28, 24, .22);
  border-top: 1px solid var(--lv-line);
  border-bottom: 1px solid var(--lv-line);
  visibility: hidden; opacity: 0;
  transform: translateY(-6px);
  /* 閉じるとき：0.5秒かけてゆっくり消える（消え終わってから visibility を切る） */
  transition: opacity .5s cubic-bezier(.4, 0, .2, 1), transform .5s cubic-bezier(.4, 0, .2, 1), visibility 0s linear .5s;
}
/* is-open は lavish.js が付ける（マウスが離れてから 0.4 秒待って外す）。スクリプトがなければ :hover で開く */
.lv-nav__item.has-menu.is-open .lv-mega,
.lv-nav__item.has-menu:hover .lv-mega,
.lv-nav__item.has-menu:focus-within .lv-mega {
  visibility: visible; opacity: 1; transform: none;
  /* 開くとき：0.25秒で軽やかに出る */
  transition: opacity .25s ease-out, transform .25s ease-out, visibility 0s;
}
/* 別のメニュー項目に移ったときは、前のメニューをすぐ閉じる（2つ重ならないように） */
.lv-nav:has(.lv-nav__item.has-menu:hover) .lv-nav__item.has-menu:not(:hover) .lv-mega {
  visibility: hidden; opacity: 0; transition: none;
}
.lv-mega__inner {
  max-width: var(--lv-max); margin: 0 auto;
  padding: 40px var(--lv-gutter) 48px;
  display: grid; grid-template-columns: 240px 1fr; gap: 48px;
}
.lv-mega__title { font: 500 22px/1.4 var(--lv-mincho); letter-spacing: .1em; }
.lv-mega__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 40px; border-top: 1px solid var(--lv-ink); }
.lv-mega__list a {
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 0; border-bottom: 1px solid var(--lv-line);
  font: 400 14px/1.4 var(--lv-gothic); letter-spacing: .08em;
}
.lv-mega__list a span { color: var(--lv-accent); }
.lv-mega__body { min-width: 0; }
.lv-mega__sub { margin: 28px 0 0; padding-bottom: 10px; font: 500 13px/1.4 var(--lv-mincho); letter-spacing: .1em; color: var(--lv-ink-muted); }
.lv-mega__list--guides { border-top-color: var(--lv-line-strong); }
.lv-mega__list--guides a { padding: 12px 0; font-size: 13px; }
/* ナビは横幅に余裕がないため、狭い幅では一部の項目を出さない（フッター・スマホのメニューからは行ける）
   構成診断・WatchKey（wide）は 1700px 以上、企業情報・コラム（mid）は 1440px 以上でだけ直接出す */
@media (max-width: 1699px) {
  .lv-nav__item--wide { display: none; }
  .lv-nav__list { gap: 20px; }
}
@media (max-width: 1439px) {
  .lv-nav__item--mid { display: none; }
  .lv-nav__list { gap: 16px; }
}

.lv-header__contact { display: flex; align-items: center; gap: 20px; flex: none; }
.lv-header__contact .lv-btn { white-space: nowrap; }
.lv-header__tel { text-align: right; display: block; }
.lv-header__telnum { display: block; font: 500 16px/1 var(--lv-model); letter-spacing: .06em; color: var(--lv-ink); white-space: nowrap; }
.lv-header__hours { display: block; margin-top: 6px; font: 400 10px/1 var(--lv-gothic); letter-spacing: .1em; color: var(--lv-ink-muted); }

.lv-burger { display: none; }
.lv-drawer { display: none; }

@media (max-width: 1279px) {
  .lv-nav__list { gap: 14px; }
  .lv-nav__link { letter-spacing: .06em; }
  .lv-header__tel { display: none; }
}
@media (max-width: 1099px) {
  .lv-nav__list { gap: 12px; }
  .lv-nav__link { letter-spacing: .03em; }
}

@media (max-width: 1023px) {
  .lv-nav, .lv-header__contact { display: none; }
  .lv-burger {
    display: flex; flex-direction: column; justify-content: center; gap: 6px;
    width: 44px; height: 44px; padding: 10px; margin-right: -10px;
    background: none; border: none; cursor: pointer;
  }
  .lv-burger span { display: block; height: 1px; background: var(--lv-ink); transition: transform .25s ease, opacity .2s ease; }
  .lv-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .lv-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .lv-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .lv-drawer:not([hidden]) {
    display: block;
    position: absolute; left: 0; right: 0; top: 100%;
    max-height: calc(100vh - var(--lv-header-h));
    overflow-y: auto;
    background: var(--lv-bg);
    border-top: 1px solid var(--lv-line);
    padding: 8px var(--lv-gutter) 120px;
  }
  .lv-drawer__list > li { border-bottom: 1px solid var(--lv-line); }
  .lv-drawer__list > li > a, .lv-drawer__list summary {
    display: flex; justify-content: space-between; align-items: center;
    min-height: 56px; font: 500 15px/1.4 var(--lv-mincho); letter-spacing: .1em; cursor: pointer; list-style: none;
  }
  .lv-drawer__list summary::-webkit-details-marker { display: none; }
  .lv-drawer__list summary::after { content: '+'; color: var(--lv-accent); font-family: var(--lv-serif-en); font-size: 20px; }
  .lv-drawer__list details[open] summary::after { content: '−'; }
  .lv-drawer__list details ul { padding: 0 0 12px 12px; }
  .lv-drawer__list details a { display: flex; align-items: center; min-height: 44px; font-size: 14px; color: var(--lv-ink-sub); }
  .lv-drawer__tel { display: block; margin-top: 28px; font: 500 26px/1 var(--lv-model); letter-spacing: .06em; }
  .lv-drawer__tel small { display: block; margin-top: 10px; font: 400 12px/1 var(--lv-gothic); color: var(--lv-ink-muted); letter-spacing: .1em; }
}
@media (max-width: 767px) {
  .lv-header__logo img { height: 30px; }
  .lv-header.is-scrolled .lv-header__inner { height: 64px; }
}

/* ── フッター ────────────────────────────── */
.lv-footer { border-top: 1px solid var(--lv-line); padding: 80px var(--lv-gutter) 40px; max-width: var(--lv-max); margin: 0 auto; }
.lv-footer__grid { display: grid; grid-template-columns: 1.4fr repeat(5, 1fr); gap: 32px; }
.lv-footer__logo { height: 30px; width: auto; }
.lv-footer__tel { display: block; margin-top: 28px; font: 500 20px/1 var(--lv-model); letter-spacing: .08em; }
.lv-footer__hours { margin-top: 10px; font-size: 11px; line-height: 1; color: var(--lv-ink-muted); letter-spacing: .1em; }
.lv-footer__label { font: 500 11px/1 var(--lv-serif-en); letter-spacing: .3em; color: var(--lv-accent); }
.lv-footer__col ul { margin-top: 22px; display: grid; gap: 14px; }
.lv-footer__col a { font-size: 12px; line-height: 1.5; color: var(--lv-ink-sub); letter-spacing: .06em; }
.lv-footer__brands { margin-top: 56px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.lv-footer__brandcard {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  border: 1px solid var(--lv-line); padding: 24px 28px;
}
.lv-footer__brandcard:hover { background: var(--lv-hover); color: inherit; }
.lv-footer__brandname { display: block; font: 500 14px/1.4 var(--lv-mincho); letter-spacing: .08em; }
.lv-footer__branddesc { display: block; margin-top: 6px; font-size: 12px; line-height: 1.6; color: var(--lv-ink-muted); }
.lv-footer__bottom {
  margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--lv-line);
  display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap;
}
.lv-footer__legal { display: flex; gap: 28px; flex-wrap: wrap; }
.lv-footer__legal a, .lv-footer__copy { font-size: 11px; line-height: 1.6; color: var(--lv-ink-muted); letter-spacing: .1em; }
.lv-footer__copy { font-family: var(--lv-serif-en); letter-spacing: .14em; font-size: 12px; }
/* 運営会社（株式会社エナスピレーション）へのリンク。コピーライトの前に置く */
.lv-footer__copy { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 18px; }
.lv-footer__operator { font-family: var(--lv-mincho); font-size: 12px; letter-spacing: .08em; color: var(--lv-ink-sub); }
.lv-footer__operator:hover { color: var(--lv-accent); }

@media (max-width: 1023px) {
  .lv-footer__grid { grid-template-columns: 1fr 1fr; }
  .lv-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .lv-footer { padding-top: 56px; padding-bottom: 96px; }
  .lv-footer__brands { grid-template-columns: 1fr; }
}

/* ── スマホ下部固定バー ───────────────────── */
.lv-mobilebar { display: none; }
@media (max-width: 767px) {
  .lv-mobilebar {
    display: grid; grid-template-columns: 1fr 1fr;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
    border-top: 1px solid var(--lv-line);
    background: var(--lv-bg);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .lv-mobilebar a {
    display: flex; align-items: center; justify-content: center;
    min-height: 52px; font: 500 13px/1 var(--lv-gothic); letter-spacing: .16em;
  }
  .lv-mobilebar a.is-primary { background: var(--lv-ink); color: var(--lv-bg); }
}

/* ── パンくず・ページヒーロー ──────────────── */
.lv-crumbs { font: 400 11px/1.8 var(--lv-gothic); color: var(--lv-ink-muted); letter-spacing: .12em; }
.lv-crumbs ol { display: flex; flex-wrap: wrap; gap: 0 .9em; margin: 0; padding: 0; list-style: none; }
.lv-crumbs li + li::before { content: '/'; margin-right: .9em; }
.lv-crumbs a:hover { color: var(--lv-accent); }

.lv-pagehero { padding: 100px var(--lv-gutter) 64px; max-width: var(--lv-max); margin: 0 auto; }
.lv-pagehero .lv-label { margin-top: 44px; }
.lv-pagehero .lv-h1 { margin-top: 22px; }
.lv-pagehero--split { display: flex; justify-content: space-between; align-items: flex-end; gap: 48px; }
.lv-pagehero__aside { max-width: 380px; font-size: 14px; line-height: 2; color: var(--lv-ink-sub); }
.lv-pagehero__aside a { border-bottom: 1px solid var(--lv-ink); }
.lv-pagehero__lead { margin-top: 26px; max-width: 720px; }

/* ── セクション共通 ───────────────────────── */
.lv-section { padding: 140px var(--lv-gutter); max-width: var(--lv-max); margin: 0 auto; }
.lv-section--alt { background: var(--lv-bg-alt); max-width: none; }
.lv-section--alt > .lv-section__inner { max-width: calc(var(--lv-max) - var(--lv-gutter) * 2); margin: 0 auto; }
.lv-section__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; }
.lv-section__head .lv-h2 { margin-top: 24px; }

/* 画像枠（実画像がない場合のプレースホルダー） */
.lv-ph {
  background: repeating-linear-gradient(135deg, var(--lv-ph-2) 0 12px, var(--lv-ph-stripe) 12px 24px);
}
.lv-imgbox { background: var(--lv-ph); overflow: hidden; }
.lv-imgbox img { width: 100%; height: 100%; object-fit: cover; }
.lv-imgbox--contain img { object-fit: contain; padding: 8%; }

/* ── トップ：ヒーロー（3a） ─────────────────── */
.lv-hero { display: grid; grid-template-columns: 6fr 6fr; min-height: 720px; max-width: none; }
.lv-hero__text { padding: 120px var(--lv-gutter) 80px; display: flex; flex-direction: column; justify-content: space-between; gap: 56px; max-width: 640px; margin-left: auto; width: 100%; }
.lv-hero__h1 { margin-top: 36px; font: 500 52px/1.45 var(--lv-mincho); letter-spacing: .08em; }
.lv-hero__lead { margin-top: 32px; max-width: 420px; font-size: 15px; line-height: 2.1; color: var(--lv-ink-sub); }
.lv-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; }
.lv-hero__visual { position: relative; min-height: 520px; }
.lv-hero__visual > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lv-hero__card {
  position: absolute; left: -64px; bottom: 64px; z-index: 1;
  width: 260px; padding: 28px 32px;
  background: var(--lv-bg);
  box-shadow: 0 20px 40px rgba(60, 48, 30, .08);
  display: block;
}
.lv-hero__card:hover { color: inherit; background: var(--lv-surface); }
.lv-hero__card .lv-label { font-size: 10px; letter-spacing: .3em; }
.lv-hero__cardmodel { display: block; margin-top: 14px; font: 500 22px/1 var(--lv-model); }
.lv-hero__cardname { display: block; margin-top: 10px; font-size: 12px; line-height: 1.6; color: var(--lv-ink-sub); }

/* ── トップ：製品ラインナップ（3a COLLECTION） ── */
.lv-collection { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; border-top: 1px solid var(--lv-line); }
.lv-collection__intro { grid-column: 1 / span 4; }
.lv-collection__intro .lv-h2 { margin-top: 24px; }
.lv-collection__intro .lv-body { margin-top: 24px; }
.lv-collection__intro .lv-textlink { margin-top: 32px; }
.lv-catgrid {
  grid-column: 6 / span 7;
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px;
  background: var(--lv-line); border: 1px solid var(--lv-line);
  align-self: start;
}
.lv-catgrid a {
  background: var(--lv-bg);
  display: grid; grid-template-columns: 72px 1fr auto; align-items: center; gap: 20px;
  padding: 20px 24px;
}
.lv-catgrid a:hover { background: var(--lv-hover); color: inherit; }
.lv-catgrid__thumb { width: 72px; height: 72px; background: var(--lv-ph-2); }
.lv-catgrid__thumb img { width: 100%; height: 100%; object-fit: contain; padding: 6px; mix-blend-mode: multiply; }
.lv-catgrid__ja { font: 500 15px/1.4 var(--lv-mincho); letter-spacing: .06em; }
.lv-catgrid__en { margin-top: 6px; font: 400 10px/1 var(--lv-mono); letter-spacing: .14em; color: var(--lv-ink-muted); }
.lv-catgrid__count { font: 400 12px/1 var(--lv-mono); color: var(--lv-accent); }

/* ── トップ：導入事例（3a CASE STUDIES） ────── */
.lv-casecols { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 32px; margin-top: 56px; align-items: end; }
.lv-casecard { display: flex; flex-direction: column; gap: 18px; }
.lv-casecard:hover { color: inherit; }
.lv-casecard .lv-imgbox { aspect-ratio: 4 / 5; }
.lv-casecard:hover .lv-imgbox img { transform: scale(1.02); }
.lv-casecard .lv-imgbox img { transition: transform .6s var(--lv-ease); }
.lv-casecard__tag { font: 500 11px/1 var(--lv-gothic); letter-spacing: .2em; color: var(--lv-accent); }
.lv-casecard__title { font: 500 17px/1.6 var(--lv-mincho); }

/* ── トップ：最新コラム（JOURNAL） ─────────── */
.lv-journal { display: grid; grid-template-columns: 1fr 2fr; gap: 96px; }
.lv-journal .lv-h2 { margin-top: 24px; }
.lv-journal .lv-textlink { margin-top: 32px; }
.lv-journal__list { border-top: 1px solid var(--lv-ink); }
.lv-journal__list a {
  display: grid; grid-template-columns: 176px 1fr 24px; align-items: baseline; gap: 16px;
  padding: 26px 0; border-bottom: 1px solid var(--lv-line);
}
.lv-journal__list a:hover { color: inherit; background: var(--lv-hover); }
.lv-journal__cat { font: 500 11px/1.6 var(--lv-gothic); letter-spacing: .18em; color: var(--lv-accent); }
.lv-journal__title { font: 500 16px/1.7 var(--lv-mincho); letter-spacing: .04em; }
.lv-journal__arrow { color: var(--lv-accent); text-align: right; }

/* ── トップ：ショールーム ─────────────────── */
.lv-showroom { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.lv-showroom--noimg { grid-template-columns: 5fr 7fr; align-items: end; }
.lv-showroom .lv-h2 { margin-top: 24px; font-size: 38px; line-height: 1.6; }
.lv-showroom__actions { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 44px; }

/* ── 製品一覧（4a） ───────────────────────── */
.lv-plist { display: grid; grid-template-columns: 260px 1fr; gap: 56px; padding: 0 var(--lv-gutter) 140px; max-width: var(--lv-max); margin: 0 auto; }
.lv-plist__side { display: flex; flex-direction: column; align-self: start; border-top: 1px solid var(--lv-ink); position: sticky; top: calc(64px + 24px); }
.lv-plist__tab {
  display: flex; justify-content: space-between; align-items: center;
  background: none; border: none; border-bottom: 1px solid var(--lv-line);
  padding: 17px 2px; cursor: pointer; text-align: left;
  font: 400 14px/1.2 var(--lv-gothic); letter-spacing: .08em; color: var(--lv-ink-sub);
}
.lv-plist__tab:hover { color: var(--lv-accent); }
.lv-plist__tab[aria-current="true"] { color: var(--lv-accent); font-weight: 500; }
.lv-plist__tab span:last-child { font: 400 11px/1 var(--lv-mono); color: var(--lv-ink-muted); }
.lv-plist__head { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 22px; border-bottom: 1px solid var(--lv-ink); }
.lv-plist__title { font: 500 24px/1.2 var(--lv-mincho); letter-spacing: .08em; }
.lv-plist__count { font: 400 12px/1 var(--lv-mono); color: var(--lv-ink-muted); }
.lv-pgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 32px; margin-top: 40px; }
.lv-pcard { display: flex; flex-direction: column; gap: 18px; }
.lv-pcard[hidden] { display: none; }
.lv-pcard:hover { color: inherit; }
.lv-pcard .lv-imgbox { aspect-ratio: 1; }
.lv-pcard .lv-imgbox img { object-fit: contain; padding: 10%; mix-blend-mode: multiply; transition: transform .5s var(--lv-ease); }
.lv-pcard:hover .lv-imgbox img { transform: scale(1.03); }
.lv-pcard__meta { border-top: 1px solid var(--lv-line); padding-top: 16px; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.lv-pcard__model { font: 500 16px/1.3 var(--lv-model); overflow-wrap: anywhere; }
.lv-pcard__cat { margin-top: 9px; font: 400 12px/1.5 var(--lv-gothic); color: var(--lv-ink-muted); }
.lv-pcard__arrow { color: var(--lv-accent); }
.lv-more { text-align: center; margin-top: 56px; }
.lv-more[hidden] { display: none; }

/* ── 製品詳細（4b） ───────────────────────── */
.lv-pdetail { display: grid; grid-template-columns: 7fr 5fr; gap: 72px; padding: 48px var(--lv-gutter) 120px; max-width: var(--lv-max); margin: 0 auto; }
.lv-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-self: start; }
.lv-gallery__item { background: var(--lv-ph); aspect-ratio: 1; }
.lv-gallery__item img { width: 100%; height: 100%; object-fit: contain; padding: 6%; mix-blend-mode: multiply; }
.lv-gallery__item:first-child { grid-column: 1 / span 2; aspect-ratio: auto; height: 520px; }
.lv-gallery__item:first-child:last-child { grid-column: 1 / span 2; }
.lv-pdetail__info { position: sticky; top: calc(64px + 24px); align-self: start; padding-top: 12px; }
.lv-pdetail__model { margin-top: 22px; font: 500 50px/1.1 var(--lv-model); letter-spacing: .02em; overflow-wrap: anywhere; }
.lv-pdetail__type { margin-top: 18px; font: 500 20px/1.6 var(--lv-mincho); letter-spacing: .06em; }
.lv-spec { margin-top: 36px; border-top: 1px solid var(--lv-ink); }
.lv-spec + .lv-spec { margin-top: 28px; }
.lv-spec__row { display: grid; grid-template-columns: 130px 1fr; gap: 16px; padding: 15px 0; border-bottom: 1px solid var(--lv-line); font: 400 13px/1.7 var(--lv-gothic); }
.lv-spec__row dt { color: var(--lv-ink-muted); }
.lv-spec__row dd { margin: 0; }
.lv-spec__row dd a { border-bottom: 1px solid var(--lv-line); }
.lv-pdetail__cta { margin-top: 36px; display: grid; gap: 12px; }
.lv-pdetail__docs { font-size: 12px; line-height: 1.9; color: var(--lv-ink-muted); }
.lv-pdetail__docs a { border-bottom: 1px solid var(--lv-ink-muted); }

/* 旧ページから移した補足・特集ブロック（中身は旧サイトの HTML） */
.lv-legacy { font-size: 14px; line-height: 2; color: var(--lv-ink-sub); }
.lv-legacy img { max-width: 100%; height: auto; }
.lv-legacy a { border-bottom: 1px solid var(--lv-line); }
.lv-legacy a:has(img), .lv-legacy a:has(button) { border-bottom: none; }
/* 旧サイトの注意書き（赤地に白文字）。インライン style の白文字を打ち消して注意枠として表示する */
.lv-legacy p.red { margin-top: 24px; padding: 14px 18px; border-left: 2px solid var(--lv-error); background: var(--lv-surface); color: var(--lv-error) !important; font-size: 13px; line-height: 1.8; }
.lv-legacy p.ex, .lv-legacy p.pt-3 { margin-top: 28px; font: 500 14px/1.6 var(--lv-mincho); letter-spacing: .08em; color: var(--lv-ink); }
.lv-legacy .parent-container { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.lv-legacy .parent-container p { flex-basis: 100%; }
.lv-legacy .parent-container img { width: 120px; height: 120px; object-fit: cover; }
.lv-legacy li { list-style: none; }
.lv-legacy li a { display: inline-block; margin: 6px 0; font-family: var(--lv-model); }
.lv-legacy .btn, .lv-legacy button {
  display: inline-block; margin-top: 16px; padding: 16px 24px;
  background: transparent; border: 1px solid var(--lv-ink); cursor: pointer;
  font: 400 12px/1.6 var(--lv-gothic); letter-spacing: .1em; color: var(--lv-ink); text-align: left;
}
.lv-legacy .btn:hover, .lv-legacy button:hover { background: var(--lv-ink); color: var(--lv-bg); }
.lv-legacy .custom a {
  display: inline-block; margin-top: 16px; padding: 16px 28px;
  border: 1px solid var(--lv-ink); font-size: 12px; letter-spacing: .14em;
}
.lv-legacy .custom a:hover { background: var(--lv-ink); color: var(--lv-bg); }
.lv-legacy table { width: 100%; border-collapse: collapse; margin-top: 16px; border-top: 1px solid var(--lv-ink); }
.lv-legacy th, .lv-legacy td { padding: 12px 8px 12px 0; border-bottom: 1px solid var(--lv-line); text-align: left; vertical-align: top; font-size: 13px; font-weight: 400; }
.lv-legacy th { color: var(--lv-ink-muted); width: 130px; }
.lv-legacy td:empty { display: none; }

.lv-pextra { max-width: var(--lv-max); margin: 0 auto; padding: 0 var(--lv-gutter) 120px; }
.lv-pextra .lv-legacy > section { margin: 0 auto; }
.lv-pextra .lv-legacy > section + section { margin-top: 72px; }
/* 特集画像（縦に並ぶ LP 画像） */
.lv-pextra .tokusyu, .lv-pextra .wireless { max-width: 960px; }
.lv-pextra .tokusyu img, .lv-pextra .wireless img { width: 100%; }
/* 旧 Bootstrap のグリッドを最低限再現する */
.lv-legacy .row { display: flex; flex-wrap: wrap; gap: 32px 0; margin: 0 -16px; }
.lv-legacy .row > [class*="col"] { padding: 0 16px; flex: 1 1 100%; }
@media (min-width: 768px) {
  .lv-legacy .row > .col-md-6 { flex-basis: 50%; max-width: 50%; }
  .lv-legacy .row > .col-md-4 { flex-basis: 33.333%; max-width: 33.333%; }
  .lv-legacy .row > .col-md-3 { flex-basis: 25%; max-width: 25%; }
}
@media (min-width: 1024px) {
  .lv-legacy .row > .col-lg-4 { flex-basis: 33.333%; max-width: 33.333%; }
  .lv-legacy .row > .col-lg-3 { flex-basis: 25%; max-width: 25%; }
  .lv-legacy .row > .col-lg-6 { flex-basis: 50%; max-width: 50%; }
}
.lv-legacy .row > .col-12 { flex-basis: 100%; max-width: 100%; }
.lv-legacy .container, .lv-legacy .container-fluid { padding: 0; background: none !important; }
.lv-legacy .mx-auto { margin-left: auto; margin-right: auto; }
.lv-legacy h2 { font: 500 18px/1.6 var(--lv-mincho); letter-spacing: .08em; color: var(--lv-ink); margin-top: 16px; }
.lv-legacy h3 { font: 500 22px/1.6 var(--lv-mincho); letter-spacing: .08em; color: var(--lv-ink); margin-top: 24px; }
.lv-legacy h4 { font: 500 16px/1.6 var(--lv-mincho); letter-spacing: .06em; color: var(--lv-ink); margin-top: 12px; }
.lv-legacy p { margin-top: 8px; }
.lv-legacy .pointlist > div, .lv-legacy .tokucho > .row > div { border-top: 1px solid var(--lv-line); padding-top: 20px; }
.lv-legacy .tokucho > .row { gap: 40px 0; }
.lv-legacy .maru, .lv-legacy .pointlist-i, .lv-legacy i.fa, .lv-legacy i.fas, .lv-legacy i.far { display: none; }

.lv-pairs { background: var(--lv-bg-alt); }
.lv-pairs__inner { max-width: var(--lv-max); margin: 0 auto; padding: 100px var(--lv-gutter); }
.lv-pairs .lv-h2 { margin-top: 20px; font-size: 28px; }
.lv-pairs__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; margin-top: 44px; }
.lv-pairs__grid .lv-imgbox { background: var(--lv-bg); }

/* ── アニメーション（控えめ） ─────────────── */
/* html.js は LavishSiteLayout の head で付ける。JS が動かない環境では隠さない */
.js .lv-reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s var(--lv-ease), transform .6s var(--lv-ease); }
.js .lv-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
  .js .lv-reveal { opacity: 1; transform: none; }
  /* メニューの開閉は動きのない濃淡の変化だけ残す（位置は動かさない） */
  .lv-mega { transform: none !important; transition: opacity .5s ease, visibility 0s linear .5s !important; }
  .lv-nav__item.has-menu.is-open .lv-mega,
  .lv-nav__item.has-menu:hover .lv-mega,
  .lv-nav__item.has-menu:focus-within .lv-mega { transition: opacity .25s ease-out, visibility 0s !important; }
  .lv-nav:has(.lv-nav__item.has-menu:hover) .lv-nav__item.has-menu:not(:hover) .lv-mega { transition: none !important; }
}

/* ── レスポンシブ ─────────────────────────── */
@media (max-width: 1023px) {
  .lv-h1 { font-size: 40px; }
  .lv-h2 { font-size: 30px; }
  .lv-section { padding-top: 110px; padding-bottom: 110px; }
  .lv-pagehero--split { flex-direction: column; align-items: flex-start; }
  .lv-hero { grid-template-columns: 1fr; min-height: 0; }
  .lv-hero__text { max-width: none; margin: 0; padding-top: 80px; padding-bottom: 64px; }
  .lv-hero__visual { min-height: 460px; }
  .lv-hero__card { left: var(--lv-gutter); bottom: -40px; }
  .lv-collection { grid-template-columns: 1fr; }
  .lv-collection__intro, .lv-catgrid { grid-column: auto; }
  .lv-casecols { grid-template-columns: 1fr 1fr; }
  .lv-casecols > :first-child { grid-column: 1 / -1; }
  .lv-casecols > :first-child .lv-imgbox { aspect-ratio: 16 / 10; }
  .lv-journal { grid-template-columns: 1fr; gap: 40px; }
  .lv-showroom, .lv-showroom--noimg { grid-template-columns: 1fr; gap: 48px; align-items: start; }
  .lv-plist { grid-template-columns: 1fr; gap: 32px; }
  .lv-plist__side { position: static; flex-direction: row; flex-wrap: nowrap; overflow-x: auto; border-top: none; border-bottom: 1px solid var(--lv-line); gap: 24px; scrollbar-width: none; }
  .lv-plist__tab { flex: none; border-bottom: 2px solid transparent; padding: 14px 0; gap: 8px; }
  .lv-plist__tab[aria-current="true"] { border-bottom-color: var(--lv-accent); }
  .lv-pgrid { grid-template-columns: repeat(2, 1fr); }
  .lv-pdetail { grid-template-columns: 1fr; gap: 48px; }
  .lv-pdetail__info { position: static; }
  .lv-gallery__item:first-child { height: auto; aspect-ratio: 4 / 3; }
  .lv-pairs__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  body { font-size: 15px; }
  .lv-h1, .lv-hero__h1 { font-size: 34px; }
  .lv-h2, .lv-showroom .lv-h2 { font-size: 26px; }
  .lv-h3 { font-size: 21px; }
  .lv-section { padding-top: 80px; padding-bottom: 80px; }
  .lv-pagehero { padding-top: 56px; padding-bottom: 40px; }
  .lv-pagehero .lv-label { margin-top: 32px; }
  .lv-hero__text { padding-top: 56px; }
  .lv-hero__visual { min-height: 320px; }
  .lv-hero__card { width: auto; right: var(--lv-gutter); padding: 22px 24px; }
  .lv-hero__actions .lv-btn { flex: 1 1 auto; padding-left: 20px; padding-right: 20px; }
  .lv-catgrid { grid-template-columns: 1fr; }
  .lv-catgrid a { grid-template-columns: 56px 1fr auto; padding: 16px; gap: 16px; }
  .lv-catgrid__thumb { width: 56px; height: 56px; }
  .lv-casecols { grid-template-columns: 1fr; }
  .lv-journal__list a { grid-template-columns: 1fr 24px; }
  .lv-journal__cat { grid-column: 1 / -1; }
  .lv-plist { padding-bottom: 96px; }
  .lv-pgrid { gap: 32px 16px; }
  .lv-pcard__model { font-size: 14px; }
  .lv-pdetail { padding-top: 24px; padding-bottom: 80px; }
  .lv-pdetail__model { font-size: 34px; }
  .lv-spec__row { grid-template-columns: 104px 1fr; }
  .lv-pairs__inner { padding-top: 72px; padding-bottom: 72px; }
}

/* ══ Phase 2：トップ以外の下層ページ ══════════════════════ */

.lv-section--tight { padding-top: 110px; padding-bottom: 110px; }
.lv-alert, .lv-legacy .lv-alert {
  padding: 14px 18px; border-left: 2px solid var(--lv-error); background: var(--lv-surface);
  color: var(--lv-error); font-size: 13px; line-height: 1.9;
}

/* ── 記事・本文（720px 中央） ─────────────── */
.lv-article { max-width: 720px; margin: 0 auto; padding: 0 var(--lv-gutter) 120px; box-sizing: content-box; }
.lv-article--page { padding-top: 8px; }
.lv-article--wide { max-width: 960px; }
.lv-article__section + .lv-article__section { margin-top: 64px; }
.lv-article__h2 { font: 500 24px/1.6 var(--lv-mincho); letter-spacing: .08em; padding-bottom: 16px; border-bottom: 1px solid var(--lv-ink); margin-bottom: 24px; }
.lv-article__figure { margin: 0 0 56px; background: var(--lv-ph); }
.lv-article__figure img { width: 100%; }
.lv-article__date { font: 400 12px/1 var(--lv-mono); letter-spacing: .14em; color: var(--lv-ink-muted); margin-bottom: 40px; }
.lv-article__back { margin-top: 72px; text-align: center; }

.lv-prose { font-size: 15px; line-height: 2.1; color: var(--lv-ink-sub); overflow-wrap: anywhere; }
.lv-prose > * + * { margin-top: 1.2em; }
.lv-prose h2, .lv-prose h3 { font: 500 22px/1.6 var(--lv-mincho); letter-spacing: .08em; color: var(--lv-ink); margin-top: 2.2em; }
.lv-prose h4 { font: 500 17px/1.7 var(--lv-mincho); letter-spacing: .06em; color: var(--lv-ink); margin-top: 2em; }
.lv-prose a { color: var(--lv-ink); border-bottom: 1px solid var(--lv-input-line); }
.lv-prose a:hover { color: var(--lv-accent); border-color: var(--lv-accent); }
.lv-prose a.lv-btn { border: 1px solid var(--lv-ink); }
.lv-prose img { height: auto; }
.lv-prose ul, .lv-prose ol { padding-left: 1.4em; }
.lv-prose ul { list-style: disc; }
.lv-prose ol { list-style: decimal; }
.lv-prose table { width: 100%; border-collapse: collapse; font-size: 13px; line-height: 1.8; border-top: 1px solid var(--lv-ink); }
.lv-prose th, .lv-prose td { padding: 12px 10px 12px 0; border-bottom: 1px solid var(--lv-line); text-align: left; vertical-align: top; font-weight: 400; }
.lv-prose th { color: var(--lv-ink-muted); white-space: nowrap; }
.lv-prose figure { margin: 1.6em 0; }
.lv-prose figcaption { margin-top: 8px; font-size: 12px; color: var(--lv-ink-muted); }
.lv-prose--news .alignleft, .lv-prose--news .alignright { float: none; margin: 1.6em 0; }
.lv-prose--news img { display: block; max-width: 100%; }
.lv-prose hr { border: none; border-top: 1px solid var(--lv-line); margin: 2.4em 0; }

/* 組み合わせ（使用製品）リスト */
.lv-combos { border-top: 1px solid var(--lv-ink); }
.lv-combos li { display: grid; grid-template-columns: 180px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--lv-line); font-size: 14px; line-height: 1.7; }
.lv-combos__label { color: var(--lv-ink-muted); }
.lv-combos__model { font-family: var(--lv-model); font-weight: 500; }
a.lv-combos__model span { color: var(--lv-accent); }
.lv-combos + .lv-note { margin-top: 14px; }
.lv-note a { border-bottom: 1px solid var(--lv-ink-muted); }

.lv-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 80px; border-top: 1px solid var(--lv-line); padding-top: 28px; }
.lv-pager a { display: block; font: 500 14px/1.7 var(--lv-mincho); }
.lv-pager small { display: block; font: 400 11px/1 var(--lv-gothic); letter-spacing: .14em; color: var(--lv-accent); margin-bottom: 10px; }
.lv-pager__next { text-align: right; }

/* ── 導入事例 一覧・詳細（4d） ────────────── */
.lv-tabs { display: flex; flex-wrap: wrap; gap: 0 32px; margin-top: 48px; border-bottom: 1px solid var(--lv-line); }
.lv-tabs button, .lv-tabs a {
  background: none; border: none; border-bottom: 2px solid transparent; padding: 0 0 16px; margin-bottom: -1px; cursor: pointer;
  font: 400 13px/1 var(--lv-gothic); letter-spacing: .12em; color: var(--lv-ink-sub);
}
.lv-tabs [aria-pressed="true"], .lv-tabs [aria-current="page"] { color: var(--lv-ink); font-weight: 500; border-bottom-color: var(--lv-accent); }
.lv-tabs__count { margin-left: .4em; font: 400 11px/1 var(--lv-mono); color: var(--lv-ink-muted); }
.lv-tabswrap { max-width: var(--lv-max); margin: -24px auto 0; padding: 0 var(--lv-gutter); }

.lv-casefeature { display: grid; grid-template-columns: 7fr 5fr; gap: 56px; align-items: center; max-width: var(--lv-max); margin: 0 auto; padding: 56px var(--lv-gutter) 0; }
.lv-casefeature:hover { color: inherit; }
.lv-casefeature[hidden] { display: none; }
.lv-casefeature .lv-imgbox { aspect-ratio: 16 / 10; }
.lv-casefeature__tag { font: 500 11px/1 var(--lv-gothic); letter-spacing: .24em; color: var(--lv-accent); }
.lv-casefeature__title { margin-top: 22px; font: 500 28px/1.6 var(--lv-mincho); letter-spacing: .06em; }
.lv-casefeature__text { margin-top: 20px; }
.lv-casefeature__models { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--lv-line); font: 400 12px/1.8 var(--lv-model); color: var(--lv-ink-muted); }
.lv-casegrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px 32px; margin-top: 56px; }
.lv-casegrid--page { max-width: var(--lv-max); margin: 0 auto; padding: 96px var(--lv-gutter) 140px; }
.lv-casecard[hidden] { display: none; }

.lv-casedetail { max-width: var(--lv-max); margin: 0 auto; padding: 0 var(--lv-gutter); }
.lv-casedetail__gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 80px; }
.lv-casedetail__gallery .lv-imgbox { aspect-ratio: 1; }
/* 1枚目は横いっぱいに大きく、2枚目以降は4列（行をまたぐ指定は使わない） */
.lv-casedetail__gallery .lv-imgbox:first-child { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
.lv-casedetail .lv-article { padding-left: 0; padding-right: 0; }

/* ── お問い合わせ帯 ───────────────────────── */
.lv-cta { background: var(--lv-bg-alt); }
.lv-cta__inner { max-width: var(--lv-max); margin: 0 auto; padding: 110px var(--lv-gutter); display: grid; grid-template-columns: 5fr 7fr; gap: 80px; align-items: end; }
.lv-cta .lv-h2 { margin-top: 24px; }
.lv-cta .lv-lead { margin-top: 20px; }
.lv-cta__actions { display: grid; gap: 28px; justify-items: start; }
.lv-cta__tel { display: block; font: 500 34px/1 var(--lv-model); letter-spacing: .06em; }
.lv-cta__tel small { display: block; margin-top: 10px; font: 400 12px/1 var(--lv-gothic); letter-spacing: .1em; color: var(--lv-ink-muted); }
.lv-cta__btns { display: flex; gap: 16px; flex-wrap: wrap; }

/* ── 製品の特徴（4c） ─────────────────────── */
.lv-fhero { display: grid; grid-template-columns: 6fr 6fr; min-height: 520px; }
.lv-fhero__text { padding: 110px var(--lv-gutter); display: flex; flex-direction: column; justify-content: center; max-width: 640px; margin-left: auto; width: 100%; }
.lv-fhero__text .lv-crumbs { margin-bottom: 44px; }
.lv-fhero__text h1 { margin-top: 30px; font: 500 50px/1.5 var(--lv-mincho); letter-spacing: .1em; }
.lv-fhero__visual { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--lv-line); }
.lv-fhero__visual div { background: var(--lv-ph); position: relative; overflow: hidden; min-height: 180px; }
/* 画像は枠に合わせる（画面幅が広いときに縦に伸びないように） */
.lv-fhero__visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: 14%; mix-blend-mode: multiply; }
.lv-features { max-width: var(--lv-max); margin: 0 auto; padding: 120px var(--lv-gutter) 140px; display: flex; flex-direction: column; gap: 120px; }
.lv-feature { display: grid; grid-template-columns: 120px 5fr 6fr; gap: 48px; align-items: start; border-top: 1px solid var(--lv-ink); padding-top: 40px; }
.lv-feature__no { font: 400 56px/1 var(--lv-serif-en); color: var(--lv-accent); }
.lv-feature h2 { font: 500 28px/1.6 var(--lv-mincho); letter-spacing: .08em; }
.lv-feature__body { margin-top: 22px; font-size: 15px; line-height: 2.2; color: var(--lv-ink-sub); }
.lv-feature__list { margin-top: 24px; border-top: 1px solid var(--lv-line); }
.lv-feature__list li { padding: 14px 0; border-bottom: 1px solid var(--lv-line); font-size: 14px; line-height: 1.9; color: var(--lv-ink-sub); }
.lv-feature__list strong { display: block; font: 500 15px/1.6 var(--lv-mincho); color: var(--lv-ink); letter-spacing: .06em; }
.lv-feature .lv-note { margin-top: 16px; }
.lv-feature .lv-imgbox { aspect-ratio: 3 / 2; }
.lv-feature .lv-imgbox img { object-fit: contain; padding: 8%; mix-blend-mode: multiply; }
.lv-feature__links { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 8px 20px; font: 500 13px/1.6 var(--lv-model); }
.lv-feature__links a { border-bottom: 1px solid var(--lv-line); }

/* ── 会社概要（4f） ───────────────────────── */
.lv-company { max-width: var(--lv-max); margin: 0 auto; padding: 32px var(--lv-gutter) 140px; display: grid; grid-template-columns: 4fr 8fr; gap: 64px; }
.lv-subnav { display: flex; flex-direction: column; gap: 18px; font: 400 13px/1.4 var(--lv-gothic); letter-spacing: .1em; color: var(--lv-ink-sub); border-top: 1px solid var(--lv-ink); padding-top: 24px; align-self: start; }
.lv-subnav [aria-current="page"] { color: var(--lv-accent); font-weight: 500; }
.lv-deflist { border-top: 1px solid var(--lv-ink); margin: 0; }
.lv-deflist > div { display: grid; grid-template-columns: 180px 1fr; gap: 16px; padding: 24px 0; border-bottom: 1px solid var(--lv-line); font-size: 14px; line-height: 1.9; }
.lv-deflist dt { color: var(--lv-ink-muted); letter-spacing: .12em; }
.lv-deflist dd { margin: 0; }
.lv-deflist dd a { border-bottom: 1px solid var(--lv-input-line); }

/* ── お知らせ一覧 ─────────────────────────── */
.lv-newslist { max-width: 960px; margin: 0 auto; padding: 0 var(--lv-gutter) 140px; box-sizing: content-box; }
.lv-newslist ul { border-top: 1px solid var(--lv-ink); }
.lv-newslist a { display: grid; grid-template-columns: 140px 1fr 24px; gap: 16px; align-items: baseline; padding: 24px 0; border-bottom: 1px solid var(--lv-line); }
.lv-newslist a:hover { background: var(--lv-hover); color: inherit; }
.lv-newslist time { font: 400 12px/1.8 var(--lv-mono); letter-spacing: .1em; color: var(--lv-ink-muted); }
.lv-newslist__title { font: 500 15px/1.8 var(--lv-mincho); letter-spacing: .04em; }
.lv-newslist__arrow { color: var(--lv-accent); text-align: right; }

/* ── よくある質問 ─────────────────────────── */
.lv-faq { max-width: 880px; margin: 0 auto; padding: 0 var(--lv-gutter) 140px; box-sizing: content-box; }
.lv-faq__list { border-top: 1px solid var(--lv-ink); }
.lv-faq__item { display: grid; grid-template-columns: 48px 1fr; gap: 12px 16px; padding: 32px 0; border-bottom: 1px solid var(--lv-line); }
.lv-faq__mark { font: 400 26px/1 var(--lv-serif-en); color: var(--lv-accent); }
.lv-faq__mark--a { color: var(--lv-ink-muted); font-size: 22px; }
.lv-faq__q { font: 500 17px/1.7 var(--lv-mincho); letter-spacing: .06em; margin: 0; }
.lv-faq__a { font-size: 14px; line-height: 2.1; color: var(--lv-ink-sub); }

/* ── ダウンロード系 ───────────────────────── */
.lv-dlgrid { max-width: var(--lv-max); margin: 0 auto; padding: 0 var(--lv-gutter) 140px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px 32px; }
.lv-dlcard { display: flex; flex-direction: column; gap: 16px; }
.lv-dlcard .lv-imgbox { aspect-ratio: 3 / 4; }
.lv-dlcard .lv-imgbox img { object-fit: contain; }
.lv-dlcard__title { font: 500 16px/1.7 var(--lv-mincho); letter-spacing: .04em; flex: 1; }
.lv-dlbtn {
  display: inline-flex; justify-content: center; align-items: center; gap: .6em;
  border: 1px solid var(--lv-ink); padding: 15px 24px;
  font: 400 12px/1 var(--lv-gothic); letter-spacing: .14em;
}
.lv-dlbtn:hover { background: var(--lv-ink); color: var(--lv-bg); }
.lv-dlbtn span { font-family: var(--lv-mono); color: var(--lv-accent); }
.lv-dlbtn:hover span { color: var(--lv-bg); }
.lv-dlbtns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.lv-pages { max-width: var(--lv-max); margin: 0 auto; padding: 0 var(--lv-gutter) 140px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.lv-pages a { display: block; background: var(--lv-ph); }
.lv-pages img { width: 100%; height: auto; }

/* ── 利用方法一覧 ─────────────────────────── */
.lv-uselist { max-width: var(--lv-max); margin: 0 auto; padding: 0 var(--lv-gutter) 140px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 56px; }
.lv-uselist a { display: grid; grid-template-columns: 56px 1fr 24px; gap: 20px; align-items: baseline; padding: 32px 0; border-top: 1px solid var(--lv-line); }
.lv-uselist a:hover { color: inherit; background: var(--lv-hover); }
.lv-uselist__no { font: 400 30px/1 var(--lv-serif-en); color: var(--lv-accent); }
.lv-uselist__title { font: 500 17px/1.7 var(--lv-mincho); letter-spacing: .04em; }
.lv-uselist__text { margin-top: 10px; font-size: 13px; line-height: 1.9; color: var(--lv-ink-sub); }
.lv-uselist__arrow { color: var(--lv-accent); text-align: right; }

/* ── フォーム（4e） ───────────────────────── */
.lv-contact { max-width: var(--lv-max); margin: 0 auto; padding: 100px var(--lv-gutter) 140px; display: grid; grid-template-columns: 5fr 7fr; gap: 80px; align-items: start; }
.lv-contact .lv-crumbs { margin-bottom: 44px; }
.lv-contact .lv-h1 { margin-top: 22px; }
.lv-contact__lead { margin-top: 26px; }
.lv-telpanel { margin-top: 52px; padding: 36px; background: var(--lv-bg-alt); }
.lv-telpanel__label { font-size: 11px; line-height: 1; letter-spacing: .2em; color: var(--lv-ink-muted); }
.lv-telpanel__num { display: block; margin-top: 14px; font: 500 36px/1 var(--lv-model); letter-spacing: .06em; }
.lv-telpanel__hours { margin-top: 10px; font-size: 12px; line-height: 1.6; color: var(--lv-ink-muted); }
.lv-linkrows { margin-top: 12px; border-top: 1px solid var(--lv-ink); }
.lv-linkrows a { display: flex; justify-content: space-between; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--lv-line); font: 500 15px/1.4 var(--lv-mincho); letter-spacing: .08em; }
.lv-linkrows a span:last-child { color: var(--lv-accent); font-family: var(--lv-mono); }
.lv-formpanel { background: var(--lv-surface); border: 1px solid var(--lv-line); padding: 56px; }
.lv-formtabs { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--lv-ink); margin-bottom: 44px; }
.lv-formtabs a { display: flex; align-items: center; justify-content: center; min-height: 52px; padding: 12px; text-align: center; font: 500 13px/1.4 var(--lv-gothic); letter-spacing: .14em; color: var(--lv-ink-sub); }
.lv-formtabs a[aria-current="page"] { background: var(--lv-ink); color: var(--lv-bg); }
.lv-form { display: flex; flex-direction: column; gap: 28px; }
.lv-form__group { border: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 28px; min-width: 0; }
.lv-form__group + .lv-form__group { margin-top: 20px; padding-top: 36px; border-top: 1px solid var(--lv-line); }
.lv-form__legend { padding: 0; font: 500 18px/1.6 var(--lv-mincho); letter-spacing: .08em; color: var(--lv-ink); }
.lv-field { display: flex; flex-direction: column; gap: 12px; border: none; margin: 0; padding: 0; min-width: 0; }
.lv-field__label { padding: 0; font: 500 12px/1.6 var(--lv-gothic); letter-spacing: .12em; color: var(--lv-ink-sub); }
.lv-req { color: var(--lv-accent); margin-left: .3em; }
.lv-field input[type="text"], .lv-field input[type="email"], .lv-field input[type="tel"], .lv-field select {
  background: transparent; border: none; border-bottom: 1px solid var(--lv-input-line); border-radius: 0;
  padding: 10px 0; color: var(--lv-ink); font-size: 15px; outline: none; width: 100%; min-height: 44px;
}
.lv-field select {
  appearance: none; padding-right: 28px;
  background-image: linear-gradient(45deg, transparent 50%, var(--lv-ink-muted) 50%), linear-gradient(135deg, var(--lv-ink-muted) 50%, transparent 50%);
  background-position: calc(100% - 14px) 52%, calc(100% - 9px) 52%; background-size: 5px 5px; background-repeat: no-repeat;
}
.lv-field input:focus, .lv-field select:focus { border-bottom-color: var(--lv-ink); }
.lv-field textarea { background: transparent; border: 1px solid var(--lv-input-line); border-radius: 0; padding: 14px; color: var(--lv-ink); font-size: 15px; line-height: 1.8; outline: none; resize: vertical; min-height: 140px; }
.lv-field textarea:focus { border-color: var(--lv-ink); }
.lv-field input[type="file"] { font-size: 13px; color: var(--lv-ink-sub); max-width: 100%; }
.lv-field__row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.lv-field__hint { font-size: 12px; line-height: 1.7; color: var(--lv-ink-muted); }
.lv-field__error { font-size: 12px; line-height: 1.6; color: var(--lv-error); }
.lv-field__error:empty { display: none; }
.lv-field.is-invalid input, .lv-field.is-invalid select, .lv-field.is-invalid textarea { border-color: var(--lv-error); }
.lv-choices { display: flex; flex-wrap: wrap; gap: 10px 24px; }
.lv-choices label { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; font-size: 14px; color: var(--lv-ink); cursor: pointer; }
.lv-choices input { accent-color: var(--lv-ink); width: 16px; height: 16px; margin: 0; }
.lv-agree { font-size: 13px; }
.lv-agree a { border-bottom: 1px solid var(--lv-ink); }
.lv-form__submit { margin-top: 12px; padding: 22px; font-size: 14px; letter-spacing: .24em; }
.lv-hp { position: absolute; left: -9999px; top: -9999px; height: 0; overflow: hidden; }
.lv-form__summary { padding: 16px 18px; border-left: 2px solid var(--lv-error); background: #fff; color: var(--lv-error); font-size: 13px; line-height: 1.8; }
.lv-form__summary[hidden] { display: none; }
.lv-confirm h2, .lv-done h2 { font: 500 24px/1.6 var(--lv-mincho); letter-spacing: .08em; }
.lv-confirm > p, .lv-done p { margin-top: 16px; font-size: 14px; line-height: 2; color: var(--lv-ink-sub); }
.lv-confirm dl { margin-top: 32px; border-top: 1px solid var(--lv-ink); }
.lv-confirm dl > div { display: grid; grid-template-columns: 160px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--lv-line); font-size: 14px; line-height: 1.8; }
.lv-confirm dt { color: var(--lv-ink-muted); }
.lv-confirm dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.lv-confirm__actions { margin-top: 36px; display: grid; grid-template-columns: 2fr 1fr; gap: 12px; }
.lv-done p a { border-bottom: 1px solid var(--lv-ink); }
.lv-done .lv-btn { margin-top: 32px; }
.lv-spinner { width: 28px; height: 28px; border: 1px solid var(--lv-line); border-top-color: var(--lv-ink); border-radius: 50%; animation: lv-spin 1s linear infinite; margin: 24px 0; }
@keyframes lv-spin { to { transform: rotate(360deg); } }
.lv-pdfline { margin-top: 20px; font-size: 13px; line-height: 1.9; color: var(--lv-ink-sub); }
.lv-pdfline a { border-bottom: 1px solid var(--lv-ink); }

/* ── 404 ─────────────────────────────────── */
.lv-404 { max-width: var(--lv-max); margin: 0 auto; padding: 120px var(--lv-gutter) 160px; }
.lv-404 .lv-h1 { margin-top: 24px; }
.lv-404 p { margin-top: 24px; }
.lv-404__links { margin-top: 48px; display: flex; flex-wrap: wrap; gap: 16px; }

/* ── Phase 2 レスポンシブ ─────────────────── */
@media (max-width: 1023px) {
  .lv-casefeature, .lv-cta__inner, .lv-fhero, .lv-company, .lv-contact { grid-template-columns: 1fr; gap: 48px; }
  .lv-fhero__text { max-width: none; margin: 0; padding-top: 72px; padding-bottom: 56px; }
  .lv-fhero__visual { min-height: 360px; }
  .lv-feature { grid-template-columns: 80px 1fr; gap: 24px 32px; }
  .lv-feature .lv-imgbox { grid-column: 2; }
  .lv-casegrid, .lv-dlgrid { grid-template-columns: repeat(2, 1fr); }
  .lv-uselist { grid-template-columns: 1fr; }
  .lv-pages { grid-template-columns: repeat(2, 1fr); }
  .lv-casedetail__gallery { grid-template-columns: repeat(2, 1fr); }
  .lv-subnav { flex-direction: row; flex-wrap: wrap; gap: 12px 24px; }
}
@media (max-width: 767px) {
  .lv-article { padding-bottom: 80px; }
  .lv-article__h2 { font-size: 20px; }
  .lv-combos li { grid-template-columns: 1fr; gap: 2px; }
  .lv-casefeature__title { font-size: 22px; }
  .lv-casegrid, .lv-dlgrid { grid-template-columns: 1fr; }
  .lv-casegrid--page { padding-top: 64px; padding-bottom: 96px; }
  .lv-cta__inner { padding-top: 80px; padding-bottom: 80px; }
  .lv-cta__tel { font-size: 28px; }
  .lv-fhero__text h1 { font-size: 34px; }
  .lv-features { padding-top: 72px; padding-bottom: 96px; gap: 72px; }
  .lv-feature { grid-template-columns: 1fr; }
  .lv-feature .lv-imgbox { grid-column: auto; }
  .lv-feature__no { font-size: 40px; }
  .lv-feature h2 { font-size: 22px; }
  .lv-deflist > div { grid-template-columns: 1fr; gap: 4px; }
  .lv-newslist a { grid-template-columns: 1fr 24px; gap: 4px 16px; }
  .lv-newslist time { grid-column: 1 / -1; }
  .lv-faq__item { grid-template-columns: 32px 1fr; }
  .lv-contact { padding-top: 56px; padding-bottom: 96px; }
  .lv-formpanel { padding: 28px 20px; }
  .lv-formtabs a { font-size: 12px; letter-spacing: .06em; }
  .lv-field__row { grid-template-columns: 1fr; }
  .lv-confirm dl > div { grid-template-columns: 1fr; gap: 2px; }
  .lv-confirm__actions { grid-template-columns: 1fr; }
  .lv-pager { grid-template-columns: 1fr; }
  .lv-pager__next { text-align: left; }
  .lv-uselist a { grid-template-columns: 40px 1fr 20px; gap: 12px; }
}

/* トップ：ヒーローが製品写真のとき（白背景の写真をアイボリーになじませる） */
.lv-hero__visual--product { background: var(--lv-ph); }
.lv-hero__visual--product > img { object-fit: contain; padding: 10% 12% 14%; mix-blend-mode: multiply; }
.lv-btn--primary .lv-ext { color: inherit; }
.lv-btn:hover .lv-ext { color: inherit; }

/* ── コラム（/column/） ─────────────────────
 * 一覧：見出し → カテゴリタブ → 記事リスト。記事：本文 ＋ 追従する目次。
 * 記事本文は Markdown のまま（クラスなし）なので .lv-colbody の子孫セレクタで整える。
 */
.lv-coltabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; gap: 0 24px; }
.lv-coltabs::-webkit-scrollbar { display: none; }
.lv-coltabs a { flex: none; }

.lv-collist { max-width: var(--lv-max); margin: 0 auto; padding: 56px var(--lv-gutter) 140px; }
.lv-collist ul { border-top: 1px solid var(--lv-ink); }
.lv-collist a {
  display: grid; grid-template-columns: 200px 1fr 24px; gap: 32px; align-items: baseline;
  padding: 30px 0; border-bottom: 1px solid var(--lv-line);
}
.lv-collist a:hover { color: inherit; background: var(--lv-hover); }
.lv-collist__meta { display: flex; flex-direction: column; gap: 10px; }
.lv-collist__cat { font: 500 11px/1.6 var(--lv-gothic); letter-spacing: .18em; color: var(--lv-accent); }
.lv-collist__date { font: 400 12px/1 var(--lv-mono); letter-spacing: .1em; color: var(--lv-ink-muted); }
.lv-collist__body { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.lv-collist__title { font: 500 18px/1.7 var(--lv-mincho); letter-spacing: .04em; color: var(--lv-ink); }
.lv-collist__desc { font-size: 13px; line-height: 1.9; color: var(--lv-ink-muted); }
.lv-collist__arrow { color: var(--lv-accent); text-align: right; }
.lv-collist__empty { padding: 48px 0; border-top: 1px solid var(--lv-ink); color: var(--lv-ink-muted); }
.lv-collist--flush { padding: 0; max-width: none; }
.lv-collist--compact a { padding: 20px 0; gap: 24px; }
.lv-collist--compact .lv-collist__title { font-size: 15px; }

.lv-colart { max-width: var(--lv-max); margin: 0 auto; padding: 0 var(--lv-gutter); }
.lv-colart__head { max-width: 860px; padding: 100px 0 56px; }
.lv-colart__cat { margin-top: 44px; font: 500 12px/1.6 var(--lv-gothic); letter-spacing: .2em; color: var(--lv-accent); }
.lv-colart__title { margin-top: 18px; font: 500 34px/1.6 var(--lv-mincho); letter-spacing: .06em; }
.lv-colart__meta { display: flex; flex-wrap: wrap; gap: 6px 28px; margin-top: 28px; font-size: 12px; line-height: 1.8; color: var(--lv-ink-muted); letter-spacing: .06em; }
.lv-colart__meta time { font-family: var(--lv-mono); letter-spacing: .08em; margin-left: .4em; }
.lv-colart__meta a { color: var(--lv-ink-sub); border-bottom: 1px solid var(--lv-input-line); }
.lv-colart__meta a:hover { color: var(--lv-accent); border-color: var(--lv-accent); }
.lv-colart__layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 80px; align-items: start; border-top: 1px solid var(--lv-ink); padding: 56px 0 120px; }
.lv-colart__main { min-width: 0; max-width: 760px; }

/* 目次 */
.lv-coltoc { position: sticky; top: calc(64px + 32px); max-height: calc(100vh - 128px); overflow-y: auto; }
.lv-coltoc__title { font: 500 12px/1 var(--lv-serif-en); letter-spacing: .42em; color: var(--lv-accent); padding-bottom: 16px; border-bottom: 1px solid var(--lv-ink); }
.lv-toclist ol { margin: 0; padding: 0; list-style: none; counter-reset: lvtoc; }
.lv-toclist li { counter-increment: lvtoc; border-bottom: 1px solid var(--lv-line); }
.lv-toclist a { display: grid; grid-template-columns: 28px 1fr; padding: 12px 0; font-size: 13px; line-height: 1.7; color: var(--lv-ink-sub); }
.lv-toclist a::before { content: counter(lvtoc, decimal-leading-zero); font: 400 11px/1.9 var(--lv-mono); color: var(--lv-ink-muted); }
.lv-toclist a:hover, .lv-toclist a.is-active { color: var(--lv-accent); }
.lv-toclist a.is-active::before { color: var(--lv-accent); }
.lv-coltoc-mobile { display: none; }

/* 本文（Markdown） */
.lv-colbody { font-size: 16px; line-height: 2.05; }
.lv-colbody > * + * { margin-top: 1.4em; }
.lv-colbody h2 {
  font: 500 25px/1.6 var(--lv-mincho); letter-spacing: .06em; color: var(--lv-ink);
  margin-top: 2.6em; padding-top: 28px; border-top: 1px solid var(--lv-line);
  scroll-margin-top: calc(64px + 24px);
}
.lv-colbody > h2:first-child { margin-top: 0; }
.lv-colbody h3 { font: 500 19px/1.7 var(--lv-mincho); letter-spacing: .05em; margin-top: 2.2em; padding-left: 14px; border-left: 2px solid var(--lv-accent); scroll-margin-top: calc(64px + 24px); }
.lv-colbody h4 { font-size: 16px; margin-top: 2em; scroll-margin-top: calc(64px + 24px); }
.lv-colbody strong { color: var(--lv-ink); font-weight: 500; background: linear-gradient(transparent 68%, var(--lv-bg-alt) 68%); }
.lv-colbody a { color: var(--lv-accent); border-bottom-color: var(--lv-accent); }
.lv-colbody a:hover { color: var(--lv-ink); border-bottom-color: var(--lv-ink); }
.lv-colbody li + li { margin-top: .4em; }
.lv-colbody ul ul, .lv-colbody ol ol, .lv-colbody ul ol, .lv-colbody ol ul { margin-top: .4em; }
/* 記事内の画像はインラインで角丸・影が指定されているため、デザイン（角丸0・影なし）に合わせて打ち消す */
.lv-colbody img { display: block; max-width: 100%; height: auto; border-radius: 0 !important; box-shadow: none !important; margin: 2em auto !important; background: var(--lv-surface); }
.lv-colbody table { display: block; overflow-x: auto; width: 100%; font-size: 14px; }
.lv-colbody th, .lv-colbody td { padding: 14px 16px; border-bottom: 1px solid var(--lv-line); }
.lv-colbody thead th { background: var(--lv-bg-alt); color: var(--lv-ink); font-weight: 500; white-space: nowrap; }
.lv-colbody tbody th { color: var(--lv-ink); }
.lv-colbody blockquote { margin: 1.8em 0; padding: 20px 24px; border-left: 2px solid var(--lv-accent); background: var(--lv-surface); font-size: 15px; }
.lv-colbody blockquote > * + * { margin-top: .8em; }
.lv-colbody code { font: 400 .9em/1.6 var(--lv-mono); background: var(--lv-bg-alt); padding: .1em .4em; }
.lv-colbody pre { overflow-x: auto; padding: 20px; background: var(--lv-bg-alt); font-size: 13px; line-height: 1.7; }
.lv-colbody pre code { background: none; padding: 0; }
.lv-colbody pre.mermaid { background: var(--lv-surface); text-align: center; }
.lv-colbody hr { border: none; border-top: 1px solid var(--lv-line); margin: 3em 0; }

/* 本文末尾の関連リンク */
.lv-colinline { margin-top: 3.6em !important; padding: 28px 32px; background: var(--lv-bg-alt); }
.lv-colinline h2 { margin: 0; padding: 0; border: none; font-size: 17px; }
.lv-colinline ul { margin-top: 14px; padding-left: 0; list-style: none; }
.lv-colinline li { position: relative; padding-left: 1.4em; font-size: 15px; }
.lv-colinline li::before { content: '→'; position: absolute; left: 0; color: var(--lv-accent); }

/* 関連記事 */
.lv-colrelated { max-width: var(--lv-max); margin: 0 auto; padding: 0 var(--lv-gutter) 140px; display: grid; grid-template-columns: 1fr 2fr; gap: 96px; }
.lv-colrelated .lv-h2 { margin-top: 24px; }
.lv-colrelated__more { grid-column: 2; text-align: right; margin-top: -64px; }

/* 執筆チーム紹介 */
.lv-colabout__list { margin: 0; border-top: 1px solid var(--lv-line); }
.lv-colabout__list > div { display: grid; grid-template-columns: 220px 1fr; gap: 24px; padding: 18px 0; border-bottom: 1px solid var(--lv-line); }
.lv-colabout__list dt { font: 500 15px/1.8 var(--lv-mincho); }
.lv-colabout__list dd { margin: 0; font-size: 14px; line-height: 1.9; color: var(--lv-ink-sub); }
.lv-colabout__person { padding: 28px 32px; background: var(--lv-surface); border: 1px solid var(--lv-line); }
.lv-colabout__name { font: 500 20px/1.6 var(--lv-mincho); letter-spacing: .08em; }
.lv-colabout__name small { font-size: 13px; color: var(--lv-ink-muted); }
.lv-colabout__role { margin: 6px 0 14px; font-size: 13px; color: var(--lv-ink-muted); }

@media (max-width: 1023px) {
  .lv-colart__layout { grid-template-columns: 1fr; gap: 0; }
  .lv-coltoc { display: none; }
  .lv-coltoc-mobile { display: block; margin-bottom: 32px; border: 1px solid var(--lv-line); background: var(--lv-surface); }
  .lv-coltoc-mobile summary { cursor: pointer; padding: 16px 20px; font: 500 14px/1 var(--lv-gothic); letter-spacing: .14em; list-style: none; display: flex; justify-content: space-between; }
  .lv-coltoc-mobile summary::-webkit-details-marker { display: none; }
  .lv-coltoc-mobile summary::after { content: '+'; color: var(--lv-accent); font-family: var(--lv-mono); }
  .lv-coltoc-mobile[open] summary::after { content: '−'; }
  .lv-coltoc-mobile .lv-toclist { padding: 0 20px 8px; border-top: 1px solid var(--lv-line); }
  .lv-coltoc-mobile .lv-toclist li:last-child { border-bottom: none; }
  .lv-colrelated { grid-template-columns: 1fr; gap: 32px; }
  .lv-colrelated__more { grid-column: auto; margin-top: 0; }
}
@media (max-width: 767px) {
  .lv-collist { padding-top: 40px; padding-bottom: 96px; }
  .lv-collist a { grid-template-columns: 1fr 20px; gap: 10px 16px; padding: 24px 0; }
  .lv-collist__meta { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; align-items: baseline; }
  .lv-collist__title { font-size: 16px; }
  .lv-colart__head { padding: 56px 0 36px; }
  .lv-colart__cat { margin-top: 32px; }
  .lv-colart__title { font-size: 24px; }
  .lv-colart__layout { padding: 32px 0 80px; }
  .lv-colbody { font-size: 15px; line-height: 1.95; }
  .lv-colbody h2 { font-size: 21px; padding-top: 22px; }
  .lv-colbody h3 { font-size: 17px; }
  .lv-colbody th, .lv-colbody td { padding: 12px; font-size: 13px; }
  .lv-colinline { padding: 22px 20px; }
  .lv-colrelated { padding-bottom: 96px; }
  .lv-colabout__list > div { grid-template-columns: 1fr; gap: 4px; }
  .lv-colabout__person { padding: 22px 20px; }
}

/* ── クラウド・システム連携（/system.html ほか） ──────
 * 「¥0」を示す場所には必ず条件の注記（.lv-note）を近くに置く。
 */
.lv-noimg { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 160px; font-size: 12px; letter-spacing: .2em; color: var(--lv-ink-muted); background: repeating-linear-gradient(135deg, var(--lv-ph) 0 12px, var(--lv-ph-stripe) 12px 13px); }
.lv-gallery__item .lv-noimg { min-height: 420px; }

/* 0円の数字 */
.lv-zero { display: grid; grid-template-columns: repeat(2, 1fr); margin: 40px 0 0; border-top: 1px solid var(--lv-ink); }
.lv-zero > div { padding: 22px 20px 20px 0; border-bottom: 1px solid var(--lv-line); }
.lv-zero > div + div { padding-left: 20px; border-left: 1px solid var(--lv-line); }
.lv-zero dt { font-size: 12px; line-height: 1.6; letter-spacing: .08em; color: var(--lv-ink-sub); }
.lv-zero dd { margin: 12px 0 0; font: 500 52px/1 var(--lv-model); color: var(--lv-accent); letter-spacing: .02em; }
.lv-zero__yen { font-size: .6em; margin-right: .06em; }
.lv-zero dd.lv-zero__word { font: 500 34px/1.5 var(--lv-mincho); letter-spacing: .1em; }
.lv-zero--stack { grid-template-columns: 1fr; margin-top: 0; }
.lv-zero--stack > div { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding: 18px 0; }
.lv-zero--stack > div + div { padding-left: 0; border-left: none; }
.lv-zero--stack dd { margin: 0; font-size: 48px; }
.lv-zero--stack dd.lv-zero__word { font-size: 28px; }

/* トップ：告知とクラウドの帯 */
.lv-news-pill { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 32px; padding: 9px 16px 9px 9px; border: 1px solid var(--lv-line); background: var(--lv-surface); font-size: 12px; letter-spacing: .06em; color: var(--lv-ink-sub); }
.lv-news-pill:hover { border-color: var(--lv-accent); color: var(--lv-accent); }
.lv-news-pill__tag { padding: 4px 8px; background: var(--lv-ink); color: var(--lv-bg); font: 500 10px/1 var(--lv-serif-en); letter-spacing: .24em; }
.lv-cloudstrip { background: var(--lv-bg-alt); }
.lv-cloudstrip__inner { max-width: var(--lv-max); margin: 0 auto; padding: 120px var(--lv-gutter); display: grid; grid-template-columns: 7fr 5fr; gap: 96px; align-items: center; }
.lv-cloudstrip .lv-h2 { margin-top: 24px; }
.lv-cloudstrip .lv-lead { margin-top: 28px; max-width: 560px; }
.lv-cloudstrip .lv-btn { margin-top: 40px; }
.lv-cloudstrip__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
.lv-cloudstrip__actions .lv-textlink { margin-top: 40px; }
.lv-cloudstrip .lv-note { margin-top: 16px; }

/* 製品ページ：COA の案内・リーダーのクラウド帯 */
.lv-legacy p.lv-cloudnote { margin-top: 24px; padding: 18px 20px; background: var(--lv-bg-alt); border-left: 2px solid var(--lv-accent); font-size: 13px; line-height: 1.9; color: var(--lv-ink-sub); }
.lv-legacy p.lv-cloudnote a { color: var(--lv-accent); border-bottom: 1px solid currentColor; }
.lv-cloudband { display: grid; grid-template-columns: auto 1fr 20px; gap: 16px; align-items: center; margin-top: 28px; padding: 18px 20px; background: var(--lv-bg-alt); border: 1px solid var(--lv-line); }
.lv-cloudband:hover { color: inherit; border-color: var(--lv-accent); }
.lv-cloudband__label { font: 500 11px/1 var(--lv-serif-en); letter-spacing: .3em; text-transform: uppercase; color: var(--lv-accent); }
.lv-cloudband__text { font-size: 13px; line-height: 1.8; color: var(--lv-ink-sub); }
.lv-cloudband__arrow { color: var(--lv-accent); }

/* /system.html */
.lv-syshero { max-width: var(--lv-max); margin: 0 auto; padding: 72px var(--lv-gutter) 104px; }
.lv-syshero__inner { max-width: 1000px; }
.lv-syshero__label { margin-top: 44px; }
.lv-syshero__h1 { margin-top: 22px; font: 500 54px/1.45 var(--lv-mincho); letter-spacing: .1em; }
.lv-syshero__lead { margin-top: 28px; max-width: 760px; }
.lv-syshero__note { margin-top: 14px; max-width: 860px; }
.lv-syshero__actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 40px; }

.lv-sysblock { display: grid; grid-template-columns: 4fr 8fr; gap: 64px 80px; }
.lv-sysblock > :not(.lv-sysblock__head) { grid-column: 2; }
.lv-sysblock__head .lv-h2 { margin-top: 24px; }
.lv-sysblock__head .lv-lead { margin-top: 24px; }
.lv-sysflowwrap { background: var(--lv-bg-alt); }

.lv-sysfeat { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--lv-ink); }
.lv-sysfeat li { display: grid; grid-template-columns: 56px 220px 1fr; gap: 24px; align-items: baseline; padding: 28px 0; border-bottom: 1px solid var(--lv-line); }
.lv-sysfeat__no { font: 400 13px/1 var(--lv-mono); color: var(--lv-accent); }
.lv-sysfeat__title { font: 500 18px/1.6 var(--lv-mincho); letter-spacing: .06em; }

.lv-sysdiagram { display: grid; grid-template-columns: 1fr 72px 1fr 72px 1fr 72px 1fr; align-items: stretch; }
.lv-sysblock > .lv-sysdiagram, .lv-sysblock > .lv-sysmethods, .lv-sysblock > .lv-sysflow { grid-column: 1 / -1; }
.lv-sysmethods .lv-h3 { font-size: 21px; }
.lv-sysdiagram__node { display: flex; flex-direction: column; gap: 6px; padding: 22px 18px; background: var(--lv-surface); border: 1px solid var(--lv-line); }
.lv-sysdiagram__node small { font: 500 10px/1 var(--lv-serif-en); letter-spacing: .26em; text-transform: uppercase; color: var(--lv-accent); }
.lv-sysdiagram__node strong { font: 500 16px/1.5 var(--lv-mincho); letter-spacing: .04em; font-weight: 500; }
.lv-sysdiagram__node span { font-size: 12px; line-height: 1.6; color: var(--lv-ink-muted); }
.lv-sysdiagram__node--cloud { background: var(--lv-ink); border-color: var(--lv-ink); color: var(--lv-bg); }
.lv-sysdiagram__node--cloud span { color: #cfc6b4; }
.lv-sysdiagram__link { position: relative; display: flex; align-items: center; justify-content: center; }
.lv-sysdiagram__link::before { content: ''; position: absolute; left: 4px; right: 4px; top: 50%; border-top: 1px dashed var(--lv-accent); }
.lv-sysdiagram__link span { position: relative; padding: 2px 6px; background: var(--lv-bg-alt); font: 400 10px/1 var(--lv-mono); letter-spacing: .04em; color: var(--lv-accent); }
.lv-sysdiagram__out { grid-column: 7; display: flex; flex-direction: column; gap: 6px; margin-top: 12px; }
.lv-sysdiagram__out span { position: relative; padding: 8px 12px 8px 22px; border: 1px solid var(--lv-line); background: var(--lv-surface); font-size: 12px; }
.lv-sysdiagram__out span::before { content: '→'; position: absolute; left: 7px; color: var(--lv-accent); }
.lv-sysdiagram--direct { grid-template-columns: 1fr 72px 1fr 72px 1fr; }
.lv-sysdiagram--direct .lv-sysdiagram__out { grid-column: 5; }

.lv-sysreaders { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 24px; }
.lv-sysreaders a { display: flex; flex-direction: column; gap: 10px; }
.lv-sysreaders a:hover { color: inherit; }
.lv-sysreaders .lv-imgbox { aspect-ratio: 1; }
.lv-sysreaders .lv-imgbox img { object-fit: contain; padding: 12%; mix-blend-mode: multiply; }
.lv-sysreaders__model { font: 500 16px/1.4 var(--lv-model); overflow-wrap: anywhere; }
.lv-sysreaders__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.lv-sysreaders__tags span { padding: 3px 8px; border: 1px solid var(--lv-line); font-size: 11px; letter-spacing: .06em; color: var(--lv-ink-sub); }

.lv-syscost { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.lv-syscost__col { padding: 28px 28px 8px; background: var(--lv-surface); border: 1px solid var(--lv-line); }
.lv-syscost__title { font: 500 17px/1.6 var(--lv-mincho); letter-spacing: .08em; padding-bottom: 14px; border-bottom: 1px solid var(--lv-ink); }
.lv-syscost dl { margin: 0; }
.lv-syscost dl > div { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--lv-line); }
.lv-syscost dl > div:last-child { border-bottom: none; }
.lv-syscost dt { font-size: 14px; color: var(--lv-ink); flex: none; }
.lv-syscost dd { margin: 0; font-size: 12px; line-height: 1.7; color: var(--lv-ink-muted); text-align: right; }
.lv-syscost dd.lv-syscost__zero { font: 500 22px/1 var(--lv-mincho); color: var(--lv-accent); }
.lv-syscost__col:last-child dl > div { flex-direction: column; gap: 4px; }
.lv-syscost__col:last-child dd { text-align: left; font-size: 13px; }
.lv-syscost__cta { text-align: right; }
.lv-syscost__cta .lv-textlink + .lv-textlink { margin-left: 24px; }

.lv-sysmethods { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.lv-sysmethods__item { display: flex; flex-direction: column; gap: 12px; padding: 28px 24px; border-top: 1px solid var(--lv-ink); background: var(--lv-surface); }
.lv-sysmethods__label { font: 500 11px/1 var(--lv-serif-en); letter-spacing: .3em; text-transform: uppercase; color: var(--lv-accent); }
.lv-sysmethods__route { font-size: 12px; color: var(--lv-ink-muted); letter-spacing: .06em; }
.lv-sysmethods__devices { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--lv-line); font: 500 13px/1.6 var(--lv-model); }
.lv-sysmethods__devices a { color: var(--lv-accent); }

.lv-sysscenes { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.lv-sysscenes li { padding: 26px 26px 22px; background: var(--lv-surface); border: 1px solid var(--lv-line); }
.lv-sysscenes__title { font: 500 17px/1.6 var(--lv-mincho); letter-spacing: .06em; margin-bottom: 10px; }

.lv-sysflow { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.lv-sysflow li { position: relative; padding-top: 22px; border-top: 1px solid var(--lv-ink); }
.lv-sysflow__no { font: 400 12px/1 var(--lv-mono); color: var(--lv-accent); }
.lv-sysflow__title { margin: 12px 0 8px; font: 500 16px/1.6 var(--lv-mincho); letter-spacing: .04em; }
.lv-sysflow .lv-body { font-size: 13px; line-height: 1.9; }

.lv-sysfaq .lv-faq__q { font-size: 16px; }

@media (max-width: 1023px) {
  .lv-cloudstrip__inner { grid-template-columns: 1fr; gap: 48px; padding-top: 96px; padding-bottom: 96px; }
  .lv-syshero__h1 { font-size: 42px; }
  .lv-sysblock { grid-template-columns: 1fr; gap: 40px; }
  .lv-sysblock > :not(.lv-sysblock__head), .lv-sysblock > .lv-sysdiagram, .lv-sysblock > .lv-sysmethods, .lv-sysblock > .lv-sysflow { grid-column: auto; }
  .lv-sysdiagram, .lv-sysdiagram--direct { grid-template-columns: 1fr; }
  .lv-sysdiagram--direct .lv-sysdiagram__out { grid-column: auto; }
  .lv-sysdiagram__link { height: 36px; }
  .lv-sysdiagram__link::before { left: 50%; right: auto; top: 4px; bottom: 4px; border-top: none; border-left: 1px dashed var(--lv-accent); }
  .lv-sysdiagram__out { grid-column: auto; }
  .lv-sysreaders { grid-template-columns: repeat(2, 1fr); }
  .lv-sysmethods { grid-template-columns: 1fr; }
  .lv-sysflow { grid-template-columns: 1fr 1fr; gap: 28px 16px; }
}
@media (max-width: 767px) {
  .lv-syshero { padding-top: 40px; padding-bottom: 72px; }
  .lv-syshero__label { margin-top: 32px; }
  .lv-syshero__h1 { font-size: 32px; }
  .lv-zero { grid-template-columns: 1fr; }
  .lv-zero > div, .lv-zero > div + div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 16px 0; border-left: none; }
  .lv-zero dd { margin: 0; font-size: 40px; }
  .lv-zero dd.lv-zero__word, .lv-zero--stack dd.lv-zero__word { font-size: 24px; }
  .lv-syshero__actions .lv-btn { flex: 1 1 100%; }
  .lv-news-pill { font-size: 11px; gap: 8px; }
  .lv-cloudstrip__inner { padding-top: 72px; padding-bottom: 72px; }
  .lv-sysfeat li { grid-template-columns: 40px 1fr; gap: 6px 12px; }
  .lv-sysfeat li .lv-body { grid-column: 2; }
  .lv-syscost { grid-template-columns: 1fr; }
  .lv-syscost__col { padding: 22px 20px 4px; }
  .lv-syscost dl > div { flex-direction: column; gap: 4px; }
  .lv-syscost dd { text-align: left; }
  .lv-sysscenes { grid-template-columns: 1fr; }
  .lv-sysflow { grid-template-columns: 1fr; }
  .lv-cloudband { grid-template-columns: 1fr 20px; }
  .lv-cloudband__label { grid-column: 1 / -1; }
}

/* ─────────────────────────────────────────────
 * CTA・計測・送信完了ページ
 * ───────────────────────────────────────────── */

/* ── スマホ下部固定バー：フォーム系ページでは「電話する」だけ／営業時間中の「受付中」 ── */
@media (max-width: 767px) {
  .lv-mobilebar.is-single { grid-template-columns: 1fr; }
  .lv-mobilebar a { gap: 10px; }
}
.lv-open {
  display: inline-flex; align-items: center; gap: 6px;
  font: 500 10px/1 var(--lv-gothic); letter-spacing: .12em;
  color: var(--lv-accent);
}
.lv-open::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%;
  background: currentColor;
}
.lv-open[hidden] { display: none; }

/* ── トップ：ヒーローのショールーム予約（ボタンの下の文字リンク） ── */
.lv-hero__sub { margin-top: 28px; }
.lv-hero__subs { display: flex; flex-wrap: wrap; gap: 0 28px; }

/* ── フォームの完了画面（lavish-forms.js が /thanks.html へ移動できなかったときの予備） ── */
.lv-done__next { margin-top: 32px; text-align: left; }

/* ── 送信完了ページ（/thanks.html）。外枠は .lv-404 を流用 ── */
.lv-thanks { max-width: 880px; margin-left: auto; margin-right: auto; }
.lv-thanks .lv-body a { border-bottom: 1px solid var(--lv-ink); }
.lv-thanks__tel { margin-top: 48px; }
/* .lv-404 p の margin-top: 24px を電話パネルの中では打ち消す */
.lv-thanks .lv-telpanel__label { margin-top: 0; }
.lv-thanks .lv-telpanel__hours { margin-top: 10px; }
.lv-thanks__h2 { margin-top: 64px; font: 500 20px/1.6 var(--lv-mincho); letter-spacing: .08em; }
.lv-thanks__next { margin-top: 20px; }
@media (max-width: 767px) {
  .lv-thanks__tel { padding: 28px 24px; }
  .lv-thanks__tel .lv-telpanel__num { font-size: 30px; }
}

/*
 * 製品ページの追加要素（問い合わせボタン群・取扱説明書・組み合わせ製品の補足・導入事例・コラム）、
 * カテゴリ一覧の案内リンク、リーダー比較表（/reader/compare.html）。
 * lavish.css のトークン（--lv-*）とクラスをそのまま使い、ここでは足りない分だけ定義する。
 */

/* ---------- 製品ページ: サブタイトル・問い合わせ ---------- */
.lv-pdetail__tagline { margin-top: 8px; font-size: 13px; line-height: 1.8; color: var(--lv-ink-muted); }

.lv-pcta__sub {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px;
  margin-top: 8px; padding-top: 18px; border-top: 1px solid var(--lv-line);
}
.lv-pcta__tel { display: inline-flex; flex-direction: column; gap: 6px; }
.lv-pcta__tel-num { font: 500 22px/1 var(--lv-model); letter-spacing: .06em; }
.lv-pcta__tel small { font-size: 11px; color: var(--lv-ink-muted); letter-spacing: .08em; }
.lv-pcta__tel:hover .lv-pcta__tel-num { color: var(--lv-accent); }

.lv-pguide { display: flex; flex-wrap: wrap; gap: 14px 28px; margin-top: 24px; list-style: none; padding: 0; }
.lv-pguide--wide { margin-top: 36px; }

/* ---------- 製品ページ: 取扱説明書・図面 ---------- */

/* ---------- 組み合わせ製品・関連 ---------- */
.lv-pcard__note { margin-top: 6px; font-size: 11px; line-height: 1.7; color: var(--lv-ink-muted); }
.lv-pairs__note { margin-top: 28px; max-width: 760px; }
.lv-pairs + .lv-pairs .lv-pairs__inner { padding-top: 0; }
.lv-pairs--plain .lv-h2 { font-size: 28px; }
.lv-prelated .lv-casegrid, .lv-prelated__list { margin-top: 44px; }
.lv-prelated__note { margin-top: 24px; }

/* ---------- カテゴリ一覧: 案内リンク ---------- */
.lv-catguide { margin: 14px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--lv-ink); display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); column-gap: 28px; }
/* 横に2列で並べて、高さを抑える（狭い画面では1列） */
.lv-pagehero__aside:has(.lv-catguide) { flex: 0 1 560px; width: 100%; max-width: 560px; }
@media (max-width: 767px) { .lv-catguide { grid-template-columns: 1fr 1fr; column-gap: 16px; } }
.lv-catguide__title { font-size: 13px; letter-spacing: .06em; color: var(--lv-ink-sub); }
.lv-pagehero__aside .lv-catguide a { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--lv-line); color: var(--lv-ink); font-size: 13px; line-height: 1.6; }
.lv-pagehero__aside .lv-catguide a::after { content: '→'; flex: none; color: var(--lv-accent); font-family: var(--lv-mono); transition: transform .2s ease; }
.lv-pagehero__aside .lv-catguide a:hover { color: var(--lv-accent); }
.lv-pagehero__aside .lv-catguide a:hover::after { transform: translateX(4px); }

/* ---------- リーダー比較表 ---------- */
.lv-compare { max-width: var(--lv-max); margin: 0 auto; padding: 24px var(--lv-gutter) 120px; }
.lv-compare__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border-top: 1px solid var(--lv-ink); }
.lv-compare__scroll:focus-visible { outline: 2px solid var(--lv-accent); outline-offset: 4px; }
.lv-compare__table { width: 100%; min-width: 880px; border-collapse: collapse; font-size: 13px; line-height: 1.8; }
.lv-compare__table th, .lv-compare__table td {
  padding: 16px 16px 16px 0; border-bottom: 1px solid var(--lv-line); text-align: left; vertical-align: top; font-weight: 400;
}
.lv-compare__table thead th { color: var(--lv-ink-muted); font-size: 12px; letter-spacing: .1em; white-space: nowrap; }
.lv-compare__table tbody th { min-width: 200px; }
.lv-compare__model { display: inline-block; font: 500 16px/1.4 var(--lv-model); letter-spacing: .02em; border-bottom: 1px solid var(--lv-line); }
.lv-compare__model:hover { border-color: var(--lv-accent); }
.lv-compare__kind { display: block; margin-top: 6px; font-size: 11px; line-height: 1.7; color: var(--lv-ink-muted); }
.lv-compare__note { margin-top: 24px; }


@media (max-width: 767px) {
  .lv-pcta__sub { flex-direction: column; align-items: flex-start; }
  .lv-compare { padding-bottom: 80px; }
}

/* ─────────────────────────────────────────────
 * 用途別ページ・FAQ
 * lavish.css のトークン（--lv-*）と既存の lv-* クラスを流用する。
 * ───────────────────────────────────────────── */

/* ── 用途別ページ（/solution/*.html） ── */
.lv-solintro { padding-top: 0; padding-bottom: 72px; }
.lv-solintro .lv-lead { max-width: 820px; }
.lv-solintro .lv-lead + .lv-lead { margin-top: 20px; }
.lv-solintro .lv-cloudband { max-width: 820px; margin-top: 40px; }
/* 利用イメージの写真があるとき：写真を右、文章を左に（狭い画面では写真を上に） */
.lv-solintro--media { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; align-items: start; }
.lv-solintro__media { grid-column: 2; grid-row: 1; margin: 0; }
.lv-solintro__media img { display: block; width: 100%; height: auto; }
.lv-solintro--media .lv-solintro__body { grid-column: 1; grid-row: 1; }

.lv-solgrid { grid-template-columns: repeat(4, 1fr); }
.lv-solcats { display: flex; flex-wrap: wrap; gap: 16px 32px; margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--lv-line); }

.lv-solnav { padding-top: 0; }

/* /feature.html の「用途から探す」：見出しの下に .lv-uselist を続ける */
.lv-solhead { padding-bottom: 48px; }
.lv-solhead .lv-h2 { margin-top: 24px; }
.lv-solnav ul { display: flex; flex-wrap: wrap; gap: 16px 32px; margin-top: 20px; }

/* ── FAQ（/faq.html）：クラウド連携の FAQ への案内 ── */
.lv-faq__more { margin-top: 48px; }

@media (max-width: 1023px) {
  .lv-solgrid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .lv-solintro { padding-bottom: 48px; }
  .lv-solintro--media { grid-template-columns: 1fr; gap: 32px; }
  .lv-solintro__media, .lv-solintro--media .lv-solintro__body { grid-column: 1; grid-row: auto; }
  .lv-solcats, .lv-solnav ul { gap: 12px 24px; }
}

/* ---------- さまざまな利用方法（/various.html・/various/caseN.html） ---------- */
/* 配置図（UseDiagram.astro）。色・書体はサイトの変数に合わせる */
.lv-usediag { display: block; width: 100%; height: auto; }
.lv-usediag text { font-family: var(--lv-mincho); }
.lv-usediag .d-in { fill: var(--lv-surface); }
.lv-usediag .d-mid { fill: var(--lv-ph); }
.lv-usediag .d-out { fill: var(--lv-bg-alt); }
.lv-usediag .d-wall { fill: var(--lv-ink-sub); }
.lv-usediag .d-sill { fill: var(--lv-line); }
.lv-usediag .d-leaf { fill: var(--lv-ink-muted); }
.lv-usediag .d-swing { fill: none; stroke: var(--lv-ink-muted); stroke-width: 1; stroke-dasharray: 3 4; }
.lv-usediag .d-zone { font-size: 19px; fill: var(--lv-ink-muted); }
.lv-usediag .d-zone-box { fill: var(--lv-surface); stroke: var(--lv-line); stroke-width: 1.5; }
.lv-usediag .d-dev { fill: var(--lv-ink); }
.lv-usediag .d-devfill { fill: var(--lv-ink); }
.lv-usediag .d-box { fill: var(--lv-surface); stroke: var(--lv-ink); stroke-width: 2; }
.lv-usediag .d-inv { fill: var(--lv-surface); }
.lv-usediag .d-acc { fill: var(--lv-accent); }
.lv-usediag .d-thin { stroke: var(--lv-ink-muted); stroke-width: 2; }
.lv-usediag .d-led { stroke: var(--lv-accent); stroke-width: 3; }
.lv-usediag .d-ring { fill: none; stroke: var(--lv-ink); stroke-width: 2; }
.lv-usediag .d-hand { fill: none; stroke: var(--lv-ink); stroke-width: 2; }
.lv-usediag .d-sound { fill: none; stroke: var(--lv-accent); stroke-width: 2; }
.lv-usediag .d-person { fill: var(--lv-ink-muted); }
.lv-usediag .d-personhead { fill: var(--lv-ink-sub); }
.lv-usediag .d-desk { fill: var(--lv-ph); stroke: var(--lv-line); stroke-width: 1.5; }
.lv-usediag .d-cloud { fill: var(--lv-ink); }
.lv-usediag .d-screen { fill: var(--lv-ph); }
.lv-usediag .d-boxtext { font: 600 15px var(--lv-mono); fill: var(--lv-ink); text-anchor: middle; }
.lv-usediag .d-link { fill: none; stroke: var(--lv-accent); stroke-width: 1.5; }
.lv-usediag .d-link--net { stroke-dasharray: 6 5; }
.lv-usediag .d-wave { stroke: var(--lv-accent); stroke-width: 2; stroke-dasharray: 2 7; stroke-linecap: round; }
.lv-usediag .d-arrow { stroke: var(--lv-accent); stroke-width: 2.5; }
.lv-usediag .d-arrow--dashed { stroke: var(--lv-ink-muted); stroke-dasharray: 8 6; }
.lv-usediag .d-arrowhead { fill: var(--lv-accent); }
.lv-usediag .d-arrowlabel { font-size: 18px; fill: var(--lv-accent); }
.lv-usediag .d-note { font-size: 18px; fill: var(--lv-ink); }
.lv-usediag .d-mark { fill: var(--lv-accent); stroke: #fff; stroke-width: 2; }
.lv-usediag .d-marktext { font: 600 15px var(--lv-mono); fill: #fff; text-anchor: middle; }
.lv-usediag--compact .d-zone { display: none; }

/* 番号の丸（凡例・製品の役割） */
.lv-usemark { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--lv-accent); color: #fff; font: 600 13px/1 var(--lv-mono); }

/* こんなときに */
.lv-useworries ul { margin: 16px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.lv-useworries li { padding: 22px 24px; background: var(--lv-surface); border: 1px solid var(--lv-line); font-size: 15px; line-height: 1.8; }
.lv-useworries li::before { content: "—"; display: block; margin-bottom: 6px; color: var(--lv-accent); }

/* 機器の配置 */
.lv-usemap { display: grid; grid-template-columns: 7fr 4fr; gap: 24px 56px; align-items: start; }
.lv-usemap__head { grid-column: 1 / -1; }
.lv-usemap__figure { margin: 0; border: 1px solid var(--lv-line); background: var(--lv-surface); }
.lv-usemap__figure figcaption { padding: 12px 16px; border-top: 1px solid var(--lv-line); }
.lv-uselegend { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--lv-ink); }
.lv-uselegend li { display: flex; gap: 14px; align-items: flex-start; padding: 16px 0; border-bottom: 1px solid var(--lv-line); }
.lv-uselegend__role { display: block; font-size: 13px; color: var(--lv-ink-muted); line-height: 1.6; }
.lv-uselegend__model { display: block; margin-top: 2px; font: 500 17px/1.5 var(--lv-model); color: var(--lv-ink); }
a.lv-uselegend__model { text-decoration: underline; text-decoration-color: var(--lv-line); text-underline-offset: 4px; }
a.lv-uselegend__model:hover { text-decoration-color: var(--lv-accent); }

/* 動き方 */
.lv-useflowwrap { background: var(--lv-bg-alt); }
.lv-useflow { margin-top: 32px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px 56px; }
.lv-useflow__scene ol { margin: 16px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--lv-ink); }
.lv-useflow__scene li { display: grid; grid-template-columns: 40px 1fr; padding: 14px 0; border-bottom: 1px solid var(--lv-line); font-size: 15px; line-height: 1.8; }
.lv-useflow__no { font: 400 12px/2.4 var(--lv-mono); color: var(--lv-accent); }

/* 使う製品（役割ごと） */
.lv-useroles { border-top: 1px solid var(--lv-ink); }
.lv-useroles__row { display: grid; grid-template-columns: 4fr 8fr; gap: 24px 56px; padding: 40px 0; border-bottom: 1px solid var(--lv-line); }
.lv-useroles__head .lv-usemark { margin-bottom: 12px; }
.lv-useroles__head .lv-h3 small { font-size: 0.75em; color: var(--lv-ink-muted); }
.lv-useroles__head .lv-body { margin-top: 10px; font-size: 14px; }
.lv-useroles__grid { grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 0; }
.lv-useroles__other { display: flex; flex-direction: column; justify-content: center; padding: 20px; border: 1px dashed var(--lv-input-line); background: var(--lv-surface); }
.lv-useroles__othername { font-size: 15px; line-height: 1.7; }
.lv-useroles__note { margin-top: 20px; }

/* 導入のポイント */
.lv-usepoints { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--lv-ink); }
.lv-usepoints li { position: relative; padding: 18px 0 18px 28px; border-bottom: 1px solid var(--lv-line); font-size: 15px; line-height: 1.9; }
.lv-usepoints li::before { content: ""; position: absolute; left: 4px; top: 31px; width: 10px; height: 1px; background: var(--lv-accent); }

/* 設置場所の例 */
.lv-useplaces { margin: 28px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.lv-useplaces li { padding: 24px; border: 1px solid var(--lv-line); background: var(--lv-surface); }
.lv-useplaces__name { font-size: 16px; font-weight: 600; line-height: 1.6; }
.lv-useplaces li .lv-body { margin-top: 8px; font-size: 14px; }

.lv-usefaq { margin-top: 16px; border-top: 1px solid var(--lv-ink); }
.lv-usenav__label { margin-top: 28px; }

/* 一覧：やりたいことから選ぶ */
.lv-usepick ul { margin: 16px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); column-gap: 56px; border-top: 1px solid var(--lv-ink); }
.lv-usepick a { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--lv-line); font-size: 15px; line-height: 1.7; color: var(--lv-ink); text-decoration: none; }
.lv-usepick a:hover { color: var(--lv-accent); }

/* 一覧：グループとカード */
.lv-usegroup__head { margin-bottom: 32px; }
.lv-usegroup__head .lv-lead { margin-top: 8px; }
.lv-usecards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.lv-usecard { position: relative; display: flex; flex-direction: column; border: 1px solid var(--lv-line); background: var(--lv-surface); color: var(--lv-ink); text-decoration: none; transition: border-color .3s var(--lv-ease); }
.lv-usecard:hover { border-color: var(--lv-ink); }
.lv-usecard__fig { border-bottom: 1px solid var(--lv-line); }
.lv-usecard__body { padding: 20px 22px 26px; }
.lv-usecard__title { font-size: 17px; font-weight: 600; line-height: 1.6; padding-right: 24px; }
.lv-usecard__text { margin-top: 8px; font-size: 14px; line-height: 1.8; color: var(--lv-ink-sub); }
.lv-usecard__models { margin-top: 12px; font: 400 12px/1.7 var(--lv-model); color: var(--lv-accent); }
.lv-usecard__arrow { position: absolute; right: 20px; bottom: 22px; color: var(--lv-accent); }

.lv-usepick--flush ul { margin-top: 0; }
.lv-usefeature { padding-top: 0; }

@media (max-width: 1023px) {
  .lv-usemap { grid-template-columns: 1fr; }
  .lv-useroles__row { grid-template-columns: 1fr; }
  .lv-useplaces { grid-template-columns: repeat(2, 1fr); }
  .lv-usecards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .lv-useworries ul, .lv-useflow, .lv-usepick ul, .lv-usecards { grid-template-columns: 1fr; }
  .lv-useroles__grid { grid-template-columns: repeat(2, 1fr); }
  .lv-useplaces { grid-template-columns: 1fr; }
  .lv-useroles__row { padding: 32px 0; }
}

/* ==========================================================================
   QRコードで開ける電気錠（/qr.html）・構成診断（/choice_system.html）・拡張シミュレーター・選ばれる理由
   ========================================================================== */
.lv-sysqr { margin-top: 40px; }
.lv-sysqr + .lv-sysqr { margin-top: 12px; }
.lv-sysblock > .lv-qrflow, .lv-sysblock > .lv-qrrecipes, .lv-sysblock > .lv-qrspec, .lv-sysblock > .lv-qrspec__cta { grid-column: 1 / -1; }

/* 二つのつなぎ方（2列） */
.lv-sysmethods.lv-qrroutes { grid-template-columns: 1fr 1fr; }
.lv-qrroutes .lv-sysmethods__item { scroll-margin-top: calc(var(--lv-header-h) + 16px); }

/* 来訪者を QRコードで通す流れ（順番に光が当たる） */
.lv-qrflow__steps { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.lv-qrflow__steps li { position: relative; padding: 22px 20px 20px; background: var(--lv-surface); border: 1px solid var(--lv-line); border-top: 2px solid var(--lv-line); animation: lv-qrflow-step calc(var(--lv-qrflow-n) * 1.6s) infinite; animation-delay: calc(var(--lv-qrflow-i) * 1.6s); }
@keyframes lv-qrflow-step {
  0%, 14% { border-top-color: var(--lv-accent); box-shadow: 0 0 0 1px var(--lv-accent) inset; }
  20%, 100% { border-top-color: var(--lv-line); box-shadow: none; }
}
.lv-qrflow__no { font: 400 12px/1 var(--lv-mono); color: var(--lv-accent); }
.lv-qrflow__who { display: inline-block; margin-left: 10px; padding: 2px 8px; border: 1px solid var(--lv-line); font-size: 11px; letter-spacing: .08em; color: var(--lv-ink-sub); }
.lv-qrflow__title { margin: 12px 0 8px; font: 500 16px/1.6 var(--lv-mincho); letter-spacing: .04em; }
.lv-qrflow .lv-body { font-size: 13px; line-height: 1.9; }
.lv-qrflow__staff { margin-top: 20px; padding: 16px 20px; border-left: 2px solid var(--lv-accent); background: var(--lv-surface); font-size: 13px; line-height: 1.9; color: var(--lv-ink-sub); }
.lv-qrflow__staff .lv-qrflow__who { margin: 0 10px 0 0; }
@media (prefers-reduced-motion: reduce) { .lv-qrflow__steps li { animation: none; } }

/* QRコードリーダー（2グループ） */
.lv-qrreaders { display: flex; flex-direction: column; gap: 56px; }
.lv-qrreaders__group { scroll-margin-top: calc(var(--lv-header-h) + 16px); }
.lv-qrreaders__group > .lv-h3 { margin-top: 12px; }
.lv-qrreaders__group > .lv-body { margin: 8px 0 24px; }
.lv-qrreaders__mode { font-size: 12px; line-height: 1.6; color: var(--lv-ink-muted); }

/* あとから足せる構成 */
.lv-qrsteps { margin: 0; padding: 0; list-style: none; border-left: 1px solid var(--lv-ink); }
.lv-qrsteps li { position: relative; padding: 0 0 28px 28px; }
.lv-qrsteps li::before { content: ""; position: absolute; left: -5px; top: 4px; width: 9px; height: 9px; background: var(--lv-accent); }
.lv-qrsteps li:last-child { padding-bottom: 0; }
.lv-qrsteps__no { font: 500 11px/1 var(--lv-serif-en); letter-spacing: .26em; color: var(--lv-accent); }

/* システム連携の例・仕様書までの3ステップ */
.lv-qrrecipes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.lv-qrrecipes article { padding: 24px 22px; background: var(--lv-surface); border-top: 1px solid var(--lv-ink); }
.lv-qrrecipes ol { margin: 14px 0 0; padding-left: 1.4em; font-size: 13px; line-height: 1.9; color: var(--lv-ink-sub); }
.lv-qrrecipes li + li { margin-top: 6px; }
.lv-qrspec { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.lv-qrspec li { display: flex; gap: 12px; align-items: baseline; padding: 14px 16px; border: 1px solid var(--lv-line); background: var(--lv-surface); font-size: 13px; line-height: 1.7; }
.lv-qrspec span { font: 400 12px/1 var(--lv-mono); color: var(--lv-accent); }
.lv-qrspec__cta { margin: 0; }

/* 表示のイメージ */
.lv-qrscreens ul { margin: 16px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.lv-qrscreens figure { margin: 0; }
.lv-qrscreens img { display: block; width: 100%; height: auto; border: 1px solid var(--lv-line); }
.lv-qrscreens figcaption { margin-top: 6px; }
.lv-qrusecases { margin-top: 8px; }

/* 連携パートナー募集 */
.lv-qrpartner { display: flex; flex-direction: column; gap: 20px; }

/* 拡張シミュレーター */
.lv-scalesim { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 20px; padding: 28px; background: var(--lv-surface); border: 1px solid var(--lv-line); }
.lv-scalesim__head .lv-h3 { margin-top: 10px; font-size: 19px; }
.lv-scalesim__controls { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.lv-scalesim__controls label { display: flex; flex-direction: column; gap: 10px; font-size: 13px; color: var(--lv-ink-sub); }
.lv-scalesim__controls output { font: 500 20px/1 var(--lv-mincho); color: var(--lv-ink); margin: 0 2px; }
.lv-scalesim__controls input[type="range"] { width: 100%; accent-color: var(--lv-accent); }
.lv-scalesim__result { display: grid; grid-template-columns: 3fr 2fr; gap: 24px; }
.lv-scalesim dl { margin: 0; }
.lv-scalesim dl > div { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; padding: 12px 0; border-bottom: 1px solid var(--lv-line); }
.lv-scalesim dt { font-size: 13px; }
.lv-scalesim dd { margin: 0; font-size: 13px; color: var(--lv-ink-sub); text-align: right; }
.lv-scalesim__items output { font: 500 18px/1 var(--lv-mincho); color: var(--lv-ink); margin-right: 2px; }
.lv-scalesim__zero dd { font: 500 28px/1 var(--lv-mincho); color: var(--lv-accent); }

/* 選ばれる理由（トップ） */
.lv-pillars { max-width: var(--lv-max); margin: 0 auto; padding: 96px var(--lv-gutter); }
.lv-pillars__list { margin: 40px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.lv-pillars__list li { padding-top: 20px; border-top: 1px solid var(--lv-ink); }
.lv-pillars__no { font: 400 12px/1 var(--lv-mono); color: var(--lv-accent); }
.lv-pillars__title { margin: 12px 0 8px; font: 500 16px/1.6 var(--lv-mincho); letter-spacing: .04em; }
.lv-pillars__list .lv-body { font-size: 13px; line-height: 1.9; }
.lv-pillars__links { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: 32px; }

/* 構成診断 */
.lv-diag { max-width: var(--lv-max); margin: 0 auto; padding: 24px var(--lv-gutter) 120px; }
.lv-diag__form { border-top: 1px solid var(--lv-ink); }
.lv-diag__q { margin: 0; padding: 32px 0; border: none; border-bottom: 1px solid var(--lv-line); min-width: 0; }
.lv-diag__q legend { padding: 0; font: 500 20px/1.6 var(--lv-mincho); letter-spacing: .06em; }
.lv-diag__q legend small { display: block; font: 400 12px/1 var(--lv-mono); color: var(--lv-accent); margin-bottom: 10px; letter-spacing: .1em; }
.lv-diag__hint { margin-top: 6px; font-size: 12px; color: var(--lv-ink-muted); }
.lv-diag__choices { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.lv-diag__choices label { display: inline-flex; align-items: center; gap: 8px; padding: 12px 16px; border: 1px solid var(--lv-line); background: var(--lv-surface); font-size: 14px; cursor: pointer; }
.lv-diag__choices label:has(input:checked) { border-color: var(--lv-accent); box-shadow: 0 0 0 1px var(--lv-accent) inset; }
.lv-diag__choices input { accent-color: var(--lv-accent); }
.lv-diag__submit { margin-top: 32px; }
.lv-diag__result { margin-top: 56px; padding-top: 40px; border-top: 2px solid var(--lv-accent); scroll-margin-top: calc(var(--lv-header-h) + 16px); }
.lv-diag__result[hidden] { display: none; }
.lv-diag__result:focus { outline: none; }
.lv-diag__result h2 { margin-top: 16px; }
.lv-diag__summary { margin-top: 20px; font-size: 14px; line-height: 2; color: var(--lv-ink-sub); }
.lv-diag__products { margin: 24px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--lv-ink); }
.lv-diag__products li { display: grid; grid-template-columns: 180px 1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--lv-line); }
.lv-diag__products li > span:first-child { font-size: 13px; color: var(--lv-ink-muted); }
.lv-diag__products a { font: 500 15px/1.6 var(--lv-model); color: var(--lv-accent); }
.lv-diag__products small { display: block; margin-top: 4px; font-size: 12px; line-height: 1.7; color: var(--lv-ink-sub); }
.lv-diag__facts { margin: 24px 0 0; padding-left: 1.2em; font-size: 14px; line-height: 2; }
.lv-diag__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.lv-diag__static { margin-top: 56px; }
.lv-diag.is-enhanced .lv-diag__static { display: none; }
@media print {
  .lv-header, .lv-footer, .lv-mobilebar, .lv-diag__form, .lv-diag__actions, .lv-diag__static, .lv-cta, .lv-ctaband { display: none !important; }
  .lv-diag__result { margin-top: 0; border-top: none; }
}

@media (max-width: 1023px) {
  .lv-sysmethods.lv-qrroutes, .lv-qrrecipes, .lv-qrspec { grid-template-columns: 1fr; }
  .lv-qrflow__steps { grid-template-columns: 1fr 1fr; }
  .lv-pillars__list { grid-template-columns: 1fr 1fr; }
  .lv-scalesim__result { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .lv-qrflow__steps, .lv-qrscreens ul, .lv-pillars__list, .lv-scalesim__controls { grid-template-columns: 1fr; }
  .lv-scalesim { padding: 20px 16px; }
  .lv-pillars { padding: 64px var(--lv-gutter); }
  .lv-diag__products li { grid-template-columns: 1fr; gap: 4px; }
  .lv-diag__q legend { font-size: 18px; }
}
.lv-sysblock > .lv-sysdiagram__note { grid-column: 1 / -1; margin-top: -40px; }

/* ===== 2026-10 問い合わせ導線の強化（信頼・導入の流れ・組み合わせ機器・比較・用途） ===== */

/* 安心してご相談いただくために（TrustList.astro） */
.lv-trust { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--lv-ink); }
.lv-trust li { border-bottom: 1px solid var(--lv-line); }
.lv-trust a, .lv-trust li > div { display: grid; gap: 4px; padding: 16px 0; }
.lv-trust a:hover .lv-trust__title { color: var(--lv-accent); }
.lv-trust__title { font: 500 15px/1.5 var(--lv-mincho); letter-spacing: .06em; }
.lv-trust__body { font-size: 12px; line-height: 1.8; color: var(--lv-ink-muted); }
.lv-trust--wide { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0 24px; border-top: 0; }
.lv-trust--wide li { border-top: 1px solid var(--lv-ink); border-bottom: 0; }
.lv-trust--wide a, .lv-trust--wide li > div { padding: 20px 0 0; }

/* お問い合わせ：送信後の流れ・見積りに役立つ情報 */
.lv-contact__after, .lv-contact__trust { margin-top: 44px; }
.lv-contact__subhead { font: 500 14px/1.6 var(--lv-mincho); letter-spacing: .08em; margin: 0 0 12px; }
.lv-contact__steps { margin: 0 0 12px; padding-left: 1.4em; font-size: 13px; line-height: 1.9; color: var(--lv-ink-sub); }
.lv-contact__hint { margin-top: 28px; padding: 24px; background: var(--lv-bg-alt); }
.lv-contact__hintlist { margin: 0 0 12px; padding-left: 1.2em; font-size: 13px; line-height: 1.9; color: var(--lv-ink-sub); }

/* ヒアリングシート：進み具合・選択を外す */
.lv-form__step { display: inline-block; margin-right: 12px; font: 400 12px/1 var(--lv-mono); color: var(--lv-accent); letter-spacing: .1em; vertical-align: middle; }
.lv-form__legendnote { margin-left: 8px; font-size: 12px; color: var(--lv-ink-muted); letter-spacing: .04em; }
.lv-choices__clear { margin-top: 8px; padding: 2px 0; border: 0; background: none; font: 400 12px/1.6 var(--lv-gothic); color: var(--lv-accent); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.lv-choices__clear[hidden] { display: none; }

/* 導入の流れ（/flow.html）・販売店向け（/partner_trade.html） */
.lv-sysflow--6 { grid-template-columns: repeat(6, 1fr); }
.lv-flowprep { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--lv-ink); }
.lv-flowprep li { padding: 14px 0 14px 28px; border-bottom: 1px solid var(--lv-line); position: relative; font-size: 14px; line-height: 1.8; }
.lv-flowprep li::before { content: ""; position: absolute; left: 4px; top: 22px; width: 10px; height: 10px; border: 1px solid var(--lv-accent); }
.lv-flowprep__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 20px; }
.lv-flowroutes { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; }
.lv-flowroutes li { padding-top: 20px; border-top: 1px solid var(--lv-ink); display: grid; gap: 8px; align-content: start; }
.lv-flowroutes .lv-body { font-size: 13px; line-height: 1.9; }

/* 製品ページ：ご相談前の確認・組み合わせる機器 */
.lv-precheck { margin-top: 20px; border-top: 1px solid var(--lv-line); border-bottom: 1px solid var(--lv-line); }
.lv-precheck summary { padding: 14px 0; cursor: pointer; font: 500 13px/1.6 var(--lv-mincho); letter-spacing: .04em; }
.lv-precheck ul { margin: 0 0 10px; padding-left: 1.2em; font-size: 13px; line-height: 1.9; color: var(--lv-ink-sub); }
.lv-precheck p { margin: 0 0 14px; font-size: 12px; line-height: 1.8; color: var(--lv-ink-muted); }
.lv-combo { border-top: 1px solid var(--lv-line); }
.lv-combo__inner { max-width: var(--lv-max); margin: 0 auto; padding: 80px var(--lv-gutter); }
.lv-combo .lv-h2 { margin-top: 20px; font-size: 28px; }
.lv-combo__lead { margin-top: 16px; }
.lv-combo__list { margin: 28px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.lv-combo__list li { display: grid; grid-template-columns: auto 64px 1fr; gap: 14px; align-items: center; padding: 12px 14px; background: var(--lv-surface); border: 1px solid var(--lv-line); }
.lv-combo__list img, .lv-combo__noimg { width: 64px; height: 64px; object-fit: contain; display: block; }
.lv-combo__noimg { background: var(--lv-ph); }
/* 製品写真は白背景の画像のため、乗算で白をカードの地の色になじませる（透過に見せる） */
.lv-combo__list img { background: transparent; mix-blend-mode: multiply; }
.lv-combo__check input { width: 18px; height: 18px; accent-color: var(--lv-accent); }
.lv-combo__text { display: grid; gap: 2px; min-width: 0; }
.lv-combo__model { font: 500 15px/1.4 var(--lv-model); letter-spacing: .04em; overflow-wrap: anywhere; }
.lv-combo__kind { font-size: 12px; color: var(--lv-ink-sub); }
.lv-combo__reason { font-size: 11px; color: var(--lv-ink-muted); }
.lv-combo__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 28px 0 16px; }
.lv-combo__count { font-size: 12px; color: var(--lv-ink-muted); }
.lv-visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* トップ：用途から探す・安心してご相談いただくために */
.lv-solpick__list { margin: 36px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 32px; border-top: 1px solid var(--lv-ink); }
.lv-solpick__list a { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; padding: 22px 0; border-bottom: 1px solid var(--lv-line); }
.lv-solpick__en { grid-column: 1; font: 400 11px/1 var(--lv-serif-en); letter-spacing: .14em; color: var(--lv-ink-muted); text-transform: uppercase; }
.lv-solpick__name { grid-column: 1; font: 500 17px/1.5 var(--lv-mincho); letter-spacing: .06em; }
.lv-solpick__arrow { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--lv-accent); font-family: var(--lv-mono); }
.lv-solpick__list a:hover .lv-solpick__name { color: var(--lv-accent); }
.lv-toptrust { display: grid; grid-template-columns: 4fr 8fr; gap: 40px 80px; border-top: 1px solid var(--lv-line); }
.lv-toptrust__head .lv-h2 { margin-top: 24px; }
.lv-toptrust__head .lv-body { margin-top: 20px; }
.lv-toptrust__links { display: grid; gap: 10px; margin-top: 24px; justify-items: start; }
.lv-toptrust .lv-trust--wide { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 24px; }

/* 導入事例：この事例をもとに相談する */
.lv-caseconsult { padding: 32px; background: var(--lv-bg-alt); }
.lv-caseconsult__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }

@media (max-width: 1023px) {
  .lv-trust--wide { grid-template-columns: repeat(2, 1fr); gap: 0 24px; }
  .lv-sysflow--6 { grid-template-columns: 1fr 1fr; }
  .lv-solpick__list { grid-template-columns: 1fr 1fr; }
  .lv-toptrust { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .lv-trust--wide { grid-template-columns: 1fr; }
  .lv-sysflow--6 { grid-template-columns: 1fr; }
  .lv-solpick__list { grid-template-columns: 1fr; }
  .lv-combo__inner { padding: 56px var(--lv-gutter); }
  .lv-combo__list { grid-template-columns: 1fr; }
  .lv-caseconsult { padding: 24px 20px; }
  .lv-contact__hint { padding: 20px; }
}

/* ===== 製品ページの説明（ProductStory.astro。旧サイトの画像・HTML を作り直したもの） ===== */
.lv-pnotes { margin: 20px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.lv-pnotes li { position: relative; padding-left: 1.2em; font-size: 12px; line-height: 1.9; color: var(--lv-ink-muted); }
.lv-pnotes li::before { content: "※"; position: absolute; left: 0; }
.lv-pnotes a { color: var(--lv-ink); border-bottom: 1px solid var(--lv-input-line); }
.lv-pstory { border-top: 1px solid var(--lv-line); }
.lv-pstory__sec { max-width: var(--lv-max); margin: 0 auto; padding: 96px var(--lv-gutter); box-sizing: border-box; }
.lv-pstory__sec + .lv-pstory__sec { border-top: 1px solid var(--lv-line); }
.lv-pstory .lv-h2 { font-size: 28px; }
.lv-pstory__lead { margin-top: 20px; }
.lv-pstory__cutout { margin-top: 40px; max-width: 280px; }
.lv-pstory__cutout img { width: 100%; height: auto; max-height: 360px; object-fit: contain; object-position: left center; }
.lv-pstory__cols { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; }
.lv-pstory__col { padding-top: 20px; border-top: 1px solid var(--lv-ink); display: grid; gap: 10px; align-content: start; }
.lv-pstory__col ul { margin: 6px 0 0; padding: 0; list-style: none; }
.lv-pstory__col li { padding: 10px 0; border-bottom: 1px solid var(--lv-line); font-size: 13px; line-height: 1.8; color: var(--lv-ink-sub); }
.lv-pstory__group + .lv-pstory__group { margin-top: 40px; }
.lv-pstory__gtitle { margin: 0 0 14px; font: 500 15px/1.5 var(--lv-model); letter-spacing: .04em; }
.lv-pstory__photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.lv-pstory__photo { margin: 0; }
.lv-pstory__photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; background: var(--lv-surface); border: 1px solid var(--lv-line); }
.lv-pstory__photo figcaption { margin-top: 8px; font-size: 12px; line-height: 1.7; color: var(--lv-ink-muted); }
.lv-pstory__note { margin-top: 20px; }
.lv-pstory__funcs .lv-h2 { margin-top: 20px; }
.lv-pfuncs { margin: 40px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 32px; border-top: 1px solid var(--lv-ink); }
.lv-pfuncs > div { padding: 18px 0; border-bottom: 1px solid var(--lv-line); }
.lv-pfuncs dt { font: 500 15px/1.6 var(--lv-mincho); letter-spacing: .04em; color: var(--lv-ink); }
.lv-pfuncs dd { margin: 4px 0 0; font-size: 12px; line-height: 1.8; color: var(--lv-ink-muted); }
@media (max-width: 1023px) {
  .lv-pfuncs { grid-template-columns: repeat(2, 1fr); }
  .lv-pstory__photos { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .lv-pstory__sec { padding: 64px var(--lv-gutter); }
  .lv-pstory .lv-h2 { font-size: 24px; }
  .lv-pstory__cutout { max-width: 200px; margin-top: 28px; }
  .lv-pstory__cols { grid-template-columns: 1fr; }
  .lv-pfuncs { grid-template-columns: 1fr; }
}
.lv-pstory__more { margin-top: 28px; }

/* ===== 固定ページの本文（PageBlocks.astro。旧サイトの本文を作り直したもの） ===== */
.lv-pblocks { display: grid; gap: 72px; }
.lv-pblock { min-width: 0; }
.lv-pblock--prose .lv-body + .lv-body { margin-top: 12px; }
.lv-pblock__h { font: 500 18px/1.6 var(--lv-mincho); letter-spacing: .06em; color: var(--lv-ink); padding-bottom: 12px; border-bottom: 1px solid var(--lv-line); margin: 0 0 16px; }
.lv-pblock--prose + .lv-pblock--prose { margin-top: -32px; }
.lv-pblock .lv-body a { color: var(--lv-ink); border-bottom: 1px solid var(--lv-input-line); }
.lv-pblock__title { margin: 18px 0 0; font: 500 26px/1.5 var(--lv-mincho); letter-spacing: .08em; color: var(--lv-ink); }
.lv-pfeature { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; padding-top: 40px; border-top: 1px solid var(--lv-ink); }
.lv-pfeature--text { grid-template-columns: 1fr; }
.lv-pfeature__lead { margin-top: 18px; }
.lv-pfeature .lv-flowprep { margin-top: 24px; }
.lv-pfeature__note { margin-top: 16px; }
.lv-pfeature__img img { display: block; width: 100%; height: auto; background: var(--lv-surface); }
.lv-sounds { margin-top: 28px; display: grid; grid-template-columns: 240px 1fr; gap: 24px; align-items: start; }
.lv-sounds__label { display: grid; gap: 8px; font-size: 12px; color: var(--lv-ink-muted); }
.lv-select { width: 100%; padding: 10px 12px; border: 1px solid var(--lv-input-line); background: var(--lv-surface); color: var(--lv-ink); font-size: 14px; }
.lv-sounds__player { width: 100%; max-width: 480px; background: var(--lv-ink); }
.lv-pactions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.lv-pblocks > .lv-pactions { margin-top: 0; }
.lv-ptopics { margin: 28px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 32px; border-top: 1px solid var(--lv-ink); }
.lv-ptopics li { display: grid; grid-template-columns: 36px 1fr; gap: 8px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--lv-line); font-size: 14px; line-height: 1.8; }
.lv-pdownloads { margin: 28px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--lv-ink); }
.lv-pdownloads li { display: grid; grid-template-columns: 1fr auto; gap: 16px 32px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--lv-line); }
.lv-pdownloads__links { display: flex; flex-wrap: wrap; gap: 10px; }
.lv-pfiles { margin: 28px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.lv-pfiles a { display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; height: 100%; box-sizing: border-box; padding: 16px 18px; background: var(--lv-surface); border: 1px solid var(--lv-line); }
.lv-pfiles a:hover { border-color: var(--lv-ink); }
.lv-pfiles__title { font: 500 15px/1.5 var(--lv-model); letter-spacing: .03em; color: var(--lv-ink); }
.lv-pfiles__kind { grid-column: 2; grid-row: 1; font: 400 11px/1.6 var(--lv-mono); color: var(--lv-accent); }
.lv-pfiles__tags { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.lv-pfiles__tags span { padding: 2px 8px; border: 1px solid var(--lv-line); font-size: 11px; line-height: 1.6; color: var(--lv-ink-muted); }
.lv-pconsent { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; padding-top: 28px; border-top: 1px solid var(--lv-line); }
.lv-pconsent__check { display: inline-flex; gap: 10px; align-items: center; font-size: 14px; cursor: pointer; }
.lv-pconsent__check input { width: 18px; height: 18px; accent-color: var(--lv-accent); }
@media (max-width: 767px) {
  .lv-pblocks { gap: 56px; }
  .lv-pblock__title { font-size: 22px; }
  .lv-pfeature { grid-template-columns: 1fr; gap: 28px; }
  .lv-sounds { grid-template-columns: 1fr; }
  .lv-ptopics, .lv-pfiles { grid-template-columns: 1fr; }
  .lv-pdownloads li { grid-template-columns: 1fr; }
}

/* ===== オリジナルカード印刷（/card/print.html） ===== */
.lv-cardprint__intro { display: grid; grid-template-columns: 5fr 7fr; gap: 64px; align-items: center; padding-top: 72px; }
.lv-cardprint__intro:not(:has(.lv-cardprint__hero)) { grid-template-columns: 1fr; max-width: calc(760px + var(--lv-gutter) * 2); margin-left: max(0px, calc((100% - var(--lv-max)) / 2)); }
.lv-cardprint__text .lv-h2 { margin-top: 24px; }
.lv-cardprint__text .lv-body { margin-top: 24px; }
.lv-cardprint__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.lv-cardprint__hero img { display: block; width: 100%; height: auto; }
.lv-cardprint__hero .lv-note { margin-top: 8px; }
.lv-cardprint__samples .lv-h2 { margin: 20px 0 40px; font-size: 28px; }
.lv-cardprint__ideas { margin-top: 0; grid-template-columns: repeat(2, 1fr); }
@media (max-width: 1023px) {
  .lv-cardprint__intro { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 767px) {
  .lv-cardprint__ideas { grid-template-columns: 1fr; }
}
.lv-solproducts__lead { margin-top: 12px; }

/* 用途ページ：おすすめ構成 */
.lv-solconfig { margin: 40px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--lv-ink); }
.lv-solconfig li { display: grid; grid-template-columns: 160px 1fr; gap: 24px; padding: 28px 0; border-bottom: 1px solid var(--lv-line); align-items: start; }
.lv-solconfig__role { font: 500 16px/1.6 var(--lv-mincho); letter-spacing: .08em; }
.lv-solconfig__items { grid-template-columns: repeat(4, 1fr); }
.lv-solconfig__text { margin: 0; padding: 20px 24px; background: var(--lv-surface); border: 1px solid var(--lv-line); font-size: 14px; line-height: 1.8; color: var(--lv-ink-sub); max-width: 560px; }
.lv-solconfig__cta { margin-top: 32px; }
@media (max-width: 1023px) { .lv-solconfig__items { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .lv-solconfig li { grid-template-columns: 1fr; gap: 12px; } }

/* ===== 用途の一覧（SolutionIndex.astro） ===== */
.lv-solindex { display: grid; gap: 64px; }
.lv-solindex__gtitle { display: grid; gap: 8px; margin: 0 0 20px; font: 500 22px/1.5 var(--lv-mincho); letter-spacing: .08em; }
.lv-solindex__en { font: 400 11px/1 var(--lv-serif-en); letter-spacing: .16em; text-transform: uppercase; color: var(--lv-accent); }
.lv-solindex__cards { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 32px; border-top: 1px solid var(--lv-ink); }
.lv-solindex__cards a { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; padding: 22px 0; border-bottom: 1px solid var(--lv-line); height: 100%; box-sizing: border-box; }
.lv-solindex__name { grid-column: 1; font: 500 17px/1.5 var(--lv-mincho); letter-spacing: .06em; }
.lv-solindex__summary { grid-column: 1; font-size: 12px; line-height: 1.8; color: var(--lv-ink-muted); }
.lv-solindex__arrow { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--lv-accent); font-family: var(--lv-mono); }
.lv-solindex__cards a:hover .lv-solindex__name { color: var(--lv-accent); }
.lv-solindex__more { margin-top: 56px; font-size: 13px; line-height: 2; color: var(--lv-ink-sub); }
.lv-solindex--compact { grid-template-columns: repeat(3, 1fr); gap: 40px 40px; margin-top: 40px; }
.lv-solindex--compact .lv-solindex__gtitle { font-size: 16px; margin-bottom: 12px; }
.lv-solindex--compact ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--lv-ink); }
.lv-solindex--compact li a { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--lv-line); font: 400 14px/1.5 var(--lv-mincho); letter-spacing: .04em; }
.lv-solindex--compact li a span { color: var(--lv-accent); font-family: var(--lv-mono); }
.lv-solindex--compact li a:hover { color: var(--lv-accent); }
@media (max-width: 1023px) {
  .lv-solindex__cards, .lv-solindex--compact { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .lv-solindex__cards, .lv-solindex--compact { grid-template-columns: 1fr; }
}

/* メガメニュー：用途から探す（グループごと。一覧リンクは下に） */
.lv-mega__body { display: flex; flex-direction: column; }
.lv-mega__groups { order: -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px 40px; margin-bottom: 24px; }
.lv-mega__gtitle { margin: 0 0 6px; padding-bottom: 6px; border-bottom: 1px solid var(--lv-ink); font: 500 13px/1.4 var(--lv-mincho); letter-spacing: .1em; color: var(--lv-ink-muted); }
.lv-mega__groups ul { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.lv-mega__groups a { display: block; padding: 6px 0; font: 400 13px/1.5 var(--lv-gothic); letter-spacing: .04em; }
.lv-mega__groups a:hover { color: var(--lv-accent); }
@media (max-width: 1279px) { .lv-mega__groups ul { grid-template-columns: 1fr; } }

/* 用途ページ：悩み・設置場所 */
.lv-solworries { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.lv-solworries li { padding: 22px 24px; background: var(--lv-surface); border: 1px solid var(--lv-line); }
.lv-solworries .lv-body { margin-top: 8px; }
.lv-solplaces { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 24px; border-top: 1px solid var(--lv-ink); }
.lv-solplaces li { padding: 16px 0 16px 22px; border-bottom: 1px solid var(--lv-line); position: relative; font-size: 14px; line-height: 1.7; }
.lv-solplaces li::before { content: ""; position: absolute; left: 2px; top: 24px; width: 8px; height: 8px; border: 1px solid var(--lv-accent); }
@media (max-width: 1023px) { .lv-solplaces { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .lv-solworries, .lv-solplaces { grid-template-columns: 1fr; } }
/* 外部リンクの「↗」だけが次の行に送られないように、短いリンクは折り返さない */
a:has(> .lv-ext) { white-space: nowrap; }

/* ===== 販売店・工事業者様へ（入口：/pro/index.html） ===== */
.lv-prohub { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 40px; border-top: 1px solid var(--lv-ink); }
.lv-prohub li { border-bottom: 1px solid var(--lv-line); }
.lv-prohub a { display: grid; gap: 8px; padding: 24px 0; }
.lv-prohub__title { display: flex; justify-content: space-between; align-items: center; gap: 12px; font: 500 18px/1.5 var(--lv-mincho); letter-spacing: .06em; }
.lv-prohub__title span { color: var(--lv-accent); transition: transform .2s ease; }
.lv-prohub a:hover .lv-prohub__title { color: var(--lv-accent); }
.lv-prohub a:hover .lv-prohub__title span { transform: translateX(4px); }
.lv-prohub__body { font-size: 13px; line-height: 1.9; color: var(--lv-ink-sub); }
@media (max-width: 767px) { .lv-prohub { grid-template-columns: 1fr; } }

/* ── 顔認証・QRコードの「らしさ」（/face.html・/qr.html。AuthStrengths / AuthFit / AuthCompare / FaceFlowDemo） ── */
.lv-sysblock > .lv-authstr, .lv-sysblock > .lv-authfit, .lv-sysblock > .lv-authcmp, .lv-sysblock > .lv-faceperf { grid-column: 1 / -1; }
.lv-authstr { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.lv-authstr li { display: flex; flex-direction: column; padding: 0 0 24px; background: var(--lv-surface); border: 1px solid var(--lv-line); }
.lv-authstr__pain { margin: 0; padding: 18px 20px; min-height: 96px; background: var(--lv-bg-alt); font-size: 13px; line-height: 1.8; color: var(--lv-ink-sub); }
.lv-authstr__painlabel { display: block; margin-bottom: 4px; font: 400 10px/1.4 var(--lv-mono); letter-spacing: .12em; color: var(--lv-ink-muted); }
.lv-authstr__arrow { display: block; margin: -11px auto 0; width: 22px; height: 22px; line-height: 22px; text-align: center; background: var(--lv-accent); color: var(--lv-surface); font-size: 12px; }
.lv-authstr__no { margin: 14px 20px 0; font: 400 12px/1 var(--lv-mono); color: var(--lv-accent); }
.lv-authstr__title { margin: 10px 20px 0; font: 500 22px/1.5 var(--lv-mincho); letter-spacing: .06em; }
.lv-authstr .lv-body { margin: 12px 20px 0; font-size: 13px; line-height: 1.9; }

/* 利用イメージの写真（SceneStrip.astro）。強みの上に横並び */
.lv-sysblock > .lv-scenes { grid-column: 1 / -1; margin-bottom: -24px; }
.lv-scenes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.lv-scenes--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lv-scenes__item { margin: 0; }
.lv-scenes__item img { display: block; width: 100%; height: auto; }
@media (max-width: 767px) {
  /* スマホでは写真を縦に積むと長くなるので、横にスワイプして見る */
  .lv-scenes, .lv-scenes--3 { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 84%; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-right: calc(var(--lv-gutter) * -1); padding-right: var(--lv-gutter); }
  .lv-scenes::-webkit-scrollbar { display: none; }
  .lv-scenes__item { scroll-snap-align: start; }
  .lv-sysblock > .lv-scenes { margin-bottom: 0; }
}

.lv-faceflow__steps { grid-template-columns: repeat(4, 1fr); }

.lv-faceperf { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--lv-ink); }
.lv-faceperf li { padding: 22px 20px 20px 0; border-bottom: 1px solid var(--lv-line); }
.lv-faceperf li + li { padding-left: 20px; border-left: 1px solid var(--lv-line); }
.lv-faceperf dt, .lv-faceperf__k { display: block; font-size: 12px; line-height: 1.6; letter-spacing: .08em; color: var(--lv-ink-sub); }
.lv-faceperf__v { display: block; margin-top: 10px; font: 500 30px/1.2 var(--lv-model); color: var(--lv-accent); letter-spacing: .02em; }
.lv-faceperf__v small { font-size: .5em; margin-left: .1em; }
.lv-faceperf__s { display: block; margin-top: 8px; font-size: 12px; line-height: 1.7; color: var(--lv-ink-muted); }

.lv-authfit { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.lv-authfit__col { padding: 26px 26px 22px; background: var(--lv-surface); border: 1px solid var(--lv-line); border-top: 2px solid var(--lv-accent); }
.lv-authfit__col--unfit { border-top-color: var(--lv-ink-muted); }
.lv-authfit__head { display: flex; align-items: center; gap: 10px; font: 500 18px/1.5 var(--lv-mincho); letter-spacing: .06em; }
.lv-authfit__head span { font-family: var(--lv-mono); color: var(--lv-accent); }
.lv-authfit__col--unfit .lv-authfit__head span { color: var(--lv-ink-muted); }
.lv-authfit ul { margin: 16px 0 0; padding: 0; list-style: none; }
.lv-authfit li { padding: 16px 0; border-top: 1px solid var(--lv-line); }
.lv-authfit li strong { font-weight: 500; font-size: 15px; line-height: 1.7; }
.lv-authfit li .lv-body { margin-top: 4px; font-size: 13px; line-height: 1.9; }
.lv-authfit li .lv-textlink { display: inline-block; margin-top: 6px; font-size: 13px; }

.lv-authcmp__table { width: 100%; border-collapse: collapse; font-size: 13px; line-height: 1.8; }
.lv-authcmp__table th, .lv-authcmp__table td { padding: 14px 16px; border-bottom: 1px solid var(--lv-line); text-align: left; vertical-align: top; }
.lv-authcmp__table thead th { padding-top: 0; border-bottom: 1px solid var(--lv-ink); font: 500 17px/1.5 var(--lv-mincho); letter-spacing: .06em; }
.lv-authcmp__table thead th a { color: var(--lv-ink); text-decoration: underline; text-decoration-color: var(--lv-accent); text-underline-offset: 4px; }
.lv-authcmp__table tbody th { width: 20%; font-weight: 500; color: var(--lv-ink-sub); }
.lv-authcmp__table .is-current { background: var(--lv-surface); }
.lv-authcmp__table thead th.is-current { color: var(--lv-accent); }
.lv-authcmp__cards { display: none; }
.lv-authcmp__answer { margin-top: 28px; padding: 22px 24px; border-left: 2px solid var(--lv-accent); background: var(--lv-surface); font: 500 17px/1.8 var(--lv-mincho); letter-spacing: .04em; }
.lv-authcmp__answer .lv-label { display: block; margin-bottom: 6px; }
.lv-authcmp__answer a { color: var(--lv-accent); text-decoration: underline; text-underline-offset: 4px; }

.lv-syshero--media .lv-syshero__inner { max-width: none; display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 0 64px; align-items: start; }
.lv-syshero--media .lv-syshero__inner > :not(.lv-syshero__media) { grid-column: 1; }
.lv-syshero__media { grid-column: 2; grid-row: 1 / span 20; align-self: center; margin: 0; text-align: center; }
.lv-syshero__media img { width: 100%; max-width: 260px; height: auto; }
.lv-syshero__media figcaption { margin-top: 10px; }
.lv-syshero--wide .lv-syshero__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 440px); }
.lv-syshero--wide .lv-syshero__media img { max-width: 100%; }

.lv-sollinks { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.lv-sollinks a { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 16px 18px; background: var(--lv-surface); border: 1px solid var(--lv-line); font-size: 14px; }
.lv-sollinks a:hover { border-color: var(--lv-accent); }
.lv-sollinks small { display: block; font-size: 11px; color: var(--lv-ink-muted); }
.lv-sysblock > .lv-sollinks { grid-column: 1 / -1; }

@media (max-width: 1023px) {
  .lv-authstr, .lv-faceflow__steps, .lv-faceperf, .lv-sollinks { grid-template-columns: 1fr 1fr; }
  .lv-faceperf li:nth-child(odd) { padding-left: 0; border-left: none; }
  .lv-faceperf li:nth-child(even) { padding-left: 20px; border-left: 1px solid var(--lv-line); }
  .lv-syshero--media .lv-syshero__inner, .lv-syshero--wide .lv-syshero__inner { grid-template-columns: 1fr; }
  .lv-syshero__media { grid-column: 1; grid-row: auto; margin-top: 40px; }
  .lv-syshero__media img { max-width: 200px; }
  .lv-syshero--wide .lv-syshero__media img { max-width: 100%; }
}
@media (max-width: 767px) {
  .lv-authstr, .lv-faceflow__steps, .lv-authfit, .lv-sollinks { grid-template-columns: 1fr; }
  .lv-authstr__pain { min-height: 0; }
  .lv-faceperf li, .lv-faceperf li + li, .lv-faceperf li:nth-child(even) { padding: 18px 0 16px; }
  .lv-faceperf li:nth-child(even) { padding-left: 16px; }
  .lv-faceperf__v { font-size: 24px; }
  .lv-authcmp__table { display: none; }
  .lv-authcmp__cards { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
  .lv-authcmp__cards li { padding: 18px 18px 8px; background: var(--lv-surface); border: 1px solid var(--lv-line); }
  .lv-authcmp__cards li.is-current { border-top: 2px solid var(--lv-accent); }
  .lv-authcmp__cardhead { font: 500 18px/1.5 var(--lv-mincho); letter-spacing: .06em; }
  .lv-authcmp__cardhead a { color: var(--lv-ink); }
  .lv-authcmp__cards dl { margin: 10px 0 0; }
  .lv-authcmp__cards dl > div { display: grid; grid-template-columns: 7.5em 1fr; gap: 10px; padding: 10px 0; border-top: 1px solid var(--lv-line); font-size: 13px; line-height: 1.7; }
  .lv-authcmp__cards dt { color: var(--lv-ink-sub); }
  .lv-authcmp__cards dd { margin: 0; }
}

/* ── 開き戸を自動ドアに（/autodoor.html。AutoDoorFlowDemo ほか） ── */
.lv-sysblock > .lv-adflow, .lv-sysblock > .lv-adrucad { grid-column: 2; }
.lv-sysblock > .lv-adflow { grid-column: 1 / -1; }
.lv-adflow { display: grid; gap: 40px; }
.lv-adflow__lane .lv-h3 { margin-top: 10px; }
.lv-adflow__lane .lv-qrflow { margin-top: 16px; }
.lv-adflow__steps { grid-template-columns: repeat(4, 1fr); }
.lv-adrucad .lv-note { margin-top: 12px; }
.lv-adrucad p:last-child { margin-top: 24px; }
.lv-adauth__model { margin-top: 6px; font-family: var(--lv-mono); }
@media (max-width: 1023px) { .lv-adflow__steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .lv-adflow__steps { grid-template-columns: 1fr; } }

/* 強みのカードの数に合わせて列を変える（AuthStrengths.astro の lv-authstr--n{数}）。6つ・3つは3列 */
.lv-authstr--n6, .lv-authstr--n3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1023px) { .lv-authstr--n6, .lv-authstr--n3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .lv-authstr--n6, .lv-authstr--n3 { grid-template-columns: 1fr; } }

/* ── クラウドゲートウェイ GW-2（/gateway.html。GatewayBeforeAfter・GatewayDayDemo） ── */
.lv-sysblock > .lv-gwba { grid-column: 1 / -1; }
.lv-gwba { display: grid; grid-template-columns: 1fr auto 1fr; align-items: stretch; gap: 0; }
.lv-gwba__col { padding: 28px 28px 24px; background: var(--lv-surface); border: 1px solid var(--lv-line); }
.lv-gwba__col--after { border-top: 2px solid var(--lv-accent); }
.lv-gwba__col .lv-h3 { margin-top: 10px; }
.lv-gwba__col ul { margin: 16px 0 0; padding: 0; list-style: none; }
.lv-gwba__col li { position: relative; padding: 10px 0 10px 18px; border-top: 1px solid var(--lv-line); font-size: 14px; line-height: 1.8; }
.lv-gwba__col li::before { content: ""; position: absolute; left: 0; top: 23px; width: 8px; height: 1px; background: var(--lv-ink-muted); }
.lv-gwba__col--after li::before { background: var(--lv-accent); }
.lv-gwba__arrow { display: flex; align-items: center; justify-content: center; padding: 0 20px; }
.lv-gwba__arrow span { position: relative; padding: 8px 14px; background: var(--lv-accent); color: var(--lv-surface); font: 400 12px/1 var(--lv-mono); letter-spacing: .08em; white-space: nowrap; }
.lv-gwba__arrow span::after { content: ""; position: absolute; right: -8px; top: 50%; margin-top: -8px; border: 8px solid transparent; border-right: 0; border-left-color: var(--lv-accent); }
.lv-gwday__steps { grid-template-columns: repeat(3, 1fr); }
.lv-sysblock > .lv-gwapiex { margin-top: -24px; }
.lv-gwapiex .lv-textlink { font-size: 13px; }
.lv-gwone .lv-lead { max-width: 720px; }
.lv-gwone p + p { margin-top: 24px; }
@media (max-width: 1023px) { .lv-gwday__steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) {
  .lv-gwba { grid-template-columns: 1fr; }
  .lv-gwba__arrow { padding: 14px 0 22px; }
  .lv-gwba__arrow span::after { right: auto; left: 50%; top: auto; bottom: -8px; margin: 0 0 0 -8px; border: 8px solid transparent; border-bottom: 0; border-top-color: var(--lv-accent); }
  .lv-gwday__steps { grid-template-columns: 1fr; }
  .lv-sysblock > .lv-gwapiex { margin-top: 0; }
}

/* ── ネットワーク対応制御器（/controller.html。ControllerModesDemo・ControllerIoMap） ── */
.lv-sysblock > .lv-coamodes, .lv-sysblock > .lv-coaio, .lv-sysblock > .lv-coaio__note { grid-column: 1 / -1; }
.lv-coamodes { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.lv-coamodes__item { display: flex; flex-direction: column; padding: 0 22px 22px; background: var(--lv-surface); border: 1px solid var(--lv-line); }
.lv-coamodes__item .lv-h3 { margin-top: 8px; font-size: 20px; }
.lv-coamodes__item .lv-body { margin-top: 10px; font-size: 13px; line-height: 1.9; }
.lv-coamodes__item .lv-textlink { margin-top: auto; padding-top: 14px; font-size: 13px; }
.lv-coamodes__scene { margin: 10px 0 0; padding-left: 12px; border-left: 2px solid var(--lv-accent); font-size: 12px; line-height: 1.8; color: var(--lv-ink-sub); }
.lv-coamodes__fig { margin: 0 -22px 18px; padding: 18px 22px; background: var(--lv-bg-alt); }
.lv-coamodes__fig svg { display: block; width: 100%; max-width: 240px; height: auto; margin: 0 auto; overflow: visible; }
.lv-coamodes__room, .lv-coamodes__card { fill: var(--lv-surface); stroke: var(--lv-ink-muted); stroke-width: 1; }
.lv-coamodes__wall, .lv-coamodes__path { stroke: var(--lv-ink-muted); stroke-width: 1; fill: none; }
.lv-coamodes__path { stroke-dasharray: 3 4; }
.lv-coamodes__door { fill: var(--lv-ink-sub); }
.lv-coamodes__dot, .lv-coamodes__key { fill: var(--lv-accent); }
.lv-coamodes__person { fill: none; stroke: var(--lv-accent); stroke-width: 1.5; }
.lv-coamodes__on { fill: var(--lv-accent); opacity: .7; }
.lv-coamodes__off { fill: none; stroke: var(--lv-ink-muted); stroke-width: 1; }
.lv-coamodes__t { font: 400 10px/1 var(--lv-mono); fill: var(--lv-ink-sub); }
.lv-coamodes__t--s { font-size: 9px; }
/* 動き：インターロック（1枚目が閉まってから2枚目が開く）、アンチパスバック（入る → 出る）、二重・複数人（順に光る）、トグル */
.lv-coamodes__dot--walk { animation: lv-coa-walk 6s infinite; }
.lv-coamodes__door--a { animation: lv-coa-door-a 6s infinite; transform-box: fill-box; transform-origin: top; }
.lv-coamodes__door--b { animation: lv-coa-door-b 6s infinite; transform-box: fill-box; transform-origin: top; }
@keyframes lv-coa-walk { 0%, 10% { transform: translateX(0); } 35%, 55% { transform: translateX(50px); } 80%, 100% { transform: translateX(100px); } }
@keyframes lv-coa-door-a { 0%, 12% { transform: scaleY(1); } 18%, 30% { transform: scaleY(.15); } 36%, 100% { transform: scaleY(1); } }
@keyframes lv-coa-door-b { 0%, 52% { transform: scaleY(1); } 58%, 72% { transform: scaleY(.15); } 78%, 100% { transform: scaleY(1); } }
.lv-coamodes__dot--in { animation: lv-coa-in 6s infinite; }
.lv-coamodes__dot--out { animation: lv-coa-out 6s infinite; }
@keyframes lv-coa-in { 0% { transform: translateX(0); opacity: 1; } 40% { transform: translateX(120px); opacity: 1; } 45%, 100% { opacity: 0; } }
@keyframes lv-coa-out { 0%, 50% { transform: translateX(0); opacity: 0; } 55% { opacity: 1; } 95% { transform: translateX(-120px); opacity: 1; } 100% { opacity: 0; } }
.lv-coamodes__blink1 { animation: lv-coa-blink 4s infinite; }
.lv-coamodes__blink2 { animation: lv-coa-blink 4s infinite; animation-delay: 1s; }
@keyframes lv-coa-blink { 0%, 100% { opacity: .35; } 20%, 70% { opacity: 1; } }
.lv-coamodes__dot--toggle { animation: lv-coa-toggle 4s infinite; }
@keyframes lv-coa-toggle { 0%, 40% { transform: translateX(0); } 50%, 90% { transform: translateX(24px); } 100% { transform: translateX(0); } }
@media (prefers-reduced-motion: reduce) { .lv-coamodes__fig * { animation: none !important; } }

.lv-coaio { display: grid; grid-template-columns: 1fr minmax(180px, 220px) 1fr; align-items: center; gap: 0; }
.lv-coaio__side { padding: 24px; background: var(--lv-surface); border: 1px solid var(--lv-line); }
.lv-coaio__side ul { margin: 10px 0 0; padding: 0; list-style: none; }
.lv-coaio__side li { display: grid; gap: 2px; padding: 12px 0; border-top: 1px solid var(--lv-line); }
.lv-coaio__side strong { font: 500 15px/1.6 var(--lv-mincho); letter-spacing: .04em; }
.lv-coaio__side span { font-size: 12px; line-height: 1.8; color: var(--lv-ink-sub); }
.lv-coaio__side--out { border-top: 2px solid var(--lv-accent); }
.lv-coaio__core { position: relative; display: grid; gap: 4px; margin: 0 24px; padding: 28px 16px; text-align: center; background: var(--lv-ink); color: var(--lv-surface); }
.lv-coaio__core::before, .lv-coaio__core::after { content: ""; position: absolute; top: 50%; width: 24px; height: 1px; background: var(--lv-accent); }
.lv-coaio__core::before { left: -24px; }
.lv-coaio__core::after { right: -24px; }
.lv-coaio__core small { font: 400 10px/1.4 var(--lv-mono); letter-spacing: .12em; opacity: .7; }
.lv-coaio__core strong { font: 500 18px/1.5 var(--lv-mono); letter-spacing: .04em; }
.lv-coaio__core span { font-size: 12px; opacity: .8; }
.lv-sysblock > .lv-coaio__note { margin-top: -40px; }

.lv-coacmp { overflow-x: auto; }
.lv-coacmp table { width: 100%; border-collapse: collapse; font-size: 14px; }
.lv-coacmp th, .lv-coacmp td { padding: 14px 16px; border-bottom: 1px solid var(--lv-line); text-align: left; vertical-align: top; }
.lv-coacmp thead th { border-bottom: 1px solid var(--lv-ink); font-size: 16px; font-weight: 500; }
.lv-coacmp tbody th { width: 9em; font-weight: 400; color: var(--lv-ink-sub); }
.lv-coamanage { grid-template-columns: 1fr 1fr; }
.lv-coamanage .lv-note { margin-top: 10px; }

@media (max-width: 1023px) {
  .lv-coamodes { grid-template-columns: 1fr 1fr; }
  .lv-coaio { grid-template-columns: 1fr; }
  .lv-coaio__core { margin: 20px 0; }
  .lv-coaio__core::before, .lv-coaio__core::after { left: 50%; right: auto; width: 1px; height: 20px; }
  .lv-coaio__core::before { top: -20px; }
  .lv-coaio__core::after { top: auto; bottom: -20px; }
}
@media (max-width: 767px) {
  .lv-coamodes, .lv-coamanage { grid-template-columns: 1fr; }
  .lv-coacmp th, .lv-coacmp td { padding: 12px 10px; font-size: 13px; }
}

/* ── 相談の入口（ConsultDock.astro）：PC は右下のタブ、スマホは下部バーから開くパネル ── */
.lv-consult { position: fixed; right: 24px; bottom: 24px; z-index: 85; }
.lv-consult__tab {
  display: grid; gap: 6px; padding: 14px 20px 15px;
  background: var(--lv-ink); color: var(--lv-bg);
  border: 1px solid var(--lv-ink);
  box-shadow: 0 10px 30px rgba(31, 28, 24, .14);
  opacity: 0; transform: translateY(12px); pointer-events: none; visibility: hidden;
  transition: opacity .35s ease, transform .35s ease, visibility .35s, background-color .2s ease;
}
.lv-consult.is-visible .lv-consult__tab { opacity: 1; transform: none; pointer-events: auto; visibility: visible; }
.lv-consult__tab:hover, .lv-consult__tab:focus-visible { background: var(--lv-accent); border-color: var(--lv-accent); color: var(--lv-bg); }
.lv-consult__kicker { display: flex; align-items: center; gap: 10px; font: 400 10px/1 var(--lv-mono); letter-spacing: .24em; text-transform: uppercase; opacity: .8; }
.lv-consult__kicker .lv-open { color: inherit; letter-spacing: .08em; }
.lv-consult__label { font: 500 14px/1.4 var(--lv-mincho); letter-spacing: .1em; }
.lv-consult.is-open .lv-consult__tab { background: var(--lv-accent); border-color: var(--lv-accent); }

.lv-consult__panel {
  position: absolute; right: 0; bottom: calc(100% + 12px);
  width: 360px; max-height: calc(100vh - 140px); overflow-y: auto;
  padding: 20px 22px 14px;
  background: var(--lv-surface); color: var(--lv-ink);
  border: 1px solid var(--lv-line); border-top: 2px solid var(--lv-accent);
  box-shadow: 0 18px 50px rgba(31, 28, 24, .16);
}
.lv-consult__panel[hidden] { display: none; }
.lv-consult__head { display: flex; align-items: center; justify-content: space-between; }
.lv-consult__close { width: 32px; height: 32px; margin: -6px -8px 0 0; border: 0; background: none; color: var(--lv-ink-sub); font-size: 20px; line-height: 1; cursor: pointer; }
.lv-consult__close:hover { color: var(--lv-accent); }
.lv-consult__title { margin-top: 10px; font: 500 19px/1.6 var(--lv-mincho); letter-spacing: .06em; }
.lv-consult__lead { margin-top: 8px; font-size: 12px; line-height: 1.8; color: var(--lv-ink-sub); }
.lv-consult__list { margin: 14px 0 0; padding: 0; list-style: none; }
.lv-consult__list a {
  display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; align-items: center;
  padding: 13px 0; border-top: 1px solid var(--lv-line); color: var(--lv-ink);
}
.lv-consult__list strong { display: flex; align-items: center; gap: 10px; font: 500 15px/1.5 var(--lv-mincho); letter-spacing: .04em; }
.lv-consult__list small { grid-column: 1; font-size: 11px; line-height: 1.7; color: var(--lv-ink-sub); }
.lv-consult__list a > span { grid-column: 2; grid-row: 1 / span 2; color: var(--lv-accent); transition: transform .2s ease; }
.lv-consult__list a:hover strong, .lv-consult__list a:focus-visible strong { color: var(--lv-accent); }
.lv-consult__list a:hover > span { transform: translateX(4px); }
@media (prefers-reduced-motion: reduce) { .lv-consult__tab { transition: none; } }

/* スマホ：タブは出さず（下部バーの「無料で相談」から開く）、パネルを下部バーの上に全幅で出す */
@media (max-width: 767px) {
  .lv-consult { right: 0; bottom: 0; left: 0; z-index: 95; pointer-events: none; }
  .lv-consult__tab { display: none; }
  .lv-consult__panel {
    position: fixed; left: 0; right: 0; width: auto;
    bottom: calc(52px + env(safe-area-inset-bottom));
    max-height: calc(100vh - 140px); padding: 18px 20px 10px;
    border-left: 0; border-right: 0; pointer-events: auto;
  }
}

/* 迷ったら相談の一行（ConsultNudge.astro）。比較表の下などに置く */
.lv-nudge { margin-top: 32px; max-width: 820px; }
.lv-sysblock > .lv-nudge { margin-top: -32px; }
@media (max-width: 767px) { .lv-sysblock > .lv-nudge { margin-top: -16px; } }

/* ── 狭い画面でのはみ出し防止（2026-10-28 スマホ幅の全ページ確認で見つかった分） ──
 * グリッドの子要素は既定で min-width: auto のため、長い型番（RER-L1(-F/-M/-FM) など）や長い語があると列が画面より広がる。
 * 子要素を縮められるようにし、長い語は折り返す。 */
.lv-pgrid > *, .lv-pairs__grid > *, .lv-useroles__row > *, .lv-plist > *, .lv-contact > *, .lv-sysblock > * { min-width: 0; }
.lv-pcard__model, .lv-useroles__head .lv-h3, .lv-plist__side a { overflow-wrap: anywhere; }
.lv-pcard__meta > :first-child { min-width: 0; }
.lv-section__head { flex-wrap: wrap; }
.lv-section__head > :first-child { min-width: 0; }
@media (max-width: 1023px) {
  /* 2列のレイアウトで右の列（grid-column: 2）を指定した要素も、1列にしたときは全幅に戻す */
  .lv-sysblock.lv-sysblock > * { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  /* 長いボタンの文字が画面からはみ出さないように折り返す */
  .lv-btn { max-width: 100%; white-space: normal; line-height: 1.5; text-align: center; }
}

/* ── トップ：ヒーローの QRコードリーダーと顔認証機（同じ重さで並べる） ── */
.lv-hero__visual--duo { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; min-height: 0; background: var(--lv-bg); }
.lv-hero__duo { display: flex; flex-direction: column; justify-content: flex-end; padding: 40px 36px 44px; background: var(--lv-ph); color: inherit; transition: background-color .2s ease; }
.lv-hero__duo:hover { color: inherit; background: var(--lv-bg-alt); }
.lv-hero__duoimg { flex: 1; display: flex; align-items: center; justify-content: center; min-height: 0; margin-bottom: 28px; }
.lv-hero__duoimg img { width: auto; max-width: 100%; max-height: 380px; height: auto; mix-blend-mode: multiply; }
.lv-hero__duo .lv-label { font-size: 10px; letter-spacing: .3em; }
.lv-hero__duo:hover .lv-hero__cardmodel { color: var(--lv-accent); }
/* 顔認証機は QRコードリーダーと実物の大きさの比が合うように大きく（2026-10-28 ユーザー指示：1.5倍） */
.lv-hero__duo--face .lv-hero__duoimg img { max-height: 570px; }
/* 型番の下の説明は2行分の高さをとって、左右の文字の位置をそろえる */
.lv-hero__duo .lv-hero__cardname { min-height: 3.2em; }
@media (max-width: 1023px) {
  .lv-hero__visual--duo { min-height: 0; }
  .lv-hero__duoimg img { max-height: 280px; }
  .lv-hero__duo--face .lv-hero__duoimg img { max-height: 420px; }
}
@media (max-width: 767px) {
  .lv-hero__duo { padding: 24px 16px 28px; }
  .lv-hero__duoimg { margin-bottom: 16px; }
  .lv-hero__duoimg img { max-height: 180px; }
  .lv-hero__duo--face .lv-hero__duoimg img { max-height: 270px; }
  .lv-hero__duo .lv-hero__cardmodel { font-size: 17px; }
  .lv-hero__duo .lv-hero__cardname { font-size: 11px; }
}

/* ── トップ：QRコードと顔認証（写真つきの2枚を並べる） ── */
.lv-authduo__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 48px; }
.lv-authduo__item { display: flex; flex-direction: column; background: var(--lv-surface); border: 1px solid var(--lv-line); }
.lv-authduo__photo { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.lv-authduo__body { display: flex; flex-direction: column; flex: 1; padding: 28px 32px 32px; }
.lv-authduo__title { margin-top: 12px; font: 500 26px/1.5 var(--lv-mincho); letter-spacing: .06em; }
.lv-authduo__body .lv-body { margin-top: 12px; }
.lv-authduo__points { margin: 18px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--lv-line); }
.lv-authduo__points li { position: relative; padding: 10px 0 10px 20px; border-bottom: 1px solid var(--lv-line); font: 500 15px/1.6 var(--lv-mincho); letter-spacing: .04em; }
.lv-authduo__points li::before { content: ''; position: absolute; left: 0; top: 21px; width: 10px; height: 1px; background: var(--lv-accent); }
.lv-authduo__body .lv-note { margin-top: 12px; }
.lv-authduo__body .lv-btn { align-self: flex-start; margin-top: auto; }
/* ボタンは2枚とも下端にそろえる（上との間は最低24px） */
.lv-authduo__body > :nth-last-child(2) { margin-bottom: 24px; }
@media (max-width: 767px) {
  .lv-authduo__grid { grid-template-columns: 1fr; gap: 20px; margin-top: 32px; }
  .lv-authduo__body { padding: 22px 20px 24px; }
  .lv-authduo__title { font-size: 22px; }
}

/* 製品ページ：防火戸の注意（電磁錠・電気錠の仕様表のすぐ下） */
.lv-firedoor { margin-top: 14px; font-size: 12px; line-height: 1.8; color: var(--lv-ink-sub); }
