/* 株式会社タルムード HP v3
   見た目 = 現行本番HP(https://talmudo-hp.pages.dev/assets/css/site.css?v=13)から抽出したデザイントークン
   中身   = v2 (talmudo-hp-v2) のコピー/構造
   ※1 本番HPにある「登場人物の紹介」節とその一切のスタイルは v3 に持ち込まない(CEO指示 2026-09-02)
   ※2 本番の鮮やかグラデ(--grad)は「文字」に使うと AA(4.5:1)に届かない。
       装飾(3px罫・光・下線)は本番と同値の --grad をそのまま使う。
       文字は単色(--red-t / --orange)、塗りボタンは同系で濃い --grad-cta + 単色background-color。
       ※background-clip:text のグラデ文字は実描画画素の比が測れず a11y-audit が落ちるので使わない。 */

:root{
  /* ---- 配色トークン: 現行本番HPと同値 ---- */
  --white:#FCFCFA; --paper:#F6F5F1; --ink:#101218; --ink-2:#4B4E5A; --muted:#8B8D99;
  --night:#0B0D14; --night-2:#131624;
  --red:#E8462B; --orange:#F07A2E; --pink:#E82B6C;
  --grad:linear-gradient(100deg,var(--red) 0%,var(--orange) 48%,var(--pink) 100%);
  --rule:#1012181c; --rule-d:#FCFCFA22;
  /* ---- 明所で文字に使える濃い同系色 (AA用) ---- */
  --red-t:#C0311A; --red-d:#A82A17;
  --cta-bg:#A32918;
  --grad-cta:linear-gradient(100deg,#A32918 0%,#B0491A 48%,#9E1C46 100%);
  /* ---- 書体トークン: 現行本番HPと同値 ---- */
  --serif:"Zen Old Mincho",serif; --en:"Manrope",sans-serif; --body:"Noto Sans JP",sans-serif;
  /* ---- レイアウトトークン: 現行本番HPと同値 ---- */
  --mx:clamp(1.4rem,5vw,6rem); --maxw:1200px; --ease:cubic-bezier(.22,1,.36,1);
  /* ---- v2の図版(生成りの線画)を白地に置くための台紙 ---- */
  --plate:#F7F0DE;
}
*{box-sizing:border-box;margin:0;padding:0}
/* 横スクロール禁止。
   overflow-x:hidden は「横に動かせるが中身が見えない箱」を作る指定で、iOS Safari は
   その箱を指で横に振れてしまう(＝白地が出る)。overflow-x:clip は スクロール箱を
   そもそも作らない ので、指で横に振れない。clip 非対応の古い環境向けに hidden を先に置く。 */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden;overflow-x:clip}
[id]{scroll-margin-top:86px}
body{font-family:var(--body);background:var(--white);color:var(--ink);line-height:2.05;
  font-size:clamp(.95rem,.9rem + .2vw,1.02rem);letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;font-feature-settings:"palt" 1;
  overflow-x:hidden;overflow-x:clip;max-width:100%}
img{max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--red-t);outline-offset:3px}
::selection{background:rgba(232,70,43,.25)}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--mx);padding-right:var(--mx)}

.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--white);color:var(--ink);
  padding:.9rem 1.2rem;border-radius:3px;font-weight:700}
.skip:focus{left:1rem;top:1rem}

/* ---------- header (本番: fixed / 半透明 night / blur / 高さ64px) ---------- */
.hd{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(11,13,20,.9);backdrop-filter:blur(12px)}
.hd.scrolled{box-shadow:0 1px 0 #FCFCFA1a}
.hd-in{display:flex;align-items:center;justify-content:space-between;height:64px;gap:1rem}
.brand{display:inline-flex;align-items:center;gap:.6rem;color:var(--white);min-height:48px}
.brand img{width:28px;height:28px;display:block}
.brand b{font-family:var(--en);font-weight:800;font-size:1.05rem;letter-spacing:.3em}
.gnav{display:flex;gap:1.35rem;align-items:center;font-weight:500;font-size:.82rem;letter-spacing:.1em}
.gnav a{display:inline-flex;align-items:center;min-height:32px;color:#C7C9D2;position:relative;
  padding:.3rem 0;white-space:nowrap}
.gnav a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--grad);
  transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.gnav a:hover{color:var(--white)} .gnav a:hover::after{transform:scaleX(1);transform-origin:left}
.gnav a[aria-current="page"]{color:var(--white)} .gnav a[aria-current="page"]::after{transform:scaleX(1)}
.nav-cta{background-color:var(--cta-bg);background-image:var(--grad-cta);padding:.55rem 1.2rem;border-radius:3px;
  font-weight:700;white-space:nowrap;transition:opacity .25s,transform .25s var(--ease)}
.gnav a.nav-cta,.mnav a.nav-cta{color:var(--white)}
.nav-cta::after{content:none!important}
.nav-cta:hover{opacity:.92;transform:translateY(-1px)}

.menu-btn{display:none;align-items:center;gap:.55rem;min-height:48px;background:none;border:1px solid #FCFCFA45;
  color:var(--white);font-family:var(--en);font-weight:800;font-size:.72rem;letter-spacing:.18em;
  padding:.5rem 1rem;border-radius:3px;cursor:pointer}
.menu-btn .bars{display:block;width:16px;height:10px;position:relative}
.menu-btn .bars::before,.menu-btn .bars::after{content:"";position:absolute;left:0;width:100%;height:1.5px;background:var(--white)}
.menu-btn .bars span{position:absolute;left:0;width:100%;height:1.5px;background:var(--white);top:4.25px}
.menu-btn .bars::before{top:0}.menu-btn .bars::after{bottom:0}
.mnav{display:none;position:fixed;top:58px;left:0;right:0;z-index:59;background:rgba(11,13,20,.98);
  backdrop-filter:blur(12px);border-top:1px solid var(--rule-d)}
.mnav[data-open="true"]{display:block}
.mnav .wrap{display:flex;flex-direction:column;padding-top:.6rem;padding-bottom:1.4rem}
.mnav a{display:flex;align-items:center;min-height:52px;color:#C7C9D2;padding:.6rem 0;
  border-bottom:1px solid var(--rule-d);font-size:.92rem;letter-spacing:.08em}
.mnav a.nav-cta{border-bottom:0;color:var(--white);justify-content:center;margin-top:1rem;padding:.9rem 1.2rem}
@media(max-width:1080px){
  .hd-in{height:58px}
  .gnav{display:none}
  .menu-btn{display:inline-flex}
}
@media(min-width:1081px){.mnav{display:none!important}}

/* ---------- hero (本番: hero-dark / 中央寄せ / 92svh / 放射グラデ + 回路パターン) ---------- */
.hero-dark{position:relative;background:var(--night);color:var(--white);overflow:hidden;
  min-height:92svh;display:grid;place-items:center;text-align:center;padding:7rem 0 5rem}
.hero-dark::before{content:"";position:absolute;inset:-20%;
  background:radial-gradient(38% 42% at 30% 68%,rgba(232,70,43,.32),transparent 70%),
             radial-gradient(34% 38% at 72% 30%,rgba(240,122,46,.26),transparent 70%),
             radial-gradient(30% 34% at 62% 78%,rgba(232,43,108,.22),transparent 70%);
  filter:blur(10px)}
.hero-dark::after{content:"";position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='520' viewBox='0 0 520 520'%3E%3Cg fill='none' stroke='%23FCFCFA' stroke-opacity='.07'%3E%3Cpath d='M60 460 L200 320 L200 200 L320 80 M320 80 L460 80 M200 320 L340 320 L420 240'/%3E%3C/g%3E%3Cg fill='%23FCFCFA' fill-opacity='.12'%3E%3Ccircle cx='60' cy='460' r='4'/%3E%3Ccircle cx='200' cy='200' r='4'/%3E%3Ccircle cx='320' cy='80' r='4'/%3E%3Ccircle cx='460' cy='80' r='4'/%3E%3Ccircle cx='340' cy='320' r='4'/%3E%3Ccircle cx='420' cy='240' r='4'/%3E%3C/g%3E%3C/svg%3E")}
.hero-dark .in{position:relative;z-index:1;max-width:880px;padding:0 var(--mx)}
.hero-dark .mark{width:clamp(74px,11vw,104px);height:auto;margin:0 auto 2.2rem;display:block;
  filter:drop-shadow(0 8px 30px rgba(232,70,43,.35))}
.hero-dark .kick{font-family:var(--en);font-weight:700;font-size:clamp(.78rem,1.4vw,.95rem);
  letter-spacing:.5em;color:#C7C9D2;margin-bottom:1.4rem}
.hero-dark .wordmark{font-family:var(--en);font-weight:800;font-size:clamp(3rem,10vw,6.5rem);letter-spacing:.18em;
  line-height:1.1;margin-bottom:2rem;color:var(--orange)}
.hero-dark h1{font-family:var(--serif);font-weight:700;font-size:clamp(1.35rem,3.1vw,2.1rem);line-height:1.8;
  letter-spacing:.06em;margin-bottom:1.2rem;max-width:none}
.hero-dark h1 .accent{color:var(--orange)}
.hero-dark .sub{color:#B9BCC8;font-size:clamp(.92rem,1.3vw,1.02rem);line-height:2.1;max-width:44ch;margin:0 auto 2.8rem}
.hero-dark .hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* ---------- ボタン (本番: radius 3px / グラデ塗り / ゴースト1px) ---------- */
.cta,.btn{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:52px;
  font-family:var(--body);font-weight:700;font-size:.98rem;letter-spacing:.1em;color:var(--white);
  background-color:var(--cta-bg);background-image:var(--grad-cta);
  padding:1.05rem 2.5rem;border:0;border-radius:3px;cursor:pointer;
  box-shadow:0 16px 38px -18px rgba(163,41,24,.6);transition:opacity .25s,transform .3s var(--ease)}
.cta:hover,.btn:hover{opacity:.92;transform:translateY(-2px)}
.cta .ar,.btn .ar{transition:transform .3s var(--ease)}
.cta:hover .ar,.btn:hover .ar{transform:translateX(5px)}
.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:52px;
  font-weight:700;font-size:.92rem;letter-spacing:.1em;color:var(--white);border:1px solid #FCFCFA4d;
  padding:1rem 2rem;border-radius:3px;transition:border-color .25s,background .25s}
.btn-ghost:hover{border-color:var(--white);background:#FCFCFA0d}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.cta-hint{display:block;width:100%;font-size:.84rem;color:var(--ink-2);margin-top:.2rem}
.sec-ink .cta-hint,.band .cta-hint{color:#B9BCC8}

/* ---------- section の型 (本番: padding clamp(4.5rem,9vw,8rem) / kicker .42em / 明朝見出し) ---------- */
.sec{padding:clamp(4.5rem,9vw,8rem) 0;position:relative}
.sec-tint{background:var(--paper)}
.sec-ink{background:var(--night);color:var(--white)}
.eyebrow{font-family:var(--en);font-weight:700;font-size:.78rem;letter-spacing:.42em;color:var(--red-t);
  display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}
.eyebrow .n{font-weight:800;color:var(--ink-2);letter-spacing:.2em}
.sec-ink .eyebrow,.band .eyebrow{color:#F5A96B}
.sec-ink .eyebrow .n,.band .eyebrow .n{color:#B9BCC8}
.eyebrow .r{width:3rem;height:2px;background:var(--grad);flex:none}
h1{font-family:var(--serif);font-weight:700;font-size:clamp(2.3rem,6vw,4.2rem);line-height:1.45;
  letter-spacing:.02em;margin-bottom:1.8rem;max-width:24ch;text-wrap:balance}
h2{font-family:var(--serif);font-weight:700;font-size:clamp(1.7rem,4vw,2.7rem);line-height:1.5;
  letter-spacing:.03em;margin-bottom:1.2rem;text-wrap:balance}
h3{font-family:var(--serif);font-weight:700;letter-spacing:.04em}
.wb{display:inline-block}   /* 語・文節の途中で折らない(SPの不自然な改行対策) */
.nb{white-space:nowrap}     /* 人名・会社名・郵便番号・メール等、途中で折ってはいけない語 */
.lead{color:var(--ink-2);max-width:64ch;line-height:2.15;margin-bottom:1.6rem}
.sec-ink .lead{color:#B9BCC8}

/* ---------- page-head (本番: hero-light) ---------- */
.page-head{padding:clamp(8rem,16vh,11rem) 0 clamp(3rem,7vw,5rem);background:var(--white)}
.page-head .eyebrow{display:inline-flex}
.page-head .lead{margin-bottom:0}

/* ---------- 図版プレート (v2の線画を本番の白地に馴染ませる枠) ---------- */
.fig{position:relative;border:1px solid var(--rule);border-radius:4px;overflow:hidden;background:var(--plate);
  box-shadow:0 24px 60px -40px rgba(16,18,24,.45)}
.fig img{display:block;width:100%;height:auto}
.fig figcaption{background:var(--white);border-top:1px solid var(--rule);padding:.9rem 1.1rem;
  font-size:.82rem;line-height:1.9;color:var(--ink-2)}
.sec-ink .fig{border-color:var(--rule-d)}
.sec-ink .fig figcaption{background:var(--night-2);border-top-color:var(--rule-d);color:#B9BCC8}
.imgtag{position:absolute;top:.7rem;left:.7rem;font-family:var(--en);font-weight:800;font-size:.68rem;
  letter-spacing:.2em;color:var(--white);background:var(--night);padding:.32rem .75rem;border-radius:3px}

/* KVバンド: 暗いヒーローから白地へ渡す帯。図版が両方に跨る */
.kvband{padding:0 0 clamp(3rem,7vw,5rem);
  background:linear-gradient(to bottom,var(--night) 0,var(--night) 42%,var(--white) 42%,var(--white) 100%)}
.kvband .fig{max-width:980px;margin:0 auto}

/* ---------- pillars (本番: 3カラム / 上辺3pxグラデ / hover -4px) ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin:2.8rem 0}
.pillar{border:1px solid var(--rule);border-radius:4px;padding:2.2rem 1.9rem;background:#fff;position:relative;
  overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s}
.pillar::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad)}
.pillar:hover{transform:translateY(-4px);box-shadow:0 20px 44px -28px rgba(16,18,24,.35)}
.pillar .qn{display:block;margin-bottom:.6rem;font-family:var(--en);font-weight:800;font-size:.86rem;
  letter-spacing:.3em;color:var(--red-d)}
.pillar h3{font-size:1.2rem;margin-bottom:0;line-height:1.75}
.pillar p{font-size:.92rem;color:var(--ink-2);line-height:2;margin-top:.7rem}
@media(max-width:760px){.pillars{grid-template-columns:1fr}}

/* ---------- declare (本番: cta-band の暗帯を宣言文に転用) ---------- */
.declare{position:relative;overflow:hidden;background:var(--night);color:var(--white);border-radius:4px;
  padding:clamp(2.2rem,5vw,3.4rem)}
.declare::before{content:"";position:absolute;inset:-40%;
  background:radial-gradient(40% 60% at 20% 120%,rgba(232,70,43,.34),transparent 70%)}
.declare>*{position:relative;z-index:1}
.declare h3{font-size:clamp(1.15rem,2.4vw,1.6rem);line-height:1.8;margin-bottom:1rem;color:var(--white)}
.declare p{color:#B9BCC8;line-height:2.1;max-width:72ch;font-size:.95rem}

/* ---------- 事業内容: 本番の .svc 行(左=名前 / 右=説明 / 行間は1px罫) ---------- */
.svc-list{margin-top:2.6rem}
.svc{display:grid;grid-template-columns:minmax(0,.42fr) 1fr;gap:clamp(1.2rem,3vw,3.4rem);
  padding:2.8rem 0;border-top:1px solid var(--rule);align-items:start}
.svc:last-of-type{border-bottom:1px solid var(--rule)}
.svc .name{font-family:var(--serif);font-weight:700;font-size:clamp(1.3rem,2.4vw,1.75rem);letter-spacing:.04em;
  margin:0 0 1.3rem;line-height:1.6}
.svc .name em{font-style:normal;display:block;font-family:var(--en);font-weight:800;font-size:.7rem;
  letter-spacing:.3em;margin-top:.55rem;color:var(--red-d)}
.svc .desc p{font-size:.97rem;color:var(--ink-2);line-height:2.1;max-width:60ch}
.svc .go{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:50px;margin-top:1.5rem;
  font-family:var(--en);font-weight:800;font-size:.84rem;letter-spacing:.14em;color:var(--red-t);
  border:1px solid #C0311A66;padding:.8rem 1.6rem;border-radius:3px;transition:background .25s,color .25s}
.svc .go:hover{background:var(--red-t);color:#fff}
.svc .go .ar{transition:transform .3s var(--ease)}.svc .go:hover .ar{transform:translateX(4px)}
@media(max-width:680px){.svc{grid-template-columns:1fr;gap:1.4rem;padding:2.2rem 0}.svc .name{margin-bottom:1rem}}

/* ---------- split (導入支援 / コンサル) ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,4vw,4rem);align-items:start}
.split.rev>*:first-child{order:2}.split.rev>*:last-child{order:1}
@media(max-width:820px){.split{grid-template-columns:1fr}.split.rev>*:first-child,.split.rev>*:last-child{order:0}}

.steps{display:flex;flex-direction:column;gap:1rem}
.step{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;border:1px solid var(--rule);border-radius:4px;
  background:#fff;padding:1.6rem;position:relative;overflow:hidden}
.step::before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px;background:var(--grad)}
.step .no{font-family:var(--en);font-weight:800;font-size:1.5rem;letter-spacing:.06em;line-height:1.5;
  color:var(--red-d)}
.step h3{font-size:1.08rem;margin-bottom:.4rem}
.step p{font-size:.9rem;color:var(--ink-2);line-height:2}

.price-line{font-family:var(--serif);font-weight:700;font-size:clamp(1.2rem,2.6vw,1.6rem);letter-spacing:.04em;
  margin:1.6rem 0 1.8rem;color:var(--white)}
.price-line small{font-family:var(--body);font-weight:400;font-size:.8rem;letter-spacing:.04em;color:#B9BCC8;
  display:inline-block;margin-left:.4rem}
.sec-ink h2,.sec-ink h3{color:var(--white)}

/* ---------- FAQ ---------- */
.faq{margin-top:2.4rem;border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;padding:1.5rem 2.8rem 1.5rem 0;position:relative;
  font-weight:700;letter-spacing:.03em;line-height:1.9}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:.6rem;top:50%;width:10px;height:10px;
  border-right:2px solid var(--red-t);border-bottom:2px solid var(--red-t);
  transform:translateY(-70%) rotate(45deg);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:translateY(-30%) rotate(225deg)}
.faq summary:hover{color:var(--red-t)}
.faq .a{padding:0 2.8rem 1.6rem 0;color:var(--ink-2);font-size:.94rem;line-height:2.15;max-width:78ch}

/* ---------- 文書ページ (本番: .table / .contact-box) ---------- */
.doc{padding:0 0 clamp(4.5rem,9vw,8rem)}
.prose h2{font-size:clamp(1.15rem,2.2vw,1.45rem);margin:2.6rem 0 .8rem}
.prose h2:first-child{margin-top:0}
.prose p{color:var(--ink-2);line-height:2.15;max-width:76ch;margin-bottom:1rem}
.prose ul{margin:0 0 1.2rem 1.3rem;color:var(--ink-2);line-height:2.15;max-width:76ch}
.prose li{margin-bottom:.35rem}
.prose .hero-actions{margin:1.8rem 0 .6rem}
.info-table{width:100%;border-collapse:collapse;max-width:860px;margin-bottom:1.6rem}
.info-table th,.info-table td{border-top:1px solid var(--rule);padding:1.15rem .6rem;text-align:left;
  vertical-align:top;font-size:.96rem;line-height:2}
.info-table tr:last-child th,.info-table tr:last-child td{border-bottom:1px solid var(--rule)}
.info-table th{font-weight:700;letter-spacing:.08em;color:var(--ink-2);white-space:nowrap;width:12em}
@media(max-width:600px){.info-table{table-layout:fixed}.info-table th{width:11.5em;white-space:normal}}
.tbd{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.08em;color:var(--red-t);
  border:1px solid #C0311A66;border-radius:999px;padding:.15rem .8rem;line-height:1.9}
.note{font-size:.84rem;color:var(--ink-2);line-height:2;max-width:76ch}
.contact-box{border:1px solid var(--rule);border-radius:4px;padding:clamp(2rem,5vw,3.4rem);max-width:860px;
  background:#fff;position:relative;overflow:hidden}
.contact-box::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad)}

/* ---------- CONTACT 帯 (本番: cta-band) ---------- */
.band{background:var(--night);color:var(--white);text-align:center;position:relative;overflow:hidden}
.band::before{content:"";position:absolute;inset:-30%;
  background:radial-gradient(40% 50% at 50% 120%,rgba(232,70,43,.4),transparent 70%)}
.band .wrap{position:relative;z-index:1}
.band h2{color:var(--white)}
.band .lead{color:#B9BCC8;max-width:52ch;margin:0 auto 2.4rem}
.band .eyebrow{justify-content:center}
.band .eyebrow .r{display:none}
.band .hero-actions{justify-content:center}

/* ---------- footer (本番: night 地 / ロゴ反転 / 3.2rem 2.8rem) ---------- */
.ft{background:var(--night);color:#B9BCC8;padding:3.2rem 0 2.8rem;border-top:1px solid #FCFCFA14}
.ft-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.6rem 2rem;align-items:flex-start}
.ft-brand img{width:190px;height:auto;display:block;filter:brightness(0) invert(1);opacity:.92}
.ft-brand p{margin-top:1.1rem;font-size:.84rem;line-height:2;color:#B9BCC8;max-width:42ch}
.ft-nav{display:flex;flex-direction:column;font-size:.85rem;letter-spacing:.08em}
.ft-nav a{display:inline-flex;align-items:center;min-height:48px;color:#C7C9D2;padding:.2rem 0}
.ft-nav a:hover{color:var(--white)}
.ft-copy{margin-top:2rem;font-size:.78rem;color:#B9BCC8}

/* ---------- reveal (本番と同じ 20px / .8s) ---------- */
.js .reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal.d1{transition-delay:.1s}.js .reveal.d2{transition-delay:.2s}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .reveal{opacity:1;transform:none;transition:none}
  *{animation:none!important;transition:none!important}
}


/* =====================================================================
   v5 追加コンポーネント (v3のトークンのみを使う。新しい色・書体は足さない)
   ===================================================================== */

/* 見出し直後の大きめリード (ABOUT / STRENGTHS の宣言文) */
.lead-lg{font-family:var(--serif);font-weight:700;color:var(--ink);
  font-size:clamp(1.05rem,2.1vw,1.35rem);line-height:1.95;max-width:52ch;margin-bottom:1.4rem}
.sec-ink .lead-lg,.band .lead-lg{color:var(--white)}
/* PCでだけ効かせる改行 (SPでは詰めない) */
.brpc{display:none}
@media(min-width:761px){.brpc{display:inline}}

/* 節の下の「もっと見る」導線 */
.sec-more{margin-top:2.4rem}
.go{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:50px;
  font-family:var(--en);font-weight:800;font-size:.84rem;letter-spacing:.14em;color:var(--red-t);
  border:1px solid #C0311A66;padding:.8rem 1.6rem;border-radius:3px;transition:background .25s,color .25s}
.go:hover{background:var(--red-t);color:#fff}
.go .ar{transition:transform .3s var(--ease)}.go:hover .ar{transform:translateX(4px)}
.sec-ink .go,.band .go{color:#F5A96B;border-color:#F5A96B66}
.sec-ink .go:hover,.band .go:hover{background:#F5A96B;color:var(--night)}

/* ABOUT: 存在意義 / 考え方 / 目指すもの の3枚 */
.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.8rem}
.about-card{border:1px solid var(--rule);border-radius:4px;background:#fff;padding:2.2rem 1.9rem;
  position:relative;overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s}
.about-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad)}
.about-card:hover{transform:translateY(-4px);box-shadow:0 20px 44px -28px rgba(16,18,24,.35)}
.about-card h3{font-size:1.15rem;margin-bottom:.8rem;line-height:1.7}
.about-card p{font-size:.92rem;color:var(--ink-2);line-height:2.05}
@media(max-width:860px){.about-grid{grid-template-columns:1fr}}

/* BUSINESS: OWNED / AI SOLUTIONS の2分類 */
.biz-group{margin-top:3.2rem}
.biz-label{display:flex;align-items:center;flex-wrap:wrap;gap:.9rem;margin-bottom:1.6rem;
  font-family:var(--serif);font-weight:700;font-size:clamp(1.05rem,2.1vw,1.3rem);letter-spacing:.04em}
.biz-label .tag{font-family:var(--en);font-weight:800;font-size:.68rem;letter-spacing:.26em;
  color:var(--white);background-color:var(--cta-bg);background-image:var(--grad-cta);
  padding:.4rem .9rem;border-radius:3px;white-space:nowrap}
.biz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.biz{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:4px;background:#fff;
  padding:2rem 1.8rem;transition:transform .3s var(--ease),box-shadow .3s}
.biz:hover{transform:translateY(-4px);box-shadow:0 20px 44px -28px rgba(16,18,24,.35)}
.biz h3{font-size:1.2rem;margin-bottom:.9rem;line-height:1.7}
.biz p{font-size:.92rem;color:var(--ink-2);line-height:2.05;flex:1}
.biz .go{margin-top:1.4rem;align-self:flex-start}
@media(max-width:980px){.biz-grid{grid-template-columns:1fr}}

/* CASES: 実アプリ画面のギャラリー */
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:2.8rem}
.case{border:1px solid var(--rule);border-radius:4px;overflow:hidden;background:var(--night-2);
  box-shadow:0 24px 60px -40px rgba(16,18,24,.5);display:flex;flex-direction:column}
.case img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top center}
.case figcaption{background:var(--white);border-top:1px solid var(--rule);padding:1.1rem 1.2rem;
  font-size:.86rem;line-height:1.95;color:var(--ink-2);flex:1}
.case figcaption b{display:block;font-family:var(--en);font-weight:800;font-size:.7rem;letter-spacing:.24em;
  color:var(--red-d);margin-bottom:.5rem}
.sec-tint .case figcaption{background:#fff}
@media(max-width:820px){.case-grid{grid-template-columns:1fr;gap:1.2rem}}

/* MESSAGE: 代表メッセージ */
.msg p{color:#B9BCC8;line-height:2.15;font-size:.96rem;margin-bottom:1.3rem;max-width:60ch}
.msg .sign{margin-top:2.2rem;font-size:.86rem;color:#B9BCC8;line-height:2}
.msg .sign b{display:block;font-family:var(--serif);font-weight:700;font-size:1.25rem;letter-spacing:.1em;
  color:var(--white);margin-top:.4rem}

/* NEWS */
.news-list{list-style:none;margin:2.4rem 0 0;padding:0;border-top:1px solid var(--rule)}
.news-list li{display:grid;grid-template-columns:auto auto 1fr;gap:.9rem 1.4rem;align-items:baseline;
  padding:1.5rem 0;border-bottom:1px solid var(--rule)}
.news-list time{font-family:var(--en);font-weight:800;font-size:.86rem;letter-spacing:.1em;color:var(--ink-2);
  white-space:nowrap}
.news-list .cat{font-family:var(--en);font-weight:800;font-size:.66rem;letter-spacing:.2em;color:var(--red-d);
  border:1px solid #C0311A55;border-radius:999px;padding:.25rem .85rem;white-space:nowrap;line-height:1.8}
.news-list p{font-size:.95rem;line-height:2;color:var(--ink);margin:0}
.news-full{margin-top:0}
.news-full .t{font-weight:700}
.news-full .b{font-size:.9rem;color:var(--ink-2);margin-top:.4rem;max-width:72ch}
@media(max-width:700px){
  .news-list li{grid-template-columns:auto 1fr;padding:1.3rem 0}
  .news-list p,.news-full div{grid-column:1 / -1}
}

/* CONTACT フォーム */
.contact-topics{margin:0 0 2.4rem}
.contact-topics .pillar{padding:1.8rem 1.6rem}
.contact-topics .pillar h3{font-size:1.05rem}
.cform{display:grid;gap:1.3rem;margin:1.8rem 0 .6rem;max-width:100%}
.fld{display:grid;gap:.5rem;min-width:0}
.fld .lb{font-size:.86rem;font-weight:700;letter-spacing:.06em;color:var(--ink-2)}
.fld .lb em{font-style:normal;font-size:.72rem;font-weight:700;letter-spacing:.1em;color:var(--muted);
  border:1px solid var(--rule);border-radius:999px;padding:.1rem .6rem;margin-left:.4rem}
.fld .lb em.req{color:var(--red-t);border-color:#C0311A66}
.fin{width:100%;max-width:100%;box-sizing:border-box;font-family:inherit;font-size:1rem;line-height:1.8;
  color:var(--ink);background:var(--white);border:1px solid #1012182e;border-radius:3px;padding:.85rem 1rem;
  transition:border-color .2s,box-shadow .2s}
.fin:focus{outline:none;border-color:var(--red-t);box-shadow:0 0 0 3px rgba(192,49,26,.12)}
textarea.fin{resize:vertical;min-height:9rem}
select.fin{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:2.6rem;
  background-image:linear-gradient(45deg,transparent 50%,var(--red-t) 50%),linear-gradient(135deg,var(--red-t) 50%,transparent 50%);
  background-position:calc(100% - 1.15rem) 1.35rem,calc(100% - .8rem) 1.35rem;
  background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.fld-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}
.cf-note{font-size:.88rem;line-height:1.9;color:var(--ink-2);margin:0}
.cf-note.err{color:var(--red-t);font-weight:700}
.cf-done{padding:1.6rem 0;font-size:1.02rem;line-height:2}
.cf-done b{font-family:var(--serif);font-size:1.2rem;letter-spacing:.04em;display:block;margin-bottom:.5rem}
.contact-box .note a{color:var(--red-t);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.prose a:not(.go):not(.cta){color:var(--red-t);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.info-table a{color:var(--red-t);font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* フッター: リンク列が2本になった */
.ft-top{gap:2rem 3rem}
@media(max-width:700px){.ft-nav{width:100%}}

/* ---------- FV 背景アニメーション (株主指示 2026-09-02 / 2026-09-03 強化) ------
   株主の iPhone で「動いていない」と見えた。WebKit(iPhone14相当)で実測した結果:
     ・prefers-reduced-motion: reduce → 6フレーム全部 差分 0px(完全停止)。iOS の
       「動きを減らす」が ON なら literally 静止画。共通ブロックの
       *{animation:none!important} が FV ごと殺していた。
     ・no-preference → 動いてはいるが 6フレームの最大差分が全画素の 0.86%(PC) /
       0.81%(SP) しかなく、実質「止まって見える」振れ幅だった。
   よって (1)振れ幅を上げる (2)reduce では止めずに「減らす」 の 2点で作り直す。
   使うのは transform / opacity だけ(filter・mix-blend-mode・backdrop-filter は
   足さない = WebKit差を持ち込まない)。要素は .hero-fx の中に 9枚
   (aurora 1 / node 4 / trace 1 + 帯 3)。公開中の暗く上品な地色は変えない。
   ※ .hero-dark は /ai-solutions/ でも使うので .has-fx が付いた面だけ動かす。 */
.hero-dark.has-fx::before{animation:fvAurora 13s ease-in-out infinite;will-change:transform,opacity}
.hero-fx{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.hero-fx>span{position:absolute;inset:-12px;display:block}
/* 回路タイルも一緒に漂わせる(ノードの光と 1px もズレないよう inset を揃える) */
.hero-dark.has-fx::after{inset:-12px;animation:fvDrift 20s ease-in-out infinite}

/* 背景の揺らぎ: ::before(既存の放射グラデ)の明暗を 13秒で振り、その上を
   暖色の淡い光だまり 1枚が 11秒かけて横切る。地色は明るくしない(alpha .18)。 */
.hero-fx .fx-aurora{inset:-16%;opacity:.18;will-change:transform,opacity;
  background:radial-gradient(44% 38% at 50% 52%,rgba(240,122,46,.18),transparent 68%);
  animation:fvPool 11s ease-in-out infinite}

/* 回路ノードの明滅: 1タイル(520px)あたり 13点を 4枚に分けて位相をずらす。
   点の座標はすべて ::after の回路線の上(頂点7 + 各セグメントの中点6)。 */
.hero-fx .fx-node{background-repeat:repeat;background-size:520px 520px;opacity:.08}
.hero-fx .fx-node.n1{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='520' viewBox='0 0 520 520'%3E%3Cdefs%3E%3CradialGradient id='g'%3E%3Cstop offset='0' stop-color='%23FFDDBC' stop-opacity='.62'/%3E%3Cstop offset='.38' stop-color='%23F5A96B' stop-opacity='.26'/%3E%3Cstop offset='1' stop-color='%23F07A2E' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cg fill='url(%23g)'%3E%3Ccircle cx='60' cy='460' r='13'/%3E%3Ccircle cx='200' cy='200' r='13'/%3E%3Ccircle cx='460' cy='80' r='13'/%3E%3Ccircle cx='270' cy='320' r='13'/%3E%3C/g%3E%3Cg fill='%23FFE7D2' fill-opacity='.9'%3E%3Ccircle cx='60' cy='460' r='2.2'/%3E%3Ccircle cx='200' cy='200' r='2.2'/%3E%3Ccircle cx='460' cy='80' r='2.2'/%3E%3Ccircle cx='270' cy='320' r='2.2'/%3E%3C/g%3E%3C/svg%3E");animation:fvNode 2.4s ease-in-out 0s infinite,fvDrift 20s ease-in-out infinite}
.hero-fx .fx-node.n2{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='520' viewBox='0 0 520 520'%3E%3Cdefs%3E%3CradialGradient id='g'%3E%3Cstop offset='0' stop-color='%23FFDDBC' stop-opacity='.62'/%3E%3Cstop offset='.38' stop-color='%23F5A96B' stop-opacity='.26'/%3E%3Cstop offset='1' stop-color='%23F07A2E' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cg fill='url(%23g)'%3E%3Ccircle cx='320' cy='80' r='13'/%3E%3Ccircle cx='340' cy='320' r='13'/%3E%3Ccircle cx='130' cy='390' r='13'/%3E%3C/g%3E%3Cg fill='%23FFE7D2' fill-opacity='.9'%3E%3Ccircle cx='320' cy='80' r='2.2'/%3E%3Ccircle cx='340' cy='320' r='2.2'/%3E%3Ccircle cx='130' cy='390' r='2.2'/%3E%3C/g%3E%3C/svg%3E");animation:fvNode 2.9s ease-in-out -1.1s infinite,fvDrift 20s ease-in-out infinite}
.hero-fx .fx-node.n3{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='520' viewBox='0 0 520 520'%3E%3Cdefs%3E%3CradialGradient id='g'%3E%3Cstop offset='0' stop-color='%23FFDDBC' stop-opacity='.62'/%3E%3Cstop offset='.38' stop-color='%23F5A96B' stop-opacity='.26'/%3E%3Cstop offset='1' stop-color='%23F07A2E' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cg fill='url(%23g)'%3E%3Ccircle cx='200' cy='320' r='13'/%3E%3Ccircle cx='420' cy='240' r='13'/%3E%3Ccircle cx='260' cy='140' r='13'/%3E%3C/g%3E%3Cg fill='%23FFE7D2' fill-opacity='.9'%3E%3Ccircle cx='200' cy='320' r='2.2'/%3E%3Ccircle cx='420' cy='240' r='2.2'/%3E%3Ccircle cx='260' cy='140' r='2.2'/%3E%3C/g%3E%3C/svg%3E");animation:fvNode 3.4s ease-in-out -2.0s infinite,fvDrift 20s ease-in-out infinite}
.hero-fx .fx-node.n4{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='520' viewBox='0 0 520 520'%3E%3Cdefs%3E%3CradialGradient id='g'%3E%3Cstop offset='0' stop-color='%23FFDDBC' stop-opacity='.62'/%3E%3Cstop offset='.38' stop-color='%23F5A96B' stop-opacity='.26'/%3E%3Cstop offset='1' stop-color='%23F07A2E' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cg fill='url(%23g)'%3E%3Ccircle cx='200' cy='260' r='13'/%3E%3Ccircle cx='390' cy='80' r='13'/%3E%3Ccircle cx='380' cy='280' r='13'/%3E%3C/g%3E%3Cg fill='%23FFE7D2' fill-opacity='.9'%3E%3Ccircle cx='200' cy='260' r='2.2'/%3E%3Ccircle cx='390' cy='80' r='2.2'/%3E%3Ccircle cx='380' cy='280' r='2.2'/%3E%3C/g%3E%3C/svg%3E");animation:fvNode 3.9s ease-in-out -2.7s infinite,fvDrift 20s ease-in-out infinite}

/* 回路線を走る光: マスク(=回路線そのもの)は動かさず、中の帯 3本が
   5秒周期・1.67秒ずつずれて左下→右上(回路の向き)へ抜ける。常時 2〜3本が画面内。 */
.hero-fx .fx-trace{overflow:hidden;animation:fvDrift 20s ease-in-out infinite;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='520' viewBox='0 0 520 520'%3E %3Cg fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E %3Cpath d='M60 460 L200 320 L200 200 L320 80 M320 80 L460 80 M200 320 L340 320 L420 240'/%3E%3C/g%3E %3Cg fill='%23fff'%3E%3Ccircle cx='60' cy='460' r='4.5'/%3E%3Ccircle cx='200' cy='200' r='4.5'/%3E%3Ccircle cx='320' cy='80' r='4.5'/%3E%3Ccircle cx='460' cy='80' r='4.5'/%3E%3Ccircle cx='340' cy='320' r='4.5'/%3E%3Ccircle cx='420' cy='240' r='4.5'/%3E%3C/g%3E %3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='520' viewBox='0 0 520 520'%3E %3Cg fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E %3Cpath d='M60 460 L200 320 L200 200 L320 80 M320 80 L460 80 M200 320 L340 320 L420 240'/%3E%3C/g%3E %3Cg fill='%23fff'%3E%3Ccircle cx='60' cy='460' r='4.5'/%3E%3Ccircle cx='200' cy='200' r='4.5'/%3E%3Ccircle cx='320' cy='80' r='4.5'/%3E%3Ccircle cx='460' cy='80' r='4.5'/%3E%3Ccircle cx='340' cy='320' r='4.5'/%3E%3Ccircle cx='420' cy='240' r='4.5'/%3E%3C/g%3E %3C/svg%3E");
  -webkit-mask-size:520px 520px;mask-size:520px 520px;
  -webkit-mask-repeat:repeat;mask-repeat:repeat}
.hero-fx .fx-trace i{position:absolute;top:-25%;left:0;width:18%;height:150%;
  background:linear-gradient(102deg,rgba(240,122,46,0) 0%,rgba(245,169,107,.26) 34%,
    rgba(255,224,196,.52) 54%,rgba(232,70,43,.24) 72%,rgba(240,122,46,0) 100%);
  transform:translate3d(-110%,14%,0);will-change:transform;
  animation:fvTrace 5s linear infinite}
.hero-fx .fx-trace i.b{animation-delay:-1.67s}
.hero-fx .fx-trace i.c{animation-delay:-3.34s}

@keyframes fvAurora{
  0%,100%{transform:translate3d(0,0,0) scale(1);opacity:1}
  34%{transform:translate3d(2.2%,-1.8%,0) scale(1.07);opacity:.76}
  67%{transform:translate3d(-2%,1.6%,0) scale(1.03);opacity:.9}}
@keyframes fvPool{
  0%,100%{transform:translate3d(-14%,4%,0);opacity:.16}
  50%{transform:translate3d(14%,-4%,0);opacity:.85}}
@keyframes fvNode{0%,100%{opacity:.08}45%{opacity:.52}}
@keyframes fvTrace{
  0%{transform:translate3d(-110%,14%,0);opacity:0}
  8%{opacity:1}
  90%{opacity:1}
  100%{transform:translate3d(560%,-14%,0);opacity:0}}
@keyframes fvDrift{
  0%,100%{transform:translate3d(0,0,0)}
  50%{transform:translate3d(-7px,5px,0)}}

/* 「動きを減らす」= 全停止ではない。2026-09-04 株主「モバイルだとエフェクトが無い」で作り直した。
   実測(WebKit iPhone14相当 / 本番 site.eb50ed9e91.css):
     ・no-preference は SP でも動いている(4.5秒窓の対 t0.5s 最大差分 8.12%/390・8.73%/430。
       PC 1440 は 10.39% = SP と PC は既に同等)。つまり「モバイルに無い」のは幅の問題ではない。
     ・reduce は前版(24s/26s/9s・振れ幅小)だと 4.5秒窓の隣接フレーム差が 0.04〜0.15%、
       26秒(=一番長い周期の1周)まで延ばしても対 t0.5s 最大 2.2〜3.0% しか変わらない。
       目には静止画。株主の iPhone で「視差効果を減らす」が ON ならこの面しか出ないので、
       PC(設定 OFF)では動き・iPhone(設定 ON)では止まって見える、という食い違いになる。
   直し方: 動き(translate / scale)は reduce では一切足さず、明るさの呼吸だけを
   4層に持たせる。周期を 8 / 10 / 11 / 12秒とわざとずらすので、合成された見え方は
   どの瞬間も止まらない。走る光(fvTrace)は「移動」なので reduce では出さない。
   ※ 上の共通ブロックの *{animation:none!important} を、この面だけ明示上書きする
     (セレクタ特異度が * より高いので、両方 !important なら此方が勝つ)。 */
@media(prefers-reduced-motion:reduce){
  .hero-dark.has-fx::before{animation:fvAuroraCalm 12s ease-in-out infinite!important;
    will-change:opacity}
  .hero-dark.has-fx::after{animation:fvCircuitCalm 11s ease-in-out infinite!important;
    will-change:opacity}
  .hero-fx .fx-trace{display:none}
  .hero-fx .fx-aurora{animation:fvPoolCalm 10s ease-in-out infinite!important;
    will-change:opacity}
  .hero-fx .fx-node{animation:fvNodeCalm 8s ease-in-out infinite!important;
    will-change:opacity}
  .hero-fx .fx-node.n2{animation-delay:-2s!important}
  .hero-fx .fx-node.n3{animation-delay:-4s!important}
  .hero-fx .fx-node.n4{animation-delay:-6s!important}
  @keyframes fvAuroraCalm{0%,100%{opacity:1}50%{opacity:.56}}
  @keyframes fvCircuitCalm{0%,100%{opacity:1}50%{opacity:.36}}
  @keyframes fvPoolCalm{0%,100%{opacity:.06}50%{opacity:.9}}
  @keyframes fvNodeCalm{0%,100%{opacity:.05}50%{opacity:.66}}}

/* ---------- 組織図(株主支給)を KV バンドの図版枠に置く ---------------------
   枠(角丸・余白・影)は .fig のまま。width:100%;height:auto なので原本の比率が
   何であっても(2026-09-04: 3:2 → 16:9 に変化)横幅いっぱい・切り取り無しで追従する。
   小さい画面では文字が潰れるので、タップで原本 PNG を開けるようにする。 */
.fig>a{display:block;line-height:0}
.fig-org>a{cursor:zoom-in}
.fig-org{background:var(--night-2)}

/* =====================================================================
   2026-09-03 株主指示 — トップ 01 ABOUT / 02 BUSINESS
   ・トークン(色・書体・余白)は既存のまま。新規の色は足さない
     (アイボリー = --plate / ネイビー = --night, --night-2 / アクセント = --grad)
   ・各サービス固有の色だけ、各社LPの実トークンから 1 色ずつ持ち込む
   ===================================================================== */

/* ---- 01 の中の小見出し (OUR AI TEAM) ---- */
.eyebrow.sub-h{margin-top:clamp(2.6rem,5vw,3.6rem)}

/* ---- 01: 組織図 + 拡大導線 ---- */
.team .fig-org{max-width:980px;margin:0 auto}
.team .fig-org img{display:block;width:100%;height:auto}
.org-more{max-width:980px;margin:1.1rem auto 0;text-align:center}
.org-more .go{cursor:zoom-in}

/* ---- 組織図の拡大モーダル (依存なし・原寸 PNG・スクロール/ピンチ可) ---- */
.orgmodal{position:fixed;inset:0;z-index:120;display:flex}
.orgmodal[hidden]{display:none}
.orgmodal-bd{position:absolute;inset:0;background:rgba(11,13,20,.9)}
.orgmodal-box{position:relative;display:flex;flex-direction:column;width:100%;height:100%}
.orgmodal-x{position:absolute;top:.7rem;right:.7rem;z-index:2;display:inline-flex;align-items:center;gap:.4rem;
  min-height:44px;padding:.6rem 1.1rem;border:1px solid #FCFCFA55;border-radius:3px;cursor:pointer;
  background:rgba(11,13,20,.72);color:var(--white);font-family:var(--body);font-weight:700;
  font-size:.84rem;letter-spacing:.1em}
.orgmodal-x:hover{background:var(--white);color:var(--night);border-color:var(--white)}
.orgmodal-scroll{position:relative;flex:1;overflow:auto;-webkit-overflow-scrolling:touch;
  touch-action:pan-x pan-y pinch-zoom;padding:4.2rem 1rem 1.6rem}
/* width:auto = build.mjs が書き込む実測の width/height 属性(HTML側)がそのまま原寸として効く。
   2026-09-04以前は 1536px を固定していた(旧原本の実測値と一致していただけ)。原本の寸法が
   変わる度にここを直す必要をなくすため、ハードコードをやめて属性追従にした。 */
.orgmodal-scroll img{display:block;max-width:none;width:auto;height:auto;margin:0 auto;
  border-radius:4px;background:var(--night-2)}

/* ---- 02: 上段=アイボリー / 下段=ネイビー の帯で切り替える ---- */
.sec-biz{padding-bottom:0}
.bizband{padding:clamp(3.2rem,6.5vw,4.8rem) 0}
.sec-biz>.wrap+.bizband{margin-top:clamp(2.4rem,5vw,3.4rem)}
.bizband-owned{background:var(--plate)}
.bizband-sol{background:var(--night);color:var(--white)}
.bizband-sol .biz-label{color:var(--white)}

/* ---- 自社サービス カード (カード全体がリンク) ---- */
.ocards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.ocard{--svc:var(--red-t);
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--rule);
  border-radius:4px;padding:1.7rem 1.6rem;
  transition:transform .3s var(--ease),box-shadow .3s}
.ocard:hover{transform:translateY(-4px);box-shadow:0 20px 44px -28px rgba(16,18,24,.35)}
.ocard-mogubusi{--svc:#A4271D}   /* モグビジ LP の --crimson */
.ocard-snsmate{--svc:#735326}    /* SNS Mate LP の --gold-deep */
.ocard-kabu{--svc:#102A4C}       /* AI株トレーダー LP の --navy */
.ocard-hd{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}
.ocard-ic{flex:none;width:64px;height:64px;border-radius:14px;overflow:hidden;
  background:#fff;border:1px solid var(--rule);display:block}
.ocard-ic img{display:block;width:100%;height:100%;object-fit:cover}
.ocard h3{font-size:1.2rem;line-height:1.6;margin:0;color:var(--svc)}
.ocard-tx{display:block;font-size:.92rem;color:var(--ink-2);line-height:2.05;flex:1}
.ocard-go{display:inline-flex;align-items:center;gap:.5rem;align-self:flex-start;margin-top:1.3rem;
  min-height:44px;font-family:var(--en);font-weight:800;font-size:.82rem;letter-spacing:.12em;
  color:var(--svc);border-bottom:1px solid currentColor;padding-bottom:.15rem}
.ocard-go .ar{transition:transform .3s var(--ease)}
.ocard:hover .ocard-go .ar{transform:translate(3px,-3px)}

/* ---- 法人向けAIサービス カード (統一イラスト・正方形・角丸) ---- */
.scards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.scard{position:relative;display:flex;flex-direction:column;overflow:hidden;
  background:var(--night-2);border:1px solid var(--rule-d);border-radius:4px;
  padding:1.6rem 1.5rem 1.8rem;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.scard::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad)}
.scard:hover{transform:translateY(-4px);border-color:#FCFCFA44;box-shadow:0 22px 48px -26px rgba(0,0,0,.7)}
.scard-ill{display:block;aspect-ratio:1/1;width:100%;border-radius:10px;overflow:hidden;
  background:var(--white);margin-bottom:1.3rem}
.scard-ill img{display:block;width:100%;height:100%;object-fit:contain}
.scard-b{display:flex;flex-direction:column;flex:1}
.scard h3{font-size:1.15rem;line-height:1.7;color:var(--white);margin:0 0 .8rem}
.scard-tx{display:block;font-size:.92rem;color:#B9BCC8;line-height:2.05;flex:1}
.scard-go{display:inline-flex;align-items:center;gap:.5rem;align-self:flex-start;margin-top:1.3rem;
  min-height:44px;font-family:var(--en);font-weight:800;font-size:.82rem;letter-spacing:.12em;
  color:#F5A96B;border-bottom:1px solid #F5A96B66;padding-bottom:.15rem}
.scard-go .ar{transition:transform .3s var(--ease)}
.scard:hover .scard-go{border-bottom-color:#F5A96B}
.scard:hover .scard-go .ar{transform:translateX(4px)}

@media(max-width:980px){
  .ocards,.scards{grid-template-columns:1fr}
  .orgmodal-scroll{padding:4rem .6rem 1.2rem}
}

/* =====================================================================
   2026-09-03 株主指示 — 「内容が違うのに同じデザインだと分かりづらい」
   役割ごとに見た目を分ける。使う色・書体・角丸は既存トークンのまま。

   (1) 説明カード  読むだけ・押せない → 白い平板。枠なし・上辺3pxなし・浮かない。
                   見出しの上に短い2px罫(--grad)だけを置く。
   (2) リンクカード 押せる            → 1px枠 + 上辺3px + hoverで-4px浮く + 矢印ラベル。
   (3) 表          行と横罫だけ       → 背景なし。見出し行は英字トークン・--muted。
   (4) 実画面      スクリーンショット → 濃い台紙(--night-2)の枠 + 白いキャプション帯。
   (5) 注記        小さい補足         → 左に2px罫 + --muted。枠も背景も持たない。
   ===================================================================== */

/* ---- (1) 説明カード: .pillar / .about-card ---- */
.pillar,.about-card{border:0;background:#fff;padding:2.6rem 1.9rem 2.2rem;
  box-shadow:none;transition:none}
.pillar::before,.about-card::before{top:1.9rem;left:1.9rem;right:auto;width:2.2rem;height:2px}
.pillar:hover,.about-card:hover{transform:none;box-shadow:none}
.sec-tint .pillar,.sec-tint .about-card{background:#fff}

/* ---- (1) 手順カード: .step は番号そのものが印。左辺の3px罫は外して平板に ---- */
.step{border:0;background:var(--paper)}
.step::before{content:none}

/* ---- (2) リンクカード: 自社サービス(.ocard)も「上辺3px + 1px枠」に揃える ---- */
.ocard{border:1px solid var(--rule);position:relative;overflow:hidden}
.ocard::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--svc)}

/* ---- (5) 注記 ---- */
.note{padding-left:1rem;border-left:2px solid var(--rule);color:var(--muted)}
.note a{color:var(--red-t)}

/* =====================================================================
   /contact/ — 「相談の種類」3枚(読むだけ)と「フォーム」(入力する場所)を別物にする
   ===================================================================== */
.topics{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:0 0 clamp(2.2rem,5vw,3.2rem)}
.topic{display:flex;flex-direction:column;gap:.55rem;background:var(--paper);border-radius:4px;
  padding:1.5rem 1.4rem}
.topic-ic{display:block;width:32px;height:32px;color:var(--red-t)}
.topic-ic svg{display:block;width:100%;height:100%}
.topic b{font-family:var(--serif);font-weight:700;font-size:1.02rem;letter-spacing:.04em;line-height:1.7}
.topic-tx{display:block;font-size:.86rem;color:var(--ink-2);line-height:1.95}
@media(max-width:820px){
  .topics{grid-template-columns:1fr;gap:.7rem}
  .topic{display:grid;grid-template-columns:auto 1fr;gap:.3rem .9rem;align-items:center;padding:1.2rem 1.2rem}
  .topic-ic{width:26px;height:26px}
  .topic-tx{grid-column:1 / -1}
}

/* オンライン相談の予約カード（役割2 = リンクカード。.hubcard を再利用し、
   見出しは英字ロゴ用の書体でなく日本語の書体(--serif)に差し替え） */
.book-cta{max-width:860px;margin:0 0 clamp(1.6rem,4vw,2.4rem)}
.book-cta h2{font-family:var(--serif);font-weight:700;letter-spacing:.04em}

/* フォーム = 白いパネル + 濃い見出し帯 (上辺3pxの細罫はやめる) */
.contact-box{padding:0}
.contact-box::before{content:none}
.cbox-hd{background:var(--night);padding:1.5rem clamp(1.6rem,5vw,3.4rem)}
.cbox-hd h2{margin:0;color:var(--white);font-size:clamp(1.15rem,2.2vw,1.45rem);line-height:1.7}
.cbox-bd{padding:clamp(1.8rem,5vw,3.4rem)}
.cbox-bd>p:first-child{margin-top:0}

/* =====================================================================
   /works/ — 会員向けアプリの実画面 (役割4) / サービス行のアイコン / 公開OSSの表 (役割3)
   ===================================================================== */
.appgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem;margin-top:2.8rem}
.appcard{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:4px;
  overflow:hidden;background:var(--night-2);box-shadow:0 24px 60px -40px rgba(16,18,24,.5)}
.appcard-shot{display:block;background:var(--night-2);line-height:0}
.appcard-shot img{display:block;width:100%;height:auto;aspect-ratio:16/10;
  object-fit:cover;object-position:top center}
.appcard figcaption{flex:1;background:#fff;border-top:1px solid var(--rule);padding:1.2rem 1.3rem}
.appcard-hd{display:flex;align-items:center;gap:.85rem;margin-bottom:.6rem}
.appcard-ic{flex:none;display:block;width:40px;height:40px;border-radius:10px;
  border:1px solid var(--rule);background:#fff;object-fit:cover}
.appcard-hd b{font-family:var(--serif);font-weight:700;font-size:1.08rem;letter-spacing:.04em;line-height:1.6}
.appcard-tx{display:block;font-size:.86rem;color:var(--ink-2);line-height:1.95}
@media(max-width:900px){.appgrid{grid-template-columns:1fr;gap:1.2rem}}

.svc .name .svc-ic{display:block;width:52px;height:52px;border-radius:12px;margin-bottom:.9rem;
  border:1px solid var(--rule);background:#fff;object-fit:cover}

.tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.oss-table{max-width:none;min-width:34rem;margin-bottom:0}
.oss-table thead th,.oss-table thead td{border-top:0;padding-top:0;padding-bottom:.7rem;
  font-family:var(--en);font-weight:800;font-size:.7rem;letter-spacing:.2em;color:var(--muted)}
.oss-table th{width:auto;white-space:nowrap;font-weight:700}
.oss-table tbody th a{display:inline-flex;align-items:center;min-height:44px;
  font-family:var(--en);font-weight:800;letter-spacing:.03em;font-size:.92rem}
.oss-table td{color:var(--ink-2);font-size:.92rem}

/* =====================================================================
   /about/ 02 MESSAGE — 株主写真(株主支給 2026-09-03 21:07)と署名。
   ・写真は原本(正方形)を1バイトも切らずに置き、丸いマスクは CSS の border-radius だけ。
   ・PC は本文の左の段(見出しの下)に 200px / SP は段が1列になるので本文の上に中央 160px。
   ・署名は「株式会社タルムード」(小) + 「代表　弓田」(大) の2行。
   ===================================================================== */
.owner-fig{margin:clamp(1.8rem,4vw,2.6rem) 0 0;width:200px;max-width:100%}
.owner-fig img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;
  border-radius:50%;border:1px solid var(--rule-d)}
.msg .sign{display:block}
.msg .sign .co{display:block;font-size:.86rem;color:#B9BCC8;letter-spacing:.06em;line-height:1.9}
.msg .sign b{display:block;margin-top:.25rem}
@media(max-width:820px){
  .owner-fig{width:160px;margin-left:auto;margin-right:auto}
}

/* =====================================================================
   /ai-solutions/ — 「法人向けAIサービス」のハブ。
   3サービスは トップ 02 と同じ .scard(役割2 = リンクカード)。
   ハブでは各カードが節の見出しなので h3 ではなく h2 を入れる(見た目は同じ)。
   ===================================================================== */
.scard h2{font-size:1.15rem;line-height:1.7;color:var(--white);margin:0 0 .8rem;
  font-family:var(--serif);font-weight:700;letter-spacing:.04em}

/* TALMUD AI LAB への1枚(役割2 = リンクカード: 1px枠 + 上辺3px + hoverで浮く + 矢印) */
.hubcard{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:1rem 1.6rem;border:1px solid var(--rule);border-radius:4px;background:#fff;
  padding:clamp(1.6rem,3.4vw,2.2rem) clamp(1.4rem,3vw,2.2rem);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease)}
.hubcard::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad)}
.hubcard:hover{transform:translateY(-4px);border-color:#10121833;
  box-shadow:0 20px 44px -28px rgba(16,18,24,.35)}
.hubcard-b{display:block;min-width:0}
.hubcard h2{font-family:var(--en);font-weight:800;font-size:clamp(1.1rem,2.4vw,1.35rem);
  letter-spacing:.18em;line-height:1.6;margin:0 0 .6rem;color:var(--ink)}
.hubcard-tx{display:block;font-size:.92rem;color:var(--ink-2);line-height:2.05}
.hubcard-go{display:inline-flex;align-items:center;gap:.5rem;flex:none;min-height:44px;
  font-family:var(--en);font-weight:800;font-size:.78rem;letter-spacing:.16em;color:var(--red-d);
  border-bottom:1px solid #A82A1755;padding-bottom:.2rem}
.hubcard-go .ar{transition:transform .3s var(--ease)}
.hubcard:hover .hubcard-go .ar{transform:translateX(4px)}
.hubcard:focus-visible{outline:2px solid var(--red-t);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.hubcard,.hubcard-go .ar{transition:none}}

/* ハブの選択欄。法人3ページの svc-select と同じ形。
   ハブは「どのページでもない」ので現在地(aria-current / このページ バッジ)を持たない。
   .hubsel の中だけに効かせる(法人3ページは各自の b2b-*.css が持っている)。 */
.hubsel .svc-select{background:#fff;border:1px solid var(--rule);border-radius:6px;
  padding:clamp(1.1rem,2.4vw,1.6rem)}
.hubsel .svc-q{font-family:var(--serif);font-weight:700;color:var(--night);
  font-size:clamp(1rem,2vw,1.16rem);line-height:1.8;margin:0 0 1rem}
.hubsel .svc-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
.hubsel .svc-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:.5rem;
  min-width:0;min-height:154px;border-radius:6px;padding:1.2rem 1.2rem 1.05rem;text-decoration:none;
  border:1.5px solid var(--rule);background:var(--paper);
  transition:transform .22s var(--ease),border-color .22s var(--ease),background .22s var(--ease),
  box-shadow .22s var(--ease)}
.hubsel .svc-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--rule)}
.hubsel .svc-card b{font-size:.82rem;font-weight:500;line-height:1.85;color:var(--ink-2)}
.hubsel .svc-card b::before{content:"";display:inline-block;width:1.1em;height:1px;vertical-align:.35em;
  margin-right:.45em;background:currentColor;opacity:.55}
.hubsel .svc-card .nm{font-family:var(--serif);font-weight:700;font-size:clamp(.95rem,1.7vw,1.06rem);
  line-height:1.7;letter-spacing:.02em;margin-top:auto;color:var(--night)}
.hubsel .svc-go{display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  margin-top:.95rem;min-height:44px;padding:.6rem .85rem;border-radius:4px;
  font-size:.78rem;font-weight:700;letter-spacing:.06em;line-height:1.6;
  color:var(--red-d);border:1px solid #C0311A66;background:#fff}
.hubsel .svc-go .ar{font-style:normal;font-size:1.05rem;line-height:1;transition:transform .22s var(--ease)}
.hubsel .svc-card:hover{transform:translateY(-2px);background:#fff;border-color:#C0311A8c;
  box-shadow:0 18px 40px -26px rgba(16,18,24,.45)}
.hubsel .svc-card:hover .svc-go .ar{transform:translateX(4px)}
.hubsel .svc-card:active{transform:translateY(0) scale(.985);box-shadow:none}
.hubsel .svc-card:focus-visible{outline:2px solid var(--red-t);outline-offset:3px}
@media(max-width:860px){.hubsel .svc-row{grid-template-columns:1fr}
  .hubsel .svc-card{min-height:0}}
@media(prefers-reduced-motion:reduce){.hubsel .svc-card,.hubsel .svc-go .ar{transition:none}}

/* =====================================================================
   2026-09-04 株主指示 — スクロールの演出と数字の見せ方(全15ページ共通)
     「スクロールした時のエフェクトとか数字の出し方とか全ページをチェックして」
   方針: 控えめに / 全ページで同じ動き / 意味のある所だけ。
   足さない物: 視差・自動スライド・スクロールジャック・点滅・ページ遷移アニメ。
   「動きを減らす」設定では止めるのではなく弱める(移動をやめて薄く出すだけにする)。
   ===================================================================== */

/* ---- (1) 節単位の scroll reveal ------------------------------------------
   これまで reveal を使っているページと使っていないページが混ざっていた
   (トップ25 / 開発25 / 伴走21 / 実績18 に対し 導入0・LAB0・会社概要0 …)。
   対象を「<main> の中身の節(section)直下 .wrap の直子要素」に統一する。
   ファーストビューの節(hero-dark / page-head / ba-fv / cs-fv / dv-fv / lab-fv)は
   読み込んだ瞬間に見えていないといけないので、下の :is() の一覧に入れない。
   中に .reveal を持つ入れ物は、中身が動く担当なので二重には隠さない
   (:has が無いブラウザではこの規則ごと落ちる = 最初から全部見えたまま = 安全側)。 */
.js main .reveal{opacity:0;transform:translate3d(0,16px,0);
  transition:opacity .62s ease,transform .62s var(--ease)}
.js main section:is(.sec,.ba-sec,.dv-sec,.lab-sec,.lab-close,.lab-audit,.doc,.dv-svcsel)
  >.wrap>*:not(:has(.reveal)){opacity:0;transform:translate3d(0,16px,0);
  transition:opacity .62s ease,transform .62s var(--ease)}
.js main .reveal.in{opacity:1;transform:none}
.js main section:is(.sec,.ba-sec,.dv-sec,.lab-sec,.lab-close,.lab-audit,.doc,.dv-svcsel)
  >.wrap>.in{opacity:1;transform:none}
/* site.js が動かなかった時の保険(head のインラインが4秒で点ける) */
.rv-off main .reveal,
.rv-off main section>.wrap>*{opacity:1!important;transform:none!important}
.rv-off .lab-chart .t,.rv-off .lab-auto .auto-stack i,.rv-off .lab-auto .auto-cats .b i,
.rv-off .eyebrow .r,.rv-off .lab-eyebrow .r{transform:none!important}

/* ---- (2) 見出しの短い罫は、その節が現れるときに一度だけ伸びる ------------- */
.js main section:is(.sec,.ba-sec,.dv-sec,.lab-sec,.lab-close,.lab-audit,.doc,.dv-svcsel) .eyebrow .r,
.js main section:is(.sec,.ba-sec,.dv-sec,.lab-sec,.lab-close,.lab-audit,.doc,.dv-svcsel) .lab-eyebrow .r{
  transform:scaleX(.16);transform-origin:0 50%;transition:transform .8s var(--ease) .1s}
/* 出す側は隠す側より詳細度が高くないと、罫が縮んだまま残る(2026-09-04 実測で検出) */
.js main section:is(.sec,.ba-sec,.dv-sec,.lab-sec,.lab-close,.lab-audit,.doc,.dv-svcsel) .in .eyebrow .r,
.js main section:is(.sec,.ba-sec,.dv-sec,.lab-sec,.lab-close,.lab-audit,.doc,.dv-svcsel) .eyebrow.in .r,
.js main section:is(.sec,.ba-sec,.dv-sec,.lab-sec,.lab-close,.lab-audit,.doc,.dv-svcsel) .in .lab-eyebrow .r,
.js main section:is(.sec,.ba-sec,.dv-sec,.lab-sec,.lab-close,.lab-audit,.doc,.dv-svcsel) .lab-eyebrow.in .r{transform:none}

/* ---- (3) 数字の見せ方 ----------------------------------------------------
   桁の幅を全ページで揃える(tabular-nums)。数字の内容・単位・ラベルは一切
   足さない/変えない。カウントアップ中に幅が動かないよう、JS が最終値の
   桁数ぶんの min-width だけを入れる。 */
.eyebrow .n,.lab-eyebrow .n,.news-list time,.newsx time,
.info-table th,.info-table td,.oss-table th,.oss-table td,.lab-tbl th,.lab-tbl td,
.cs-price .v,.ba-terms .v,.dv-est-lead,.lab-basis,.lab-chart figcaption,.dv-note{
  font-variant-numeric:tabular-nums}
/* カウントアップは DOM の文字を書き換えない。
   本物の数字はいつでも最終値のまま(読み上げ・コピー・検索・検査に嘘を出さない)。
   走っている間だけ本物の塗りを消し、::after に途中の数を描く。
   終わったら data-cnt を外すので、最後は元どおりの描画にそのまま戻る。 */
[data-cnt]{position:relative;color:transparent!important;font-variant-numeric:tabular-nums}
[data-cnt]::after{content:counter(cntn);counter-reset:cntn var(--cnt-n,0);
  position:absolute;left:0;top:0;right:0;bottom:0;
  color:var(--cnt-col);font-variant-numeric:tabular-nums}

/* ---- (4) 数の大小をそのまま見せている棒は、節が現れたときに 0 から伸ばす --- */
.js .lab-chart .t{transform:scaleY(0);transform-origin:50% 100%;
  transition:transform .85s var(--ease)}
.js .lab-chart.in .t{transform:none}
.js .lab-chart .col:nth-child(1) .t{transition-delay:.00s}
.js .lab-chart .col:nth-child(2) .t{transition-delay:.05s}
.js .lab-chart .col:nth-child(3) .t{transition-delay:.10s}
.js .lab-chart .col:nth-child(4) .t{transition-delay:.15s}
.js .lab-chart .col:nth-child(5) .t{transition-delay:.20s}
.js .lab-chart .col:nth-child(6) .t{transition-delay:.25s}
.js .lab-chart .col:nth-child(7) .t{transition-delay:.30s}
.js .lab-chart .col:nth-child(8) .t{transition-delay:.35s}
.js .lab-chart .col:nth-child(9) .t{transition-delay:.40s}
.js .lab-auto .auto-stack i,.js .lab-auto .auto-cats .b i{
  transform:scaleX(0);transform-origin:0 50%;transition:transform .8s var(--ease)}
.js .lab-auto.in .auto-stack i,.js .lab-auto.in .auto-cats .b i{transform:none}
.js .lab-auto .auto-cats li:nth-child(2) .b i{transition-delay:.06s}
.js .lab-auto .auto-cats li:nth-child(3) .b i{transition-delay:.12s}
.js .lab-auto .auto-cats li:nth-child(4) .b i{transition-delay:.18s}
.js .lab-auto .auto-cats li:nth-child(5) .b i{transition-delay:.24s}
.js .lab-auto .auto-cats li:nth-child(6) .b i{transition-delay:.30s}

/* ---- (5) 数字の表 — 行の交互色と、横に流せることが分かる端の影 ------------
   影は background-attachment:local の定番手法。端まで流すと自然に消える。 */
.info-table tbody tr:nth-child(even) th,
.info-table tbody tr:nth-child(even) td{background:#10121808}
.tblwrap{background:
  linear-gradient(90deg,var(--paper) 30%,rgba(252,252,250,0)),
  linear-gradient(90deg,rgba(252,252,250,0),var(--paper) 70%) 100% 0,
  radial-gradient(farthest-side at 0 50%,rgba(16,18,24,.18),rgba(16,18,24,0)),
  radial-gradient(farthest-side at 100% 50%,rgba(16,18,24,.18),rgba(16,18,24,0)) 100% 0;
  background-repeat:no-repeat;background-size:34px 100%,34px 100%,14px 100%,14px 100%;
  background-attachment:local,local,scroll,scroll}

/* ---- (6) 「動きを減らす」= 止めるのではなく弱める -------------------------
   共通ブロックの *{transition:none!important} を、この面だけ明示上書きする。
   移動(translate/scale)はやめ、薄く出すところだけ 0.32秒で残す。
   数字のカウントアップは走らせない(最終値をそのまま出す)。 */
@media(prefers-reduced-motion:reduce){
  .js main .reveal,
  .js main section:is(.sec,.ba-sec,.dv-sec,.lab-sec,.lab-close,.lab-audit,.doc,.dv-svcsel)
    >.wrap>*:not(:has(.reveal)){
    transform:none!important;transition:opacity .32s linear!important}
  .js main .eyebrow .r,.js main .lab-eyebrow .r{transform:none!important;transition:none!important}
  .js .lab-chart .t,.js .lab-auto .auto-stack i,.js .lab-auto .auto-cats .b i{
    transform:none!important;transition:none!important}
}
