/* 公式サイト CSS。書体は現行サイトを継承：本文・日本語=Noto Sans JP／英字見出し=Baskervville／中国語=Noto Sans SC・TC（design-direction.md §3）。配色は design-direction.md §2 */
@font-face{font-family:'Noto Sans JP';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/NotoSansJP-400.woff2) format('woff2')}
@font-face{font-family:'Noto Sans JP';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/NotoSansJP-700.woff2) format('woff2')}
@font-face{font-family:'Baskervville';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/Baskervville-400.woff2) format('woff2')}
@font-face{font-family:'Baskervville';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/Baskervville-700.woff2) format('woff2')}
:root{--navy:#0B1130;--purple:#554587;--purple-mid:#735A89;--mauve:#A78DAC;--blue-gray:#D9E3EF;--ivory:#FAF7EE;--cyan:#00B8D4;
--font-body:'Noto Sans JP',sans-serif;--font-heading-en:'Baskervville','Noto Sans JP',serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--navy);background:#fff;font-size:16px;line-height:1.85;-webkit-text-size-adjust:100%}
:lang(zh-Hans){font-family:'Noto Sans SC',sans-serif}
:lang(zh-Hant){font-family:'Noto Sans TC',sans-serif}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
a{color:var(--purple);text-decoration:underline;text-underline-offset:3px}
a:hover{color:var(--purple-mid)}
:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:8px 14px;z-index:99}
.skip:focus{left:8px;top:8px}
h1,h2,h3,h4{font-weight:700;line-height:1.5}
.en{font-family:var(--font-heading-en)}
h1{font-size:clamp(26px,4.2vw,38px);margin-bottom:16px}
h2{font-size:clamp(22px,3.2vw,28px);color:var(--purple);margin-bottom:16px}
h3{font-size:19px;margin:22px 0 6px}
p{margin-bottom:12px}
ul.list{padding-left:1.3em;margin-bottom:12px}
ul.list li{margin-bottom:4px}
.small{font-size:14px;line-height:1.75}
.muted{color:#4a5470}
/* header */
.hdr{background:#fff;border-bottom:1px solid #cfd6e2;position:sticky;top:0;z-index:20}
.hdr-in{display:flex;align-items:center;gap:20px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}
.logo{display:flex;align-items:baseline;gap:8px;text-decoration:none;color:var(--navy)}
.logo-mark{font-family:var(--font-heading-en);font-weight:700;font-size:28px;color:var(--purple)}
.menu{flex:1}
.menu summary{display:none}
.menu>.nav{display:block}
.nav ul{list-style:none;display:flex;gap:20px;align-items:center}
.nav a{text-decoration:none;font-weight:700;font-size:15px;color:var(--navy);padding:4px 0;border-bottom:3px solid transparent}
.nav a.on,.nav a:hover{border-color:var(--purple);color:var(--purple)}
.has-sub{position:relative}
.nav .sub{display:none;position:absolute;left:0;top:100%;background:#fff;border:1px solid #cfd6e2;padding:8px 14px;min-width:380px;z-index:30;box-shadow:0 6px 18px rgba(11,17,48,.12);list-style:none;flex-direction:column;gap:2px}
.nav .has-sub:focus-within .sub{display:flex}
@media (hover:hover){.nav .has-sub:hover .sub{display:flex}}
.nav .sub a{font-weight:400;border:0;display:block;padding:5px 0;white-space:nowrap}
.langsw{display:flex;gap:10px;font-size:13px}
.langsw a{color:var(--navy)}
.langsw a[aria-current]{font-weight:700;text-decoration:none;color:var(--purple)}
.btn{display:inline-block;background:var(--purple);color:#fff;font-weight:700;padding:10px 22px;border-radius:4px;text-decoration:none;line-height:1.5;border:2px solid var(--purple);font-family:inherit;font-size:15px;cursor:pointer}
.btn:hover{background:var(--purple-mid);border-color:var(--purple-mid);color:#fff}
.btn.sm{padding:6px 16px;font-size:14px}
.btn.ghost{background:#fff;color:var(--purple)}
.btn.ghost:hover{background:#f3effa;color:var(--purple)}
.btn[disabled]{opacity:.55;cursor:not-allowed}
/* sections */
.sec{padding:52px 0}
.sec.alt{background:var(--ivory)}
.sec.blue{background:var(--blue-gray)}
.sec.dark{background:var(--navy);color:#fff}
.sec.dark h2{color:#fff}
.sec.dark a:not(.btn){color:#fff}
.sec.dark .btn{background:#fff;color:var(--purple);border-color:#fff}
.sec.dark .btn.ghost{background:transparent;color:#fff;border-color:#fff}
.cta{text-align:center}
.cta .btns{margin:18px 0 8px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.hero{padding:64px 0 56px;background:linear-gradient(180deg,#fff 0,var(--blue-gray) 100%)}
.hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:36px;align-items:center}
.hero .lead{font-size:17px}
.btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:18px}
.cards.c2{grid-template-columns:repeat(2,1fr)}
.cards.c3{grid-template-columns:repeat(3,1fr)}
.card{background:#fff;border:1px solid #cfd6e2;border-radius:8px;padding:18px 18px 16px;display:flex;flex-direction:column}
.card h3{margin-top:0;font-size:17px}
.card .no{font-family:var(--font-heading-en);font-weight:700;color:var(--purple);font-size:22px;line-height:1}
.card p{font-size:15px;line-height:1.75}
.card .more{margin-top:auto;font-weight:700}
.problems{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.problems li{background:#fff;border-left:5px solid var(--mauve);padding:12px 16px;border-radius:0 6px 6px 0}
.note{font-size:14px;border-left:4px solid var(--mauve);background:#f3effa;padding:8px 14px;margin:12px 0}
table.t{border-collapse:collapse;width:100%;margin:10px 0 16px;font-size:15px}
table.t th,table.t td{border:1px solid #cfd6e2;padding:8px 12px;text-align:left;vertical-align:top;line-height:1.7}
table.t th{background:#eef1f6;white-space:nowrap}
.flow{display:flex;gap:0;align-items:stretch;margin:20px 0 22px}
.flow div{flex:1 1 0;min-width:0;background:#fff;border:1px solid #cfd6e2;border-top:3px solid var(--purple);border-radius:6px;padding:16px 10px;text-align:center;font-weight:700;font-size:clamp(13px,1.6vw,16px);line-height:1.4;white-space:nowrap;display:flex;align-items:center;justify-content:center}
.flow div:nth-child(3){flex-grow:1.7}
.flow span.arr{flex:none;width:36px;display:flex;align-items:center;justify-content:center;color:var(--purple);font-size:22px;font-weight:700}
@media (max-width:760px){.flow{flex-direction:column}.flow div,.flow div:nth-child(3){flex:none;font-size:15px;padding:14px 8px;font-size:15px}.flow span.arr{width:auto;height:30px;transform:rotate(90deg)}}
.t-wrap{overflow-x:auto}
.steps{list-style:none;counter-reset:s;display:grid;gap:10px}
.steps li{counter-increment:s;background:#fff;border:1px solid #cfd6e2;border-radius:6px;padding:10px 14px 10px 54px;position:relative}
.steps li:before{content:counter(s);position:absolute;left:14px;top:9px;width:28px;height:28px;border-radius:50%;background:var(--purple);color:#fff;font-weight:700;text-align:center;line-height:28px;font-family:var(--font-heading-en)}
details.faq{border:1px solid #cfd6e2;border-radius:6px;background:#fff;margin-bottom:8px;padding:0 14px}
details.faq summary{cursor:pointer;font-weight:700;padding:10px 0}
details.faq p{margin:0 0 12px}
.quote{border-left:4px solid var(--purple);padding:6px 18px;background:#fff;margin:12px 0}
.crumb{font-size:13px;padding:12px 0 0;color:#4a5470}
.crumb a{color:#4a5470}
.pagehead{padding:26px 0 30px;background:linear-gradient(180deg,#fff,var(--blue-gray))}
ul.rel{list-style:none;display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:8px}
/* form */
.type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.type-grid label{border:2px solid #cfd6e2;border-radius:6px;padding:10px 14px;background:#fff;cursor:pointer;display:block}
.type-grid input{margin-right:8px}
.type-grid label:last-child:nth-child(odd){grid-column:1/-1}   /* 選択肢が奇数のとき最後の1つを横いっぱいにして空きを作らない */
.type-grid label:has(input:checked){border-color:var(--purple);background:#f3effa}
.field{margin:14px 0}
.field label{font-weight:700;display:block;margin-bottom:4px}
.field .req{color:#a4262c;font-size:.85em;margin-left:6px}
.field input[type=text],.field input[type=email],.field input[type=tel],.field textarea,.field select{width:100%;font:inherit;padding:9px 12px;border:1.5px solid #8f9ab3;border-radius:4px;background:#fff;color:var(--navy)}
.field textarea{min-height:130px}
.typebox{display:none;border:1px solid #cfd6e2;border-radius:8px;background:var(--ivory);padding:6px 18px 14px;margin:14px 0}
.typebox.on{display:block}
fieldset{border:0}
.chk label{font-weight:400;display:block}
/* footer */
.ftr{background:var(--navy);color:#e8ebf7;padding:40px 0 26px;font-size:14px;line-height:1.9}
.ftr a{color:#fff}
.ftr-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:28px}
.ftr-name{font-weight:700;font-size:17px;margin-bottom:6px}
.ftr-h{font-weight:700;margin-bottom:4px}
.disc{margin-top:22px;font-size:12.5px;color:#c6cde8}
.copy{margin-top:10px;font-family:var(--font-heading-en)}
@media (max-width:820px){
 .hero-grid,.cards,.cards.c2,.cards.c3,.problems,.ftr-grid,.type-grid{grid-template-columns:1fr}
 .sec{padding:38px 0}
 .menu summary{display:block;cursor:pointer;font-weight:700;border:2px solid var(--purple);color:var(--purple);border-radius:4px;padding:5px 14px;width:max-content}
 .menu{flex:none}
 .menu:not([open]) .nav{display:none}
 .nav ul{flex-direction:column;align-items:flex-start;gap:8px;padding:10px 0}
 .nav .sub{display:flex;position:static;border:0;box-shadow:none;padding:2px 0 2px 12px;min-width:0}
 .nav .sub a{white-space:normal}
 .hdr{position:static}
 .hdr-in{gap:10px}
 .langsw{order:5;width:100%}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.eyebrow{font-family:var(--font-heading-en);font-size:15px;letter-spacing:.06em;color:var(--purple-mid);margin-bottom:2px}
.org{display:grid;gap:14px;margin:14px 0 6px}
.org-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;align-items:stretch}
.org-box{background:#fff;border:2px solid var(--purple);border-radius:6px;padding:8px 18px;font-weight:700;text-align:center;min-width:170px}
.org-box.top{background:var(--purple);color:#fff}
.org-box.rep{background:var(--navy);color:#fff;border-color:var(--navy)}
.org-grp{border:2px solid var(--mauve);background:var(--ivory);border-radius:8px;padding:0 0 10px;min-width:150px;flex:1;max-width:230px}
.org-grp h3{margin:0 0 8px;background:var(--mauve);color:#fff;font-size:15px;text-align:center;padding:6px 8px;border-radius:5px 5px 0 0}
.org-grp.mg{background:var(--blue-gray);border-color:var(--purple-mid)}.org-grp.mg h3{background:var(--purple-mid)}
.org-grp ul{list-style:none;padding:0 10px}
.org-grp li{background:#fff;border:1.5px solid var(--purple);border-radius:5px;padding:5px 8px;margin-bottom:6px;font-size:14px;font-weight:700;text-align:center;line-height:1.5}
.org-grp.single{max-width:200px;align-self:flex-start}
.org-grp.single h3{border-radius:5px;margin:0}
.org-link{text-align:center;color:var(--purple);font-weight:700;line-height:1}
@media (max-width:820px){.org-grp{max-width:none}}


.hero-img{margin:0}.hero-img img{display:block;width:100%;height:auto;border-radius:8px;border:1px solid var(--blue-gray)}

/* 公開版の追加 */
.logo img{display:block;height:36px;width:auto}
.hero-vid{margin:0}.hero-vid video{display:block;width:100%;height:auto;border-radius:8px;border:1px solid var(--blue-gray);background:#e9e4d6;aspect-ratio:16/9}
.hero-vid figcaption{margin-top:6px;color:#4a5470}
.vidbtn{font:inherit;font-size:14px;line-height:1;border:1.5px solid var(--purple);background:#fff;color:var(--purple);border-radius:4px;padding:3px 9px;cursor:pointer;margin-right:6px}
.vidbtn:hover{background:#f3effa}
.card.rec{max-width:760px}.card.rec .date{font-family:var(--font-heading-en);font-weight:700;color:var(--purple);font-size:18px;margin:0}
.card.rec h3{margin:6px 0 8px}
.nav li[data-ja-only]{display:list-item}

.vidbtn{position:relative;width:30px;height:26px;padding:0;vertical-align:middle}
.vidbtn::before{content:'';position:absolute;left:50%;top:50%;width:11px;height:12px;transform:translate(-50%,-50%);border-left:3.5px solid currentColor;border-right:3.5px solid currentColor;box-sizing:border-box}
.vidbtn[aria-pressed=true]::before{width:0;height:0;border-right:0;border-left:10px solid currentColor;border-top:6px solid transparent;border-bottom:6px solid transparent;transform:translate(-35%,-50%)}
@font-face{font-family:'LangSC';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/LangSw-SC.woff2) format('woff2')}
@font-face{font-family:'LangTC';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/LangSw-TC.woff2) format('woff2')}
.langsw a[lang="zh-Hans"]{font-family:'LangSC','Noto Sans JP',sans-serif}
.langsw a[lang="zh-Hant"]{font-family:'LangTC','Noto Sans JP',sans-serif}

/* トップの動画：最上部に全幅（案1）。B7（継ぎ目のないループ）に差し替えても同じ枠で表示 */
.vid-top{background:#0e1424;border-bottom:0}
.vid-top .hero-vid{margin:0}
.vid-top .vid-frame{width:100%;background:#0e1424;display:flex;justify-content:center}
/* 10/8 芳巳さん：動画の左右の端を上のヘッダー帯（全幅）とそろえる。画面の高さで幅を絞らない（左右の黒い帯を出さない） */
.vid-top .hero-vid video{display:block;width:100%;max-width:100%;height:auto;border:0;border-radius:0;object-fit:contain;background:#0e1424;aspect-ratio:16/9;margin:0}
.vid-top figcaption{margin:0;padding:8px 0;background:#0e1424;color:#c6cde8}
.vid-top figcaption a{color:#e8ebf7}
.vid-top .vidbtn{border-color:#c6cde8;background:transparent;color:#e8ebf7}
.vid-top .vidbtn:hover{background:rgba(255,255,255,.08);color:#fff}
.hero-solo{padding:36px 0 28px}.hero-solo .wrap>div{max-width:860px}
.hero-solo .lead{font-size:17px;line-height:1.9}

/* BIMページの事例枠の動画（プラント） */
.case-vid{margin:20px auto 0;max-width:720px;width:100%}@media (max-width:600px){.case-vid{max-width:88%}}.case-vid .vid-frame{width:100%;background:#0e1424}
.case-vid video{display:block;width:100%;height:auto;aspect-ratio:16/9;border-radius:8px;border:1px solid var(--blue-gray);background:#0e1424}
.case-vid figcaption{margin-top:6px}
.vidnote{margin:6px 0 0;color:#4a5470}
/* トップ：PLATEAU の一文（4事業の直後。文字のみ） */
.plateau{margin:22px 0 0;padding:12px 18px;border-left:4px solid var(--purple);background:#f3f5fa;border-radius:0 6px 6px 0;font-size:15px;line-height:1.8}
@media (max-width:900px){.plateau{font-size:14px;padding:10px 14px}}
/* 事例の静止画（旧：事例動画 case-plant。枠は同じ 16:9） */
.case-img img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:8px;border:1px solid var(--blue-gray);background:#0e1424}
/* 3段の流れ図：英語・中国語は長い文言が1行に収まらず横にはみ出すため折り返す（日本語は従来どおり1行）。スマホでは全言語で折り返す */
html:not([lang="ja"]) .flow div{white-space:normal;text-wrap:balance}
@media (max-width:760px){.flow div{white-space:normal;text-wrap:balance}}

/* 営業動画（事業ページ・トップのサービスカード）：16:9、クリックで再生／一時停止。画像の上には再生アイコンだけ */
.sv-fig{margin:28px 0 8px;max-width:none;width:100%}
.sv-wrap{position:relative;aspect-ratio:16/9;width:100%;background:#0e1424;border-radius:8px;overflow:hidden}
.sv-wrap video{display:block;width:100%;height:100%;object-fit:cover;background:#0e1424}
.sv-play{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}
.sv-play:focus-visible{outline:3px solid var(--purple);outline-offset:-3px}
.sv-ico{position:absolute;left:50%;top:50%;width:64px;height:64px;transform:translate(-50%,-50%);border-radius:50%;background:rgba(14,20,36,.62);box-shadow:0 2px 10px rgba(0,0,0,.25);transition:opacity .2s,background .2s}
.sv-ico::before{content:'';position:absolute;left:50%;top:50%;transform:translate(-38%,-50%);border-left:20px solid #fff;border-top:12px solid transparent;border-bottom:12px solid transparent}
.sv-play:hover .sv-ico,.sv-play:focus-visible .sv-ico{background:rgba(14,20,36,.82)}
.sv-wrap.is-playing .sv-ico{opacity:0}
.sv-wrap.is-playing .sv-ico::before{transform:translate(-50%,-50%);width:18px;height:22px;border:0;border-left:6px solid #fff;border-right:6px solid #fff;box-sizing:border-box}
.sv-wrap.is-playing .sv-play:hover .sv-ico,.sv-wrap.is-playing .sv-play:focus-visible .sv-ico{opacity:1}
@media (hover:none){.sv-wrap.is-playing .sv-play:hover .sv-ico{opacity:0}}
.sv-fig .vidnote{margin:6px 0 0;font-size:12.5px;line-height:1.6;color:#4a5470;text-wrap:balance;word-break:auto-phrase}
.card .sv-fig{margin:12px 0 12px;max-width:none;min-width:0;width:100%}
.card{min-width:0}
.card .sv-wrap{border-radius:6px;min-width:0}
.card .sv-ico{width:48px;height:48px}
.card .sv-ico::before{border-left-width:15px;border-top-width:9px;border-bottom-width:9px}
.card .sv-fig .vidnote{font-size:12px;margin-top:4px}


/* grid-media-safe:2026-10-05 */
.cards>.card,.card{min-width:0}
/* トップ4事業カード：番号・見出し・本文・リンクを中央揃え（実績カード.card.recは対象外） */
.cards>.card{text-align:center}
.cards>.card .no,.cards>.card h3,.cards>.card p,.cards>.card .more{text-align:center}
.cards>.card .sv-fig{width:100%}
.cards>.card .more{width:100%}

.card video,.card img,.case-vid video,.case-img img,.sv-wrap video,.hero-vid video,.hero-img img{max-width:100%;width:100%;height:auto;box-sizing:border-box}
.sv-wrap,.case-vid .vid-frame,.card .sv-fig,.card .sv-wrap{min-width:0;max-width:100%}

/* 経営理念 — 小さめ3D三角＋頂点に Vision / Mission / Value */
h3.vmv-heading{font-size:clamp(26px,3vw,34px);margin:28px 0 10px;letter-spacing:.08em;font-weight:700}
.vmv-tri{position:relative;margin:28px auto 8px;width:min(100%,1100px);aspect-ratio:1.15/1;max-height:680px;overflow:visible}
.vmv-tri .tri-bg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(70%,560px);aspect-ratio:280/150;z-index:0;pointer-events:none;opacity:1}
.vmv-tri .tri-bg svg{width:100%;height:100%;display:block;overflow:visible}
.vmv-tri .vmv-card{position:absolute;z-index:1;width:min(40%,320px);text-align:center;padding:4px 8px;background:transparent;border:0;box-shadow:none}
.vmv-tri .vmv-card .k{font-family:var(--font-heading-en);font-weight:700;color:var(--purple);font-size:clamp(28px,3.4vw,36px);margin:0 0 8px;letter-spacing:.04em;line-height:1.1}
.vmv-tri .vmv-card p:last-child{margin:0;font-size:clamp(14px,1.5vw,17px);line-height:1.7;color:var(--navy);font-weight:400}
.vmv-tri .vmv-card.vision{left:50%;top:6%;transform:translate(-50%,0);width:min(52%,420px)}
.vmv-tri .vmv-card.mission{left:22%;bottom:10%;transform:translateX(-50%);text-align:center;width:min(40%,320px)}
.vmv-tri .vmv-card.value{left:78%;right:auto;bottom:10%;transform:translateX(-50%);text-align:center;width:min(40%,320px)}
.vmv-tri .vmv-card.mission,.vmv-tri .vmv-card.value{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:8.5em;height:8.5em}
@media (max-width:820px){
  .vmv-tri{aspect-ratio:auto;max-height:none;min-height:0;padding:0;display:flex;flex-direction:column;gap:22px}
  .vmv-tri .tri-bg{display:none}
  /* 10/8 高-6：Vision/Mission/Value 個別の位置指定（詳細度 0,3,0）を打ち消して縦並びにする */
  .vmv-tri .vmv-card,.vmv-tri .vmv-card.vision,.vmv-tri .vmv-card.mission,.vmv-tri .vmv-card.value{position:static;left:auto;right:auto;top:auto;bottom:auto;width:100%;max-width:100%;min-width:0;height:auto;min-height:0;transform:none;text-align:left;padding:0;display:block}
}

/* 事業ページ：強み／機能の横帯（画像＋テキスト交互）。書体・色は既存のまま */
.feat-rows{display:flex;flex-direction:column;gap:28px;margin:18px 0 8px}
.feat-row{display:grid;grid-template-columns:1.05fr 1fr;gap:28px;align-items:center}
.feat-row.reverse{grid-template-columns:1fr 1.05fr}
.feat-row.reverse .feat-body{order:-1}
.feat-media{margin:0;border-radius:8px;overflow:hidden;border:1px solid #cfd6e2;background:#0e1424}
.feat-media img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.feat-body .feat-no{font-family:var(--font-heading-en);font-weight:700;color:var(--purple);font-size:20px;line-height:1;margin:0 0 6px}
.feat-body h3{margin:0 0 8px;font-size:clamp(17px,2vw,20px);color:var(--navy);line-height:1.45}
.feat-body p{margin:0;font-size:15px;line-height:1.85;color:var(--navy)}
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:18px 0 8px}
.feat-card{background:#fff;border:1px solid #cfd6e2;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.feat-card .feat-media{border:0;border-radius:0;border-bottom:1px solid #cfd6e2}
.feat-card h3{margin:0 0 6px;font-size:16px}
.feat-card .feat-body{padding:14px 16px 16px}
.feat-card p{margin:0;font-size:14px;line-height:1.75}
@media (max-width:820px){
  .feat-row,.feat-row.reverse{grid-template-columns:1fr;gap:14px}
  .feat-row.reverse .feat-body{order:0}
  .feat-grid{grid-template-columns:1fr}
}

/* トップ：4事業を大きな動画帯で見せる（4列カードよりインパクト優先） */
.svc-bands{display:flex;flex-direction:column;gap:0;margin:22px 0 8px}
.svc-band{display:grid;grid-template-columns:1.15fr 1fr;gap:32px;align-items:center;padding:28px 0;border-top:1px solid #cfd6e2}
.svc-band:first-child{border-top:0;padding-top:8px}
.svc-band.reverse{grid-template-columns:1fr 1.15fr}
.svc-band.reverse .svc-copy{order:-1}
.svc-band>.svc-media,.svc-band>.svc-copy{min-width:0}
.svc-band .sv-fig{margin:0;max-width:100%;width:100%;min-width:0}
.svc-band .sv-wrap{border-radius:10px;box-shadow:0 10px 28px rgba(11,17,48,.14)}
.svc-band .svc-no{font-family:var(--font-heading-en);font-weight:700;color:var(--purple);font-size:22px;line-height:1;margin:0 0 8px}
.svc-band h3{margin:0 0 10px;font-size:clamp(18px,2.2vw,24px);line-height:1.4;color:var(--navy)}
.svc-band .svc-copy p{margin:0 0 10px;font-size:15px;line-height:1.85}
.svc-band .svc-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.svc-band .svc-actions .btn{padding:9px 18px;font-size:14px}
.svc-intro{margin:0 0 6px;font-size:15px;line-height:1.85;color:#4a5470}
@media (max-width:820px){
  .svc-band,.svc-band.reverse{grid-template-columns:1fr;gap:14px;padding:22px 0}
  .svc-band.reverse .svc-copy{order:0}
}
/* BIM LP：現行TOPの DiOimagevideo */
.bim-live-vid{margin:18px auto 22px;max-width:100%;width:100%}
.bim-live-vid .vid-frame{width:100%;background:#0e1424;border-radius:8px;overflow:hidden}
.bim-live-vid video{display:block;width:100%;height:auto;aspect-ratio:16/9;border-radius:8px;border:1px solid var(--blue-gray);background:#0e1424;object-fit:cover}
.bim-live-vid figcaption{margin-top:6px;color:#4a5470}

/* 事業連携アドバイザリー冒頭のリード（10/6 芳巳さん指示：大きく・濃いめ） */
.sv-lead{font-size:21px;font-weight:500;line-height:1.8;color:var(--navy);margin:0 0 6px}
@media (max-width:600px){.sv-lead{font-size:17.5px}}
/* ===== 10/6 17:38 既存サイトと同じ形のヘッダー（白90%・高さ60px・右端に紺の「お問い合わせ >」） ===== */
.hdr{background:rgba(255,255,255,.9);border-bottom:0;position:sticky;top:0;z-index:50;backdrop-filter:saturate(1.2) blur(2px);box-shadow:0 1px 0 rgba(11,17,48,.10),0 2px 10px rgba(11,17,48,.06)}   /* 10/8 ロゴの背景板：本番トップPCと同じ白90%の帯＋黒ロゴ。アニメの白い場面でも帯の境目が分かるよう薄い影 */
.hdr-in{display:flex;align-items:stretch;justify-content:space-between;gap:16px;height:60px;padding:0 0 0 20px;flex-wrap:nowrap;max-width:none}
.hdr-left{display:flex;align-items:center;gap:14px;min-width:0}
.hdr .logo img{width:47px;height:auto}
.langsw{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.02em}
.langsw .lang-ico{width:14px;height:14px;opacity:.8}
.langsw a{color:var(--navy);text-decoration:none}
.langsw a[aria-current]{color:var(--navy);font-weight:700;border-bottom:1px solid var(--mauve)}
.menu{flex:none;display:flex}
.menu>.nav{display:flex;height:100%}
.nav>ul{display:flex;align-items:stretch;gap:0;height:100%}
.nav>ul>li{display:flex;align-items:center;border-bottom:3px solid transparent}
.nav>ul>li:hover{border-bottom-color:var(--blue-gray)}
.nav>ul>li>a{font-weight:400;font-size:14px;padding:0 clamp(16px,2.2vw,34px);border:0;color:var(--navy);height:100%;display:flex;align-items:center}
.nav>ul>li>a:hover{color:var(--navy)}
.nav .sub{top:100%;left:0}
.nav>ul>li.nav-contact{background:var(--navy);border:0;width:200px;justify-content:center;margin-left:clamp(8px,1.5vw,24px)}
.nav>ul>li.nav-contact:hover{background:rgba(11,18,50,.8)}
.nav>ul>li.nav-contact>a{color:#fff;font-size:14px;width:100%;justify-content:center;gap:22px}
.nav>ul>li.nav-contact>a::after{content:"";width:7px;height:7px;border-top:1.5px solid #fff;border-right:1.5px solid #fff;transform:rotate(45deg)}
.hdr-cta-sp{display:none}
@media (max-width:1100px){.nav>ul>li>a{padding:0 12px;font-size:13.5px}.nav>ul>li.nav-contact{width:150px}}
@media (max-width:820px){
 .hdr{position:sticky}
 .hdr-in{height:auto;min-height:56px;padding:6px 10px;flex-wrap:wrap;align-items:center;gap:6px 10px}
 .hdr-left{flex:1;flex-wrap:wrap;gap:4px 12px}
 .langsw{order:0;width:auto;font-size:12px}
 .hdr-cta-sp{display:flex;align-items:center;gap:12px;background:var(--navy);color:#fff;font-size:13px;padding:0 14px;height:40px;text-decoration:none}
 .hdr-cta-sp::after{content:"";width:6px;height:6px;border-top:1.5px solid #fff;border-right:1.5px solid #fff;transform:rotate(45deg)}
 .menu{display:block;flex:none}
 .menu summary{display:flex;flex-direction:column;justify-content:center;gap:6px;width:40px;height:40px;padding:0 9px;border:0;background:var(--navy);border-radius:0;list-style:none}
 .menu summary::-webkit-details-marker{display:none}
 .menu summary span{display:block;height:1.5px;background:#fff}
 .menu[open]{flex-basis:100%;order:9}
 .menu[open] summary{margin-left:auto}
 .menu>.nav{height:auto}
 .nav>ul{flex-direction:column;align-items:stretch;height:auto;padding:8px 4px}
 .nav>ul>li{display:block;border:0}
 .nav>ul>li>a{padding:8px 4px;height:auto;font-size:15px}
 .nav>ul>li.nav-contact{display:none}
}
/* ===== 既存サイトと同じページ上部の帯（左に紺の縦長ボックス＋細い縦線＋英語見出し＋日本語小見出し、写真は全幅）とパンくず ===== */
.mv{position:relative;height:400px;overflow:hidden;background:#0B1130}
.mv-img{height:100%}
.mv-img img{display:block;width:100%;height:100%;max-width:100%;object-fit:cover}
.mv-box{position:absolute;bottom:0;left:max(0px,min(12.5%,calc((100% - 1080px)/2)));width:330px;height:400px;background:#0B1130;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:20%;padding:0 16px 80px;text-align:center;gap:12px}
.mv-line{width:1px;height:77px;border-left:1px solid #fff;margin-bottom:22px}
.mv-title{font-family:'Baskervville',serif;font-size:clamp(34px,3.5vw,50px);line-height:1.15;font-weight:400;color:#fff;margin:0;letter-spacing:.01em}
.mv-sub{font-size:14px;color:#fff;margin:0;line-height:1.6}
.bc{max-width:1080px;width:75%;margin:22px auto 0;font-size:14px}
.bc ol{list-style:none;display:flex;flex-wrap:wrap;gap:0;margin:0;padding:0}
.bc li{display:flex;align-items:center;min-width:0}
.bc li+li::before{content:"";display:inline-block;width:15px;height:15px;border-top:1px solid var(--mauve);rotate:110deg;margin:0 2px 0 10px;transform-origin:center}
.bc a{color:var(--navy);text-decoration:none}
.bc a:hover{text-decoration:underline}
.pagehead.mvd{background:none;padding:22px 0 8px}
.pagehead.mvd .crumb{display:none}
@media (max-width:820px){
 .bc{width:90%}
}
@media (max-width:430px){
 .mv{height:450px}
 .mv-box{left:0;bottom:40px;width:100%;height:120px;align-items:flex-start;justify-content:flex-start;padding:16px 15px;gap:4px;text-align:left}
 .mv-line{display:none}
 .mv-title{font-size:40px}
 .bc li{display:inline}
}
/* 調整（スクショ確認後） */
.bc li+li::before{margin:0 8px 0 10px}
.langsw a{white-space:nowrap}
@media (max-width:820px){.hdr-left{flex-direction:column;align-items:flex-start;gap:2px}.hdr .logo img{width:44px}}
@media (max-width:430px){.mv-box{height:auto;min-height:120px;padding:14px 15px 16px}.mv-title{font-size:32px}}
@media (max-width:820px){
 .hdr-left{display:contents}
 .hdr .logo{order:0;margin-right:auto}
 .hdr-cta-sp{order:1}
 .menu{order:2}
 .langsw{order:3;flex-basis:100%;gap:14px;padding:2px 0 4px;font-size:12.5px}
 .menu[open]{order:4}
}
/* 10/6 18:10 既存ページ（/about/ /recruit/）と実測で寸法をそろえる：帯はヘッダーの下に潜らせて上端0から400px、紺ボックス330×400、縦線77px、英語見出し50px/行高75px、小見出し約14px、ボックス下端から80pxで文字が終わる、パンくずは帯の4vh下・16px・幅1080px */
.mv-box{left:max(0px,calc((100% - min(max(75%,1080px),100% - 40px))/2));padding:0 0 80px;gap:0}
.mv-line{margin-bottom:0}
.mv-title{font-size:50px;line-height:1.5;white-space:nowrap}
.mv-sub{font-size:clamp(14px,calc(0.875rem + ((1vw - 13.66px) * 0.361)),16px);line-height:1.5}
.bc{width:min(max(75%,1080px),calc(100% - 40px));max-width:none;margin:4vh auto 0;font-size:16px}
.pagehead.mvd{padding-top:4vh}
@media (min-width:821px){.mv{margin-top:-60px}}
@media (max-width:430px){
 .mv-box{left:0;bottom:40px;height:120px;min-height:0;padding:0 15px;justify-content:flex-start}
 .mv-title{font-size:45px;line-height:1.5}
 .mv-sub{font-size:14px}
 .bc{width:90%;margin-top:5vh;font-size:14px}
}

/* 一元帳BM 料金欄のオプション（10/6 20:52） */
.opt-plateau{margin:0 0 14px;font-size:14px;line-height:1.8;min-width:0}
.opt-plateau .opt-h{margin:0 0 2px;font-weight:600}
.opt-plateau .opt-list{margin:0;padding-left:1.2em;list-style:"・";}
.opt-plateau .opt-list li{padding-left:.2em;margin:0}
.opt-plateau .nw{white-space:nowrap}
/* 10/8 一元帳BM：料金の文の最後の1文字だけが次の行に落ちないように／フッターの「料金を見る」をリンクの途中で折り返さない */
#pricing+p{text-wrap:pretty}
.ftr .small a{white-space:nowrap}
/* 10/8 一元帳の訴求軸（PLATEAUデータ×LINE）：段階カード・無料の帯・事業帯の要点 */
.axis-lead{font-size:clamp(16px,1.9vw,18px);font-weight:700;line-height:1.8;max-width:56em}
.ladder{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px;align-items:stretch}
.step-card{min-width:0;background:#fff;border:1px solid #cfd6e2;border-top:4px solid var(--mauve);border-radius:8px;padding:18px 18px 16px;display:flex;flex-direction:column}
.step-card.main{border-top-color:var(--purple);box-shadow:0 6px 18px rgba(85,69,135,.14)}
.step-card .step-no{font-family:var(--font-heading-en);font-weight:700;color:var(--purple);font-size:18px;line-height:1;margin-bottom:8px}
.step-card h3{margin:0 0 8px;font-size:18px;line-height:1.45}
.step-card .step-sub{display:inline-block;margin-left:8px;font-size:12px;font-weight:700;color:#fff;background:var(--purple);border-radius:3px;padding:1px 8px;vertical-align:2px}
.step-card p{font-size:15px;line-height:1.75}
.step-list{list-style:none;padding:0;margin:10px 0 14px}
.step-list li{position:relative;padding-left:20px;font-size:14.5px;line-height:1.7;margin:3px 0}
.step-list li:before{content:"";position:absolute;left:3px;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--purple)}
.step-price{margin-top:auto;border-top:1px dashed #cfd6e2;padding-top:12px;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px}
.step-price .sp-k{font-size:13px;color:#4a5068}
.step-price .sp-v{font-size:22px;font-weight:700;color:var(--navy);white-space:nowrap}
.step-price .sp-v small{font-size:12px;font-weight:400}
/* 10/8 7:05 芳巳さん：「無料」の2文字だけ色を変える（大きさ・太さは周りと同じ）。一元帳とあわせればスマホDE図面が無料、の意味の「無料」だけに使う */
:root{--free:#8B3A1A}
.free-word{color:var(--free)}
.step-extra{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;margin:0 0 12px}
.step-extra .step-refund{margin:0;font-size:13px;line-height:1.6;color:#4a5068;min-width:0}
.step-extra .sample-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--purple);border:1px solid var(--purple);border-radius:4px;padding:3px 10px;text-decoration:none;white-space:nowrap;background:#fff}
.step-extra .sample-link:hover{background:#f3effa}
.switch-note{margin-top:16px;padding:10px 16px;background:rgba(255,255,255,.65);border:1px solid #cfd6e2;border-radius:6px;font-size:15px;line-height:1.7}
.smz-price-box{margin-top:10px}.smz-price-box .smz-note{margin-top:4px;font-size:13.5px;color:#4a5068}
.axis-sec .small.muted{margin-top:12px}
.smz-price{margin-top:0;font-size:15px}
.smz-price .nw{white-space:nowrap}   /* 10/8 22:33 390幅で「月額3,980／円」と数字の途中で割れていたため */
.svc-pt,.svc-band .svc-copy p.svc-pt{margin:4px 0 14px;padding:10px 14px;background:#f3effa;border-left:4px solid var(--purple);border-radius:4px;font-size:14.5px;line-height:1.7}
.svc-pt b{display:block;color:var(--purple);font-size:15.5px}
.svc-pt>span{display:block}
.svc-pt .nw{white-space:nowrap}
.axis-lead .ib,.axis-sec h2 .ib{display:inline-block}
@media (max-width:900px){.ladder{grid-template-columns:minmax(0,1fr)}}
@media (min-width:901px) and (max-width:1023px){.step-price{flex-direction:column;align-items:flex-start;justify-content:flex-start}}   /* 3枚並びが狭い幅では、料金行を3枚とも2段にして横一線にそろえる */

.hub-pt{margin-top:18px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px}
.hub-pt b{flex:1 1 100%}
.hub-pt>span{flex:1 1 420px;min-width:0}
.hub-pt a{font-weight:700;white-space:nowrap}
/* 10/8 ④ トップのリード：日本語は文節で折り返し、「ご覧くだ／さい」のような1語だけの行を作らない */
html[lang="ja"] .hero-solo .lead{word-break:auto-phrase;text-wrap:pretty}
/* 10/8 PLATEAUの3D紹介動画（一元帳BM・PLATEAU×LINEの節、3D表示カードの下） */
.plateau-vid{margin:28px 0 0;min-width:0;max-width:100%}
.plateau-vid .pv-h{font-size:20px;font-weight:700;line-height:1.45;color:var(--navy);margin:0 0 6px}
.plateau-vid .pv-lead{margin:0 0 12px;font-size:15px;line-height:1.75}
html:not([lang^="zh"]) .plateau-vid .pv-lead{text-wrap:balance}   /* 10/8 21:51 動画の説明（日英。中国語は1字ずつ折り返すので balance で語が割れやすく、外す）：スマホ幅で行の長さをそろえる（「データを／使い」「約1分半の／動画で」のように短い行が残らないように） */
.plateau-vid video{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:16/9;background:#0e1424;border:0;border-radius:8px}
.plateau-vid .vidnote{margin:6px 0 0}
.plateau-vid .pv-note{margin:2px 0 0}

/* ===== 10/8 Grok ダブルチェック・5環境チェックの直し ===== */
.step-card-note{margin:-4px 0 8px;font-size:13px;color:#4a5068}
.step-price .sp-v.sp-incl{font-size:16px;white-space:normal;text-align:right;min-width:0}
.step-price .sp-v{min-width:0;max-width:100%}.step-price .sp-v small{white-space:normal}   /* 10/8 英中の料金行：320で「(excluding tax)」がはみ出さないよう、税別の注記だけ折り返せる */
.step-card,.smz-price-box,.axis-sec .step-price{min-width:0;max-width:100%}   /* 10/8 17:57 芳巳さん：カードと動画は min-width:0 と max-width:100% */
.step-price .sp-v.sp-incl .sp-free{font-weight:400}
.svc-pt .pt-price{display:block}
.hub-pt>span.pt-price{flex:1 1 100%}
.hub-pt a{white-space:normal;min-width:0;max-width:100%}
.lp3d .note{background:none;border-left:2px solid rgba(185,199,218,.45);padding:2px 0 2px 14px}
.lp3d .light .note{color:var(--ink-muted)}
/* スマホのヘッダー「お問い合わせ」：タッチ後（hover扱い）も白文字のまま */
a.hdr-cta-sp:hover,a.hdr-cta-sp:focus,a.hdr-cta-sp:active{color:#fff}
/* 横向きのスマホなど背の低い画面：開いたメニューの中だけをスクロールして、最後の項目まで届くように */
@media (max-width:820px){.menu[open]>.nav{max-height:calc(100vh - 140px);max-height:calc(100dvh - 140px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}}
/* iPad などタッチ操作の広い画面：1回目のタップで「事業概要」のサブメニューを開く（JS が .open を付ける） */
.nav .has-sub.open .sub{display:flex}
/* Safari は word-break:auto-phrase に未対応：見出し・リードは文節の区切り（<wbr>）だけで改行する */
html[lang="ja"] .jp-phrase{word-break:keep-all;overflow-wrap:anywhere}
/* 10/8 低-9：PCの経営理念 Mission・Value が言葉の途中で折り返さない幅（821px以上だけ） */
@media (min-width:821px){.vmv-tri .vmv-card.mission,.vmv-tri .vmv-card.value{width:min(44%,370px)}}
/* 10/8 低-11：リードの続きの段落で始まる最初の節は、上の空きを詰める（PC） */
@media (min-width:821px){.pagehead.mvd + .sec:has(> .wrap > p:not([class]):first-child){padding-top:16px}}
/* 10/8 19:30 芳巳さんOK：竣工図の定義の注と、Step1カードのスマホDE図面の説明 */
.shunko-note{margin-top:14px;min-width:0;max-width:100%}
.step-desc-row{margin:14px 0 0;padding:2px 0 2px 12px;border-left:3px solid #cfd6e2;font-size:14px;line-height:1.8;color:#4a5068;min-width:0;max-width:100%}   /* 10/8 20:19 スマホDE図面の説明はカードの並びの下に全幅で（竣工図の注と区別するため左に細い線、※なし） */
/* 10/8 19:30 竣工図の注・Step1の説明・B4：文節の改行（keep-all）のまま、最後の行が短く残らないようにする。「竣工図※」の「図※」は改行しない */
html[lang="ja"] .shunko-note.jp-phrase,html[lang="ja"] .smz-note.jp-phrase{text-wrap:pretty}
.sk-nw{white-space:nowrap}
.step-price .sp-v small{white-space:nowrap}
/* 10/8 19:30 一元帳BMの機能表：スマホ幅で1列目が細すぎて「報告書／・／書類管理」と崩れるので、1列目の幅を確保 */
@media (max-width:600px){.feat-t td:first-child,.feat-t th:first-child{width:8.4em;min-width:8.4em}}
/* 10/8 20:36 一元帳BMのカード3枚 v2（芳巳さん：行の長さのばらつき・不自然な空きを嫌う）
   ・列幅：内容の多いStep1を少し広く。Optionを狭めすぎると行が崩れるので、v1（1.4/1/.85）より均等寄り
   ・カード内の文：文節で折り返し（keep-all）＋各行の長さをそろえる（text-wrap:balance）。語の途中では割れない
   ・残る高さの差は、Step2・Optionの箇条書きの前後と間に均等に配る（1か所に大きな空きを作らない）
   ・料金の行は margin-top:auto のまま、3枚とも下端で横一線
   ・10/8 21:19：3枚並びになる901px以上で適用。Step2の「一元帳のご契約に含まれます（無料）」が1行に入るよう、ja は 1.3/0.9/1 のまま文字を15px＋約物詰め、zh は Step1 を広げ 1.5/0.75/0.9（入らない幅では「（無料）」の前で折り返し） */
@media (min-width:901px){
  .ladder{grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr) minmax(0,1fr)}
  html[lang^="zh"] .ladder{grid-template-columns:minmax(0,1.5fr) minmax(0,.75fr) minmax(0,.9fr)}
  .ladder>.step-card:not(.step-opt)>.step-list{flex:1 0 auto;display:flex;flex-direction:column;justify-content:space-evenly}
}
@media (min-width:901px) and (max-width:1023px){html[lang="en"] .ladder{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr)}}   /* 英語の狭い3枚並び：Step2の文が細切れにならない幅 */
.ladder .step-card>p:not(.step-price):not(.step-no),.ladder .step-card .step-list li,.ladder .step-card .step-refund{text-wrap:balance}
html[lang^="zh"] .ladder .step-card>p,html[lang^="zh"] .ladder .step-card li{line-break:strict}
.step-price .sp-v.sp-incl{text-wrap:balance}.step-price .sp-v.sp-incl .sp-free{white-space:nowrap}
@media (min-width:901px){html[lang="ja"] .step-price .sp-v.sp-incl{font-size:15px;font-feature-settings:"palt"}html[lang^="zh"] .step-price .sp-v.sp-incl{font-feature-settings:"palt"}}
@media (max-width:360px),(min-width:901px){html[lang="en"] .step-price .sp-v small{display:block}}   /* 10/8 21:19 英語：3枚並び（901px以上）と360px以下では「(excluding tax)」を金額の下の行に（カードからはみ出さない） */
.step-desc-row{text-wrap:pretty}
html:not([lang="ja"]) main.lw-fix :is(p,li,h2,h3,td,figcaption){text-wrap:pretty}   /* 10/8 22:33 一元帳BM・一元管理とは（英中）：最後の行に1語・1〜2字だけ残らないように（日本語は文節のつなぎで対応） */
html[lang="en"] .step-desc-row .sdr-l{display:block;text-wrap:balance}   /* 10/8 21:19 英語：文ごとに行の長さをそろえる（短い行を残さない） */
/* 10/8 21:19 芳巳さん：Optionカードは箇条書きを普通の間隔に戻し、空いた所にPLATEAUの3D静止画（動画のコマ）を入れる
   ・3枚並び（901px以上）：画像の枠がカードの残りの高さいっぱいに伸び縮みし、画像は枠に合わせて切り抜き（料金の行は下端で横一線のまま）
   ・1列（900px以下）：横長の比率で、高すぎないよう上限を付ける */
.step-fig{margin:2px 0 14px;min-width:0;max-width:100%}
.step-fig img{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;object-position:50% 62%;border-radius:8px;background:#e9edf3}
@media (max-width:900px){.step-fig img{max-height:180px}}
@media (min-width:901px){
  .ladder>.step-card.step-opt>.step-list{flex:0 0 auto}
  .ladder>.step-card>.step-fig{flex:1 1 0;min-height:64px;position:relative}
  .ladder>.step-card>.step-fig img{position:absolute;inset:0;height:100%;aspect-ratio:auto}
}
/* 10/9 7:22 芳巳さんOK（5環境チェックのおすすめ1・3・4）
   1：事業概要の4事業カード（services/ 4言語・ourbusiness/）。821〜1199px は2列（狭い4列で「アドバイザ／リー」のように語の途中で割れるため）。
      4列（1200px以上）でも見出し・リンクは行の長さをそろえ、本文は最後の行に1〜2字だけ残さない（「数据／库」「伴／走」）。リンクの「→」は前の語と離さない（patch_5env.py） */
@media (min-width:821px) and (max-width:1199px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cards>.card h3,.cards>.card .more,.cards>.card .more a{text-wrap:balance}
.cards>.card p:not(.no):not(.more){text-wrap:pretty}
/* 3：言語切替の押せる範囲を縦44px（見た目は変えない。透明の当たり枠を文字の上下に広げる）。スマホ幅は枠がほかのボタン・ヘッダーの外に出ないよう、行の上下を少し空ける */
.langsw a{position:relative}
.langsw a::before{content:"";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}
@media (max-width:820px){.langsw{padding:6px 0}}
/* 4：外国語のお知らせ一覧の日付と区分のあいだ（全角スペースをやめて余白で） */
.news-f .news-meta .news-cat{margin-left:1em}
/* 2：英語の会社概要の顧問一覧。漢字の氏名（いちばん右の欄）を途中で改行しない（「岩田／彰一／郎」）。役員一覧は対象外 */
html[lang="en"] #advisors+.t-wrap .t td:last-child{white-space:nowrap}
/* 1（中国語）：4事業カードの見出し・リンクの短いまとまり（patch_5env.py が付ける）は途中で改行しない */
.cards .zh-ph{white-space:nowrap}
